diff --git a/.eslintrc.js b/.eslintrc.js index 0c0f25c373..8c096883e3 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -4,6 +4,7 @@ module.exports = { extends: ['@metamask/eslint-config'], parserOptions: { + project: true, tsconfigRootDir: __dirname, }, @@ -15,7 +16,7 @@ module.exports = { // This prevents importing Node.js builtins. We currently use them in // our codebase, so this rule is disabled. This rule should be disabled // in `@metamask/eslint-config-nodejs` in the future. - 'import/no-nodejs-modules': 'off', + 'import-x/no-nodejs-modules': 'off', // This prevents using the `console.log` and similar functions. All logging // should be done through the module logger, or `logError` function in @@ -57,6 +58,88 @@ module.exports = { // triggers for class methods as well. 'no-restricted-syntax': 'off', + // Copied from `@metamask/eslint-config-typescript` but modified to + // allow importing with PascalCase or camelCase again. + // TODO: Upstream this change. + '@typescript-eslint/naming-convention': [ + 'error', + { + selector: 'default', + format: ['camelCase'], + leadingUnderscore: 'allow', + trailingUnderscore: 'forbid', + }, + { + selector: 'enumMember', + format: ['PascalCase'], + }, + { + selector: 'import', + format: ['camelCase', 'PascalCase'], + }, + { + selector: 'interface', + format: ['PascalCase'], + custom: { + regex: '^I[A-Z]', + match: false, + }, + }, + { + selector: 'objectLiteralMethod', + format: ['camelCase', 'PascalCase', 'UPPER_CASE'], + }, + { + selector: 'objectLiteralProperty', + format: ['camelCase', 'PascalCase', 'UPPER_CASE'], + }, + { + 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'], + }, + ], + + // Don't require explicit return types. + // TODO: Upstream this change(?). + '@typescript-eslint/explicit-function-return-type': 'off', + + // These rules cause a lot of false positives. + // TODO: Investigate why this is needed. + '@typescript-eslint/no-floating-promises': 'off', + '@typescript-eslint/no-redundant-type-constituents': 'off', + // This allows importing the `Text` JSX component. '@typescript-eslint/no-shadow': [ 'error', @@ -65,6 +148,16 @@ module.exports = { }, ], + // Allow `||` in conditional tests and mixed logical expressions. + // TODO: Upstream this change. + '@typescript-eslint/prefer-nullish-coalescing': [ + 'error', + { + ignoreConditionalTests: true, + ignoreMixedLogicalExpressions: true, + }, + ], + // Without the `allowAny` option, this rule causes a lot of false // positives. '@typescript-eslint/restrict-template-expressions': [ @@ -75,6 +168,10 @@ module.exports = { allowNumber: true, }, ], + + // This is handled by the `@typescript-eslint/no-empty-function` rule. + // TODO: Upstream this change. + 'no-empty-function': 'off', }, }, diff --git a/package.json b/package.json index d30d9c208a..80435a510a 100644 --- a/package.json +++ b/package.json @@ -72,24 +72,24 @@ "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", "@metamask/create-release-branch": "^3.0.0", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/utils": "^9.1.0", "@swc/core": "1.3.78", "@types/jest": "^27.5.1", "@types/node": "18.14.2", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "chromedriver": "^127.0.0", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "execa": "^5.1.1", diff --git a/packages/create-snap/.eslintrc.js b/packages/create-snap/.eslintrc.js index 2665f97874..eaa3786bab 100644 --- a/packages/create-snap/.eslintrc.js +++ b/packages/create-snap/.eslintrc.js @@ -12,6 +12,10 @@ module.exports = { globals: { snaps: true, }, + + rules: { + 'n/no-sync': 'off', + }, }, { diff --git a/packages/create-snap/package.json b/packages/create-snap/package.json index 8815f84cd1..848a1cca75 100644 --- a/packages/create-snap/package.json +++ b/packages/create-snap/package.json @@ -53,26 +53,26 @@ "devDependencies": { "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", "@types/jest": "^27.5.1", "@types/node": "18.14.2", "@types/rimraf": "^3.0.0", "@types/yargs": "^17.0.24", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/create-snap/src/cmds/init/index.ts b/packages/create-snap/src/cmds/init/index.ts index 93a5cc14c3..8ab8534e1e 100644 --- a/packages/create-snap/src/cmds/init/index.ts +++ b/packages/create-snap/src/cmds/init/index.ts @@ -1,9 +1,9 @@ import { logInfo } from '@metamask/snaps-utils'; import type yargs from 'yargs'; +import { initHandler } from './initHandler'; import builders from '../../builders'; import type { YargsArgs } from '../../types/yargs'; -import { initHandler } from './initHandler'; export const initCommand = { command: ['$0 [directory]'], diff --git a/packages/create-snap/src/cmds/init/initHandler.test.ts b/packages/create-snap/src/cmds/init/initHandler.test.ts index 27262933f0..5695e01a6e 100644 --- a/packages/create-snap/src/cmds/init/initHandler.test.ts +++ b/packages/create-snap/src/cmds/init/initHandler.test.ts @@ -8,10 +8,10 @@ import { promises as fs } from 'fs'; import pathUtils from 'path'; import semver from 'semver'; -import { resetFileSystem } from '../../test-utils'; -import type { YargsArgs } from '../../types/yargs'; import { initHandler } from './initHandler'; import * as initUtils from './initUtils'; +import { resetFileSystem } from '../../test-utils'; +import type { YargsArgs } from '../../types/yargs'; jest.mock('fs'); diff --git a/packages/create-snap/src/cmds/init/initHandler.ts b/packages/create-snap/src/cmds/init/initHandler.ts index ed55ffee78..96e8387fb3 100644 --- a/packages/create-snap/src/cmds/init/initHandler.ts +++ b/packages/create-snap/src/cmds/init/initHandler.ts @@ -1,4 +1,4 @@ -// eslint-disable-next-line import/no-extraneous-dependencies +// eslint-disable-next-line import-x/no-extraneous-dependencies import cliPackageJson from '@metamask/create-snap/package.json'; import type { NpmSnapPackageJson } from '@metamask/snaps-utils'; import { @@ -12,7 +12,6 @@ import pathUtils from 'path'; import type { SemVer } from 'semver'; import semver from 'semver'; -import type { YargsArgs } from '../../types/yargs'; import { buildSnap, cloneTemplate, @@ -23,6 +22,7 @@ import { SNAP_LOCATION, yarnInstall, } from './initUtils'; +import type { YargsArgs } from '../../types/yargs'; /** * Creates a new snap package, based on one of the provided templates. This diff --git a/packages/create-snap/src/cmds/init/initUtils.test.ts b/packages/create-snap/src/cmds/init/initUtils.test.ts index 22a60433fd..17c41ba9f7 100644 --- a/packages/create-snap/src/cmds/init/initUtils.test.ts +++ b/packages/create-snap/src/cmds/init/initUtils.test.ts @@ -3,7 +3,6 @@ import childProcess from 'child_process'; import { promises as fs } from 'fs'; import pathUtils from 'path'; -import { resetFileSystem } from '../../test-utils'; import { buildSnap, cloneTemplate, @@ -14,6 +13,7 @@ import { yarnInstall, TEMPLATE_GIT_URL, } from './initUtils'; +import { resetFileSystem } from '../../test-utils'; jest.mock('fs'); diff --git a/packages/examples/package.json b/packages/examples/package.json index 2f06313a18..de265b5b1b 100644 --- a/packages/examples/package.json +++ b/packages/examples/package.json @@ -29,19 +29,19 @@ "devDependencies": { "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "prettier": "^2.7.1", diff --git a/packages/examples/packages/bip32/package.json b/packages/examples/packages/bip32/package.json index ac7d44c18d..1c0f3338f6 100644 --- a/packages/examples/packages/bip32/package.json +++ b/packages/examples/packages/bip32/package.json @@ -40,24 +40,24 @@ "@jest/globals": "^29.5.0", "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/snaps-cli": "workspace:^", "@metamask/snaps-jest": "workspace:^", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/examples/packages/bip44/package.json b/packages/examples/packages/bip44/package.json index f4c018d9b9..ab6cb2df77 100644 --- a/packages/examples/packages/bip44/package.json +++ b/packages/examples/packages/bip44/package.json @@ -39,24 +39,24 @@ "@jest/globals": "^29.5.0", "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/snaps-cli": "workspace:^", "@metamask/snaps-jest": "workspace:^", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/examples/packages/browserify-plugin/package.json b/packages/examples/packages/browserify-plugin/package.json index d64470bace..3543e2aca4 100644 --- a/packages/examples/packages/browserify-plugin/package.json +++ b/packages/examples/packages/browserify-plugin/package.json @@ -35,26 +35,26 @@ "@jest/globals": "^29.5.0", "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/snaps-browserify-plugin": "workspace:^", "@metamask/snaps-jest": "workspace:^", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "babelify": "^10.0.0", "browserify": "^17.0.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/examples/packages/browserify-plugin/snap.manifest.json b/packages/examples/packages/browserify-plugin/snap.manifest.json index 83cab54813..1986968dbe 100644 --- a/packages/examples/packages/browserify-plugin/snap.manifest.json +++ b/packages/examples/packages/browserify-plugin/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "6Yw5uiOs0N8thZeEJf+tKmJ8GqRxQsoXlDJWF3Ft35k=", + "shasum": "5tEtVij43SYg+X74DbfmNdSFPfMgfBa4yt6Qj2VTthg=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/browserify/package.json b/packages/examples/packages/browserify/package.json index ddc05bdfdb..6c241ab7bc 100644 --- a/packages/examples/packages/browserify/package.json +++ b/packages/examples/packages/browserify/package.json @@ -36,24 +36,24 @@ "@jest/globals": "^29.5.0", "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/snaps-cli": "workspace:^", "@metamask/snaps-jest": "workspace:^", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/examples/packages/browserify/snap.manifest.json b/packages/examples/packages/browserify/snap.manifest.json index d1576e604a..e36d030db4 100644 --- a/packages/examples/packages/browserify/snap.manifest.json +++ b/packages/examples/packages/browserify/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "uwos2jlig0JLSfBnuF2gj9bjhPlKv/zq5Ik3uTUJs3E=", + "shasum": "TKQDVxcOk6yqrwNZkNJTvwTMyNlLqb9HlWF7Ls5355Q=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/client-status/package.json b/packages/examples/packages/client-status/package.json index cecd6cbf58..4566996512 100644 --- a/packages/examples/packages/client-status/package.json +++ b/packages/examples/packages/client-status/package.json @@ -36,24 +36,24 @@ "@jest/globals": "^29.5.0", "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/snaps-cli": "workspace:^", "@metamask/snaps-jest": "workspace:^", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/examples/packages/cronjobs/package.json b/packages/examples/packages/cronjobs/package.json index d4b764dc55..03d31f0790 100644 --- a/packages/examples/packages/cronjobs/package.json +++ b/packages/examples/packages/cronjobs/package.json @@ -36,24 +36,24 @@ "@jest/globals": "^29.5.0", "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/snaps-cli": "workspace:^", "@metamask/snaps-jest": "workspace:^", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/examples/packages/dialogs/package.json b/packages/examples/packages/dialogs/package.json index dbd432aa4a..30299a3bd7 100644 --- a/packages/examples/packages/dialogs/package.json +++ b/packages/examples/packages/dialogs/package.json @@ -36,24 +36,24 @@ "@jest/globals": "^29.5.0", "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/snaps-cli": "workspace:^", "@metamask/snaps-jest": "workspace:^", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/examples/packages/errors/package.json b/packages/examples/packages/errors/package.json index aa47aff65e..25cded2e73 100644 --- a/packages/examples/packages/errors/package.json +++ b/packages/examples/packages/errors/package.json @@ -36,24 +36,24 @@ "@jest/globals": "^29.5.0", "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/snaps-cli": "workspace:^", "@metamask/snaps-jest": "workspace:^", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/examples/packages/ethereum-provider/package.json b/packages/examples/packages/ethereum-provider/package.json index c482bcc58c..bb91d164b3 100644 --- a/packages/examples/packages/ethereum-provider/package.json +++ b/packages/examples/packages/ethereum-provider/package.json @@ -37,24 +37,24 @@ "@jest/globals": "^29.5.0", "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/snaps-cli": "workspace:^", "@metamask/snaps-jest": "workspace:^", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/examples/packages/ethers-js/package.json b/packages/examples/packages/ethers-js/package.json index ca78a66231..f03a1628e4 100644 --- a/packages/examples/packages/ethers-js/package.json +++ b/packages/examples/packages/ethers-js/package.json @@ -37,24 +37,24 @@ "@jest/globals": "^29.5.0", "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/snaps-cli": "workspace:^", "@metamask/snaps-jest": "workspace:^", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/examples/packages/file-upload/package.json b/packages/examples/packages/file-upload/package.json index 8dbb32482c..14d0d6cd81 100644 --- a/packages/examples/packages/file-upload/package.json +++ b/packages/examples/packages/file-upload/package.json @@ -37,24 +37,24 @@ "@jest/globals": "^29.5.0", "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/snaps-cli": "workspace:^", "@metamask/snaps-jest": "workspace:^", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/examples/packages/get-entropy/package.json b/packages/examples/packages/get-entropy/package.json index de56278569..81e9e74edb 100644 --- a/packages/examples/packages/get-entropy/package.json +++ b/packages/examples/packages/get-entropy/package.json @@ -38,24 +38,24 @@ "@jest/globals": "^29.5.0", "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/snaps-cli": "workspace:^", "@metamask/snaps-jest": "workspace:^", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/examples/packages/get-file/package.json b/packages/examples/packages/get-file/package.json index 38b646d7f0..ca36d8548c 100644 --- a/packages/examples/packages/get-file/package.json +++ b/packages/examples/packages/get-file/package.json @@ -37,24 +37,24 @@ "@jest/globals": "^29.5.0", "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/snaps-cli": "workspace:^", "@metamask/snaps-jest": "workspace:^", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/examples/packages/home-page/package.json b/packages/examples/packages/home-page/package.json index 5cd85cefd4..3f765be6ad 100644 --- a/packages/examples/packages/home-page/package.json +++ b/packages/examples/packages/home-page/package.json @@ -36,24 +36,24 @@ "@jest/globals": "^29.5.0", "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/snaps-cli": "workspace:^", "@metamask/snaps-jest": "workspace:^", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/examples/packages/images/package.json b/packages/examples/packages/images/package.json index 1dfffaf675..b678c54aab 100644 --- a/packages/examples/packages/images/package.json +++ b/packages/examples/packages/images/package.json @@ -37,24 +37,24 @@ "@jest/globals": "^29.5.0", "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/snaps-cli": "workspace:^", "@metamask/snaps-jest": "workspace:^", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/examples/packages/interactive-ui/package.json b/packages/examples/packages/interactive-ui/package.json index b756dbc494..ac7e95df96 100644 --- a/packages/examples/packages/interactive-ui/package.json +++ b/packages/examples/packages/interactive-ui/package.json @@ -37,24 +37,24 @@ "@jest/globals": "^29.5.0", "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/snaps-cli": "workspace:^", "@metamask/snaps-jest": "workspace:^", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/examples/packages/invoke-snap/package.json b/packages/examples/packages/invoke-snap/package.json index 5aea399c51..b3befe9d33 100644 --- a/packages/examples/packages/invoke-snap/package.json +++ b/packages/examples/packages/invoke-snap/package.json @@ -27,19 +27,19 @@ "devDependencies": { "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "prettier": "^2.7.1", diff --git a/packages/examples/packages/invoke-snap/packages/consumer-signer/package.json b/packages/examples/packages/invoke-snap/packages/consumer-signer/package.json index f02ec2bbbc..a00f4ed851 100644 --- a/packages/examples/packages/invoke-snap/packages/consumer-signer/package.json +++ b/packages/examples/packages/invoke-snap/packages/consumer-signer/package.json @@ -39,24 +39,24 @@ "@jest/globals": "^29.5.0", "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/snaps-cli": "workspace:^", "@metamask/snaps-jest": "workspace:^", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/examples/packages/invoke-snap/packages/core-signer/package.json b/packages/examples/packages/invoke-snap/packages/core-signer/package.json index 3f5c1f621f..46e253b6a2 100644 --- a/packages/examples/packages/invoke-snap/packages/core-signer/package.json +++ b/packages/examples/packages/invoke-snap/packages/core-signer/package.json @@ -40,25 +40,25 @@ "@jest/globals": "^29.5.0", "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/snaps-cli": "workspace:^", "@metamask/snaps-jest": "workspace:^", "@noble/hashes": "^1.3.1", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/examples/packages/json-rpc/package.json b/packages/examples/packages/json-rpc/package.json index c779672ce9..14b1a62aa0 100644 --- a/packages/examples/packages/json-rpc/package.json +++ b/packages/examples/packages/json-rpc/package.json @@ -36,24 +36,24 @@ "@jest/globals": "^29.5.0", "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/snaps-cli": "workspace:^", "@metamask/snaps-jest": "workspace:^", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/examples/packages/jsx/package.json b/packages/examples/packages/jsx/package.json index 1083d64a41..554d2103b3 100644 --- a/packages/examples/packages/jsx/package.json +++ b/packages/examples/packages/jsx/package.json @@ -37,25 +37,25 @@ "@jest/globals": "^29.5.0", "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/snaps-cli": "workspace:^", "@metamask/snaps-jest": "workspace:^", "@metamask/utils": "^9.1.0", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/examples/packages/lifecycle-hooks/package.json b/packages/examples/packages/lifecycle-hooks/package.json index c9370f6f2d..2041c7e2b2 100644 --- a/packages/examples/packages/lifecycle-hooks/package.json +++ b/packages/examples/packages/lifecycle-hooks/package.json @@ -36,24 +36,24 @@ "@jest/globals": "^29.5.0", "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/snaps-cli": "workspace:^", "@metamask/snaps-jest": "workspace:^", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/examples/packages/localization/package.json b/packages/examples/packages/localization/package.json index eec6463389..62cea701e1 100644 --- a/packages/examples/packages/localization/package.json +++ b/packages/examples/packages/localization/package.json @@ -37,24 +37,24 @@ "@jest/globals": "^29.5.0", "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/snaps-cli": "workspace:^", "@metamask/snaps-jest": "workspace:^", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/examples/packages/localization/src/index.ts b/packages/examples/packages/localization/src/index.ts index 77c9e6c919..8b456cde3c 100644 --- a/packages/examples/packages/localization/src/index.ts +++ b/packages/examples/packages/localization/src/index.ts @@ -13,6 +13,7 @@ import { getMessage } from './locales'; * * @param params - The request parameters. * @param params.request - The JSON-RPC request object. + * @returns The JSON-RPC response. * @see https://docs.metamask.io/snaps/reference/exports/#onrpcrequest * @see https://docs.metamask.io/snaps/reference/rpc-api/#wallet_invokesnap */ diff --git a/packages/examples/packages/manage-state/package.json b/packages/examples/packages/manage-state/package.json index d6fe5a6c07..59d43d44e6 100644 --- a/packages/examples/packages/manage-state/package.json +++ b/packages/examples/packages/manage-state/package.json @@ -36,24 +36,24 @@ "@jest/globals": "^29.5.0", "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/snaps-cli": "workspace:^", "@metamask/snaps-jest": "workspace:^", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/examples/packages/name-lookup/package.json b/packages/examples/packages/name-lookup/package.json index 6a956e4487..fd9f5fb94c 100644 --- a/packages/examples/packages/name-lookup/package.json +++ b/packages/examples/packages/name-lookup/package.json @@ -36,24 +36,24 @@ "@jest/globals": "^29.5.0", "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/snaps-cli": "workspace:^", "@metamask/snaps-jest": "workspace:^", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/examples/packages/network-access/package.json b/packages/examples/packages/network-access/package.json index 367b791310..f4c24baf9f 100644 --- a/packages/examples/packages/network-access/package.json +++ b/packages/examples/packages/network-access/package.json @@ -37,25 +37,25 @@ "@jest/globals": "^29.5.0", "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/snaps-cli": "workspace:^", "@metamask/snaps-controllers": "workspace:^", "@metamask/snaps-jest": "workspace:^", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/examples/packages/notifications/package.json b/packages/examples/packages/notifications/package.json index e033d6130d..e82c9a2a58 100644 --- a/packages/examples/packages/notifications/package.json +++ b/packages/examples/packages/notifications/package.json @@ -36,24 +36,24 @@ "@jest/globals": "^29.5.0", "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/snaps-cli": "workspace:^", "@metamask/snaps-jest": "workspace:^", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/examples/packages/rollup-plugin/.eslintrc.js b/packages/examples/packages/rollup-plugin/.eslintrc.js index 822260dfad..a6b126ccc1 100644 --- a/packages/examples/packages/rollup-plugin/.eslintrc.js +++ b/packages/examples/packages/rollup-plugin/.eslintrc.js @@ -12,7 +12,7 @@ module.exports = { sourceType: 'module', }, rules: { - 'import/no-unresolved': 'off', + 'import-x/no-unresolved': 'off', }, }, ], diff --git a/packages/examples/packages/rollup-plugin/package.json b/packages/examples/packages/rollup-plugin/package.json index be46a74672..b801179c51 100644 --- a/packages/examples/packages/rollup-plugin/package.json +++ b/packages/examples/packages/rollup-plugin/package.json @@ -39,10 +39,10 @@ "@jest/globals": "^29.5.0", "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/snaps-jest": "workspace:^", "@metamask/snaps-rollup-plugin": "workspace:^", "@rollup/plugin-babel": "^6.0.3", @@ -51,16 +51,16 @@ "@rollup/plugin-terser": "^0.4.3", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/examples/packages/signature-insights/package.json b/packages/examples/packages/signature-insights/package.json index ed8cb8640a..635c085888 100644 --- a/packages/examples/packages/signature-insights/package.json +++ b/packages/examples/packages/signature-insights/package.json @@ -36,24 +36,24 @@ "@jest/globals": "^29.5.0", "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/snaps-cli": "workspace:^", "@metamask/snaps-jest": "workspace:^", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/examples/packages/transaction-insights/package.json b/packages/examples/packages/transaction-insights/package.json index 5612d776d0..bd5c73255d 100644 --- a/packages/examples/packages/transaction-insights/package.json +++ b/packages/examples/packages/transaction-insights/package.json @@ -37,24 +37,24 @@ "@jest/globals": "^29.5.0", "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/snaps-cli": "workspace:^", "@metamask/snaps-jest": "workspace:^", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/examples/packages/wasm/.eslintrc.js b/packages/examples/packages/wasm/.eslintrc.js index b40b61aa84..73c184e582 100644 --- a/packages/examples/packages/wasm/.eslintrc.js +++ b/packages/examples/packages/wasm/.eslintrc.js @@ -1,5 +1,3 @@ -const { resolve } = require('path'); - module.exports = { extends: ['../../.eslintrc.js'], @@ -7,20 +5,11 @@ module.exports = { tsconfigRootDir: __dirname, }, - overrides: [ - { - files: ['assembly/**/*.ts'], - - parserOptions: { - tsconfigRootDir: resolve(__dirname, 'assembly'), - }, - }, - ], - ignorePatterns: [ '!.prettierrc.js', '**/!.eslintrc.js', '**/dist*/', + 'assembly/**/*.ts', 'packages/**', 'program/**', 'build/**', diff --git a/packages/examples/packages/wasm/package.json b/packages/examples/packages/wasm/package.json index 26cd26e233..22b10c2af0 100644 --- a/packages/examples/packages/wasm/package.json +++ b/packages/examples/packages/wasm/package.json @@ -37,25 +37,25 @@ "@jest/globals": "^29.5.0", "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/snaps-cli": "workspace:^", "@metamask/snaps-jest": "workspace:^", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "assemblyscript": "^0.27.5", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/examples/packages/wasm/src/index.ts b/packages/examples/packages/wasm/src/index.ts index 10e34d79d6..0677dacf9c 100644 --- a/packages/examples/packages/wasm/src/index.ts +++ b/packages/examples/packages/wasm/src/index.ts @@ -4,12 +4,12 @@ import { } from '@metamask/snaps-sdk'; // This is only imported for its type. It is not used at runtime. -// eslint-disable-next-line import/order +// eslint-disable-next-line import-x/order import type { instantiate } from '../build/program'; // This is the WASM module, generated by AssemblyScript, inlined as an object // containing the functions exported by the WASM module. -// eslint-disable-next-line import/extensions +// eslint-disable-next-line import-x/extensions import * as program from '../build/program.wasm'; /** diff --git a/packages/examples/packages/wasm/src/types.d.ts b/packages/examples/packages/wasm/src/types.d.ts index 059ad7b28a..843f445c3f 100644 --- a/packages/examples/packages/wasm/src/types.d.ts +++ b/packages/examples/packages/wasm/src/types.d.ts @@ -7,7 +7,7 @@ * so we need to declare a type for them here. This allows us to import them * in our code, and have TypeScript understand that they are valid modules. */ -// eslint-disable-next-line import/unambiguous +// eslint-disable-next-line import-x/unambiguous declare module '*.wasm' { import type { instantiate } from '@metamask/wasm-example-snap/build/program'; diff --git a/packages/examples/packages/webpack-plugin/package.json b/packages/examples/packages/webpack-plugin/package.json index 81331481c5..94222a4205 100644 --- a/packages/examples/packages/webpack-plugin/package.json +++ b/packages/examples/packages/webpack-plugin/package.json @@ -36,25 +36,25 @@ "@jest/globals": "^29.5.0", "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/snaps-jest": "workspace:^", "@metamask/snaps-webpack-plugin": "workspace:^", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", "@types/webpack-env": "^1.18.1", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/snaps-browserify-plugin/package.json b/packages/snaps-browserify-plugin/package.json index 204542cfe6..fc7abb67a3 100644 --- a/packages/snaps-browserify-plugin/package.json +++ b/packages/snaps-browserify-plugin/package.json @@ -48,27 +48,27 @@ "devDependencies": { "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", "@types/browserify": "^12.0.37", "@types/convert-source-map": "^1.5.2", "@types/jest": "^27.5.1", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "browserify": "^17.0.0", "concat-stream": "^2.0.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/snaps-browserify-plugin/src/types/vendor/readable-stream.d.ts b/packages/snaps-browserify-plugin/src/types/vendor/readable-stream.d.ts index e271c53f42..dbfb30e198 100644 --- a/packages/snaps-browserify-plugin/src/types/vendor/readable-stream.d.ts +++ b/packages/snaps-browserify-plugin/src/types/vendor/readable-stream.d.ts @@ -1,4 +1,4 @@ -// eslint-disable-next-line import/unambiguous +// eslint-disable-next-line import-x/unambiguous declare module 'readable-stream' { export type { DuplexOptions, diff --git a/packages/snaps-cli/package.json b/packages/snaps-cli/package.json index 35113928f3..67f290383c 100644 --- a/packages/snaps-cli/package.json +++ b/packages/snaps-cli/package.json @@ -102,10 +102,10 @@ "devDependencies": { "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@swc/jest": "^0.2.26", "@types/browserify": "^12.0.37", "@types/jest": "^27.5.1", @@ -113,17 +113,17 @@ "@types/rimraf": "^3.0.0", "@types/serve-handler": "^6.1.0", "@types/yargs": "^17.0.24", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "cross-fetch": "^3.1.5", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "execa": "^5.1.1", diff --git a/packages/snaps-cli/src/cli.ts b/packages/snaps-cli/src/cli.ts index 180c37ed20..eaf9bb329b 100644 --- a/packages/snaps-cli/src/cli.ts +++ b/packages/snaps-cli/src/cli.ts @@ -1,4 +1,4 @@ -// eslint-disable-next-line import/no-extraneous-dependencies +// eslint-disable-next-line import-x/no-extraneous-dependencies import packageJson from '@metamask/snaps-cli/package.json'; import type { SemVer } from 'semver'; import semver from 'semver'; diff --git a/packages/snaps-cli/src/commands/build/build.test.ts b/packages/snaps-cli/src/commands/build/build.test.ts index f8c774304c..143194e139 100644 --- a/packages/snaps-cli/src/commands/build/build.test.ts +++ b/packages/snaps-cli/src/commands/build/build.test.ts @@ -1,10 +1,10 @@ import { DEFAULT_SNAP_BUNDLE } from '@metamask/snaps-utils/test-utils'; import fs from 'fs'; -import { getMockConfig } from '../../test-utils'; -import { evaluate } from '../eval'; import { buildHandler } from './build'; import { build } from './implementation'; +import { getMockConfig } from '../../test-utils'; +import { evaluate } from '../eval'; jest.mock('fs'); jest.mock('../eval'); diff --git a/packages/snaps-cli/src/commands/build/build.ts b/packages/snaps-cli/src/commands/build/build.ts index e4166f98c2..92441fa338 100644 --- a/packages/snaps-cli/src/commands/build/build.ts +++ b/packages/snaps-cli/src/commands/build/build.ts @@ -1,12 +1,12 @@ import { isFile } from '@metamask/snaps-utils/node'; import { resolve as pathResolve } from 'path'; +import { build } from './implementation'; import type { ProcessedConfig, ProcessedWebpackConfig } from '../../config'; import { CommandError } from '../../errors'; import type { Steps } from '../../utils'; import { executeSteps, info } from '../../utils'; import { evaluate } from '../eval'; -import { build } from './implementation'; type BuildContext = { config: ProcessedWebpackConfig; @@ -57,6 +57,7 @@ const steps: Steps = [ * This creates the destination directory if it doesn't exist. * * @param config - The config object. + * @returns The result of the build. */ export async function buildHandler(config: ProcessedConfig): Promise { return await executeSteps(steps, { diff --git a/packages/snaps-cli/src/commands/build/implementation.test.ts b/packages/snaps-cli/src/commands/build/implementation.test.ts index 40e6246cc8..0ebc4e7f26 100644 --- a/packages/snaps-cli/src/commands/build/implementation.test.ts +++ b/packages/snaps-cli/src/commands/build/implementation.test.ts @@ -7,12 +7,12 @@ import normalFs from 'fs'; import { dirname, resolve } from 'path'; import type { Configuration } from 'webpack'; +import { build } from './implementation'; import { getMockConfig } from '../../test-utils'; import { getCompiler } from '../../webpack'; import type * as webpack from '../../webpack'; import type * as utils from '../../webpack/utils'; import { BROWSERSLIST_FILE } from '../../webpack/utils'; -import { build } from './implementation'; const { promises: fs } = normalFs; diff --git a/packages/snaps-cli/src/commands/build/index.ts b/packages/snaps-cli/src/commands/build/index.ts index 28b8c687c3..47eb8968ef 100644 --- a/packages/snaps-cli/src/commands/build/index.ts +++ b/packages/snaps-cli/src/commands/build/index.ts @@ -1,8 +1,8 @@ import type yargs from 'yargs'; +import { buildHandler } from './build'; import builders from '../../builders'; import type { YargsArgs } from '../../types/yargs'; -import { buildHandler } from './build'; const command = { command: ['build', 'b'], diff --git a/packages/snaps-cli/src/commands/eval/eval.ts b/packages/snaps-cli/src/commands/eval/eval.ts index b82f7906a0..1f8c91c6c0 100644 --- a/packages/snaps-cli/src/commands/eval/eval.ts +++ b/packages/snaps-cli/src/commands/eval/eval.ts @@ -1,11 +1,11 @@ import { isFile } from '@metamask/snaps-utils/node'; import { resolve } from 'path'; +import { evaluate } from './implementation'; import type { ProcessedConfig } from '../../config'; import { CommandError } from '../../errors'; import type { Steps } from '../../utils'; import { executeSteps, getRelativePath } from '../../utils'; -import { evaluate } from './implementation'; export type EvalOptions = { input?: string; diff --git a/packages/snaps-cli/src/commands/eval/implementation.ts b/packages/snaps-cli/src/commands/eval/implementation.ts index 7db18e2d50..218cf165cb 100644 --- a/packages/snaps-cli/src/commands/eval/implementation.ts +++ b/packages/snaps-cli/src/commands/eval/implementation.ts @@ -10,6 +10,7 @@ import { CommandError } from '../../errors'; * * @param path - The path to the bundle. * @throws If the bundle cannot be evaluated. + * @returns The status of the eval. */ export async function evaluate(path: string) { try { diff --git a/packages/snaps-cli/src/commands/eval/index.test.ts b/packages/snaps-cli/src/commands/eval/index.test.ts index e65cf831ba..8065dbf32f 100644 --- a/packages/snaps-cli/src/commands/eval/index.test.ts +++ b/packages/snaps-cli/src/commands/eval/index.test.ts @@ -1,7 +1,7 @@ import command from '.'; +import { evaluateHandler } from './eval'; import { getMockConfig } from '../../test-utils'; import type { YargsArgs } from '../../types/yargs'; -import { evaluateHandler } from './eval'; jest.mock('./eval'); diff --git a/packages/snaps-cli/src/commands/eval/index.ts b/packages/snaps-cli/src/commands/eval/index.ts index 700767590e..af3758131b 100644 --- a/packages/snaps-cli/src/commands/eval/index.ts +++ b/packages/snaps-cli/src/commands/eval/index.ts @@ -1,8 +1,8 @@ import type yargs from 'yargs'; +import { evaluateHandler } from './eval'; import builders from '../../builders'; import type { YargsArgs } from '../../types/yargs'; -import { evaluateHandler } from './eval'; const command = { command: ['eval', 'e'], diff --git a/packages/snaps-cli/src/commands/manifest/implementation.test.ts b/packages/snaps-cli/src/commands/manifest/implementation.test.ts index abaeffbd69..d50773fe9f 100644 --- a/packages/snaps-cli/src/commands/manifest/implementation.test.ts +++ b/packages/snaps-cli/src/commands/manifest/implementation.test.ts @@ -6,8 +6,8 @@ import { import normalFs from 'fs'; import ora from 'ora'; -import type * as webpack from '../../webpack'; import { manifest } from './implementation'; +import type * as webpack from '../../webpack'; const { promises: fs } = normalFs; diff --git a/packages/snaps-cli/src/commands/manifest/implementation.ts b/packages/snaps-cli/src/commands/manifest/implementation.ts index 12cd22f641..90ab9728c3 100644 --- a/packages/snaps-cli/src/commands/manifest/implementation.ts +++ b/packages/snaps-cli/src/commands/manifest/implementation.ts @@ -15,6 +15,7 @@ import { error, info, warn } from '../../utils'; * @param path - The path to the manifest file. * @param write - Whether to write the manifest to disk if it is invalid. * @param spinner - An optional spinner to use for logging. + * @returns Whether the manifest is valid. */ export async function manifest( path: string, diff --git a/packages/snaps-cli/src/commands/manifest/index.test.ts b/packages/snaps-cli/src/commands/manifest/index.test.ts index afa77959a5..237f234201 100644 --- a/packages/snaps-cli/src/commands/manifest/index.test.ts +++ b/packages/snaps-cli/src/commands/manifest/index.test.ts @@ -1,7 +1,7 @@ import command from '.'; +import { manifestHandler } from './manifest'; import { getMockConfig } from '../../test-utils'; import type { YargsArgs } from '../../types/yargs'; -import { manifestHandler } from './manifest'; jest.mock('./manifest'); diff --git a/packages/snaps-cli/src/commands/manifest/index.ts b/packages/snaps-cli/src/commands/manifest/index.ts index b871f46cfa..bf8a1308ca 100644 --- a/packages/snaps-cli/src/commands/manifest/index.ts +++ b/packages/snaps-cli/src/commands/manifest/index.ts @@ -1,8 +1,8 @@ import type yargs from 'yargs'; +import { manifestHandler } from './manifest'; import builders from '../../builders'; import type { YargsArgs } from '../../types/yargs'; -import { manifestHandler } from './manifest'; const command = { command: ['manifest', 'm'], diff --git a/packages/snaps-cli/src/commands/manifest/manifest.ts b/packages/snaps-cli/src/commands/manifest/manifest.ts index dd9bd7ff4c..d625a4c62c 100644 --- a/packages/snaps-cli/src/commands/manifest/manifest.ts +++ b/packages/snaps-cli/src/commands/manifest/manifest.ts @@ -1,10 +1,10 @@ import { isFile } from '@metamask/snaps-utils/node'; +import { manifest } from './implementation'; import type { ProcessedConfig } from '../../config'; import { CommandError } from '../../errors'; import type { Steps } from '../../utils'; import { executeSteps } from '../../utils'; -import { manifest } from './implementation'; type ManifestOptions = { fix?: boolean; diff --git a/packages/snaps-cli/src/commands/serve/index.test.ts b/packages/snaps-cli/src/commands/serve/index.test.ts index ff2ed42dee..d5c6ef56d0 100644 --- a/packages/snaps-cli/src/commands/serve/index.test.ts +++ b/packages/snaps-cli/src/commands/serve/index.test.ts @@ -1,7 +1,7 @@ import command from '.'; +import { serveHandler } from './serve'; import { getMockConfig } from '../../test-utils'; import type { YargsArgs } from '../../types/yargs'; -import { serveHandler } from './serve'; jest.mock('./serve'); diff --git a/packages/snaps-cli/src/commands/serve/index.ts b/packages/snaps-cli/src/commands/serve/index.ts index 2f3e85e2b2..7330faf12f 100644 --- a/packages/snaps-cli/src/commands/serve/index.ts +++ b/packages/snaps-cli/src/commands/serve/index.ts @@ -1,8 +1,8 @@ import type yargs from 'yargs'; +import { serveHandler } from './serve'; import builders from '../../builders'; import type { YargsArgs } from '../../types/yargs'; -import { serveHandler } from './serve'; const command = { command: ['serve', 's'], diff --git a/packages/snaps-cli/src/commands/serve/serve.test.ts b/packages/snaps-cli/src/commands/serve/serve.test.ts index 610364641b..c7691969f7 100644 --- a/packages/snaps-cli/src/commands/serve/serve.test.ts +++ b/packages/snaps-cli/src/commands/serve/serve.test.ts @@ -1,6 +1,6 @@ +import { serveHandler } from './serve'; import { getMockConfig } from '../../test-utils'; import * as webpack from '../../webpack'; -import { serveHandler } from './serve'; jest.mock('../../webpack'); diff --git a/packages/snaps-cli/src/commands/watch/implementation.test.ts b/packages/snaps-cli/src/commands/watch/implementation.test.ts index 0a879aa786..6ec3cb67b6 100644 --- a/packages/snaps-cli/src/commands/watch/implementation.test.ts +++ b/packages/snaps-cli/src/commands/watch/implementation.test.ts @@ -5,10 +5,10 @@ import { } from '@metamask/snaps-utils/test-utils'; import normalFs from 'fs'; +import { watch } from './implementation'; import { getMockConfig } from '../../test-utils'; import { getCompiler } from '../../webpack'; import type * as webpack from '../../webpack'; -import { watch } from './implementation'; const { promises: fs } = normalFs; diff --git a/packages/snaps-cli/src/commands/watch/index.test.ts b/packages/snaps-cli/src/commands/watch/index.test.ts index b4e16dd9df..6cdce57907 100644 --- a/packages/snaps-cli/src/commands/watch/index.test.ts +++ b/packages/snaps-cli/src/commands/watch/index.test.ts @@ -1,7 +1,7 @@ import command from '.'; +import { watchHandler } from './watch'; import { getMockConfig } from '../../test-utils'; import type { YargsArgs } from '../../types/yargs'; -import { watchHandler } from './watch'; jest.mock('./watch'); diff --git a/packages/snaps-cli/src/commands/watch/index.ts b/packages/snaps-cli/src/commands/watch/index.ts index 6d7d093cb3..8e1e499647 100644 --- a/packages/snaps-cli/src/commands/watch/index.ts +++ b/packages/snaps-cli/src/commands/watch/index.ts @@ -1,8 +1,8 @@ import type yargs from 'yargs'; +import { watchHandler } from './watch'; import builders from '../../builders'; import type { YargsArgs } from '../../types/yargs'; -import { watchHandler } from './watch'; const command = { command: ['watch', 'w'], diff --git a/packages/snaps-cli/src/commands/watch/watch.test.ts b/packages/snaps-cli/src/commands/watch/watch.test.ts index 22059a43e6..e6de712b56 100644 --- a/packages/snaps-cli/src/commands/watch/watch.test.ts +++ b/packages/snaps-cli/src/commands/watch/watch.test.ts @@ -2,9 +2,9 @@ import { getMockConfig } from '@metamask/snaps-cli/test-utils'; import { DEFAULT_SNAP_BUNDLE } from '@metamask/snaps-utils/test-utils'; import fs from 'fs'; -import * as webpack from '../../webpack'; import { watch } from './implementation'; import { watchHandler } from './watch'; +import * as webpack from '../../webpack'; jest.mock('fs'); jest.mock('../../webpack'); diff --git a/packages/snaps-cli/src/commands/watch/watch.ts b/packages/snaps-cli/src/commands/watch/watch.ts index 81ef64cea0..58d2b15a56 100644 --- a/packages/snaps-cli/src/commands/watch/watch.ts +++ b/packages/snaps-cli/src/commands/watch/watch.ts @@ -1,11 +1,11 @@ import { isFile } from '@metamask/snaps-utils/node'; +import { watch } from './implementation'; import type { ProcessedConfig, ProcessedWebpackConfig } from '../../config'; import { CommandError } from '../../errors'; import type { Steps } from '../../utils'; import { executeSteps, info } from '../../utils'; import { getServer } from '../../webpack'; -import { watch } from './implementation'; type WatchOptions = { /** diff --git a/packages/snaps-cli/src/test-utils/e2e.ts b/packages/snaps-cli/src/test-utils/e2e.ts index 2aa0015f05..ac98204128 100644 --- a/packages/snaps-cli/src/test-utils/e2e.ts +++ b/packages/snaps-cli/src/test-utils/e2e.ts @@ -85,6 +85,8 @@ export class TestRunner extends EventEmitter { /** * Wait for the process to exit. + * + * @returns The exit code of the process. */ async wait() { if (!this.running) { diff --git a/packages/snaps-cli/src/utils/errors.test.ts b/packages/snaps-cli/src/utils/errors.test.ts index 887db93828..b314360d3b 100644 --- a/packages/snaps-cli/src/utils/errors.test.ts +++ b/packages/snaps-cli/src/utils/errors.test.ts @@ -1,5 +1,5 @@ -import { CommandError } from '../errors'; import { getErrorMessage, getYargsErrorMessage } from './errors'; +import { CommandError } from '../errors'; describe('getYargsErrorMessage', () => { it('returns the plain message if the error is undefined', () => { diff --git a/packages/snaps-cli/src/utils/legacy.test.ts b/packages/snaps-cli/src/utils/legacy.test.ts index 0a79e558a8..0b2fb89160 100644 --- a/packages/snaps-cli/src/utils/legacy.test.ts +++ b/packages/snaps-cli/src/utils/legacy.test.ts @@ -1,11 +1,11 @@ import { getMockConfig } from '@metamask/snaps-cli/test-utils'; -import { TranspilationModes } from '../builders'; import { getDependencyRegExp, processDependencies, sanitizeDependencyPaths, } from './legacy'; +import { TranspilationModes } from '../builders'; describe('processDependencies', () => { it('returns an empty array when `transpilationMode` is not `localAndDeps`', () => { diff --git a/packages/snaps-cli/src/webpack/compiler.test.ts b/packages/snaps-cli/src/webpack/compiler.test.ts index c1776a8124..315f7afd77 100644 --- a/packages/snaps-cli/src/webpack/compiler.test.ts +++ b/packages/snaps-cli/src/webpack/compiler.test.ts @@ -2,8 +2,8 @@ import type { Configuration } from 'webpack'; import { Compiler } from 'webpack'; import merge from 'webpack-merge'; -import { getMockConfig } from '../test-utils'; import { getCompiler } from './compiler'; +import { getMockConfig } from '../test-utils'; jest.dontMock('fs'); jest.mock('serve-handler', () => diff --git a/packages/snaps-cli/src/webpack/compiler.ts b/packages/snaps-cli/src/webpack/compiler.ts index 40b3ace1bc..7f51b9b2a5 100644 --- a/packages/snaps-cli/src/webpack/compiler.ts +++ b/packages/snaps-cli/src/webpack/compiler.ts @@ -1,8 +1,8 @@ import { webpack } from 'webpack'; -import type { ProcessedWebpackConfig } from '../config'; import type { WebpackOptions } from './config'; import { getDefaultConfiguration } from './config'; +import type { ProcessedWebpackConfig } from '../config'; /** * Get a Webpack compiler for the given config. diff --git a/packages/snaps-cli/src/webpack/config.test.ts b/packages/snaps-cli/src/webpack/config.test.ts index afc7e27c7f..817708ffc4 100644 --- a/packages/snaps-cli/src/webpack/config.test.ts +++ b/packages/snaps-cli/src/webpack/config.test.ts @@ -2,8 +2,8 @@ import { promises as fs } from 'fs'; import ora from 'ora'; import { dirname } from 'path'; -import { getMockConfig, normalizeConfig } from '../test-utils'; import { getDefaultConfiguration } from './config'; +import { getMockConfig, normalizeConfig } from '../test-utils'; jest.mock('fs'); jest.mock('path', () => ({ diff --git a/packages/snaps-cli/src/webpack/config.ts b/packages/snaps-cli/src/webpack/config.ts index d377718e69..a3b85cdcaf 100644 --- a/packages/snaps-cli/src/webpack/config.ts +++ b/packages/snaps-cli/src/webpack/config.ts @@ -5,7 +5,6 @@ import TerserPlugin from 'terser-webpack-plugin'; import type { Configuration } from 'webpack'; import { DefinePlugin, ProgressPlugin, ProvidePlugin } from 'webpack'; -import type { ProcessedWebpackConfig } from '../config'; import { getFunctionLoader, wasm } from './loaders'; import { SnapsBuiltInResolver, @@ -22,6 +21,7 @@ import { getImageSVG, getProgressHandler, } from './utils'; +import type { ProcessedWebpackConfig } from '../config'; export type WebpackOptions = { /** diff --git a/packages/snaps-cli/src/webpack/loaders/browserify.ts b/packages/snaps-cli/src/webpack/loaders/browserify.ts index ca237a1c47..2b461a665a 100644 --- a/packages/snaps-cli/src/webpack/loaders/browserify.ts +++ b/packages/snaps-cli/src/webpack/loaders/browserify.ts @@ -18,6 +18,7 @@ import { getBrowserslistTargets } from '../utils'; * * @param content - The input file contents as a string. * @param sourceMap - The source map of the input file. + * @returns The Browserify loader. */ const loader: LoaderDefinitionFunction = async function ( content, diff --git a/packages/snaps-cli/src/webpack/loaders/function.ts b/packages/snaps-cli/src/webpack/loaders/function.ts index 3350448a2c..d0c944f289 100644 --- a/packages/snaps-cli/src/webpack/loaders/function.ts +++ b/packages/snaps-cli/src/webpack/loaders/function.ts @@ -18,7 +18,7 @@ export type FunctionLoaderOptions = { * @param content - The input file contents as a `Uint8Array`. * @returns The output of the function. */ -const loader: LoaderDefinitionFunction = function ( +const loader: LoaderDefinitionFunction = async function ( content, ) { const { fn } = this.getOptions(); diff --git a/packages/snaps-cli/src/webpack/plugins.test.ts b/packages/snaps-cli/src/webpack/plugins.test.ts index 58e4e0aa59..05d60e4766 100644 --- a/packages/snaps-cli/src/webpack/plugins.test.ts +++ b/packages/snaps-cli/src/webpack/plugins.test.ts @@ -4,14 +4,14 @@ import { promisify } from 'util'; import type { Compiler, Watching } from 'webpack'; import { WebpackError, ProvidePlugin } from 'webpack'; -import * as evalImplementation from '../commands/eval/implementation'; -import { compile, getCompiler } from '../test-utils'; import { SnapsBuiltInResolver, SnapsBundleWarningsPlugin, SnapsStatsPlugin, SnapsWatchPlugin, } from './plugins'; +import * as evalImplementation from '../commands/eval/implementation'; +import { compile, getCompiler } from '../test-utils'; jest.dontMock('fs'); jest.mock('../commands/eval/implementation'); diff --git a/packages/snaps-cli/src/webpack/plugins.ts b/packages/snaps-cli/src/webpack/plugins.ts index ca90580c7e..c3030a2a76 100644 --- a/packages/snaps-cli/src/webpack/plugins.ts +++ b/packages/snaps-cli/src/webpack/plugins.ts @@ -12,9 +12,9 @@ import type { } from 'webpack'; import { WebpackError } from 'webpack'; +import { formatText, pluralize } from './utils'; import { evaluate } from '../commands/eval'; import { error, getErrorMessage, info, warn } from '../utils'; -import { formatText, pluralize } from './utils'; export type SnapsStatsPluginOptions = { /** diff --git a/packages/snaps-cli/src/webpack/utils.test.ts b/packages/snaps-cli/src/webpack/utils.test.ts index 26a440f697..464c2d7ef6 100644 --- a/packages/snaps-cli/src/webpack/utils.test.ts +++ b/packages/snaps-cli/src/webpack/utils.test.ts @@ -1,7 +1,5 @@ import { dim } from 'chalk'; -import type { ProcessedWebpackConfig } from '../config'; -import { getMockConfig } from '../test-utils'; import { browserify } from './loaders'; import { WEBPACK_FALLBACKS, @@ -15,6 +13,8 @@ import { formatText, getImageSVG, } from './utils'; +import type { ProcessedWebpackConfig } from '../config'; +import { getMockConfig } from '../test-utils'; describe('getDefaultLoader', () => { it('returns the Browserify loader if `legacy` is set', async () => { diff --git a/packages/snaps-cli/src/webpack/utils.ts b/packages/snaps-cli/src/webpack/utils.ts index efe2dcfed1..2ea9a4b128 100644 --- a/packages/snaps-cli/src/webpack/utils.ts +++ b/packages/snaps-cli/src/webpack/utils.ts @@ -7,8 +7,8 @@ import { dirname, resolve } from 'path'; import stripAnsi from 'strip-ansi'; import type { Configuration } from 'webpack'; -import type { ProcessedWebpackConfig } from '../config'; import { browserify, getFunctionLoader } from './loaders'; +import type { ProcessedWebpackConfig } from '../config'; export const BROWSERSLIST_FILE = resolve( dirname( diff --git a/packages/snaps-controllers/package.json b/packages/snaps-controllers/package.json index cec30b479c..f5a6d5bdfb 100644 --- a/packages/snaps-controllers/package.json +++ b/packages/snaps-controllers/package.json @@ -84,10 +84,10 @@ "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", "@metamask/browser-passworder": "^5.0.0", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/template-snap": "^0.7.0", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", @@ -99,8 +99,8 @@ "@types/node": "18.14.2", "@types/readable-stream": "^2.3.15", "@types/tar-stream": "^3.1.1", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "@wdio/browser-runner": "^8.19.0", "@wdio/cli": "^8.19.0", "@wdio/globals": "^8.19.0", @@ -110,12 +110,12 @@ "deepmerge": "^4.2.2", "depcheck": "^1.4.7", "esbuild": "^0.18.10", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "expect-webdriverio": "^4.4.1", diff --git a/packages/snaps-controllers/src/cronjob/CronjobController.test.ts b/packages/snaps-controllers/src/cronjob/CronjobController.test.ts index a33f8ed9e7..e3e09164e9 100644 --- a/packages/snaps-controllers/src/cronjob/CronjobController.test.ts +++ b/packages/snaps-controllers/src/cronjob/CronjobController.test.ts @@ -5,12 +5,12 @@ import { MOCK_ORIGIN, MOCK_SNAP_ID } from '@metamask/snaps-utils/test-utils'; import type { SemVerVersion } from '@metamask/utils'; import { Duration, inMilliseconds } from '@metamask/utils'; +import { CronjobController } from './CronjobController'; import { getRestrictedCronjobControllerMessenger, getRootCronjobControllerMessenger, } from '../test-utils'; import { getCronjobPermission } from '../test-utils/cronjob'; -import { CronjobController } from './CronjobController'; const MOCK_VERSION = '1.0' as SemVerVersion; diff --git a/packages/snaps-controllers/src/cronjob/CronjobController.ts b/packages/snaps-controllers/src/cronjob/CronjobController.ts index 914771a514..6617e998ee 100644 --- a/packages/snaps-controllers/src/cronjob/CronjobController.ts +++ b/packages/snaps-controllers/src/cronjob/CronjobController.ts @@ -84,14 +84,14 @@ export class CronjobController extends BaseController< CronjobControllerState, CronjobControllerMessenger > { - #messenger: CronjobControllerMessenger; + readonly #messenger: CronjobControllerMessenger; #dailyTimer!: Timer; - #timers: Map; + readonly #timers: Map; // Mapping from jobId to snapId - #snapIds: Map; + readonly #snapIds: Map; constructor({ messenger, state }: CronjobControllerArgs) { super({ diff --git a/packages/snaps-controllers/src/insights/SnapInsightsController.test.ts b/packages/snaps-controllers/src/insights/SnapInsightsController.test.ts index 318921bff5..4ab55bcaa0 100644 --- a/packages/snaps-controllers/src/insights/SnapInsightsController.test.ts +++ b/packages/snaps-controllers/src/insights/SnapInsightsController.test.ts @@ -7,6 +7,7 @@ import { } from '@metamask/snaps-utils/test-utils'; import { nanoid } from 'nanoid'; +import { SnapInsightsController } from './SnapInsightsController'; import { getRestrictedSnapInsightsControllerMessenger, getRootSnapInsightsControllerMessenger, @@ -16,7 +17,6 @@ import { TYPED_SIGNATURE_MOCK, MOCK_INSIGHTS_PERMISSIONS_NO_ORIGINS, } from '../test-utils'; -import { SnapInsightsController } from './SnapInsightsController'; describe('SnapInsightsController', () => { it('adds insight for transactions', async () => { diff --git a/packages/snaps-controllers/src/interface/SnapInterfaceController.test.tsx b/packages/snaps-controllers/src/interface/SnapInterfaceController.test.tsx index 05400d3fdf..a54105ffcb 100644 --- a/packages/snaps-controllers/src/interface/SnapInterfaceController.test.tsx +++ b/packages/snaps-controllers/src/interface/SnapInterfaceController.test.tsx @@ -13,12 +13,12 @@ import { import { getJsxElementFromComponent } from '@metamask/snaps-utils'; import { MOCK_SNAP_ID } from '@metamask/snaps-utils/test-utils'; +import { SnapInterfaceController } from './SnapInterfaceController'; import { MockApprovalController, getRestrictedSnapInterfaceControllerMessenger, getRootSnapInterfaceControllerMessenger, } from '../test-utils'; -import { SnapInterfaceController } from './SnapInterfaceController'; describe('SnapInterfaceController', () => { describe('createInterface', () => { diff --git a/packages/snaps-controllers/src/node.ts b/packages/snaps-controllers/src/node.ts index b3c6706f5d..cf687b1926 100644 --- a/packages/snaps-controllers/src/node.ts +++ b/packages/snaps-controllers/src/node.ts @@ -1,4 +1,4 @@ -/* eslint-disable import/export */ +/* eslint-disable import-x/export */ export * from '.'; export * from './services/node'; diff --git a/packages/snaps-controllers/src/react-native.ts b/packages/snaps-controllers/src/react-native.ts index 7112e72260..a3948cbb95 100644 --- a/packages/snaps-controllers/src/react-native.ts +++ b/packages/snaps-controllers/src/react-native.ts @@ -1,4 +1,4 @@ -/* eslint-disable import/export */ +/* eslint-disable import-x/export */ export * from '.'; export * from './services/react-native'; diff --git a/packages/snaps-controllers/src/services/AbstractExecutionService.test.ts b/packages/snaps-controllers/src/services/AbstractExecutionService.test.ts index 49dc43740c..82cc62f154 100644 --- a/packages/snaps-controllers/src/services/AbstractExecutionService.test.ts +++ b/packages/snaps-controllers/src/services/AbstractExecutionService.test.ts @@ -3,9 +3,9 @@ import { HandlerType } from '@metamask/snaps-utils'; import { MOCK_SNAP_ID } from '@metamask/snaps-utils/test-utils'; import { Duration, inMilliseconds } from '@metamask/utils'; -import { createService } from '../test-utils'; import type { ExecutionServiceArgs } from './AbstractExecutionService'; import { NodeThreadExecutionService } from './node'; +import { createService } from '../test-utils'; class MockExecutionService extends NodeThreadExecutionService { constructor({ messenger, setupSnapProvider }: ExecutionServiceArgs) { diff --git a/packages/snaps-controllers/src/services/AbstractExecutionService.ts b/packages/snaps-controllers/src/services/AbstractExecutionService.ts index 31c6e0d9cf..f83b48388a 100644 --- a/packages/snaps-controllers/src/services/AbstractExecutionService.ts +++ b/packages/snaps-controllers/src/services/AbstractExecutionService.ts @@ -22,15 +22,15 @@ import { nanoid } from 'nanoid'; import { pipeline } from 'readable-stream'; import type { Duplex } from 'readable-stream'; -import { log } from '../logging'; -import { Timer } from '../snaps/Timer'; -import { hasTimedOut, withTimeout } from '../utils'; import type { ExecutionService, ExecutionServiceMessenger, SnapErrorJson, SnapExecutionData, } from './ExecutionService'; +import { log } from '../logging'; +import { Timer } from '../snaps/Timer'; +import { hasTimedOut, withTimeout } from '../utils'; const controllerName = 'ExecutionService'; @@ -64,7 +64,7 @@ export type TerminateJobArgs = Partial> & export abstract class AbstractExecutionService implements ExecutionService { - #snapRpcHooks: Map; + readonly #snapRpcHooks: Map; // Cannot be hash private yet because of tests. protected jobs: Map>; @@ -72,19 +72,19 @@ export abstract class AbstractExecutionService // Cannot be hash private yet because of tests. private readonly setupSnapProvider: SetupSnapProvider; - #snapToJobMap: Map; + readonly #snapToJobMap: Map; - #jobToSnapMap: Map; + readonly #jobToSnapMap: Map; - #messenger: ExecutionServiceMessenger; + readonly #messenger: ExecutionServiceMessenger; - #initTimeout: number; + readonly #initTimeout: number; - #pingTimeout: number; + readonly #pingTimeout: number; - #terminationTimeout: number; + readonly #terminationTimeout: number; - #usePing: boolean; + readonly #usePing: boolean; constructor({ setupSnapProvider, diff --git a/packages/snaps-controllers/src/services/iframe/IframeExecutionService.test.browser.ts b/packages/snaps-controllers/src/services/iframe/IframeExecutionService.test.browser.ts index e81f4decf0..ede30e4d95 100644 --- a/packages/snaps-controllers/src/services/iframe/IframeExecutionService.test.browser.ts +++ b/packages/snaps-controllers/src/services/iframe/IframeExecutionService.test.browser.ts @@ -7,8 +7,8 @@ import { } from '@metamask/snaps-utils/test-utils'; import { assert } from '@metamask/utils'; -import { createService, MOCK_BLOCK_NUMBER } from '../../test-utils'; import { IframeExecutionService } from './IframeExecutionService'; +import { createService, MOCK_BLOCK_NUMBER } from '../../test-utils'; const IFRAME_URL = 'http://localhost:4567'; diff --git a/packages/snaps-controllers/src/services/node-js/NodeProcessExecutionService.test.ts b/packages/snaps-controllers/src/services/node-js/NodeProcessExecutionService.test.ts index ef8a72d52f..be8ed95747 100644 --- a/packages/snaps-controllers/src/services/node-js/NodeProcessExecutionService.test.ts +++ b/packages/snaps-controllers/src/services/node-js/NodeProcessExecutionService.test.ts @@ -1,10 +1,10 @@ import { JsonRpcError } from '@metamask/rpc-errors'; import { HandlerType } from '@metamask/snaps-utils'; +import { NodeProcessExecutionService } from './NodeProcessExecutionService'; import { createService, MOCK_BLOCK_NUMBER } from '../../test-utils'; import { delay } from '../../utils'; import type { SnapErrorJson } from '../ExecutionService'; -import { NodeProcessExecutionService } from './NodeProcessExecutionService'; const ON_RPC_REQUEST = HandlerType.OnRpcRequest; diff --git a/packages/snaps-controllers/src/services/node-js/NodeThreadExecutionService.test.ts b/packages/snaps-controllers/src/services/node-js/NodeThreadExecutionService.test.ts index 96431c08fd..e94c6dc9d5 100644 --- a/packages/snaps-controllers/src/services/node-js/NodeThreadExecutionService.test.ts +++ b/packages/snaps-controllers/src/services/node-js/NodeThreadExecutionService.test.ts @@ -1,10 +1,10 @@ import { JsonRpcError } from '@metamask/rpc-errors'; import { HandlerType } from '@metamask/snaps-utils'; +import { NodeThreadExecutionService } from './NodeThreadExecutionService'; import { createService, MOCK_BLOCK_NUMBER } from '../../test-utils'; import { delay } from '../../utils'; import type { SnapErrorJson } from '../ExecutionService'; -import { NodeThreadExecutionService } from './NodeThreadExecutionService'; const ON_RPC_REQUEST = HandlerType.OnRpcRequest; diff --git a/packages/snaps-controllers/src/services/offscreen/OffscreenExecutionService.test.ts b/packages/snaps-controllers/src/services/offscreen/OffscreenExecutionService.test.ts index 7554f97197..42cf616f1a 100644 --- a/packages/snaps-controllers/src/services/offscreen/OffscreenExecutionService.test.ts +++ b/packages/snaps-controllers/src/services/offscreen/OffscreenExecutionService.test.ts @@ -9,9 +9,9 @@ import { isPlainObject, } from '@metamask/utils'; +import { OffscreenExecutionService } from './OffscreenExecutionService'; import { createService } from '../../test-utils'; import { getMockedFunction } from '../../test-utils/mock'; -import { OffscreenExecutionService } from './OffscreenExecutionService'; const OFFSCREEN_PROMISE = Promise.resolve(); diff --git a/packages/snaps-controllers/src/services/proxy/ProxyExecutionService.ts b/packages/snaps-controllers/src/services/proxy/ProxyExecutionService.ts index f646a132cb..0dcb71f807 100644 --- a/packages/snaps-controllers/src/services/proxy/ProxyExecutionService.ts +++ b/packages/snaps-controllers/src/services/proxy/ProxyExecutionService.ts @@ -63,6 +63,7 @@ export class ProxyExecutionService extends AbstractExecutionService { * in a stream specific to the job. * * @param jobId - The job ID. + * @returns An object with the job ID and stream. */ protected async initEnvStream(jobId: string) { const stream = new ProxyPostMessageStream({ diff --git a/packages/snaps-controllers/src/services/webview/WebViewExecutionService.test.ts b/packages/snaps-controllers/src/services/webview/WebViewExecutionService.test.ts index dbce1a6073..60ed290786 100644 --- a/packages/snaps-controllers/src/services/webview/WebViewExecutionService.test.ts +++ b/packages/snaps-controllers/src/services/webview/WebViewExecutionService.test.ts @@ -5,10 +5,10 @@ import { import type { Json, JsonRpcRequest } from '@metamask/utils'; import { isJsonRpcRequest, isPlainObject } from '@metamask/utils'; -import { createService } from '../../test-utils'; -import { parseInjectedJS } from '../../test-utils/webview'; import { WebViewExecutionService } from './WebViewExecutionService'; import type { WebViewInterface } from './WebViewMessageStream'; +import { createService } from '../../test-utils'; +import { parseInjectedJS } from '../../test-utils/webview'; /** * Create a response message for the given request. This function assumes that diff --git a/packages/snaps-controllers/src/services/webview/WebViewExecutionService.ts b/packages/snaps-controllers/src/services/webview/WebViewExecutionService.ts index 1750abe341..b9ddd9fae9 100644 --- a/packages/snaps-controllers/src/services/webview/WebViewExecutionService.ts +++ b/packages/snaps-controllers/src/services/webview/WebViewExecutionService.ts @@ -1,14 +1,14 @@ -import type { ExecutionServiceArgs } from '../AbstractExecutionService'; -import { ProxyExecutionService } from '../proxy/ProxyExecutionService'; import type { WebViewInterface } from './WebViewMessageStream'; import { WebViewMessageStream } from './WebViewMessageStream'; +import type { ExecutionServiceArgs } from '../AbstractExecutionService'; +import { ProxyExecutionService } from '../proxy/ProxyExecutionService'; export type WebViewExecutionServiceArgs = ExecutionServiceArgs & { getWebView: () => Promise; }; export class WebViewExecutionService extends ProxyExecutionService { - #getWebView; + readonly #getWebView; constructor({ messenger, @@ -32,6 +32,7 @@ export class WebViewExecutionService extends ProxyExecutionService { * in a stream specific to the job. * * @param jobId - The job ID. + * @returns An object with the job ID and stream. */ protected async initEnvStream(jobId: string) { // Ensure that the WebView has been loaded before we proceed. diff --git a/packages/snaps-controllers/src/services/webview/WebViewMessageStream.ts b/packages/snaps-controllers/src/services/webview/WebViewMessageStream.ts index 38cea65030..7423c872ed 100644 --- a/packages/snaps-controllers/src/services/webview/WebViewMessageStream.ts +++ b/packages/snaps-controllers/src/services/webview/WebViewMessageStream.ts @@ -21,9 +21,9 @@ type WebViewStreamArgs = { */ export class WebViewMessageStream extends BasePostMessageStream { - #name; + readonly #name; - #target; + readonly #target; #webView: WebViewInterface | undefined; diff --git a/packages/snaps-controllers/src/services/webworker/WebWorkerExecutionService.test.browser.ts b/packages/snaps-controllers/src/services/webworker/WebWorkerExecutionService.test.browser.ts index a9eb5e5c71..5e663d4d1a 100644 --- a/packages/snaps-controllers/src/services/webworker/WebWorkerExecutionService.test.browser.ts +++ b/packages/snaps-controllers/src/services/webworker/WebWorkerExecutionService.test.browser.ts @@ -7,11 +7,11 @@ import { spy, } from '@metamask/snaps-utils/test-utils'; -import { createService, MOCK_BLOCK_NUMBER } from '../../test-utils'; import { WebWorkerExecutionService, WORKER_POOL_ID, } from './WebWorkerExecutionService'; +import { createService, MOCK_BLOCK_NUMBER } from '../../test-utils'; const WORKER_POOL_URL = 'http://localhost:4567/worker/pool'; diff --git a/packages/snaps-controllers/src/services/webworker/WebWorkerExecutionService.ts b/packages/snaps-controllers/src/services/webworker/WebWorkerExecutionService.ts index 3a25027440..d935c42cb5 100644 --- a/packages/snaps-controllers/src/services/webworker/WebWorkerExecutionService.ts +++ b/packages/snaps-controllers/src/services/webworker/WebWorkerExecutionService.ts @@ -18,7 +18,7 @@ type WebWorkerExecutionEnvironmentServiceArgs = { export const WORKER_POOL_ID = 'snaps-worker-pool'; export class WebWorkerExecutionService extends AbstractExecutionService { - #documentUrl: URL; + readonly #documentUrl: URL; #runtimeStream?: BasePostMessageStream; @@ -70,6 +70,7 @@ export class WebWorkerExecutionService extends AbstractExecutionService * in a stream specific to the job. * * @param jobId - The job ID. + * @returns An object with the job ID and stream. */ protected async initEnvStream(jobId: string) { // Lazily create the worker pool document. diff --git a/packages/snaps-controllers/src/snaps/SnapController.test.tsx b/packages/snaps-controllers/src/snaps/SnapController.test.tsx index cd755ab439..8c6115909a 100644 --- a/packages/snaps-controllers/src/snaps/SnapController.test.tsx +++ b/packages/snaps-controllers/src/snaps/SnapController.test.tsx @@ -5,9 +5,9 @@ import { JsonRpcEngine, } from '@metamask/json-rpc-engine'; import { createEngineStream } from '@metamask/json-rpc-middleware-stream'; -import type { PermissionConstraint } from '@metamask/permission-controller'; -import { - SubjectType, +import { SubjectType } from '@metamask/permission-controller'; +import type { + PermissionConstraint, type Caveat, type SubjectPermissions, type ValidPermission, @@ -65,6 +65,14 @@ import fetchMock from 'jest-fetch-mock'; import { pipeline } from 'readable-stream'; import type { Duplex } from 'readable-stream'; +import { LEGACY_ENCRYPTION_KEY_DERIVATION_OPTIONS } from './constants'; +import { SnapsRegistryStatus } from './registry'; +import type { SnapControllerState } from './SnapController'; +import { + SNAP_APPROVAL_INSTALL, + SNAP_APPROVAL_RESULT, + SNAP_APPROVAL_UPDATE, +} from './SnapController'; import { setupMultiplex } from '../services'; import type { NodeThreadExecutionService } from '../services/node'; import { @@ -96,14 +104,6 @@ import { sleep, } from '../test-utils'; import { delay } from '../utils'; -import { LEGACY_ENCRYPTION_KEY_DERIVATION_OPTIONS } from './constants'; -import { SnapsRegistryStatus } from './registry'; -import type { SnapControllerState } from './SnapController'; -import { - SNAP_APPROVAL_INSTALL, - SNAP_APPROVAL_RESULT, - SNAP_APPROVAL_UPDATE, -} from './SnapController'; if (!('CryptoKey' in globalThis)) { // We can remove this once we drop Node 18 @@ -3869,7 +3869,7 @@ describe('SnapController', () => { // we need an rpc message handler function to be returned jest .spyOn(messenger, 'call') - .mockImplementation((method, ..._args: unknown[]) => { + .mockImplementation(async (method, ..._args: unknown[]) => { if (method === 'ExecutionService:executeSnap') { return deferredExecutePromise; } else if (method === 'ExecutionService:handleRpcRequest') { diff --git a/packages/snaps-controllers/src/snaps/SnapController.ts b/packages/snaps-controllers/src/snaps/SnapController.ts index 41e20cadc3..d35cb743ad 100644 --- a/packages/snaps-controllers/src/snaps/SnapController.ts +++ b/packages/snaps-controllers/src/snaps/SnapController.ts @@ -105,6 +105,24 @@ import { createMachine, interpret } from '@xstate/fsm'; import type { Patch } from 'immer'; import { nanoid } from 'nanoid'; +import { + ALLOWED_PERMISSIONS, + LEGACY_ENCRYPTION_KEY_DERIVATION_OPTIONS, +} from './constants'; +import type { SnapLocation } from './location'; +import { detectSnapLocation } from './location'; +import type { + GetMetadata, + GetResult, + ResolveVersion, + SnapsRegistryInfo, + SnapsRegistryMetadata, + SnapsRegistryRequest, + Update, +} from './registry'; +import { SnapsRegistryStatus } from './registry'; +import { RequestQueue } from './RequestQueue'; +import { Timer } from './Timer'; import { forceStrict, validateMachine } from '../fsm'; import type { CreateInterface, GetInterface } from '../interface'; import { log } from '../logging'; @@ -116,8 +134,8 @@ import type { TerminateAllSnapsAction, TerminateSnapAction, } from '../services'; -import type { EncryptionResult } from '../types'; -import { +import type { + EncryptionResult, type ExportableKeyEncryptor, type KeyDerivationOptions, } from '../types'; @@ -128,24 +146,6 @@ import { setDiff, withTimeout, } from '../utils'; -import { - ALLOWED_PERMISSIONS, - LEGACY_ENCRYPTION_KEY_DERIVATION_OPTIONS, -} from './constants'; -import type { SnapLocation } from './location'; -import { detectSnapLocation } from './location'; -import type { - GetMetadata, - GetResult, - ResolveVersion, - SnapsRegistryInfo, - SnapsRegistryMetadata, - SnapsRegistryRequest, - Update, -} from './registry'; -import { SnapsRegistryStatus } from './registry'; -import { RequestQueue } from './RequestQueue'; -import { Timer } from './Timer'; export const controllerName = 'SnapController'; @@ -739,36 +739,36 @@ export class SnapController extends BaseController< SnapControllerState, SnapControllerMessenger > { - #closeAllConnections?: CloseAllConnectionsFunction; + readonly #closeAllConnections?: CloseAllConnectionsFunction; - #dynamicPermissions: string[]; + readonly #dynamicPermissions: string[]; - #environmentEndowmentPermissions: string[]; + readonly #environmentEndowmentPermissions: string[]; - #excludedPermissions: Record; + readonly #excludedPermissions: Record; - #featureFlags: FeatureFlags; + readonly #featureFlags: FeatureFlags; - #fetchFunction: typeof fetch; + readonly #fetchFunction: typeof fetch; - #idleTimeCheckInterval: number; + readonly #idleTimeCheckInterval: number; - #maxIdleTime: number; + readonly #maxIdleTime: number; // This property cannot be hash private yet because of tests. private readonly maxRequestTime: number; - #encryptor: ExportableKeyEncryptor; + readonly #encryptor: ExportableKeyEncryptor; - #getMnemonic: () => Promise; + readonly #getMnemonic: () => Promise; - #getFeatureFlags: () => DynamicFeatureFlags; + readonly #getFeatureFlags: () => DynamicFeatureFlags; - #detectSnapLocation: typeof detectSnapLocation; + readonly #detectSnapLocation: typeof detectSnapLocation; - #snapsRuntimeData: Map; + readonly #snapsRuntimeData: Map; - #rollbackSnapshots: Map; + readonly #rollbackSnapshots: Map; #timeoutForLastRequestStatus?: number; @@ -778,7 +778,7 @@ export class SnapController extends BaseController< StatusStates >; - #preinstalledSnaps: PreinstalledSnap[] | null; + readonly #preinstalledSnaps: PreinstalledSnap[] | null; constructor({ closeAllConnections, @@ -1411,7 +1411,7 @@ export class SnapController extends BaseController< * @param snapId - The id of the snap to transition. * @param event - The event enum to use to transition. */ - #transition(snapId: SnapId, event: StatusEvents | StatusEvents['type']) { + #transition(snapId: SnapId, event: StatusEvents) { const { interpreter } = this.#getRuntimeExpect(snapId); interpreter.send(event); this.update((state: any) => { diff --git a/packages/snaps-controllers/src/snaps/location/http.test.ts b/packages/snaps-controllers/src/snaps/location/http.test.ts index e17310ec68..8ed2004526 100644 --- a/packages/snaps-controllers/src/snaps/location/http.test.ts +++ b/packages/snaps-controllers/src/snaps/location/http.test.ts @@ -115,7 +115,7 @@ describe('HttpLocation', () => { assert(manifestFile.result.source.location.npm.iconPath !== undefined); const iconFile = await location.fetch( // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - manifest.source.location.npm.iconPath!, + manifest.source.location.npm.iconPath, ); expect(manifestFile.path).toBe(NpmSnapFileNames.Manifest); diff --git a/packages/snaps-controllers/src/snaps/registry/json.test.ts b/packages/snaps-controllers/src/snaps/registry/json.test.ts index b31afd1f78..9ffbc10f23 100644 --- a/packages/snaps-controllers/src/snaps/registry/json.test.ts +++ b/packages/snaps-controllers/src/snaps/registry/json.test.ts @@ -6,10 +6,10 @@ import { import type { SemVerRange, SemVerVersion } from '@metamask/utils'; import fetchMock from 'jest-fetch-mock'; -import { getRestrictedSnapsRegistryControllerMessenger } from '../../test-utils'; import type { JsonSnapsRegistryArgs } from './json'; import { JsonSnapsRegistry } from './json'; import { SnapsRegistryStatus } from './registry'; +import { getRestrictedSnapsRegistryControllerMessenger } from '../../test-utils'; // Public key for the private key: // `0x541c6759fd86c69eceb8d792d7174623db139d81a5b560aa026afcb2dd1bb21c`. diff --git a/packages/snaps-controllers/src/snaps/registry/json.ts b/packages/snaps-controllers/src/snaps/registry/json.ts index e5b4066722..98dbcfd68f 100644 --- a/packages/snaps-controllers/src/snaps/registry/json.ts +++ b/packages/snaps-controllers/src/snaps/registry/json.ts @@ -100,15 +100,15 @@ export class JsonSnapsRegistry extends BaseController< SnapsRegistryState, SnapsRegistryMessenger > { - #url: JsonSnapsRegistryUrl; + readonly #url: JsonSnapsRegistryUrl; - #publicKey: Hex; + readonly #publicKey: Hex; - #fetchFunction: typeof fetch; + readonly #fetchFunction: typeof fetch; - #recentFetchThreshold: number; + readonly #recentFetchThreshold: number; - #refetchOnAllowlistMiss: boolean; + readonly #refetchOnAllowlistMiss: boolean; #currentUpdate: Promise | null; diff --git a/packages/snaps-controllers/src/test-utils/controller.ts b/packages/snaps-controllers/src/test-utils/controller.ts index bcb7e27708..d4a02e5f5b 100644 --- a/packages/snaps-controllers/src/test-utils/controller.ts +++ b/packages/snaps-controllers/src/test-utils/controller.ts @@ -34,6 +34,9 @@ import { } from '@metamask/snaps-utils/test-utils'; import type { Json } from '@metamask/utils'; +import { MOCK_CRONJOB_PERMISSION } from './cronjob'; +import { getNodeEES, getNodeEESMessenger } from './execution-environment'; +import { MockSnapsRegistry } from './registry'; import type { CronjobControllerActions, CronjobControllerEvents, @@ -58,9 +61,6 @@ import type { } from '../snaps'; import { SnapController } from '../snaps'; import type { KeyDerivationOptions } from '../types'; -import { MOCK_CRONJOB_PERMISSION } from './cronjob'; -import { getNodeEES, getNodeEESMessenger } from './execution-environment'; -import { MockSnapsRegistry } from './registry'; const asyncNoOp = async () => Promise.resolve(); diff --git a/packages/snaps-controllers/src/test-utils/location.ts b/packages/snaps-controllers/src/test-utils/location.ts index 28fac69cca..bb22d04150 100644 --- a/packages/snaps-controllers/src/test-utils/location.ts +++ b/packages/snaps-controllers/src/test-utils/location.ts @@ -45,15 +45,15 @@ const coerceManifest = (manifest: VirtualFile) => { }; export class LoopbackLocation implements SnapLocation { - #manifest: VirtualFile; + readonly #manifest: VirtualFile; - #files: VirtualFile[]; + readonly #files: VirtualFile[]; - #shouldAlwaysReload: boolean; + readonly #shouldAlwaysReload: boolean; - #requestedRange: SemVerRange; + readonly #requestedRange: SemVerRange; - #resolveVersion: (range: SemVerRange) => Promise; + readonly #resolveVersion: (range: SemVerRange) => Promise; constructor(opts: LoopbackOptions = {}) { this.#requestedRange = opts.versionRange ?? DEFAULT_REQUESTED_SNAP_VERSION; diff --git a/packages/snaps-controllers/src/test-utils/service.ts b/packages/snaps-controllers/src/test-utils/service.ts index 90f150b493..25c86aab3a 100644 --- a/packages/snaps-controllers/src/test-utils/service.ts +++ b/packages/snaps-controllers/src/test-utils/service.ts @@ -5,9 +5,9 @@ import { logError } from '@metamask/snaps-utils'; import { pipeline } from 'readable-stream'; import type { Duplex } from 'readable-stream'; +import { MOCK_BLOCK_NUMBER } from './execution-environment'; import type { ErrorMessageEvent } from '../services'; import { setupMultiplex } from '../services'; -import { MOCK_BLOCK_NUMBER } from './execution-environment'; export const createService = < Service extends new (...args: any[]) => InstanceType, diff --git a/packages/snaps-controllers/src/types/vendor/global.d.ts b/packages/snaps-controllers/src/types/vendor/global.d.ts index 1248143236..17558b4f57 100644 --- a/packages/snaps-controllers/src/types/vendor/global.d.ts +++ b/packages/snaps-controllers/src/types/vendor/global.d.ts @@ -1,6 +1,6 @@ export {}; -// eslint-disable-next-line import/unambiguous +// eslint-disable-next-line import-x/unambiguous declare global { class DecompressionStream extends TransformStream { constructor(format?: string); diff --git a/packages/snaps-controllers/src/types/vendor/readable-stream.d.ts b/packages/snaps-controllers/src/types/vendor/readable-stream.d.ts index aa889f68e1..2a8eea8212 100644 --- a/packages/snaps-controllers/src/types/vendor/readable-stream.d.ts +++ b/packages/snaps-controllers/src/types/vendor/readable-stream.d.ts @@ -1,4 +1,4 @@ -// eslint-disable-next-line import/unambiguous +// eslint-disable-next-line import-x/unambiguous declare module 'readable-stream' { export type { DuplexOptions, diff --git a/packages/snaps-controllers/src/types/vendor/zlib.d.ts b/packages/snaps-controllers/src/types/vendor/zlib.d.ts index 4204288596..a076411286 100644 --- a/packages/snaps-controllers/src/types/vendor/zlib.d.ts +++ b/packages/snaps-controllers/src/types/vendor/zlib.d.ts @@ -1,4 +1,4 @@ -// eslint-disable-next-line import/unambiguous +// eslint-disable-next-line import-x/unambiguous declare module 'browserify-zlib' { import type { Transform } from 'readable-stream'; diff --git a/packages/snaps-controllers/src/utils.test.ts b/packages/snaps-controllers/src/utils.test.ts index 2abc7b8974..26e1a802cf 100644 --- a/packages/snaps-controllers/src/utils.test.ts +++ b/packages/snaps-controllers/src/utils.test.ts @@ -5,7 +5,6 @@ import { } from '@metamask/snaps-utils/test-utils'; import { assert } from '@metamask/utils'; -import { SnapEndowments } from '../../snaps-rpc-methods/src/endowments'; import { LoopbackLocation, MOCK_ALLOWED_RPC_ORIGINS_PERMISSION, @@ -15,6 +14,7 @@ import { MOCK_SNAP_DIALOG_PERMISSION, } from './test-utils'; import { getSnapFiles, permissionsDiff, setDiff } from './utils'; +import { SnapEndowments } from '../../snaps-rpc-methods/src/endowments'; describe('setDiff', () => { it('does nothing on empty type {}-B', () => { diff --git a/packages/snaps-controllers/wdio.config.js b/packages/snaps-controllers/wdio.config.js index 3f159c6f0e..0d595b86e0 100644 --- a/packages/snaps-controllers/wdio.config.js +++ b/packages/snaps-controllers/wdio.config.js @@ -1,4 +1,4 @@ -/* eslint-disable import/unambiguous, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires, n/no-process-env */ +/* eslint-disable import-x/unambiguous, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires, n/no-process-env */ const { NodeGlobalsPolyfillPlugin, diff --git a/packages/snaps-execution-environments/lavamoat/browserify/iframe/policy.json b/packages/snaps-execution-environments/lavamoat/browserify/iframe/policy.json index dfbe254cd1..819bf4ac35 100644 --- a/packages/snaps-execution-environments/lavamoat/browserify/iframe/policy.json +++ b/packages/snaps-execution-environments/lavamoat/browserify/iframe/policy.json @@ -180,13 +180,7 @@ "console.error": true }, "packages": { - "browserify>process": true, - "depcheck>semver>lru-cache": true - } - }, - "depcheck>semver>lru-cache": { - "packages": { - "depcheck>semver>lru-cache>yallist": true + "browserify>process": true } }, "readable-stream": { diff --git a/packages/snaps-execution-environments/lavamoat/browserify/node-process/policy.json b/packages/snaps-execution-environments/lavamoat/browserify/node-process/policy.json index b86f744573..89d78c05b4 100644 --- a/packages/snaps-execution-environments/lavamoat/browserify/node-process/policy.json +++ b/packages/snaps-execution-environments/lavamoat/browserify/node-process/policy.json @@ -201,14 +201,6 @@ "globals": { "console.error": true, "process": true - }, - "packages": { - "depcheck>semver>lru-cache": true - } - }, - "depcheck>semver>lru-cache": { - "packages": { - "depcheck>semver>lru-cache>yallist": true } }, "istanbul-lib-report>supports-color>has-flag": { diff --git a/packages/snaps-execution-environments/lavamoat/browserify/node-thread/policy.json b/packages/snaps-execution-environments/lavamoat/browserify/node-thread/policy.json index b86f744573..89d78c05b4 100644 --- a/packages/snaps-execution-environments/lavamoat/browserify/node-thread/policy.json +++ b/packages/snaps-execution-environments/lavamoat/browserify/node-thread/policy.json @@ -201,14 +201,6 @@ "globals": { "console.error": true, "process": true - }, - "packages": { - "depcheck>semver>lru-cache": true - } - }, - "depcheck>semver>lru-cache": { - "packages": { - "depcheck>semver>lru-cache>yallist": true } }, "istanbul-lib-report>supports-color>has-flag": { diff --git a/packages/snaps-execution-environments/lavamoat/browserify/webview/policy.json b/packages/snaps-execution-environments/lavamoat/browserify/webview/policy.json index 9a320a6b25..08552e1b12 100644 --- a/packages/snaps-execution-environments/lavamoat/browserify/webview/policy.json +++ b/packages/snaps-execution-environments/lavamoat/browserify/webview/policy.json @@ -125,13 +125,7 @@ "console.error": true }, "packages": { - "browserify>process": true, - "depcheck>semver>lru-cache": true - } - }, - "depcheck>semver>lru-cache": { - "packages": { - "depcheck>semver>lru-cache>yallist": true + "browserify>process": true } }, "readable-stream": { diff --git a/packages/snaps-execution-environments/lavamoat/browserify/worker-executor/policy.json b/packages/snaps-execution-environments/lavamoat/browserify/worker-executor/policy.json index dfbe254cd1..819bf4ac35 100644 --- a/packages/snaps-execution-environments/lavamoat/browserify/worker-executor/policy.json +++ b/packages/snaps-execution-environments/lavamoat/browserify/worker-executor/policy.json @@ -180,13 +180,7 @@ "console.error": true }, "packages": { - "browserify>process": true, - "depcheck>semver>lru-cache": true - } - }, - "depcheck>semver>lru-cache": { - "packages": { - "depcheck>semver>lru-cache>yallist": true + "browserify>process": true } }, "readable-stream": { diff --git a/packages/snaps-execution-environments/lavamoat/browserify/worker-pool/policy.json b/packages/snaps-execution-environments/lavamoat/browserify/worker-pool/policy.json index 9a320a6b25..08552e1b12 100644 --- a/packages/snaps-execution-environments/lavamoat/browserify/worker-pool/policy.json +++ b/packages/snaps-execution-environments/lavamoat/browserify/worker-pool/policy.json @@ -125,13 +125,7 @@ "console.error": true }, "packages": { - "browserify>process": true, - "depcheck>semver>lru-cache": true - } - }, - "depcheck>semver>lru-cache": { - "packages": { - "depcheck>semver>lru-cache>yallist": true + "browserify>process": true } }, "readable-stream": { diff --git a/packages/snaps-execution-environments/lavamoat/build-system/policy.json b/packages/snaps-execution-environments/lavamoat/build-system/policy.json index 41f03af11f..5a76664087 100644 --- a/packages/snaps-execution-environments/lavamoat/build-system/policy.json +++ b/packages/snaps-execution-environments/lavamoat/build-system/policy.json @@ -449,10 +449,10 @@ "@babel/preset-env>@babel/plugin-transform-classes>@babel/helper-annotate-as-pure": true, "@babel/preset-env>@babel/plugin-transform-classes>@babel/helper-optimise-call-expression": true, "@babel/preset-env>@babel/plugin-transform-classes>@babel/helper-replace-supers": true, + "@babel/preset-env>@babel/plugin-transform-classes>globals": true, "depcheck>@babel/traverse>@babel/helper-environment-visitor": true, "depcheck>@babel/traverse>@babel/helper-function-name": true, - "depcheck>@babel/traverse>@babel/helper-split-export-declaration": true, - "depcheck>@babel/traverse>globals": true + "depcheck>@babel/traverse>@babel/helper-split-export-declaration": true } }, "@babel/preset-env>@babel/plugin-transform-classes>@babel/helper-annotate-as-pure": { @@ -1056,7 +1056,7 @@ }, "packages": { "babel-plugin-tsconfig-paths-module-resolver>babel-plugin-module-resolver": true, - "eslint-plugin-import>tsconfig-paths": true + "babel-plugin-tsconfig-paths-module-resolver>tsconfig-paths": true } }, "babel-plugin-tsconfig-paths-module-resolver>babel-plugin-module-resolver": { @@ -1137,6 +1137,38 @@ "fs.accessSync": true } }, + "babel-plugin-tsconfig-paths-module-resolver>tsconfig-paths": { + "builtin": { + "fs.existsSync": true, + "fs.lstatSync": true, + "fs.readFile": true, + "fs.readFileSync": true, + "fs.stat": true, + "fs.statSync": true, + "module._resolveFilename": true, + "module.builtinModules": true, + "path.dirname": true, + "path.isAbsolute": true, + "path.join": true, + "path.resolve": true + }, + "globals": { + "console.warn": true, + "process.argv.slice": true, + "process.cwd": true, + "process.env": true + }, + "packages": { + "babel-plugin-tsconfig-paths-module-resolver>tsconfig-paths>json5": true, + "babel-plugin-tsconfig-paths-module-resolver>tsconfig-paths>strip-bom": true, + "browserify>subarg>minimist": true + } + }, + "babel-plugin-tsconfig-paths-module-resolver>tsconfig-paths>json5": { + "globals": { + "console.warn": true + } + }, "babelify": { "builtin": { "path.extname": true, @@ -1807,7 +1839,7 @@ }, "browserify>util>is-typed-array>gopd": { "packages": { - "eslint-plugin-import>array-includes>get-intrinsic": true + "lavamoat>json-stable-stringify>call-bind>get-intrinsic": true } }, "depcheck>@babel/traverse": { @@ -1848,7 +1880,12 @@ "process.versions": true }, "packages": { - "browserify>has": true + "depcheck>is-core-module>hasown": true + } + }, + "depcheck>is-core-module>hasown": { + "packages": { + "browserify>has>function-bind": true } }, "depcheck>json5": { @@ -1899,70 +1936,6 @@ "globals": { "console.error": true, "process": true - }, - "packages": { - "depcheck>semver>lru-cache": true - } - }, - "depcheck>semver>lru-cache": { - "packages": { - "depcheck>semver>lru-cache>yallist": true - } - }, - "eslint-plugin-import>array-includes>get-intrinsic": { - "globals": { - "AggregateError": true, - "FinalizationRegistry": true, - "WeakRef": true - }, - "packages": { - "browserify>has>function-bind": true, - "eslint-plugin-import>array-includes>get-intrinsic>has-proto": true, - "eslint-plugin-import>array-includes>get-intrinsic>hasown": true, - "eslint-plugin-import>object.values>es-abstract>has-symbols": true, - "lavamoat>json-stable-stringify>call-bind>es-errors": true - } - }, - "eslint-plugin-import>array-includes>get-intrinsic>hasown": { - "packages": { - "browserify>has>function-bind": true - } - }, - "eslint-plugin-import>object.values>es-abstract>has-property-descriptors": { - "packages": { - "eslint-plugin-import>array-includes>get-intrinsic": true - } - }, - "eslint-plugin-import>tsconfig-paths": { - "builtin": { - "fs.existsSync": true, - "fs.lstatSync": true, - "fs.readFile": true, - "fs.readFileSync": true, - "fs.stat": true, - "fs.statSync": true, - "module._resolveFilename": true, - "module.builtinModules": true, - "path.dirname": true, - "path.isAbsolute": true, - "path.join": true, - "path.resolve": true - }, - "globals": { - "console.warn": true, - "process.argv.slice": true, - "process.cwd": true, - "process.env": true - }, - "packages": { - "browserify>subarg>minimist": true, - "eslint-plugin-import>tsconfig-paths>json5": true, - "eslint-plugin-import>tsconfig-paths>strip-bom": true - } - }, - "eslint-plugin-import>tsconfig-paths>json5": { - "globals": { - "console.warn": true } }, "eslint>chalk>ansi-styles": { @@ -2193,26 +2166,45 @@ "lavamoat>json-stable-stringify>call-bind": { "packages": { "browserify>has>function-bind": true, - "eslint-plugin-import>array-includes>get-intrinsic": true, "lavamoat>json-stable-stringify>call-bind>es-errors": true, + "lavamoat>json-stable-stringify>call-bind>get-intrinsic": true, "lavamoat>json-stable-stringify>call-bind>set-function-length": true } }, + "lavamoat>json-stable-stringify>call-bind>get-intrinsic": { + "globals": { + "AggregateError": true, + "FinalizationRegistry": true, + "WeakRef": true + }, + "packages": { + "browserify>has>function-bind": true, + "depcheck>is-core-module>hasown": true, + "lavamoat>json-stable-stringify>call-bind>es-errors": true, + "lavamoat>json-stable-stringify>call-bind>get-intrinsic>has-proto": true, + "lavamoat>json-stable-stringify>call-bind>get-intrinsic>has-symbols": true + } + }, "lavamoat>json-stable-stringify>call-bind>set-function-length": { "packages": { "browserify>util>is-typed-array>gopd": true, - "eslint-plugin-import>array-includes>get-intrinsic": true, - "eslint-plugin-import>object.values>es-abstract>has-property-descriptors": true, "lavamoat>json-stable-stringify>call-bind>es-errors": true, - "lavamoat>json-stable-stringify>call-bind>set-function-length>define-data-property": true + "lavamoat>json-stable-stringify>call-bind>get-intrinsic": true, + "lavamoat>json-stable-stringify>call-bind>set-function-length>define-data-property": true, + "lavamoat>json-stable-stringify>call-bind>set-function-length>has-property-descriptors": true } }, "lavamoat>json-stable-stringify>call-bind>set-function-length>define-data-property": { "packages": { "browserify>util>is-typed-array>gopd": true, - "eslint-plugin-import>array-includes>get-intrinsic": true, - "eslint-plugin-import>object.values>es-abstract>has-property-descriptors": true, - "lavamoat>json-stable-stringify>call-bind>es-errors": true + "lavamoat>json-stable-stringify>call-bind>es-errors": true, + "lavamoat>json-stable-stringify>call-bind>get-intrinsic": true, + "lavamoat>json-stable-stringify>call-bind>set-function-length>has-property-descriptors": true + } + }, + "lavamoat>json-stable-stringify>call-bind>set-function-length>has-property-descriptors": { + "packages": { + "lavamoat>json-stable-stringify>call-bind>get-intrinsic": true } }, "lavamoat>lavamoat-core": { diff --git a/packages/snaps-execution-environments/package.json b/packages/snaps-execution-environments/package.json index 6bc3f95d00..76700d21a4 100644 --- a/packages/snaps-execution-environments/package.json +++ b/packages/snaps-execution-environments/package.json @@ -73,17 +73,17 @@ "@lavamoat/lavapack": "^6.1.1", "@lavamoat/lavatube": "^1.0.0", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", "@types/express": "^4.17.17", "@types/jest": "^27.5.1", "@types/node": "18.14.2", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "@wdio/browser-runner": "^8.19.0", "@wdio/cli": "^8.19.0", "@wdio/globals": "^8.19.0", @@ -96,12 +96,12 @@ "deepmerge": "^4.2.2", "depcheck": "^1.4.7", "esbuild": "^0.18.10", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "expect-webdriverio": "^4.4.1", diff --git a/packages/snaps-execution-environments/src/common/BaseSnapExecutor.test.browser.ts b/packages/snaps-execution-environments/src/common/BaseSnapExecutor.test.browser.ts index cddf7bbfde..206319463c 100644 --- a/packages/snaps-execution-environments/src/common/BaseSnapExecutor.test.browser.ts +++ b/packages/snaps-execution-environments/src/common/BaseSnapExecutor.test.browser.ts @@ -1,4 +1,4 @@ -/* eslint-disable @typescript-eslint/restrict-template-expressions, @typescript-eslint/no-shadow, import/no-unassigned-import */ +/* eslint-disable @typescript-eslint/restrict-template-expressions, @typescript-eslint/no-shadow, import-x/no-unassigned-import */ import { UserInputEventType } from '@metamask/snaps-sdk'; import { HandlerType } from '@metamask/snaps-utils'; diff --git a/packages/snaps-execution-environments/src/common/BaseSnapExecutor.ts b/packages/snaps-execution-environments/src/common/BaseSnapExecutor.ts index a6de058aa9..afbebafc3c 100644 --- a/packages/snaps-execution-environments/src/common/BaseSnapExecutor.ts +++ b/packages/snaps-execution-environments/src/common/BaseSnapExecutor.ts @@ -35,7 +35,6 @@ import { } from '@metamask/utils'; import type { Duplex } from 'readable-stream'; -import { log } from '../logging'; import type { CommandMethodsMapping } from './commands'; import { getCommandMethodImplementations } from './commands'; import { createEndowments } from './endowments'; @@ -55,6 +54,7 @@ import { SnapRpcRequestArgumentsStruct, TerminateRequestArgumentsStruct, } from './validation'; +import { log } from '../logging'; type EvaluationData = { stop: () => void; diff --git a/packages/snaps-execution-environments/src/common/endowments/commonEndowmentFactory.ts b/packages/snaps-execution-environments/src/common/endowments/commonEndowmentFactory.ts index b05678de65..c1f1a9e25e 100644 --- a/packages/snaps-execution-environments/src/common/endowments/commonEndowmentFactory.ts +++ b/packages/snaps-execution-environments/src/common/endowments/commonEndowmentFactory.ts @@ -1,5 +1,3 @@ -import type { NotifyFunction } from '../BaseSnapExecutor'; -import { rootRealmGlobal } from '../globalObject'; import consoleEndowment from './console'; import crypto from './crypto'; import date from './date'; @@ -9,6 +7,8 @@ import network from './network'; import textDecoder from './textDecoder'; import textEncoder from './textEncoder'; import timeout from './timeout'; +import type { NotifyFunction } from '../BaseSnapExecutor'; +import { rootRealmGlobal } from '../globalObject'; export type EndowmentFactoryOptions = { snapId?: string; diff --git a/packages/snaps-execution-environments/src/common/endowments/console.test.ts b/packages/snaps-execution-environments/src/common/endowments/console.test.ts index d4c242d95c..61f628dcac 100644 --- a/packages/snaps-execution-environments/src/common/endowments/console.test.ts +++ b/packages/snaps-execution-environments/src/common/endowments/console.test.ts @@ -1,10 +1,10 @@ import { MOCK_SNAP_ID } from '@metamask/snaps-utils/test-utils'; -import { rootRealmGlobal } from '../globalObject'; import consoleEndowment, { consoleAttenuatedMethods, consoleMethods, } from './console'; +import { rootRealmGlobal } from '../globalObject'; describe('Console endowment', () => { it('has expected properties', () => { diff --git a/packages/snaps-execution-environments/src/common/endowments/console.ts b/packages/snaps-execution-environments/src/common/endowments/console.ts index 49f3ac294f..dd3c394bda 100644 --- a/packages/snaps-execution-environments/src/common/endowments/console.ts +++ b/packages/snaps-execution-environments/src/common/endowments/console.ts @@ -1,7 +1,7 @@ import { assert } from '@metamask/utils'; -import { rootRealmGlobal } from '../globalObject'; import type { EndowmentFactoryOptions } from './commonEndowmentFactory'; +import { rootRealmGlobal } from '../globalObject'; export const consoleAttenuatedMethods = new Set([ 'log', diff --git a/packages/snaps-execution-environments/src/common/endowments/date.test.ts b/packages/snaps-execution-environments/src/common/endowments/date.test.ts index ecb4778a44..4b23773853 100644 --- a/packages/snaps-execution-environments/src/common/endowments/date.test.ts +++ b/packages/snaps-execution-environments/src/common/endowments/date.test.ts @@ -1,5 +1,5 @@ -import { rootRealmGlobal } from '../globalObject'; import date from './date'; +import { rootRealmGlobal } from '../globalObject'; describe('Date endowment', () => { beforeEach(() => { diff --git a/packages/snaps-execution-environments/src/common/endowments/endowments.test.browser.ts b/packages/snaps-execution-environments/src/common/endowments/endowments.test.browser.ts index 888ce0070d..6e448a4205 100644 --- a/packages/snaps-execution-environments/src/common/endowments/endowments.test.browser.ts +++ b/packages/snaps-execution-environments/src/common/endowments/endowments.test.browser.ts @@ -1,11 +1,9 @@ -/* eslint-disable import/no-unassigned-import, @typescript-eslint/restrict-template-expressions */ +/* eslint-disable import-x/no-unassigned-import, @typescript-eslint/restrict-template-expressions */ import 'ses'; import { MOCK_SNAP_ID } from '@metamask/snaps-utils/test-utils'; -import { walkAndSearch } from '../test-utils/endowments'; -import { testEndowmentHardening } from '../test-utils/hardening'; import buildCommonEndowments from './commonEndowmentFactory'; import consoleEndowment from './console'; import CryptoEndowment from './crypto'; @@ -14,6 +12,8 @@ import interval from './interval'; import math from './math'; import network from './network'; import timeout from './timeout'; +import { walkAndSearch } from '../test-utils/endowments'; +import { testEndowmentHardening } from '../test-utils/hardening'; // @ts-expect-error - `globalThis.process` is not optional. delete globalThis.process; diff --git a/packages/snaps-execution-environments/src/common/endowments/index.ts b/packages/snaps-execution-environments/src/common/endowments/index.ts index 92f4b62f60..1fb8beb2c4 100644 --- a/packages/snaps-execution-environments/src/common/endowments/index.ts +++ b/packages/snaps-execution-environments/src/common/endowments/index.ts @@ -4,10 +4,10 @@ import type { SnapsProvider } from '@metamask/snaps-sdk'; import { logWarning } from '@metamask/snaps-utils'; import { hasProperty } from '@metamask/utils'; -import type { NotifyFunction } from '../BaseSnapExecutor'; -import { rootRealmGlobal } from '../globalObject'; import type { EndowmentFactoryOptions } from './commonEndowmentFactory'; import buildCommonEndowments from './commonEndowmentFactory'; +import type { NotifyFunction } from '../BaseSnapExecutor'; +import { rootRealmGlobal } from '../globalObject'; type EndowmentFactoryResult = { /** @@ -123,7 +123,7 @@ export function createEndowments({ const teardown = async () => { await Promise.all( - result.teardowns.map((teardownFunction) => teardownFunction()), + result.teardowns.map(async (teardownFunction) => teardownFunction()), ); }; return { endowments: result.allEndowments, teardown }; diff --git a/packages/snaps-execution-environments/src/common/endowments/math.test.ts b/packages/snaps-execution-environments/src/common/endowments/math.test.ts index f454d10ba2..8a06fb5761 100644 --- a/packages/snaps-execution-environments/src/common/endowments/math.test.ts +++ b/packages/snaps-execution-environments/src/common/endowments/math.test.ts @@ -1,5 +1,5 @@ -import { rootRealmGlobal } from '../globalObject'; import math from './math'; +import { rootRealmGlobal } from '../globalObject'; describe('Math endowment', () => { it('has expected properties', () => { diff --git a/packages/snaps-execution-environments/src/common/endowments/math.ts b/packages/snaps-execution-environments/src/common/endowments/math.ts index 794b251127..06f8d3970f 100644 --- a/packages/snaps-execution-environments/src/common/endowments/math.ts +++ b/packages/snaps-execution-environments/src/common/endowments/math.ts @@ -1,5 +1,5 @@ -import { rootRealmGlobal } from '../globalObject'; import { createCrypto } from './crypto'; +import { rootRealmGlobal } from '../globalObject'; /** * Create a {@link Math} object, with the same properties as the global diff --git a/packages/snaps-execution-environments/src/common/endowments/network.ts b/packages/snaps-execution-environments/src/common/endowments/network.ts index 7dccdf47f5..e0f4d80404 100644 --- a/packages/snaps-execution-environments/src/common/endowments/network.ts +++ b/packages/snaps-execution-environments/src/common/endowments/network.ts @@ -1,7 +1,7 @@ import { assert } from '@metamask/utils'; -import { withTeardown } from '../utils'; import type { EndowmentFactoryOptions } from './commonEndowmentFactory'; +import { withTeardown } from '../utils'; /** * This class wraps a Response object. @@ -10,11 +10,11 @@ import type { EndowmentFactoryOptions } from './commonEndowmentFactory'; class ResponseWrapper implements Response { readonly #teardownRef: { lastTeardown: number }; - #ogResponse: Response; + readonly #ogResponse: Response; - #onStart: () => Promise; + readonly #onStart: () => Promise; - #onFinish: () => Promise; + readonly #onFinish: () => Promise; constructor( ogResponse: Response, diff --git a/packages/snaps-execution-environments/src/common/lockdown/lockdown-events.test.browser.ts b/packages/snaps-execution-environments/src/common/lockdown/lockdown-events.test.browser.ts index b94bcbfe5c..af1310241e 100644 --- a/packages/snaps-execution-environments/src/common/lockdown/lockdown-events.test.browser.ts +++ b/packages/snaps-execution-environments/src/common/lockdown/lockdown-events.test.browser.ts @@ -1,4 +1,4 @@ -// eslint-disable-next-line import/unambiguous +// eslint-disable-next-line import-x/unambiguous import { expect } from '@wdio/globals'; import { executeLockdownEvents } from './lockdown-events'; diff --git a/packages/snaps-execution-environments/src/common/test-utils/endowments.ts b/packages/snaps-execution-environments/src/common/test-utils/endowments.ts index 39b2639453..0d6428e260 100644 --- a/packages/snaps-execution-environments/src/common/test-utils/endowments.ts +++ b/packages/snaps-execution-environments/src/common/test-utils/endowments.ts @@ -6,12 +6,12 @@ import type { RequestArguments } from '@metamask/providers'; import { StreamProvider } from '@metamask/providers/stream-provider'; import { SNAP_STREAM_NAMES } from '@metamask/snaps-utils'; +import { SILENT_LOGGER } from './logger'; import { assertEthereumOutboundRequest, proxyStreamProvider, withTeardown, } from '../utils'; -import { SILENT_LOGGER } from './logger'; /** * Object walker test utility function. diff --git a/packages/snaps-execution-environments/src/common/test-utils/executor.ts b/packages/snaps-execution-environments/src/common/test-utils/executor.ts index 8ce65462f5..d0298e196f 100644 --- a/packages/snaps-execution-environments/src/common/test-utils/executor.ts +++ b/packages/snaps-execution-environments/src/common/test-utils/executor.ts @@ -22,12 +22,12 @@ export class TwoWayPassThrough { readonly right: Duplex; - #leftToRight: TwoWayPassThroughBuffer = { + readonly #leftToRight: TwoWayPassThroughBuffer = { buffer: [], canPush: false, }; - #rightToLeft: TwoWayPassThroughBuffer = { + readonly #rightToLeft: TwoWayPassThroughBuffer = { buffer: [], canPush: false, }; diff --git a/packages/snaps-execution-environments/src/common/validation.ts b/packages/snaps-execution-environments/src/common/validation.ts index e28c6c3f62..20eaaed690 100644 --- a/packages/snaps-execution-environments/src/common/validation.ts +++ b/packages/snaps-execution-environments/src/common/validation.ts @@ -107,7 +107,6 @@ export type SnapRpcRequestArguments = Infer< export type RequestArguments = | PingRequestArguments - | TerminateRequestArguments | ExecuteSnapRequestArguments | SnapRpcRequestArguments; diff --git a/packages/snaps-execution-environments/src/globals.d.ts b/packages/snaps-execution-environments/src/globals.d.ts index 8e0b7171e5..625407df7f 100644 --- a/packages/snaps-execution-environments/src/globals.d.ts +++ b/packages/snaps-execution-environments/src/globals.d.ts @@ -1,4 +1,4 @@ -/* eslint-disable import/unambiguous */ +/* eslint-disable import-x/unambiguous */ // Typescript doesn't type WeakRef on ES2020, only on ESNext // But it's supported on all browsers and Node // Note, it's stated that it's not supported on Opera, diff --git a/packages/snaps-execution-environments/src/iframe/IFrameSnapExecutor.test.browser.ts b/packages/snaps-execution-environments/src/iframe/IFrameSnapExecutor.test.browser.ts index ce5ba43de3..43054247ea 100644 --- a/packages/snaps-execution-environments/src/iframe/IFrameSnapExecutor.test.browser.ts +++ b/packages/snaps-execution-environments/src/iframe/IFrameSnapExecutor.test.browser.ts @@ -1,4 +1,4 @@ -// eslint-disable-next-line import/no-unassigned-import +// eslint-disable-next-line import-x/no-unassigned-import import 'ses'; import { HandlerType } from '@metamask/snaps-utils'; import { diff --git a/packages/snaps-execution-environments/src/iframe/index.ts b/packages/snaps-execution-environments/src/iframe/index.ts index 83416afbfe..5193f76bd1 100644 --- a/packages/snaps-execution-environments/src/iframe/index.ts +++ b/packages/snaps-execution-environments/src/iframe/index.ts @@ -1,6 +1,6 @@ +import { IFrameSnapExecutor } from './IFrameSnapExecutor'; import { executeLockdownEvents } from '../common/lockdown/lockdown-events'; import { executeLockdownMore } from '../common/lockdown/lockdown-more'; -import { IFrameSnapExecutor } from './IFrameSnapExecutor'; // Lockdown is already applied in LavaMoat executeLockdownMore(); diff --git a/packages/snaps-execution-environments/src/node-process/ChildProcessSnapExecutor.test.ts b/packages/snaps-execution-environments/src/node-process/ChildProcessSnapExecutor.test.ts index 04aa7e13d5..482f0d4932 100644 --- a/packages/snaps-execution-environments/src/node-process/ChildProcessSnapExecutor.test.ts +++ b/packages/snaps-execution-environments/src/node-process/ChildProcessSnapExecutor.test.ts @@ -1,4 +1,4 @@ -// eslint-disable-next-line import/no-unassigned-import +// eslint-disable-next-line import-x/no-unassigned-import import 'ses'; import { HandlerType, SNAP_STREAM_NAMES } from '@metamask/snaps-utils'; import { MOCK_ORIGIN, MOCK_SNAP_ID } from '@metamask/snaps-utils/test-utils'; diff --git a/packages/snaps-execution-environments/src/node-process/index.ts b/packages/snaps-execution-environments/src/node-process/index.ts index 171c6e5bef..1ec3edf37d 100644 --- a/packages/snaps-execution-environments/src/node-process/index.ts +++ b/packages/snaps-execution-environments/src/node-process/index.ts @@ -1,5 +1,5 @@ -import { executeLockdownMore } from '../common/lockdown/lockdown-more'; import { ChildProcessSnapExecutor } from './ChildProcessSnapExecutor'; +import { executeLockdownMore } from '../common/lockdown/lockdown-more'; // Lockdown is already applied in LavaMoat executeLockdownMore(); diff --git a/packages/snaps-execution-environments/src/node-thread/ThreadSnapExecutor.test.ts b/packages/snaps-execution-environments/src/node-thread/ThreadSnapExecutor.test.ts index 0cd9fadf71..83bdc223dd 100644 --- a/packages/snaps-execution-environments/src/node-thread/ThreadSnapExecutor.test.ts +++ b/packages/snaps-execution-environments/src/node-thread/ThreadSnapExecutor.test.ts @@ -1,4 +1,4 @@ -// eslint-disable-next-line import/no-unassigned-import +// eslint-disable-next-line import-x/no-unassigned-import import 'ses'; import { SNAP_STREAM_NAMES, HandlerType } from '@metamask/snaps-utils'; import type { Json, JsonRpcRequest, JsonRpcSuccess } from '@metamask/utils'; diff --git a/packages/snaps-execution-environments/src/node-thread/index.ts b/packages/snaps-execution-environments/src/node-thread/index.ts index 377292dfb1..b1ef1da26c 100644 --- a/packages/snaps-execution-environments/src/node-thread/index.ts +++ b/packages/snaps-execution-environments/src/node-thread/index.ts @@ -1,5 +1,5 @@ -import { executeLockdownMore } from '../common/lockdown/lockdown-more'; import { ThreadSnapExecutor } from './ThreadSnapExecutor'; +import { executeLockdownMore } from '../common/lockdown/lockdown-more'; // Lockdown is already applied in LavaMoat executeLockdownMore(); diff --git a/packages/snaps-execution-environments/src/proxy/ProxySnapExecutor.ts b/packages/snaps-execution-environments/src/proxy/ProxySnapExecutor.ts index 067c2a1bac..569bb934cf 100644 --- a/packages/snaps-execution-environments/src/proxy/ProxySnapExecutor.ts +++ b/packages/snaps-execution-environments/src/proxy/ProxySnapExecutor.ts @@ -1,6 +1,6 @@ import type { BasePostMessageStream } from '@metamask/post-message-stream'; import { WindowPostMessageStream } from '@metamask/post-message-stream'; -// eslint-disable-next-line import/no-extraneous-dependencies +// eslint-disable-next-line import-x/no-extraneous-dependencies import packageJson from '@metamask/snaps-execution-environments/package.json'; import { createWindow, logError } from '@metamask/snaps-utils'; import type { JsonRpcRequest } from '@metamask/utils'; @@ -93,6 +93,7 @@ export class ProxySnapExecutor { * Create a new iframe and set up a stream to communicate with it. * * @param jobId - The job ID. + * @returns The executor job. */ async #initializeJob(jobId: string): Promise { const window = await createWindow(this.#frameUrl, jobId); diff --git a/packages/snaps-execution-environments/src/types/vendor/providers.d.ts b/packages/snaps-execution-environments/src/types/vendor/providers.d.ts index 6321c07f2a..4789aa7ce5 100644 --- a/packages/snaps-execution-environments/src/types/vendor/providers.d.ts +++ b/packages/snaps-execution-environments/src/types/vendor/providers.d.ts @@ -1,6 +1,6 @@ // TODO: Remove this file once we switch to `Node16` module resolution in // `tsconfig.json`. -// eslint-disable-next-line import/unambiguous +// eslint-disable-next-line import-x/unambiguous declare module '@metamask/providers/stream-provider' { import { StreamProvider } from '@metamask/providers'; diff --git a/packages/snaps-execution-environments/src/types/vendor/readable-stream.d.ts b/packages/snaps-execution-environments/src/types/vendor/readable-stream.d.ts index 21bd861889..0e28c5d298 100644 --- a/packages/snaps-execution-environments/src/types/vendor/readable-stream.d.ts +++ b/packages/snaps-execution-environments/src/types/vendor/readable-stream.d.ts @@ -1,4 +1,4 @@ -// eslint-disable-next-line import/unambiguous +// eslint-disable-next-line import-x/unambiguous declare module 'readable-stream' { export type { DuplexOptions, diff --git a/packages/snaps-execution-environments/src/webview/WebViewExecutorStream.ts b/packages/snaps-execution-environments/src/webview/WebViewExecutorStream.ts index 4f75d6baa9..23b225ee14 100644 --- a/packages/snaps-execution-environments/src/webview/WebViewExecutorStream.ts +++ b/packages/snaps-execution-environments/src/webview/WebViewExecutorStream.ts @@ -10,11 +10,11 @@ type WebViewExecutorStreamArgs = { }; export class WebViewExecutorStream extends BasePostMessageStream { - #name; + readonly #name; - #target; + readonly #target; - #targetWindow; + readonly #targetWindow; /** * A special post-message-stream to be used by the WebView executor. diff --git a/packages/snaps-execution-environments/src/webview/index.ts b/packages/snaps-execution-environments/src/webview/index.ts index 4db0d3f11c..4fdd253291 100644 --- a/packages/snaps-execution-environments/src/webview/index.ts +++ b/packages/snaps-execution-environments/src/webview/index.ts @@ -1,7 +1,7 @@ +import { WebViewExecutorStream } from './WebViewExecutorStream'; import { executeLockdownEvents } from '../common/lockdown/lockdown-events'; import { executeLockdownMore } from '../common/lockdown/lockdown-more'; import { ProxySnapExecutor } from '../proxy/ProxySnapExecutor'; -import { WebViewExecutorStream } from './WebViewExecutorStream'; // Lockdown is already applied in LavaMoat executeLockdownMore(); diff --git a/packages/snaps-execution-environments/src/webworker/executor/WebWorkerSnapExecutor.test.browser.ts b/packages/snaps-execution-environments/src/webworker/executor/WebWorkerSnapExecutor.test.browser.ts index f1bb74d384..caf39b67b2 100644 --- a/packages/snaps-execution-environments/src/webworker/executor/WebWorkerSnapExecutor.test.browser.ts +++ b/packages/snaps-execution-environments/src/webworker/executor/WebWorkerSnapExecutor.test.browser.ts @@ -1,4 +1,4 @@ -// eslint-disable-next-line import/no-unassigned-import +// eslint-disable-next-line import-x/no-unassigned-import import 'ses'; import { HandlerType } from '@metamask/snaps-utils'; import type { SpyFunction } from '@metamask/snaps-utils/test-utils'; diff --git a/packages/snaps-execution-environments/src/webworker/executor/index.ts b/packages/snaps-execution-environments/src/webworker/executor/index.ts index fed53265c6..ec8f55ee81 100644 --- a/packages/snaps-execution-environments/src/webworker/executor/index.ts +++ b/packages/snaps-execution-environments/src/webworker/executor/index.ts @@ -1,6 +1,6 @@ +import { WebWorkerSnapExecutor } from './WebWorkerSnapExecutor'; import { executeLockdownEvents } from '../../common/lockdown/lockdown-events'; import { executeLockdownMore } from '../../common/lockdown/lockdown-more'; -import { WebWorkerSnapExecutor } from './WebWorkerSnapExecutor'; // Lockdown is already applied in LavaMoat executeLockdownMore(); diff --git a/packages/snaps-execution-environments/src/webworker/pool/index.ts b/packages/snaps-execution-environments/src/webworker/pool/index.ts index 78e21d384e..7d85d1c642 100644 --- a/packages/snaps-execution-environments/src/webworker/pool/index.ts +++ b/packages/snaps-execution-environments/src/webworker/pool/index.ts @@ -1,6 +1,6 @@ +import { WebWorkerPool } from './WebWorkerPool'; import { executeLockdownEvents } from '../../common/lockdown/lockdown-events'; import { executeLockdownMore } from '../../common/lockdown/lockdown-more'; -import { WebWorkerPool } from './WebWorkerPool'; // Lockdown is already applied in LavaMoat executeLockdownMore(); diff --git a/packages/snaps-execution-environments/wdio.config.js b/packages/snaps-execution-environments/wdio.config.js index 00ad65ccf7..bf87288816 100644 --- a/packages/snaps-execution-environments/wdio.config.js +++ b/packages/snaps-execution-environments/wdio.config.js @@ -1,4 +1,4 @@ -/* eslint-disable import/unambiguous, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires, n/no-process-env */ +/* eslint-disable import-x/unambiguous, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires, n/no-process-env */ const { NodeGlobalsPolyfillPlugin, diff --git a/packages/snaps-jest/package.json b/packages/snaps-jest/package.json index bb6d1a9774..abc6f8fd9c 100644 --- a/packages/snaps-jest/package.json +++ b/packages/snaps-jest/package.json @@ -66,25 +66,25 @@ "@jest/types": "^29.6.3", "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", "@types/jest": "^27.5.1", "@types/mime": "^3.0.0", "@types/semver": "^7.5.0", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/snaps-jest/src/environment.ts b/packages/snaps-jest/src/environment.ts index 9ca1d20202..8c0cb41b1f 100644 --- a/packages/snaps-jest/src/environment.ts +++ b/packages/snaps-jest/src/environment.ts @@ -23,7 +23,7 @@ declare global { const log = createModuleLogger(rootLogger, 'environment'); export class SnapsEnvironment extends NodeEnvironment { - #options: SnapsEnvironmentOptions; + readonly #options: SnapsEnvironmentOptions; #server: Server | undefined; diff --git a/packages/snaps-jest/src/helpers.ts b/packages/snaps-jest/src/helpers.ts index 4c6c8f454a..ec57cb8675 100644 --- a/packages/snaps-jest/src/helpers.ts +++ b/packages/snaps-jest/src/helpers.ts @@ -343,7 +343,7 @@ export async function installSnap< return response; }; - const onCronjob = (request: CronjobOptions) => { + const onCronjob = async (request: CronjobOptions) => { log('Running cronjob %o.', options); return handleRequest({ @@ -358,7 +358,7 @@ export async function installSnap< }; return { - request: (request) => { + request: async (request) => { log('Sending request %o.', request); return handleRequest({ diff --git a/packages/snaps-jest/src/index.ts b/packages/snaps-jest/src/index.ts index 030365797a..af746b09fa 100644 --- a/packages/snaps-jest/src/index.ts +++ b/packages/snaps-jest/src/index.ts @@ -1,4 +1,4 @@ -// eslint-disable-next-line import/no-unassigned-import +// eslint-disable-next-line import-x/no-unassigned-import import './global'; export { default, default as TestEnvironment } from './environment'; diff --git a/packages/snaps-jest/src/internals/request.test.tsx b/packages/snaps-jest/src/internals/request.test.tsx index 488dda1b72..184dafe913 100644 --- a/packages/snaps-jest/src/internals/request.test.tsx +++ b/packages/snaps-jest/src/internals/request.test.tsx @@ -5,18 +5,18 @@ import { Dropdown, Option, Radio, RadioGroup } from '@metamask/snaps-sdk/jsx'; import { getJsxElementFromComponent, HandlerType } from '@metamask/snaps-utils'; import { MOCK_SNAP_ID } from '@metamask/snaps-utils/test-utils'; -import { - getMockServer, - getRestrictedSnapInterfaceControllerMessenger, - getRootControllerMessenger, -} from '../test-utils'; -import type { SnapResponseWithInterface } from '../types'; import { getInterfaceApi, getInterfaceFromResult, handleRequest, } from './request'; import { handleInstallSnap } from './simulation'; +import { + getMockServer, + getRestrictedSnapInterfaceControllerMessenger, + getRootControllerMessenger, +} from '../test-utils'; +import type { SnapResponseWithInterface } from '../types'; describe('handleRequest', () => { it('sends a JSON-RPC request and returns the response', async () => { diff --git a/packages/snaps-jest/src/internals/request.ts b/packages/snaps-jest/src/internals/request.ts index 95f8e6d808..304d514e75 100644 --- a/packages/snaps-jest/src/internals/request.ts +++ b/packages/snaps-jest/src/internals/request.ts @@ -16,11 +16,6 @@ import { } from '@metamask/utils'; import { nanoid } from '@reduxjs/toolkit'; -import type { - RequestOptions, - SnapHandlerInterface, - SnapRequest, -} from '../types'; import type { RunSagaFunction, Store } from './simulation'; import { clearNotifications, @@ -30,6 +25,11 @@ import { } from './simulation'; import type { RootControllerMessenger } from './simulation/controllers'; import { SnapResponseStruct } from './structs'; +import type { + RequestOptions, + SnapHandlerInterface, + SnapRequest, +} from '../types'; export type HandleRequestOptions = { snapId: SnapId; diff --git a/packages/snaps-jest/src/internals/server.ts b/packages/snaps-jest/src/internals/server.ts index 5ce77d2104..5d6493cba1 100644 --- a/packages/snaps-jest/src/internals/server.ts +++ b/packages/snaps-jest/src/internals/server.ts @@ -11,8 +11,8 @@ import type { Server } from 'http'; import { createServer } from 'http'; import { resolve as pathResolve } from 'path'; -import type { SnapsEnvironmentOptions } from '../options'; import { rootLogger } from './logger'; +import type { SnapsEnvironmentOptions } from '../options'; export type ServerOptions = Required< // We need a double `Required` for the type to be inferred correctly. diff --git a/packages/snaps-jest/src/internals/simulation/controllers.test.ts b/packages/snaps-jest/src/internals/simulation/controllers.test.ts index 968e5d8a9c..2df9d56759 100644 --- a/packages/snaps-jest/src/internals/simulation/controllers.test.ts +++ b/packages/snaps-jest/src/internals/simulation/controllers.test.ts @@ -4,9 +4,9 @@ import { SubjectMetadataController, } from '@metamask/permission-controller'; -import { getMockOptions } from '../../test-utils/options'; import { getControllers } from './controllers'; import type { MiddlewareHooks } from './simulation'; +import { getMockOptions } from '../../test-utils/options'; const MOCK_HOOKS: MiddlewareHooks = { getIsLocked: jest.fn(), diff --git a/packages/snaps-jest/src/internals/simulation/files.ts b/packages/snaps-jest/src/internals/simulation/files.ts index 7e0631a558..58d3d68b71 100644 --- a/packages/snaps-jest/src/internals/simulation/files.ts +++ b/packages/snaps-jest/src/internals/simulation/files.ts @@ -77,6 +77,7 @@ export async function getFileSize(file: string | Uint8Array) { * is inferred from the file name if it's a path, and defaults to * `application/octet-stream` if it's a `Uint8Array` or the content type * cannot be inferred from the file name. + * @returns The file object to upload. */ export async function getFileToUpload( file: string | Uint8Array, diff --git a/packages/snaps-jest/src/internals/simulation/interface.test.tsx b/packages/snaps-jest/src/internals/simulation/interface.test.tsx index d3be3c69b4..378778c24b 100644 --- a/packages/snaps-jest/src/internals/simulation/interface.test.tsx +++ b/packages/snaps-jest/src/internals/simulation/interface.test.tsx @@ -34,20 +34,6 @@ import { MOCK_SNAP_ID } from '@metamask/snaps-utils/test-utils'; import type { SagaIterator } from 'redux-saga'; import { take } from 'redux-saga/effects'; -import { - assertIsAlertDialog, - assertIsConfirmationDialog, - assertIsCustomDialog, - assertIsPromptDialog, - assertCustomDialogHasFooter, - assertCustomDialogHasPartialFooter, - assertCustomDialogHasNoFooter, -} from '../../helpers'; -import { - getMockOptions, - getRestrictedSnapInterfaceControllerMessenger, - getRootControllerMessenger, -} from '../../test-utils'; import { clickElement, getElement, @@ -62,6 +48,20 @@ import { } from './interface'; import type { RunSagaFunction } from './store'; import { createStore, resolveInterface, setInterface } from './store'; +import { + assertIsAlertDialog, + assertIsConfirmationDialog, + assertIsCustomDialog, + assertIsPromptDialog, + assertCustomDialogHasFooter, + assertCustomDialogHasPartialFooter, + assertCustomDialogHasNoFooter, +} from '../../helpers'; +import { + getMockOptions, + getRestrictedSnapInterfaceControllerMessenger, + getRootControllerMessenger, +} from '../../test-utils'; /** * Wait for the `resolveInterface` action to be dispatched and return the diff --git a/packages/snaps-jest/src/internals/simulation/interface.ts b/packages/snaps-jest/src/internals/simulation/interface.ts index f11666a864..dffd24c0cb 100644 --- a/packages/snaps-jest/src/internals/simulation/interface.ts +++ b/packages/snaps-jest/src/internals/simulation/interface.ts @@ -9,8 +9,11 @@ import type { File, } from '@metamask/snaps-sdk'; import { DialogType, UserInputEventType, assert } from '@metamask/snaps-sdk'; -import type { FooterElement } from '@metamask/snaps-sdk/jsx'; -import { type FormElement, type JSXElement } from '@metamask/snaps-sdk/jsx'; +import type { + FooterElement, + type FormElement, + type JSXElement, +} from '@metamask/snaps-sdk/jsx'; import { HandlerType, getJsxChildren, @@ -22,15 +25,15 @@ import type { PayloadAction } from '@reduxjs/toolkit'; import { type SagaIterator } from 'redux-saga'; import { call, put, select, take } from 'redux-saga/effects'; +import type { RootControllerMessenger } from './controllers'; +import { getFileSize, getFileToUpload } from './files'; +import type { Interface, RunSagaFunction } from './store'; +import { getCurrentInterface, resolveInterface, setInterface } from './store'; import type { FileOptions, SnapInterface, SnapInterfaceActions, } from '../../types'; -import type { RootControllerMessenger } from './controllers'; -import { getFileSize, getFileToUpload } from './files'; -import type { Interface, RunSagaFunction } from './store'; -import { getCurrentInterface, resolveInterface, setInterface } from './store'; /** * The maximum file size that can be uploaded. diff --git a/packages/snaps-jest/src/internals/simulation/methods/hooks/get-preferences.test.ts b/packages/snaps-jest/src/internals/simulation/methods/hooks/get-preferences.test.ts index bf34aa1282..b364afc0f4 100644 --- a/packages/snaps-jest/src/internals/simulation/methods/hooks/get-preferences.test.ts +++ b/packages/snaps-jest/src/internals/simulation/methods/hooks/get-preferences.test.ts @@ -1,5 +1,5 @@ -import { getMockOptions } from '../../../../test-utils/options'; import { getGetPreferencesMethodImplementation } from './get-preferences'; +import { getMockOptions } from '../../../../test-utils/options'; describe('getGetPreferencesMethodImplementation', () => { it('returns the implementation of the `getPreferences` hook', async () => { diff --git a/packages/snaps-jest/src/internals/simulation/methods/hooks/interface.test.ts b/packages/snaps-jest/src/internals/simulation/methods/hooks/interface.test.ts index a08ee12186..6b8d5a7980 100644 --- a/packages/snaps-jest/src/internals/simulation/methods/hooks/interface.test.ts +++ b/packages/snaps-jest/src/internals/simulation/methods/hooks/interface.test.ts @@ -3,14 +3,14 @@ import { text } from '@metamask/snaps-sdk'; import { getJsxElementFromComponent } from '@metamask/snaps-utils'; import { MOCK_SNAP_ID } from '@metamask/snaps-utils/test-utils'; -import { - getRestrictedSnapInterfaceControllerMessenger, - getRootControllerMessenger, -} from '../../../../test-utils'; import { getCreateInterfaceImplementation, getGetInterfaceImplementation, } from './interface'; +import { + getRestrictedSnapInterfaceControllerMessenger, + getRootControllerMessenger, +} from '../../../../test-utils'; describe('getCreateInterfaceImplementation', () => { it('returns the implementation of the `createInterface` hook', async () => { diff --git a/packages/snaps-jest/src/internals/simulation/methods/hooks/notifications.test.ts b/packages/snaps-jest/src/internals/simulation/methods/hooks/notifications.test.ts index 4c6c739596..85278cc95d 100644 --- a/packages/snaps-jest/src/internals/simulation/methods/hooks/notifications.test.ts +++ b/packages/snaps-jest/src/internals/simulation/methods/hooks/notifications.test.ts @@ -1,11 +1,11 @@ import { NotificationType } from '@metamask/snaps-sdk'; -import { getMockOptions } from '../../../../test-utils'; -import { createStore } from '../../store'; import { getShowInAppNotificationImplementation, getShowNativeNotificationImplementation, } from './notifications'; +import { getMockOptions } from '../../../../test-utils'; +import { createStore } from '../../store'; describe('getShowNativeNotificationImplementation', () => { it('returns the implementation of the `showNativeNotification` hook', async () => { diff --git a/packages/snaps-jest/src/internals/simulation/methods/hooks/request-user-approval.test.ts b/packages/snaps-jest/src/internals/simulation/methods/hooks/request-user-approval.test.ts index b04731551d..03d86a89f0 100644 --- a/packages/snaps-jest/src/internals/simulation/methods/hooks/request-user-approval.test.ts +++ b/packages/snaps-jest/src/internals/simulation/methods/hooks/request-user-approval.test.ts @@ -1,9 +1,9 @@ import { DIALOG_APPROVAL_TYPES } from '@metamask/snaps-rpc-methods'; import { DialogType } from '@metamask/snaps-sdk'; +import { getRequestUserApprovalImplementation } from './request-user-approval'; import { getMockOptions } from '../../../../test-utils'; import { createStore, resolveInterface } from '../../store'; -import { getRequestUserApprovalImplementation } from './request-user-approval'; describe('getShowUserApprovalImplementation', () => { it('returns the implementation of the `requestUserApproval` hook', async () => { diff --git a/packages/snaps-jest/src/internals/simulation/methods/hooks/state.test.ts b/packages/snaps-jest/src/internals/simulation/methods/hooks/state.test.ts index 7218b242e0..807eef4e89 100644 --- a/packages/snaps-jest/src/internals/simulation/methods/hooks/state.test.ts +++ b/packages/snaps-jest/src/internals/simulation/methods/hooks/state.test.ts @@ -1,12 +1,12 @@ import { MOCK_SNAP_ID } from '@metamask/snaps-utils/test-utils'; -import { getMockOptions } from '../../../../test-utils'; -import { createStore, getState, setState } from '../../store'; import { getClearSnapStateMethodImplementation, getGetSnapStateMethodImplementation, getUpdateSnapStateMethodImplementation, } from './state'; +import { getMockOptions } from '../../../../test-utils'; +import { createStore, getState, setState } from '../../store'; describe('getGetSnapStateMethodImplementation', () => { it('returns the implementation of the `getSnapState` hook', async () => { diff --git a/packages/snaps-jest/src/internals/simulation/methods/specifications.test.ts b/packages/snaps-jest/src/internals/simulation/methods/specifications.test.ts index 8517da8304..3a41a3bfd6 100644 --- a/packages/snaps-jest/src/internals/simulation/methods/specifications.test.ts +++ b/packages/snaps-jest/src/internals/simulation/methods/specifications.test.ts @@ -4,15 +4,15 @@ import { MOCK_SNAP_ID, } from '@metamask/snaps-utils/test-utils'; -import { getMockOptions } from '../../../test-utils/options'; -import { getControllers, registerSnap } from '../controllers'; -import type { MiddlewareHooks } from '../simulation'; import { asyncResolve, getEndowments, getPermissionSpecifications, resolve, } from './specifications'; +import { getMockOptions } from '../../../test-utils/options'; +import { getControllers, registerSnap } from '../controllers'; +import type { MiddlewareHooks } from '../simulation'; const MOCK_HOOKS: MiddlewareHooks = { getMnemonic: jest.fn(), diff --git a/packages/snaps-jest/src/internals/simulation/methods/specifications.ts b/packages/snaps-jest/src/internals/simulation/methods/specifications.ts index 45c5ab4cf5..9acd8b36b7 100644 --- a/packages/snaps-jest/src/internals/simulation/methods/specifications.ts +++ b/packages/snaps-jest/src/internals/simulation/methods/specifications.ts @@ -7,9 +7,6 @@ import { import type { SnapId } from '@metamask/snaps-sdk'; import { DEFAULT_ENDOWMENTS } from '@metamask/snaps-utils'; -import type { RootControllerMessenger } from '../controllers'; -import type { SimulationOptions } from '../options'; -import type { RunSagaFunction } from '../store'; import { EXCLUDED_SNAP_ENDOWMENTS, EXCLUDED_SNAP_PERMISSIONS, @@ -25,6 +22,9 @@ import { getGetInterfaceImplementation, getRequestUserApprovalImplementation, } from './hooks'; +import type { RootControllerMessenger } from '../controllers'; +import type { SimulationOptions } from '../options'; +import type { RunSagaFunction } from '../store'; export type PermissionSpecificationsHooks = { /** diff --git a/packages/snaps-jest/src/internals/simulation/middleware/engine.test.ts b/packages/snaps-jest/src/internals/simulation/middleware/engine.test.ts index e55ac0c7d4..f64d58558f 100644 --- a/packages/snaps-jest/src/internals/simulation/middleware/engine.test.ts +++ b/packages/snaps-jest/src/internals/simulation/middleware/engine.test.ts @@ -1,6 +1,6 @@ +import { createJsonRpcEngine } from './engine'; import { getMockOptions } from '../../../test-utils'; import { createStore } from '../store'; -import { createJsonRpcEngine } from './engine'; describe('createJsonRpcEngine', () => { it('creates a JSON-RPC engine', async () => { diff --git a/packages/snaps-jest/src/internals/simulation/middleware/engine.ts b/packages/snaps-jest/src/internals/simulation/middleware/engine.ts index 026a8c7590..274b9f51aa 100644 --- a/packages/snaps-jest/src/internals/simulation/middleware/engine.ts +++ b/packages/snaps-jest/src/internals/simulation/middleware/engine.ts @@ -5,11 +5,11 @@ import type { RestrictedMethodParameters } from '@metamask/permission-controller import { createSnapsMethodMiddleware } from '@metamask/snaps-rpc-methods'; import type { Json } from '@metamask/utils'; +import { createInternalMethodsMiddleware } from './internal-methods'; +import { createMockMiddleware } from './mock'; import { DEFAULT_JSON_RPC_ENDPOINT } from '../constants'; import type { MiddlewareHooks } from '../simulation'; import type { Store } from '../store'; -import { createInternalMethodsMiddleware } from './internal-methods'; -import { createMockMiddleware } from './mock'; export type CreateJsonRpcEngineOptions = { store: Store; diff --git a/packages/snaps-jest/src/internals/simulation/middleware/internal-methods/account.test.ts b/packages/snaps-jest/src/internals/simulation/middleware/internal-methods/account.test.ts index f6101a1727..0f719e68d4 100644 --- a/packages/snaps-jest/src/internals/simulation/middleware/internal-methods/account.test.ts +++ b/packages/snaps-jest/src/internals/simulation/middleware/internal-methods/account.test.ts @@ -1,8 +1,8 @@ import { mnemonicPhraseToBytes } from '@metamask/key-tree'; import type { PendingJsonRpcResponse } from '@metamask/utils'; -import { DEFAULT_SRP } from '../../constants'; import { getAccountsHandler } from './accounts'; +import { DEFAULT_SRP } from '../../constants'; describe('getAccountsHandler', () => { it('returns the first address for the selected secret recovery phrase', async () => { diff --git a/packages/snaps-jest/src/internals/simulation/middleware/internal-methods/accounts.ts b/packages/snaps-jest/src/internals/simulation/middleware/internal-methods/accounts.ts index b4318a05bd..71c57926d6 100644 --- a/packages/snaps-jest/src/internals/simulation/middleware/internal-methods/accounts.ts +++ b/packages/snaps-jest/src/internals/simulation/middleware/internal-methods/accounts.ts @@ -24,6 +24,8 @@ export type GetAccountsHandlerHooks = { * @param _next - The `json-rpc-engine` middleware next handler. * @param end - The `json-rpc-engine` middleware end handler. * @param hooks - Any hooks required by this handler. + * @returns The Ethereum address derived from the selected secret recovery + * phrase. */ export async function getAccountsHandler( _request: JsonRpcRequest, diff --git a/packages/snaps-jest/src/internals/simulation/middleware/internal-methods/provider-state.ts b/packages/snaps-jest/src/internals/simulation/middleware/internal-methods/provider-state.ts index e4e3274dad..898003b069 100644 --- a/packages/snaps-jest/src/internals/simulation/middleware/internal-methods/provider-state.ts +++ b/packages/snaps-jest/src/internals/simulation/middleware/internal-methods/provider-state.ts @@ -18,6 +18,7 @@ import type { * result. * @param _next - The `json-rpc-engine` middleware next handler. * @param end - The `json-rpc-engine` middleware end handler. + * @returns The provider state. */ export async function getProviderStateHandler( _request: JsonRpcRequest, diff --git a/packages/snaps-jest/src/internals/simulation/middleware/mock.test.ts b/packages/snaps-jest/src/internals/simulation/middleware/mock.test.ts index 576c6f4eba..d1c16dfd10 100644 --- a/packages/snaps-jest/src/internals/simulation/middleware/mock.test.ts +++ b/packages/snaps-jest/src/internals/simulation/middleware/mock.test.ts @@ -1,9 +1,9 @@ import { JsonRpcEngine } from '@metamask/json-rpc-engine'; +import { createMockMiddleware } from './mock'; import { getMockOptions } from '../../../test-utils'; import { createStore } from '../store'; import { addJsonRpcMock } from '../store/mocks'; -import { createMockMiddleware } from './mock'; describe('createMockMiddleware', () => { it('mocks a JSON-RPC method', async () => { diff --git a/packages/snaps-jest/src/internals/simulation/simulation.test.ts b/packages/snaps-jest/src/internals/simulation/simulation.test.ts index 5482742032..d6117e9c79 100644 --- a/packages/snaps-jest/src/internals/simulation/simulation.test.ts +++ b/packages/snaps-jest/src/internals/simulation/simulation.test.ts @@ -10,15 +10,15 @@ import { AuxiliaryFileEncoding, text } from '@metamask/snaps-sdk'; import { VirtualFile } from '@metamask/snaps-utils'; import { getSnapManifest } from '@metamask/snaps-utils/test-utils'; +import { DEFAULT_SRP } from './constants'; +import { getHooks, handleInstallSnap, registerActions } from './simulation'; +import { createStore, setInterface } from './store'; import { getMockOptions, getMockServer, getRestrictedSnapInterfaceControllerMessenger, getRootControllerMessenger, } from '../../test-utils'; -import { DEFAULT_SRP } from './constants'; -import { getHooks, handleInstallSnap, registerActions } from './simulation'; -import { createStore, setInterface } from './store'; describe('handleInstallSnap', () => { it('installs a Snap and returns the execution service', async () => { diff --git a/packages/snaps-jest/src/internals/simulation/simulation.ts b/packages/snaps-jest/src/internals/simulation/simulation.ts index beafcdaf82..6d15b026ce 100644 --- a/packages/snaps-jest/src/internals/simulation/simulation.ts +++ b/packages/snaps-jest/src/internals/simulation/simulation.ts @@ -131,6 +131,7 @@ export type MiddlewareHooks = { * provided execution service. * @param options.options - The simulation options. * @template Service - The type of the execution service. + * @returns An object containing values to interact with the simulation. */ export async function handleInstallSnap< Service extends new (...args: any[]) => InstanceType< diff --git a/packages/snaps-jest/src/internals/simulation/store/store.test.ts b/packages/snaps-jest/src/internals/simulation/store/store.test.ts index 974b77bdea..9dcb02777a 100644 --- a/packages/snaps-jest/src/internals/simulation/store/store.test.ts +++ b/packages/snaps-jest/src/internals/simulation/store/store.test.ts @@ -1,5 +1,5 @@ -import { getMockOptions } from '../../../test-utils'; import { createStore } from './store'; +import { getMockOptions } from '../../../test-utils'; describe('createStore', () => { it('creates a Redux store', () => { diff --git a/packages/snaps-jest/src/internals/simulation/store/store.ts b/packages/snaps-jest/src/internals/simulation/store/store.ts index 20d3780d9a..b2f6f49af4 100644 --- a/packages/snaps-jest/src/internals/simulation/store/store.ts +++ b/packages/snaps-jest/src/internals/simulation/store/store.ts @@ -1,11 +1,11 @@ import { configureStore } from '@reduxjs/toolkit'; import createSagaMiddleware from 'redux-saga'; -import type { SimulationOptions } from '../options'; import { mocksSlice } from './mocks'; import { notificationsSlice } from './notifications'; import { setState, stateSlice } from './state'; import { uiSlice } from './ui'; +import type { SimulationOptions } from '../options'; /** * Create a Redux store. diff --git a/packages/snaps-jest/src/matchers.ts b/packages/snaps-jest/src/matchers.ts index f4a38e3156..2e3ddd1be7 100644 --- a/packages/snaps-jest/src/matchers.ts +++ b/packages/snaps-jest/src/matchers.ts @@ -218,7 +218,7 @@ const toRenderLegacy: MatcherFunction<[expected: Component]> = function ( }; export const toRender: MatcherFunction<[expected: ComponentOrElement]> = - function (actual, expected) { + async function (actual, expected) { assertHasInterface(actual, 'toRender'); if (!isJSXElementUnsafe(expected)) { diff --git a/packages/snaps-jest/src/setup.ts b/packages/snaps-jest/src/setup.ts index 950a3a43b0..3ae92a8578 100644 --- a/packages/snaps-jest/src/setup.ts +++ b/packages/snaps-jest/src/setup.ts @@ -1,5 +1,5 @@ // Setup file for Jest. This file is used in the Jest preset configuration, and // not intended to be exported or used directly. -// eslint-disable-next-line import/no-unassigned-import +// eslint-disable-next-line import-x/no-unassigned-import import './matchers'; diff --git a/packages/snaps-jest/src/types/vendor/readable-stream.d.ts b/packages/snaps-jest/src/types/vendor/readable-stream.d.ts index 21bd861889..0e28c5d298 100644 --- a/packages/snaps-jest/src/types/vendor/readable-stream.d.ts +++ b/packages/snaps-jest/src/types/vendor/readable-stream.d.ts @@ -1,4 +1,4 @@ -// eslint-disable-next-line import/unambiguous +// eslint-disable-next-line import-x/unambiguous declare module 'readable-stream' { export type { DuplexOptions, diff --git a/packages/snaps-rollup-plugin/package.json b/packages/snaps-rollup-plugin/package.json index 9b3f2a340a..efa532e9a8 100644 --- a/packages/snaps-rollup-plugin/package.json +++ b/packages/snaps-rollup-plugin/package.json @@ -47,24 +47,24 @@ "devDependencies": { "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@rollup/plugin-virtual": "^2.1.0", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", "@types/jest": "^27.5.1", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/snaps-rollup-plugin/src/__fixtures__/source-map.ts b/packages/snaps-rollup-plugin/src/__fixtures__/source-map.ts index ac7732b9d0..4050dc056c 100644 --- a/packages/snaps-rollup-plugin/src/__fixtures__/source-map.ts +++ b/packages/snaps-rollup-plugin/src/__fixtures__/source-map.ts @@ -1,6 +1,6 @@ // This file is only used for testing source map generation. -// eslint-disable-next-line import/unambiguous +// eslint-disable-next-line import-x/unambiguous const foo = 'bar'; // eslint-disable-next-line no-console console.log(foo); diff --git a/packages/snaps-rpc-methods/package.json b/packages/snaps-rpc-methods/package.json index 20f10081e2..17083ee018 100644 --- a/packages/snaps-rpc-methods/package.json +++ b/packages/snaps-rpc-methods/package.json @@ -51,24 +51,24 @@ "devDependencies": { "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/json-rpc-engine": "^9.0.2", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", "@types/node": "18.14.2", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/snaps-rpc-methods/src/endowments/caveats/requestTime.test.ts b/packages/snaps-rpc-methods/src/endowments/caveats/requestTime.test.ts index e8fd769680..9e5d28a39e 100644 --- a/packages/snaps-rpc-methods/src/endowments/caveats/requestTime.test.ts +++ b/packages/snaps-rpc-methods/src/endowments/caveats/requestTime.test.ts @@ -1,13 +1,13 @@ import type { PermissionConstraint } from '@metamask/permission-controller'; import { SnapCaveatType } from '@metamask/snaps-utils'; -import { getCronjobCaveatMapper } from '../cronjob'; import { createMaxRequestTimeMapper, getMaxRequestTimeCaveat, getMaxRequestTimeCaveatMapper, maxRequestTimeCaveatSpecifications, } from './requestTime'; +import { getCronjobCaveatMapper } from '../cronjob'; describe('maxRequestTimeCaveatSpecifications', () => { describe('validator', () => { diff --git a/packages/snaps-rpc-methods/src/permitted/invokeKeyring.ts b/packages/snaps-rpc-methods/src/permitted/invokeKeyring.ts index c81443943c..2c588e09cf 100644 --- a/packages/snaps-rpc-methods/src/permitted/invokeKeyring.ts +++ b/packages/snaps-rpc-methods/src/permitted/invokeKeyring.ts @@ -8,11 +8,15 @@ import type { } from '@metamask/snaps-sdk'; import type { Snap, SnapRpcHookArgs } from '@metamask/snaps-utils'; import { HandlerType, WALLET_SNAP_PERMISSION_KEY } from '@metamask/snaps-utils'; -import type { PendingJsonRpcResponse, JsonRpcRequest } from '@metamask/utils'; -import { hasProperty, type Json } from '@metamask/utils'; +import { hasProperty } from '@metamask/utils'; +import type { + PendingJsonRpcResponse, + JsonRpcRequest, + type Json, +} from '@metamask/utils'; -import type { MethodHooksObject } from '../utils'; import { getValidatedParams } from './invokeSnapSugar'; +import type { MethodHooksObject } from '../utils'; const hookNames: MethodHooksObject = { hasPermission: true, diff --git a/packages/snaps-rpc-methods/src/permitted/middleware.ts b/packages/snaps-rpc-methods/src/permitted/middleware.ts index 303eba08eb..89d2664db4 100644 --- a/packages/snaps-rpc-methods/src/permitted/middleware.ts +++ b/packages/snaps-rpc-methods/src/permitted/middleware.ts @@ -3,8 +3,8 @@ import { rpcErrors } from '@metamask/rpc-errors'; import { logError } from '@metamask/snaps-utils'; import type { Json, JsonRpcParams } from '@metamask/utils'; -import { selectHooks } from '../utils'; import { methodHandlers } from './handlers'; +import { selectHooks } from '../utils'; /** * Creates a middleware that handles permitted snap RPC methods. diff --git a/packages/snaps-rpc-methods/src/permitted/requestSnaps.test.ts b/packages/snaps-rpc-methods/src/permitted/requestSnaps.test.ts index 041dd146f2..3e35afd19a 100644 --- a/packages/snaps-rpc-methods/src/permitted/requestSnaps.test.ts +++ b/packages/snaps-rpc-methods/src/permitted/requestSnaps.test.ts @@ -20,12 +20,12 @@ import type { PendingJsonRpcResponse, } from '@metamask/utils'; -import { WALLET_SNAP_PERMISSION_KEY } from '../restricted/invokeSnap'; import { requestSnapsHandler, hasRequestedSnaps, getSnapPermissionsRequest, } from './requestSnaps'; +import { WALLET_SNAP_PERMISSION_KEY } from '../restricted/invokeSnap'; describe('requestSnapsHandler', () => { it('has the expected shape', () => { diff --git a/packages/snaps-rpc-methods/src/permitted/resolveInterface.ts b/packages/snaps-rpc-methods/src/permitted/resolveInterface.ts index 3401f30129..026f3d2e36 100644 --- a/packages/snaps-rpc-methods/src/permitted/resolveInterface.ts +++ b/packages/snaps-rpc-methods/src/permitted/resolveInterface.ts @@ -8,8 +8,8 @@ import type { } from '@metamask/snaps-sdk'; import type { InferMatching } from '@metamask/snaps-utils'; import { StructError, create, object, string } from '@metamask/superstruct'; -import type { PendingJsonRpcResponse } from '@metamask/utils'; -import { JsonStruct, type Json } from '@metamask/utils'; +import { JsonStruct } from '@metamask/utils'; +import type { PendingJsonRpcResponse, type Json } from '@metamask/utils'; import type { MethodHooksObject } from '../utils'; diff --git a/packages/snaps-rpc-methods/src/permitted/updateInterface.test.tsx b/packages/snaps-rpc-methods/src/permitted/updateInterface.test.tsx index 289176f331..da90e39a38 100644 --- a/packages/snaps-rpc-methods/src/permitted/updateInterface.test.tsx +++ b/packages/snaps-rpc-methods/src/permitted/updateInterface.test.tsx @@ -1,6 +1,9 @@ import { JsonRpcEngine } from '@metamask/json-rpc-engine'; -import type { UpdateInterfaceParams } from '@metamask/snaps-sdk'; -import { text, type UpdateInterfaceResult } from '@metamask/snaps-sdk'; +import { text } from '@metamask/snaps-sdk'; +import type { + UpdateInterfaceParams, + type UpdateInterfaceResult, +} from '@metamask/snaps-sdk'; import { Box, type JSXElement, Text } from '@metamask/snaps-sdk/jsx'; import type { JsonRpcRequest, PendingJsonRpcResponse } from '@metamask/utils'; diff --git a/packages/snaps-rpc-methods/src/restricted/caveats/index.ts b/packages/snaps-rpc-methods/src/restricted/caveats/index.ts index 5ef90283e3..55107579eb 100644 --- a/packages/snaps-rpc-methods/src/restricted/caveats/index.ts +++ b/packages/snaps-rpc-methods/src/restricted/caveats/index.ts @@ -1,10 +1,6 @@ import type { PermissionConstraint } from '@metamask/permission-controller'; import type { Json } from '@metamask/utils'; -import { getBip32EntropyBuilder } from '../getBip32Entropy'; -import { getBip32PublicKeyBuilder } from '../getBip32PublicKey'; -import { getBip44EntropyBuilder } from '../getBip44Entropy'; -import { invokeSnapBuilder } from '../invokeSnap'; import { permittedCoinTypesCaveatMapper, PermittedCoinTypesCaveatSpecification, @@ -14,6 +10,10 @@ import { PermittedDerivationPathsCaveatSpecification, } from './permittedDerivationPaths'; import { snapIdsCaveatMapper, SnapIdsCaveatSpecification } from './snapIds'; +import { getBip32EntropyBuilder } from '../getBip32Entropy'; +import { getBip32PublicKeyBuilder } from '../getBip32PublicKey'; +import { getBip44EntropyBuilder } from '../getBip44Entropy'; +import { invokeSnapBuilder } from '../invokeSnap'; export const caveatSpecifications = { ...PermittedDerivationPathsCaveatSpecification, diff --git a/packages/snaps-rpc-methods/src/restricted/invokeSnap.ts b/packages/snaps-rpc-methods/src/restricted/invokeSnap.ts index 294df64460..166dd0520f 100644 --- a/packages/snaps-rpc-methods/src/restricted/invokeSnap.ts +++ b/packages/snaps-rpc-methods/src/restricted/invokeSnap.ts @@ -73,6 +73,7 @@ export type InvokeSnapParams = { * @param params - The side-effect params. * @param params.requestData - The request data associated to the requested permission. * @param params.messagingSystem - The messenger to call an action. + * @returns The result of the Snap installation. */ export const handleSnapInstall: PermissionSideEffect< AllowedActions, diff --git a/packages/snaps-rpc-methods/src/utils.ts b/packages/snaps-rpc-methods/src/utils.ts index 9e46d17205..c289350e3f 100644 --- a/packages/snaps-rpc-methods/src/utils.ts +++ b/packages/snaps-rpc-methods/src/utils.ts @@ -200,6 +200,7 @@ type GetNodeArgs = { * derivation. * @param options.path - The derivation path to use as array, starting with an * "m" as the first item. + * @returns The SLIP10Node instance. */ export async function getNode({ curve, diff --git a/packages/snaps-sdk/package.json b/packages/snaps-sdk/package.json index ad17334e0e..4c41cd0b59 100644 --- a/packages/snaps-sdk/package.json +++ b/packages/snaps-sdk/package.json @@ -68,22 +68,22 @@ "devDependencies": { "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@swc/core": "1.3.78", "@types/jest": "^27.5.1", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "expect-type": "^0.17.3", diff --git a/packages/snaps-sdk/src/index.test.ts b/packages/snaps-sdk/src/index.test.ts index 3d70429a56..26795ec54b 100644 --- a/packages/snaps-sdk/src/index.test.ts +++ b/packages/snaps-sdk/src/index.test.ts @@ -1,5 +1,5 @@ // TODO: Add tests, and remove these comments. -// eslint-disable-next-line import/unambiguous +// eslint-disable-next-line import-x/unambiguous describe('index', () => { it.todo('should be tested'); }); diff --git a/packages/snaps-sdk/src/internals/error-wrappers.test.ts b/packages/snaps-sdk/src/internals/error-wrappers.test.ts index 26fcb0637e..ddd27df5a3 100644 --- a/packages/snaps-sdk/src/internals/error-wrappers.test.ts +++ b/packages/snaps-sdk/src/internals/error-wrappers.test.ts @@ -1,7 +1,7 @@ import { rpcErrors } from '@metamask/rpc-errors'; -import { SnapError } from '../errors'; import { createSnapError } from './error-wrappers'; +import { SnapError } from '../errors'; describe('createSnapError', () => { it('creates a SnapError from an rpc-errors function', () => { diff --git a/packages/snaps-sdk/src/internals/jsx.ts b/packages/snaps-sdk/src/internals/jsx.ts index cf8ae331c2..5cf95f97ed 100644 --- a/packages/snaps-sdk/src/internals/jsx.ts +++ b/packages/snaps-sdk/src/internals/jsx.ts @@ -11,8 +11,8 @@ import type { UnionToIntersection, } from '@metamask/superstruct'; -import type { EmptyObject } from '../types'; import { union } from './structs'; +import type { EmptyObject } from '../types'; /** * Check if a type is a union. Infers `true` if it is a union, otherwise diff --git a/packages/snaps-sdk/src/internals/structs.test.ts b/packages/snaps-sdk/src/internals/structs.test.ts index 8af0b0a9c5..11c8236e2e 100644 --- a/packages/snaps-sdk/src/internals/structs.test.ts +++ b/packages/snaps-sdk/src/internals/structs.test.ts @@ -1,8 +1,8 @@ import { is, validate } from '@metamask/superstruct'; +import { enumValue, literal, typedUnion, union } from './structs'; import { Text } from '../jsx'; import { BoxStruct, FieldStruct, TextStruct } from '../jsx/validation'; -import { enumValue, literal, typedUnion, union } from './structs'; describe('enumValue', () => { it('validates an enum value', () => { diff --git a/packages/snaps-sdk/src/jsx/components/Container.ts b/packages/snaps-sdk/src/jsx/components/Container.ts index d6a6bf8c9b..bd49c66c45 100644 --- a/packages/snaps-sdk/src/jsx/components/Container.ts +++ b/packages/snaps-sdk/src/jsx/components/Container.ts @@ -1,6 +1,6 @@ -import { createSnapComponent } from '../component'; import type { BoxElement } from './Box'; import type { FooterElement } from './Footer'; +import { createSnapComponent } from '../component'; /** * The props of the {@link Container} component. diff --git a/packages/snaps-sdk/src/jsx/components/Footer.ts b/packages/snaps-sdk/src/jsx/components/Footer.ts index 937ce4a147..5fd9ac2652 100644 --- a/packages/snaps-sdk/src/jsx/components/Footer.ts +++ b/packages/snaps-sdk/src/jsx/components/Footer.ts @@ -1,5 +1,5 @@ -import { createSnapComponent } from '../component'; import type { ButtonElement } from './form'; +import { createSnapComponent } from '../component'; /** * The props of the {@link Footer} component. diff --git a/packages/snaps-sdk/src/jsx/components/Link.ts b/packages/snaps-sdk/src/jsx/components/Link.ts index 047ba7b0ed..6abfd18c1a 100644 --- a/packages/snaps-sdk/src/jsx/components/Link.ts +++ b/packages/snaps-sdk/src/jsx/components/Link.ts @@ -1,6 +1,6 @@ +import type { StandardFormattingElement } from './formatting'; import type { SnapsChildren } from '../component'; import { createSnapComponent } from '../component'; -import type { StandardFormattingElement } from './formatting'; /** * The children of the {@link Link} component. diff --git a/packages/snaps-sdk/src/jsx/components/Row.ts b/packages/snaps-sdk/src/jsx/components/Row.ts index a23672ab44..80d5118e09 100644 --- a/packages/snaps-sdk/src/jsx/components/Row.ts +++ b/packages/snaps-sdk/src/jsx/components/Row.ts @@ -1,8 +1,8 @@ -import { createSnapComponent } from '../component'; import type { AddressElement } from './Address'; import type { ImageElement } from './Image'; import type { TextElement } from './Text'; import type { ValueElement } from './Value'; +import { createSnapComponent } from '../component'; /** * The children of a {@link Row} component. diff --git a/packages/snaps-sdk/src/jsx/components/Text.ts b/packages/snaps-sdk/src/jsx/components/Text.ts index 25c1fbc72d..e561b03560 100644 --- a/packages/snaps-sdk/src/jsx/components/Text.ts +++ b/packages/snaps-sdk/src/jsx/components/Text.ts @@ -1,8 +1,8 @@ -import type { SnapsChildren } from '../component'; -import { createSnapComponent } from '../component'; import type { StandardFormattingElement } from './formatting'; import type { IconElement } from './Icon'; import type { LinkElement } from './Link'; +import { createSnapComponent } from '../component'; +import type { SnapsChildren } from '../component'; /** * The children of the {@link Text} component. diff --git a/packages/snaps-sdk/src/jsx/components/Tooltip.ts b/packages/snaps-sdk/src/jsx/components/Tooltip.ts index c5439a2da1..ca59d33373 100644 --- a/packages/snaps-sdk/src/jsx/components/Tooltip.ts +++ b/packages/snaps-sdk/src/jsx/components/Tooltip.ts @@ -1,9 +1,9 @@ -import { createSnapComponent } from '../component'; import type { StandardFormattingElement } from './formatting'; import type { IconElement } from './Icon'; import type { ImageElement } from './Image'; import type { LinkElement } from './Link'; import type { TextElement } from './Text'; +import { createSnapComponent } from '../component'; export type TooltipChildren = | TextElement diff --git a/packages/snaps-sdk/src/jsx/components/form/Dropdown.ts b/packages/snaps-sdk/src/jsx/components/form/Dropdown.ts index f0c476fb2b..4c34b4dfd2 100644 --- a/packages/snaps-sdk/src/jsx/components/form/Dropdown.ts +++ b/packages/snaps-sdk/src/jsx/components/form/Dropdown.ts @@ -1,6 +1,6 @@ +import type { OptionElement } from './Option'; import type { SnapsChildren } from '../../component'; import { createSnapComponent } from '../../component'; -import type { OptionElement } from './Option'; /** * The props of the {@link Dropdown} component. diff --git a/packages/snaps-sdk/src/jsx/components/form/Field.ts b/packages/snaps-sdk/src/jsx/components/form/Field.ts index b36a8e609d..341dd65c22 100644 --- a/packages/snaps-sdk/src/jsx/components/form/Field.ts +++ b/packages/snaps-sdk/src/jsx/components/form/Field.ts @@ -1,10 +1,10 @@ -import { createSnapComponent } from '../../component'; import type { ButtonElement } from './Button'; import type { CheckboxElement } from './Checkbox'; import type { DropdownElement } from './Dropdown'; import type { FileInputElement } from './FileInput'; import type { InputElement } from './Input'; import type { RadioGroupElement } from './RadioGroup'; +import { createSnapComponent } from '../../component'; /** * The props of the {@link Field} component. diff --git a/packages/snaps-sdk/src/jsx/components/form/Option.ts b/packages/snaps-sdk/src/jsx/components/form/Option.ts index 6466ce068c..d5d6005509 100644 --- a/packages/snaps-sdk/src/jsx/components/form/Option.ts +++ b/packages/snaps-sdk/src/jsx/components/form/Option.ts @@ -1,6 +1,6 @@ -import { createSnapComponent } from '../../component'; // eslint-disable-next-line @typescript-eslint/no-unused-vars -import { Dropdown } from './Dropdown'; +import type { Dropdown } from './Dropdown'; +import { createSnapComponent } from '../../component'; /** * The props of the {@link Option} component. diff --git a/packages/snaps-sdk/src/jsx/components/form/RadioGroup.ts b/packages/snaps-sdk/src/jsx/components/form/RadioGroup.ts index b23ef09100..5bfafc02d2 100644 --- a/packages/snaps-sdk/src/jsx/components/form/RadioGroup.ts +++ b/packages/snaps-sdk/src/jsx/components/form/RadioGroup.ts @@ -1,6 +1,6 @@ +import type { RadioElement } from './Radio'; import type { SnapsChildren } from '../../component'; import { createSnapComponent } from '../../component'; -import type { RadioElement } from './Radio'; const TYPE = 'RadioGroup'; diff --git a/packages/snaps-sdk/src/jsx/validation.ts b/packages/snaps-sdk/src/jsx/validation.ts index de0f12d3d4..507c15c1f8 100644 --- a/packages/snaps-sdk/src/jsx/validation.ts +++ b/packages/snaps-sdk/src/jsx/validation.ts @@ -25,9 +25,6 @@ import { JsonStruct, } from '@metamask/utils'; -import type { Describe } from '../internals'; -import { literal, nullUnion, svg, typedUnion } from '../internals'; -import type { EmptyObject } from '../types'; import type { GenericSnapElement, JsonObject, @@ -70,6 +67,9 @@ import { type IconElement, IconName, } from './components'; +import type { Describe } from '../internals'; +import { literal, nullUnion, svg, typedUnion } from '../internals'; +import type { EmptyObject } from '../types'; /** * A struct for the {@link Key} type. diff --git a/packages/snaps-sdk/src/types/handlers/signature.ts b/packages/snaps-sdk/src/types/handlers/signature.ts index 2bc13b0c13..13cbab5005 100644 --- a/packages/snaps-sdk/src/types/handlers/signature.ts +++ b/packages/snaps-sdk/src/types/handlers/signature.ts @@ -1,6 +1,6 @@ +import type { SeverityLevel } from './transaction'; import type { EnumToUnion } from '../../internals'; import type { Component } from '../../ui'; -import type { SeverityLevel } from './transaction'; /** * An eth_sign signature object. diff --git a/packages/snaps-sdk/src/types/images.ts b/packages/snaps-sdk/src/types/images.ts index c36e8789cd..9bde887d45 100644 --- a/packages/snaps-sdk/src/types/images.ts +++ b/packages/snaps-sdk/src/types/images.ts @@ -1,4 +1,4 @@ -// eslint-disable-next-line import/unambiguous +// eslint-disable-next-line import-x/unambiguous declare module '*.svg' { const content: string; export default content; diff --git a/packages/snaps-sdk/src/types/index.ts b/packages/snaps-sdk/src/types/index.ts index fafc24fe65..ac60f4b902 100644 --- a/packages/snaps-sdk/src/types/index.ts +++ b/packages/snaps-sdk/src/types/index.ts @@ -1,8 +1,8 @@ // This is intentionally imported, rather than re-exported. -/* eslint-disable import/no-unassigned-import */ +/* eslint-disable import-x/no-unassigned-import */ import './global'; import './images'; -/* eslint-enable import/no-unassigned-import */ +/* eslint-enable import-x/no-unassigned-import */ export * from './caip'; export * from './handlers'; diff --git a/packages/snaps-sdk/src/types/interface.ts b/packages/snaps-sdk/src/types/interface.ts index 86d2ed311c..adb75fcfd1 100644 --- a/packages/snaps-sdk/src/types/interface.ts +++ b/packages/snaps-sdk/src/types/interface.ts @@ -8,11 +8,11 @@ import { } from '@metamask/superstruct'; import { JsonStruct } from '@metamask/utils'; +import { FileStruct } from './handlers'; import type { JSXElement } from '../jsx'; import { RootJSXElementStruct } from '../jsx'; import type { Component } from '../ui'; import { ComponentStruct } from '../ui'; -import { FileStruct } from './handlers'; /** * To avoid typing problems with the interface state when manipulating it we diff --git a/packages/snaps-sdk/src/types/methods/dialog.test.ts b/packages/snaps-sdk/src/types/methods/dialog.test.ts index 11483951d8..3181f42027 100644 --- a/packages/snaps-sdk/src/types/methods/dialog.test.ts +++ b/packages/snaps-sdk/src/types/methods/dialog.test.ts @@ -1,6 +1,5 @@ import { expectTypeOf } from 'expect-type'; -import type { text } from '../../ui'; import type { ConfirmationDialog, PromptDialog, @@ -8,6 +7,7 @@ import type { DialogParams, } from './dialog'; import { DialogType } from './dialog'; +import type { text } from '../../ui'; describe('DialogType', () => { it('has the correct values', () => { diff --git a/packages/snaps-sdk/src/types/methods/methods.ts b/packages/snaps-sdk/src/types/methods/methods.ts index 4d9e1f33c6..a03707e172 100644 --- a/packages/snaps-sdk/src/types/methods/methods.ts +++ b/packages/snaps-sdk/src/types/methods/methods.ts @@ -1,4 +1,3 @@ -import type { Method } from '../../internals'; import type { CreateInterfaceParams, CreateInterfaceResult, @@ -52,6 +51,7 @@ import type { UpdateInterfaceParams, UpdateInterfaceResult, } from './update-interface'; +import type { Method } from '../../internals'; /** * The methods that are available to the Snap. Each method is a tuple of the diff --git a/packages/snaps-sdk/src/ui/component.test.ts b/packages/snaps-sdk/src/ui/component.test.ts index a13de382c6..2ccfdf284e 100644 --- a/packages/snaps-sdk/src/ui/component.test.ts +++ b/packages/snaps-sdk/src/ui/component.test.ts @@ -1,7 +1,8 @@ import { assertIsComponent, isComponent } from './component'; -import type { Input, Form } from './components'; -import { - ButtonVariant, +import { ButtonVariant, ButtonType, InputType } from './components'; +import type { + Input, + Form, type Button, type Divider, type Heading, @@ -9,8 +10,6 @@ import { type Panel, type Spinner, type Text, - ButtonType, - InputType, } from './components'; import { NodeType } from './nodes'; diff --git a/packages/snaps-sdk/src/ui/components/address.test.ts b/packages/snaps-sdk/src/ui/components/address.test.ts index 4e1a5e4de3..b44db058fb 100644 --- a/packages/snaps-sdk/src/ui/components/address.test.ts +++ b/packages/snaps-sdk/src/ui/components/address.test.ts @@ -1,5 +1,5 @@ -import { NodeType } from '../nodes'; import { address } from './address'; +import { NodeType } from '../nodes'; describe('address', () => { const MOCK_ADDRESS = '0x4bbeEB066eD09B7AEd07bF39EEe0460DFa261520'; diff --git a/packages/snaps-sdk/src/ui/components/button.test.ts b/packages/snaps-sdk/src/ui/components/button.test.ts index 70ee5e5be5..ab26fae879 100644 --- a/packages/snaps-sdk/src/ui/components/button.test.ts +++ b/packages/snaps-sdk/src/ui/components/button.test.ts @@ -1,5 +1,5 @@ -import { NodeType } from '../nodes'; import { ButtonType, ButtonVariant, button } from './button'; +import { NodeType } from '../nodes'; describe('button', () => { it('creates a button component', () => { diff --git a/packages/snaps-sdk/src/ui/components/copyable.test.ts b/packages/snaps-sdk/src/ui/components/copyable.test.ts index 75c01df185..e5bb0f8eb8 100644 --- a/packages/snaps-sdk/src/ui/components/copyable.test.ts +++ b/packages/snaps-sdk/src/ui/components/copyable.test.ts @@ -1,5 +1,5 @@ -import { NodeType } from '../nodes'; import { copyable } from './copyable'; +import { NodeType } from '../nodes'; describe('copyable', () => { it('creates a copyable component', () => { diff --git a/packages/snaps-sdk/src/ui/components/divider.test.ts b/packages/snaps-sdk/src/ui/components/divider.test.ts index 9ea1b9a5c0..806bc794f1 100644 --- a/packages/snaps-sdk/src/ui/components/divider.test.ts +++ b/packages/snaps-sdk/src/ui/components/divider.test.ts @@ -1,5 +1,5 @@ -import { NodeType } from '../nodes'; import { divider } from './divider'; +import { NodeType } from '../nodes'; describe('divider', () => { it('creates a divider component', () => { diff --git a/packages/snaps-sdk/src/ui/components/form.test.ts b/packages/snaps-sdk/src/ui/components/form.test.ts index 4ec9a11850..89334df6a6 100644 --- a/packages/snaps-sdk/src/ui/components/form.test.ts +++ b/packages/snaps-sdk/src/ui/components/form.test.ts @@ -1,6 +1,6 @@ -import { NodeType } from '../nodes'; import { form } from './form'; import { input } from './input'; +import { NodeType } from '../nodes'; describe('Form', () => { it('creates a form component', () => { diff --git a/packages/snaps-sdk/src/ui/components/form.ts b/packages/snaps-sdk/src/ui/components/form.ts index 5d9381a4e4..6aaed3c0ab 100644 --- a/packages/snaps-sdk/src/ui/components/form.ts +++ b/packages/snaps-sdk/src/ui/components/form.ts @@ -8,10 +8,10 @@ import { union, } from '@metamask/superstruct'; -import { createBuilder } from '../builder'; -import { NodeStruct, NodeType } from '../nodes'; import { ButtonStruct } from './button'; import { InputStruct } from './input'; +import { createBuilder } from '../builder'; +import { NodeStruct, NodeType } from '../nodes'; export const FormComponentStruct = union([InputStruct, ButtonStruct]); diff --git a/packages/snaps-sdk/src/ui/components/heading.test.ts b/packages/snaps-sdk/src/ui/components/heading.test.ts index d4bca3e616..5fdae38561 100644 --- a/packages/snaps-sdk/src/ui/components/heading.test.ts +++ b/packages/snaps-sdk/src/ui/components/heading.test.ts @@ -1,5 +1,5 @@ -import { NodeType } from '../nodes'; import { heading } from './heading'; +import { NodeType } from '../nodes'; describe('heading', () => { it('creates a heading component', () => { diff --git a/packages/snaps-sdk/src/ui/components/image.test.ts b/packages/snaps-sdk/src/ui/components/image.test.ts index 76619ec467..b27343bafc 100644 --- a/packages/snaps-sdk/src/ui/components/image.test.ts +++ b/packages/snaps-sdk/src/ui/components/image.test.ts @@ -1,5 +1,5 @@ -import { NodeType } from '../nodes'; import { image } from './image'; +import { NodeType } from '../nodes'; const MOCK_SVG = ''; diff --git a/packages/snaps-sdk/src/ui/components/input.test.ts b/packages/snaps-sdk/src/ui/components/input.test.ts index 87a0bfc0c3..629b9c7fdd 100644 --- a/packages/snaps-sdk/src/ui/components/input.test.ts +++ b/packages/snaps-sdk/src/ui/components/input.test.ts @@ -1,5 +1,5 @@ -import { NodeType } from '../nodes'; import { input, InputType } from './input'; +import { NodeType } from '../nodes'; describe('Input', () => { it('creates an input component', () => { diff --git a/packages/snaps-sdk/src/ui/components/panel.test.ts b/packages/snaps-sdk/src/ui/components/panel.test.ts index 2ce14fec68..7301b59a97 100644 --- a/packages/snaps-sdk/src/ui/components/panel.test.ts +++ b/packages/snaps-sdk/src/ui/components/panel.test.ts @@ -1,8 +1,8 @@ import { is } from '@metamask/superstruct'; -import { NodeType } from '../nodes'; import { heading } from './heading'; import { panel, PanelStruct, ParentStruct } from './panel'; +import { NodeType } from '../nodes'; describe('ParentStruct', () => { it('validates that a value is a node with children', () => { diff --git a/packages/snaps-sdk/src/ui/components/panel.ts b/packages/snaps-sdk/src/ui/components/panel.ts index 90b8d71ae5..7832039d78 100644 --- a/packages/snaps-sdk/src/ui/components/panel.ts +++ b/packages/snaps-sdk/src/ui/components/panel.ts @@ -1,9 +1,6 @@ import type { Infer, Struct } from '@metamask/superstruct'; import { array, assign, lazy, literal, object } from '@metamask/superstruct'; -import { typedUnion } from '../../internals'; -import { createBuilder } from '../builder'; -import { NodeStruct, NodeType } from '../nodes'; import { AddressStruct } from './address'; import { ButtonStruct } from './button'; import { CopyableStruct } from './copyable'; @@ -15,6 +12,9 @@ import { InputStruct } from './input'; import { RowStruct } from './row'; import { SpinnerStruct } from './spinner'; import { TextStruct } from './text'; +import { typedUnion } from '../../internals'; +import { createBuilder } from '../builder'; +import { NodeStruct, NodeType } from '../nodes'; /** * @internal diff --git a/packages/snaps-sdk/src/ui/components/row.test.ts b/packages/snaps-sdk/src/ui/components/row.test.ts index ac928c805b..5bcf4a52ce 100644 --- a/packages/snaps-sdk/src/ui/components/row.test.ts +++ b/packages/snaps-sdk/src/ui/components/row.test.ts @@ -1,6 +1,6 @@ -import { NodeType } from '../nodes'; import { RowVariant, row } from './row'; import { text } from './text'; +import { NodeType } from '../nodes'; describe('row', () => { it('creates a row component', () => { diff --git a/packages/snaps-sdk/src/ui/components/row.ts b/packages/snaps-sdk/src/ui/components/row.ts index 80a886fca8..4d2c665edd 100644 --- a/packages/snaps-sdk/src/ui/components/row.ts +++ b/packages/snaps-sdk/src/ui/components/row.ts @@ -8,12 +8,12 @@ import { union, } from '@metamask/superstruct'; -import { enumValue } from '../../internals'; -import { createBuilder } from '../builder'; -import { LiteralStruct, NodeType } from '../nodes'; import { AddressStruct } from './address'; import { ImageStruct } from './image'; import { TextStruct } from './text'; +import { enumValue } from '../../internals'; +import { createBuilder } from '../builder'; +import { LiteralStruct, NodeType } from '../nodes'; export enum RowVariant { Default = 'default', diff --git a/packages/snaps-sdk/src/ui/components/spinner.test.ts b/packages/snaps-sdk/src/ui/components/spinner.test.ts index 4111f2bd8f..8d8e53344d 100644 --- a/packages/snaps-sdk/src/ui/components/spinner.test.ts +++ b/packages/snaps-sdk/src/ui/components/spinner.test.ts @@ -1,5 +1,5 @@ -import { NodeType } from '../nodes'; import { spinner } from './spinner'; +import { NodeType } from '../nodes'; describe('spinner', () => { it('creates a spinner component', () => { diff --git a/packages/snaps-sdk/src/ui/components/text.test.ts b/packages/snaps-sdk/src/ui/components/text.test.ts index 53618e299f..765512dd9e 100644 --- a/packages/snaps-sdk/src/ui/components/text.test.ts +++ b/packages/snaps-sdk/src/ui/components/text.test.ts @@ -1,5 +1,5 @@ -import { NodeType } from '../nodes'; import { text } from './text'; +import { NodeType } from '../nodes'; describe('text', () => { it('creates a text component', () => { diff --git a/packages/snaps-simulator/package.json b/packages/snaps-simulator/package.json index 1ab628306a..d047204951 100644 --- a/packages/snaps-simulator/package.json +++ b/packages/snaps-simulator/package.json @@ -66,11 +66,11 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", "@metamask/eslint-config-browser": "^11.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.10", "@redux-saga/is": "^1.1.3", "@redux-saga/symbols": "^1.1.3", @@ -86,19 +86,19 @@ "@types/react": "^18.2.5", "@types/react-dom": "^18.2.3", "@types/webpack-env": "^1.18.1", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "assert": "^2.0.0", "copy-webpack-plugin": "^11.0.0", "css-loader": "^6.7.3", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "eslint-plugin-react": "^7.32.2", diff --git a/packages/snaps-simulator/src/components/Author.test.tsx b/packages/snaps-simulator/src/components/Author.test.tsx index 1d993673a6..add0e148f6 100644 --- a/packages/snaps-simulator/src/components/Author.test.tsx +++ b/packages/snaps-simulator/src/components/Author.test.tsx @@ -1,5 +1,5 @@ -import { render } from '../utils'; import { Author } from './Author'; +import { render } from '../utils'; describe('Author', () => { it('renders', () => { diff --git a/packages/snaps-simulator/src/components/Icon.test.tsx b/packages/snaps-simulator/src/components/Icon.test.tsx index 3bf6f3055a..ffe8044867 100644 --- a/packages/snaps-simulator/src/components/Icon.test.tsx +++ b/packages/snaps-simulator/src/components/Icon.test.tsx @@ -1,5 +1,5 @@ -import { render } from '../utils'; import { Icon } from './Icon'; +import { render } from '../utils'; describe('Icon', () => { it('renders', () => { diff --git a/packages/snaps-simulator/src/components/Link.test.tsx b/packages/snaps-simulator/src/components/Link.test.tsx index 8c3e2ada82..1bd0890388 100644 --- a/packages/snaps-simulator/src/components/Link.test.tsx +++ b/packages/snaps-simulator/src/components/Link.test.tsx @@ -1,5 +1,5 @@ -import { render } from '../utils'; import { Link } from './Link'; +import { render } from '../utils'; describe('Link', () => { it('renders', () => { diff --git a/packages/snaps-simulator/src/components/Logo.test.tsx b/packages/snaps-simulator/src/components/Logo.test.tsx index 4fccc9ea7c..fe0947593d 100644 --- a/packages/snaps-simulator/src/components/Logo.test.tsx +++ b/packages/snaps-simulator/src/components/Logo.test.tsx @@ -1,5 +1,5 @@ -import { render } from '../utils'; import { Logo } from './Logo'; +import { render } from '../utils'; describe('Logo', () => { it('renders', () => { diff --git a/packages/snaps-simulator/src/components/Prefill.test.tsx b/packages/snaps-simulator/src/components/Prefill.test.tsx index 5a18da88a4..cea5a5b316 100644 --- a/packages/snaps-simulator/src/components/Prefill.test.tsx +++ b/packages/snaps-simulator/src/components/Prefill.test.tsx @@ -1,5 +1,5 @@ -import { render } from '../utils'; import { Prefill } from './Prefill'; +import { render } from '../utils'; describe('Prefill', () => { it('renders', () => { diff --git a/packages/snaps-simulator/src/components/SnapIcon.test.tsx b/packages/snaps-simulator/src/components/SnapIcon.test.tsx index 4b6e93455c..c8bb2615b0 100644 --- a/packages/snaps-simulator/src/components/SnapIcon.test.tsx +++ b/packages/snaps-simulator/src/components/SnapIcon.test.tsx @@ -1,5 +1,5 @@ -import { render } from '../utils'; import { SnapIcon } from './SnapIcon'; +import { render } from '../utils'; describe('SnapIcon', () => { it('renders', () => { diff --git a/packages/snaps-simulator/src/components/SnapIcon.tsx b/packages/snaps-simulator/src/components/SnapIcon.tsx index f81a86e0ec..f986b75171 100644 --- a/packages/snaps-simulator/src/components/SnapIcon.tsx +++ b/packages/snaps-simulator/src/components/SnapIcon.tsx @@ -1,9 +1,9 @@ import { Avatar, Box } from '@chakra-ui/react'; import type { FunctionComponent } from 'react'; +import { Icon } from './Icon'; import { getIcon } from '../features'; import { useSelector } from '../hooks'; -import { Icon } from './Icon'; export type SnapIconProps = { snapName: string; diff --git a/packages/snaps-simulator/src/components/Window.test.tsx b/packages/snaps-simulator/src/components/Window.test.tsx index 5285dedbf1..2861bf361f 100644 --- a/packages/snaps-simulator/src/components/Window.test.tsx +++ b/packages/snaps-simulator/src/components/Window.test.tsx @@ -1,5 +1,5 @@ -import { render } from '../utils'; import { Window } from './Window'; +import { render } from '../utils'; describe('Window', () => { it('renders', () => { diff --git a/packages/snaps-simulator/src/components/dialogs/AlertDialog.test.tsx b/packages/snaps-simulator/src/components/dialogs/AlertDialog.test.tsx index a22e2a56ff..791ac581eb 100644 --- a/packages/snaps-simulator/src/components/dialogs/AlertDialog.test.tsx +++ b/packages/snaps-simulator/src/components/dialogs/AlertDialog.test.tsx @@ -1,7 +1,7 @@ import { Box } from '@metamask/snaps-sdk/jsx'; -import { render } from '../../utils'; import { AlertDialog } from './AlertDialog'; +import { render } from '../../utils'; describe('AlertDialog', () => { it('renders', () => { diff --git a/packages/snaps-simulator/src/components/dialogs/ConfirmationDialog.test.tsx b/packages/snaps-simulator/src/components/dialogs/ConfirmationDialog.test.tsx index ed5dd0a580..63c7f2b621 100644 --- a/packages/snaps-simulator/src/components/dialogs/ConfirmationDialog.test.tsx +++ b/packages/snaps-simulator/src/components/dialogs/ConfirmationDialog.test.tsx @@ -1,7 +1,7 @@ import { Box } from '@metamask/snaps-sdk/jsx'; -import { render } from '../../utils'; import { ConfirmationDialog } from './ConfirmationDialog'; +import { render } from '../../utils'; describe('ConfirmationDialog', () => { it('renders', () => { diff --git a/packages/snaps-simulator/src/components/dialogs/PromptDialog.test.tsx b/packages/snaps-simulator/src/components/dialogs/PromptDialog.test.tsx index b5b3fd4232..aa3d072840 100644 --- a/packages/snaps-simulator/src/components/dialogs/PromptDialog.test.tsx +++ b/packages/snaps-simulator/src/components/dialogs/PromptDialog.test.tsx @@ -1,7 +1,7 @@ import { Box } from '@metamask/snaps-sdk/jsx'; -import { render } from '../../utils'; import { PromptDialog } from './PromptDialog'; +import { render } from '../../utils'; describe('PromptDialog', () => { it('renders', () => { diff --git a/packages/snaps-simulator/src/contexts/SnapInterface.tsx b/packages/snaps-simulator/src/contexts/SnapInterface.tsx index da21d7dbed..ccf066f1bc 100644 --- a/packages/snaps-simulator/src/contexts/SnapInterface.tsx +++ b/packages/snaps-simulator/src/contexts/SnapInterface.tsx @@ -6,6 +6,7 @@ import throttle from 'lodash.throttle'; import type { FunctionComponent, ReactNode } from 'react'; import { createContext, useContext } from 'react'; +import { mergeValue } from './utils'; import { getSnapInterfaceController, getSnapInterface, @@ -13,7 +14,6 @@ import { setSnapInterfaceState, } from '../features'; import { useDispatch, useSelector } from '../hooks'; -import { mergeValue } from './utils'; /** * A no-op function. diff --git a/packages/snaps-simulator/src/entry.tsx b/packages/snaps-simulator/src/entry.tsx index 82f0db240e..fb004b6277 100644 --- a/packages/snaps-simulator/src/entry.tsx +++ b/packages/snaps-simulator/src/entry.tsx @@ -7,7 +7,7 @@ import { Root } from './components'; import { createStore } from './store'; import { IS_TEST_BUILD } from './utils'; -// eslint-disable-next-line import/no-unassigned-import +// eslint-disable-next-line import-x/no-unassigned-import import './assets/fonts/fonts.css'; const rootElement = document.getElementById('root'); diff --git a/packages/snaps-simulator/src/features/builder/Builder.tsx b/packages/snaps-simulator/src/features/builder/Builder.tsx index bc7d2e33c2..8f4b7e4ffb 100644 --- a/packages/snaps-simulator/src/features/builder/Builder.tsx +++ b/packages/snaps-simulator/src/features/builder/Builder.tsx @@ -12,9 +12,9 @@ import type { NodeModel } from '@minoru/react-dnd-treeview'; import type { FunctionComponent } from 'react'; import { useState } from 'react'; -import { Editor } from '../../components'; import { TemplateComponentList, NodeTree, NodeRenderer } from './components'; import { boxToCode, nodeModelsToComponent } from './utils'; +import { Editor } from '../../components'; export const Builder: FunctionComponent = () => { const [id, setId] = useState(2); diff --git a/packages/snaps-simulator/src/features/builder/components/EditableNodeInput.tsx b/packages/snaps-simulator/src/features/builder/components/EditableNodeInput.tsx index 4533e12b7c..74861dc06f 100644 --- a/packages/snaps-simulator/src/features/builder/components/EditableNodeInput.tsx +++ b/packages/snaps-simulator/src/features/builder/components/EditableNodeInput.tsx @@ -1,6 +1,6 @@ import { Input as ChakraInput } from '@chakra-ui/react'; -import type { ChangeEvent } from 'react'; -import { useState, type FunctionComponent } from 'react'; +import { useState } from 'react'; +import type { ChangeEvent, type FunctionComponent } from 'react'; type EditableNodeInputProps = { placeholder: string; diff --git a/packages/snaps-simulator/src/features/builder/components/MultiEditableNode.tsx b/packages/snaps-simulator/src/features/builder/components/MultiEditableNode.tsx index 22578c946d..70cd20853f 100644 --- a/packages/snaps-simulator/src/features/builder/components/MultiEditableNode.tsx +++ b/packages/snaps-simulator/src/features/builder/components/MultiEditableNode.tsx @@ -8,10 +8,10 @@ import type { } from '@metamask/snaps-sdk/jsx'; import type { FunctionComponent } from 'react'; -import type { EditableNodeProps } from '../../../types'; import { BaseNode } from './BaseNode'; import { EditableNodeInput } from './EditableNodeInput'; import { EditableNodeSelect } from './EditableNodeSelect'; +import type { EditableNodeProps } from '../../../types'; export type MultiEditableComponent = | ButtonElement diff --git a/packages/snaps-simulator/src/features/builder/components/NodeRenderer.tsx b/packages/snaps-simulator/src/features/builder/components/NodeRenderer.tsx index c4e476d8fc..b741c4c1f1 100644 --- a/packages/snaps-simulator/src/features/builder/components/NodeRenderer.tsx +++ b/packages/snaps-simulator/src/features/builder/components/NodeRenderer.tsx @@ -5,6 +5,7 @@ import type { FunctionComponent } from 'react'; import { useMemo } from 'react'; import { useSelector } from 'react-redux'; +import { ErrorBoundary } from './ErrorBoundary'; import { Delineator, DelineatorType, @@ -15,7 +16,6 @@ import { getSnapId } from '../../configuration'; import { Renderer } from '../../renderer'; import { getSnapName } from '../../simulation'; import { nodeModelsToComponent } from '../utils'; -import { ErrorBoundary } from './ErrorBoundary'; export type NodeRendererProps = { items: NodeModel[]; diff --git a/packages/snaps-simulator/src/features/builder/components/NodeTree.tsx b/packages/snaps-simulator/src/features/builder/components/NodeTree.tsx index ddb51b2825..ed355f9e08 100644 --- a/packages/snaps-simulator/src/features/builder/components/NodeTree.tsx +++ b/packages/snaps-simulator/src/features/builder/components/NodeTree.tsx @@ -10,9 +10,9 @@ import { Tree } from '@minoru/react-dnd-treeview'; import type { FunctionComponent } from 'react'; import { useEffect, useRef } from 'react'; -import { canDropElement } from '../utils'; import { Node } from './Node'; import { Start } from './Start'; +import { canDropElement } from '../utils'; export type NodeTreeProps = { items: NodeModel[]; diff --git a/packages/snaps-simulator/src/features/builder/components/TemplateComponentList.tsx b/packages/snaps-simulator/src/features/builder/components/TemplateComponentList.tsx index ffd5dccf4f..b89b749f69 100644 --- a/packages/snaps-simulator/src/features/builder/components/TemplateComponentList.tsx +++ b/packages/snaps-simulator/src/features/builder/components/TemplateComponentList.tsx @@ -20,8 +20,8 @@ import { } from '@metamask/snaps-sdk/jsx'; import type { FunctionComponent } from 'react'; -import type { IconName } from '../../../components'; import { TemplateComponent } from './TemplateComponent'; +import type { IconName } from '../../../components'; type TemplateComponent = { icon: IconName; diff --git a/packages/snaps-simulator/src/features/builder/components/TextEditableNode.tsx b/packages/snaps-simulator/src/features/builder/components/TextEditableNode.tsx index 0cd39286e4..89add7e05d 100644 --- a/packages/snaps-simulator/src/features/builder/components/TextEditableNode.tsx +++ b/packages/snaps-simulator/src/features/builder/components/TextEditableNode.tsx @@ -8,9 +8,9 @@ import { assert, hasProperty } from '@metamask/utils'; import type { ChangeEvent, FunctionComponent } from 'react'; import { useState } from 'react'; +import { BaseNode } from './BaseNode'; import type { EditableNodeProps } from '../../../types'; import { getNodeText } from '../utils'; -import { BaseNode } from './BaseNode'; export type TextEditableComponent = | TextElement diff --git a/packages/snaps-simulator/src/features/builder/utils.ts b/packages/snaps-simulator/src/features/builder/utils.ts index a27d11a1e0..7c675e174b 100644 --- a/packages/snaps-simulator/src/features/builder/utils.ts +++ b/packages/snaps-simulator/src/features/builder/utils.ts @@ -1,11 +1,14 @@ -import type { FieldElement, FormElement } from '@metamask/snaps-sdk/jsx'; import { BoxChildStruct, FieldChildUnionStruct, FormChildStruct, Input, - type BoxElement, - type JSXElement, +} from '@metamask/snaps-sdk/jsx'; +import type { + FieldElement, + FormElement, + BoxElement, + JSXElement, } from '@metamask/snaps-sdk/jsx'; import { deepClone, diff --git a/packages/snaps-simulator/src/features/configuration/Configuration.test.tsx b/packages/snaps-simulator/src/features/configuration/Configuration.test.tsx index 535e728ee6..c890ced8a9 100644 --- a/packages/snaps-simulator/src/features/configuration/Configuration.test.tsx +++ b/packages/snaps-simulator/src/features/configuration/Configuration.test.tsx @@ -1,5 +1,5 @@ -import { render } from '../../utils'; import { Configuration } from './Configuration'; +import { render } from '../../utils'; describe('Configuration', () => { it('renders', () => { diff --git a/packages/snaps-simulator/src/features/configuration/Configuration.tsx b/packages/snaps-simulator/src/features/configuration/Configuration.tsx index 7b5a9d12d5..54a9dbeca2 100644 --- a/packages/snaps-simulator/src/features/configuration/Configuration.tsx +++ b/packages/snaps-simulator/src/features/configuration/Configuration.tsx @@ -32,7 +32,6 @@ import { import type { FormEvent } from 'react'; import { useEffect, useState } from 'react'; -import { useDispatch, useSelector } from '../../hooks'; import { getOpen, getSesEnabled, @@ -43,6 +42,7 @@ import { setSnapId, setSnapVersion, } from './slice'; +import { useDispatch, useSelector } from '../../hooks'; export const Configuration = () => { const dispatch = useDispatch(); diff --git a/packages/snaps-simulator/src/features/console/Console.tsx b/packages/snaps-simulator/src/features/console/Console.tsx index 8273712665..0444150aad 100644 --- a/packages/snaps-simulator/src/features/console/Console.tsx +++ b/packages/snaps-simulator/src/features/console/Console.tsx @@ -9,10 +9,10 @@ import { import type { FunctionComponent } from 'react'; import { useEffect, useRef, useState } from 'react'; -import { Icon } from '../../components'; -import { useSelector } from '../../hooks'; import { ConsoleContent } from './ConsoleContent'; import { getConsoleEntries } from './slice'; +import { Icon } from '../../components'; +import { useSelector } from '../../hooks'; /** * Console component. diff --git a/packages/snaps-simulator/src/features/console/ConsoleContent.tsx b/packages/snaps-simulator/src/features/console/ConsoleContent.tsx index b36e4a1800..c8ecce21a0 100644 --- a/packages/snaps-simulator/src/features/console/ConsoleContent.tsx +++ b/packages/snaps-simulator/src/features/console/ConsoleContent.tsx @@ -1,7 +1,7 @@ import { Text } from '@chakra-ui/react'; -import { useSelector } from '../../hooks'; import { ConsoleEntryType, getConsoleEntries } from './slice'; +import { useSelector } from '../../hooks'; export const ConsoleContent = () => { const entries = useSelector(getConsoleEntries); diff --git a/packages/snaps-simulator/src/features/handlers/components/Handler.test.tsx b/packages/snaps-simulator/src/features/handlers/components/Handler.test.tsx index 41ba0ac471..f242a33956 100644 --- a/packages/snaps-simulator/src/features/handlers/components/Handler.test.tsx +++ b/packages/snaps-simulator/src/features/handlers/components/Handler.test.tsx @@ -1,5 +1,5 @@ -import { render } from '../../../utils'; import { Handler } from './Handler'; +import { render } from '../../../utils'; describe('Handler', () => { it('renders', () => { diff --git a/packages/snaps-simulator/src/features/handlers/components/Handler.tsx b/packages/snaps-simulator/src/features/handlers/components/Handler.tsx index 38c0261b44..a3b2cc7c7a 100644 --- a/packages/snaps-simulator/src/features/handlers/components/Handler.tsx +++ b/packages/snaps-simulator/src/features/handlers/components/Handler.tsx @@ -11,16 +11,16 @@ import type { FunctionComponent } from 'react'; import { useState } from 'react'; import { Outlet } from 'react-router-dom'; -import { TestConditional } from '../../../components'; -import { useSelector } from '../../../hooks'; -import { IS_TEST_BUILD } from '../../../utils'; -import { getUserInterface } from '../../simulation'; import { History } from './History'; import { PlayButton } from './PlayButton'; import { ResetTab } from './ResetTab'; import { ResetUserInterfaceTab } from './ResetUserInterfaceTab'; import { Response } from './Response'; import { UserInterface } from './UserInterface'; +import { TestConditional } from '../../../components'; +import { useSelector } from '../../../hooks'; +import { IS_TEST_BUILD } from '../../../utils'; +import { getUserInterface } from '../../simulation'; export const Handler: FunctionComponent = () => { const [tab, setTab] = useState(0); diff --git a/packages/snaps-simulator/src/features/handlers/components/History.test.tsx b/packages/snaps-simulator/src/features/handlers/components/History.test.tsx index eda35acc66..fd2ec3d87d 100644 --- a/packages/snaps-simulator/src/features/handlers/components/History.test.tsx +++ b/packages/snaps-simulator/src/features/handlers/components/History.test.tsx @@ -1,5 +1,5 @@ -import { render } from '../../../utils'; import { History } from './History'; +import { render } from '../../../utils'; describe('History', () => { it('renders', () => { diff --git a/packages/snaps-simulator/src/features/handlers/components/History.tsx b/packages/snaps-simulator/src/features/handlers/components/History.tsx index c228999c68..3bc6caac7f 100644 --- a/packages/snaps-simulator/src/features/handlers/components/History.tsx +++ b/packages/snaps-simulator/src/features/handlers/components/History.tsx @@ -1,9 +1,9 @@ import { Center, Heading, List, Text } from '@chakra-ui/react'; import type { FunctionComponent } from 'react'; +import { HistoryItem } from './HistoryItem'; import { Icon } from '../../../components'; import { useHandler, useSelector } from '../../../hooks'; -import { HistoryItem } from './HistoryItem'; export const History: FunctionComponent = () => { const handler = useHandler(); diff --git a/packages/snaps-simulator/src/features/handlers/components/HistoryItem.test.tsx b/packages/snaps-simulator/src/features/handlers/components/HistoryItem.test.tsx index 7395945f48..676691a8f6 100644 --- a/packages/snaps-simulator/src/features/handlers/components/HistoryItem.test.tsx +++ b/packages/snaps-simulator/src/features/handlers/components/HistoryItem.test.tsx @@ -1,7 +1,7 @@ import { List, Tabs } from '@chakra-ui/react'; -import { render } from '../../../utils'; import { HistoryItem } from './HistoryItem'; +import { render } from '../../../utils'; describe('HistoryItem', () => { it('renders', () => { diff --git a/packages/snaps-simulator/src/features/handlers/components/Response.test.tsx b/packages/snaps-simulator/src/features/handlers/components/Response.test.tsx index 906eee4beb..2c7ad69311 100644 --- a/packages/snaps-simulator/src/features/handlers/components/Response.test.tsx +++ b/packages/snaps-simulator/src/features/handlers/components/Response.test.tsx @@ -1,5 +1,5 @@ -import { render } from '../../../utils'; import { Response } from './Response'; +import { render } from '../../../utils'; describe('Response', () => { it('renders', () => { diff --git a/packages/snaps-simulator/src/features/handlers/components/UserInterface.test.tsx b/packages/snaps-simulator/src/features/handlers/components/UserInterface.test.tsx index d790d27a2e..4963f0301b 100644 --- a/packages/snaps-simulator/src/features/handlers/components/UserInterface.test.tsx +++ b/packages/snaps-simulator/src/features/handlers/components/UserInterface.test.tsx @@ -1,7 +1,7 @@ import { Tabs } from '@chakra-ui/react'; -import { render } from '../../../utils'; import { UserInterface } from './UserInterface'; +import { render } from '../../../utils'; describe('UserInterface', () => { it('renders', () => { diff --git a/packages/snaps-simulator/src/features/handlers/cronjobs/components/CronjobPrefill.test.tsx b/packages/snaps-simulator/src/features/handlers/cronjobs/components/CronjobPrefill.test.tsx index 95332c1bba..e7c82113ca 100644 --- a/packages/snaps-simulator/src/features/handlers/cronjobs/components/CronjobPrefill.test.tsx +++ b/packages/snaps-simulator/src/features/handlers/cronjobs/components/CronjobPrefill.test.tsx @@ -1,5 +1,5 @@ -import { render } from '../../../../utils'; import { CronjobPrefill } from './CronjobPrefill'; +import { render } from '../../../../utils'; describe('CronjobPrefill', () => { it('renders', () => { diff --git a/packages/snaps-simulator/src/features/handlers/cronjobs/components/CronjobPrefills.test.tsx b/packages/snaps-simulator/src/features/handlers/cronjobs/components/CronjobPrefills.test.tsx index 99dc8007eb..bc5551d100 100644 --- a/packages/snaps-simulator/src/features/handlers/cronjobs/components/CronjobPrefills.test.tsx +++ b/packages/snaps-simulator/src/features/handlers/cronjobs/components/CronjobPrefills.test.tsx @@ -1,5 +1,5 @@ -import { render } from '../../../../utils'; import { CronjobPrefills } from './CronjobPrefills'; +import { render } from '../../../../utils'; describe('CronjobPrefills', () => { it('renders', () => { diff --git a/packages/snaps-simulator/src/features/handlers/cronjobs/components/CronjobPrefills.tsx b/packages/snaps-simulator/src/features/handlers/cronjobs/components/CronjobPrefills.tsx index e045ed44d6..7947e284e9 100644 --- a/packages/snaps-simulator/src/features/handlers/cronjobs/components/CronjobPrefills.tsx +++ b/packages/snaps-simulator/src/features/handlers/cronjobs/components/CronjobPrefills.tsx @@ -1,10 +1,10 @@ import { Box, Flex, Text } from '@chakra-ui/react'; import type { FunctionComponent } from 'react'; -import { useSelector } from '../../../../hooks'; -import { getSnapManifest } from '../../../simulation'; import type { CronjobData } from './CronjobPrefill'; import { CronjobPrefill } from './CronjobPrefill'; +import { useSelector } from '../../../../hooks'; +import { getSnapManifest } from '../../../simulation'; export type CronjobPrefillsProps = { onClick: (prefill: CronjobData) => void; diff --git a/packages/snaps-simulator/src/features/handlers/cronjobs/components/Request.test.tsx b/packages/snaps-simulator/src/features/handlers/cronjobs/components/Request.test.tsx index 4fdaff05a0..ca2b1865f3 100644 --- a/packages/snaps-simulator/src/features/handlers/cronjobs/components/Request.test.tsx +++ b/packages/snaps-simulator/src/features/handlers/cronjobs/components/Request.test.tsx @@ -1,5 +1,5 @@ -import { render } from '../../../../utils'; import { Request } from './Request'; +import { render } from '../../../../utils'; jest.mock('react-monaco-editor'); diff --git a/packages/snaps-simulator/src/features/handlers/cronjobs/components/Request.tsx b/packages/snaps-simulator/src/features/handlers/cronjobs/components/Request.tsx index a24c68c783..417b37d271 100644 --- a/packages/snaps-simulator/src/features/handlers/cronjobs/components/Request.tsx +++ b/packages/snaps-simulator/src/features/handlers/cronjobs/components/Request.tsx @@ -9,13 +9,13 @@ import { HandlerType } from '@metamask/snaps-utils'; import type { FunctionComponent } from 'react'; import { Controller, useForm } from 'react-hook-form'; +import type { CronjobData } from './CronjobPrefill'; +import { CronjobPrefills } from './CronjobPrefills'; import { Editor } from '../../../../components'; import { useDispatch, useSelector } from '../../../../hooks'; import { sendRequest } from '../../../simulation'; import { SAMPLE_JSON_RPC_REQUEST } from '../../json-rpc/schema'; import { getCronjobRequest } from '../slice'; -import type { CronjobData } from './CronjobPrefill'; -import { CronjobPrefills } from './CronjobPrefills'; type CronjobFormData = { origin: string; diff --git a/packages/snaps-simulator/src/features/handlers/transactions/components/Request.tsx b/packages/snaps-simulator/src/features/handlers/transactions/components/Request.tsx index 848dc70c4d..741d45d00c 100644 --- a/packages/snaps-simulator/src/features/handlers/transactions/components/Request.tsx +++ b/packages/snaps-simulator/src/features/handlers/transactions/components/Request.tsx @@ -13,12 +13,12 @@ import { HandlerType } from '@metamask/snaps-utils'; import type { FunctionComponent } from 'react'; import { useForm } from 'react-hook-form'; +import { TransactionPrefills } from './TransactionPrefills'; import { useDispatch, useSelector } from '../../../../hooks'; import { sendRequest } from '../../../simulation'; import { getTransactionRequest } from '../slice'; import type { TransactionFormData } from '../utils'; import { hexlifyTransactionData } from '../utils'; -import { TransactionPrefills } from './TransactionPrefills'; const PLACEHOLDERS = { chainId: 'eip155:1', diff --git a/packages/snaps-simulator/src/features/handlers/transactions/components/TransactionPrefill.test.tsx b/packages/snaps-simulator/src/features/handlers/transactions/components/TransactionPrefill.test.tsx index d34d31a0d6..bc378bce5f 100644 --- a/packages/snaps-simulator/src/features/handlers/transactions/components/TransactionPrefill.test.tsx +++ b/packages/snaps-simulator/src/features/handlers/transactions/components/TransactionPrefill.test.tsx @@ -1,6 +1,6 @@ +import { TransactionPrefill } from './TransactionPrefill'; import { render } from '../../../../utils'; import { TRANSACTION_PRESETS } from '../presets'; -import { TransactionPrefill } from './TransactionPrefill'; describe('TransactionPrefill', () => { it('renders', () => { @@ -9,7 +9,7 @@ describe('TransactionPrefill', () => { , ), diff --git a/packages/snaps-simulator/src/features/handlers/transactions/components/TransactionPrefills.test.tsx b/packages/snaps-simulator/src/features/handlers/transactions/components/TransactionPrefills.test.tsx index 3a40c25ce6..96a3099a27 100644 --- a/packages/snaps-simulator/src/features/handlers/transactions/components/TransactionPrefills.test.tsx +++ b/packages/snaps-simulator/src/features/handlers/transactions/components/TransactionPrefills.test.tsx @@ -1,5 +1,5 @@ -import { render } from '../../../../utils'; import { TransactionPrefills } from './TransactionPrefills'; +import { render } from '../../../../utils'; describe('TransactionPrefills', () => { it('renders', () => { diff --git a/packages/snaps-simulator/src/features/handlers/transactions/components/TransactionPrefills.tsx b/packages/snaps-simulator/src/features/handlers/transactions/components/TransactionPrefills.tsx index b163814858..869a2cb07f 100644 --- a/packages/snaps-simulator/src/features/handlers/transactions/components/TransactionPrefills.tsx +++ b/packages/snaps-simulator/src/features/handlers/transactions/components/TransactionPrefills.tsx @@ -1,9 +1,9 @@ import { Box, Flex, Text } from '@chakra-ui/react'; import type { FunctionComponent } from 'react'; +import { TransactionPrefill } from './TransactionPrefill'; import { TRANSACTION_PRESETS } from '../presets'; import type { TransactionFormData } from '../utils'; -import { TransactionPrefill } from './TransactionPrefill'; export type TransactionPrefillsProps = { onClick: (prefill: TransactionFormData) => void; diff --git a/packages/snaps-simulator/src/features/layout/Layout.tsx b/packages/snaps-simulator/src/features/layout/Layout.tsx index 34c9d58651..4575440770 100644 --- a/packages/snaps-simulator/src/features/layout/Layout.tsx +++ b/packages/snaps-simulator/src/features/layout/Layout.tsx @@ -2,8 +2,8 @@ import { Flex } from '@chakra-ui/react'; import type { FunctionComponent, ReactNode } from 'react'; import { Outlet } from 'react-router-dom'; -import { Console } from '../console'; import { Header, Sidebar } from './components'; +import { Console } from '../console'; type LayoutProps = { children?: ReactNode; diff --git a/packages/snaps-simulator/src/features/layout/components/Header.test.tsx b/packages/snaps-simulator/src/features/layout/components/Header.test.tsx index 2d192d9eed..a4a68d076e 100644 --- a/packages/snaps-simulator/src/features/layout/components/Header.test.tsx +++ b/packages/snaps-simulator/src/features/layout/components/Header.test.tsx @@ -1,5 +1,5 @@ -import { render } from '../../../utils'; import { Header } from './Header'; +import { render } from '../../../utils'; describe('Header', () => { it('renders', () => { diff --git a/packages/snaps-simulator/src/features/layout/components/Sidebar.test.tsx b/packages/snaps-simulator/src/features/layout/components/Sidebar.test.tsx index a81a4d3fc0..a8f59b59f1 100644 --- a/packages/snaps-simulator/src/features/layout/components/Sidebar.test.tsx +++ b/packages/snaps-simulator/src/features/layout/components/Sidebar.test.tsx @@ -1,5 +1,5 @@ -import { render } from '../../../utils'; import { Sidebar } from './Sidebar'; +import { render } from '../../../utils'; describe('Sidebar', () => { it('renders', () => { diff --git a/packages/snaps-simulator/src/features/manifest/Manifest.test.tsx b/packages/snaps-simulator/src/features/manifest/Manifest.test.tsx index 4ce69cd61d..634759f71f 100644 --- a/packages/snaps-simulator/src/features/manifest/Manifest.test.tsx +++ b/packages/snaps-simulator/src/features/manifest/Manifest.test.tsx @@ -1,5 +1,5 @@ -import { render } from '../../utils'; import { Manifest } from './Manifest'; +import { render } from '../../utils'; jest.mock('react-monaco-editor'); diff --git a/packages/snaps-simulator/src/features/manifest/Manifest.tsx b/packages/snaps-simulator/src/features/manifest/Manifest.tsx index a486354642..5bd47d8b5a 100644 --- a/packages/snaps-simulator/src/features/manifest/Manifest.tsx +++ b/packages/snaps-simulator/src/features/manifest/Manifest.tsx @@ -9,10 +9,10 @@ import { } from '@chakra-ui/react'; import type { FunctionComponent } from 'react'; +import { Validation } from './components'; import { Editor } from '../../components'; import { useSelector } from '../../hooks'; import { getLocalizedSnapManifest } from '../simulation'; -import { Validation } from './components'; /** * Manifest page, which displays the manifest of a snap, and any errors that diff --git a/packages/snaps-simulator/src/features/manifest/components/Item.test.tsx b/packages/snaps-simulator/src/features/manifest/components/Item.test.tsx index 1dba1e5f5d..22ca61eb21 100644 --- a/packages/snaps-simulator/src/features/manifest/components/Item.test.tsx +++ b/packages/snaps-simulator/src/features/manifest/components/Item.test.tsx @@ -1,7 +1,7 @@ import { List } from '@chakra-ui/react'; -import { render } from '../../../utils'; import { Item } from './Item'; +import { render } from '../../../utils'; describe('Item', () => { it('renders', () => { diff --git a/packages/snaps-simulator/src/features/manifest/components/Validation.test.tsx b/packages/snaps-simulator/src/features/manifest/components/Validation.test.tsx index 2dfb10a1d2..d90707ef2c 100644 --- a/packages/snaps-simulator/src/features/manifest/components/Validation.test.tsx +++ b/packages/snaps-simulator/src/features/manifest/components/Validation.test.tsx @@ -1,5 +1,5 @@ -import { render } from '../../../utils'; import { Validation } from './Validation'; +import { render } from '../../../utils'; describe('Validation', () => { it('renders', () => { diff --git a/packages/snaps-simulator/src/features/manifest/components/Validation.tsx b/packages/snaps-simulator/src/features/manifest/components/Validation.tsx index ee3977ef85..ac1918ac4c 100644 --- a/packages/snaps-simulator/src/features/manifest/components/Validation.tsx +++ b/packages/snaps-simulator/src/features/manifest/components/Validation.tsx @@ -1,11 +1,11 @@ import { Center, Heading, List, Text } from '@chakra-ui/react'; import type { FunctionComponent } from 'react'; +import { Item } from './Item'; import { Icon } from '../../../components'; import { useSelector } from '../../../hooks'; import { getSnapManifest } from '../../simulation'; import { getManifestResults } from '../slice'; -import { Item } from './Item'; export const Validation: FunctionComponent = () => { const manifest = useSelector(getSnapManifest); diff --git a/packages/snaps-simulator/src/features/manifest/sagas.test.ts b/packages/snaps-simulator/src/features/manifest/sagas.test.ts index 108ba8a9dc..c4aa47ca2d 100644 --- a/packages/snaps-simulator/src/features/manifest/sagas.test.ts +++ b/packages/snaps-simulator/src/features/manifest/sagas.test.ts @@ -1,10 +1,5 @@ import { expectSaga } from 'redux-saga-test-plan'; -import { MOCK_MANIFEST_FILE } from '../simulation/test/mockManifest'; -import { - MOCK_SNAP_ICON_FILE, - MOCK_SNAP_SOURCE_FILE, -} from '../simulation/test/mockSnap'; import { validationSaga } from './sagas'; import { ManifestStatus, @@ -12,6 +7,11 @@ import { setValid, validateManifest, } from './slice'; +import { MOCK_MANIFEST_FILE } from '../simulation/test/mockManifest'; +import { + MOCK_SNAP_ICON_FILE, + MOCK_SNAP_SOURCE_FILE, +} from '../simulation/test/mockSnap'; describe('validationSaga', () => { it('validates the manifest', async () => { diff --git a/packages/snaps-simulator/src/features/manifest/sagas.ts b/packages/snaps-simulator/src/features/manifest/sagas.ts index 8c796de2ff..796f9afef1 100644 --- a/packages/snaps-simulator/src/features/manifest/sagas.ts +++ b/packages/snaps-simulator/src/features/manifest/sagas.ts @@ -7,7 +7,6 @@ import type { PayloadAction } from '@reduxjs/toolkit'; import type { SagaIterator } from 'redux-saga'; import { all, call, put, select, takeLatest } from 'redux-saga/effects'; -import { getAuxiliaryFiles, getIcon, getSourceCode } from '../simulation'; import type { ValidationResult } from './slice'; import { ManifestStatus, @@ -16,6 +15,7 @@ import { validateManifest, } from './slice'; import { validators } from './validators'; +import { getAuxiliaryFiles, getIcon, getSourceCode } from '../simulation'; /** * Validate the snap manifest. diff --git a/packages/snaps-simulator/src/features/navigation/Navigation.test.tsx b/packages/snaps-simulator/src/features/navigation/Navigation.test.tsx index 1901c3e47e..dc62ed2ce4 100644 --- a/packages/snaps-simulator/src/features/navigation/Navigation.test.tsx +++ b/packages/snaps-simulator/src/features/navigation/Navigation.test.tsx @@ -1,5 +1,5 @@ -import { render } from '../../utils'; import { Navigation } from './Navigation'; +import { render } from '../../utils'; describe('Navigation', () => { it('renders', () => { diff --git a/packages/snaps-simulator/src/features/navigation/Navigation.tsx b/packages/snaps-simulator/src/features/navigation/Navigation.tsx index caf955931b..c898d0ddab 100644 --- a/packages/snaps-simulator/src/features/navigation/Navigation.tsx +++ b/packages/snaps-simulator/src/features/navigation/Navigation.tsx @@ -1,11 +1,11 @@ import { Box, Container, List, Stack, Text } from '@chakra-ui/react'; import type { FunctionComponent } from 'react'; -import { Icon } from '../../components'; -import { useSelector } from '../../hooks'; import { Item, ManifestStatusIndicator } from './components'; import { NavigationTag } from './components/NavigationTag'; import { NAVIGATION_ITEMS } from './items'; +import { Icon } from '../../components'; +import { useSelector } from '../../hooks'; /** * The navigation component, which holds the navigation buttons. diff --git a/packages/snaps-simulator/src/features/navigation/components/Bottom.test.tsx b/packages/snaps-simulator/src/features/navigation/components/Bottom.test.tsx index 5987fe341e..8a40f87b78 100644 --- a/packages/snaps-simulator/src/features/navigation/components/Bottom.test.tsx +++ b/packages/snaps-simulator/src/features/navigation/components/Bottom.test.tsx @@ -1,5 +1,5 @@ -import { render } from '../../../utils'; import { Bottom } from './Bottom'; +import { render } from '../../../utils'; describe('Bottom', () => { it('renders', () => { diff --git a/packages/snaps-simulator/src/features/navigation/components/Bottom.tsx b/packages/snaps-simulator/src/features/navigation/components/Bottom.tsx index 1118b27a6c..2b06a89568 100644 --- a/packages/snaps-simulator/src/features/navigation/components/Bottom.tsx +++ b/packages/snaps-simulator/src/features/navigation/components/Bottom.tsx @@ -1,10 +1,10 @@ import { Box, List, Text } from '@chakra-ui/react'; import type { FunctionComponent } from 'react'; +import { Item } from './Item'; import { Icon } from '../../../components'; import { useDispatch } from '../../../hooks'; import { openConfigurationModal } from '../../configuration'; -import { Item } from './Item'; export const Bottom: FunctionComponent = () => { const dispatch = useDispatch(); diff --git a/packages/snaps-simulator/src/features/navigation/components/Item.test.tsx b/packages/snaps-simulator/src/features/navigation/components/Item.test.tsx index 61567d8906..ca36f27fe8 100644 --- a/packages/snaps-simulator/src/features/navigation/components/Item.test.tsx +++ b/packages/snaps-simulator/src/features/navigation/components/Item.test.tsx @@ -1,7 +1,7 @@ import { List } from '@chakra-ui/react'; -import { render } from '../../../utils'; import { Item } from './Item'; +import { render } from '../../../utils'; describe('Item', () => { it('renders', () => { diff --git a/packages/snaps-simulator/src/features/notifications/Notifications.test.tsx b/packages/snaps-simulator/src/features/notifications/Notifications.test.tsx index 5dd5c0db98..92115ac678 100644 --- a/packages/snaps-simulator/src/features/notifications/Notifications.test.tsx +++ b/packages/snaps-simulator/src/features/notifications/Notifications.test.tsx @@ -1,5 +1,5 @@ -import { render } from '../../utils'; import { Notifications } from './Notifications'; +import { render } from '../../utils'; describe('Notifications', () => { it('renders', () => { diff --git a/packages/snaps-simulator/src/features/notifications/Notifications.tsx b/packages/snaps-simulator/src/features/notifications/Notifications.tsx index 484f5a91e0..a988ca8a4f 100644 --- a/packages/snaps-simulator/src/features/notifications/Notifications.tsx +++ b/packages/snaps-simulator/src/features/notifications/Notifications.tsx @@ -2,8 +2,8 @@ import { useToast } from '@chakra-ui/react'; import type { FunctionComponent } from 'react'; import { useEffect } from 'react'; -import { useDispatch, useSelector } from '../../hooks'; import { getNotifications, removeNotification } from './slice'; +import { useDispatch, useSelector } from '../../hooks'; export const Notifications: FunctionComponent = () => { const dispatch = useDispatch(); diff --git a/packages/snaps-simulator/src/features/polling/sagas.test.ts b/packages/snaps-simulator/src/features/polling/sagas.test.ts index 05feb5b03a..6e839fe0fb 100644 --- a/packages/snaps-simulator/src/features/polling/sagas.test.ts +++ b/packages/snaps-simulator/src/features/polling/sagas.test.ts @@ -9,6 +9,7 @@ import { stringToBytes } from '@metamask/utils'; import fetchMock from 'jest-fetch-mock'; import { expectSaga } from 'redux-saga-test-plan'; +import { fetchingSaga, pollingSaga } from './sagas'; import { setAuxiliaryFiles, setIcon, @@ -26,7 +27,6 @@ import { MOCK_SNAP_SOURCE, MOCK_SNAP_SOURCE_FILE, } from '../simulation/test/mockSnap'; -import { fetchingSaga, pollingSaga } from './sagas'; fetchMock.enableMocks(); diff --git a/packages/snaps-simulator/src/features/polling/sagas.ts b/packages/snaps-simulator/src/features/polling/sagas.ts index 6dddfc3dae..d6ad283496 100644 --- a/packages/snaps-simulator/src/features/polling/sagas.ts +++ b/packages/snaps-simulator/src/features/polling/sagas.ts @@ -31,6 +31,7 @@ import { * * @param location - The snap location class. * @param manifest - The parsed manifest. + * @returns The auxiliary files. */ async function fetchAuxiliaryFiles( location: SnapLocation, diff --git a/packages/snaps-simulator/src/features/renderer/Renderer.tsx b/packages/snaps-simulator/src/features/renderer/Renderer.tsx index 5500bafd22..db39f89e89 100644 --- a/packages/snaps-simulator/src/features/renderer/Renderer.tsx +++ b/packages/snaps-simulator/src/features/renderer/Renderer.tsx @@ -1,9 +1,9 @@ import type { JSXElement } from '@metamask/snaps-sdk/jsx'; import type { FunctionComponent } from 'react'; +import { SnapComponent } from './SnapComponent'; import { SnapInterfaceContextProvider } from '../../contexts'; import { generateKey } from '../../utils'; -import { SnapComponent } from './SnapComponent'; type RendererProps = { content: JSXElement; diff --git a/packages/snaps-simulator/src/features/renderer/SnapComponent.tsx b/packages/snaps-simulator/src/features/renderer/SnapComponent.tsx index b5e441ffa9..103f4950f2 100644 --- a/packages/snaps-simulator/src/features/renderer/SnapComponent.tsx +++ b/packages/snaps-simulator/src/features/renderer/SnapComponent.tsx @@ -1,7 +1,6 @@ import type { JSXElement } from '@metamask/snaps-sdk/jsx'; import type { FunctionComponent } from 'react'; -import { generateKey } from '../../utils'; import { Bold, Copyable, @@ -18,6 +17,7 @@ import { Italic, Link, } from './components'; +import { generateKey } from '../../utils'; export const components: Partial< Record< diff --git a/packages/snaps-simulator/src/features/simulation/hooks.test.ts b/packages/snaps-simulator/src/features/simulation/hooks.test.ts index 3efee20f20..72782638ef 100644 --- a/packages/snaps-simulator/src/features/simulation/hooks.test.ts +++ b/packages/snaps-simulator/src/features/simulation/hooks.test.ts @@ -6,7 +6,6 @@ import { base64ToBytes, stringToBytes } from '@metamask/utils'; import { File } from 'buffer'; import { expectSaga } from 'redux-saga-test-plan'; -import { addNotification } from '../notifications'; import { createInterface, getInterface, @@ -34,6 +33,7 @@ import { } from './slice'; import { getSnapInterfaceController as getTestSnapInterfaceController } from './test/controllers'; import { MOCK_MANIFEST_FILE } from './test/mockManifest'; +import { addNotification } from '../notifications'; Object.defineProperty(globalThis, 'Notification', { value: class Notification { diff --git a/packages/snaps-simulator/src/features/simulation/hooks.ts b/packages/snaps-simulator/src/features/simulation/hooks.ts index a3d2b7c613..6e9f825824 100644 --- a/packages/snaps-simulator/src/features/simulation/hooks.ts +++ b/packages/snaps-simulator/src/features/simulation/hooks.ts @@ -20,7 +20,6 @@ import { nanoid } from '@reduxjs/toolkit'; import type { SagaIterator } from 'redux-saga'; import { call, put, select, take } from 'redux-saga/effects'; -import { addNativeNotification, addNotification } from '../notifications'; import { closeUserInterface, getAuxiliaryFiles, @@ -35,6 +34,7 @@ import { setSnapInterface, showUserInterface, } from './slice'; +import { addNativeNotification, addNotification } from '../notifications'; /** * Show a dialog to the user. diff --git a/packages/snaps-simulator/src/features/simulation/middleware.test.ts b/packages/snaps-simulator/src/features/simulation/middleware.test.ts index 4f7230ccd7..d4f6e5c41e 100644 --- a/packages/snaps-simulator/src/features/simulation/middleware.test.ts +++ b/packages/snaps-simulator/src/features/simulation/middleware.test.ts @@ -1,8 +1,8 @@ import { JsonRpcEngine } from '@metamask/json-rpc-engine'; import { mnemonicPhraseToBytes } from '@metamask/key-tree'; -import { DEFAULT_SRP } from '../configuration'; import { createMiscMethodMiddleware } from './middleware'; +import { DEFAULT_SRP } from '../configuration'; const hooks = { getMnemonic: async () => mnemonicPhraseToBytes(DEFAULT_SRP) }; diff --git a/packages/snaps-simulator/src/features/simulation/middleware.ts b/packages/snaps-simulator/src/features/simulation/middleware.ts index df5641486c..97f2537988 100644 --- a/packages/snaps-simulator/src/features/simulation/middleware.ts +++ b/packages/snaps-simulator/src/features/simulation/middleware.ts @@ -32,6 +32,7 @@ export type MiscMiddlewareHooks = { * @param _next - The json-rpc-engine middleware next handler. * @param end - The json-rpc-engine middleware end handler. * @param hooks - Any hooks required by this handler. + * @returns Ends the middleware chain. */ async function getAccountsHandler( _request: JsonRpcRequest, @@ -64,6 +65,7 @@ async function getAccountsHandler( * @param response - The outgoing JSON-RPC response, modified to return the result. * @param _next - The json-rpc-engine middleware next handler. * @param end - The json-rpc-engine middleware end handler. + * @returns Ends the middleware chain. */ async function getProviderStateHandler( _request: JsonRpcRequest, diff --git a/packages/snaps-simulator/src/features/simulation/sagas.test.ts b/packages/snaps-simulator/src/features/simulation/sagas.test.ts index b724f349ab..be275adfeb 100644 --- a/packages/snaps-simulator/src/features/simulation/sagas.test.ts +++ b/packages/snaps-simulator/src/features/simulation/sagas.test.ts @@ -11,7 +11,6 @@ import { import { expectSaga } from 'redux-saga-test-plan'; import { call } from 'redux-saga-test-plan/matchers'; -import { DEFAULT_SRP, setSnapId } from '../configuration'; import { createInterface, getInterface } from './hooks'; import { initSaga, permissionsSaga, rebootSaga, requestSaga } from './sagas'; import { @@ -27,6 +26,7 @@ import { getSnapInterfaceController } from './test/controllers'; import { MockExecutionService } from './test/mockExecutionService'; import { MOCK_MANIFEST, MOCK_MANIFEST_FILE } from './test/mockManifest'; import { MOCK_SNAP_SOURCE, MOCK_SNAP_SOURCE_FILE } from './test/mockSnap'; +import { DEFAULT_SRP, setSnapId } from '../configuration'; const snapId = 'local:http://localhost:8080'; diff --git a/packages/snaps-simulator/src/features/simulation/sagas.ts b/packages/snaps-simulator/src/features/simulation/sagas.ts index 8b0f64d7a4..06566c53c2 100644 --- a/packages/snaps-simulator/src/features/simulation/sagas.ts +++ b/packages/snaps-simulator/src/features/simulation/sagas.ts @@ -24,8 +24,11 @@ import { buildSnapEndowmentSpecifications, buildSnapRestrictedMethodSpecifications, } from '@metamask/snaps-rpc-methods'; -import type { SnapId } from '@metamask/snaps-sdk'; -import { type Component, type ComponentOrElement } from '@metamask/snaps-sdk'; +import type { + SnapId, + Component, + ComponentOrElement, +} from '@metamask/snaps-sdk'; import type { SnapManifest, SnapRpcHookArgs, @@ -45,10 +48,6 @@ import { takeLatest, } from 'redux-saga/effects'; -import { runSaga } from '../../store/middleware'; -import { getSnapId, getSrp, setSnapId } from '../configuration'; -import { addError } from '../console'; -import { ManifestStatus, setValid } from '../manifest'; import { JSON_RPC_ENDPOINT } from './constants'; import { createInterface, @@ -83,6 +82,10 @@ import { getEndowments, unrestrictedMethods, } from './snap-permissions'; +import { runSaga } from '../../store/middleware'; +import { getSnapId, getSrp, setSnapId } from '../configuration'; +import { addError } from '../console'; +import { ManifestStatus, setValid } from '../manifest'; const DEFAULT_ENVIRONMENT_URL = `https://execution.metamask.io/iframe/${packageJson.version}/index.html`; diff --git a/packages/snaps-simulator/src/features/status/StatusIndicator.test.tsx b/packages/snaps-simulator/src/features/status/StatusIndicator.test.tsx index 4a1aa7f467..e5be159eea 100644 --- a/packages/snaps-simulator/src/features/status/StatusIndicator.test.tsx +++ b/packages/snaps-simulator/src/features/status/StatusIndicator.test.tsx @@ -1,5 +1,5 @@ -import { render } from '../../utils'; import { StatusIndicator } from './StatusIndicator'; +import { render } from '../../utils'; describe('StatusIndicator', () => { it('renders', () => { diff --git a/packages/snaps-simulator/src/types/vendor/offscreen.d.ts b/packages/snaps-simulator/src/types/vendor/offscreen.d.ts index 58fd829b6c..912fab282a 100644 --- a/packages/snaps-simulator/src/types/vendor/offscreen.d.ts +++ b/packages/snaps-simulator/src/types/vendor/offscreen.d.ts @@ -1,4 +1,4 @@ -// eslint-disable-next-line import/unambiguous +// eslint-disable-next-line import-x/unambiguous declare namespace chrome.offscreen { export type Reason = | 'TESTING' diff --git a/packages/snaps-simulator/src/types/vendor/readable-stream.d.ts b/packages/snaps-simulator/src/types/vendor/readable-stream.d.ts index e271c53f42..dbfb30e198 100644 --- a/packages/snaps-simulator/src/types/vendor/readable-stream.d.ts +++ b/packages/snaps-simulator/src/types/vendor/readable-stream.d.ts @@ -1,4 +1,4 @@ -// eslint-disable-next-line import/unambiguous +// eslint-disable-next-line import-x/unambiguous declare module 'readable-stream' { export type { DuplexOptions, diff --git a/packages/snaps-simulator/src/utils/render.test.tsx b/packages/snaps-simulator/src/utils/render.test.tsx index cdd27ef250..6751b7280b 100644 --- a/packages/snaps-simulator/src/utils/render.test.tsx +++ b/packages/snaps-simulator/src/utils/render.test.tsx @@ -1,8 +1,8 @@ import { Bold, Text } from '@metamask/snaps-sdk/jsx'; import { getJsxChildren } from '@metamask/snaps-utils'; -import { SnapComponent } from '../features/renderer'; import { renderTextChildren } from './render'; +import { SnapComponent } from '../features/renderer'; describe('renderTextChildren', () => { it('returns a sting child', () => { diff --git a/packages/snaps-simulator/webpack.config.ts b/packages/snaps-simulator/webpack.config.ts index 504ae8fa10..e416b5aabf 100644 --- a/packages/snaps-simulator/webpack.config.ts +++ b/packages/snaps-simulator/webpack.config.ts @@ -1,5 +1,5 @@ import ReactRefreshPlugin from '@pmmmwh/react-refresh-webpack-plugin'; -// eslint-disable-next-line import/default +// eslint-disable-next-line import-x/default import CopyPlugin from 'copy-webpack-plugin'; import express from 'express'; import FaviconsWebpackPlugin from 'favicons-webpack-plugin'; diff --git a/packages/snaps-utils/package.json b/packages/snaps-utils/package.json index c41e739abf..cde94f5aa0 100644 --- a/packages/snaps-utils/package.json +++ b/packages/snaps-utils/package.json @@ -79,10 +79,10 @@ "@esbuild-plugins/node-modules-polyfill": "^0.2.2", "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/post-message-stream": "^8.1.0", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", @@ -91,8 +91,8 @@ "@types/node": "18.14.2", "@types/semver": "^7.5.0", "@types/validate-npm-package-name": "^4.0.0", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "@wdio/browser-runner": "^8.19.0", "@wdio/cli": "^8.19.0", "@wdio/globals": "^8.19.0", @@ -103,12 +103,12 @@ "deepmerge": "^4.2.2", "depcheck": "^1.4.7", "esbuild": "^0.18.10", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "expect-webdriverio": "^4.4.1", diff --git a/packages/snaps-utils/src/entropy.ts b/packages/snaps-utils/src/entropy.ts index 42581d8b55..edb3abf179 100644 --- a/packages/snaps-utils/src/entropy.ts +++ b/packages/snaps-utils/src/entropy.ts @@ -4,6 +4,4 @@ export const SIP_6_MAGIC_VALUE = `1399742832'` as `${number}'`; // `${bytesToNumber(keccak256('Snaps state encryption').slice(0, 4))}'` export const STATE_ENCRYPTION_MAGIC_VALUE = `572232532'` as `${number}'`; -export type MagicValue = - | typeof SIP_6_MAGIC_VALUE - | typeof STATE_ENCRYPTION_MAGIC_VALUE; +export type MagicValue = typeof SIP_6_MAGIC_VALUE; diff --git a/packages/snaps-utils/src/eval-worker.ts b/packages/snaps-utils/src/eval-worker.ts index 5c7fa4dc2f..711e8c43e6 100644 --- a/packages/snaps-utils/src/eval-worker.ts +++ b/packages/snaps-utils/src/eval-worker.ts @@ -1,4 +1,4 @@ -// eslint-disable-next-line import/no-unassigned-import +// eslint-disable-next-line import-x/no-unassigned-import import 'ses/lockdown'; import { readFileSync } from 'fs'; diff --git a/packages/snaps-utils/src/manifest/manifest.test.ts b/packages/snaps-utils/src/manifest/manifest.test.ts index c8486fa2bc..340b44473f 100644 --- a/packages/snaps-utils/src/manifest/manifest.test.ts +++ b/packages/snaps-utils/src/manifest/manifest.test.ts @@ -1,6 +1,18 @@ import { promises as fs } from 'fs'; import { join } from 'path'; +import { + checkManifest, + getSnapFilePaths, + getSnapFiles, + getSnapIcon, + getSnapSourceCode, + getWritableManifest, + runFixes, +} from './manifest'; +import type { SnapManifest } from './validation'; +import { runValidators } from './validator'; +import type { ValidatorMeta } from './validator-types'; import { readJsonFile } from '../fs'; import { DEFAULT_SNAP_BUNDLE, @@ -14,18 +26,6 @@ import { getMockSnapFiles, } from '../test-utils'; import { NpmSnapFileNames } from '../types'; -import { - checkManifest, - getSnapFilePaths, - getSnapFiles, - getSnapIcon, - getSnapSourceCode, - getWritableManifest, - runFixes, -} from './manifest'; -import type { SnapManifest } from './validation'; -import { runValidators } from './validator'; -import type { ValidatorMeta } from './validator-types'; jest.mock('fs'); diff --git a/packages/snaps-utils/src/manifest/manifest.ts b/packages/snaps-utils/src/manifest/manifest.ts index 52c6e63abd..d49ff7d371 100644 --- a/packages/snaps-utils/src/manifest/manifest.ts +++ b/packages/snaps-utils/src/manifest/manifest.ts @@ -4,16 +4,16 @@ import { assert, isPlainObject } from '@metamask/utils'; import { promises as fs } from 'fs'; import pathUtils from 'path'; +import type { SnapManifest } from './validation'; +import type { ValidatorResults } from './validator'; +import { hasFixes, runValidators } from './validator'; +import type { ValidatorMeta, ValidatorReport } from './validator-types'; import { deepClone } from '../deep-clone'; import { readJsonFile } from '../fs'; import { parseJson } from '../json'; import type { SnapFiles, UnvalidatedSnapFiles } from '../types'; import { NpmSnapFileNames } from '../types'; import { readVirtualFile, VirtualFile } from '../virtual-file/node'; -import type { SnapManifest } from './validation'; -import type { ValidatorResults } from './validator'; -import { hasFixes, runValidators } from './validator'; -import type { ValidatorMeta, ValidatorReport } from './validator-types'; const MANIFEST_SORT_ORDER: Record = { $schema: 1, @@ -159,6 +159,7 @@ export async function checkManifest( * * @param results - Results of the initial run of validation. * @param rules - Optional list of rules to run the fixes with. + * @returns The result of the fix operation. */ export async function runFixes( results: ValidatorResults, diff --git a/packages/snaps-utils/src/manifest/validation.test.ts b/packages/snaps-utils/src/manifest/validation.test.ts index 082552d01b..a43651118a 100644 --- a/packages/snaps-utils/src/manifest/validation.test.ts +++ b/packages/snaps-utils/src/manifest/validation.test.ts @@ -1,6 +1,5 @@ import { assert, is, StructError } from '@metamask/superstruct'; -import { getSnapManifest, MOCK_SNAP_ID } from '../test-utils'; import { assertIsSnapManifest, Bip32EntropyStruct, @@ -12,6 +11,7 @@ import { PermissionsStruct, SnapIdsStruct, } from './validation'; +import { getSnapManifest, MOCK_SNAP_ID } from '../test-utils'; describe('Bip32PathStruct', () => { it.each(['m/0/1/2', "m/0'/1/2", "m/1'/2'/3'/4/5/6", "m/0/1'/2"])( diff --git a/packages/snaps-utils/src/manifest/validator-types.ts b/packages/snaps-utils/src/manifest/validator-types.ts index 91eb72b84f..995bce3b70 100644 --- a/packages/snaps-utils/src/manifest/validator-types.ts +++ b/packages/snaps-utils/src/manifest/validator-types.ts @@ -1,6 +1,6 @@ +import type { SnapManifest } from './validation'; import type { Promisable } from '../promise'; import type { SnapFiles, UnvalidatedSnapFiles } from '../types'; -import type { SnapManifest } from './validation'; // Eslint uses patch based fixing, but it's too complex for our needs. // https://eslint.org/docs/latest/extend/custom-rules#applying-fixes diff --git a/packages/snaps-utils/src/manifest/validator.ts b/packages/snaps-utils/src/manifest/validator.ts index 25bc2e613a..bc673ef659 100644 --- a/packages/snaps-utils/src/manifest/validator.ts +++ b/packages/snaps-utils/src/manifest/validator.ts @@ -1,6 +1,5 @@ import { assert } from '@metamask/utils'; -import type { SnapFiles, UnvalidatedSnapFiles } from '../types'; import type { ValidatorContext, ValidatorFix, @@ -9,6 +8,7 @@ import type { ValidatorSeverity, } from './validator-types'; import * as defaultValidators from './validators'; +import type { SnapFiles, UnvalidatedSnapFiles } from '../types'; export type ValidatorResults = { files?: SnapFiles; @@ -45,6 +45,7 @@ class Context implements ValidatorContext { * * @param files - All files required to run a snap. * @param rules - Validators to run. + * @returns The results of the validation run. */ // TODO(ritave): snap.manifest.json and package.json should check // json parsing as well instead of assuming it's diff --git a/packages/snaps-utils/src/manifest/validators/checksum.test.ts b/packages/snaps-utils/src/manifest/validators/checksum.test.ts index 516e7a0637..74f233ce58 100644 --- a/packages/snaps-utils/src/manifest/validators/checksum.test.ts +++ b/packages/snaps-utils/src/manifest/validators/checksum.test.ts @@ -1,12 +1,12 @@ import assert from 'assert'; +import { checksum } from './checksum'; import { DEFAULT_SNAP_SHASUM, getMockSnapFiles, getSnapManifest, } from '../../test-utils'; import type { ValidatorFix } from '../validator-types'; -import { checksum } from './checksum'; describe('checksum', () => { it('does nothing on valid checksum', async () => { diff --git a/packages/snaps-utils/src/manifest/validators/expected-files.test.ts b/packages/snaps-utils/src/manifest/validators/expected-files.test.ts index ac57001cdb..f7bf8cd283 100644 --- a/packages/snaps-utils/src/manifest/validators/expected-files.test.ts +++ b/packages/snaps-utils/src/manifest/validators/expected-files.test.ts @@ -1,8 +1,8 @@ import assert from 'assert'; +import { expectedFiles } from './expected-files'; import { getMockSnapFiles } from '../../test-utils'; import type { UnvalidatedSnapFiles } from '../../types'; -import { expectedFiles } from './expected-files'; describe('expectedFiles', () => { it('does nothing if files exist', async () => { diff --git a/packages/snaps-utils/src/manifest/validators/icon-declared.test.ts b/packages/snaps-utils/src/manifest/validators/icon-declared.test.ts index d74066a684..9c5692ebd5 100644 --- a/packages/snaps-utils/src/manifest/validators/icon-declared.test.ts +++ b/packages/snaps-utils/src/manifest/validators/icon-declared.test.ts @@ -1,7 +1,7 @@ import assert from 'assert'; -import { getMockSnapFiles, getSnapManifest } from '../../test-utils'; import { iconDeclared } from './icon-declared'; +import { getMockSnapFiles, getSnapManifest } from '../../test-utils'; describe('iconDeclared', () => { it('does nothing if icon is declared', async () => { diff --git a/packages/snaps-utils/src/manifest/validators/icon-dimensions.test.ts b/packages/snaps-utils/src/manifest/validators/icon-dimensions.test.ts index 05c3d5128d..a5b0deb91b 100644 --- a/packages/snaps-utils/src/manifest/validators/icon-dimensions.test.ts +++ b/packages/snaps-utils/src/manifest/validators/icon-dimensions.test.ts @@ -1,7 +1,7 @@ import assert from 'assert'; -import { getMockSnapFiles } from '../../test-utils'; import { iconDimensions } from './icon-dimensions'; +import { getMockSnapFiles } from '../../test-utils'; describe('iconDimensions', () => { it('does nothing if icon is square', async () => { diff --git a/packages/snaps-utils/src/manifest/validators/icon-missing.test.ts b/packages/snaps-utils/src/manifest/validators/icon-missing.test.ts index e1013e5926..40452d2ae8 100644 --- a/packages/snaps-utils/src/manifest/validators/icon-missing.test.ts +++ b/packages/snaps-utils/src/manifest/validators/icon-missing.test.ts @@ -1,7 +1,7 @@ import assert from 'assert'; -import { getMockSnapFiles } from '../../test-utils'; import { iconMissing } from './icon-missing'; +import { getMockSnapFiles } from '../../test-utils'; describe('iconMissing', () => { it('does nothing if icon exists', async () => { diff --git a/packages/snaps-utils/src/manifest/validators/is-localization-file.test.ts b/packages/snaps-utils/src/manifest/validators/is-localization-file.test.ts index 13cbc3237e..fcd268db7a 100644 --- a/packages/snaps-utils/src/manifest/validators/is-localization-file.test.ts +++ b/packages/snaps-utils/src/manifest/validators/is-localization-file.test.ts @@ -1,8 +1,8 @@ import assert from 'assert'; +import { isLocalizationFile } from './is-localization-file'; import { getMockLocalizationFile } from '../../test-utils'; import { VirtualFile } from '../../virtual-file'; -import { isLocalizationFile } from './is-localization-file'; describe('isLocalizationFile', () => { it('does nothing on valid files', async () => { diff --git a/packages/snaps-utils/src/manifest/validators/is-package-json.test.ts b/packages/snaps-utils/src/manifest/validators/is-package-json.test.ts index 1f3142bb63..cd6f459d7b 100644 --- a/packages/snaps-utils/src/manifest/validators/is-package-json.test.ts +++ b/packages/snaps-utils/src/manifest/validators/is-package-json.test.ts @@ -1,8 +1,8 @@ import assert from 'assert'; +import { isPackageJson } from './is-package-json'; import { getPackageJson } from '../../test-utils'; import { VirtualFile } from '../../virtual-file'; -import { isPackageJson } from './is-package-json'; describe('isPackageJson', () => { it("does nothing if file doesn't exist", async () => { diff --git a/packages/snaps-utils/src/manifest/validators/is-snap-icon.test.ts b/packages/snaps-utils/src/manifest/validators/is-snap-icon.test.ts index 18fad113f0..c2c9fc12c3 100644 --- a/packages/snaps-utils/src/manifest/validators/is-snap-icon.test.ts +++ b/packages/snaps-utils/src/manifest/validators/is-snap-icon.test.ts @@ -1,7 +1,7 @@ import assert from 'assert'; -import { VirtualFile } from '../../virtual-file'; import { isSnapIcon } from './is-snap-icon'; +import { VirtualFile } from '../../virtual-file'; describe('isSnapIcon', () => { it('does nothing on valid icon', async () => { diff --git a/packages/snaps-utils/src/manifest/validators/is-snap-manifest.test.ts b/packages/snaps-utils/src/manifest/validators/is-snap-manifest.test.ts index 1a71b13b42..d5f1178e13 100644 --- a/packages/snaps-utils/src/manifest/validators/is-snap-manifest.test.ts +++ b/packages/snaps-utils/src/manifest/validators/is-snap-manifest.test.ts @@ -1,8 +1,8 @@ import assert from 'assert'; +import { isSnapManifest } from './is-snap-manifest'; import { getMockSnapFiles } from '../../test-utils'; import { VirtualFile } from '../../virtual-file'; -import { isSnapManifest } from './is-snap-manifest'; describe('isSnapManifest', () => { it("does nothing if there's not manifest", async () => { diff --git a/packages/snaps-utils/src/manifest/validators/manifest-localization.test.ts b/packages/snaps-utils/src/manifest/validators/manifest-localization.test.ts index 698d3b28cc..418fcede35 100644 --- a/packages/snaps-utils/src/manifest/validators/manifest-localization.test.ts +++ b/packages/snaps-utils/src/manifest/validators/manifest-localization.test.ts @@ -1,11 +1,11 @@ import assert from 'assert'; +import { manifestLocalization } from './manifest-localization'; import { getMockLocalizationFile, getMockSnapFilesWithUpdatedChecksum, getSnapManifest, } from '../../test-utils'; -import { manifestLocalization } from './manifest-localization'; describe('manifestLocalization', () => { it('does nothing on valid localization', async () => { diff --git a/packages/snaps-utils/src/manifest/validators/package-json-recommended-fields.test.ts b/packages/snaps-utils/src/manifest/validators/package-json-recommended-fields.test.ts index 0b8e6a76ea..74db6022c2 100644 --- a/packages/snaps-utils/src/manifest/validators/package-json-recommended-fields.test.ts +++ b/packages/snaps-utils/src/manifest/validators/package-json-recommended-fields.test.ts @@ -1,7 +1,7 @@ import assert from 'assert'; -import { getMockSnapFiles, getPackageJson } from '../../test-utils'; import { packageJsonRecommendedFields } from './package-json-recommended-fields'; +import { getMockSnapFiles, getPackageJson } from '../../test-utils'; describe('packageJsonRecommendedFields', () => { it('does nothing if fields exist', async () => { diff --git a/packages/snaps-utils/src/manifest/validators/package-name-match.test.ts b/packages/snaps-utils/src/manifest/validators/package-name-match.test.ts index 833f9f21ed..07d7820045 100644 --- a/packages/snaps-utils/src/manifest/validators/package-name-match.test.ts +++ b/packages/snaps-utils/src/manifest/validators/package-name-match.test.ts @@ -1,8 +1,8 @@ import assert from 'assert'; +import { packageNameMatch } from './package-name-match'; import { deepClone } from '../../deep-clone'; import { getMockSnapFiles, getSnapManifest } from '../../test-utils'; -import { packageNameMatch } from './package-name-match'; describe('packageNameMatch', () => { it('does nothing if name matches', async () => { diff --git a/packages/snaps-utils/src/manifest/validators/repository-match.test.ts b/packages/snaps-utils/src/manifest/validators/repository-match.test.ts index c5b9f25c1c..7f7c1a5513 100644 --- a/packages/snaps-utils/src/manifest/validators/repository-match.test.ts +++ b/packages/snaps-utils/src/manifest/validators/repository-match.test.ts @@ -1,8 +1,8 @@ import assert from 'assert'; +import { repositoryMatch } from './repository-match'; import { deepClone } from '../../deep-clone'; import { getMockSnapFiles, getSnapManifest } from '../../test-utils'; -import { repositoryMatch } from './repository-match'; describe('repositoryMatch', () => { it('does nothing if repositories match', async () => { diff --git a/packages/snaps-utils/src/manifest/validators/version-match.test.ts b/packages/snaps-utils/src/manifest/validators/version-match.test.ts index 0f57ac7575..dae60819bf 100644 --- a/packages/snaps-utils/src/manifest/validators/version-match.test.ts +++ b/packages/snaps-utils/src/manifest/validators/version-match.test.ts @@ -1,8 +1,8 @@ import assert from 'assert'; +import { versionMatch } from './version-match'; import { deepClone } from '../../deep-clone'; import { getMockSnapFiles, getSnapManifest } from '../../test-utils'; -import { versionMatch } from './version-match'; describe('versionMatch', () => { it('does nothing if versions match', async () => { diff --git a/packages/snaps-utils/src/node.ts b/packages/snaps-utils/src/node.ts index 3ad700a9a4..07906ad662 100644 --- a/packages/snaps-utils/src/node.ts +++ b/packages/snaps-utils/src/node.ts @@ -1,4 +1,4 @@ -/* eslint-disable import/export */ +/* eslint-disable import-x/export */ export * from '.'; export * from './eval'; diff --git a/packages/snaps-utils/src/snaps.ts b/packages/snaps-utils/src/snaps.ts index 93a9d0032c..62d3423cdb 100644 --- a/packages/snaps-utils/src/snaps.ts +++ b/packages/snaps-utils/src/snaps.ts @@ -346,6 +346,7 @@ export function isSnapPermitted( ( ( (permissions?.wallet_snap?.caveats?.find( + // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison (caveat) => caveat.type === SnapCaveatType.SnapIds, ) ?? {}) as Caveat ).value as Record diff --git a/packages/snaps-utils/src/test-utils/manifest.ts b/packages/snaps-utils/src/test-utils/manifest.ts index b6e2fff84f..5da4df4682 100644 --- a/packages/snaps-utils/src/test-utils/manifest.ts +++ b/packages/snaps-utils/src/test-utils/manifest.ts @@ -1,12 +1,12 @@ import type { SemVerVersion } from '@metamask/utils'; +import type { MakeSemVer } from './common'; import type { LocalizationFile } from '../localization'; import type { SnapManifest } from '../manifest/validation'; import type { Chain, Namespace } from '../namespace'; import { getSnapChecksum } from '../snaps'; import type { NpmSnapPackageJson, SnapFiles } from '../types'; import { VirtualFile } from '../virtual-file'; -import type { MakeSemVer } from './common'; type GetSnapManifestOptions = Partial> & { shasum?: string; diff --git a/packages/snaps-utils/src/test-utils/snap.ts b/packages/snaps-utils/src/test-utils/snap.ts index e6f7498ee6..2012112dc0 100644 --- a/packages/snaps-utils/src/test-utils/snap.ts +++ b/packages/snaps-utils/src/test-utils/snap.ts @@ -1,14 +1,14 @@ import type { SnapId } from '@metamask/snaps-sdk'; import type { SemVerVersion } from '@metamask/utils'; -import type { PersistedSnap, Snap, TruncatedSnap } from '../snaps'; -import { SnapStatus } from '../snaps'; import type { MakeSemVer } from './common'; import { DEFAULT_SNAP_BUNDLE, DEFAULT_SNAP_SHASUM, getSnapManifest, } from './manifest'; +import type { PersistedSnap, Snap, TruncatedSnap } from '../snaps'; +import { SnapStatus } from '../snaps'; export const MOCK_SNAP_ID = 'npm:@metamask/example-snap' as SnapId; export const MOCK_LOCAL_SNAP_ID = 'local:http://localhost:8080' as SnapId; diff --git a/packages/snaps-utils/src/virtual-file/toVirtualFile.ts b/packages/snaps-utils/src/virtual-file/toVirtualFile.ts index 070bcd587b..24fbdd5521 100644 --- a/packages/snaps-utils/src/virtual-file/toVirtualFile.ts +++ b/packages/snaps-utils/src/virtual-file/toVirtualFile.ts @@ -29,6 +29,7 @@ type WriteVFileOptions = Exclude< * * @param vfile - The vfile to write. * @param options - Options to pass down to fs.writeFile. + * @returns Nothing. */ export async function writeVirtualFile( vfile: VirtualFile, diff --git a/packages/snaps-utils/wdio.config.js b/packages/snaps-utils/wdio.config.js index 0d30f0031e..11fd96eaa1 100644 --- a/packages/snaps-utils/wdio.config.js +++ b/packages/snaps-utils/wdio.config.js @@ -1,4 +1,4 @@ -/* eslint-disable import/unambiguous, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires, n/no-process-env */ +/* eslint-disable import-x/unambiguous, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires, n/no-process-env */ const { NodeGlobalsPolyfillPlugin, diff --git a/packages/snaps-webpack-plugin/package.json b/packages/snaps-webpack-plugin/package.json index ee3f7632bd..3904e2bba5 100644 --- a/packages/snaps-webpack-plugin/package.json +++ b/packages/snaps-webpack-plugin/package.json @@ -50,24 +50,24 @@ "devDependencies": { "@lavamoat/allow-scripts": "^3.0.4", "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@swc/core": "1.3.78", "@swc/jest": "^0.2.26", "@types/jest": "^27.5.1", "@types/webpack-sources": "^3.2.0", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "jest": "^29.0.2", diff --git a/packages/test-snaps/package.json b/packages/test-snaps/package.json index 7b6229cb9b..62ad7c3fb4 100644 --- a/packages/test-snaps/package.json +++ b/packages/test-snaps/package.json @@ -67,10 +67,10 @@ }, "devDependencies": { "@metamask/auto-changelog": "^3.4.4", - "@metamask/eslint-config": "^12.1.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@metamask/providers": "^17.1.2", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.10", "@swc/core": "1.3.78", @@ -78,19 +78,19 @@ "@types/jest": "^27.5.1", "@types/node": "18.14.2", "@types/webpack-env": "^1.18.1", - "@typescript-eslint/eslint-plugin": "^5.42.1", - "@typescript-eslint/parser": "^5.42.1", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "copy-webpack-plugin": "^11.0.0", "cross-env": "^7.0.3", "css-loader": "^6.7.3", "deepmerge": "^4.2.2", "depcheck": "^1.4.7", - "eslint": "^8.27.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "eslint-plugin-jsdoc": "^39.6.2", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", "favicons": "^7.1.2", diff --git a/packages/test-snaps/src/components/Connect.tsx b/packages/test-snaps/src/components/Connect.tsx index 1a80cdbb5e..8e27e55c0b 100644 --- a/packages/test-snaps/src/components/Connect.tsx +++ b/packages/test-snaps/src/components/Connect.tsx @@ -3,10 +3,10 @@ import type { ChangeEvent, FormEvent, FunctionComponent } from 'react'; import { useState } from 'react'; import { Button, Form } from 'react-bootstrap'; +import { ButtonSpinner } from './ButtonSpinner'; import packageJson from '../../package.json'; import { useInstallSnapMutation } from '../api'; import { useInstalled } from '../utils'; -import { ButtonSpinner } from './ButtonSpinner'; type ConnectProps = { name: string; diff --git a/packages/test-snaps/src/components/Snap.tsx b/packages/test-snaps/src/components/Snap.tsx index 0fb198dac1..f9e330d0cf 100644 --- a/packages/test-snaps/src/components/Snap.tsx +++ b/packages/test-snaps/src/components/Snap.tsx @@ -2,8 +2,8 @@ import type { FunctionComponent, ReactNode } from 'react'; import { Card, Col } from 'react-bootstrap'; import CardHeader from 'react-bootstrap/CardHeader'; -import { getSnapId } from '../utils'; import { Connect } from './Connect'; +import { getSnapId } from '../utils'; export type SnapProps = { /** diff --git a/packages/test-snaps/src/features/snaps/bip32/BIP32.tsx b/packages/test-snaps/src/features/snaps/bip32/BIP32.tsx index 51b593f794..8ee6490ae5 100644 --- a/packages/test-snaps/src/features/snaps/bip32/BIP32.tsx +++ b/packages/test-snaps/src/features/snaps/bip32/BIP32.tsx @@ -1,8 +1,8 @@ import type { FunctionComponent } from 'react'; -import { Snap } from '../../../components'; import { PublicKey, SignMessage } from './components'; import { BIP_32_PORT, BIP_32_SNAP_ID, BIP_32_VERSION } from './constants'; +import { Snap } from '../../../components'; export const BIP32: FunctionComponent = () => { return ( diff --git a/packages/test-snaps/src/features/snaps/bip44/BIP44.tsx b/packages/test-snaps/src/features/snaps/bip44/BIP44.tsx index 2a63745c91..4aa047269a 100644 --- a/packages/test-snaps/src/features/snaps/bip44/BIP44.tsx +++ b/packages/test-snaps/src/features/snaps/bip44/BIP44.tsx @@ -2,11 +2,11 @@ import { logError } from '@metamask/snaps-utils'; import type { FunctionComponent } from 'react'; import { Button, ButtonGroup } from 'react-bootstrap'; +import { SignMessage } from './components'; +import { BIP_44_PORT, BIP_44_SNAP_ID, BIP_44_VERSION } from './constants'; import { useInvokeMutation } from '../../../api'; import { Result, Snap } from '../../../components'; import { getSnapId } from '../../../utils'; -import { SignMessage } from './components'; -import { BIP_44_PORT, BIP_44_SNAP_ID, BIP_44_VERSION } from './constants'; export const BIP44: FunctionComponent = () => { const [invokeSnap, { isLoading, data, error }] = useInvokeMutation(); diff --git a/packages/test-snaps/src/features/snaps/client-status/ClientStatus.tsx b/packages/test-snaps/src/features/snaps/client-status/ClientStatus.tsx index cbe86ae4a5..6d82873167 100644 --- a/packages/test-snaps/src/features/snaps/client-status/ClientStatus.tsx +++ b/packages/test-snaps/src/features/snaps/client-status/ClientStatus.tsx @@ -2,14 +2,14 @@ import { logError } from '@metamask/snaps-utils'; import type { FunctionComponent } from 'react'; import { Button } from 'react-bootstrap'; -import { useInvokeMutation } from '../../../api'; -import { Result, Snap } from '../../../components'; -import { getSnapId } from '../../../utils'; import { CLIENT_STATUS_SNAP_ID, CLIENT_STATUS_SNAP_PORT, CLIENT_STATUS_VERSION, } from './constants'; +import { useInvokeMutation } from '../../../api'; +import { Result, Snap } from '../../../components'; +import { getSnapId } from '../../../utils'; export const ClientStatus: FunctionComponent = () => { const [invokeSnap, { isLoading, data, error }] = useInvokeMutation(); diff --git a/packages/test-snaps/src/features/snaps/cronjobs/Cronjobs.tsx b/packages/test-snaps/src/features/snaps/cronjobs/Cronjobs.tsx index 4bf6e8bbd6..76ea9d5562 100644 --- a/packages/test-snaps/src/features/snaps/cronjobs/Cronjobs.tsx +++ b/packages/test-snaps/src/features/snaps/cronjobs/Cronjobs.tsx @@ -1,11 +1,11 @@ import type { FunctionComponent } from 'react'; -import { Snap } from '../../../components'; import { CRONJOBS_SNAP_ID, CRONJOBS_SNAP_PORT, CRONJOBS_VERSION, } from './constants'; +import { Snap } from '../../../components'; export const Cronjobs: FunctionComponent = () => { return ( diff --git a/packages/test-snaps/src/features/snaps/dialogs/Dialogs.tsx b/packages/test-snaps/src/features/snaps/dialogs/Dialogs.tsx index d92e4aadf1..b808772078 100644 --- a/packages/test-snaps/src/features/snaps/dialogs/Dialogs.tsx +++ b/packages/test-snaps/src/features/snaps/dialogs/Dialogs.tsx @@ -2,14 +2,14 @@ import { logError } from '@metamask/snaps-utils'; import type { FunctionComponent } from 'react'; import { Button, ButtonGroup } from 'react-bootstrap'; -import { useInvokeMutation } from '../../../api'; -import { Result, Snap } from '../../../components'; -import { getSnapId } from '../../../utils'; import { DIALOGS_SNAP_ID, DIALOGS_SNAP_PORT, DIALOGS_VERSION, } from './constants'; +import { useInvokeMutation } from '../../../api'; +import { Result, Snap } from '../../../components'; +import { getSnapId } from '../../../utils'; export const Dialogs: FunctionComponent = () => { const [invokeSnap, { isLoading, data }] = useInvokeMutation(); diff --git a/packages/test-snaps/src/features/snaps/errors/Errors.tsx b/packages/test-snaps/src/features/snaps/errors/Errors.tsx index b036d907e1..027e688061 100644 --- a/packages/test-snaps/src/features/snaps/errors/Errors.tsx +++ b/packages/test-snaps/src/features/snaps/errors/Errors.tsx @@ -2,10 +2,10 @@ import { logError } from '@metamask/snaps-utils'; import type { FunctionComponent } from 'react'; import { Button } from 'react-bootstrap'; +import { ERRORS_SNAP_ID, ERRORS_SNAP_PORT, ERRORS_VERSION } from './constants'; import { useInvokeMutation } from '../../../api'; import { Result, Snap } from '../../../components'; import { getSnapId } from '../../../utils'; -import { ERRORS_SNAP_ID, ERRORS_SNAP_PORT, ERRORS_VERSION } from './constants'; export const Errors: FunctionComponent = () => { const [invokeSnap, { isLoading, data, error }] = useInvokeMutation(); diff --git a/packages/test-snaps/src/features/snaps/ethereum-provider/EthereumProvider.tsx b/packages/test-snaps/src/features/snaps/ethereum-provider/EthereumProvider.tsx index 4a00afb898..f65aef63ce 100644 --- a/packages/test-snaps/src/features/snaps/ethereum-provider/EthereumProvider.tsx +++ b/packages/test-snaps/src/features/snaps/ethereum-provider/EthereumProvider.tsx @@ -2,15 +2,15 @@ import { logError } from '@metamask/snaps-utils'; import type { FunctionComponent } from 'react'; import { Button, ButtonGroup } from 'react-bootstrap'; -import { useInvokeMutation } from '../../../api'; -import { Result, Snap } from '../../../components'; -import { getSnapId } from '../../../utils'; import { SignMessage } from './components/SignMessage'; import { ETHEREUM_PROVIDER_SNAP_ID, ETHEREUM_PROVIDER_SNAP_PORT, ETHEREUM_PROVIDER_VERSION, } from './constants'; +import { useInvokeMutation } from '../../../api'; +import { Result, Snap } from '../../../components'; +import { getSnapId } from '../../../utils'; export const EthereumProvider: FunctionComponent = () => { const [invokeSnap, { isLoading, data, error }] = useInvokeMutation(); diff --git a/packages/test-snaps/src/features/snaps/ethers-js/EthersJs.tsx b/packages/test-snaps/src/features/snaps/ethers-js/EthersJs.tsx index bac9d015ec..1774873e21 100644 --- a/packages/test-snaps/src/features/snaps/ethers-js/EthersJs.tsx +++ b/packages/test-snaps/src/features/snaps/ethers-js/EthersJs.tsx @@ -1,12 +1,12 @@ import type { FunctionComponent } from 'react'; -import { Snap } from '../../../components'; import { SignMessage } from './components'; import { ETHERS_JS_PORT, ETHERS_JS_SNAP_ID, ETHERS_JS_VERSION, } from './constants'; +import { Snap } from '../../../components'; export const EthersJs: FunctionComponent = () => { return ( diff --git a/packages/test-snaps/src/features/snaps/file-upload/FileUpload.tsx b/packages/test-snaps/src/features/snaps/file-upload/FileUpload.tsx index f8c6df6855..6362e19694 100644 --- a/packages/test-snaps/src/features/snaps/file-upload/FileUpload.tsx +++ b/packages/test-snaps/src/features/snaps/file-upload/FileUpload.tsx @@ -2,14 +2,14 @@ import { logError } from '@metamask/snaps-utils'; import { type FunctionComponent } from 'react'; import { Button, ButtonGroup } from 'react-bootstrap'; -import { useInvokeMutation } from '../../../api'; -import { Result, Snap } from '../../../components'; -import { getSnapId } from '../../../utils'; import { FILE_UPLOAD_SNAP_ID, FILE_UPLOAD_SNAP_PORT, FILE_UPLOAD_VERSION, } from './constants'; +import { useInvokeMutation } from '../../../api'; +import { Result, Snap } from '../../../components'; +import { getSnapId } from '../../../utils'; export const FileUpload: FunctionComponent = () => { const [invokeSnap, { isLoading, data, error }] = useInvokeMutation(); diff --git a/packages/test-snaps/src/features/snaps/get-entropy/GetEntropy.tsx b/packages/test-snaps/src/features/snaps/get-entropy/GetEntropy.tsx index 9af15a0e12..8db568202e 100644 --- a/packages/test-snaps/src/features/snaps/get-entropy/GetEntropy.tsx +++ b/packages/test-snaps/src/features/snaps/get-entropy/GetEntropy.tsx @@ -1,12 +1,12 @@ import type { FunctionComponent } from 'react'; -import { Snap } from '../../../components'; import { SignMessage } from './components'; import { GET_ENTROPY_PORT, GET_ENTROPY_SNAP_ID, GET_ENTROPY_VERSION, } from './constants'; +import { Snap } from '../../../components'; export const GetEntropy: FunctionComponent = () => { return ( diff --git a/packages/test-snaps/src/features/snaps/get-file/GetFile.tsx b/packages/test-snaps/src/features/snaps/get-file/GetFile.tsx index a92844e9e3..00a36c7fd4 100644 --- a/packages/test-snaps/src/features/snaps/get-file/GetFile.tsx +++ b/packages/test-snaps/src/features/snaps/get-file/GetFile.tsx @@ -2,14 +2,14 @@ import { logError } from '@metamask/snaps-utils'; import type { FunctionComponent } from 'react'; import { Button, ButtonGroup } from 'react-bootstrap'; -import { useInvokeMutation } from '../../../api'; -import { Result, Snap } from '../../../components'; -import { getSnapId } from '../../../utils'; import { GET_FILE_SNAP_ID, GET_FILE_SNAP_PORT, GET_FILE_VERSION, } from './constants'; +import { useInvokeMutation } from '../../../api'; +import { Result, Snap } from '../../../components'; +import { getSnapId } from '../../../utils'; export const GetFile: FunctionComponent = () => { const [invokeSnap, { isLoading, data }] = useInvokeMutation(); diff --git a/packages/test-snaps/src/features/snaps/home-page/HomePage.tsx b/packages/test-snaps/src/features/snaps/home-page/HomePage.tsx index ba69efba27..ad92bc1114 100644 --- a/packages/test-snaps/src/features/snaps/home-page/HomePage.tsx +++ b/packages/test-snaps/src/features/snaps/home-page/HomePage.tsx @@ -1,11 +1,11 @@ import type { FunctionComponent } from 'react'; -import { Snap } from '../../../components'; import { HOME_PAGE_SNAP_ID, HOME_PAGE_SNAP_PORT, HOME_PAGE_VERSION, } from './constants'; +import { Snap } from '../../../components'; export const HomePage: FunctionComponent = () => { return ( diff --git a/packages/test-snaps/src/features/snaps/images/Images.tsx b/packages/test-snaps/src/features/snaps/images/Images.tsx index 49343ad661..69840bd7b3 100644 --- a/packages/test-snaps/src/features/snaps/images/Images.tsx +++ b/packages/test-snaps/src/features/snaps/images/Images.tsx @@ -1,8 +1,8 @@ import type { FunctionComponent } from 'react'; -import { Snap } from '../../../components'; import { ShowImage, ShowQr } from './components'; import { IMAGES_SNAP_ID, IMAGES_SNAP_PORT, IMAGES_VERSION } from './constants'; +import { Snap } from '../../../components'; export const Images: FunctionComponent = () => { return ( diff --git a/packages/test-snaps/src/features/snaps/images/components/ShowQr.tsx b/packages/test-snaps/src/features/snaps/images/components/ShowQr.tsx index 9bf9d892ea..7e7a0cc5cf 100644 --- a/packages/test-snaps/src/features/snaps/images/components/ShowQr.tsx +++ b/packages/test-snaps/src/features/snaps/images/components/ShowQr.tsx @@ -1,6 +1,10 @@ import { logError } from '@metamask/snaps-utils'; -import type { FunctionComponent } from 'react'; -import { type ChangeEvent, type FormEvent, useState } from 'react'; +import { useState } from 'react'; +import type { + FunctionComponent, + type ChangeEvent, + type FormEvent, +} from 'react'; import { Button, Form } from 'react-bootstrap'; import { useInvokeMutation } from '../../../../api'; diff --git a/packages/test-snaps/src/features/snaps/interactive-ui/InteractiveUI.tsx b/packages/test-snaps/src/features/snaps/interactive-ui/InteractiveUI.tsx index 28a0242592..24cc1811fd 100644 --- a/packages/test-snaps/src/features/snaps/interactive-ui/InteractiveUI.tsx +++ b/packages/test-snaps/src/features/snaps/interactive-ui/InteractiveUI.tsx @@ -2,14 +2,14 @@ import { logError } from '@metamask/snaps-utils'; import { type FunctionComponent } from 'react'; import { Button, ButtonGroup } from 'react-bootstrap'; -import { useInvokeMutation } from '../../../api'; -import { Result, Snap } from '../../../components'; -import { getSnapId } from '../../../utils'; import { INTERACTIVE_UI_SNAP_ID, INTERACTIVE_UI_SNAP_PORT, INTERACTIVE_UI_VERSION, } from './constants'; +import { useInvokeMutation } from '../../../api'; +import { Result, Snap } from '../../../components'; +import { getSnapId } from '../../../utils'; export const InteractiveUI: FunctionComponent = () => { const [invokeSnap, { isLoading, data, error }] = useInvokeMutation(); diff --git a/packages/test-snaps/src/features/snaps/json-rpc/JsonRpc.tsx b/packages/test-snaps/src/features/snaps/json-rpc/JsonRpc.tsx index c0f8cc1110..d54dc60ac0 100644 --- a/packages/test-snaps/src/features/snaps/json-rpc/JsonRpc.tsx +++ b/packages/test-snaps/src/features/snaps/json-rpc/JsonRpc.tsx @@ -2,14 +2,14 @@ import { logError } from '@metamask/snaps-utils'; import type { FunctionComponent } from 'react'; import { Button } from 'react-bootstrap'; -import { useInvokeMutation } from '../../../api'; -import { Result, Snap } from '../../../components'; -import { getSnapId } from '../../../utils'; import { JSON_RPC_SNAP_ID, JSON_RPC_SNAP_PORT, JSON_RPC_VERSION, } from './constants'; +import { useInvokeMutation } from '../../../api'; +import { Result, Snap } from '../../../components'; +import { getSnapId } from '../../../utils'; export const JsonRpc: FunctionComponent = () => { const [invokeSnap, { isLoading, data, error }] = useInvokeMutation(); diff --git a/packages/test-snaps/src/features/snaps/jsx/Jsx.tsx b/packages/test-snaps/src/features/snaps/jsx/Jsx.tsx index 9dc4a7aba1..191558be50 100644 --- a/packages/test-snaps/src/features/snaps/jsx/Jsx.tsx +++ b/packages/test-snaps/src/features/snaps/jsx/Jsx.tsx @@ -2,10 +2,10 @@ import { logError } from '@metamask/snaps-utils'; import type { FunctionComponent } from 'react'; import { Button } from 'react-bootstrap'; +import { JSX_SNAP_ID, JSX_SNAP_PORT, JSX_VERSION } from './constants'; import { useInvokeMutation } from '../../../api'; import { Result, Snap } from '../../../components'; import { getSnapId } from '../../../utils'; -import { JSX_SNAP_ID, JSX_SNAP_PORT, JSX_VERSION } from './constants'; export const Jsx: FunctionComponent = () => { const [invokeSnap, { isLoading, data, error }] = useInvokeMutation(); diff --git a/packages/test-snaps/src/features/snaps/lifecycle-hooks/LifecycleHooks.tsx b/packages/test-snaps/src/features/snaps/lifecycle-hooks/LifecycleHooks.tsx index b360a0678d..7dd39802d7 100644 --- a/packages/test-snaps/src/features/snaps/lifecycle-hooks/LifecycleHooks.tsx +++ b/packages/test-snaps/src/features/snaps/lifecycle-hooks/LifecycleHooks.tsx @@ -1,11 +1,11 @@ import type { FunctionComponent } from 'react'; -import { Snap } from '../../../components'; import { LIFECYCLE_HOOKS_SNAP_ID, LIFECYCLE_HOOKS_SNAP_PORT, LIFECYCLE_HOOKS_VERSION, } from './constants'; +import { Snap } from '../../../components'; export const LifecycleHooks: FunctionComponent = () => { // TODO: Right now there isn't any published version of this snap, so we can't diff --git a/packages/test-snaps/src/features/snaps/localization/Localization.tsx b/packages/test-snaps/src/features/snaps/localization/Localization.tsx index 0b4c7b0170..c017631add 100644 --- a/packages/test-snaps/src/features/snaps/localization/Localization.tsx +++ b/packages/test-snaps/src/features/snaps/localization/Localization.tsx @@ -2,14 +2,14 @@ import { logError } from '@metamask/snaps-utils'; import type { FunctionComponent } from 'react'; import { Button, ButtonGroup } from 'react-bootstrap'; -import { useInvokeMutation } from '../../../api'; -import { Result, Snap } from '../../../components'; -import { getSnapId } from '../../../utils'; import { LOCALIZATION_SNAP_ID, LOCALIZATION_SNAP_PORT, LOCALIZATION_VERSION, } from './constants'; +import { useInvokeMutation } from '../../../api'; +import { Result, Snap } from '../../../components'; +import { getSnapId } from '../../../utils'; export const Localization: FunctionComponent = () => { const [invokeSnap, { isLoading, data }] = useInvokeMutation(); diff --git a/packages/test-snaps/src/features/snaps/manage-state/ManageState.tsx b/packages/test-snaps/src/features/snaps/manage-state/ManageState.tsx index 386e56a704..2e3424fc25 100644 --- a/packages/test-snaps/src/features/snaps/manage-state/ManageState.tsx +++ b/packages/test-snaps/src/features/snaps/manage-state/ManageState.tsx @@ -1,6 +1,5 @@ import type { FunctionComponent } from 'react'; -import { Result, Snap } from '../../../components'; import { ClearData, SendData } from './components'; import { MANAGE_STATE_SNAP_ID, @@ -8,6 +7,7 @@ import { MANAGE_STATE_VERSION, } from './constants'; import { useSnapState } from './hooks'; +import { Result, Snap } from '../../../components'; export const ManageState: FunctionComponent = () => { const encryptedState = useSnapState(true); diff --git a/packages/test-snaps/src/features/snaps/name-lookup/NameLookup.tsx b/packages/test-snaps/src/features/snaps/name-lookup/NameLookup.tsx index 254102f4a4..b08def49c8 100644 --- a/packages/test-snaps/src/features/snaps/name-lookup/NameLookup.tsx +++ b/packages/test-snaps/src/features/snaps/name-lookup/NameLookup.tsx @@ -1,11 +1,11 @@ import type { FunctionComponent } from 'react'; -import { Snap } from '../../../components'; import { NAME_LOOKUP_SNAP_ID, NAME_LOOKUP_SNAP_PORT, NAME_LOOKUP_VERSION, } from './constants'; +import { Snap } from '../../../components'; export const NameLookup: FunctionComponent = () => { return ( diff --git a/packages/test-snaps/src/features/snaps/network-access/NetworkAccess.tsx b/packages/test-snaps/src/features/snaps/network-access/NetworkAccess.tsx index 563f4ffd85..c7450be8b2 100644 --- a/packages/test-snaps/src/features/snaps/network-access/NetworkAccess.tsx +++ b/packages/test-snaps/src/features/snaps/network-access/NetworkAccess.tsx @@ -3,14 +3,14 @@ import type { ChangeEvent, FunctionComponent } from 'react'; import { useState } from 'react'; import { Button, Form } from 'react-bootstrap'; -import { useInvokeMutation } from '../../../api'; -import { Result, Snap } from '../../../components'; -import { getSnapId } from '../../../utils'; import { NETWORK_ACCESS_PORT, NETWORK_ACCESS_SNAP_ID, NETWORK_ACCESS_VERSION, } from './constants'; +import { useInvokeMutation } from '../../../api'; +import { Result, Snap } from '../../../components'; +import { getSnapId } from '../../../utils'; export const NetworkAccess: FunctionComponent = () => { const [url, setUrl] = useState(`${window.location.href}test-data.json`); diff --git a/packages/test-snaps/src/features/snaps/notifications/Notifications.tsx b/packages/test-snaps/src/features/snaps/notifications/Notifications.tsx index 3fcd0a8938..a3daa9ec56 100644 --- a/packages/test-snaps/src/features/snaps/notifications/Notifications.tsx +++ b/packages/test-snaps/src/features/snaps/notifications/Notifications.tsx @@ -2,14 +2,14 @@ import { logError } from '@metamask/snaps-utils'; import type { FunctionComponent } from 'react'; import { Button, ButtonGroup } from 'react-bootstrap'; -import { useInvokeMutation } from '../../../api'; -import { Snap } from '../../../components'; -import { getSnapId } from '../../../utils'; import { NOTIFICATIONS_SNAP_ID, NOTIFICATIONS_SNAP_PORT, NOTIFICATIONS_VERSION, } from './constants'; +import { useInvokeMutation } from '../../../api'; +import { Snap } from '../../../components'; +import { getSnapId } from '../../../utils'; export const Notifications: FunctionComponent = () => { const [invokeSnap, { isLoading }] = useInvokeMutation(); diff --git a/packages/test-snaps/src/features/snaps/signature-insights/SignatureInsights.tsx b/packages/test-snaps/src/features/snaps/signature-insights/SignatureInsights.tsx index 4e097b67ec..81c3374838 100644 --- a/packages/test-snaps/src/features/snaps/signature-insights/SignatureInsights.tsx +++ b/packages/test-snaps/src/features/snaps/signature-insights/SignatureInsights.tsx @@ -1,11 +1,11 @@ import type { FunctionComponent } from 'react'; -import { Snap } from '../../../components'; import { SIGNATURE_INSIGHTS_SNAP_ID, SIGNATURE_INSIGHTS_SNAP_PORT, SIGNATURE_INSIGHTS_VERSION, } from './constants'; +import { Snap } from '../../../components'; export const SignatureInsights: FunctionComponent = () => { return ( diff --git a/packages/test-snaps/src/features/snaps/transaction-insights/TransactionInsights.tsx b/packages/test-snaps/src/features/snaps/transaction-insights/TransactionInsights.tsx index 08035cd301..4fcb4f74fc 100644 --- a/packages/test-snaps/src/features/snaps/transaction-insights/TransactionInsights.tsx +++ b/packages/test-snaps/src/features/snaps/transaction-insights/TransactionInsights.tsx @@ -3,13 +3,13 @@ import { assert } from '@metamask/utils'; import type { FunctionComponent } from 'react'; import { Button, ButtonGroup } from 'react-bootstrap'; -import { useLazyGetAccountsQuery, useLazyRequestQuery } from '../../../api'; -import { Snap, Result } from '../../../components'; import { TRANSACTION_INSIGHTS_SNAP_ID, TRANSACTION_INSIGHTS_SNAP_PORT, TRANSACTION_INSIGHTS_VERSION, } from './constants'; +import { useLazyGetAccountsQuery, useLazyRequestQuery } from '../../../api'; +import { Snap, Result } from '../../../components'; export const TransactionInsights: FunctionComponent = () => { const [getAccounts, { isLoading: isLoadingAccounts, data: accounts }] = diff --git a/packages/test-snaps/src/features/snaps/updates/Updates.tsx b/packages/test-snaps/src/features/snaps/updates/Updates.tsx index 1b1f7df8e7..f23e13824a 100644 --- a/packages/test-snaps/src/features/snaps/updates/Updates.tsx +++ b/packages/test-snaps/src/features/snaps/updates/Updates.tsx @@ -2,13 +2,13 @@ import { logError } from '@metamask/snaps-utils'; import type { FunctionComponent } from 'react'; import { Button, ButtonGroup } from 'react-bootstrap'; -import { useGetSnapsQuery, useInstallSnapMutation } from '../../../api'; -import { Result, Snap } from '../../../components'; import { UPDATES_SNAP_ID, UPDATES_SNAP_NEW_VERSION, UPDATES_SNAP_OLD_VERSION, } from './constants'; +import { useGetSnapsQuery, useInstallSnapMutation } from '../../../api'; +import { Result, Snap } from '../../../components'; export const Updates: FunctionComponent = () => { const [installSnap, { isLoading }] = useInstallSnapMutation(); diff --git a/packages/test-snaps/src/features/snaps/wasm/WebAssembly.tsx b/packages/test-snaps/src/features/snaps/wasm/WebAssembly.tsx index c8a4aaaaee..cf63105283 100644 --- a/packages/test-snaps/src/features/snaps/wasm/WebAssembly.tsx +++ b/packages/test-snaps/src/features/snaps/wasm/WebAssembly.tsx @@ -1,8 +1,8 @@ import type { FunctionComponent } from 'react'; -import { Snap } from '../../../components'; import { FibonacciInput } from './components'; import { WASM_SNAP_ID, WASM_SNAP_PORT, WASM_VERSION } from './constants'; +import { Snap } from '../../../components'; export const WASM: FunctionComponent = () => { return ( diff --git a/packages/test-snaps/src/index.tsx b/packages/test-snaps/src/index.tsx index 2edfdc9e1b..e6c559916a 100644 --- a/packages/test-snaps/src/index.tsx +++ b/packages/test-snaps/src/index.tsx @@ -5,7 +5,7 @@ import { App } from './App'; import { Root } from './components'; import createStore from './store'; -// eslint-disable-next-line import/no-unassigned-import +// eslint-disable-next-line import-x/no-unassigned-import import 'bootstrap/dist/css/bootstrap.min.css'; const rootElement = document.getElementById('root'); diff --git a/packages/test-snaps/webpack.config.ts b/packages/test-snaps/webpack.config.ts index eee7a2653e..429d6ac258 100644 --- a/packages/test-snaps/webpack.config.ts +++ b/packages/test-snaps/webpack.config.ts @@ -1,5 +1,5 @@ import ReactRefreshPlugin from '@pmmmwh/react-refresh-webpack-plugin'; -// eslint-disable-next-line import/default +// eslint-disable-next-line import-x/default import CopyPlugin from 'copy-webpack-plugin'; import FaviconsWebpackPlugin from 'favicons-webpack-plugin'; import HtmlWebpackPlugin from 'html-webpack-plugin'; diff --git a/tsconfig.json b/tsconfig.json index 39d06b3601..6336e76eef 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -16,7 +16,8 @@ "compilerOptions": { "esModuleInterop": true, "noEmit": true, - "resolveJsonModule": true + "resolveJsonModule": true, + "strictNullChecks": true }, "files": [], "include": ["scripts", "tsup.config.ts"] diff --git a/yarn.lock b/yarn.lock index 30696954a1..fa10404054 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2799,14 +2799,14 @@ __metadata: languageName: node linkType: hard -"@es-joy/jsdoccomment@npm:~0.36.0": - version: 0.36.0 - resolution: "@es-joy/jsdoccomment@npm:0.36.0" +"@es-joy/jsdoccomment@npm:~0.41.0": + version: 0.41.0 + resolution: "@es-joy/jsdoccomment@npm:0.41.0" dependencies: - comment-parser: 1.3.1 - esquery: ^1.4.0 - jsdoc-type-pratt-parser: ~3.1.0 - checksum: c2fa95bc01f6b2a0caa521adaa37562b10b12095b5308948f3e122880d2ae9684c09e5b0e0809ac3e31e17580886d2d3b41fbf4ff4831649efce8cba8e30cf5c + comment-parser: 1.4.1 + esquery: ^1.5.0 + jsdoc-type-pratt-parser: ~4.0.0 + checksum: cfe0714027ff8fa82dad8c84f75af3f6df9d6797d60c289b8d3c259c5375c134bd5ca630beba0daed3adceef01a74f19e05052018f6b66ad6a4f483adf599c39 languageName: node linkType: hard @@ -3165,20 +3165,45 @@ __metadata: languageName: node linkType: hard -"@eslint/eslintrc@npm:^1.3.3": - version: 1.3.3 - resolution: "@eslint/eslintrc@npm:1.3.3" +"@eslint-community/eslint-utils@npm:^4.1.2, @eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": + version: 4.4.0 + resolution: "@eslint-community/eslint-utils@npm:4.4.0" + dependencies: + eslint-visitor-keys: ^3.3.0 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + checksum: cdfe3ae42b4f572cbfb46d20edafe6f36fc5fb52bf2d90875c58aefe226892b9677fef60820e2832caf864a326fe4fc225714c46e8389ccca04d5f9288aabd22 + languageName: node + linkType: hard + +"@eslint-community/regexpp@npm:^4.11.0, @eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": + version: 4.11.0 + resolution: "@eslint-community/regexpp@npm:4.11.0" + checksum: 97d2fe46690b69417a551bd19a3dc53b6d9590d2295c43cc4c4e44e64131af541e2f4a44d5c12e87de990403654d3dae9d33600081f3a2f0386b368abc9111ec + languageName: node + linkType: hard + +"@eslint/eslintrc@npm:^2.1.4": + version: 2.1.4 + resolution: "@eslint/eslintrc@npm:2.1.4" dependencies: ajv: ^6.12.4 debug: ^4.3.2 - espree: ^9.4.0 - globals: ^13.15.0 + espree: ^9.6.0 + globals: ^13.19.0 ignore: ^5.2.0 import-fresh: ^3.2.1 js-yaml: ^4.1.0 minimatch: ^3.1.2 strip-json-comments: ^3.1.1 - checksum: f03e9d6727efd3e0719da2051ea80c0c73d20e28c171121527dbb868cd34232ca9c1d0525a66e517a404afea26624b1e47895b6a92474678418c2f50c9566694 + checksum: 10957c7592b20ca0089262d8c2a8accbad14b4f6507e35416c32ee6b4dbf9cad67dfb77096bbd405405e9ada2b107f3797fe94362e1c55e0b09d6e90dd149127 + languageName: node + linkType: hard + +"@eslint/js@npm:8.57.0": + version: 8.57.0 + resolution: "@eslint/js@npm:8.57.0" + checksum: 315dc65b0e9893e2bff139bddace7ea601ad77ed47b4550e73da8c9c2d2766c7a575c3cddf17ef85b8fd6a36ff34f91729d0dcca56e73ca887c10df91a41b0bb languageName: node linkType: hard @@ -3278,14 +3303,14 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.11.6": - version: 0.11.7 - resolution: "@humanwhocodes/config-array@npm:0.11.7" +"@humanwhocodes/config-array@npm:^0.11.14": + version: 0.11.14 + resolution: "@humanwhocodes/config-array@npm:0.11.14" dependencies: - "@humanwhocodes/object-schema": ^1.2.1 - debug: ^4.1.1 + "@humanwhocodes/object-schema": ^2.0.2 + debug: ^4.3.1 minimatch: ^3.0.5 - checksum: cf506dc45d9488af7fbf108ea6ac2151ba1a25e6d2b94b9b4fc36d2c1e4099b89ff560296dbfa13947e44604d4ca4a90d97a4fb167370bf8dd01a6ca2b6d83ac + checksum: 861ccce9eaea5de19546653bccf75bf09fe878bc39c3aab00aeee2d2a0e654516adad38dd1098aab5e3af0145bbcbf3f309bdf4d964f8dab9dcd5834ae4c02f2 languageName: node linkType: hard @@ -3296,10 +3321,10 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/object-schema@npm:^1.2.1": - version: 1.2.1 - resolution: "@humanwhocodes/object-schema@npm:1.2.1" - checksum: a824a1ec31591231e4bad5787641f59e9633827d0a2eaae131a288d33c9ef0290bd16fda8da6f7c0fcb014147865d12118df10db57f27f41e20da92369fcb3f1 +"@humanwhocodes/object-schema@npm:^2.0.2": + version: 2.0.3 + resolution: "@humanwhocodes/object-schema@npm:2.0.3" + checksum: d3b78f6c5831888c6ecc899df0d03bcc25d46f3ad26a11d7ea52944dc36a35ef543fad965322174238d677a43d5c694434f6607532cff7077062513ad7022631 languageName: node linkType: hard @@ -3881,10 +3906,10 @@ __metadata: "@jest/globals": ^29.5.0 "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/key-tree": ^9.1.2 "@metamask/snaps-cli": "workspace:^" "@metamask/snaps-jest": "workspace:^" @@ -3894,16 +3919,16 @@ __metadata: "@noble/secp256k1": ^1.7.1 "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -3921,10 +3946,10 @@ __metadata: "@jest/globals": ^29.5.0 "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/key-tree": ^9.1.2 "@metamask/snaps-cli": "workspace:^" "@metamask/snaps-jest": "workspace:^" @@ -3933,16 +3958,16 @@ __metadata: "@noble/bls12-381": ^1.2.0 "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -3970,25 +3995,25 @@ __metadata: "@jest/globals": ^29.5.0 "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/snaps-cli": "workspace:^" "@metamask/snaps-jest": "workspace:^" "@metamask/snaps-sdk": "workspace:^" "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -4007,27 +4032,27 @@ __metadata: "@jest/globals": ^29.5.0 "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/snaps-browserify-plugin": "workspace:^" "@metamask/snaps-jest": "workspace:^" "@metamask/snaps-sdk": "workspace:^" "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 babelify: ^10.0.0 browserify: ^17.0.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -4045,25 +4070,25 @@ __metadata: "@jest/globals": ^29.5.0 "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/snaps-cli": "workspace:^" "@metamask/snaps-jest": "workspace:^" "@metamask/snaps-sdk": "workspace:^" "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -4082,10 +4107,10 @@ __metadata: "@jest/globals": ^29.5.0 "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/key-tree": ^9.1.2 "@metamask/snaps-cli": "workspace:^" "@metamask/snaps-jest": "workspace:^" @@ -4094,16 +4119,16 @@ __metadata: "@noble/hashes": ^1.3.1 "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -4138,10 +4163,10 @@ __metadata: "@jest/globals": ^29.5.0 "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/key-tree": ^9.1.2 "@metamask/snaps-cli": "workspace:^" "@metamask/snaps-jest": "workspace:^" @@ -4151,17 +4176,17 @@ __metadata: "@noble/hashes": ^1.3.1 "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 async-mutex: ^0.4.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -4200,10 +4225,10 @@ __metadata: dependencies: "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/snaps-utils": "workspace:^" "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 @@ -4211,16 +4236,16 @@ __metadata: "@types/node": 18.14.2 "@types/rimraf": ^3.0.0 "@types/yargs": ^17.0.24 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -4247,25 +4272,25 @@ __metadata: "@jest/globals": ^29.5.0 "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/snaps-cli": "workspace:^" "@metamask/snaps-jest": "workspace:^" "@metamask/snaps-sdk": "workspace:^" "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -4284,25 +4309,25 @@ __metadata: "@jest/globals": ^29.5.0 "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/snaps-cli": "workspace:^" "@metamask/snaps-jest": "workspace:^" "@metamask/snaps-sdk": "workspace:^" "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -4320,25 +4345,25 @@ __metadata: "@jest/globals": ^29.5.0 "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/snaps-cli": "workspace:^" "@metamask/snaps-jest": "workspace:^" "@metamask/snaps-sdk": "workspace:^" "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -4359,53 +4384,53 @@ __metadata: languageName: node linkType: hard -"@metamask/eslint-config-jest@npm:^12.1.0": - version: 12.1.0 - resolution: "@metamask/eslint-config-jest@npm:12.1.0" +"@metamask/eslint-config-jest@npm:^13.0.0": + version: 13.0.0 + resolution: "@metamask/eslint-config-jest@npm:13.0.0" peerDependencies: - "@metamask/eslint-config": ^12.0.0 - eslint: ^8.27.0 - eslint-plugin-jest: ^27.1.5 - checksum: 98f60234412051d429237dbf32b147a648a0e3b6adacafda24999ec9eb8096155c8000c62204415100c97980cc3bfe0a0fe19e4c318b8bb529eaf57e9f96e680 + "@metamask/eslint-config": ^13.0.0 + eslint: ^8.57.0 + eslint-plugin-jest: ^27.9.0 + checksum: 1680646add66f3da2e802d41babcbd9c2c164e3eeb4cec8b37ba322591ba2e25937616362a83a8e72cba98932b746a9b8bd414d2787e0ee08da91e75fde6bff3 languageName: node linkType: hard -"@metamask/eslint-config-nodejs@npm:^12.1.0": - version: 12.1.0 - resolution: "@metamask/eslint-config-nodejs@npm:12.1.0" +"@metamask/eslint-config-nodejs@npm:^13.0.0": + version: 13.0.0 + resolution: "@metamask/eslint-config-nodejs@npm:13.0.0" peerDependencies: - "@metamask/eslint-config": ^12.0.0 - eslint: ^8.27.0 - eslint-plugin-n: ^15.7.0 - checksum: f4387ba5b0a5173197b960dc59b8e29b7ef02754107b61c3af98f505397048717bd8ba5f9d09555740886c968fc0898520c26899268886f1967bc80f93c26919 + "@metamask/eslint-config": ^13.0.0 + eslint: ^8.57.0 + eslint-plugin-n: ^16.6.2 + checksum: 8a21804b7525cef73ec5302b40811b02628f0e2a93ab60932dd23752bb97d6f58f5db1500cd96fd41c5b0a40eb3aa06766215a51c9d5d8a5ffee14529b63bc9a languageName: node linkType: hard -"@metamask/eslint-config-typescript@npm:^12.1.0": - version: 12.1.0 - resolution: "@metamask/eslint-config-typescript@npm:12.1.0" +"@metamask/eslint-config-typescript@npm:^13.0.0": + version: 13.0.0 + resolution: "@metamask/eslint-config-typescript@npm:13.0.0" peerDependencies: - "@metamask/eslint-config": ^12.0.0 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 - eslint: ^8.27.0 - typescript: ~4.8.4 || ~5.0 || ~5.1 - checksum: a854574e4c2ca7b036d0a2a454aecb93ba538d1b92c1615878dfe06a14972df6af2fcdd5e2911ef369b3b2eeb04b8c6879bd037c618a35f6cb98950cdab84d50 + "@metamask/eslint-config": ^13.0.0 + "@typescript-eslint/eslint-plugin": ^8.1.0 + "@typescript-eslint/parser": ^8.1.0 + eslint: ^8.57.0 + typescript: ">=4.8.4 <5.6" + checksum: d05f1be8f86edbaf6961176379939a1e4a0f51bc7c32430589b25333726372cea56b9e5af00a735f248ac4424aa10496989fc92e32bfc3194a963fd3c5d0fde5 languageName: node linkType: hard -"@metamask/eslint-config@npm:^12.1.0": - version: 12.1.0 - resolution: "@metamask/eslint-config@npm:12.1.0" +"@metamask/eslint-config@npm:^13.0.0": + version: 13.0.0 + resolution: "@metamask/eslint-config@npm:13.0.0" peerDependencies: - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.27.5 - eslint-plugin-jsdoc: ^39.6.2 || ^41 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jsdoc: ">=43.0.7 <48" eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 prettier: ^2.7.1 - checksum: 03f11538241f82eadb0a61e35c4f1ed3bddc40599188f7af5ee2a1eca0ea6dc9a9e2b5096f59071a41a1a3ceb1ecccff14936ea0712dd20ad0ea66e57080b2a7 + checksum: a0375b0692589984d9a93ce10bce1b6fe7b0dfe2eca5237279e8bf92ba338bde9802a8d2aae255bd410ef7e9c56ce78022193a6684f17fcd01509b9eb389a4d1 languageName: node linkType: hard @@ -4485,26 +4510,26 @@ __metadata: "@jest/globals": ^29.5.0 "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/snaps-cli": "workspace:^" "@metamask/snaps-jest": "workspace:^" "@metamask/snaps-sdk": "workspace:^" "@metamask/utils": ^9.1.0 "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -4522,25 +4547,25 @@ __metadata: "@jest/globals": ^29.5.0 "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/snaps-cli": "workspace:^" "@metamask/snaps-jest": "workspace:^" "@metamask/snaps-sdk": "workspace:^" "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 ethers: ^6.3.0 @@ -4571,19 +4596,19 @@ __metadata: dependencies: "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 prettier: ^2.7.1 @@ -4600,26 +4625,26 @@ __metadata: "@jest/globals": ^29.5.0 "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/snaps-cli": "workspace:^" "@metamask/snaps-jest": "workspace:^" "@metamask/snaps-sdk": "workspace:^" "@metamask/utils": ^9.1.0 "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -4638,10 +4663,10 @@ __metadata: "@jest/globals": ^29.5.0 "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/snaps-cli": "workspace:^" "@metamask/snaps-jest": "workspace:^" "@metamask/snaps-sdk": "workspace:^" @@ -4649,16 +4674,16 @@ __metadata: "@noble/bls12-381": ^1.2.0 "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -4676,25 +4701,25 @@ __metadata: "@jest/globals": ^29.5.0 "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/snaps-cli": "workspace:^" "@metamask/snaps-jest": "workspace:^" "@metamask/snaps-sdk": "workspace:^" "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -4712,25 +4737,25 @@ __metadata: "@jest/globals": ^29.5.0 "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/snaps-cli": "workspace:^" "@metamask/snaps-jest": "workspace:^" "@metamask/snaps-sdk": "workspace:^" "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -4748,25 +4773,25 @@ __metadata: "@jest/globals": ^29.5.0 "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/snaps-cli": "workspace:^" "@metamask/snaps-jest": "workspace:^" "@metamask/snaps-sdk": "workspace:^" "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -4785,26 +4810,26 @@ __metadata: "@jest/globals": ^29.5.0 "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/snaps-cli": "workspace:^" "@metamask/snaps-jest": "workspace:^" "@metamask/snaps-sdk": "workspace:^" "@metamask/utils": ^9.1.0 "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -4822,26 +4847,26 @@ __metadata: "@jest/globals": ^29.5.0 "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/snaps-cli": "workspace:^" "@metamask/snaps-jest": "workspace:^" "@metamask/snaps-sdk": "workspace:^" "@metamask/utils": ^9.1.0 "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -4859,19 +4884,19 @@ __metadata: dependencies: "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 prettier: ^2.7.1 @@ -4899,25 +4924,25 @@ __metadata: "@jest/globals": ^29.5.0 "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/snaps-cli": "workspace:^" "@metamask/snaps-jest": "workspace:^" "@metamask/snaps-sdk": "workspace:^" "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -4947,10 +4972,10 @@ __metadata: "@jest/globals": ^29.5.0 "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/rpc-errors": ^6.3.1 "@metamask/snaps-cli": "workspace:^" "@metamask/snaps-jest": "workspace:^" @@ -4958,16 +4983,16 @@ __metadata: "@metamask/utils": ^9.1.0 "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -4998,25 +5023,25 @@ __metadata: "@jest/globals": ^29.5.0 "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/snaps-cli": "workspace:^" "@metamask/snaps-jest": "workspace:^" "@metamask/snaps-sdk": "workspace:^" "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -5034,25 +5059,25 @@ __metadata: "@jest/globals": ^29.5.0 "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/snaps-cli": "workspace:^" "@metamask/snaps-jest": "workspace:^" "@metamask/snaps-sdk": "workspace:^" "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -5070,25 +5095,25 @@ __metadata: "@jest/globals": ^29.5.0 "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/snaps-cli": "workspace:^" "@metamask/snaps-jest": "workspace:^" "@metamask/snaps-sdk": "workspace:^" "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -5106,25 +5131,25 @@ __metadata: "@jest/globals": ^29.5.0 "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/snaps-cli": "workspace:^" "@metamask/snaps-jest": "workspace:^" "@metamask/snaps-sdk": "workspace:^" "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -5142,10 +5167,10 @@ __metadata: "@jest/globals": ^29.5.0 "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/snaps-cli": "workspace:^" "@metamask/snaps-controllers": "workspace:^" "@metamask/snaps-jest": "workspace:^" @@ -5153,16 +5178,16 @@ __metadata: "@metamask/utils": ^9.1.0 "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -5180,25 +5205,25 @@ __metadata: "@jest/globals": ^29.5.0 "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/snaps-cli": "workspace:^" "@metamask/snaps-jest": "workspace:^" "@metamask/snaps-sdk": "workspace:^" "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -5303,10 +5328,10 @@ __metadata: "@jest/globals": ^29.5.0 "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/snaps-jest": "workspace:^" "@metamask/snaps-rollup-plugin": "workspace:^" "@metamask/snaps-sdk": "workspace:^" @@ -5316,16 +5341,16 @@ __metadata: "@rollup/plugin-terser": ^0.4.3 "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -5371,25 +5396,25 @@ __metadata: "@jest/globals": ^29.5.0 "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/snaps-cli": "workspace:^" "@metamask/snaps-jest": "workspace:^" "@metamask/snaps-sdk": "workspace:^" "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -5413,29 +5438,29 @@ __metadata: dependencies: "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/snaps-utils": "workspace:^" "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 "@types/browserify": ^12.0.37 "@types/convert-source-map": ^1.5.2 "@types/jest": ^27.5.1 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 browserify: ^17.0.0 concat-stream: ^2.0.0 convert-source-map: ^1.8.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -5464,10 +5489,10 @@ __metadata: "@babel/preset-typescript": ^7.23.2 "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/snaps-sdk": "workspace:^" "@metamask/snaps-utils": "workspace:^" "@metamask/snaps-webpack-plugin": "workspace:^" @@ -5481,8 +5506,8 @@ __metadata: "@types/rimraf": ^3.0.0 "@types/serve-handler": ^6.1.0 "@types/yargs": ^17.0.24 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 assert: ^2.0.0 babelify: ^10.0.0 browserify: ^17.0.0 @@ -5496,12 +5521,12 @@ __metadata: deepmerge: ^4.2.2 depcheck: ^1.4.7 domain-browser: ^4.22.0 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 events: ^3.3.0 @@ -5556,10 +5581,10 @@ __metadata: "@metamask/auto-changelog": ^3.4.4 "@metamask/base-controller": ^6.0.2 "@metamask/browser-passworder": ^5.0.0 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/json-rpc-engine": ^9.0.2 "@metamask/json-rpc-middleware-stream": ^8.0.2 "@metamask/object-multiplex": ^2.0.0 @@ -5583,8 +5608,8 @@ __metadata: "@types/node": 18.14.2 "@types/readable-stream": ^2.3.15 "@types/tar-stream": ^3.1.1 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 "@wdio/browser-runner": ^8.19.0 "@wdio/cli": ^8.19.0 "@wdio/globals": ^8.19.0 @@ -5597,12 +5622,12 @@ __metadata: deepmerge: ^4.2.2 depcheck: ^1.4.7 esbuild: ^0.18.10 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 expect-webdriverio: ^4.4.1 @@ -5651,10 +5676,10 @@ __metadata: "@lavamoat/lavapack": ^6.1.1 "@lavamoat/lavatube": ^1.0.0 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/json-rpc-engine": ^9.0.2 "@metamask/object-multiplex": ^2.0.0 "@metamask/post-message-stream": ^8.1.0 @@ -5669,8 +5694,8 @@ __metadata: "@types/express": ^4.17.17 "@types/jest": ^27.5.1 "@types/node": 18.14.2 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 "@wdio/browser-runner": ^8.19.0 "@wdio/cli": ^8.19.0 "@wdio/globals": ^8.19.0 @@ -5683,12 +5708,12 @@ __metadata: deepmerge: ^4.2.2 depcheck: ^1.4.7 esbuild: ^0.18.10 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 expect-webdriverio: ^4.4.1 @@ -5731,10 +5756,10 @@ __metadata: "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 "@metamask/base-controller": ^6.0.2 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/eth-json-rpc-middleware": ^13.0.0 "@metamask/json-rpc-engine": ^9.0.2 "@metamask/json-rpc-middleware-stream": ^8.0.2 @@ -5753,16 +5778,16 @@ __metadata: "@types/jest": ^27.5.1 "@types/mime": ^3.0.0 "@types/semver": ^7.5.0 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 express: ^4.18.2 @@ -5800,25 +5825,25 @@ __metadata: dependencies: "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/snaps-utils": "workspace:^" "@rollup/plugin-virtual": ^2.1.0 "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 "@types/jest": ^27.5.1 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -5839,10 +5864,10 @@ __metadata: dependencies: "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/json-rpc-engine": ^9.0.2 "@metamask/key-tree": ^9.1.2 "@metamask/permission-controller": ^11.0.0 @@ -5855,16 +5880,16 @@ __metadata: "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 "@types/node": 18.14.2 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -5883,10 +5908,10 @@ __metadata: dependencies: "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/key-tree": ^9.1.2 "@metamask/providers": ^17.1.2 "@metamask/rpc-errors": ^6.3.1 @@ -5894,16 +5919,16 @@ __metadata: "@metamask/utils": ^9.1.0 "@swc/core": 1.3.78 "@types/jest": ^27.5.1 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 expect-type: ^0.17.3 @@ -5930,11 +5955,11 @@ __metadata: "@ethersproject/units": ^5.7.0 "@metamask/auto-changelog": ^3.4.4 "@metamask/base-controller": ^6.0.2 - "@metamask/eslint-config": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 "@metamask/eslint-config-browser": ^11.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/eth-json-rpc-middleware": ^13.0.0 "@metamask/json-rpc-engine": ^9.0.2 "@metamask/json-rpc-middleware-stream": ^8.0.2 @@ -5965,20 +5990,20 @@ __metadata: "@types/react": ^18.2.5 "@types/react-dom": ^18.2.3 "@types/webpack-env": ^1.18.1 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 assert: ^2.0.0 copy-webpack-plugin: ^11.0.0 css-loader: ^6.7.3 date-fns: ^2.30.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 eslint-plugin-react: ^7.32.2 @@ -6041,10 +6066,10 @@ __metadata: "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 "@metamask/base-controller": ^6.0.2 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/key-tree": ^9.1.2 "@metamask/permission-controller": ^11.0.0 "@metamask/post-message-stream": ^8.1.0 @@ -6063,8 +6088,8 @@ __metadata: "@types/node": 18.14.2 "@types/semver": ^7.5.0 "@types/validate-npm-package-name": ^4.0.0 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 "@wdio/browser-runner": ^8.19.0 "@wdio/cli": ^8.19.0 "@wdio/globals": ^8.19.0 @@ -6077,12 +6102,12 @@ __metadata: deepmerge: ^4.2.2 depcheck: ^1.4.7 esbuild: ^0.18.10 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 expect-webdriverio: ^4.4.1 @@ -6119,10 +6144,10 @@ __metadata: dependencies: "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/snaps-sdk": "workspace:^" "@metamask/snaps-utils": "workspace:^" "@metamask/utils": ^9.1.0 @@ -6130,16 +6155,16 @@ __metadata: "@swc/jest": ^0.2.26 "@types/jest": ^27.5.1 "@types/webpack-sources": ^3.2.0 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -6180,10 +6205,10 @@ __metadata: "@metamask/cronjob-example-snap": "workspace:^" "@metamask/dialog-example-snap": "workspace:^" "@metamask/error-example-snap": "workspace:^" - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/ethereum-provider-example-snap": "workspace:^" "@metamask/ethers-js-example-snap": "workspace:^" "@metamask/file-upload-example-snap": "workspace:^" @@ -6214,20 +6239,20 @@ __metadata: "@types/jest": ^27.5.1 "@types/node": 18.14.2 "@types/webpack-env": ^1.18.1 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 bootstrap: ^5.2.2 copy-webpack-plugin: ^11.0.0 cross-env: ^7.0.3 css-loader: ^6.7.3 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 favicons: ^7.1.2 @@ -6296,26 +6321,26 @@ __metadata: "@jest/globals": ^29.5.0 "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/snaps-cli": "workspace:^" "@metamask/snaps-jest": "workspace:^" "@metamask/snaps-sdk": "workspace:^" "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 assemblyscript: ^0.27.5 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -6333,26 +6358,26 @@ __metadata: "@jest/globals": ^29.5.0 "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/snaps-jest": "workspace:^" "@metamask/snaps-sdk": "workspace:^" "@metamask/snaps-webpack-plugin": "workspace:^" "@swc/core": 1.3.78 "@swc/jest": ^0.2.26 "@types/webpack-env": ^1.18.1 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 deepmerge: ^4.2.2 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 jest: ^29.0.2 @@ -7748,10 +7773,10 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": - version: 7.0.11 - resolution: "@types/json-schema@npm:7.0.11" - checksum: 527bddfe62db9012fccd7627794bd4c71beb77601861055d87e3ee464f2217c85fca7a4b56ae677478367bbd248dbde13553312b7d4dbc702a2f2bbf60c4018d +"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.12, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": + version: 7.0.15 + resolution: "@types/json-schema@npm:7.0.15" + checksum: 97ed0cb44d4070aecea772b7b2e2ed971e10c81ec87dd4ecc160322ffa55ff330dace1793489540e3e318d90942064bb697cc0f8989391797792d919737b3b98 languageName: node linkType: hard @@ -8153,43 +8178,46 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^5.42.1": - version: 5.43.0 - resolution: "@typescript-eslint/eslint-plugin@npm:5.43.0" +"@typescript-eslint/eslint-plugin@npm:^6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/eslint-plugin@npm:6.21.0" dependencies: - "@typescript-eslint/scope-manager": 5.43.0 - "@typescript-eslint/type-utils": 5.43.0 - "@typescript-eslint/utils": 5.43.0 + "@eslint-community/regexpp": ^4.5.1 + "@typescript-eslint/scope-manager": 6.21.0 + "@typescript-eslint/type-utils": 6.21.0 + "@typescript-eslint/utils": 6.21.0 + "@typescript-eslint/visitor-keys": 6.21.0 debug: ^4.3.4 - ignore: ^5.2.0 - natural-compare-lite: ^1.4.0 - regexpp: ^3.2.0 - semver: ^7.3.7 - tsutils: ^3.21.0 + graphemer: ^1.4.0 + ignore: ^5.2.4 + natural-compare: ^1.4.0 + semver: ^7.5.4 + ts-api-utils: ^1.0.1 peerDependencies: - "@typescript-eslint/parser": ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + "@typescript-eslint/parser": ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: aa0e9bcd9982e9601ada2088f46c1e9389abd31ceaf6cd1d492684fd711a67d595d4c95d97ba14081c2ea7eb3b98a9ebb33f91ef008e7450ce2f70b2a8ec4309 + checksum: 5ef2c502255e643e98051e87eb682c2a257e87afd8ec3b9f6274277615e1c2caf3131b352244cfb1987b8b2c415645eeacb9113fa841fc4c9b2ac46e8aed6efd languageName: node linkType: hard -"@typescript-eslint/parser@npm:^5.42.1": - version: 5.43.0 - resolution: "@typescript-eslint/parser@npm:5.43.0" +"@typescript-eslint/parser@npm:^6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/parser@npm:6.21.0" dependencies: - "@typescript-eslint/scope-manager": 5.43.0 - "@typescript-eslint/types": 5.43.0 - "@typescript-eslint/typescript-estree": 5.43.0 + "@typescript-eslint/scope-manager": 6.21.0 + "@typescript-eslint/types": 6.21.0 + "@typescript-eslint/typescript-estree": 6.21.0 + "@typescript-eslint/visitor-keys": 6.21.0 debug: ^4.3.4 peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: a28e0ef2807f1c3381c6dc1d9ddfd83ea8db657d3f808511adf13023b469ed64fc09619e05d7f68746b05ea68770a0882883c77ce908682965ba266f95e168c9 + checksum: 162fe3a867eeeffda7328bce32dae45b52283c68c8cb23258fb9f44971f761991af61f71b8c9fe1aa389e93dfe6386f8509c1273d870736c507d76dd40647b68 languageName: node linkType: hard @@ -8203,20 +8231,40 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:5.43.0": - version: 5.43.0 - resolution: "@typescript-eslint/type-utils@npm:5.43.0" +"@typescript-eslint/scope-manager@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/scope-manager@npm:6.21.0" dependencies: - "@typescript-eslint/typescript-estree": 5.43.0 - "@typescript-eslint/utils": 5.43.0 + "@typescript-eslint/types": 6.21.0 + "@typescript-eslint/visitor-keys": 6.21.0 + checksum: 71028b757da9694528c4c3294a96cc80bc7d396e383a405eab3bc224cda7341b88e0fc292120b35d3f31f47beac69f7083196c70616434072fbcd3d3e62d3376 + languageName: node + linkType: hard + +"@typescript-eslint/scope-manager@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/scope-manager@npm:7.18.0" + dependencies: + "@typescript-eslint/types": 7.18.0 + "@typescript-eslint/visitor-keys": 7.18.0 + checksum: b982c6ac13d8c86bb3b949c6b4e465f3f60557c2ccf4cc229799827d462df56b9e4d3eaed7711d79b875422fc3d71ec1ebcb5195db72134d07c619e3c5506b57 + languageName: node + linkType: hard + +"@typescript-eslint/type-utils@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/type-utils@npm:6.21.0" + dependencies: + "@typescript-eslint/typescript-estree": 6.21.0 + "@typescript-eslint/utils": 6.21.0 debug: ^4.3.4 - tsutils: ^3.21.0 + ts-api-utils: ^1.0.1 peerDependencies: - eslint: "*" + eslint: ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 08dbc0b194d0ef1454a95d76c082503e04d9957e89a056068002e233f8d98113f50b2707f7c4b9b44f428e223d5b4485ee2b4df4e0cde354827c5edc92ede973 + checksum: 77025473f4d80acf1fafcce99c5c283e557686a61861febeba9c9913331f8a41e930bf5cd8b7a54db502a57b6eb8ea6d155cbd4f41349ed00e3d7aeb1f477ddc languageName: node linkType: hard @@ -8227,6 +8275,20 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/types@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/types@npm:6.21.0" + checksum: 9501b47d7403417af95fc1fb72b2038c5ac46feac0e1598a46bcb43e56a606c387e9dcd8a2a0abe174c91b509f2d2a8078b093786219eb9a01ab2fbf9ee7b684 + languageName: node + linkType: hard + +"@typescript-eslint/types@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/types@npm:7.18.0" + checksum: 7df2750cd146a0acd2d843208d69f153b458e024bbe12aab9e441ad2c56f47de3ddfeb329c4d1ea0079e2577fea4b8c1c1ce15315a8d49044586b04fedfe7a4d + languageName: node + linkType: hard + "@typescript-eslint/typescript-estree@npm:5.43.0": version: 5.43.0 resolution: "@typescript-eslint/typescript-estree@npm:5.43.0" @@ -8245,7 +8307,62 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:5.43.0, @typescript-eslint/utils@npm:^5.10.0": +"@typescript-eslint/typescript-estree@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/typescript-estree@npm:6.21.0" + dependencies: + "@typescript-eslint/types": 6.21.0 + "@typescript-eslint/visitor-keys": 6.21.0 + debug: ^4.3.4 + globby: ^11.1.0 + is-glob: ^4.0.3 + minimatch: 9.0.3 + semver: ^7.5.4 + ts-api-utils: ^1.0.1 + peerDependenciesMeta: + typescript: + optional: true + checksum: dec02dc107c4a541e14fb0c96148f3764b92117c3b635db3a577b5a56fc48df7a556fa853fb82b07c0663b4bf2c484c9f245c28ba3e17e5cb0918ea4cab2ea21 + languageName: node + linkType: hard + +"@typescript-eslint/typescript-estree@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/typescript-estree@npm:7.18.0" + dependencies: + "@typescript-eslint/types": 7.18.0 + "@typescript-eslint/visitor-keys": 7.18.0 + debug: ^4.3.4 + globby: ^11.1.0 + is-glob: ^4.0.3 + minimatch: ^9.0.4 + semver: ^7.6.0 + ts-api-utils: ^1.3.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: c82d22ec9654973944f779eb4eb94c52f4a6eafaccce2f0231ff7757313f3a0d0256c3252f6dfe6d43f57171d09656478acb49a629a9d0c193fb959bc3f36116 + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/utils@npm:6.21.0" + dependencies: + "@eslint-community/eslint-utils": ^4.4.0 + "@types/json-schema": ^7.0.12 + "@types/semver": ^7.5.0 + "@typescript-eslint/scope-manager": 6.21.0 + "@typescript-eslint/types": 6.21.0 + "@typescript-eslint/typescript-estree": 6.21.0 + semver: ^7.5.4 + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + checksum: b129b3a4aebec8468259f4589985cb59ea808afbfdb9c54f02fad11e17d185e2bf72bb332f7c36ec3c09b31f18fc41368678b076323e6e019d06f74ee93f7bf2 + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:^5.10.0": version: 5.43.0 resolution: "@typescript-eslint/utils@npm:5.43.0" dependencies: @@ -8263,6 +8380,20 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/utils@npm:^7.4.0": + version: 7.18.0 + resolution: "@typescript-eslint/utils@npm:7.18.0" + dependencies: + "@eslint-community/eslint-utils": ^4.4.0 + "@typescript-eslint/scope-manager": 7.18.0 + "@typescript-eslint/types": 7.18.0 + "@typescript-eslint/typescript-estree": 7.18.0 + peerDependencies: + eslint: ^8.56.0 + checksum: 751dbc816dab8454b7dc6b26a56671dbec08e3f4ef94c2661ce1c0fc48fa2d05a64e03efe24cba2c22d03ba943cd3c5c7a5e1b7b03bbb446728aec1c640bd767 + languageName: node + linkType: hard + "@typescript-eslint/visitor-keys@npm:5.43.0": version: 5.43.0 resolution: "@typescript-eslint/visitor-keys@npm:5.43.0" @@ -8273,6 +8404,33 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/visitor-keys@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/visitor-keys@npm:6.21.0" + dependencies: + "@typescript-eslint/types": 6.21.0 + eslint-visitor-keys: ^3.4.1 + checksum: 67c7e6003d5af042d8703d11538fca9d76899f0119130b373402819ae43f0bc90d18656aa7add25a24427ccf1a0efd0804157ba83b0d4e145f06107d7d1b7433 + languageName: node + linkType: hard + +"@typescript-eslint/visitor-keys@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/visitor-keys@npm:7.18.0" + dependencies: + "@typescript-eslint/types": 7.18.0 + eslint-visitor-keys: ^3.4.3 + checksum: 6e806a7cdb424c5498ea187a5a11d0fef7e4602a631be413e7d521e5aec1ab46ba00c76cfb18020adaa0a8c9802354a163bfa0deb74baa7d555526c7517bb158 + languageName: node + linkType: hard + +"@ungap/structured-clone@npm:^1.2.0": + version: 1.2.0 + resolution: "@ungap/structured-clone@npm:1.2.0" + checksum: 4f656b7b4672f2ce6e272f2427d8b0824ed11546a601d8d5412b9d7704e83db38a8d9f402ecdf2b9063fc164af842ad0ec4a55819f621ed7e7ea4d1efcc74524 + languageName: node + linkType: hard + "@vitest/spy@npm:^0.34.1": version: 0.34.3 resolution: "@vitest/spy@npm:0.34.3" @@ -9026,7 +9184,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.10.0, ajv@npm:^6.12.4, ajv@npm:^6.12.5": +"ajv@npm:^6.12.4, ajv@npm:^6.12.5": version: 6.12.6 resolution: "ajv@npm:6.12.6" dependencies: @@ -9202,6 +9360,13 @@ __metadata: languageName: node linkType: hard +"are-docs-informative@npm:^0.0.2": + version: 0.0.2 + resolution: "are-docs-informative@npm:0.0.2" + checksum: 7a48ca90d66e29afebc4387d7029d86cfe97bad7e796c8e7de01309e02dcfc027250231c02d4ca208d2984170d09026390b946df5d3d02ac638ab35f74501c74 + languageName: node + linkType: hard + "are-we-there-yet@npm:^3.0.0": version: 3.0.0 resolution: "are-we-there-yet@npm:3.0.0" @@ -9281,7 +9446,7 @@ __metadata: languageName: node linkType: hard -"array-includes@npm:^3.1.4, array-includes@npm:^3.1.5, array-includes@npm:^3.1.6": +"array-includes@npm:^3.1.5, array-includes@npm:^3.1.6": version: 3.1.6 resolution: "array-includes@npm:3.1.6" dependencies: @@ -9301,18 +9466,6 @@ __metadata: languageName: node linkType: hard -"array.prototype.flat@npm:^1.2.5": - version: 1.3.1 - resolution: "array.prototype.flat@npm:1.3.1" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - es-shim-unscopables: ^1.0.0 - checksum: 5a8415949df79bf6e01afd7e8839bbde5a3581300e8ad5d8449dea52639e9e59b26a467665622783697917b43bf39940a6e621877c7dd9b3d1c1f97484b9b88b - languageName: node - linkType: hard - "array.prototype.flatmap@npm:^1.3.1": version: 1.3.1 resolution: "array.prototype.flatmap@npm:1.3.1" @@ -10770,10 +10923,10 @@ __metadata: languageName: node linkType: hard -"comment-parser@npm:1.3.1": - version: 1.3.1 - resolution: "comment-parser@npm:1.3.1" - checksum: 421e6a113a3afd548500e7174ab46a2049dccf92e82bbaa3b209031b1bdf97552aabfa1ae2a120c0b62df17e1ba70e0d8b05d68504fee78e1ef974c59bcfe718 +"comment-parser@npm:1.4.1": + version: 1.4.1 + resolution: "comment-parser@npm:1.4.1" + checksum: e0f6f60c5139689c4b1b208ea63e0730d9195a778e90dd909205f74f00b39eb0ead05374701ec5e5c29d6f28eb778cd7bc41c1366ab1d271907f1def132d6bf1 languageName: node linkType: hard @@ -11309,7 +11462,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:2.6.9, debug@npm:^2.6.9": +"debug@npm:2.6.9": version: 2.6.9 resolution: "debug@npm:2.6.9" dependencies: @@ -12659,6 +12812,17 @@ __metadata: languageName: node linkType: hard +"eslint-compat-utils@npm:^0.5.1": + version: 0.5.1 + resolution: "eslint-compat-utils@npm:0.5.1" + dependencies: + semver: ^7.5.4 + peerDependencies: + eslint: ">=6.0.0" + checksum: beccf2a5bd7c7974e3584b269f8a02667c83bca64cfd4c866f3055867f187e78b00ee826721765bdee9b13efaaa248f8068c581f7bb05803e8f47abb116e68fc + languageName: node + linkType: hard + "eslint-config-prettier@npm:^8.5.0": version: 8.5.0 resolution: "eslint-config-prettier@npm:8.5.0" @@ -12670,112 +12834,105 @@ __metadata: languageName: node linkType: hard -"eslint-import-resolver-node@npm:^0.3.6": - version: 0.3.6 - resolution: "eslint-import-resolver-node@npm:0.3.6" - dependencies: - debug: ^3.2.7 - resolve: ^1.20.0 - checksum: 6266733af1e112970e855a5bcc2d2058fb5ae16ad2a6d400705a86b29552b36131ffc5581b744c23d550de844206fb55e9193691619ee4dbf225c4bde526b1c8 - languageName: node - linkType: hard - -"eslint-module-utils@npm:^2.7.3": - version: 2.7.4 - resolution: "eslint-module-utils@npm:2.7.4" +"eslint-import-resolver-node@npm:^0.3.9": + version: 0.3.9 + resolution: "eslint-import-resolver-node@npm:0.3.9" dependencies: debug: ^3.2.7 - peerDependenciesMeta: - eslint: - optional: true - checksum: 5da13645daff145a5c922896b258f8bba560722c3767254e458d894ff5fbb505d6dfd945bffa932a5b0ae06714da2379bd41011c4c20d2d59cc83e23895360f7 + is-core-module: ^2.13.0 + resolve: ^1.22.4 + checksum: 439b91271236b452d478d0522a44482e8c8540bf9df9bd744062ebb89ab45727a3acd03366a6ba2bdbcde8f9f718bab7fe8db64688aca75acf37e04eafd25e22 languageName: node linkType: hard -"eslint-plugin-es@npm:^4.1.0": - version: 4.1.0 - resolution: "eslint-plugin-es@npm:4.1.0" +"eslint-plugin-es-x@npm:^7.5.0": + version: 7.8.0 + resolution: "eslint-plugin-es-x@npm:7.8.0" dependencies: - eslint-utils: ^2.0.0 - regexpp: ^3.0.0 + "@eslint-community/eslint-utils": ^4.1.2 + "@eslint-community/regexpp": ^4.11.0 + eslint-compat-utils: ^0.5.1 peerDependencies: - eslint: ">=4.19.1" - checksum: 26b87a216d3625612b1d3ca8653ac8a1d261046d2a973bb0eb2759070267d2bfb0509051facdeb5ae03dc8dfb51a434be23aff7309a752ca901d637da535677f + eslint: ">=8" + checksum: c30fc6bd94f86781eaf34dec59e7d52ee68b8a12305ae76222d8d0ff6cc0a5c94e8306ed079b4234d64f7464bcd162a5fef59e7cc69a978ba77950e0395c79f8 languageName: node linkType: hard -"eslint-plugin-import@npm:^2.26.0": - version: 2.26.0 - resolution: "eslint-plugin-import@npm:2.26.0" +"eslint-plugin-import-x@npm:^0.5.1": + version: 0.5.3 + resolution: "eslint-plugin-import-x@npm:0.5.3" dependencies: - array-includes: ^3.1.4 - array.prototype.flat: ^1.2.5 - debug: ^2.6.9 - doctrine: ^2.1.0 - eslint-import-resolver-node: ^0.3.6 - eslint-module-utils: ^2.7.3 - has: ^1.0.3 - is-core-module: ^2.8.1 + "@typescript-eslint/utils": ^7.4.0 + debug: ^4.3.4 + doctrine: ^3.0.0 + eslint-import-resolver-node: ^0.3.9 + get-tsconfig: ^4.7.3 is-glob: ^4.0.3 - minimatch: ^3.1.2 - object.values: ^1.1.5 - resolve: ^1.22.0 - tsconfig-paths: ^3.14.1 + minimatch: ^9.0.3 + semver: ^7.6.0 + stable-hash: ^0.0.4 + tslib: ^2.6.2 peerDependencies: - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - checksum: 0bf77ad80339554481eafa2b1967449e1f816b94c7a6f9614ce33fb4083c4e6c050f10d241dd50b4975d47922880a34de1e42ea9d8e6fd663ebb768baa67e655 + eslint: ^8.56.0 || ^9.0.0-0 + checksum: b30039a8416cdbb2f3cc6d32efc631f55e7cc677830b37e204a845f872cad3b9a07ef4313d353068df9474f9ae4f9a101d64f0287fd7f6832778ba78e12fde15 languageName: node linkType: hard -"eslint-plugin-jest@npm:^27.1.5": - version: 27.1.5 - resolution: "eslint-plugin-jest@npm:27.1.5" +"eslint-plugin-jest@npm:^27.9.0": + version: 27.9.0 + resolution: "eslint-plugin-jest@npm:27.9.0" dependencies: "@typescript-eslint/utils": ^5.10.0 peerDependencies: - "@typescript-eslint/eslint-plugin": ^5.0.0 + "@typescript-eslint/eslint-plugin": ^5.0.0 || ^6.0.0 || ^7.0.0 eslint: ^7.0.0 || ^8.0.0 + jest: "*" peerDependenciesMeta: "@typescript-eslint/eslint-plugin": optional: true jest: optional: true - checksum: 7c9de765793f7161afa0bdcdce67f4d072944152880fa638b25d228188dcee47a4b4aada26c57db72bc10193c96a1979e17afb8a7c3e400e961d8adfbf23ddbe + checksum: e2a4b415105408de28ad146818fcc6f4e122f6a39c6b2216ec5c24a80393f1390298b20231b0467bc5fd730f6e24b05b89e1a6a3ce651fc159aa4174ecc233d0 languageName: node linkType: hard -"eslint-plugin-jsdoc@npm:^39.6.2": - version: 39.6.2 - resolution: "eslint-plugin-jsdoc@npm:39.6.2" +"eslint-plugin-jsdoc@npm:^47.0.2": + version: 47.0.2 + resolution: "eslint-plugin-jsdoc@npm:47.0.2" dependencies: - "@es-joy/jsdoccomment": ~0.36.0 - comment-parser: 1.3.1 + "@es-joy/jsdoccomment": ~0.41.0 + are-docs-informative: ^0.0.2 + comment-parser: 1.4.1 debug: ^4.3.4 escape-string-regexp: ^4.0.0 - esquery: ^1.4.0 - semver: ^7.3.8 - spdx-expression-parse: ^3.0.1 + esquery: ^1.5.0 + is-builtin-module: ^3.2.1 + semver: ^7.5.4 + spdx-expression-parse: ^4.0.0 peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - checksum: 613c541a644d441e5465139b2a1934842a29c701fb89f0380f105be28180c1fa2f3c08b421b134b87fef194d4fb4dab4006a972a084e476eebb14cf5bb9399fe + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 + checksum: 39ad7b746add79b0140d23b6c15c58df7f8e0912cbe10678f3acd76f0da38e2de9db39f741866dfa2ea698cc2f09c7f2e020f6136b52a22cd0b937e44722f1d4 languageName: node linkType: hard -"eslint-plugin-n@npm:^15.7.0": - version: 15.7.0 - resolution: "eslint-plugin-n@npm:15.7.0" +"eslint-plugin-n@npm:^16.6.2": + version: 16.6.2 + resolution: "eslint-plugin-n@npm:16.6.2" dependencies: + "@eslint-community/eslint-utils": ^4.4.0 builtins: ^5.0.1 - eslint-plugin-es: ^4.1.0 - eslint-utils: ^3.0.0 - ignore: ^5.1.1 - is-core-module: ^2.11.0 + eslint-plugin-es-x: ^7.5.0 + get-tsconfig: ^4.7.0 + globals: ^13.24.0 + ignore: ^5.2.4 + is-builtin-module: ^3.2.1 + is-core-module: ^2.12.1 minimatch: ^3.1.2 - resolve: ^1.22.1 - semver: ^7.3.8 + resolve: ^1.22.2 + semver: ^7.5.3 peerDependencies: eslint: ">=7.0.0" - checksum: cfbcc67e62adf27712afdeadf13223cb9717f95d4af8442056d9d4c97a8b88af76b7969f75deaac26fa98481023d6b7c9e43a28909e7f0468f40b3024b7bcfae + checksum: 3b468da0038cf25af582608983491b33ac2d481b6a94a0ff2e715d3b85e1ff8cb93df4cd67b689d520bea1bfb8f2b717f01606bf6b2ea19fe8f9c0999ea7057d languageName: node linkType: hard @@ -12847,22 +13004,13 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:^7.1.1": - version: 7.1.1 - resolution: "eslint-scope@npm:7.1.1" +"eslint-scope@npm:^7.2.2": + version: 7.2.2 + resolution: "eslint-scope@npm:7.2.2" dependencies: esrecurse: ^4.3.0 estraverse: ^5.2.0 - checksum: 9f6e974ab2db641ca8ab13508c405b7b859e72afe9f254e8131ff154d2f40c99ad4545ce326fd9fde3212ff29707102562a4834f1c48617b35d98c71a97fbf3e - languageName: node - linkType: hard - -"eslint-utils@npm:^2.0.0": - version: 2.1.0 - resolution: "eslint-utils@npm:2.1.0" - dependencies: - eslint-visitor-keys: ^1.1.0 - checksum: 27500938f348da42100d9e6ad03ae29b3de19ba757ae1a7f4a087bdcf83ac60949bbb54286492ca61fac1f5f3ac8692dd21537ce6214240bf95ad0122f24d71d + checksum: ec97dbf5fb04b94e8f4c5a91a7f0a6dd3c55e46bfc7bbcd0e3138c3a76977570e02ed89a1810c778dcd72072ff0e9621ba1379b4babe53921d71e2e4486fda3e languageName: node linkType: hard @@ -12877,13 +13025,6 @@ __metadata: languageName: node linkType: hard -"eslint-visitor-keys@npm:^1.1.0": - version: 1.3.0 - resolution: "eslint-visitor-keys@npm:1.3.0" - checksum: 37a19b712f42f4c9027e8ba98c2b06031c17e0c0a4c696cd429bd9ee04eb43889c446f2cd545e1ff51bef9593fcec94ecd2c2ef89129fcbbf3adadbef520376a - languageName: node - linkType: hard - "eslint-visitor-keys@npm:^2.0.0": version: 2.0.0 resolution: "eslint-visitor-keys@npm:2.0.0" @@ -12891,63 +13032,62 @@ __metadata: languageName: node linkType: hard -"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1": +"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": version: 3.4.3 resolution: "eslint-visitor-keys@npm:3.4.3" checksum: 36e9ef87fca698b6fd7ca5ca35d7b2b6eeaaf106572e2f7fd31c12d3bfdaccdb587bba6d3621067e5aece31c8c3a348b93922ab8f7b2cbc6aaab5e1d89040c60 languageName: node linkType: hard -"eslint@npm:^8.27.0": - version: 8.27.0 - resolution: "eslint@npm:8.27.0" +"eslint@npm:^8.57.0": + version: 8.57.0 + resolution: "eslint@npm:8.57.0" dependencies: - "@eslint/eslintrc": ^1.3.3 - "@humanwhocodes/config-array": ^0.11.6 + "@eslint-community/eslint-utils": ^4.2.0 + "@eslint-community/regexpp": ^4.6.1 + "@eslint/eslintrc": ^2.1.4 + "@eslint/js": 8.57.0 + "@humanwhocodes/config-array": ^0.11.14 "@humanwhocodes/module-importer": ^1.0.1 "@nodelib/fs.walk": ^1.2.8 - ajv: ^6.10.0 + "@ungap/structured-clone": ^1.2.0 + ajv: ^6.12.4 chalk: ^4.0.0 cross-spawn: ^7.0.2 debug: ^4.3.2 doctrine: ^3.0.0 escape-string-regexp: ^4.0.0 - eslint-scope: ^7.1.1 - eslint-utils: ^3.0.0 - eslint-visitor-keys: ^3.3.0 - espree: ^9.4.0 - esquery: ^1.4.0 + eslint-scope: ^7.2.2 + eslint-visitor-keys: ^3.4.3 + espree: ^9.6.1 + esquery: ^1.4.2 esutils: ^2.0.2 fast-deep-equal: ^3.1.3 file-entry-cache: ^6.0.1 find-up: ^5.0.0 glob-parent: ^6.0.2 - globals: ^13.15.0 - grapheme-splitter: ^1.0.4 + globals: ^13.19.0 + graphemer: ^1.4.0 ignore: ^5.2.0 - import-fresh: ^3.0.0 imurmurhash: ^0.1.4 is-glob: ^4.0.0 is-path-inside: ^3.0.3 - js-sdsl: ^4.1.4 js-yaml: ^4.1.0 json-stable-stringify-without-jsonify: ^1.0.1 levn: ^0.4.1 lodash.merge: ^4.6.2 minimatch: ^3.1.2 natural-compare: ^1.4.0 - optionator: ^0.9.1 - regexpp: ^3.2.0 + optionator: ^0.9.3 strip-ansi: ^6.0.1 - strip-json-comments: ^3.1.0 text-table: ^0.2.0 bin: eslint: bin/eslint.js - checksum: 153b022d309e1b647a73b1bb0fa98912add699b06e279084155f23c6f2b5fc5abd05411fc1ba81608a24bbfaf044ca079544c16fffa6fc987b8f676c9960a2c4 + checksum: 3a48d7ff85ab420a8447e9810d8087aea5b1df9ef68c9151732b478de698389ee656fd895635b5f2871c89ee5a2652b3f343d11e9db6f8486880374ebc74a2d9 languageName: node linkType: hard -"espree@npm:9.6.1, espree@npm:^9.4.0, espree@npm:^9.6.1": +"espree@npm:9.6.1, espree@npm:^9.6.0, espree@npm:^9.6.1": version: 9.6.1 resolution: "espree@npm:9.6.1" dependencies: @@ -12968,12 +13108,12 @@ __metadata: languageName: node linkType: hard -"esquery@npm:^1.4.0": - version: 1.4.0 - resolution: "esquery@npm:1.4.0" +"esquery@npm:^1.4.2, esquery@npm:^1.5.0": + version: 1.6.0 + resolution: "esquery@npm:1.6.0" dependencies: estraverse: ^5.1.0 - checksum: a0807e17abd7fbe5fbd4fab673038d6d8a50675cdae6b04fbaa520c34581be0c5fa24582990e8acd8854f671dd291c78bb2efb9e0ed5b62f33bac4f9cf820210 + checksum: 08ec4fe446d9ab27186da274d979558557fbdbbd10968fa9758552482720c54152a5640e08b9009e5a30706b66aba510692054d4129d32d0e12e05bbc0b96fb2 languageName: node linkType: hard @@ -14059,6 +14199,15 @@ __metadata: languageName: node linkType: hard +"get-tsconfig@npm:^4.7.0, get-tsconfig@npm:^4.7.3": + version: 4.7.6 + resolution: "get-tsconfig@npm:4.7.6" + dependencies: + resolve-pkg-maps: ^1.0.0 + checksum: ebfd86f0b356cde98e2a7afe63b58d92e02b8e413ff95551933d277702bf725386ee82c5c0092fe45fb2ba60002340c94ee70777b3220bbfeca83ab45dda1544 + languageName: node + linkType: hard + "get-uri@npm:^6.0.1": version: 6.0.1 resolution: "get-uri@npm:6.0.1" @@ -14218,12 +14367,12 @@ __metadata: languageName: node linkType: hard -"globals@npm:^13.15.0": - version: 13.18.0 - resolution: "globals@npm:13.18.0" +"globals@npm:^13.19.0, globals@npm:^13.24.0": + version: 13.24.0 + resolution: "globals@npm:13.24.0" dependencies: type-fest: ^0.20.2 - checksum: 9fdaa74cfd5d4ac91319662f512c29b11d1d2deb9c8a20d3998097671deba83d195f20730b2345887de3ddab958a6fa68952feed9ae836ee4594a82ace62fdb4 + checksum: 56066ef058f6867c04ff203b8a44c15b038346a62efbc3060052a1016be9f56f4cf0b2cd45b74b22b81e521a889fc7786c73691b0549c2f3a6e825b3d394f43c languageName: node linkType: hard @@ -14323,13 +14472,20 @@ __metadata: languageName: node linkType: hard -"grapheme-splitter@npm:^1.0.2, grapheme-splitter@npm:^1.0.4": +"grapheme-splitter@npm:^1.0.2": version: 1.0.4 resolution: "grapheme-splitter@npm:1.0.4" checksum: 0c22ec54dee1b05cd480f78cf14f732cb5b108edc073572c4ec205df4cd63f30f8db8025afc5debc8835a8ddeacf648a1c7992fe3dcd6ad38f9a476d84906620 languageName: node linkType: hard +"graphemer@npm:^1.4.0": + version: 1.4.0 + resolution: "graphemer@npm:1.4.0" + checksum: bab8f0be9b568857c7bec9fda95a89f87b783546d02951c40c33f84d05bb7da3fd10f863a9beb901463669b6583173a8c8cc6d6b306ea2b9b9d5d3d943c3a673 + languageName: node + linkType: hard + "handle-thing@npm:^2.0.0": version: 2.0.1 resolution: "handle-thing@npm:2.0.1" @@ -14436,12 +14592,12 @@ __metadata: languageName: node linkType: hard -"hasown@npm:^2.0.0": - version: 2.0.0 - resolution: "hasown@npm:2.0.0" +"hasown@npm:^2.0.0, hasown@npm:^2.0.2": + version: 2.0.2 + resolution: "hasown@npm:2.0.2" dependencies: function-bind: ^1.1.2 - checksum: 6151c75ca12554565098641c98a40f4cc86b85b0fd5b6fe92360967e4605a4f9610f7757260b4e8098dd1c2ce7f4b095f2006fe72a570e3b6d2d28de0298c176 + checksum: e8516f776a15149ca6c6ed2ae3110c417a00b62260e222590e54aa367cbcd6ed99122020b37b7fbdf05748df57b265e70095d7bf35a47660587619b15ffb93db languageName: node linkType: hard @@ -14805,7 +14961,7 @@ __metadata: languageName: node linkType: hard -"import-fresh@npm:^3.0.0, import-fresh@npm:^3.2.1": +"import-fresh@npm:^3.2.1": version: 3.3.0 resolution: "import-fresh@npm:3.3.0" dependencies: @@ -15102,12 +15258,12 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.11.0, is-core-module@npm:^2.12.0, is-core-module@npm:^2.13.0, is-core-module@npm:^2.8.1, is-core-module@npm:^2.9.0": - version: 2.13.0 - resolution: "is-core-module@npm:2.13.0" +"is-core-module@npm:^2.12.0, is-core-module@npm:^2.12.1, is-core-module@npm:^2.13.0, is-core-module@npm:^2.8.1, is-core-module@npm:^2.9.0": + version: 2.15.0 + resolution: "is-core-module@npm:2.15.0" dependencies: - has: ^1.0.3 - checksum: 053ab101fb390bfeb2333360fd131387bed54e476b26860dc7f5a700bbf34a0ec4454f7c8c4d43e8a0030957e4b3db6e16d35e1890ea6fb654c833095e040355 + hasown: ^2.0.2 + checksum: a9f7a52707c9b59d7164094d183bda892514fc3ba3139f245219c7abe7f6e8d3e2cdcf861f52a891a467f785f1dfa5d549f73b0ee715f4ba56e8882d335ea585 languageName: node linkType: hard @@ -16140,13 +16296,6 @@ __metadata: languageName: node linkType: hard -"js-sdsl@npm:^4.1.4": - version: 4.1.5 - resolution: "js-sdsl@npm:4.1.5" - checksum: 695f657ddc5be462b97cac4e8e60f37de28d628ee0e23016baecff0bb584a18dddb5caeac537a775030f180b5afd62133ac4481e7024c8d03a62d73e4da0713e - languageName: node - linkType: hard - "js-sha3@npm:^0.5.7": version: 0.5.7 resolution: "js-sha3@npm:0.5.7" @@ -16191,10 +16340,10 @@ __metadata: languageName: node linkType: hard -"jsdoc-type-pratt-parser@npm:~3.1.0": - version: 3.1.0 - resolution: "jsdoc-type-pratt-parser@npm:3.1.0" - checksum: 2f437b57621f1e481918165f6cf0e48256628a9e510d8b3f88a2ab667bf2128bf8b94c628b57c43e78f555ca61983e9c282814703840dc091d2623992214a061 +"jsdoc-type-pratt-parser@npm:~4.0.0": + version: 4.0.0 + resolution: "jsdoc-type-pratt-parser@npm:4.0.0" + checksum: af0629c9517e484be778d8564440fec8de5b7610e0c9c88a3ba4554321364faf72b46689c8d8845faa12c0718437a9ed97e231977efc0f2d50e8a2dbad807eb3 languageName: node linkType: hard @@ -16971,15 +17120,6 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^6.0.0": - version: 6.0.0 - resolution: "lru-cache@npm:6.0.0" - dependencies: - yallist: ^4.0.0 - checksum: f97f499f898f23e4585742138a22f22526254fdba6d75d41a1c2526b3b6cc5747ef59c5612ba7375f42aca4f8461950e925ba08c991ead0651b4918b7c978297 - languageName: node - linkType: hard - "lru-cache@npm:^7.14.1, lru-cache@npm:^7.7.1": version: 7.18.3 resolution: "lru-cache@npm:7.18.3" @@ -17333,6 +17473,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:9.0.3": + version: 9.0.3 + resolution: "minimatch@npm:9.0.3" + dependencies: + brace-expansion: ^2.0.1 + checksum: 253487976bf485b612f16bf57463520a14f512662e592e95c571afdab1442a6a6864b6c88f248ce6fc4ff0b6de04ac7aa6c8bb51e868e99d1d65eb0658a708b5 + languageName: node + linkType: hard + "minimatch@npm:^5.0.1, minimatch@npm:^5.1.0": version: 5.1.6 resolution: "minimatch@npm:5.1.6" @@ -17351,12 +17500,12 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^9.0.0, minimatch@npm:^9.0.1": - version: 9.0.1 - resolution: "minimatch@npm:9.0.1" +"minimatch@npm:^9.0.0, minimatch@npm:^9.0.1, minimatch@npm:^9.0.3, minimatch@npm:^9.0.4": + version: 9.0.5 + resolution: "minimatch@npm:9.0.5" dependencies: brace-expansion: ^2.0.1 - checksum: 97f5f5284bb57dc65b9415dec7f17a0f6531a33572193991c60ff18450dcfad5c2dad24ffeaf60b5261dccd63aae58cc3306e2209d57e7f88c51295a532d8ec3 + checksum: 2c035575eda1e50623c731ec6c14f65a85296268f749b9337005210bb2b34e2705f8ef1a358b188f69892286ab99dc42c8fb98a57bde55c8d81b3023c19cea28 languageName: node linkType: hard @@ -17745,13 +17894,6 @@ __metadata: languageName: node linkType: hard -"natural-compare-lite@npm:^1.4.0": - version: 1.4.0 - resolution: "natural-compare-lite@npm:1.4.0" - checksum: 5222ac3986a2b78dd6069ac62cbb52a7bf8ffc90d972ab76dfe7b01892485d229530ed20d0c62e79a6b363a663b273db3bde195a1358ce9e5f779d4453887225 - languageName: node - linkType: hard - "natural-compare@npm:^1.4.0": version: 1.4.0 resolution: "natural-compare@npm:1.4.0" @@ -18140,7 +18282,7 @@ __metadata: languageName: node linkType: hard -"object.values@npm:^1.1.5, object.values@npm:^1.1.6": +"object.values@npm:^1.1.6": version: 1.1.6 resolution: "object.values@npm:1.1.6" dependencies: @@ -18221,17 +18363,17 @@ __metadata: languageName: node linkType: hard -"optionator@npm:^0.9.1": - version: 0.9.1 - resolution: "optionator@npm:0.9.1" +"optionator@npm:^0.9.3": + version: 0.9.4 + resolution: "optionator@npm:0.9.4" dependencies: deep-is: ^0.1.3 fast-levenshtein: ^2.0.6 levn: ^0.4.1 prelude-ls: ^1.2.1 type-check: ^0.4.0 - word-wrap: ^1.2.3 - checksum: dbc6fa065604b24ea57d734261914e697bd73b69eff7f18e967e8912aa2a40a19a9f599a507fa805be6c13c24c4eae8c71306c239d517d42d4c041c942f508a0 + word-wrap: ^1.2.5 + checksum: ecbd010e3dc73e05d239976422d9ef54a82a13f37c11ca5911dff41c98a6c7f0f163b27f922c37e7f8340af9d36febd3b6e9cef508f3339d4c393d7276d716bb languageName: node linkType: hard @@ -19888,13 +20030,6 @@ __metadata: languageName: node linkType: hard -"regexpp@npm:^3.0.0, regexpp@npm:^3.2.0": - version: 3.2.0 - resolution: "regexpp@npm:3.2.0" - checksum: a78dc5c7158ad9ddcfe01aa9144f46e192ddbfa7b263895a70a5c6c73edd9ce85faf7c0430e59ac38839e1734e275b9c3de5c57ee3ab6edc0e0b1bdebefccef8 - languageName: node - linkType: hard - "regexpu-core@npm:^5.3.1": version: 5.3.1 resolution: "regexpu-core@npm:5.3.1" @@ -20015,6 +20150,13 @@ __metadata: languageName: node linkType: hard +"resolve-pkg-maps@npm:^1.0.0": + version: 1.0.0 + resolution: "resolve-pkg-maps@npm:1.0.0" + checksum: 1012afc566b3fdb190a6309cc37ef3b2dcc35dff5fa6683a9d00cd25c3247edfbc4691b91078c97adc82a29b77a2660c30d791d65dab4fc78bfc473f60289977 + languageName: node + linkType: hard + "resolve.exports@npm:^2.0.0": version: 2.0.2 resolution: "resolve.exports@npm:2.0.2" @@ -20022,7 +20164,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:1.22.8, resolve@npm:^1.1.4, resolve@npm:^1.10.0, resolve@npm:^1.13.1, resolve@npm:^1.14.2, resolve@npm:^1.17.0, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.0, resolve@npm:^1.22.1, resolve@npm:^1.22.3, resolve@npm:^1.4.0": +"resolve@npm:1.22.8, resolve@npm:^1.1.4, resolve@npm:^1.10.0, resolve@npm:^1.13.1, resolve@npm:^1.14.2, resolve@npm:^1.17.0, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.2, resolve@npm:^1.22.3, resolve@npm:^1.22.4, resolve@npm:^1.4.0": version: 1.22.8 resolution: "resolve@npm:1.22.8" dependencies: @@ -20048,7 +20190,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@1.22.8#~builtin, resolve@patch:resolve@^1.1.4#~builtin, resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.13.1#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.17.0#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin, resolve@patch:resolve@^1.22.3#~builtin, resolve@patch:resolve@^1.4.0#~builtin": +"resolve@patch:resolve@1.22.8#~builtin, resolve@patch:resolve@^1.1.4#~builtin, resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.13.1#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.17.0#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin, resolve@patch:resolve@^1.22.2#~builtin, resolve@patch:resolve@^1.22.3#~builtin, resolve@patch:resolve@^1.22.4#~builtin, resolve@patch:resolve@^1.4.0#~builtin": version: 1.22.8 resolution: "resolve@patch:resolve@npm%3A1.22.8#~builtin::version=1.22.8&hash=c3c19d" dependencies: @@ -20296,24 +20438,24 @@ __metadata: "@lavamoat/allow-scripts": ^3.0.4 "@metamask/auto-changelog": ^3.4.4 "@metamask/create-release-branch": ^3.0.0 - "@metamask/eslint-config": ^12.1.0 - "@metamask/eslint-config-jest": ^12.1.0 - "@metamask/eslint-config-nodejs": ^12.1.0 - "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/eslint-config": ^13.0.0 + "@metamask/eslint-config-jest": ^13.0.0 + "@metamask/eslint-config-nodejs": ^13.0.0 + "@metamask/eslint-config-typescript": ^13.0.0 "@metamask/utils": ^9.1.0 "@swc/core": 1.3.78 "@types/jest": ^27.5.1 "@types/node": 18.14.2 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 chromedriver: ^127.0.0 depcheck: ^1.4.7 - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^27.1.5 - eslint-plugin-jsdoc: ^39.6.2 - eslint-plugin-n: ^15.7.0 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-jsdoc: ^47.0.2 + eslint-plugin-n: ^16.6.2 eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 execa: ^5.1.1 @@ -20499,14 +20641,12 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.3, semver@npm:^7.5.4": - version: 7.6.0 - resolution: "semver@npm:7.6.0" - dependencies: - lru-cache: ^6.0.0 +"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0": + version: 7.6.3 + resolution: "semver@npm:7.6.3" bin: semver: bin/semver.js - checksum: 7427f05b70786c696640edc29fdd4bc33b2acf3bbe1740b955029044f80575fc664e1a512e4113c3af21e767154a94b4aa214bf6cd6e42a1f6dba5914e0b208c + checksum: 4110ec5d015c9438f322257b1c51fe30276e5f766a3f64c09edd1d7ea7118ecbc3f379f3b69032bacf13116dc7abc4ad8ce0d7e2bd642e26b0d271b56b61a7d8 languageName: node linkType: hard @@ -21016,7 +21156,7 @@ __metadata: languageName: node linkType: hard -"spdx-expression-parse@npm:^3.0.0, spdx-expression-parse@npm:^3.0.1": +"spdx-expression-parse@npm:^3.0.0": version: 3.0.1 resolution: "spdx-expression-parse@npm:3.0.1" dependencies: @@ -21026,6 +21166,16 @@ __metadata: languageName: node linkType: hard +"spdx-expression-parse@npm:^4.0.0": + version: 4.0.0 + resolution: "spdx-expression-parse@npm:4.0.0" + dependencies: + spdx-exceptions: ^2.1.0 + spdx-license-ids: ^3.0.0 + checksum: 936be681fbf5edeec3a79c023136479f70d6edb3fd3875089ac86cd324c6c8c81add47399edead296d1d0af17ae5ce88c7f88885eb150b62c2ff6e535841ca6a + languageName: node + linkType: hard + "spdx-license-ids@npm:^3.0.0": version: 3.0.7 resolution: "spdx-license-ids@npm:3.0.7" @@ -21108,6 +21258,13 @@ __metadata: languageName: node linkType: hard +"stable-hash@npm:^0.0.4": + version: 0.0.4 + resolution: "stable-hash@npm:0.0.4" + checksum: 21c039d21c1cb739cf8342561753a5e007cb95ea682ccd452e76310bbb9c6987a89de8eda023e320b019f3e4691aabda75079cdbb7dadf7ab9013e931f2f23cd + languageName: node + linkType: hard + "stack-utils@npm:^2.0.3": version: 2.0.6 resolution: "stack-utils@npm:2.0.6" @@ -21397,7 +21554,7 @@ __metadata: languageName: node linkType: hard -"strip-json-comments@npm:3.1.1, strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1": +"strip-json-comments@npm:3.1.1, strip-json-comments@npm:^3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 @@ -21866,6 +22023,15 @@ __metadata: languageName: node linkType: hard +"ts-api-utils@npm:^1.0.1, ts-api-utils@npm:^1.3.0": + version: 1.3.0 + resolution: "ts-api-utils@npm:1.3.0" + peerDependencies: + typescript: ">=4.2.0" + checksum: c746ddabfdffbf16cb0b0db32bb287236a19e583057f8649ee7c49995bb776e1d3ef384685181c11a1a480369e022ca97512cb08c517b2d2bd82c83754c97012 + languageName: node + linkType: hard + "ts-interface-checker@npm:^0.1.9": version: 0.1.13 resolution: "ts-interface-checker@npm:0.1.13" @@ -22024,10 +22190,10 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0": - version: 2.5.2 - resolution: "tslib@npm:2.5.2" - checksum: 4d3c1e238b94127ed0e88aa0380db3c2ddae581dc0f4bae5a982345e9f50ee5eda90835b8bfba99b02df10a5734470be197158c36f9129ac49fdc14a6a9da222 +"tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.6.2": + version: 2.6.3 + resolution: "tslib@npm:2.6.3" + checksum: 74fce0e100f1ebd95b8995fbbd0e6c91bdd8f4c35c00d4da62e285a3363aaa534de40a80db30ecfd388ed7c313c42d930ee0eaf108e8114214b180eec3dbe6f5 languageName: node linkType: hard @@ -23255,10 +23421,10 @@ __metadata: languageName: node linkType: hard -"word-wrap@npm:^1.2.3": - version: 1.2.4 - resolution: "word-wrap@npm:1.2.4" - checksum: 8f1f2e0a397c0e074ca225ba9f67baa23f99293bc064e31355d426ae91b8b3f6b5f6c1fc9ae5e9141178bb362d563f55e62fd8d5c31f2a77e3ade56cb3e35bd1 +"word-wrap@npm:^1.2.5": + version: 1.2.5 + resolution: "word-wrap@npm:1.2.5" + checksum: f93ba3586fc181f94afdaff3a6fef27920b4b6d9eaefed0f428f8e07adea2a7f54a5f2830ce59406c8416f033f86902b91eb824072354645eea687dff3691ccb languageName: node linkType: hard