diff --git a/packages/create-snap/src/cmds/init/initHandler.ts b/packages/create-snap/src/cmds/init/initHandler.ts index ed55ffee78..fc45d2c657 100644 --- a/packages/create-snap/src/cmds/init/initHandler.ts +++ b/packages/create-snap/src/cmds/init/initHandler.ts @@ -1,4 +1,3 @@ -// eslint-disable-next-line import/no-extraneous-dependencies import cliPackageJson from '@metamask/create-snap/package.json'; import type { NpmSnapPackageJson } from '@metamask/snaps-utils'; import { diff --git a/packages/create-snap/src/types/yargs.d.ts b/packages/create-snap/src/types/yargs.d.ts index a107ce6f2c..9d11ba25d2 100644 --- a/packages/create-snap/src/types/yargs.d.ts +++ b/packages/create-snap/src/types/yargs.d.ts @@ -1,6 +1,6 @@ import type { Options } from 'yargs'; -// eslint-disable-next-line @typescript-eslint/ban-types +// eslint-disable-next-line @typescript-eslint/no-empty-object-type type OptionalArguments = Type & { /** Non-option arguments */ _?: (string | number)[]; diff --git a/packages/examples/package.json b/packages/examples/package.json index 03697aed61..0b05e114d7 100644 --- a/packages/examples/package.json +++ b/packages/examples/package.json @@ -20,7 +20,7 @@ "sideEffects": false, "files": [], "scripts": { - "build": "yarn workspaces foreach --worktree --parallel --verbose --no-private run build", + "build": "yarn workspaces filter --include 'packages/examples/packages/**' --parallel --no-private run build", "build:clean": "yarn clean && yarn build", "changelog:validate": "../../scripts/validate-changelog.sh @metamask/example-snaps", "changelog:validates": "yarn workspaces foreach --worktree --parallel --verbose run changelog:validate", diff --git a/packages/examples/packages/bip32/src/index.ts b/packages/examples/packages/bip32/src/index.ts index b342c64a5c..f9a196c70b 100644 --- a/packages/examples/packages/bip32/src/index.ts +++ b/packages/examples/packages/bip32/src/index.ts @@ -46,7 +46,6 @@ export const onRpcRequest: OnRpcRequestHandler = async ({ request }) => { const { message, curve, ...params } = request.params as SignMessageParams; if (!message || typeof message !== 'string') { - // eslint-disable-next-line @typescript-eslint/no-throw-literal throw new InvalidParamsError(`Invalid signature data: "${message}".`); } @@ -74,7 +73,6 @@ export const onRpcRequest: OnRpcRequestHandler = async ({ request }) => { }); if (!approved) { - // eslint-disable-next-line @typescript-eslint/no-throw-literal throw new UserRejectedRequestError(); } @@ -100,7 +98,6 @@ export const onRpcRequest: OnRpcRequestHandler = async ({ request }) => { } default: - // eslint-disable-next-line @typescript-eslint/no-throw-literal throw new MethodNotFoundError({ method: request.method }); } }; diff --git a/packages/examples/packages/bip44/src/index.ts b/packages/examples/packages/bip44/src/index.ts index 0efbe9a89d..4025ea5155 100644 --- a/packages/examples/packages/bip44/src/index.ts +++ b/packages/examples/packages/bip44/src/index.ts @@ -59,7 +59,6 @@ export const onRpcRequest: OnRpcRequestHandler = async ({ request }) => { }); if (!approved) { - // eslint-disable-next-line @typescript-eslint/no-throw-literal throw new UserRejectedRequestError(); } @@ -68,7 +67,6 @@ export const onRpcRequest: OnRpcRequestHandler = async ({ request }) => { } default: - // eslint-disable-next-line @typescript-eslint/no-throw-literal throw new MethodNotFoundError({ method: request.method }); } }; diff --git a/packages/examples/packages/browserify-plugin/scripts/build.ts b/packages/examples/packages/browserify-plugin/scripts/build.ts index 074091000c..2c78e3689d 100644 --- a/packages/examples/packages/browserify-plugin/scripts/build.ts +++ b/packages/examples/packages/browserify-plugin/scripts/build.ts @@ -31,7 +31,7 @@ async function main() { // For this example we use Babel to transpile the TypeScript code to // JavaScript. - // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires + // eslint-disable-next-line @typescript-eslint/no-require-imports, n/global-require bundler.transform(require('babelify'), { ...babelConfig, extensions: ['.js', '.ts'], diff --git a/packages/examples/packages/browserify-plugin/src/index.ts b/packages/examples/packages/browserify-plugin/src/index.ts index 9d9669a1ad..9df9df4067 100644 --- a/packages/examples/packages/browserify-plugin/src/index.ts +++ b/packages/examples/packages/browserify-plugin/src/index.ts @@ -23,7 +23,6 @@ export const onRpcRequest: OnRpcRequestHandler = async ({ request }) => { return 'Hello from Browserify!'; default: { - // eslint-disable-next-line @typescript-eslint/no-throw-literal throw new MethodNotFoundError({ method: request.method }); } } diff --git a/packages/examples/packages/browserify/src/index.ts b/packages/examples/packages/browserify/src/index.ts index 9d008cf841..92f1bbee41 100644 --- a/packages/examples/packages/browserify/src/index.ts +++ b/packages/examples/packages/browserify/src/index.ts @@ -25,7 +25,6 @@ export const onRpcRequest: OnRpcRequestHandler = async ({ request }) => { return 'Hello from the MetaMask Snaps CLI using Browserify!'; default: { - // eslint-disable-next-line @typescript-eslint/no-throw-literal throw new MethodNotFoundError({ method: request.method }); } } diff --git a/packages/examples/packages/client-status/src/index.ts b/packages/examples/packages/client-status/src/index.ts index 8c85ec82fa..7cfead5220 100644 --- a/packages/examples/packages/client-status/src/index.ts +++ b/packages/examples/packages/client-status/src/index.ts @@ -23,7 +23,6 @@ export const onRpcRequest: OnRpcRequestHandler = async ({ request }) => { } default: - // eslint-disable-next-line @typescript-eslint/no-throw-literal throw new MethodNotFoundError({ method: request.method }); } }; diff --git a/packages/examples/packages/cronjobs/src/index.ts b/packages/examples/packages/cronjobs/src/index.ts index 1aa24ad4d0..4e92488be1 100644 --- a/packages/examples/packages/cronjobs/src/index.ts +++ b/packages/examples/packages/cronjobs/src/index.ts @@ -50,7 +50,6 @@ export const onCronjob: OnCronjobHandler = async ({ request }) => { }, }); default: - // eslint-disable-next-line @typescript-eslint/no-throw-literal throw new MethodNotFoundError({ method: request.method }); } }; @@ -105,7 +104,6 @@ export const onRpcRequest: OnRpcRequestHandler = async ({ request }) => { method: 'snap_getBackgroundEvents', }); default: - // eslint-disable-next-line @typescript-eslint/no-throw-literal throw new MethodNotFoundError({ method: request.method }); } }; diff --git a/packages/examples/packages/dialogs/src/index.tsx b/packages/examples/packages/dialogs/src/index.tsx index dce8676b44..a1849576e3 100644 --- a/packages/examples/packages/dialogs/src/index.tsx +++ b/packages/examples/packages/dialogs/src/index.tsx @@ -91,7 +91,6 @@ export const onRpcRequest: OnRpcRequestHandler = async ({ request }) => { }); default: - // eslint-disable-next-line @typescript-eslint/no-throw-literal throw new MethodNotFoundError({ method: request.method }); } }; diff --git a/packages/examples/packages/ethereum-provider/src/index.ts b/packages/examples/packages/ethereum-provider/src/index.ts index 0683c38f1e..0f10af988a 100644 --- a/packages/examples/packages/ethereum-provider/src/index.ts +++ b/packages/examples/packages/ethereum-provider/src/index.ts @@ -230,7 +230,6 @@ export const onRpcRequest: OnRpcRequestHandler = async ({ request }) => { } default: - // eslint-disable-next-line @typescript-eslint/no-throw-literal throw new MethodNotFoundError({ method: request.method }); } }; diff --git a/packages/examples/packages/ethers-js/src/index.ts b/packages/examples/packages/ethers-js/src/index.ts index 1fcbfbb9d4..30cab5bce8 100644 --- a/packages/examples/packages/ethers-js/src/index.ts +++ b/packages/examples/packages/ethers-js/src/index.ts @@ -56,7 +56,6 @@ export const onRpcRequest: OnRpcRequestHandler = async ({ request }) => { }); if (!result) { - // eslint-disable-next-line @typescript-eslint/no-throw-literal throw new UserRejectedRequestError(); } @@ -64,7 +63,6 @@ export const onRpcRequest: OnRpcRequestHandler = async ({ request }) => { } default: - // eslint-disable-next-line @typescript-eslint/no-throw-literal throw new MethodNotFoundError({ method: request.method }); } }; diff --git a/packages/examples/packages/file-upload/src/index.tsx b/packages/examples/packages/file-upload/src/index.tsx index fdbf69a5ee..0b169603eb 100644 --- a/packages/examples/packages/file-upload/src/index.tsx +++ b/packages/examples/packages/file-upload/src/index.tsx @@ -44,7 +44,6 @@ export const onRpcRequest: OnRpcRequestHandler = async ({ request }) => { } default: - // eslint-disable-next-line @typescript-eslint/no-throw-literal throw new MethodNotFoundError({ method: request.method, }); diff --git a/packages/examples/packages/get-entropy/src/index.ts b/packages/examples/packages/get-entropy/src/index.ts index df92a9417a..4a680d2e07 100644 --- a/packages/examples/packages/get-entropy/src/index.ts +++ b/packages/examples/packages/get-entropy/src/index.ts @@ -48,7 +48,6 @@ export const onRpcRequest: OnRpcRequestHandler = async ({ request }) => { }); if (!approved) { - // eslint-disable-next-line @typescript-eslint/no-throw-literal throw new UserRejectedRequestError(); } @@ -58,7 +57,6 @@ export const onRpcRequest: OnRpcRequestHandler = async ({ request }) => { } default: - // eslint-disable-next-line @typescript-eslint/no-throw-literal throw new MethodNotFoundError({ method: request.method }); } }; diff --git a/packages/examples/packages/get-file/src/index.ts b/packages/examples/packages/get-file/src/index.ts index 725ed55dd1..c405fc871d 100644 --- a/packages/examples/packages/get-file/src/index.ts +++ b/packages/examples/packages/get-file/src/index.ts @@ -47,7 +47,6 @@ export const onRpcRequest: OnRpcRequestHandler = async ({ request }) => { } default: - // eslint-disable-next-line @typescript-eslint/no-throw-literal throw new MethodNotFoundError({ method: request.method }); } }; diff --git a/packages/examples/packages/images/src/index.ts b/packages/examples/packages/images/src/index.ts index 8909c0123e..42e71a7f17 100644 --- a/packages/examples/packages/images/src/index.ts +++ b/packages/examples/packages/images/src/index.ts @@ -104,7 +104,6 @@ export const onRpcRequest: OnRpcRequestHandler = async ({ request }) => { } default: - // eslint-disable-next-line @typescript-eslint/no-throw-literal throw new MethodNotFoundError({ method: request.method }); } }; diff --git a/packages/examples/packages/interactive-ui/src/index.tsx b/packages/examples/packages/interactive-ui/src/index.tsx index 3ae16c6e8a..ca6adb02f5 100644 --- a/packages/examples/packages/interactive-ui/src/index.tsx +++ b/packages/examples/packages/interactive-ui/src/index.tsx @@ -42,7 +42,6 @@ export const onRpcRequest: OnRpcRequestHandler = async ({ request }) => { } default: - // eslint-disable-next-line @typescript-eslint/no-throw-literal throw new MethodNotFoundError({ method: request.method, }); diff --git a/packages/examples/packages/invoke-snap/packages/consumer-signer/src/index.ts b/packages/examples/packages/invoke-snap/packages/consumer-signer/src/index.ts index 54700277ba..29d803a100 100644 --- a/packages/examples/packages/invoke-snap/packages/consumer-signer/src/index.ts +++ b/packages/examples/packages/invoke-snap/packages/consumer-signer/src/index.ts @@ -77,7 +77,6 @@ export const onRpcRequest: OnRpcRequestHandler = async ({ request }) => { } default: - // eslint-disable-next-line @typescript-eslint/no-throw-literal throw new MethodNotFoundError({ method: request.method }); } }; diff --git a/packages/examples/packages/invoke-snap/packages/core-signer/src/index.ts b/packages/examples/packages/invoke-snap/packages/core-signer/src/index.ts index 053784a928..135bffc426 100644 --- a/packages/examples/packages/invoke-snap/packages/core-signer/src/index.ts +++ b/packages/examples/packages/invoke-snap/packages/core-signer/src/index.ts @@ -71,7 +71,6 @@ export const onRpcRequest: OnRpcRequestHandler = async ({ request }) => { }); if (!approved) { - // eslint-disable-next-line @typescript-eslint/no-throw-literal throw new UserRejectedRequestError(); } @@ -84,7 +83,6 @@ export const onRpcRequest: OnRpcRequestHandler = async ({ request }) => { } default: - // eslint-disable-next-line @typescript-eslint/no-throw-literal throw new MethodNotFoundError({ method: request.method }); } }; diff --git a/packages/examples/packages/invoke-snap/tsconfig.json b/packages/examples/packages/invoke-snap/tsconfig.json index db2f8bd154..8e46d851e8 100644 --- a/packages/examples/packages/invoke-snap/tsconfig.json +++ b/packages/examples/packages/invoke-snap/tsconfig.json @@ -2,6 +2,13 @@ "extends": "../../tsconfig.json", "compilerOptions": { "baseUrl": "./", - "composite": false + "composite": false, + "module": "CommonJS", + "moduleResolution": "Node10", + "paths": { + "@metamask/snaps-sdk/jsx-dev-runtime": ["../../../../../snaps-sdk/src/jsx/jsx-dev-runtime.ts", "../../../snaps-sdk/src/jsx/jsx-dev-runtime.ts", "../snaps-sdk/src/jsx/jsx-dev-runtime.ts"], + "@metamask/snaps-sdk/jsx": ["../../../../../snaps-sdk/src/jsx", "../../../snaps-sdk/src/jsx", "../snaps-sdk/src/jsx"], + "@metamask/snaps-sdk": ["../../../../../snaps-sdk/src", "../../../snaps-sdk/src", "../snaps-sdk/src"] + } } } diff --git a/packages/examples/packages/json-rpc/src/index.ts b/packages/examples/packages/json-rpc/src/index.ts index 3493394e80..cae6a1033c 100644 --- a/packages/examples/packages/json-rpc/src/index.ts +++ b/packages/examples/packages/json-rpc/src/index.ts @@ -61,7 +61,6 @@ export const onRpcRequest: OnRpcRequestHandler = async ({ request }) => { } default: - // eslint-disable-next-line @typescript-eslint/no-throw-literal throw new MethodNotFoundError({ method: request.method }); } }; diff --git a/packages/examples/packages/localization/src/index.ts b/packages/examples/packages/localization/src/index.ts index 092ede4388..d8d2e3c574 100644 --- a/packages/examples/packages/localization/src/index.ts +++ b/packages/examples/packages/localization/src/index.ts @@ -23,7 +23,6 @@ export const onRpcRequest: OnRpcRequestHandler = async ({ request }) => { return await getMessage('hello'); default: - // eslint-disable-next-line @typescript-eslint/no-throw-literal throw new MethodNotFoundError({ method: request.method }); } }; diff --git a/packages/examples/packages/manage-state/src/index.ts b/packages/examples/packages/manage-state/src/index.ts index 6b3fec410c..ee7fceb56e 100644 --- a/packages/examples/packages/manage-state/src/index.ts +++ b/packages/examples/packages/manage-state/src/index.ts @@ -92,7 +92,6 @@ export const onRpcRequest: OnRpcRequestHandler = async ({ request }) => { } default: - // eslint-disable-next-line @typescript-eslint/no-throw-literal throw new MethodNotFoundError({ method: request.method }); } }; diff --git a/packages/examples/packages/network-access/src/index.test.ts b/packages/examples/packages/network-access/src/index.test.ts index 1ae621160c..55c7655d4a 100644 --- a/packages/examples/packages/network-access/src/index.test.ts +++ b/packages/examples/packages/network-access/src/index.test.ts @@ -1,14 +1,9 @@ import { expect } from '@jest/globals'; -import { NodeProcessExecutionService } from '@metamask/snaps-controllers/node'; import { installSnap } from '@metamask/snaps-jest'; describe('onRpcRequest', () => { - // This test is disabled as it does not currently work - // TODO(ritave): Fix this test it('throws an error if the requested method does not exist', async () => { - const { request } = await installSnap({ - executionService: NodeProcessExecutionService, - }); + const { request } = await installSnap(); const response = await request({ method: 'foo', @@ -28,9 +23,7 @@ describe('onRpcRequest', () => { describe('fetch', () => { // This test is disabled as it is flaky. it.skip('fetches a URL and returns the JSON response', async () => { - const { request } = await installSnap({ - executionService: NodeProcessExecutionService, - }); + const { request } = await installSnap(); const url = 'https://dummyjson.com/http/200'; const response = await request({ diff --git a/packages/examples/packages/network-access/src/index.ts b/packages/examples/packages/network-access/src/index.ts index ee0041aeff..44b5ea9a3e 100644 --- a/packages/examples/packages/network-access/src/index.ts +++ b/packages/examples/packages/network-access/src/index.ts @@ -48,7 +48,6 @@ export const onRpcRequest: OnRpcRequestHandler = async ({ request }) => { } default: - // eslint-disable-next-line @typescript-eslint/no-throw-literal throw new MethodNotFoundError({ method: request.method }); } }; diff --git a/packages/examples/packages/notifications/src/index.tsx b/packages/examples/packages/notifications/src/index.tsx index 2a54940c6d..60e73228b2 100644 --- a/packages/examples/packages/notifications/src/index.tsx +++ b/packages/examples/packages/notifications/src/index.tsx @@ -64,7 +64,6 @@ export const onRpcRequest: OnRpcRequestHandler = async ({ request }) => { }); default: - // eslint-disable-next-line @typescript-eslint/no-throw-literal throw new MethodNotFoundError({ method: request.method }); } }; diff --git a/packages/examples/packages/preinstalled/scripts/generate-json.mts b/packages/examples/packages/preinstalled/scripts/generate-json.mts index 4beb8e2fee..272209342e 100644 --- a/packages/examples/packages/preinstalled/scripts/generate-json.mts +++ b/packages/examples/packages/preinstalled/scripts/generate-json.mts @@ -6,8 +6,6 @@ import { dirname, join } from 'path'; import { fileURLToPath } from 'url'; import createSpinner from 'yocto-spinner'; -// ESLint doesn't understand the JSON import type. -// eslint-disable-next-line import packageFile from '../package.json' with { type: 'json' }; const CURRENT_PATH = dirname(fileURLToPath(import.meta.url)); diff --git a/packages/examples/packages/preinstalled/src/index.tsx b/packages/examples/packages/preinstalled/src/index.tsx index 3132be492c..27cf61dad6 100644 --- a/packages/examples/packages/preinstalled/src/index.tsx +++ b/packages/examples/packages/preinstalled/src/index.tsx @@ -48,7 +48,6 @@ export const onRpcRequest: OnRpcRequestHandler = async ({ request }) => { }); default: - // eslint-disable-next-line @typescript-eslint/no-throw-literal throw new MethodNotFoundError({ method: request.method }); } }; diff --git a/packages/examples/packages/protocol/src/index.ts b/packages/examples/packages/protocol/src/index.ts index a47d0f7e47..533c135f15 100644 --- a/packages/examples/packages/protocol/src/index.ts +++ b/packages/examples/packages/protocol/src/index.ts @@ -57,7 +57,6 @@ export const onProtocolRequest: OnProtocolRequestHandler = async ({ } default: - // eslint-disable-next-line @typescript-eslint/no-throw-literal throw new MethodNotFoundError({ method: request.method }); } }; diff --git a/packages/examples/packages/rollup-plugin/src/index.ts b/packages/examples/packages/rollup-plugin/src/index.ts index f1074ced67..6fa78c93c7 100644 --- a/packages/examples/packages/rollup-plugin/src/index.ts +++ b/packages/examples/packages/rollup-plugin/src/index.ts @@ -23,7 +23,6 @@ export const onRpcRequest: OnRpcRequestHandler = async ({ request }) => { return 'Hello from Rollup!'; default: - // eslint-disable-next-line @typescript-eslint/no-throw-literal throw new MethodNotFoundError({ method: request.method }); } }; diff --git a/packages/examples/packages/wasm/src/index.ts b/packages/examples/packages/wasm/src/index.ts index b2184d123b..366aa1d0f8 100644 --- a/packages/examples/packages/wasm/src/index.ts +++ b/packages/examples/packages/wasm/src/index.ts @@ -4,12 +4,11 @@ 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 import * as program from '../build/program.wasm'; /** @@ -50,6 +49,5 @@ export const onRpcRequest: OnRpcRequestHandler = async ({ request }) => { return program[method](...params); } - // eslint-disable-next-line @typescript-eslint/no-throw-literal throw new MethodNotFoundError({ method: request.method }); }; 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/src/index.ts b/packages/examples/packages/webpack-plugin/src/index.ts index 18122f17b0..d8cf691baf 100644 --- a/packages/examples/packages/webpack-plugin/src/index.ts +++ b/packages/examples/packages/webpack-plugin/src/index.ts @@ -23,7 +23,6 @@ export const onRpcRequest: OnRpcRequestHandler = async ({ request }) => { return 'Hello from Webpack!'; default: - // eslint-disable-next-line @typescript-eslint/no-throw-literal throw new MethodNotFoundError({ method: request.method }); } }; diff --git a/packages/examples/tsconfig.json b/packages/examples/tsconfig.json index 6f6b4541a1..f35dba2e04 100644 --- a/packages/examples/tsconfig.json +++ b/packages/examples/tsconfig.json @@ -1,6 +1,14 @@ { "extends": "../../tsconfig.packages.json", "compilerOptions": { - "baseUrl": "./" + "baseUrl": "./", + "composite": false, + "module": "CommonJS", + "moduleResolution": "Node10", + "paths": { + "@metamask/snaps-sdk/jsx-dev-runtime": ["../../../snaps-sdk/src/jsx/jsx-dev-runtime.ts", "../snaps-sdk/src/jsx/jsx-dev-runtime.ts"], + "@metamask/snaps-sdk/jsx": ["../../../snaps-sdk/src/jsx", "../snaps-sdk/src/jsx"], + "@metamask/snaps-sdk": ["../../../snaps-sdk/src", "../snaps-sdk/src"], + } } } 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..33ce8a7202 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,3 @@ -// eslint-disable-next-line import/unambiguous declare module 'readable-stream' { export type { DuplexOptions, diff --git a/packages/snaps-cli/src/cli.ts b/packages/snaps-cli/src/cli.ts index 180c37ed20..a628bf44b4 100644 --- a/packages/snaps-cli/src/cli.ts +++ b/packages/snaps-cli/src/cli.ts @@ -1,4 +1,3 @@ -// eslint-disable-next-line import/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/__test__/snap.js b/packages/snaps-cli/src/commands/build/__test__/snap.js index 35106303a5..42ab4ffd50 100644 --- a/packages/snaps-cli/src/commands/build/__test__/snap.js +++ b/packages/snaps-cli/src/commands/build/__test__/snap.js @@ -1,5 +1,4 @@ module.exports.onRpcRequest = ({ request }) => { - // eslint-disable-next-line no-console console.log('Hello, world!'); const { method, id } = request; diff --git a/packages/snaps-cli/src/types/yargs.d.ts b/packages/snaps-cli/src/types/yargs.d.ts index cfcfe31003..5362dcded2 100644 --- a/packages/snaps-cli/src/types/yargs.d.ts +++ b/packages/snaps-cli/src/types/yargs.d.ts @@ -2,7 +2,7 @@ import type { Options } from 'yargs'; import type { ProcessedConfig } from '../config'; -// eslint-disable-next-line @typescript-eslint/ban-types +// eslint-disable-next-line @typescript-eslint/no-empty-object-type type OptionalArguments = Type & { /** Non-option arguments */ _?: (string | number)[]; diff --git a/packages/snaps-cli/src/webpack/loaders/browserify.ts b/packages/snaps-cli/src/webpack/loaders/browserify.ts index 2b461a665a..c361a4a7c2 100644 --- a/packages/snaps-cli/src/webpack/loaders/browserify.ts +++ b/packages/snaps-cli/src/webpack/loaders/browserify.ts @@ -39,7 +39,7 @@ const loader: LoaderDefinitionFunction = async function ( // We need to statically import all Browserify transforms, and all Babel // presets and plugins, and calling `require` is the sanest way to do that. - /* eslint-disable @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires, n/global-require */ + /* eslint-disable @typescript-eslint/no-require-imports, n/global-require */ bundler.transform(require('babelify'), { global: transpilationMode === TranspilationModes.LocalAndDeps, extensions: ['.js', '.jsx', '.ts', '.tsx'], @@ -63,7 +63,7 @@ const loader: LoaderDefinitionFunction = async function ( ], ...(babelifyOptions as any), }); - /* eslint-enable @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires, n/global-require */ + /* eslint-enable @typescript-eslint/no-require-imports, n/global-require */ } config.bundlerCustomizer?.(bundler); diff --git a/packages/snaps-cli/src/webpack/loaders/wasm.ts b/packages/snaps-cli/src/webpack/loaders/wasm.ts index 82641fd77c..7a6d55afc0 100644 --- a/packages/snaps-cli/src/webpack/loaders/wasm.ts +++ b/packages/snaps-cli/src/webpack/loaders/wasm.ts @@ -1,5 +1,3 @@ -/* eslint-disable no-restricted-globals */ - import { assert, bytesToBase64 } from '@metamask/utils'; import { dirname, resolve } from 'path'; import type { LoaderDefinitionFunction } from 'webpack'; @@ -82,7 +80,6 @@ const loader: LoaderDefinitionFunction = async function loader( const wasmModule = await WebAssembly.compile(source); - // eslint-disable-next-line @typescript-eslint/no-shadow const exports = WebAssembly.Module.exports(wasmModule); const imports = WebAssembly.Module.imports(wasmModule).reduce< Record diff --git a/packages/snaps-cli/src/webpack/utils.ts b/packages/snaps-cli/src/webpack/utils.ts index efe2dcfed1..85bc49bafc 100644 --- a/packages/snaps-cli/src/webpack/utils.ts +++ b/packages/snaps-cli/src/webpack/utils.ts @@ -12,7 +12,6 @@ import { browserify, getFunctionLoader } from './loaders'; export const BROWSERSLIST_FILE = resolve( dirname( - // eslint-disable-next-line n/no-extraneous-require require.resolve('@metamask/snaps-cli/package.json'), ), '.browserslistrc', diff --git a/packages/snaps-controllers/react-native.d.ts b/packages/snaps-controllers/react-native.d.ts index 7ba732f560..8dce37711c 100644 --- a/packages/snaps-controllers/react-native.d.ts +++ b/packages/snaps-controllers/react-native.d.ts @@ -1,3 +1 @@ -/* eslint-disable import/extensions */ - export * from './dist/react-native.cjs'; diff --git a/packages/snaps-controllers/react-native.js b/packages/snaps-controllers/react-native.js index 7671f8beb0..052b5578ad 100644 --- a/packages/snaps-controllers/react-native.js +++ b/packages/snaps-controllers/react-native.js @@ -1,5 +1,3 @@ -/* eslint-disable */ - // Re-exported for compatibility with build tools that don't support the // `exports` field in package.json module.exports = require('./dist/react-native.cjs'); diff --git a/packages/snaps-controllers/src/cronjob/CronjobController.ts b/packages/snaps-controllers/src/cronjob/CronjobController.ts index 8092b9d598..41109a98cc 100644 --- a/packages/snaps-controllers/src/cronjob/CronjobController.ts +++ b/packages/snaps-controllers/src/cronjob/CronjobController.ts @@ -213,7 +213,6 @@ export class CronjobController extends BaseController< const filteredSnaps = getRunnableSnaps(snaps); const jobs = filteredSnaps.map((snap) => this.#getSnapJobs(snap.id)); - // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion return jobs.flat().filter((job) => job !== undefined) as Cronjob[]; } 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.ts b/packages/snaps-controllers/src/services/AbstractExecutionService.ts index 53b64659d0..d64de608fa 100644 --- a/packages/snaps-controllers/src/services/AbstractExecutionService.ts +++ b/packages/snaps-controllers/src/services/AbstractExecutionService.ts @@ -447,8 +447,6 @@ export abstract class AbstractExecutionService } log('Parent: Sending Command', message); - // eslint is blocking `await` usage even though `handle` overload returns a promise. - // eslint-disable-next-line @typescript-eslint/await-thenable const response = await job.rpcEngine.handle(message); if (isJsonRpcFailure(response)) { diff --git a/packages/snaps-controllers/src/services/node-js/NodeThreadExecutionService.ts b/packages/snaps-controllers/src/services/node-js/NodeThreadExecutionService.ts index a7912a561c..6310c18a17 100644 --- a/packages/snaps-controllers/src/services/node-js/NodeThreadExecutionService.ts +++ b/packages/snaps-controllers/src/services/node-js/NodeThreadExecutionService.ts @@ -1,6 +1,5 @@ import type { BasePostMessageStream } from '@metamask/post-message-stream'; import { ThreadParentMessageStream } from '@metamask/post-message-stream'; -// eslint-disable-next-line @typescript-eslint/no-shadow import { Worker } from 'worker_threads'; import type { TerminateJobArgs } from '..'; diff --git a/packages/snaps-controllers/src/snaps/SnapController.test.tsx b/packages/snaps-controllers/src/snaps/SnapController.test.tsx index ac4011d3a5..ccc743b913 100644 --- a/packages/snaps-controllers/src/snaps/SnapController.test.tsx +++ b/packages/snaps-controllers/src/snaps/SnapController.test.tsx @@ -142,7 +142,6 @@ const OTHER_ENCRYPTION_KEY = describe('SnapController', () => { beforeEach(() => { - // eslint-disable-next-line @typescript-eslint/require-await fetchMock.mockImplementation(async () => { throw new AssertionError({ message: 'Unmocked access to internet.' }); }); @@ -2111,7 +2110,6 @@ describe('SnapController', () => { expect(snapController.state.snaps[snap.id]).toBeUndefined(); - // eslint-disable-next-line @typescript-eslint/unbound-method expect(messenger.publish).toHaveBeenCalledWith( 'SnapController:snapUninstalled', getTruncatedSnap(), @@ -6050,7 +6048,6 @@ describe('SnapController', () => { snaps: false, dapps: true, }, - // eslint-disable-next-line @typescript-eslint/naming-convention 'endowment:webassembly': {}, }; @@ -6067,7 +6064,6 @@ describe('SnapController', () => { detectSnapLocation: loopbackDetect({ manifest: manifest.result, }), - // eslint-disable-next-line @typescript-eslint/naming-convention excludedPermissions: { 'endowment:webassembly': 'foobar' }, }), ); @@ -6218,7 +6214,6 @@ describe('SnapController', () => { it('maps permission caveats to the proper format', async () => { const initialPermissions = { - // eslint-disable-next-line @typescript-eslint/naming-convention 'endowment:rpc': { snaps: false, dapps: true }, // eslint-disable-next-line @typescript-eslint/naming-convention snap_getBip32Entropy: [ @@ -6976,13 +6971,11 @@ describe('SnapController', () => { expect(controller.get(snapId1)?.status).toBe('stopped'); expect(controller.get(snapId2)?.status).toBe('stopped'); - // eslint-disable-next-line @typescript-eslint/unbound-method expect(messenger.publish).not.toHaveBeenCalledWith( 'SnapController:snapInstalled', expect.anything(), ); - // eslint-disable-next-line @typescript-eslint/unbound-method expect(messenger.publish).not.toHaveBeenCalledWith( 'SnapController:snapUpdated', expect.anything(), @@ -8302,7 +8295,6 @@ describe('SnapController', () => { rootMessenger.registerActionHandler( 'ApprovalController:addRequest', async (request) => { - // eslint-disable-next-line jest/no-conditional-expect expect(request.id).toBe( (request.requestData?.metadata as { id: string })?.id, ); diff --git a/packages/snaps-controllers/src/snaps/SnapController.ts b/packages/snaps-controllers/src/snaps/SnapController.ts index af95aaec06..1a64730980 100644 --- a/packages/snaps-controllers/src/snaps/SnapController.ts +++ b/packages/snaps-controllers/src/snaps/SnapController.ts @@ -811,7 +811,6 @@ function truncateSnap(snap: Snap): TruncatedSnap { {}, ); - // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion return truncatedSnap as TruncatedSnap; } @@ -3067,8 +3066,6 @@ export class SnapController extends BaseController< if ( dedupedEndowments.length < - // This is a bug in TypeScript: https://github.com/microsoft/TypeScript/issues/48313 - // eslint-disable-next-line @typescript-eslint/restrict-plus-operands DEFAULT_ENDOWMENTS.length + allEndowments.length ) { logError( diff --git a/packages/snaps-controllers/src/snaps/location/http.test.ts b/packages/snaps-controllers/src/snaps/location/http.test.ts index e17310ec68..8fd7522a3b 100644 --- a/packages/snaps-controllers/src/snaps/location/http.test.ts +++ b/packages/snaps-controllers/src/snaps/location/http.test.ts @@ -151,7 +151,6 @@ describe('HttpLocation', () => { expect( // @ts-expect-error Accessing via prototype - // eslint-disable-next-line no-proto, @typescript-eslint/naming-convention manifestFile.result.initialPermissions.__proto__.foo, ).toBeUndefined(); }); diff --git a/packages/snaps-controllers/src/snaps/location/npm.test.ts b/packages/snaps-controllers/src/snaps/location/npm.test.ts index dd38d3a38b..3cec537bc7 100644 --- a/packages/snaps-controllers/src/snaps/location/npm.test.ts +++ b/packages/snaps-controllers/src/snaps/location/npm.test.ts @@ -35,7 +35,6 @@ describe('NpmLocation', () => { .mockResolvedValueOnce({ ok: true, json: async () => ({ - // eslint-disable-next-line @typescript-eslint/naming-convention 'dist-tags': { latest: templateSnapVersion, }, @@ -51,7 +50,6 @@ describe('NpmLocation', () => { } as any) .mockResolvedValue({ ok: true, - // eslint-disable-next-line @typescript-eslint/naming-convention headers: new Headers({ 'content-length': '5477' }), body: Readable.toWeb( createReadStream( @@ -133,7 +131,6 @@ describe('NpmLocation', () => { customFetchMock.mockResolvedValue({ ok: true, - // eslint-disable-next-line @typescript-eslint/naming-convention headers: new Headers({ 'content-length': '5477' }), body: Readable.toWeb( createReadStream( @@ -203,7 +200,6 @@ describe('NpmLocation', () => { customFetchMock.mockResolvedValue({ ok: true, - // eslint-disable-next-line @typescript-eslint/naming-convention headers: new Headers({ 'content-length': '5477' }), body: Readable.toWeb( createReadStream( @@ -283,7 +279,6 @@ describe('NpmLocation', () => { .mockResolvedValueOnce({ ok: true, json: async () => ({ - // eslint-disable-next-line @typescript-eslint/naming-convention 'dist-tags': { latest: templateSnapVersion, }, @@ -324,7 +319,6 @@ describe('NpmLocation', () => { customFetchMock.mockResolvedValueOnce({ ok: true, json: async () => ({ - // eslint-disable-next-line @typescript-eslint/naming-convention 'dist-tags': { latest: templateSnapVersion, }, diff --git a/packages/snaps-controllers/src/snaps/registry/json.test.ts b/packages/snaps-controllers/src/snaps/registry/json.test.ts index eed626f789..1f34c422a7 100644 --- a/packages/snaps-controllers/src/snaps/registry/json.test.ts +++ b/packages/snaps-controllers/src/snaps/registry/json.test.ts @@ -36,7 +36,6 @@ const MOCK_DATABASE: SnapsRegistryDatabase = { name: 'Mock Snap', }, versions: { - // eslint-disable-next-line @typescript-eslint/naming-convention ['1.0.0' as SemVerVersion]: { checksum: DEFAULT_SNAP_SHASUM, }, @@ -200,7 +199,6 @@ describe('JsonSnapsRegistry', () => { const { messenger } = getRegistry(); const result = await messenger.call('SnapsRegistry:get', { - // eslint-disable-next-line @typescript-eslint/naming-convention 'npm:@consensys/starknet-snap': { version: '0.1.10' as SemVerVersion, checksum: DEFAULT_SNAP_SHASUM, @@ -208,7 +206,6 @@ describe('JsonSnapsRegistry', () => { }); expect(result).toStrictEqual({ - // eslint-disable-next-line @typescript-eslint/naming-convention 'npm:@consensys/starknet-snap': { status: SnapsRegistryStatus.Blocked, reason: { explanation: 'vuln' }, @@ -446,7 +443,6 @@ describe('JsonSnapsRegistry', () => { name: 'Mock Snap', }, versions: { - // eslint-disable-next-line @typescript-eslint/naming-convention ['0.0.1' as SemVerVersion]: { checksum: DEFAULT_SNAP_SHASUM, }, diff --git a/packages/snaps-controllers/src/test-utils/location.ts b/packages/snaps-controllers/src/test-utils/location.ts index 28fac69cca..aacd579c17 100644 --- a/packages/snaps-controllers/src/test-utils/location.ts +++ b/packages/snaps-controllers/src/test-utils/location.ts @@ -124,7 +124,6 @@ export class LoopbackLocation implements SnapLocation { this.#files = files; } - /* eslint-disable @typescript-eslint/require-await */ manifest = jest.fn(async () => this.#manifest); fetch = jest.fn(async (path: string) => { @@ -146,7 +145,6 @@ export class LoopbackLocation implements SnapLocation { ); return file; }); - /* eslint-enable @typescript-eslint/require-await */ get shouldAlwaysReload() { return this._shouldAlwaysReload(); diff --git a/packages/snaps-controllers/src/test-utils/service.ts b/packages/snaps-controllers/src/test-utils/service.ts index 75aab9f599..5d2b5f5c86 100644 --- a/packages/snaps-controllers/src/test-utils/service.ts +++ b/packages/snaps-controllers/src/test-utils/service.ts @@ -12,7 +12,6 @@ import { MOCK_BLOCK_NUMBER } from './execution-environment'; export const createService = < Service extends new (...args: any[]) => InstanceType, >( - // eslint-disable-next-line @typescript-eslint/naming-convention ServiceClass: Service, options?: Omit< ConstructorParameters[0], 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/wdio.config.js b/packages/snaps-controllers/wdio.config.js index 3f159c6f0e..f08a811943 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 n/no-process-env */ const { NodeGlobalsPolyfillPlugin, diff --git a/packages/snaps-execution-environments/jest.environment.js b/packages/snaps-execution-environments/jest.environment.js index a9cc5ce6af..fd672802a5 100644 --- a/packages/snaps-execution-environments/jest.environment.js +++ b/packages/snaps-execution-environments/jest.environment.js @@ -1,4 +1,3 @@ -/* eslint-disable */ const { TestEnvironment } = require('jest-environment-node'); // Custom test environment copied from https://github.com/jsdom/jsdom/issues/2524 diff --git a/packages/snaps-execution-environments/scripts/build.js b/packages/snaps-execution-environments/scripts/build.js index 93a88b05ac..46df779151 100644 --- a/packages/snaps-execution-environments/scripts/build.js +++ b/packages/snaps-execution-environments/scripts/build.js @@ -1,4 +1,4 @@ -/* eslint-disable no-console, n/global-require */ +/* eslint-disable n/global-require */ const { stringToBytes } = require('@metamask/utils'); const { createResolvePath, diff --git a/packages/snaps-execution-environments/scripts/start.js b/packages/snaps-execution-environments/scripts/start.js index 308ea665bd..1c6cefef28 100644 --- a/packages/snaps-execution-environments/scripts/start.js +++ b/packages/snaps-execution-environments/scripts/start.js @@ -1,4 +1,3 @@ -/* eslint-disable no-console */ const http = require('http'); const path = require('path'); const serveHandler = require('serve-handler'); 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 1fb0576804..9f1ffdd2a6 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, import-x/no-unassigned-import */ import { UserInputEventType } from '@metamask/snaps-sdk'; import { HandlerType } from '@metamask/snaps-utils'; @@ -458,7 +458,6 @@ describe('BaseSnapExecutor', () => { const mockSnapsResult = { snaps: { - // eslint-disable-next-line @typescript-eslint/naming-convention 'npm:@metamask/example-snap': { version: '1.0.0', }, @@ -1729,7 +1728,6 @@ describe('BaseSnapExecutor', () => { const LIFECYCLE_HOOKS = [HandlerType.OnInstall, HandlerType.OnUpdate]; for (const handler of LIFECYCLE_HOOKS) { - // eslint-disable-next-line no-loop-func it(`supports \`${handler}\` export`, async () => { const CODE = ` module.exports.${handler} = ({ origin }) => origin; @@ -1763,7 +1761,6 @@ describe('BaseSnapExecutor', () => { }); }); - // eslint-disable-next-line no-loop-func it(`does not throw if \`${handler}\` is called, but the snap does not export it`, async () => { const CODE = ` module.exports.onRpcRequest = () => 'foo'; diff --git a/packages/snaps-execution-environments/src/common/endowments/crypto.ts b/packages/snaps-execution-environments/src/common/endowments/crypto.ts index 44cbda57f3..0bc2b13eef 100644 --- a/packages/snaps-execution-environments/src/common/endowments/crypto.ts +++ b/packages/snaps-execution-environments/src/common/endowments/crypto.ts @@ -14,7 +14,7 @@ export const createCrypto = () => { } // For now, we expose the experimental webcrypto API for Node.js execution environments // TODO: Figure out if this is enough long-term or if we should use a polyfill. - /* eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires, n/global-require */ + /* eslint-disable-next-line @typescript-eslint/no-require-imports, import-x/no-nodejs-modules, no-restricted-globals */ const crypto = require('crypto').webcrypto; return { crypto: harden(crypto), 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 39a7d84f08..503c174945 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,4 +1,4 @@ -/* 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'; diff --git a/packages/snaps-execution-environments/src/common/endowments/network.test.ts b/packages/snaps-execution-environments/src/common/endowments/network.test.ts index 2dca0b215a..4085356c63 100644 --- a/packages/snaps-execution-environments/src/common/endowments/network.test.ts +++ b/packages/snaps-execution-environments/src/common/endowments/network.test.ts @@ -86,7 +86,6 @@ describe('Network endowments', () => { .fn() .mockImplementation((reason) => Error(reason)); - // eslint-disable-next-line jest/valid-expect-in-promise fetch('foo.com') .then(() => { throw new ErrorProxy('SHOULD_NOT_BE_REACHED'); @@ -109,7 +108,6 @@ describe('Network endowments', () => { const { fetch, teardownFunction } = network.factory(factoryOptions); - // eslint-disable-next-line jest/valid-expect-in-promise fetch('foo.com').catch(() => { console.log('Jailbreak'); }); diff --git a/packages/snaps-execution-environments/src/common/globalObject.ts b/packages/snaps-execution-environments/src/common/globalObject.ts index 2252a61cb1..22f98b8654 100644 --- a/packages/snaps-execution-environments/src/common/globalObject.ts +++ b/packages/snaps-execution-environments/src/common/globalObject.ts @@ -2,7 +2,6 @@ enum GlobalObjectNames { // The globalThis entry is incorrectly identified as shadowing the global // globalThis. /* eslint-disable @typescript-eslint/naming-convention */ - // eslint-disable-next-line @typescript-eslint/no-shadow globalThis = 'globalThis', global = 'global', self = 'self', 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..9b67be5feb 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,3 @@ -// eslint-disable-next-line import/unambiguous import { expect } from '@wdio/globals'; import { executeLockdownEvents } from './lockdown-events'; @@ -11,7 +10,6 @@ describe('lockdown events security', () => { const promise = new Promise((resolve) => { eventTarget.addEventListener('just-test-event', (eventObject) => { - // eslint-disable-next-line @typescript-eslint/unbound-method resolve(eventObject.composedPath); }); }); 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 12ec2b7c9c..56c30e4270 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/node-process/ChildProcessSnapExecutor.test.ts b/packages/snaps-execution-environments/src/node-process/ChildProcessSnapExecutor.test.ts index ea4ab0dd7d..4d71c204d4 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-thread/ThreadSnapExecutor.test.ts b/packages/snaps-execution-environments/src/node-thread/ThreadSnapExecutor.test.ts index e6e585ac38..c0908d7ba2 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, JsonRpcSuccess } from '@metamask/utils'; diff --git a/packages/snaps-execution-environments/src/proxy/ProxySnapExecutor.ts b/packages/snaps-execution-environments/src/proxy/ProxySnapExecutor.ts index 5f77370912..37c948bb36 100644 --- a/packages/snaps-execution-environments/src/proxy/ProxySnapExecutor.ts +++ b/packages/snaps-execution-environments/src/proxy/ProxySnapExecutor.ts @@ -1,6 +1,5 @@ import type { BasePostMessageStream } from '@metamask/post-message-stream'; import { WindowPostMessageStream } from '@metamask/post-message-stream'; -// eslint-disable-next-line import/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'; 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/webworker/executor/WebWorkerSnapExecutor.test.browser.ts b/packages/snaps-execution-environments/src/webworker/executor/WebWorkerSnapExecutor.test.browser.ts index 9a240a4a80..fbdc0e068c 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/wdio.config.js b/packages/snaps-execution-environments/wdio.config.js index 00ad65ccf7..b4146ca435 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 n/no-process-env */ const { NodeGlobalsPolyfillPlugin, diff --git a/packages/snaps-jest/jest-preset.js b/packages/snaps-jest/jest-preset.js index d20d8bb708..0fc1d4a860 100644 --- a/packages/snaps-jest/jest-preset.js +++ b/packages/snaps-jest/jest-preset.js @@ -1,5 +1,3 @@ -/* eslint-disable jsdoc/valid-types */ - const { resolve } = require('path'); /** diff --git a/packages/snaps-jest/src/environment.ts b/packages/snaps-jest/src/environment.ts index 4a9bcda8ec..94fbf06ef8 100644 --- a/packages/snaps-jest/src/environment.ts +++ b/packages/snaps-jest/src/environment.ts @@ -19,11 +19,9 @@ import { rootLogger, startServer } from './internals'; import type { SnapsEnvironmentOptions } from './options'; import { getOptions } from './options'; -/* eslint-disable */ declare global { const snapsEnvironment: SnapsEnvironment; } -/* eslint-enable */ const log = createModuleLogger(rootLogger, 'environment'); diff --git a/packages/snaps-jest/src/global.ts b/packages/snaps-jest/src/global.ts index 979a164471..8558fa20ac 100644 --- a/packages/snaps-jest/src/global.ts +++ b/packages/snaps-jest/src/global.ts @@ -1,4 +1,4 @@ -/* eslint-disable @typescript-eslint/consistent-type-definitions, @typescript-eslint/naming-convention, @typescript-eslint/no-empty-interface, @typescript-eslint/no-unused-vars, @typescript-eslint/no-namespace */ +/* eslint-disable @typescript-eslint/consistent-type-definitions, @typescript-eslint/naming-convention, @typescript-eslint/no-empty-object-type, @typescript-eslint/no-unused-vars, @typescript-eslint/no-namespace */ import type { EnumToUnion, diff --git a/packages/snaps-jest/src/helpers.test.tsx b/packages/snaps-jest/src/helpers.test.tsx index 44a514cddf..e68b2065b8 100644 --- a/packages/snaps-jest/src/helpers.test.tsx +++ b/packages/snaps-jest/src/helpers.test.tsx @@ -939,7 +939,6 @@ describe('installSnap', () => { `, manifest: getSnapManifest({ initialPermissions: { - // eslint-disable-next-line @typescript-eslint/naming-convention 'endowment:ethereum-provider': {}, }, }), diff --git a/packages/snaps-jest/src/index.ts b/packages/snaps-jest/src/index.ts index d3f9d13f6e..00d8ab36a7 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/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/test-utils/snap/snap.js b/packages/snaps-jest/src/test-utils/snap/snap.js index a033fc24c7..8a5e7848e1 100644 --- a/packages/snaps-jest/src/test-utils/snap/snap.js +++ b/packages/snaps-jest/src/test-utils/snap/snap.js @@ -1,4 +1,3 @@ -// eslint-disable-next-line no-console console.log('Hello, world!'); module.exports.onRpcRequest = () => null; diff --git a/packages/snaps-rollup-plugin/src/__fixtures__/source-map.ts b/packages/snaps-rollup-plugin/src/__fixtures__/source-map.ts index ac7732b9d0..e1aed3d176 100644 --- a/packages/snaps-rollup-plugin/src/__fixtures__/source-map.ts +++ b/packages/snaps-rollup-plugin/src/__fixtures__/source-map.ts @@ -1,6 +1,5 @@ // This file is only used for testing source map generation. -// eslint-disable-next-line import/unambiguous const foo = 'bar'; // eslint-disable-next-line no-console console.log(foo); diff --git a/packages/snaps-rollup-plugin/src/plugin.ts b/packages/snaps-rollup-plugin/src/plugin.ts index c9e3893092..2e932dd8a0 100644 --- a/packages/snaps-rollup-plugin/src/plugin.ts +++ b/packages/snaps-rollup-plugin/src/plugin.ts @@ -6,7 +6,6 @@ import { } from '@metamask/snaps-utils/node'; import { promises as fs } from 'fs'; import pathUtils from 'path'; -// eslint-disable-next-line @typescript-eslint/no-shadow import type { Plugin, SourceMapInput } from 'rollup'; type PluginOptions = { diff --git a/packages/snaps-rpc-methods/src/endowments/caveats/requestTime.ts b/packages/snaps-rpc-methods/src/endowments/caveats/requestTime.ts index 7a3e10c536..35efdba3db 100644 --- a/packages/snaps-rpc-methods/src/endowments/caveats/requestTime.ts +++ b/packages/snaps-rpc-methods/src/endowments/caveats/requestTime.ts @@ -19,7 +19,7 @@ import type { CaveatMapperFunction, CaveatMapperReturnValue } from './generic'; * @throws If the value is not a valid `maxRequestTime` value. */ function assertIsMaxRequestTime( - value: unknown, // eslint-disable-next-line @typescript-eslint/naming-convention + value: unknown, ErrorWrapper?: AssertionErrorConstructor, ): asserts value is number { assertStruct( diff --git a/packages/snaps-rpc-methods/src/permitted/setState.ts b/packages/snaps-rpc-methods/src/permitted/setState.ts index 55317a57b3..927c529d88 100644 --- a/packages/snaps-rpc-methods/src/permitted/setState.ts +++ b/packages/snaps-rpc-methods/src/permitted/setState.ts @@ -232,7 +232,6 @@ async function getNewState( * @returns The new object with the key set to the value. */ export function set( - // eslint-disable-next-line @typescript-eslint/default-param-last object: Record | null, key: string, value: Json, diff --git a/packages/snaps-rpc-methods/src/restricted/manageState.test.ts b/packages/snaps-rpc-methods/src/restricted/manageState.test.ts index d1b6a0bf4d..2e9945e3c9 100644 --- a/packages/snaps-rpc-methods/src/restricted/manageState.test.ts +++ b/packages/snaps-rpc-methods/src/restricted/manageState.test.ts @@ -327,7 +327,6 @@ describe('snap_manageState', () => { method: 'snap_manageState', params: { operation: ManageStateOperation.UpdateState, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-expect-error - invalid type for testing purposes newState, }, @@ -369,7 +368,6 @@ describe('snap_manageState', () => { method: 'snap_manageState', params: { operation: ManageStateOperation.UpdateState, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-expect-error - invalid type for testing purposes newState, }, diff --git a/packages/snaps-sdk/jsx-dev-runtime.d.ts b/packages/snaps-sdk/jsx-dev-runtime.d.ts index ae34cba2ae..fe65566c0e 100644 --- a/packages/snaps-sdk/jsx-dev-runtime.d.ts +++ b/packages/snaps-sdk/jsx-dev-runtime.d.ts @@ -1,3 +1 @@ -/* eslint-disable import/extensions */ - export * from './dist/jsx/jsx-dev-runtime.cjs'; diff --git a/packages/snaps-sdk/jsx-dev-runtime.js b/packages/snaps-sdk/jsx-dev-runtime.js index d9bb40763c..6763d8babf 100644 --- a/packages/snaps-sdk/jsx-dev-runtime.js +++ b/packages/snaps-sdk/jsx-dev-runtime.js @@ -1,5 +1,3 @@ -/* eslint-disable */ - // Re-exported for compatibility with build tools that don't support the // `exports` field in package.json module.exports = require('./dist/jsx/jsx-dev-runtime.cjs'); diff --git a/packages/snaps-sdk/jsx-runtime.d.ts b/packages/snaps-sdk/jsx-runtime.d.ts index e16a60d095..3e1e2c1563 100644 --- a/packages/snaps-sdk/jsx-runtime.d.ts +++ b/packages/snaps-sdk/jsx-runtime.d.ts @@ -1,3 +1 @@ -/* eslint-disable import/extensions */ - export * from './dist/jsx/jsx-runtime.cjs'; diff --git a/packages/snaps-sdk/jsx-runtime.js b/packages/snaps-sdk/jsx-runtime.js index 1a87fed683..853813692e 100644 --- a/packages/snaps-sdk/jsx-runtime.js +++ b/packages/snaps-sdk/jsx-runtime.js @@ -1,5 +1,3 @@ -/* eslint-disable */ - // Re-exported for compatibility with build tools that don't support the // `exports` field in package.json module.exports = require('./dist/jsx/jsx-runtime.cjs'); diff --git a/packages/snaps-sdk/jsx.d.ts b/packages/snaps-sdk/jsx.d.ts index 064e9a0b4f..d2eb8719d7 100644 --- a/packages/snaps-sdk/jsx.d.ts +++ b/packages/snaps-sdk/jsx.d.ts @@ -1,3 +1,3 @@ -/* eslint-disable import/extensions */ +/* eslint-disable import-x/no-useless-path-segments */ export * from './dist/jsx/index.cjs'; diff --git a/packages/snaps-sdk/jsx.js b/packages/snaps-sdk/jsx.js index 6646b6a6d1..44bab0b6eb 100644 --- a/packages/snaps-sdk/jsx.js +++ b/packages/snaps-sdk/jsx.js @@ -1,5 +1,3 @@ -/* eslint-disable */ - // Re-exported for compatibility with build tools that don't support the // `exports` field in package.json module.exports = require('./dist/jsx/index.cjs'); diff --git a/packages/snaps-sdk/src/index.test.ts b/packages/snaps-sdk/src/index.test.ts index 3d70429a56..90944bc361 100644 --- a/packages/snaps-sdk/src/index.test.ts +++ b/packages/snaps-sdk/src/index.test.ts @@ -1,5 +1,4 @@ // TODO: Add tests, and remove these comments. -// eslint-disable-next-line import/unambiguous describe('index', () => { it.todo('should be tested'); }); diff --git a/packages/snaps-sdk/src/internals/jsx.ts b/packages/snaps-sdk/src/internals/jsx.ts index cf8ae331c2..69109be913 100644 --- a/packages/snaps-sdk/src/internals/jsx.ts +++ b/packages/snaps-sdk/src/internals/jsx.ts @@ -53,7 +53,7 @@ type StructSchema = IsUnion extends true | symbol | undefined | null - // eslint-disable-next-line @typescript-eslint/ban-types + // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type | Function | Date | Error diff --git a/packages/snaps-sdk/src/jsx/validation.ts b/packages/snaps-sdk/src/jsx/validation.ts index b02997c944..177cd76773 100644 --- a/packages/snaps-sdk/src/jsx/validation.ts +++ b/packages/snaps-sdk/src/jsx/validation.ts @@ -557,7 +557,6 @@ export const BoldStruct: Describe = element('Bold', { export const ItalicStruct: Describe = element('Italic', { children: children([ string(), - // eslint-disable-next-line @typescript-eslint/no-use-before-define lazy(() => BoldStruct) as unknown as Struct< SnapElement >, diff --git a/packages/snaps-sdk/src/types/images.ts b/packages/snaps-sdk/src/types/images.ts index 777b9f2e2d..476e7d01e1 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; // eslint-disable-next-line @typescript-eslint/ban-ts-comment 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/ui/components/input.ts b/packages/snaps-sdk/src/ui/components/input.ts index 1cc3d181a5..d58c98cd14 100644 --- a/packages/snaps-sdk/src/ui/components/input.ts +++ b/packages/snaps-sdk/src/ui/components/input.ts @@ -17,10 +17,8 @@ import { LiteralStruct, NodeType } from '../nodes'; * https://github.com/MetaMask/metamask-extension/main/ui/components/component-library/input/input.constants.js */ export enum InputType { - /* eslint-disable @typescript-eslint/no-shadow */ Text = 'text', Number = 'number', - /* eslint-enable @typescript-eslint/no-shadow */ Password = 'password', } diff --git a/packages/snaps-sdk/src/ui/nodes.ts b/packages/snaps-sdk/src/ui/nodes.ts index 74e40a232d..97e37abe3b 100644 --- a/packages/snaps-sdk/src/ui/nodes.ts +++ b/packages/snaps-sdk/src/ui/nodes.ts @@ -12,7 +12,6 @@ export enum NodeType { Heading = 'heading', Panel = 'panel', Spinner = 'spinner', - // eslint-disable-next-line @typescript-eslint/no-shadow Text = 'text', Image = 'image', Row = 'row', diff --git a/packages/snaps-simulation/src/helpers.test.tsx b/packages/snaps-simulation/src/helpers.test.tsx index adc96d41d4..7bbefbc643 100644 --- a/packages/snaps-simulation/src/helpers.test.tsx +++ b/packages/snaps-simulation/src/helpers.test.tsx @@ -712,7 +712,6 @@ describe('helpers', () => { `, manifest: getSnapManifest({ initialPermissions: { - // eslint-disable-next-line @typescript-eslint/naming-convention 'endowment:ethereum-provider': {}, }, }), diff --git a/packages/snaps-simulation/src/methods/specifications.test.ts b/packages/snaps-simulation/src/methods/specifications.test.ts index d50248d96f..ce282b7ad3 100644 --- a/packages/snaps-simulation/src/methods/specifications.test.ts +++ b/packages/snaps-simulation/src/methods/specifications.test.ts @@ -334,7 +334,6 @@ describe('getEndowments', () => { MOCK_SNAP_ID, getSnapManifest({ initialPermissions: { - // eslint-disable-next-line @typescript-eslint/naming-convention 'endowment:network-access': {}, }, }), diff --git a/packages/snaps-simulation/src/simulation.test.ts b/packages/snaps-simulation/src/simulation.test.ts index f6d0f186d6..d40a9291a4 100644 --- a/packages/snaps-simulation/src/simulation.test.ts +++ b/packages/snaps-simulation/src/simulation.test.ts @@ -584,7 +584,6 @@ describe('getPermittedHooks', () => { }); it('returns the `resolveInterface` hook', async () => { - // eslint-disable-next-line no-new const snapInterfaceController = new SnapInterfaceController({ messenger: getRestrictedSnapInterfaceControllerMessenger(controllerMessenger), diff --git a/packages/snaps-simulation/src/structs.test.tsx b/packages/snaps-simulation/src/structs.test.tsx index 702170a925..d19c8ba61a 100644 --- a/packages/snaps-simulation/src/structs.test.tsx +++ b/packages/snaps-simulation/src/structs.test.tsx @@ -29,9 +29,9 @@ const INVALID_VALUES = [ 'a', '0', '1', - // eslint-disable-next-line @typescript-eslint/no-empty-function + // eslint-disable-next-line no-empty-function () => {}, - // eslint-disable-next-line @typescript-eslint/no-empty-function + // eslint-disable-next-line no-empty-function function () {}, Symbol('a'), ]; diff --git a/packages/snaps-simulation/src/test-utils/snap/snap.js b/packages/snaps-simulation/src/test-utils/snap/snap.js index a033fc24c7..8a5e7848e1 100644 --- a/packages/snaps-simulation/src/test-utils/snap/snap.js +++ b/packages/snaps-simulation/src/test-utils/snap/snap.js @@ -1,4 +1,3 @@ -// eslint-disable-next-line no-console console.log('Hello, world!'); module.exports.onRpcRequest = () => null; diff --git a/packages/snaps-simulator/src/components/Editor.tsx b/packages/snaps-simulator/src/components/Editor.tsx index c1a91bfbc4..6d94ea859a 100644 --- a/packages/snaps-simulator/src/components/Editor.tsx +++ b/packages/snaps-simulator/src/components/Editor.tsx @@ -33,7 +33,6 @@ export const Editor: FunctionComponent = ({ inherit: true, rules: [], colors: { - // eslint-disable-next-line @typescript-eslint/naming-convention 'editor.background': '#24272A', }, }); diff --git a/packages/snaps-simulator/src/components/dialogs/PromptDialog.tsx b/packages/snaps-simulator/src/components/dialogs/PromptDialog.tsx index 98d34cac58..46c7c9007f 100644 --- a/packages/snaps-simulator/src/components/dialogs/PromptDialog.tsx +++ b/packages/snaps-simulator/src/components/dialogs/PromptDialog.tsx @@ -65,7 +65,6 @@ export const PromptDialog: FunctionComponent = ({ 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/components/NodeTree.tsx b/packages/snaps-simulator/src/features/builder/components/NodeTree.tsx index ddb51b2825..f54fe7826b 100644 --- a/packages/snaps-simulator/src/features/builder/components/NodeTree.tsx +++ b/packages/snaps-simulator/src/features/builder/components/NodeTree.tsx @@ -44,7 +44,7 @@ export const NodeTree: FunctionComponent = ({ return { ...item, data: { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion, @typescript-eslint/no-unnecessary-type-assertion + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion type: item.data!.type, ...item.data, props: { @@ -133,13 +133,11 @@ export const NodeTree: FunctionComponent = ({ borderRadius="lg" flex="1" sx={{ - // eslint-disable-next-line @typescript-eslint/naming-convention '& > ul': { display: 'flex', flexDirection: 'column', flex: 1, marginY: '4', - // eslint-disable-next-line @typescript-eslint/naming-convention '& > li': { display: 'flex', flexDirection: 'column', @@ -148,7 +146,6 @@ export const NodeTree: FunctionComponent = ({ }, }, ul: { listStyleType: 'none' }, - // eslint-disable-next-line @typescript-eslint/naming-convention li: { marginTop: '2' }, }} > 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..230591ba4f 100644 --- a/packages/snaps-simulator/src/features/handlers/transactions/components/Request.tsx +++ b/packages/snaps-simulator/src/features/handlers/transactions/components/Request.tsx @@ -1,4 +1,3 @@ -/* eslint-disable react/no-children-prop */ import { Flex, FormControl, diff --git a/packages/snaps-simulator/src/theme.ts b/packages/snaps-simulator/src/theme.ts index af678502a8..12b7c65dc6 100644 --- a/packages/snaps-simulator/src/theme.ts +++ b/packages/snaps-simulator/src/theme.ts @@ -367,7 +367,6 @@ export const theme = extendTheme({ styles: { global: { - // eslint-disable-next-line @typescript-eslint/naming-convention '#root': { display: 'flex', flexDirection: 'column', 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/webpack.config.ts b/packages/snaps-simulator/webpack.config.ts index 504ae8fa10..ce09b1cc39 100644 --- a/packages/snaps-simulator/webpack.config.ts +++ b/packages/snaps-simulator/webpack.config.ts @@ -1,5 +1,4 @@ import ReactRefreshPlugin from '@pmmmwh/react-refresh-webpack-plugin'; -// eslint-disable-next-line import/default import CopyPlugin from 'copy-webpack-plugin'; import express from 'express'; import FaviconsWebpackPlugin from 'favicons-webpack-plugin'; diff --git a/packages/snaps-utils/src/eval-worker.ts b/packages/snaps-utils/src/eval-worker.ts index a462050700..3da16f88e9 100644 --- a/packages/snaps-utils/src/eval-worker.ts +++ b/packages/snaps-utils/src/eval-worker.ts @@ -1,7 +1,7 @@ // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore - TypeScript complains about this being ESM in a CJS file, but // `ses/lockdown` has a CommonJS entry point. -// 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/json-rpc.ts b/packages/snaps-utils/src/json-rpc.ts index 1196327889..a9ad33c038 100644 --- a/packages/snaps-utils/src/json-rpc.ts +++ b/packages/snaps-utils/src/json-rpc.ts @@ -64,7 +64,6 @@ export type RpcOrigins = Infer; */ export function assertIsRpcOrigins( value: unknown, - // eslint-disable-next-line @typescript-eslint/naming-convention ErrorWrapper?: AssertionErrorConstructor, ): asserts value is RpcOrigins { assertStruct( @@ -91,7 +90,6 @@ export type KeyringOrigins = Infer; */ export function assertIsKeyringOrigins( value: unknown, - // eslint-disable-next-line @typescript-eslint/naming-convention ErrorWrapper?: AssertionErrorConstructor, ): asserts value is KeyringOrigins { assertStruct( diff --git a/packages/snaps-utils/src/manifest/manifest.test.ts b/packages/snaps-utils/src/manifest/manifest.test.ts index 1b22eaabf2..820b45a855 100644 --- a/packages/snaps-utils/src/manifest/manifest.test.ts +++ b/packages/snaps-utils/src/manifest/manifest.test.ts @@ -139,7 +139,6 @@ describe('checkManifest', () => { }); it('returns a warning if package.json is missing recommended fields', async () => { - // eslint-disable-next-line @typescript-eslint/no-unused-vars const { repository, ...packageJson } = getPackageJson(); await fs.writeFile(PACKAGE_JSON_PATH, JSON.stringify(packageJson)); diff --git a/packages/snaps-utils/src/manifest/validators/platform-version.test.ts b/packages/snaps-utils/src/manifest/validators/platform-version.test.ts index 5d101530a8..93f0460a3c 100644 --- a/packages/snaps-utils/src/manifest/validators/platform-version.test.ts +++ b/packages/snaps-utils/src/manifest/validators/platform-version.test.ts @@ -8,7 +8,7 @@ import { platformVersion } from './platform-version'; describe('platformVersion', () => { const require = createRequire(__filename); const packageJson = require.resolve('@metamask/snaps-sdk/package.json'); - // eslint-disable-next-line import/no-dynamic-require + // eslint-disable-next-line import-x/no-dynamic-require const sdkVersion = require(packageJson).version; it('does nothing if the version matches', async () => { diff --git a/packages/snaps-utils/src/manifest/validators/platform-version.ts b/packages/snaps-utils/src/manifest/validators/platform-version.ts index f3393e8d23..fe1f78cfa8 100644 --- a/packages/snaps-utils/src/manifest/validators/platform-version.ts +++ b/packages/snaps-utils/src/manifest/validators/platform-version.ts @@ -16,7 +16,7 @@ export const platformVersion: ValidatorMeta = { const require = createRequire(files.manifest.path); const packageJson = require.resolve('@metamask/snaps-sdk/package.json'); - // eslint-disable-next-line import/no-dynamic-require + // eslint-disable-next-line import-x/no-dynamic-require const actualVersion = require(packageJson).version; if (!manifestPlatformVersion) { diff --git a/packages/snaps-utils/src/mock.ts b/packages/snaps-utils/src/mock.ts index 16ce1bd440..8383ac3e90 100644 --- a/packages/snaps-utils/src/mock.ts +++ b/packages/snaps-utils/src/mock.ts @@ -25,7 +25,6 @@ type MockEthereumProvider = EventEmitter & { * @returns A mocked snap provider. */ function getMockSnapGlobal(): MockSnapGlobal { - // eslint-disable-next-line @typescript-eslint/require-await return { request: async () => true }; } @@ -36,7 +35,6 @@ function getMockSnapGlobal(): MockSnapGlobal { */ function getMockEthereumProvider(): MockEthereumProvider { const mockProvider = new EventEmitter() as Partial; - // eslint-disable-next-line @typescript-eslint/require-await mockProvider.request = async () => true; return mockProvider as MockEthereumProvider; } @@ -59,7 +57,6 @@ const mockFunction = () => true; class MockClass {} const handler = { - // eslint-disable-next-line @typescript-eslint/naming-convention construct(Target: any, args: any[]): any { return new Proxy(new Target(...args), handler); }, 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/post-process.ts b/packages/snaps-utils/src/post-process.ts index 49c39ba708..4ef986cbc1 100644 --- a/packages/snaps-utils/src/post-process.ts +++ b/packages/snaps-utils/src/post-process.ts @@ -1,4 +1,3 @@ -// eslint-disable-next-line @typescript-eslint/no-shadow import type { Node, Visitor, PluginObj } from '@babel/core'; import { transformSync, template } from '@babel/core'; import type { Expression, Identifier, TemplateElement } from '@babel/types'; diff --git a/packages/snaps-utils/src/ui.tsx b/packages/snaps-utils/src/ui.tsx index 10aaff7b2c..6a5c12de4d 100644 --- a/packages/snaps-utils/src/ui.tsx +++ b/packages/snaps-utils/src/ui.tsx @@ -181,7 +181,6 @@ export function getTextChildren( } }); - // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion return children.filter((child) => child !== null) as ( | string | StandardFormattingElement @@ -435,8 +434,6 @@ export function getTotalTextLength(component: Component): number { switch (type) { case NodeType.Panel: return component.children.reduce( - // This is a bug in TypeScript: https://github.com/microsoft/TypeScript/issues/48313 - // eslint-disable-next-line @typescript-eslint/restrict-plus-operands (sum, node) => sum + getTotalTextLength(node), 0, ); diff --git a/packages/snaps-utils/src/virtual-file/VirtualFile.ts b/packages/snaps-utils/src/virtual-file/VirtualFile.ts index 1e9886fe27..d2adcb4f6c 100644 --- a/packages/snaps-utils/src/virtual-file/VirtualFile.ts +++ b/packages/snaps-utils/src/virtual-file/VirtualFile.ts @@ -24,7 +24,7 @@ import { deepClone } from '../deep-clone'; * } * } */ -// eslint-disable-next-line @typescript-eslint/consistent-type-definitions, @typescript-eslint/no-empty-interface +// eslint-disable-next-line @typescript-eslint/consistent-type-definitions, @typescript-eslint/no-empty-object-type export interface DataMap {} export type Value = string | Uint8Array; diff --git a/packages/snaps-utils/src/virtual-file/toVirtualFile.test.ts b/packages/snaps-utils/src/virtual-file/toVirtualFile.test.ts index 384edff57a..fcd16774dc 100644 --- a/packages/snaps-utils/src/virtual-file/toVirtualFile.test.ts +++ b/packages/snaps-utils/src/virtual-file/toVirtualFile.test.ts @@ -10,11 +10,9 @@ jest.mock('fs'); describe('toVirtualFile', () => { beforeEach(() => { vol.reset(); - /* eslint-disable @typescript-eslint/naming-convention */ vol.fromJSON({ '/foo/utf-8.txt': CONTENTS_UTF8, }); - /* eslint-enable @typescript-eslint/naming-convention */ }); describe('readVirtualFile', () => { @@ -41,7 +39,6 @@ describe('toVirtualFile', () => { ); expect(vol.toJSON(PATH)).toStrictEqual( - // eslint-disable-next-line @typescript-eslint/naming-convention { [PATH]: CONTENTS_UTF8 }, ); }); diff --git a/packages/snaps-utils/wdio.config.js b/packages/snaps-utils/wdio.config.js index 0d30f0031e..9fc2745901 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 n/no-process-env */ const { NodeGlobalsPolyfillPlugin, 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..2712c0aa27 100644 --- a/packages/test-snaps/webpack.config.ts +++ b/packages/test-snaps/webpack.config.ts @@ -1,5 +1,4 @@ import ReactRefreshPlugin from '@pmmmwh/react-refresh-webpack-plugin'; -// eslint-disable-next-line import/default import CopyPlugin from 'copy-webpack-plugin'; import FaviconsWebpackPlugin from 'favicons-webpack-plugin'; import HtmlWebpackPlugin from 'html-webpack-plugin'; diff --git a/yarn.config.cjs b/yarn.config.cjs index 6c5b8f11b1..79ce1589f5 100644 --- a/yarn.config.cjs +++ b/yarn.config.cjs @@ -4,8 +4,6 @@ // manifests of each package in the monorepo to ensure they follow a standard // format, but also check the presence of certain files as well. -/* eslint-disable jsdoc/valid-types */ - const { defineConfig } = require('@yarnpkg/types'); const { readFile } = require('fs/promises'); const { get } = require('lodash');