From cc27e4f1359d9c4c9c9d8e0a402d23c880507f51 Mon Sep 17 00:00:00 2001 From: jimmy-guzman Date: Fri, 1 Nov 2024 15:25:24 -0500 Subject: [PATCH] =?UTF-8?q?fix:=20=F0=9F=90=9B=20have=20better=20support?= =?UTF-8?q?=20for=20"prefer-node-protocol"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- pnpm-lock.yaml | 37 +- src/configs/imports.ts | 4 +- src/configs/node.ts | 19 + src/factory.spec.ts | 25 + src/factory.ts | 2 + src/rules.gen.d.ts | 3082 +++++++++++++++++- src/rules/__snapshots__/imports.spec.ts.snap | 1 - src/rules/__snapshots__/node.spec.ts.snap | 7 + src/rules/imports.ts | 1 - src/rules/node.spec.ts | 5 + src/rules/node.ts | 5 + src/stubs.d.ts | 8 - 13 files changed, 3172 insertions(+), 26 deletions(-) create mode 100644 src/configs/node.ts create mode 100644 src/rules/__snapshots__/node.spec.ts.snap create mode 100644 src/rules/node.spec.ts create mode 100644 src/rules/node.ts diff --git a/package.json b/package.json index cccca12..3b389ad 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "eslint-plugin-jest": "^28.8.3", "eslint-plugin-jest-dom": "^5.4.0", "eslint-plugin-jsx-a11y": "^6.10.2", - "eslint-plugin-node-import": "^1.0.4", + "eslint-plugin-n": "^17.12.0", "eslint-plugin-perfectionist": "^3.9.1", "eslint-plugin-react": "^7.37.2", "eslint-plugin-react-hooks": "^5.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b599535..44041a6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,9 +47,9 @@ importers: eslint-plugin-jsx-a11y: specifier: ^6.10.2 version: 6.10.2(eslint@9.13.0(jiti@2.4.0)) - eslint-plugin-node-import: - specifier: ^1.0.4 - version: 1.0.4(eslint@9.13.0(jiti@2.4.0)) + eslint-plugin-n: + specifier: ^17.12.0 + version: 17.12.0(eslint@9.13.0(jiti@2.4.0)) eslint-plugin-perfectionist: specifier: ^3.9.1 version: 3.9.1(astro-eslint-parser@1.0.3(typescript@5.6.3))(eslint@9.13.0(jiti@2.4.0))(typescript@5.6.3) @@ -2293,6 +2293,12 @@ packages: peerDependencies: eslint: '>=8.57.0' + eslint-plugin-es-x@7.8.0: + resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '>=8' + eslint-plugin-import-x@4.4.0: resolution: {integrity: sha512-me58aWTjdkPtgmOzPe+uP0bebpN5etH4bJRnYzy85Rn9g/3QyASg6kTCqdwNzyaJRqMI2ii2o8s01P2LZpREHg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2328,11 +2334,11 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 - eslint-plugin-node-import@1.0.4: - resolution: {integrity: sha512-nn6EkM7+vJCDCXZiM0FDpYSekbhlk5LNoHJm9DlVSucGrsT9WoK+qOxIEm+SwoFBeH73cMHMavioDaHsu22b0Q==} - engines: {node: ^14.18.0 || ^16.0.0 || >= 18.0.0} + eslint-plugin-n@17.12.0: + resolution: {integrity: sha512-zNAtz/erDn0v78bIY3MASSQlyaarV4IOTvP5ldHsqblRFrXriikB6ghkDTkHjUad+nMRrIbOy9euod2azjRfBg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: '>=7' + eslint: '>=8.23.0' eslint-plugin-perfectionist@3.9.1: resolution: {integrity: sha512-9WRzf6XaAxF4Oi5t/3TqKP5zUjERhasHmLFHin2Yw6ZAp/EP/EVA2dr3BhQrrHWCm5SzTMZf0FcjDnBkO2xFkA==} @@ -7163,6 +7169,13 @@ snapshots: - supports-color - typescript + eslint-plugin-es-x@7.8.0(eslint@9.13.0(jiti@2.4.0)): + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@9.13.0(jiti@2.4.0)) + '@eslint-community/regexpp': 4.12.1 + eslint: 9.13.0(jiti@2.4.0) + eslint-compat-utils: 0.5.1(eslint@9.13.0(jiti@2.4.0)) + eslint-plugin-import-x@4.4.0(eslint@9.13.0(jiti@2.4.0))(typescript@5.6.3): dependencies: '@typescript-eslint/utils': 8.12.2(eslint@9.13.0(jiti@2.4.0))(typescript@5.6.3) @@ -7217,9 +7230,17 @@ snapshots: safe-regex-test: 1.0.3 string.prototype.includes: 2.0.1 - eslint-plugin-node-import@1.0.4(eslint@9.13.0(jiti@2.4.0)): + eslint-plugin-n@17.12.0(eslint@9.13.0(jiti@2.4.0)): dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@9.13.0(jiti@2.4.0)) + enhanced-resolve: 5.17.1 eslint: 9.13.0(jiti@2.4.0) + eslint-plugin-es-x: 7.8.0(eslint@9.13.0(jiti@2.4.0)) + get-tsconfig: 4.8.1 + globals: 15.11.0 + ignore: 5.3.2 + minimatch: 9.0.5 + semver: 7.6.3 eslint-plugin-perfectionist@3.9.1(astro-eslint-parser@1.0.3(typescript@5.6.3))(eslint@9.13.0(jiti@2.4.0))(typescript@5.6.3): dependencies: diff --git a/src/configs/imports.ts b/src/configs/imports.ts index 20b2578..8dd8676 100644 --- a/src/configs/imports.ts +++ b/src/configs/imports.ts @@ -1,7 +1,7 @@ import type { ESLint, Linter } from "eslint"; import importX from "eslint-plugin-import-x"; -import nodeImport from "eslint-plugin-node-import"; +import nodePlugin from "eslint-plugin-n"; import type { TypescriptOptions } from "../types"; @@ -36,7 +36,7 @@ const importsConfig = ({ typescript = false }: ImportsConfigOptions = {}) => { plugins: { // TODO: remove unknown conversion "import-x": importX as unknown as ESLint.Plugin, - "node-import": nodeImport, + "n": nodePlugin, }, rules: importsRules, // https://github.com/import-js/eslint-plugin-import/issues/2556#issuecomment-1419518561 diff --git a/src/configs/node.ts b/src/configs/node.ts new file mode 100644 index 0000000..432615e --- /dev/null +++ b/src/configs/node.ts @@ -0,0 +1,19 @@ +import type { Linter } from "eslint"; + +import nodePlugin from "eslint-plugin-n"; + +import { nodeRules } from "../rules/node"; + +const nodeConfig = () => { + return [ + { + name: "jimmy.codes/node", + plugins: { + n: nodePlugin, + }, + rules: nodeRules, + }, + ] satisfies Linter.Config[]; +}; + +export default nodeConfig; diff --git a/src/factory.spec.ts b/src/factory.spec.ts index 9605556..843baa4 100644 --- a/src/factory.spec.ts +++ b/src/factory.spec.ts @@ -5,6 +5,31 @@ import { jimmyDotCodes } from "./factory"; vi.mock("local-pkg"); describe("jimmyDotCodes", () => { + describe("base", () => { + it("should create configuration w/ node", () => { + expect(jimmyDotCodes({ autoDetect: false })).toStrictEqual( + expect.arrayContaining([ + expect.objectContaining({ name: "jimmy.codes/node" }), + ]), + ); + }); + it("should create configuration w/ imports", () => { + expect(jimmyDotCodes({ autoDetect: false })).toStrictEqual( + expect.arrayContaining([ + expect.objectContaining({ name: "jimmy.codes/imports" }), + ]), + ); + }); + it("should create configuration w/ perfectionist", () => { + expect( + jimmyDotCodes({ autoDetect: false, typescript: true }), + ).toStrictEqual( + expect.arrayContaining([ + expect.objectContaining({ name: "jimmy.codes/perfectionist" }), + ]), + ); + }); + }); it("should create configuration w/ typescript", () => { expect( jimmyDotCodes({ autoDetect: false, typescript: true }), diff --git a/src/factory.ts b/src/factory.ts index 397bbf3..c20d9e8 100644 --- a/src/factory.ts +++ b/src/factory.ts @@ -7,6 +7,7 @@ import type { Options, TypedConfigItem } from "./types"; import { astroConfig } from "./configs/astro"; import { commonjsConfig } from "./configs/commonjs"; import importsConfig from "./configs/imports"; +import nodeConfig from "./configs/node"; import perfectionistConfig from "./configs/perfectionist"; import reactConfig from "./configs/react"; import testingConfig from "./configs/testing"; @@ -40,6 +41,7 @@ export const jimmyDotCodes = ( return [ { name: "jimmy.codes/base", rules: baseRules }, ...perfectionistConfig(), + ...nodeConfig(), ...importsConfig({ typescript: isTypescriptEnabled }), ...(isTypescriptEnabled ? typescriptConfig(getTypescriptOptions(typescript)) diff --git a/src/rules.gen.d.ts b/src/rules.gen.d.ts index 71dd425..a1b3f46 100644 --- a/src/rules.gen.d.ts +++ b/src/rules.gen.d.ts @@ -2134,6 +2134,208 @@ export interface RuleOptions { * @deprecated */ "multiline-ternary"?: Linter.RuleEntry; + /** + * require `return` statements after callbacks + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/callback-return.md + */ + "n/callback-return"?: Linter.RuleEntry; + /** + * enforce either `module.exports` or `exports` + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/exports-style.md + */ + "n/exports-style"?: Linter.RuleEntry; + /** + * enforce the style of file extensions in `import` declarations + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/file-extension-in-import.md + */ + "n/file-extension-in-import"?: Linter.RuleEntry; + /** + * require `require()` calls to be placed at top-level module scope + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/global-require.md + */ + "n/global-require"?: Linter.RuleEntry<[]>; + /** + * require error handling in callbacks + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/handle-callback-err.md + */ + "n/handle-callback-err"?: Linter.RuleEntry; + /** + * require correct usage of hashbang + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/hashbang.md + */ + "n/hashbang"?: Linter.RuleEntry; + /** + * enforce Node.js-style error-first callback pattern is followed + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-callback-literal.md + */ + "n/no-callback-literal"?: Linter.RuleEntry<[]>; + /** + * disallow deprecated APIs + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-deprecated-api.md + */ + "n/no-deprecated-api"?: Linter.RuleEntry; + /** + * disallow the assignment to `exports` + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-exports-assign.md + */ + "n/no-exports-assign"?: Linter.RuleEntry<[]>; + /** + * disallow `import` declarations which import extraneous modules + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-extraneous-import.md + */ + "n/no-extraneous-import"?: Linter.RuleEntry; + /** + * disallow `require()` expressions which import extraneous modules + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-extraneous-require.md + */ + "n/no-extraneous-require"?: Linter.RuleEntry; + /** + * disallow third-party modules which are hiding core modules + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-hide-core-modules.md + * @deprecated + */ + "n/no-hide-core-modules"?: Linter.RuleEntry; + /** + * disallow `import` declarations which import non-existence modules + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-missing-import.md + */ + "n/no-missing-import"?: Linter.RuleEntry; + /** + * disallow `require()` expressions which import non-existence modules + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-missing-require.md + */ + "n/no-missing-require"?: Linter.RuleEntry; + /** + * disallow `require` calls to be mixed with regular variable declarations + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-mixed-requires.md + */ + "n/no-mixed-requires"?: Linter.RuleEntry; + /** + * disallow `new` operators with calls to `require` + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-new-require.md + */ + "n/no-new-require"?: Linter.RuleEntry<[]>; + /** + * disallow string concatenation with `__dirname` and `__filename` + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-path-concat.md + */ + "n/no-path-concat"?: Linter.RuleEntry<[]>; + /** + * disallow the use of `process.env` + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-process-env.md + */ + "n/no-process-env"?: Linter.RuleEntry; + /** + * disallow the use of `process.exit()` + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-process-exit.md + */ + "n/no-process-exit"?: Linter.RuleEntry<[]>; + /** + * disallow specified modules when loaded by `import` declarations + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-restricted-import.md + */ + "n/no-restricted-import"?: Linter.RuleEntry; + /** + * disallow specified modules when loaded by `require` + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-restricted-require.md + */ + "n/no-restricted-require"?: Linter.RuleEntry; + /** + * disallow synchronous methods + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-sync.md + */ + "n/no-sync"?: Linter.RuleEntry; + /** + * disallow `bin` files that npm ignores + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-unpublished-bin.md + */ + "n/no-unpublished-bin"?: Linter.RuleEntry; + /** + * disallow `import` declarations which import private modules + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-unpublished-import.md + */ + "n/no-unpublished-import"?: Linter.RuleEntry; + /** + * disallow `require()` expressions which import private modules + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-unpublished-require.md + */ + "n/no-unpublished-require"?: Linter.RuleEntry; + /** + * disallow unsupported ECMAScript built-ins on the specified version + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-unsupported-features/es-builtins.md + */ + "n/no-unsupported-features/es-builtins"?: Linter.RuleEntry; + /** + * disallow unsupported ECMAScript syntax on the specified version + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-unsupported-features/es-syntax.md + */ + "n/no-unsupported-features/es-syntax"?: Linter.RuleEntry; + /** + * disallow unsupported Node.js built-in APIs on the specified version + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/no-unsupported-features/node-builtins.md + */ + "n/no-unsupported-features/node-builtins"?: Linter.RuleEntry; + /** + * enforce either `Buffer` or `require("buffer").Buffer` + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-global/buffer.md + */ + "n/prefer-global/buffer"?: Linter.RuleEntry; + /** + * enforce either `console` or `require("console")` + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-global/console.md + */ + "n/prefer-global/console"?: Linter.RuleEntry; + /** + * enforce either `process` or `require("process")` + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-global/process.md + */ + "n/prefer-global/process"?: Linter.RuleEntry; + /** + * enforce either `TextDecoder` or `require("util").TextDecoder` + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-global/text-decoder.md + */ + "n/prefer-global/text-decoder"?: Linter.RuleEntry; + /** + * enforce either `TextEncoder` or `require("util").TextEncoder` + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-global/text-encoder.md + */ + "n/prefer-global/text-encoder"?: Linter.RuleEntry; + /** + * enforce either `URL` or `require("url").URL` + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-global/url.md + */ + "n/prefer-global/url"?: Linter.RuleEntry; + /** + * enforce either `URLSearchParams` or `require("url").URLSearchParams` + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-global/url-search-params.md + */ + "n/prefer-global/url-search-params"?: Linter.RuleEntry; + /** + * enforce using the `node:` protocol when importing Node.js builtin modules. + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-node-protocol.md + */ + "n/prefer-node-protocol"?: Linter.RuleEntry; + /** + * enforce `require("dns").promises` + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-promises/dns.md + */ + "n/prefer-promises/dns"?: Linter.RuleEntry<[]>; + /** + * enforce `require("fs").promises` + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/prefer-promises/fs.md + */ + "n/prefer-promises/fs"?: Linter.RuleEntry<[]>; + /** + * require that `process.exit()` expressions use the same code path as `throw` + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/process-exit-as-throw.md + */ + "n/process-exit-as-throw"?: Linter.RuleEntry<[]>; + /** + * require correct usage of hashbang + * @see https://github.com/eslint-community/eslint-plugin-n/blob/HEAD/docs/rules/hashbang.md + * @deprecated + */ + "n/shebang"?: Linter.RuleEntry; /** * Require constructor names to begin with a capital letter * @see https://eslint.org/docs/latest/rules/new-cap @@ -2964,11 +3166,6 @@ export interface RuleOptions { * @see https://eslint.org/docs/latest/rules/no-with */ "no-with"?: Linter.RuleEntry<[]>; - /** - * Prefer using the `node:` protocol when importing Node.js builtin modules. - * @see https://github.com/kytta/eslint-plugin-node-import/blob/main/docs/rules/prefer-node-protocol - */ - "node-import/prefer-node-protocol"?: Linter.RuleEntry<[]>; /** * Enforce the location of single-line statements * @see https://eslint.org/docs/latest/rules/nonblock-statement-body-position @@ -10170,6 +10367,2881 @@ type MultilineCommentStyle = ]; // ----- multiline-ternary ----- type MultilineTernary = [] | ["always" | "always-multiline" | "never"]; +// ----- n/callback-return ----- +type NCallbackReturn = [] | [string[]]; +// ----- n/exports-style ----- +type NExportsStyle = + | [] + | ["module.exports" | "exports"] + | [ + "module.exports" | "exports", + { + allowBatchAssign?: boolean; + }, + ]; +// ----- n/file-extension-in-import ----- +type NFileExtensionInImport = + | [] + | ["always" | "never"] + | [ + "always" | "never", + { + [k: string]: ("always" | "never") | undefined; + }, + ]; +// ----- n/handle-callback-err ----- +type NHandleCallbackErr = [] | [string]; +// ----- n/hashbang ----- +type NHashbang = + | [] + | [ + { + convertPath?: + | { + [k: string]: [string, string]; + } + | [ + { + include: [string, ...string[]]; + exclude?: string[]; + + replace: [string, string]; + }, + ...{ + include: [string, ...string[]]; + exclude?: string[]; + + replace: [string, string]; + }[], + ]; + ignoreUnpublished?: boolean; + additionalExecutables?: string[]; + executableMap?: { + [k: string]: string; + }; + }, + ]; +// ----- n/no-deprecated-api ----- +type NNoDeprecatedApi = + | [] + | [ + { + version?: string; + ignoreModuleItems?: ( + | "_linklist" + | "_stream_wrap" + | "async_hooks.currentId" + | "async_hooks.triggerId" + | "buffer.Buffer()" + | "new buffer.Buffer()" + | "buffer.SlowBuffer" + | "constants" + | "crypto._toBuf" + | "crypto.Credentials" + | "crypto.DEFAULT_ENCODING" + | "crypto.createCipher" + | "crypto.createCredentials" + | "crypto.createDecipher" + | "crypto.fips" + | "crypto.prng" + | "crypto.pseudoRandomBytes" + | "crypto.rng" + | "domain" + | "events.EventEmitter.listenerCount" + | "events.listenerCount" + | "freelist" + | "fs.SyncWriteStream" + | "fs.exists" + | "fs.lchmod" + | "fs.lchmodSync" + | "http.createClient" + | "module.Module.createRequireFromPath" + | "module.Module.requireRepl" + | "module.Module._debug" + | "module.createRequireFromPath" + | "module.requireRepl" + | "module._debug" + | "net._setSimultaneousAccepts" + | "os.getNetworkInterfaces" + | "os.tmpDir" + | "path._makeLong" + | "process.EventEmitter" + | "process.assert" + | "process.binding" + | "process.env.NODE_REPL_HISTORY_FILE" + | "process.report.triggerReport" + | "punycode" + | "readline.codePointAt" + | "readline.getStringWidth" + | "readline.isFullWidthCodePoint" + | "readline.stripVTControlCharacters" + | "repl.REPLServer" + | "repl.Recoverable" + | "repl.REPL_MODE_MAGIC" + | "safe-buffer.Buffer()" + | "new safe-buffer.Buffer()" + | "safe-buffer.SlowBuffer" + | "sys" + | "timers.enroll" + | "timers.unenroll" + | "tls.CleartextStream" + | "tls.CryptoStream" + | "tls.SecurePair" + | "tls.convertNPNProtocols" + | "tls.createSecurePair" + | "tls.parseCertString" + | "tty.setRawMode" + | "url.parse" + | "url.resolve" + | "util.debug" + | "util.error" + | "util.isArray" + | "util.isBoolean" + | "util.isBuffer" + | "util.isDate" + | "util.isError" + | "util.isFunction" + | "util.isNull" + | "util.isNullOrUndefined" + | "util.isNumber" + | "util.isObject" + | "util.isPrimitive" + | "util.isRegExp" + | "util.isString" + | "util.isSymbol" + | "util.isUndefined" + | "util.log" + | "util.print" + | "util.pump" + | "util.puts" + | "util._extend" + | "vm.runInDebugContext" + | "zlib.BrotliCompress()" + | "zlib.BrotliDecompress()" + | "zlib.Deflate()" + | "zlib.DeflateRaw()" + | "zlib.Gunzip()" + | "zlib.Gzip()" + | "zlib.Inflate()" + | "zlib.InflateRaw()" + | "zlib.Unzip()" + )[]; + ignoreGlobalItems?: ( + | "Buffer()" + | "new Buffer()" + | "COUNTER_NET_SERVER_CONNECTION" + | "COUNTER_NET_SERVER_CONNECTION_CLOSE" + | "COUNTER_HTTP_SERVER_REQUEST" + | "COUNTER_HTTP_SERVER_RESPONSE" + | "COUNTER_HTTP_CLIENT_REQUEST" + | "COUNTER_HTTP_CLIENT_RESPONSE" + | "GLOBAL" + | "Intl.v8BreakIterator" + | "require.extensions" + | "root" + | "process.EventEmitter" + | "process.assert" + | "process.binding" + | "process.env.NODE_REPL_HISTORY_FILE" + | "process.report.triggerReport" + )[]; + ignoreIndirectDependencies?: boolean; + }, + ]; +// ----- n/no-extraneous-import ----- +type NNoExtraneousImport = + | [] + | [ + { + allowModules?: string[]; + convertPath?: + | { + [k: string]: [string, string]; + } + | [ + { + include: [string, ...string[]]; + exclude?: string[]; + + replace: [string, string]; + }, + ...{ + include: [string, ...string[]]; + exclude?: string[]; + + replace: [string, string]; + }[], + ]; + resolvePaths?: string[]; + }, + ]; +// ----- n/no-extraneous-require ----- +type NNoExtraneousRequire = + | [] + | [ + { + allowModules?: string[]; + convertPath?: + | { + [k: string]: [string, string]; + } + | [ + { + include: [string, ...string[]]; + exclude?: string[]; + + replace: [string, string]; + }, + ...{ + include: [string, ...string[]]; + exclude?: string[]; + + replace: [string, string]; + }[], + ]; + resolvePaths?: string[]; + tryExtensions?: string[]; + }, + ]; +// ----- n/no-hide-core-modules ----- +type NNoHideCoreModules = + | [] + | [ + { + allow?: ( + | "assert" + | "buffer" + | "child_process" + | "cluster" + | "console" + | "constants" + | "crypto" + | "dgram" + | "dns" + | "events" + | "fs" + | "http" + | "https" + | "module" + | "net" + | "os" + | "path" + | "querystring" + | "readline" + | "repl" + | "stream" + | "string_decoder" + | "timers" + | "tls" + | "tty" + | "url" + | "util" + | "vm" + | "zlib" + )[]; + ignoreDirectDependencies?: boolean; + ignoreIndirectDependencies?: boolean; + }, + ]; +// ----- n/no-missing-import ----- +type NNoMissingImport = + | [] + | [ + { + allowModules?: string[]; + resolvePaths?: string[]; + tryExtensions?: string[]; + ignoreTypeImport?: boolean; + tsconfigPath?: string; + typescriptExtensionMap?: + | unknown[][] + | ( + | "react" + | "react-jsx" + | "react-jsxdev" + | "react-native" + | "preserve" + ); + }, + ]; +// ----- n/no-missing-require ----- +type NNoMissingRequire = + | [] + | [ + { + allowModules?: string[]; + tryExtensions?: string[]; + resolvePaths?: string[]; + typescriptExtensionMap?: + | unknown[][] + | ( + | "react" + | "react-jsx" + | "react-jsxdev" + | "react-native" + | "preserve" + ); + tsconfigPath?: string; + }, + ]; +// ----- n/no-mixed-requires ----- +type NNoMixedRequires = + | [] + | [ + | boolean + | { + grouping?: boolean; + allowCall?: boolean; + }, + ]; +// ----- n/no-process-env ----- +type NNoProcessEnv = + | [] + | [ + { + allowedVariables?: string[]; + }, + ]; +// ----- n/no-restricted-import ----- +type NNoRestrictedImport = + | [] + | [ + ( + | string + | { + name: string | string[]; + message?: string; + } + )[], + ]; +// ----- n/no-restricted-require ----- +type NNoRestrictedRequire = + | [] + | [ + ( + | string + | { + name: string | string[]; + message?: string; + } + )[], + ]; +// ----- n/no-sync ----- +type NNoSync = + | [] + | [ + { + allowAtRootLevel?: boolean; + }, + ]; +// ----- n/no-unpublished-bin ----- +type NNoUnpublishedBin = + | [] + | [ + { + convertPath?: + | { + [k: string]: [string, string]; + } + | [ + { + include: [string, ...string[]]; + exclude?: string[]; + + replace: [string, string]; + }, + ...{ + include: [string, ...string[]]; + exclude?: string[]; + + replace: [string, string]; + }[], + ]; + [k: string]: unknown | undefined; + }, + ]; +// ----- n/no-unpublished-import ----- +type NNoUnpublishedImport = + | [] + | [ + { + allowModules?: string[]; + convertPath?: + | { + [k: string]: [string, string]; + } + | [ + { + include: [string, ...string[]]; + exclude?: string[]; + + replace: [string, string]; + }, + ...{ + include: [string, ...string[]]; + exclude?: string[]; + + replace: [string, string]; + }[], + ]; + resolvePaths?: string[]; + ignoreTypeImport?: boolean; + ignorePrivate?: boolean; + }, + ]; +// ----- n/no-unpublished-require ----- +type NNoUnpublishedRequire = + | [] + | [ + { + allowModules?: string[]; + convertPath?: + | { + [k: string]: [string, string]; + } + | [ + { + include: [string, ...string[]]; + exclude?: string[]; + + replace: [string, string]; + }, + ...{ + include: [string, ...string[]]; + exclude?: string[]; + + replace: [string, string]; + }[], + ]; + resolvePaths?: string[]; + tryExtensions?: string[]; + ignorePrivate?: boolean; + }, + ]; +// ----- n/no-unsupported-features/es-builtins ----- +type NNoUnsupportedFeaturesEsBuiltins = + | [] + | [ + { + version?: string; + ignores?: ( + | "AggregateError" + | "Array" + | "Array.from" + | "Array.isArray" + | "Array.length" + | "Array.of" + | "Array.toLocaleString" + | "ArrayBuffer" + | "ArrayBuffer.isView" + | "Atomics" + | "Atomics.add" + | "Atomics.and" + | "Atomics.compareExchange" + | "Atomics.exchange" + | "Atomics.isLockFree" + | "Atomics.load" + | "Atomics.notify" + | "Atomics.or" + | "Atomics.store" + | "Atomics.sub" + | "Atomics.wait" + | "Atomics.waitAsync" + | "Atomics.xor" + | "BigInt" + | "BigInt.asIntN" + | "BigInt.asUintN" + | "BigInt64Array" + | "BigInt64Array.BYTES_PER_ELEMENT" + | "BigInt64Array.from" + | "BigInt64Array.name" + | "BigInt64Array.of" + | "BigUint64Array" + | "BigUint64Array.BYTES_PER_ELEMENT" + | "BigUint64Array.from" + | "BigUint64Array.name" + | "BigUint64Array.of" + | "Boolean" + | "DataView" + | "Date" + | "Date.UTC" + | "Date.now" + | "Date.parse" + | "Date.toLocaleDateString" + | "Date.toLocaleString" + | "Date.toLocaleTimeString" + | "Error" + | "Error.cause" + | "EvalError" + | "FinalizationRegistry" + | "Float32Array" + | "Float32Array.BYTES_PER_ELEMENT" + | "Float32Array.from" + | "Float32Array.name" + | "Float32Array.of" + | "Float64Array" + | "Float64Array.BYTES_PER_ELEMENT" + | "Float64Array.from" + | "Float64Array.name" + | "Float64Array.of" + | "Function" + | "Function.length" + | "Function.name" + | "Infinity" + | "Int16Array" + | "Int16Array.BYTES_PER_ELEMENT" + | "Int16Array.from" + | "Int16Array.name" + | "Int16Array.of" + | "Int32Array" + | "Int32Array.BYTES_PER_ELEMENT" + | "Int32Array.from" + | "Int32Array.name" + | "Int32Array.of" + | "Int8Array" + | "Int8Array.BYTES_PER_ELEMENT" + | "Int8Array.from" + | "Int8Array.name" + | "Int8Array.of" + | "Intl" + | "Intl.Collator" + | "Intl.DateTimeFormat" + | "Intl.DisplayNames" + | "Intl.ListFormat" + | "Intl.Locale" + | "Intl.NumberFormat" + | "Intl.PluralRules" + | "Intl.RelativeTimeFormat" + | "Intl.Segmenter" + | "Intl.Segments" + | "Intl.getCanonicalLocales" + | "Intl.supportedValuesOf" + | "JSON" + | "JSON.parse" + | "JSON.stringify" + | "Map" + | "Map.groupBy" + | "Math" + | "Math.E" + | "Math.LN10" + | "Math.LN2" + | "Math.LOG10E" + | "Math.LOG2E" + | "Math.PI" + | "Math.SQRT1_2" + | "Math.SQRT2" + | "Math.abs" + | "Math.acos" + | "Math.acosh" + | "Math.asin" + | "Math.asinh" + | "Math.atan" + | "Math.atan2" + | "Math.atanh" + | "Math.cbrt" + | "Math.ceil" + | "Math.clz32" + | "Math.cos" + | "Math.cosh" + | "Math.exp" + | "Math.expm1" + | "Math.floor" + | "Math.fround" + | "Math.hypot" + | "Math.imul" + | "Math.log" + | "Math.log10" + | "Math.log1p" + | "Math.log2" + | "Math.max" + | "Math.min" + | "Math.pow" + | "Math.random" + | "Math.round" + | "Math.sign" + | "Math.sin" + | "Math.sinh" + | "Math.sqrt" + | "Math.tan" + | "Math.tanh" + | "Math.trunc" + | "NaN" + | "Number.EPSILON" + | "Number.MAX_SAFE_INTEGER" + | "Number.MAX_VALUE" + | "Number.MIN_SAFE_INTEGER" + | "Number.MIN_VALUE" + | "Number.NEGATIVE_INFINITY" + | "Number.NaN" + | "Number.POSITIVE_INFINITY" + | "Number.isFinite" + | "Number.isInteger" + | "Number.isNaN" + | "Number.isSafeInteger" + | "Number.parseFloat" + | "Number.parseInt" + | "Number.toLocaleString" + | "Object.assign" + | "Object.create" + | "Object.defineGetter" + | "Object.defineProperties" + | "Object.defineProperty" + | "Object.defineSetter" + | "Object.entries" + | "Object.freeze" + | "Object.fromEntries" + | "Object.getOwnPropertyDescriptor" + | "Object.getOwnPropertyDescriptors" + | "Object.getOwnPropertyNames" + | "Object.getOwnPropertySymbols" + | "Object.getPrototypeOf" + | "Object.groupBy" + | "Object.hasOwn" + | "Object.is" + | "Object.isExtensible" + | "Object.isFrozen" + | "Object.isSealed" + | "Object.keys" + | "Object.lookupGetter" + | "Object.lookupSetter" + | "Object.preventExtensions" + | "Object.proto" + | "Object.seal" + | "Object.setPrototypeOf" + | "Object.values" + | "Promise" + | "Promise.all" + | "Promise.allSettled" + | "Promise.any" + | "Promise.race" + | "Promise.reject" + | "Promise.resolve" + | "Proxy" + | "Proxy.revocable" + | "RangeError" + | "ReferenceError" + | "Reflect" + | "Reflect.apply" + | "Reflect.construct" + | "Reflect.defineProperty" + | "Reflect.deleteProperty" + | "Reflect.get" + | "Reflect.getOwnPropertyDescriptor" + | "Reflect.getPrototypeOf" + | "Reflect.has" + | "Reflect.isExtensible" + | "Reflect.ownKeys" + | "Reflect.preventExtensions" + | "Reflect.set" + | "Reflect.setPrototypeOf" + | "RegExp" + | "RegExp.dotAll" + | "RegExp.hasIndices" + | "RegExp.input" + | "RegExp.lastIndex" + | "RegExp.lastMatch" + | "RegExp.lastParen" + | "RegExp.leftContext" + | "RegExp.n" + | "RegExp.rightContext" + | "Set" + | "SharedArrayBuffer" + | "String" + | "String.fromCharCode" + | "String.fromCodePoint" + | "String.length" + | "String.localeCompare" + | "String.raw" + | "String.toLocaleLowerCase" + | "String.toLocaleUpperCase" + | "Symbol" + | "Symbol.asyncIterator" + | "Symbol.for" + | "Symbol.hasInstance" + | "Symbol.isConcatSpreadable" + | "Symbol.iterator" + | "Symbol.keyFor" + | "Symbol.match" + | "Symbol.matchAll" + | "Symbol.replace" + | "Symbol.search" + | "Symbol.species" + | "Symbol.split" + | "Symbol.toPrimitive" + | "Symbol.toStringTag" + | "Symbol.unscopables" + | "SyntaxError" + | "TypeError" + | "URIError" + | "Uint16Array" + | "Uint16Array.BYTES_PER_ELEMENT" + | "Uint16Array.from" + | "Uint16Array.name" + | "Uint16Array.of" + | "Uint32Array" + | "Uint32Array.BYTES_PER_ELEMENT" + | "Uint32Array.from" + | "Uint32Array.name" + | "Uint32Array.of" + | "Uint8Array" + | "Uint8Array.BYTES_PER_ELEMENT" + | "Uint8Array.from" + | "Uint8Array.name" + | "Uint8Array.of" + | "Uint8ClampedArray" + | "Uint8ClampedArray.BYTES_PER_ELEMENT" + | "Uint8ClampedArray.from" + | "Uint8ClampedArray.name" + | "Uint8ClampedArray.of" + | "WeakMap" + | "WeakRef" + | "WeakSet" + | "decodeURI" + | "decodeURIComponent" + | "encodeURI" + | "encodeURIComponent" + | "escape" + | "eval" + | "globalThis" + | "isFinite" + | "isNaN" + | "parseFloat" + | "parseInt" + | "unescape" + )[]; + }, + ]; +// ----- n/no-unsupported-features/es-syntax ----- +type NNoUnsupportedFeaturesEsSyntax = + | [] + | [ + { + version?: string; + ignores?: ( + | "no-accessor-properties" + | "accessor-properties" + | "accessorProperties" + | "no-arbitrary-module-namespace-names" + | "arbitrary-module-namespace-names" + | "arbitraryModuleNamespaceNames" + | "no-array-from" + | "array-from" + | "arrayFrom" + | "no-array-isarray" + | "array-isarray" + | "arrayIsarray" + | "no-array-of" + | "array-of" + | "arrayOf" + | "no-array-prototype-copywithin" + | "array-prototype-copywithin" + | "arrayPrototypeCopywithin" + | "no-array-prototype-entries" + | "array-prototype-entries" + | "arrayPrototypeEntries" + | "no-array-prototype-every" + | "array-prototype-every" + | "arrayPrototypeEvery" + | "no-array-prototype-fill" + | "array-prototype-fill" + | "arrayPrototypeFill" + | "no-array-prototype-filter" + | "array-prototype-filter" + | "arrayPrototypeFilter" + | "no-array-prototype-find" + | "array-prototype-find" + | "arrayPrototypeFind" + | "no-array-prototype-findindex" + | "array-prototype-findindex" + | "arrayPrototypeFindindex" + | "no-array-prototype-findlast-findlastindex" + | "array-prototype-findlast-findlastindex" + | "arrayPrototypeFindlastFindlastindex" + | "no-array-prototype-flat" + | "array-prototype-flat" + | "arrayPrototypeFlat" + | "no-array-prototype-foreach" + | "array-prototype-foreach" + | "arrayPrototypeForeach" + | "no-array-prototype-includes" + | "array-prototype-includes" + | "arrayPrototypeIncludes" + | "no-array-prototype-indexof" + | "array-prototype-indexof" + | "arrayPrototypeIndexof" + | "no-array-prototype-keys" + | "array-prototype-keys" + | "arrayPrototypeKeys" + | "no-array-prototype-lastindexof" + | "array-prototype-lastindexof" + | "arrayPrototypeLastindexof" + | "no-array-prototype-map" + | "array-prototype-map" + | "arrayPrototypeMap" + | "no-array-prototype-reduce" + | "array-prototype-reduce" + | "arrayPrototypeReduce" + | "no-array-prototype-reduceright" + | "array-prototype-reduceright" + | "arrayPrototypeReduceright" + | "no-array-prototype-some" + | "array-prototype-some" + | "arrayPrototypeSome" + | "no-array-prototype-toreversed" + | "array-prototype-toreversed" + | "arrayPrototypeToreversed" + | "no-array-prototype-tosorted" + | "array-prototype-tosorted" + | "arrayPrototypeTosorted" + | "no-array-prototype-tospliced" + | "array-prototype-tospliced" + | "arrayPrototypeTospliced" + | "no-array-prototype-values" + | "array-prototype-values" + | "arrayPrototypeValues" + | "no-array-prototype-with" + | "array-prototype-with" + | "arrayPrototypeWith" + | "no-array-string-prototype-at" + | "array-string-prototype-at" + | "arrayStringPrototypeAt" + | "no-arrow-functions" + | "arrow-functions" + | "arrowFunctions" + | "no-async-functions" + | "async-functions" + | "asyncFunctions" + | "no-async-iteration" + | "async-iteration" + | "asyncIteration" + | "no-atomics-waitasync" + | "atomics-waitasync" + | "atomicsWaitasync" + | "no-atomics" + | "atomics" + | "no-bigint" + | "bigint" + | "no-binary-numeric-literals" + | "binary-numeric-literals" + | "binaryNumericLiterals" + | "no-block-scoped-functions" + | "block-scoped-functions" + | "blockScopedFunctions" + | "no-block-scoped-variables" + | "block-scoped-variables" + | "blockScopedVariables" + | "no-class-fields" + | "class-fields" + | "classFields" + | "no-class-static-block" + | "class-static-block" + | "classStaticBlock" + | "no-classes" + | "classes" + | "no-computed-properties" + | "computed-properties" + | "computedProperties" + | "no-date-now" + | "date-now" + | "dateNow" + | "no-date-prototype-getyear-setyear" + | "date-prototype-getyear-setyear" + | "datePrototypeGetyearSetyear" + | "no-date-prototype-togmtstring" + | "date-prototype-togmtstring" + | "datePrototypeTogmtstring" + | "no-default-parameters" + | "default-parameters" + | "defaultParameters" + | "no-destructuring" + | "destructuring" + | "no-dynamic-import" + | "dynamic-import" + | "dynamicImport" + | "no-error-cause" + | "error-cause" + | "errorCause" + | "no-escape-unescape" + | "escape-unescape" + | "escapeUnescape" + | "no-exponential-operators" + | "exponential-operators" + | "exponentialOperators" + | "no-export-ns-from" + | "export-ns-from" + | "exportNsFrom" + | "no-for-of-loops" + | "for-of-loops" + | "forOfLoops" + | "no-function-declarations-in-if-statement-clauses-without-block" + | "function-declarations-in-if-statement-clauses-without-block" + | "functionDeclarationsInIfStatementClausesWithoutBlock" + | "no-function-prototype-bind" + | "function-prototype-bind" + | "functionPrototypeBind" + | "no-generators" + | "generators" + | "no-global-this" + | "global-this" + | "globalThis" + | "no-hashbang" + | "hashbang" + | "no-import-meta" + | "import-meta" + | "importMeta" + | "no-initializers-in-for-in" + | "initializers-in-for-in" + | "initializersInForIn" + | "no-intl-datetimeformat-prototype-formatrange" + | "intl-datetimeformat-prototype-formatrange" + | "intlDatetimeformatPrototypeFormatrange" + | "no-intl-datetimeformat-prototype-formattoparts" + | "intl-datetimeformat-prototype-formattoparts" + | "intlDatetimeformatPrototypeFormattoparts" + | "no-intl-displaynames" + | "intl-displaynames" + | "intlDisplaynames" + | "no-intl-getcanonicallocales" + | "intl-getcanonicallocales" + | "intlGetcanonicallocales" + | "no-intl-listformat" + | "intl-listformat" + | "intlListformat" + | "no-intl-locale" + | "intl-locale" + | "intlLocale" + | "no-intl-numberformat-prototype-formatrange" + | "intl-numberformat-prototype-formatrange" + | "intlNumberformatPrototypeFormatrange" + | "no-intl-numberformat-prototype-formatrangetoparts" + | "intl-numberformat-prototype-formatrangetoparts" + | "intlNumberformatPrototypeFormatrangetoparts" + | "no-intl-numberformat-prototype-formattoparts" + | "intl-numberformat-prototype-formattoparts" + | "intlNumberformatPrototypeFormattoparts" + | "no-intl-pluralrules-prototype-selectrange" + | "intl-pluralrules-prototype-selectrange" + | "intlPluralrulesPrototypeSelectrange" + | "no-intl-pluralrules" + | "intl-pluralrules" + | "intlPluralrules" + | "no-intl-relativetimeformat" + | "intl-relativetimeformat" + | "intlRelativetimeformat" + | "no-intl-segmenter" + | "intl-segmenter" + | "intlSegmenter" + | "no-intl-supportedvaluesof" + | "intl-supportedvaluesof" + | "intlSupportedvaluesof" + | "no-json-superset" + | "json-superset" + | "jsonSuperset" + | "no-json" + | "json" + | "no-keyword-properties" + | "keyword-properties" + | "keywordProperties" + | "no-labelled-function-declarations" + | "labelled-function-declarations" + | "labelledFunctionDeclarations" + | "no-legacy-object-prototype-accessor-methods" + | "legacy-object-prototype-accessor-methods" + | "legacyObjectPrototypeAccessorMethods" + | "no-logical-assignment-operators" + | "logical-assignment-operators" + | "logicalAssignmentOperators" + | "no-malformed-template-literals" + | "malformed-template-literals" + | "malformedTemplateLiterals" + | "no-map" + | "map" + | "no-math-acosh" + | "math-acosh" + | "mathAcosh" + | "no-math-asinh" + | "math-asinh" + | "mathAsinh" + | "no-math-atanh" + | "math-atanh" + | "mathAtanh" + | "no-math-cbrt" + | "math-cbrt" + | "mathCbrt" + | "no-math-clz32" + | "math-clz32" + | "mathClz32" + | "no-math-cosh" + | "math-cosh" + | "mathCosh" + | "no-math-expm1" + | "math-expm1" + | "mathExpm1" + | "no-math-fround" + | "math-fround" + | "mathFround" + | "no-math-hypot" + | "math-hypot" + | "mathHypot" + | "no-math-imul" + | "math-imul" + | "mathImul" + | "no-math-log10" + | "math-log10" + | "mathLog10" + | "no-math-log1p" + | "math-log1p" + | "mathLog1p" + | "no-math-log2" + | "math-log2" + | "mathLog2" + | "no-math-sign" + | "math-sign" + | "mathSign" + | "no-math-sinh" + | "math-sinh" + | "mathSinh" + | "no-math-tanh" + | "math-tanh" + | "mathTanh" + | "no-math-trunc" + | "math-trunc" + | "mathTrunc" + | "no-modules" + | "modules" + | "no-new-target" + | "new-target" + | "newTarget" + | "new.target" + | "no-nullish-coalescing-operators" + | "nullish-coalescing-operators" + | "nullishCoalescingOperators" + | "no-number-epsilon" + | "number-epsilon" + | "numberEpsilon" + | "no-number-isfinite" + | "number-isfinite" + | "numberIsfinite" + | "no-number-isinteger" + | "number-isinteger" + | "numberIsinteger" + | "no-number-isnan" + | "number-isnan" + | "numberIsnan" + | "no-number-issafeinteger" + | "number-issafeinteger" + | "numberIssafeinteger" + | "no-number-maxsafeinteger" + | "number-maxsafeinteger" + | "numberMaxsafeinteger" + | "no-number-minsafeinteger" + | "number-minsafeinteger" + | "numberMinsafeinteger" + | "no-number-parsefloat" + | "number-parsefloat" + | "numberParsefloat" + | "no-number-parseint" + | "number-parseint" + | "numberParseint" + | "no-numeric-separators" + | "numeric-separators" + | "numericSeparators" + | "no-object-assign" + | "object-assign" + | "objectAssign" + | "no-object-create" + | "object-create" + | "objectCreate" + | "no-object-defineproperties" + | "object-defineproperties" + | "objectDefineproperties" + | "no-object-defineproperty" + | "object-defineproperty" + | "objectDefineproperty" + | "no-object-entries" + | "object-entries" + | "objectEntries" + | "no-object-freeze" + | "object-freeze" + | "objectFreeze" + | "no-object-fromentries" + | "object-fromentries" + | "objectFromentries" + | "no-object-getownpropertydescriptor" + | "object-getownpropertydescriptor" + | "objectGetownpropertydescriptor" + | "no-object-getownpropertydescriptors" + | "object-getownpropertydescriptors" + | "objectGetownpropertydescriptors" + | "no-object-getownpropertynames" + | "object-getownpropertynames" + | "objectGetownpropertynames" + | "no-object-getownpropertysymbols" + | "object-getownpropertysymbols" + | "objectGetownpropertysymbols" + | "no-object-getprototypeof" + | "object-getprototypeof" + | "objectGetprototypeof" + | "no-object-hasown" + | "object-hasown" + | "objectHasown" + | "no-object-is" + | "object-is" + | "objectIs" + | "no-object-isextensible" + | "object-isextensible" + | "objectIsextensible" + | "no-object-isfrozen" + | "object-isfrozen" + | "objectIsfrozen" + | "no-object-issealed" + | "object-issealed" + | "objectIssealed" + | "no-object-keys" + | "object-keys" + | "objectKeys" + | "no-object-map-groupby" + | "object-map-groupby" + | "objectMapGroupby" + | "no-object-preventextensions" + | "object-preventextensions" + | "objectPreventextensions" + | "no-object-seal" + | "object-seal" + | "objectSeal" + | "no-object-setprototypeof" + | "object-setprototypeof" + | "objectSetprototypeof" + | "no-object-super-properties" + | "object-super-properties" + | "objectSuperProperties" + | "no-object-values" + | "object-values" + | "objectValues" + | "no-octal-numeric-literals" + | "octal-numeric-literals" + | "octalNumericLiterals" + | "no-optional-catch-binding" + | "optional-catch-binding" + | "optionalCatchBinding" + | "no-optional-chaining" + | "optional-chaining" + | "optionalChaining" + | "no-private-in" + | "private-in" + | "privateIn" + | "no-promise-all-settled" + | "promise-all-settled" + | "promiseAllSettled" + | "no-promise-any" + | "promise-any" + | "promiseAny" + | "no-promise-prototype-finally" + | "promise-prototype-finally" + | "promisePrototypeFinally" + | "no-promise-withresolvers" + | "promise-withresolvers" + | "promiseWithresolvers" + | "no-promise" + | "promise" + | "no-property-shorthands" + | "property-shorthands" + | "propertyShorthands" + | "no-proxy" + | "proxy" + | "no-reflect" + | "reflect" + | "no-regexp-d-flag" + | "regexp-d-flag" + | "regexpDFlag" + | "no-regexp-lookbehind-assertions" + | "regexp-lookbehind-assertions" + | "regexpLookbehindAssertions" + | "regexpLookbehind" + | "no-regexp-named-capture-groups" + | "regexp-named-capture-groups" + | "regexpNamedCaptureGroups" + | "no-regexp-prototype-compile" + | "regexp-prototype-compile" + | "regexpPrototypeCompile" + | "no-regexp-prototype-flags" + | "regexp-prototype-flags" + | "regexpPrototypeFlags" + | "no-regexp-s-flag" + | "regexp-s-flag" + | "regexpSFlag" + | "regexpS" + | "no-regexp-u-flag" + | "regexp-u-flag" + | "regexpUFlag" + | "regexpU" + | "no-regexp-unicode-property-escapes-2019" + | "regexp-unicode-property-escapes-2019" + | "regexpUnicodePropertyEscapes2019" + | "no-regexp-unicode-property-escapes-2020" + | "regexp-unicode-property-escapes-2020" + | "regexpUnicodePropertyEscapes2020" + | "no-regexp-unicode-property-escapes-2021" + | "regexp-unicode-property-escapes-2021" + | "regexpUnicodePropertyEscapes2021" + | "no-regexp-unicode-property-escapes-2022" + | "regexp-unicode-property-escapes-2022" + | "regexpUnicodePropertyEscapes2022" + | "no-regexp-unicode-property-escapes-2023" + | "regexp-unicode-property-escapes-2023" + | "regexpUnicodePropertyEscapes2023" + | "no-regexp-unicode-property-escapes" + | "regexp-unicode-property-escapes" + | "regexpUnicodePropertyEscapes" + | "regexpUnicodeProperties" + | "no-regexp-v-flag" + | "regexp-v-flag" + | "regexpVFlag" + | "no-regexp-y-flag" + | "regexp-y-flag" + | "regexpYFlag" + | "regexpY" + | "no-resizable-and-growable-arraybuffers" + | "resizable-and-growable-arraybuffers" + | "resizableAndGrowableArraybuffers" + | "no-rest-parameters" + | "rest-parameters" + | "restParameters" + | "no-rest-spread-properties" + | "rest-spread-properties" + | "restSpreadProperties" + | "no-set" + | "set" + | "no-shadow-catch-param" + | "shadow-catch-param" + | "shadowCatchParam" + | "no-shared-array-buffer" + | "shared-array-buffer" + | "sharedArrayBuffer" + | "no-spread-elements" + | "spread-elements" + | "spreadElements" + | "no-string-create-html-methods" + | "string-create-html-methods" + | "stringCreateHtmlMethods" + | "no-string-fromcodepoint" + | "string-fromcodepoint" + | "stringFromcodepoint" + | "no-string-prototype-codepointat" + | "string-prototype-codepointat" + | "stringPrototypeCodepointat" + | "no-string-prototype-endswith" + | "string-prototype-endswith" + | "stringPrototypeEndswith" + | "no-string-prototype-includes" + | "string-prototype-includes" + | "stringPrototypeIncludes" + | "no-string-prototype-iswellformed-towellformed" + | "string-prototype-iswellformed-towellformed" + | "stringPrototypeIswellformedTowellformed" + | "no-string-prototype-matchall" + | "string-prototype-matchall" + | "stringPrototypeMatchall" + | "no-string-prototype-normalize" + | "string-prototype-normalize" + | "stringPrototypeNormalize" + | "no-string-prototype-padstart-padend" + | "string-prototype-padstart-padend" + | "stringPrototypePadstartPadend" + | "no-string-prototype-repeat" + | "string-prototype-repeat" + | "stringPrototypeRepeat" + | "no-string-prototype-replaceall" + | "string-prototype-replaceall" + | "stringPrototypeReplaceall" + | "no-string-prototype-startswith" + | "string-prototype-startswith" + | "stringPrototypeStartswith" + | "no-string-prototype-substr" + | "string-prototype-substr" + | "stringPrototypeSubstr" + | "no-string-prototype-trim" + | "string-prototype-trim" + | "stringPrototypeTrim" + | "no-string-prototype-trimleft-trimright" + | "string-prototype-trimleft-trimright" + | "stringPrototypeTrimleftTrimright" + | "no-string-prototype-trimstart-trimend" + | "string-prototype-trimstart-trimend" + | "stringPrototypeTrimstartTrimend" + | "no-string-raw" + | "string-raw" + | "stringRaw" + | "no-subclassing-builtins" + | "subclassing-builtins" + | "subclassingBuiltins" + | "no-symbol-prototype-description" + | "symbol-prototype-description" + | "symbolPrototypeDescription" + | "no-symbol" + | "symbol" + | "no-template-literals" + | "template-literals" + | "templateLiterals" + | "no-top-level-await" + | "top-level-await" + | "topLevelAwait" + | "no-trailing-commas" + | "trailing-commas" + | "trailingCommas" + | "no-trailing-function-commas" + | "trailing-function-commas" + | "trailingFunctionCommas" + | "trailingCommasInFunctions" + | "no-typed-arrays" + | "typed-arrays" + | "typedArrays" + | "no-unicode-codepoint-escapes" + | "unicode-codepoint-escapes" + | "unicodeCodepointEscapes" + | "unicodeCodePointEscapes" + | "no-weak-map" + | "weak-map" + | "weakMap" + | "no-weak-set" + | "weak-set" + | "weakSet" + | "no-weakrefs" + | "weakrefs" + )[]; + }, + ]; +// ----- n/no-unsupported-features/node-builtins ----- +type NNoUnsupportedFeaturesNodeBuiltins = + | [] + | [ + { + version?: string; + allowExperimental?: boolean; + ignores?: ( + | "__filename" + | "__dirname" + | "require" + | "require.cache" + | "require.extensions" + | "require.main" + | "require.resolve" + | "require.resolve.paths" + | "module" + | "module.children" + | "module.exports" + | "module.filename" + | "module.id" + | "module.isPreloading" + | "module.loaded" + | "module.parent" + | "module.path" + | "module.paths" + | "module.require" + | "exports" + | "AbortController" + | "AbortSignal" + | "AbortSignal.abort" + | "AbortSignal.timeout" + | "AbortSignal.any" + | "DOMException" + | "FormData" + | "Headers" + | "MessageEvent" + | "Navigator" + | "Request" + | "Response" + | "WebAssembly" + | "WebSocket" + | "fetch" + | "global" + | "queueMicrotask" + | "navigator" + | "navigator.hardwareConcurrency" + | "navigator.language" + | "navigator.languages" + | "navigator.platform" + | "navigator.userAgent" + | "structuredClone" + | "localStorage" + | "sessionStorage" + | "Storage" + | "Blob" + | "new Buffer()" + | "Buffer" + | "Buffer.alloc" + | "Buffer.allocUnsafe" + | "Buffer.allocUnsafeSlow" + | "Buffer.byteLength" + | "Buffer.compare" + | "Buffer.concat" + | "Buffer.copyBytesFrom" + | "Buffer.from" + | "Buffer.isBuffer" + | "Buffer.isEncoding" + | "File" + | "atob" + | "btoa" + | "console" + | "console.profile" + | "console.profileEnd" + | "console.timeStamp" + | "console.Console" + | "console.assert" + | "console.clear" + | "console.count" + | "console.countReset" + | "console.debug" + | "console.dir" + | "console.dirxml" + | "console.error" + | "console.group" + | "console.groupCollapsed" + | "console.groupEnd" + | "console.info" + | "console.log" + | "console.table" + | "console.time" + | "console.timeEnd" + | "console.timeLog" + | "console.trace" + | "console.warn" + | "crypto" + | "crypto.subtle" + | "crypto.subtle.decrypt" + | "crypto.subtle.deriveBits" + | "crypto.subtle.deriveKey" + | "crypto.subtle.digest" + | "crypto.subtle.encrypt" + | "crypto.subtle.exportKey" + | "crypto.subtle.generateKey" + | "crypto.subtle.importKey" + | "crypto.subtle.sign" + | "crypto.subtle.unwrapKey" + | "crypto.subtle.verify" + | "crypto.subtle.wrapKey" + | "crypto.getRandomValues" + | "crypto.randomUUID" + | "Crypto" + | "CryptoKey" + | "SubtleCrypto" + | "CloseEvent" + | "CustomEvent" + | "Event" + | "EventTarget" + | "PerformanceEntry" + | "PerformanceMark" + | "PerformanceMeasure" + | "PerformanceObserver" + | "PerformanceObserverEntryList" + | "PerformanceResourceTiming" + | "performance" + | "performance.clearMarks" + | "performance.clearMeasures" + | "performance.clearResourceTimings" + | "performance.eventLoopUtilization" + | "performance.getEntries" + | "performance.getEntriesByName" + | "performance.getEntriesByType" + | "performance.mark" + | "performance.markResourceTiming" + | "performance.measure" + | "performance.nodeTiming" + | "performance.nodeTiming.bootstrapComplete" + | "performance.nodeTiming.environment" + | "performance.nodeTiming.idleTime" + | "performance.nodeTiming.loopExit" + | "performance.nodeTiming.loopStart" + | "performance.nodeTiming.nodeStart" + | "performance.nodeTiming.uvMetricsInfo" + | "performance.nodeTiming.v8Start" + | "performance.now" + | "performance.onresourcetimingbufferfull" + | "performance.setResourceTimingBufferSize" + | "performance.timeOrigin" + | "performance.timerify" + | "performance.toJSON" + | "process" + | "process.allowedNodeEnvironmentFlags" + | "process.availableMemory" + | "process.arch" + | "process.argv" + | "process.argv0" + | "process.channel" + | "process.config" + | "process.connected" + | "process.debugPort" + | "process.env" + | "process.execArgv" + | "process.execPath" + | "process.exitCode" + | "process.features.cached_builtins" + | "process.features.debug" + | "process.features.inspector" + | "process.features.ipv6" + | "process.features.require_module" + | "process.features.tls" + | "process.features.tls_alpn" + | "process.features.tls_ocsp" + | "process.features.tls_sni" + | "process.features.typescript" + | "process.features.uv" + | "process.finalization.register" + | "process.finalization.registerBeforeExit" + | "process.finalization.unregister" + | "process.getBuiltinModule" + | "process.mainModule" + | "process.noDeprecation" + | "process.permission" + | "process.pid" + | "process.platform" + | "process.ppid" + | "process.release" + | "process.report" + | "process.sourceMapsEnabled" + | "process.stdin" + | "process.stdin.isRaw" + | "process.stdin.isTTY" + | "process.stdin.setRawMode" + | "process.stdout" + | "process.stdout.clearLine" + | "process.stdout.clearScreenDown" + | "process.stdout.columns" + | "process.stdout.cursorTo" + | "process.stdout.getColorDepth" + | "process.stdout.getWindowSize" + | "process.stdout.hasColors" + | "process.stdout.isTTY" + | "process.stdout.moveCursor" + | "process.stdout.rows" + | "process.stderr" + | "process.stderr.clearLine" + | "process.stderr.clearScreenDown" + | "process.stderr.columns" + | "process.stderr.cursorTo" + | "process.stderr.getColorDepth" + | "process.stderr.getWindowSize" + | "process.stderr.hasColors" + | "process.stderr.isTTY" + | "process.stderr.moveCursor" + | "process.stderr.rows" + | "process.throwDeprecation" + | "process.title" + | "process.traceDeprecation" + | "process.version" + | "process.versions" + | "process.abort" + | "process.chdir" + | "process.constrainedMemory" + | "process.cpuUsage" + | "process.cwd" + | "process.disconnect" + | "process.dlopen" + | "process.emitWarning" + | "process.exit" + | "process.getActiveResourcesInfo" + | "process.getegid" + | "process.geteuid" + | "process.getgid" + | "process.getgroups" + | "process.getuid" + | "process.hasUncaughtExceptionCaptureCallback" + | "process.hrtime" + | "process.hrtime.bigint" + | "process.initgroups" + | "process.kill" + | "process.loadEnvFile" + | "process.memoryUsage" + | "process.rss" + | "process.nextTick" + | "process.resourceUsage" + | "process.send" + | "process.setegid" + | "process.seteuid" + | "process.setgid" + | "process.setgroups" + | "process.setuid" + | "process.setSourceMapsEnabled" + | "process.setUncaughtExceptionCaptureCallback" + | "process.umask" + | "process.uptime" + | "ReadableStream" + | "ReadableStream.from" + | "ReadableStreamDefaultReader" + | "ReadableStreamBYOBReader" + | "ReadableStreamDefaultController" + | "ReadableByteStreamController" + | "ReadableStreamBYOBRequest" + | "WritableStream" + | "WritableStreamDefaultWriter" + | "WritableStreamDefaultController" + | "TransformStream" + | "TransformStreamDefaultController" + | "ByteLengthQueuingStrategy" + | "CountQueuingStrategy" + | "TextEncoderStream" + | "TextDecoderStream" + | "CompressionStream" + | "DecompressionStream" + | "setInterval" + | "clearInterval" + | "setTimeout" + | "clearTimeout" + | "setImmediate" + | "clearImmediate" + | "URL" + | "URL.canParse" + | "URL.createObjectURL" + | "URL.revokeObjectURL" + | "URLSearchParams" + | "TextDecoder" + | "TextEncoder" + | "BroadcastChannel" + | "MessageChannel" + | "MessagePort" + | "assert" + | "assert.assert" + | "assert.deepEqual" + | "assert.deepStrictEqual" + | "assert.doesNotMatch" + | "assert.doesNotReject" + | "assert.doesNotThrow" + | "assert.equal" + | "assert.fail" + | "assert.ifError" + | "assert.match" + | "assert.notDeepEqual" + | "assert.notDeepStrictEqual" + | "assert.notEqual" + | "assert.notStrictEqual" + | "assert.ok" + | "assert.rejects" + | "assert.strictEqual" + | "assert.throws" + | "assert.CallTracker" + | "assert.strict" + | "assert.strict.assert" + | "assert.strict.deepEqual" + | "assert.strict.deepStrictEqual" + | "assert.strict.doesNotMatch" + | "assert.strict.doesNotReject" + | "assert.strict.doesNotThrow" + | "assert.strict.equal" + | "assert.strict.fail" + | "assert.strict.ifError" + | "assert.strict.match" + | "assert.strict.notDeepEqual" + | "assert.strict.notDeepStrictEqual" + | "assert.strict.notEqual" + | "assert.strict.notStrictEqual" + | "assert.strict.ok" + | "assert.strict.rejects" + | "assert.strict.strictEqual" + | "assert.strict.throws" + | "assert.strict.CallTracker" + | "assert/strict" + | "assert/strict.assert" + | "assert/strict.deepEqual" + | "assert/strict.deepStrictEqual" + | "assert/strict.doesNotMatch" + | "assert/strict.doesNotReject" + | "assert/strict.doesNotThrow" + | "assert/strict.equal" + | "assert/strict.fail" + | "assert/strict.ifError" + | "assert/strict.match" + | "assert/strict.notDeepEqual" + | "assert/strict.notDeepStrictEqual" + | "assert/strict.notEqual" + | "assert/strict.notStrictEqual" + | "assert/strict.ok" + | "assert/strict.rejects" + | "assert/strict.strictEqual" + | "assert/strict.throws" + | "assert/strict.CallTracker" + | "async_hooks" + | "async_hooks.createHook" + | "async_hooks.executionAsyncResource" + | "async_hooks.executionAsyncId" + | "async_hooks.triggerAsyncId" + | "async_hooks.AsyncLocalStorage" + | "async_hooks.AsyncLocalStorage.bind" + | "async_hooks.AsyncLocalStorage.snapshot" + | "async_hooks.AsyncResource" + | "async_hooks.AsyncResource.bind" + | "buffer" + | "buffer.constants" + | "buffer.INSPECT_MAX_BYTES" + | "buffer.kMaxLength" + | "buffer.kStringMaxLength" + | "buffer.atob" + | "buffer.btoa" + | "buffer.isAscii" + | "buffer.isUtf8" + | "buffer.resolveObjectURL" + | "buffer.transcode" + | "buffer.SlowBuffer" + | "buffer.Blob" + | "new buffer.Buffer()" + | "buffer.Buffer" + | "buffer.Buffer.alloc" + | "buffer.Buffer.allocUnsafe" + | "buffer.Buffer.allocUnsafeSlow" + | "buffer.Buffer.byteLength" + | "buffer.Buffer.compare" + | "buffer.Buffer.concat" + | "buffer.Buffer.copyBytesFrom" + | "buffer.Buffer.from" + | "buffer.Buffer.isBuffer" + | "buffer.Buffer.isEncoding" + | "buffer.File" + | "child_process" + | "child_process.exec" + | "child_process.execFile" + | "child_process.fork" + | "child_process.spawn" + | "child_process.execFileSync" + | "child_process.execSync" + | "child_process.spawnSync" + | "child_process.ChildProcess" + | "cluster" + | "cluster.isMaster" + | "cluster.isPrimary" + | "cluster.isWorker" + | "cluster.schedulingPolicy" + | "cluster.settings" + | "cluster.worker" + | "cluster.workers" + | "cluster.disconnect" + | "cluster.fork" + | "cluster.setupMaster" + | "cluster.setupPrimary" + | "cluster.Worker" + | "crypto.constants" + | "crypto.fips" + | "crypto.webcrypto" + | "crypto.webcrypto.subtle" + | "crypto.webcrypto.subtle.decrypt" + | "crypto.webcrypto.subtle.deriveBits" + | "crypto.webcrypto.subtle.deriveKey" + | "crypto.webcrypto.subtle.digest" + | "crypto.webcrypto.subtle.encrypt" + | "crypto.webcrypto.subtle.exportKey" + | "crypto.webcrypto.subtle.generateKey" + | "crypto.webcrypto.subtle.importKey" + | "crypto.webcrypto.subtle.sign" + | "crypto.webcrypto.subtle.unwrapKey" + | "crypto.webcrypto.subtle.verify" + | "crypto.webcrypto.subtle.wrapKey" + | "crypto.webcrypto.getRandomValues" + | "crypto.webcrypto.randomUUID" + | "crypto.checkPrime" + | "crypto.checkPrimeSync" + | "crypto.createCipher" + | "crypto.createCipheriv" + | "crypto.createDecipher" + | "crypto.createDecipheriv" + | "crypto.createDiffieHellman" + | "crypto.createDiffieHellmanGroup" + | "crypto.createECDH" + | "crypto.createHash" + | "crypto.createHmac" + | "crypto.createPrivateKey" + | "crypto.createPublicKey" + | "crypto.createSecretKey" + | "crypto.createSign" + | "crypto.createVerify" + | "crypto.diffieHellman" + | "crypto.generateKey" + | "crypto.generateKeyPair" + | "crypto.generateKeyPairSync" + | "crypto.generateKeySync" + | "crypto.generatePrime" + | "crypto.generatePrimeSync" + | "crypto.getCipherInfo" + | "crypto.getCiphers" + | "crypto.getCurves" + | "crypto.getDiffieHellman" + | "crypto.getFips" + | "crypto.getHashes" + | "crypto.hash" + | "crypto.hkdf" + | "crypto.hkdfSync" + | "crypto.pbkdf2" + | "crypto.pbkdf2Sync" + | "crypto.privateDecrypt" + | "crypto.privateEncrypt" + | "crypto.publicDecrypt" + | "crypto.publicEncrypt" + | "crypto.randomBytes" + | "crypto.randomFillSync" + | "crypto.randomFill" + | "crypto.randomInt" + | "crypto.scrypt" + | "crypto.scryptSync" + | "crypto.secureHeapUsed" + | "crypto.setEngine" + | "crypto.setFips" + | "crypto.sign" + | "crypto.timingSafeEqual" + | "crypto.verify" + | "crypto.Certificate" + | "crypto.Certificate.exportChallenge" + | "crypto.Certificate.exportPublicKey" + | "crypto.Certificate.verifySpkac" + | "crypto.Cipher" + | "crypto.Decipher" + | "crypto.DiffieHellman" + | "crypto.DiffieHellmanGroup" + | "crypto.ECDH" + | "crypto.ECDH.convertKey" + | "crypto.Hash()" + | "new crypto.Hash()" + | "crypto.Hash" + | "crypto.Hmac()" + | "new crypto.Hmac()" + | "crypto.Hmac" + | "crypto.KeyObject" + | "crypto.KeyObject.from" + | "crypto.Sign" + | "crypto.Verify" + | "crypto.X509Certificate" + | "dgram" + | "dgram.createSocket" + | "dgram.Socket" + | "diagnostics_channel" + | "diagnostics_channel.hasSubscribers" + | "diagnostics_channel.channel" + | "diagnostics_channel.subscribe" + | "diagnostics_channel.unsubscribe" + | "diagnostics_channel.tracingChannel" + | "diagnostics_channel.Channel" + | "diagnostics_channel.TracingChannel" + | "dns" + | "dns.Resolver" + | "dns.getServers" + | "dns.lookup" + | "dns.lookupService" + | "dns.resolve" + | "dns.resolve4" + | "dns.resolve6" + | "dns.resolveAny" + | "dns.resolveCname" + | "dns.resolveCaa" + | "dns.resolveMx" + | "dns.resolveNaptr" + | "dns.resolveNs" + | "dns.resolvePtr" + | "dns.resolveSoa" + | "dns.resolveSrv" + | "dns.resolveTxt" + | "dns.reverse" + | "dns.setDefaultResultOrder" + | "dns.getDefaultResultOrder" + | "dns.setServers" + | "dns.promises" + | "dns.promises.Resolver" + | "dns.promises.cancel" + | "dns.promises.getServers" + | "dns.promises.lookup" + | "dns.promises.lookupService" + | "dns.promises.resolve" + | "dns.promises.resolve4" + | "dns.promises.resolve6" + | "dns.promises.resolveAny" + | "dns.promises.resolveCaa" + | "dns.promises.resolveCname" + | "dns.promises.resolveMx" + | "dns.promises.resolveNaptr" + | "dns.promises.resolveNs" + | "dns.promises.resolvePtr" + | "dns.promises.resolveSoa" + | "dns.promises.resolveSrv" + | "dns.promises.resolveTxt" + | "dns.promises.reverse" + | "dns.promises.setDefaultResultOrder" + | "dns.promises.getDefaultResultOrder" + | "dns.promises.setServers" + | "dns/promises" + | "dns/promises.Resolver" + | "dns/promises.cancel" + | "dns/promises.getServers" + | "dns/promises.lookup" + | "dns/promises.lookupService" + | "dns/promises.resolve" + | "dns/promises.resolve4" + | "dns/promises.resolve6" + | "dns/promises.resolveAny" + | "dns/promises.resolveCaa" + | "dns/promises.resolveCname" + | "dns/promises.resolveMx" + | "dns/promises.resolveNaptr" + | "dns/promises.resolveNs" + | "dns/promises.resolvePtr" + | "dns/promises.resolveSoa" + | "dns/promises.resolveSrv" + | "dns/promises.resolveTxt" + | "dns/promises.reverse" + | "dns/promises.setDefaultResultOrder" + | "dns/promises.getDefaultResultOrder" + | "dns/promises.setServers" + | "domain" + | "domain.create" + | "domain.Domain" + | "events" + | "events.Event" + | "events.EventTarget" + | "events.CustomEvent" + | "events.NodeEventTarget" + | "events.EventEmitter" + | "events.EventEmitter.defaultMaxListeners" + | "events.EventEmitter.errorMonitor" + | "events.EventEmitter.captureRejections" + | "events.EventEmitter.captureRejectionSymbol" + | "events.EventEmitter.getEventListeners" + | "events.EventEmitter.getMaxListeners" + | "events.EventEmitter.once" + | "events.EventEmitter.listenerCount" + | "events.EventEmitter.on" + | "events.EventEmitter.setMaxListeners" + | "events.EventEmitter.addAbortListener" + | "events.EventEmitterAsyncResource" + | "events.EventEmitterAsyncResource.defaultMaxListeners" + | "events.EventEmitterAsyncResource.errorMonitor" + | "events.EventEmitterAsyncResource.captureRejections" + | "events.EventEmitterAsyncResource.captureRejectionSymbol" + | "events.EventEmitterAsyncResource.getEventListeners" + | "events.EventEmitterAsyncResource.getMaxListeners" + | "events.EventEmitterAsyncResource.once" + | "events.EventEmitterAsyncResource.listenerCount" + | "events.EventEmitterAsyncResource.on" + | "events.EventEmitterAsyncResource.setMaxListeners" + | "events.EventEmitterAsyncResource.addAbortListener" + | "events.defaultMaxListeners" + | "events.errorMonitor" + | "events.captureRejections" + | "events.captureRejectionSymbol" + | "events.getEventListeners" + | "events.getMaxListeners" + | "events.once" + | "events.listenerCount" + | "events.on" + | "events.setMaxListeners" + | "events.addAbortListener" + | "fs" + | "fs.promises" + | "fs.promises.FileHandle" + | "fs.promises.access" + | "fs.promises.appendFile" + | "fs.promises.chmod" + | "fs.promises.chown" + | "fs.promises.constants" + | "fs.promises.copyFile" + | "fs.promises.cp" + | "fs.promises.glob" + | "fs.promises.lchmod" + | "fs.promises.lchown" + | "fs.promises.link" + | "fs.promises.lstat" + | "fs.promises.lutimes" + | "fs.promises.mkdir" + | "fs.promises.mkdtemp" + | "fs.promises.open" + | "fs.promises.opendir" + | "fs.promises.readFile" + | "fs.promises.readdir" + | "fs.promises.readlink" + | "fs.promises.realpath" + | "fs.promises.rename" + | "fs.promises.rm" + | "fs.promises.rmdir" + | "fs.promises.stat" + | "fs.promises.statfs" + | "fs.promises.symlink" + | "fs.promises.truncate" + | "fs.promises.unlink" + | "fs.promises.utimes" + | "fs.promises.watch" + | "fs.promises.writeFile" + | "fs.access" + | "fs.appendFile" + | "fs.chmod" + | "fs.chown" + | "fs.close" + | "fs.copyFile" + | "fs.cp" + | "fs.createReadStream" + | "fs.createWriteStream" + | "fs.exists" + | "fs.fchmod" + | "fs.fchown" + | "fs.fdatasync" + | "fs.fstat" + | "fs.fsync" + | "fs.ftruncate" + | "fs.futimes" + | "fs.glob" + | "fs.lchmod" + | "fs.lchown" + | "fs.link" + | "fs.lstat" + | "fs.lutimes" + | "fs.mkdir" + | "fs.mkdtemp" + | "fs.native" + | "fs.open" + | "fs.openAsBlob" + | "fs.opendir" + | "fs.read" + | "fs.readdir" + | "fs.readFile" + | "fs.readlink" + | "fs.readv" + | "fs.realpath" + | "fs.realpath.native" + | "fs.rename" + | "fs.rm" + | "fs.rmdir" + | "fs.stat" + | "fs.statfs" + | "fs.symlink" + | "fs.truncate" + | "fs.unlink" + | "fs.unwatchFile" + | "fs.utimes" + | "fs.watch" + | "fs.watchFile" + | "fs.write" + | "fs.writeFile" + | "fs.writev" + | "fs.accessSync" + | "fs.appendFileSync" + | "fs.chmodSync" + | "fs.chownSync" + | "fs.closeSync" + | "fs.copyFileSync" + | "fs.cpSync" + | "fs.existsSync" + | "fs.fchmodSync" + | "fs.fchownSync" + | "fs.fdatasyncSync" + | "fs.fstatSync" + | "fs.fsyncSync" + | "fs.ftruncateSync" + | "fs.futimesSync" + | "fs.globSync" + | "fs.lchmodSync" + | "fs.lchownSync" + | "fs.linkSync" + | "fs.lstatSync" + | "fs.lutimesSync" + | "fs.mkdirSync" + | "fs.mkdtempSync" + | "fs.opendirSync" + | "fs.openSync" + | "fs.readdirSync" + | "fs.readFileSync" + | "fs.readlinkSync" + | "fs.readSync" + | "fs.readvSync" + | "fs.realpathSync" + | "fs.realpathSync.native" + | "fs.renameSync" + | "fs.rmdirSync" + | "fs.rmSync" + | "fs.statfsSync" + | "fs.statSync" + | "fs.symlinkSync" + | "fs.truncateSync" + | "fs.unlinkSync" + | "fs.utimesSync" + | "fs.writeFileSync" + | "fs.writeSync" + | "fs.writevSync" + | "fs.constants" + | "fs.Dir" + | "fs.Dirent" + | "fs.FSWatcher" + | "fs.StatWatcher" + | "fs.ReadStream" + | "fs.Stats()" + | "new fs.Stats()" + | "fs.Stats" + | "fs.StatFs" + | "fs.WriteStream" + | "fs.common_objects" + | "fs/promises" + | "fs/promises.FileHandle" + | "fs/promises.access" + | "fs/promises.appendFile" + | "fs/promises.chmod" + | "fs/promises.chown" + | "fs/promises.constants" + | "fs/promises.copyFile" + | "fs/promises.cp" + | "fs/promises.glob" + | "fs/promises.lchmod" + | "fs/promises.lchown" + | "fs/promises.link" + | "fs/promises.lstat" + | "fs/promises.lutimes" + | "fs/promises.mkdir" + | "fs/promises.mkdtemp" + | "fs/promises.open" + | "fs/promises.opendir" + | "fs/promises.readFile" + | "fs/promises.readdir" + | "fs/promises.readlink" + | "fs/promises.realpath" + | "fs/promises.rename" + | "fs/promises.rm" + | "fs/promises.rmdir" + | "fs/promises.stat" + | "fs/promises.statfs" + | "fs/promises.symlink" + | "fs/promises.truncate" + | "fs/promises.unlink" + | "fs/promises.utimes" + | "fs/promises.watch" + | "fs/promises.writeFile" + | "http2" + | "http2.constants" + | "http2.sensitiveHeaders" + | "http2.createServer" + | "http2.createSecureServer" + | "http2.connect" + | "http2.getDefaultSettings" + | "http2.getPackedSettings" + | "http2.getUnpackedSettings" + | "http2.performServerHandshake" + | "http2.Http2Session" + | "http2.ServerHttp2Session" + | "http2.ClientHttp2Session" + | "http2.Http2Stream" + | "http2.ClientHttp2Stream" + | "http2.ServerHttp2Stream" + | "http2.Http2Server" + | "http2.Http2SecureServer" + | "http2.Http2ServerRequest" + | "http2.Http2ServerResponse" + | "http" + | "http.globalAgent" + | "http.createServer" + | "http.get" + | "http.request" + | "http.Agent" + | "http.Server" + | "inspector" + | "inspector.Session" + | "inspector.Network.requestWillBeSent" + | "inspector.Network.responseReceived" + | "inspector.Network.loadingFinished" + | "inspector.Network.loadingFailed" + | "inspector.console" + | "inspector.close" + | "inspector.open" + | "inspector.url" + | "inspector.waitForDebugger" + | "inspector/promises" + | "inspector/promises.Session" + | "inspector/promises.console" + | "inspector/promises.close" + | "inspector/promises.open" + | "inspector/promises.url" + | "inspector/promises.waitForDebugger" + | "module.builtinModules" + | "module.constants.compileCacheStatus" + | "module.createRequire" + | "module.createRequireFromPath" + | "module.enableCompileCache" + | "module.flushCompileCache" + | "module.getCompileCacheDir" + | "module.isBuiltin" + | "module.register" + | "module.syncBuiltinESMExports" + | "module.findSourceMap" + | "module.SourceMap" + | "module.Module.builtinModules" + | "module.Module.createRequire" + | "module.Module.createRequireFromPath" + | "module.Module.enableCompileCache" + | "module.Module.flushCompileCache" + | "module.Module.getCompileCacheDir" + | "module.Module.isBuiltin" + | "module.Module.register" + | "module.Module.syncBuiltinESMExports" + | "module.Module.findSourceMap" + | "module.Module.SourceMap" + | "net" + | "net.connect" + | "net.createConnection" + | "net.createServer" + | "net.getDefaultAutoSelectFamily" + | "net.setDefaultAutoSelectFamily" + | "net.getDefaultAutoSelectFamilyAttemptTimeout" + | "net.setDefaultAutoSelectFamilyAttemptTimeout" + | "net.isIP" + | "net.isIPv4" + | "net.isIPv6" + | "net.BlockList" + | "net.SocketAddress" + | "net.Server" + | "net.Socket" + | "os" + | "os.EOL" + | "os.constants" + | "os.constants.priority" + | "os.devNull" + | "os.availableParallelism" + | "os.arch" + | "os.cpus" + | "os.endianness" + | "os.freemem" + | "os.getPriority" + | "os.homedir" + | "os.hostname" + | "os.loadavg" + | "os.machine" + | "os.networkInterfaces" + | "os.platform" + | "os.release" + | "os.setPriority" + | "os.tmpdir" + | "os.totalmem" + | "os.type" + | "os.uptime" + | "os.userInfo" + | "os.version" + | "path" + | "path.posix" + | "path.posix.delimiter" + | "path.posix.sep" + | "path.posix.basename" + | "path.posix.dirname" + | "path.posix.extname" + | "path.posix.format" + | "path.posix.matchesGlob" + | "path.posix.isAbsolute" + | "path.posix.join" + | "path.posix.normalize" + | "path.posix.parse" + | "path.posix.relative" + | "path.posix.resolve" + | "path.posix.toNamespacedPath" + | "path.win32" + | "path.win32.delimiter" + | "path.win32.sep" + | "path.win32.basename" + | "path.win32.dirname" + | "path.win32.extname" + | "path.win32.format" + | "path.win32.matchesGlob" + | "path.win32.isAbsolute" + | "path.win32.join" + | "path.win32.normalize" + | "path.win32.parse" + | "path.win32.relative" + | "path.win32.resolve" + | "path.win32.toNamespacedPath" + | "path.delimiter" + | "path.sep" + | "path.basename" + | "path.dirname" + | "path.extname" + | "path.format" + | "path.matchesGlob" + | "path.isAbsolute" + | "path.join" + | "path.normalize" + | "path.parse" + | "path.relative" + | "path.resolve" + | "path.toNamespacedPath" + | "path/posix" + | "path/posix.delimiter" + | "path/posix.sep" + | "path/posix.basename" + | "path/posix.dirname" + | "path/posix.extname" + | "path/posix.format" + | "path/posix.matchesGlob" + | "path/posix.isAbsolute" + | "path/posix.join" + | "path/posix.normalize" + | "path/posix.parse" + | "path/posix.relative" + | "path/posix.resolve" + | "path/posix.toNamespacedPath" + | "path/win32" + | "path/win32.delimiter" + | "path/win32.sep" + | "path/win32.basename" + | "path/win32.dirname" + | "path/win32.extname" + | "path/win32.format" + | "path/win32.matchesGlob" + | "path/win32.isAbsolute" + | "path/win32.join" + | "path/win32.normalize" + | "path/win32.parse" + | "path/win32.relative" + | "path/win32.resolve" + | "path/win32.toNamespacedPath" + | "perf_hooks" + | "perf_hooks.performance" + | "perf_hooks.performance.clearMarks" + | "perf_hooks.performance.clearMeasures" + | "perf_hooks.performance.clearResourceTimings" + | "perf_hooks.performance.eventLoopUtilization" + | "perf_hooks.performance.getEntries" + | "perf_hooks.performance.getEntriesByName" + | "perf_hooks.performance.getEntriesByType" + | "perf_hooks.performance.mark" + | "perf_hooks.performance.markResourceTiming" + | "perf_hooks.performance.measure" + | "perf_hooks.performance.nodeTiming" + | "perf_hooks.performance.nodeTiming.bootstrapComplete" + | "perf_hooks.performance.nodeTiming.environment" + | "perf_hooks.performance.nodeTiming.idleTime" + | "perf_hooks.performance.nodeTiming.loopExit" + | "perf_hooks.performance.nodeTiming.loopStart" + | "perf_hooks.performance.nodeTiming.nodeStart" + | "perf_hooks.performance.nodeTiming.uvMetricsInfo" + | "perf_hooks.performance.nodeTiming.v8Start" + | "perf_hooks.performance.now" + | "perf_hooks.performance.onresourcetimingbufferfull" + | "perf_hooks.performance.setResourceTimingBufferSize" + | "perf_hooks.performance.timeOrigin" + | "perf_hooks.performance.timerify" + | "perf_hooks.performance.toJSON" + | "perf_hooks.createHistogram" + | "perf_hooks.monitorEventLoopDelay" + | "perf_hooks.PerformanceEntry" + | "perf_hooks.PerformanceMark" + | "perf_hooks.PerformanceMeasure" + | "perf_hooks.PerformanceNodeEntry" + | "perf_hooks.PerformanceNodeTiming" + | "perf_hooks.PerformanceResourceTiming" + | "perf_hooks.PerformanceObserver" + | "perf_hooks.PerformanceObserverEntryList" + | "perf_hooks.Histogram" + | "perf_hooks.IntervalHistogram" + | "perf_hooks.RecordableHistogram" + | "punycode" + | "punycode.ucs2" + | "punycode.version" + | "punycode.decode" + | "punycode.encode" + | "punycode.toASCII" + | "punycode.toUnicode" + | "querystring" + | "querystring.decode" + | "querystring.encode" + | "querystring.escape" + | "querystring.parse" + | "querystring.stringify" + | "querystring.unescape" + | "readline" + | "readline.promises" + | "readline.promises.createInterface" + | "readline.promises.Interface" + | "readline.promises.Readline" + | "readline.clearLine" + | "readline.clearScreenDown" + | "readline.createInterface" + | "readline.cursorTo" + | "readline.moveCursor" + | "readline.Interface" + | "readline.emitKeypressEvents" + | "readline.InterfaceConstructor" + | "readline/promises" + | "readline/promises.createInterface" + | "readline/promises.Interface" + | "readline/promises.Readline" + | "repl" + | "repl.start" + | "repl.writer" + | "repl.REPLServer()" + | "repl.REPLServer" + | "repl.REPL_MODE_MAGIC" + | "repl.REPL_MODE_SLOPPY" + | "repl.REPL_MODE_STRICT" + | "repl.Recoverable()" + | "repl.Recoverable" + | "repl.builtinModules" + | "sea" + | "sea.isSea" + | "sea.getAsset" + | "sea.getAssetAsBlob" + | "sea.getRawAsset" + | "sea.sea.isSea" + | "sea.sea.getAsset" + | "sea.sea.getAssetAsBlob" + | "sea.sea.getRawAsset" + | "stream" + | "stream.promises" + | "stream.promises.pipeline" + | "stream.promises.finished" + | "stream.finished" + | "stream.pipeline" + | "stream.compose" + | "stream.duplexPair" + | "stream.Readable" + | "stream.Readable.from" + | "stream.Readable.isDisturbed" + | "stream.Readable.fromWeb" + | "stream.Readable.toWeb" + | "stream.Writable" + | "stream.Writable.fromWeb" + | "stream.Writable.toWeb" + | "stream.Duplex" + | "stream.Duplex.from" + | "stream.Duplex.fromWeb" + | "stream.Duplex.toWeb" + | "stream.Transform" + | "stream.isErrored" + | "stream.isReadable" + | "stream.addAbortSignal" + | "stream.getDefaultHighWaterMark" + | "stream.setDefaultHighWaterMark" + | "stream/promises.pipeline" + | "stream/promises.finished" + | "stream/web" + | "stream/web.ReadableStream" + | "stream/web.ReadableStream.from" + | "stream/web.ReadableStreamDefaultReader" + | "stream/web.ReadableStreamBYOBReader" + | "stream/web.ReadableStreamDefaultController" + | "stream/web.ReadableByteStreamController" + | "stream/web.ReadableStreamBYOBRequest" + | "stream/web.WritableStream" + | "stream/web.WritableStreamDefaultWriter" + | "stream/web.WritableStreamDefaultController" + | "stream/web.TransformStream" + | "stream/web.TransformStreamDefaultController" + | "stream/web.ByteLengthQueuingStrategy" + | "stream/web.CountQueuingStrategy" + | "stream/web.TextEncoderStream" + | "stream/web.TextDecoderStream" + | "stream/web.CompressionStream" + | "stream/web.DecompressionStream" + | "stream/consumers" + | "stream/consumers.arrayBuffer" + | "stream/consumers.blob" + | "stream/consumers.buffer" + | "stream/consumers.json" + | "stream/consumers.text" + | "string_decoder" + | "string_decoder.StringDecoder" + | "test" + | "test.run" + | "test.skip" + | "test.todo" + | "test.only" + | "test.describe" + | "test.describe.skip" + | "test.describe.todo" + | "test.describe.only" + | "test.it" + | "test.it.skip" + | "test.it.todo" + | "test.it.only" + | "test.suite" + | "test.suite.skip" + | "test.suite.todo" + | "test.suite.only" + | "test.before" + | "test.after" + | "test.beforeEach" + | "test.afterEach" + | "test.snapshot" + | "test.snapshot.setDefaultSnapshotSerializers" + | "test.snapshot.setResolveSnapshotPath" + | "test.MockFunctionContext" + | "test.MockModuleContext" + | "test.MockTracker" + | "test.MockTimers" + | "test.TestsStream" + | "test.TestContext" + | "test.SuiteContext" + | "test.test.run" + | "test.test.skip" + | "test.test.todo" + | "test.test.only" + | "test.test.describe" + | "test.test.it" + | "test.test.suite" + | "test.test.before" + | "test.test.after" + | "test.test.beforeEach" + | "test.test.afterEach" + | "test.test.snapshot" + | "test.test.MockFunctionContext" + | "test.test.MockModuleContext" + | "test.test.MockTracker" + | "test.test.MockTimers" + | "test.test.TestsStream" + | "test.test.TestContext" + | "test.test.SuiteContext" + | "timers" + | "timers.Immediate" + | "timers.Timeout" + | "timers.setImmediate" + | "timers.clearImmediate" + | "timers.setInterval" + | "timers.clearInterval" + | "timers.setTimeout" + | "timers.clearTimeout" + | "timers.promises" + | "timers.promises.setTimeout" + | "timers.promises.setImmediate" + | "timers.promises.setInterval" + | "timers.promises.scheduler.wait" + | "timers.promises.scheduler.yield" + | "timers/promises" + | "timers/promises.setTimeout" + | "timers/promises.setImmediate" + | "timers/promises.setInterval" + | "tls" + | "tls.rootCertificates" + | "tls.DEFAULT_ECDH_CURVE" + | "tls.DEFAULT_MAX_VERSION" + | "tls.DEFAULT_MIN_VERSION" + | "tls.DEFAULT_CIPHERS" + | "tls.checkServerIdentity" + | "tls.connect" + | "tls.createSecureContext" + | "tls.createSecurePair" + | "tls.createServer" + | "tls.getCiphers" + | "tls.SecureContext" + | "tls.CryptoStream" + | "tls.SecurePair" + | "tls.Server" + | "tls.TLSSocket" + | "trace_events" + | "trace_events.createTracing" + | "trace_events.getEnabledCategories" + | "tty" + | "tty.isatty" + | "tty.ReadStream" + | "tty.WriteStream" + | "url" + | "url.domainToASCII" + | "url.domainToUnicode" + | "url.fileURLToPath" + | "url.format" + | "url.pathToFileURL" + | "url.urlToHttpOptions" + | "url.URL" + | "url.URL.canParse" + | "url.URL.createObjectURL" + | "url.URL.revokeObjectURL" + | "url.URLSearchParams" + | "url.Url" + | "util.promisify" + | "util.promisify.custom" + | "util.callbackify" + | "util.debuglog" + | "util.debug" + | "util.deprecate" + | "util.format" + | "util.formatWithOptions" + | "util.getCallSite" + | "util.getSystemErrorName" + | "util.getSystemErrorMap" + | "util.getSystemErrorMessage" + | "util.inherits" + | "util.inspect" + | "util.inspect.custom" + | "util.inspect.defaultOptions" + | "util.inspect.replDefaults" + | "util.isDeepStrictEqual" + | "util.parseArgs" + | "util.parseEnv" + | "util.stripVTControlCharacters" + | "util.styleText" + | "util.toUSVString" + | "util.transferableAbortController" + | "util.transferableAbortSignal" + | "util.aborted" + | "util.MIMEType" + | "util.MIMEParams" + | "util.TextDecoder" + | "util.TextEncoder" + | "util.types" + | "util.types.isExternal" + | "util.types.isDate" + | "util.types.isArgumentsObject" + | "util.types.isBigIntObject" + | "util.types.isBooleanObject" + | "util.types.isNumberObject" + | "util.types.isStringObject" + | "util.types.isSymbolObject" + | "util.types.isNativeError" + | "util.types.isRegExp" + | "util.types.isAsyncFunction" + | "util.types.isGeneratorFunction" + | "util.types.isGeneratorObject" + | "util.types.isPromise" + | "util.types.isMap" + | "util.types.isSet" + | "util.types.isMapIterator" + | "util.types.isSetIterator" + | "util.types.isWeakMap" + | "util.types.isWeakSet" + | "util.types.isArrayBuffer" + | "util.types.isDataView" + | "util.types.isSharedArrayBuffer" + | "util.types.isProxy" + | "util.types.isModuleNamespaceObject" + | "util.types.isAnyArrayBuffer" + | "util.types.isBoxedPrimitive" + | "util.types.isArrayBufferView" + | "util.types.isTypedArray" + | "util.types.isUint8Array" + | "util.types.isUint8ClampedArray" + | "util.types.isUint16Array" + | "util.types.isUint32Array" + | "util.types.isInt8Array" + | "util.types.isInt16Array" + | "util.types.isInt32Array" + | "util.types.isFloat32Array" + | "util.types.isFloat64Array" + | "util.types.isBigInt64Array" + | "util.types.isBigUint64Array" + | "util.types.isKeyObject" + | "util.types.isCryptoKey" + | "util.types.isWebAssemblyCompiledModule" + | "util._extend" + | "util.isArray" + | "util.isBoolean" + | "util.isBuffer" + | "util.isDate" + | "util.isError" + | "util.isFunction" + | "util.isNull" + | "util.isNullOrUndefined" + | "util.isNumber" + | "util.isObject" + | "util.isPrimitive" + | "util.isRegExp" + | "util.isString" + | "util.isSymbol" + | "util.isUndefined" + | "util.log" + | "util" + | "util/types" + | "util/types.isExternal" + | "util/types.isDate" + | "util/types.isArgumentsObject" + | "util/types.isBigIntObject" + | "util/types.isBooleanObject" + | "util/types.isNumberObject" + | "util/types.isStringObject" + | "util/types.isSymbolObject" + | "util/types.isNativeError" + | "util/types.isRegExp" + | "util/types.isAsyncFunction" + | "util/types.isGeneratorFunction" + | "util/types.isGeneratorObject" + | "util/types.isPromise" + | "util/types.isMap" + | "util/types.isSet" + | "util/types.isMapIterator" + | "util/types.isSetIterator" + | "util/types.isWeakMap" + | "util/types.isWeakSet" + | "util/types.isArrayBuffer" + | "util/types.isDataView" + | "util/types.isSharedArrayBuffer" + | "util/types.isProxy" + | "util/types.isModuleNamespaceObject" + | "util/types.isAnyArrayBuffer" + | "util/types.isBoxedPrimitive" + | "util/types.isArrayBufferView" + | "util/types.isTypedArray" + | "util/types.isUint8Array" + | "util/types.isUint8ClampedArray" + | "util/types.isUint16Array" + | "util/types.isUint32Array" + | "util/types.isInt8Array" + | "util/types.isInt16Array" + | "util/types.isInt32Array" + | "util/types.isFloat32Array" + | "util/types.isFloat64Array" + | "util/types.isBigInt64Array" + | "util/types.isBigUint64Array" + | "util/types.isKeyObject" + | "util/types.isCryptoKey" + | "util/types.isWebAssemblyCompiledModule" + | "v8" + | "v8.serialize" + | "v8.deserialize" + | "v8.Serializer" + | "v8.Deserializer" + | "v8.DefaultSerializer" + | "v8.DefaultDeserializer" + | "v8.promiseHooks" + | "v8.promiseHooks.onInit" + | "v8.promiseHooks.onSettled" + | "v8.promiseHooks.onBefore" + | "v8.promiseHooks.onAfter" + | "v8.promiseHooks.createHook" + | "v8.startupSnapshot" + | "v8.startupSnapshot.addSerializeCallback" + | "v8.startupSnapshot.addDeserializeCallback" + | "v8.startupSnapshot.setDeserializeMainFunction" + | "v8.startupSnapshot.isBuildingSnapshot" + | "v8.cachedDataVersionTag" + | "v8.getHeapCodeStatistics" + | "v8.getHeapSnapshot" + | "v8.getHeapSpaceStatistics" + | "v8.getHeapStatistics" + | "v8.queryObjects" + | "v8.setFlagsFromString" + | "v8.stopCoverage" + | "v8.takeCoverage" + | "v8.writeHeapSnapshot" + | "v8.setHeapSnapshotNearHeapLimit" + | "v8.GCProfiler" + | "vm.constants" + | "vm.compileFunction" + | "vm.createContext" + | "vm.isContext" + | "vm.measureMemory" + | "vm.runInContext" + | "vm.runInNewContext" + | "vm.runInThisContext" + | "vm.Script" + | "vm.Module" + | "vm.SourceTextModule" + | "vm.SyntheticModule" + | "vm" + | "wasi.WASI" + | "wasi" + | "worker_threads" + | "worker_threads.isMainThread" + | "worker_threads.parentPort" + | "worker_threads.resourceLimits" + | "worker_threads.SHARE_ENV" + | "worker_threads.threadId" + | "worker_threads.workerData" + | "worker_threads.getEnvironmentData" + | "worker_threads.markAsUncloneable" + | "worker_threads.markAsUntransferable" + | "worker_threads.isMarkedAsUntransferable" + | "worker_threads.moveMessagePortToContext" + | "worker_threads.postMessageToThread" + | "worker_threads.receiveMessageOnPort" + | "worker_threads.setEnvironmentData" + | "worker_threads.BroadcastChannel" + | "worker_threads.MessageChannel" + | "worker_threads.MessagePort" + | "worker_threads.Worker" + | "zlib.constants" + | "zlib.crc32" + | "zlib.createBrotliCompress" + | "zlib.createBrotliDecompress" + | "zlib.createDeflate" + | "zlib.createDeflateRaw" + | "zlib.createGunzip" + | "zlib.createGzip" + | "zlib.createInflate" + | "zlib.createInflateRaw" + | "zlib.createUnzip" + | "zlib.brotliCompress" + | "zlib.brotliCompressSync" + | "zlib.brotliDecompress" + | "zlib.brotliDecompressSync" + | "zlib.deflate" + | "zlib.deflateSync" + | "zlib.deflateRaw" + | "zlib.deflateRawSync" + | "zlib.gunzip" + | "zlib.gunzipSync" + | "zlib.gzip" + | "zlib.gzipSync" + | "zlib.inflate" + | "zlib.inflateSync" + | "zlib.inflateRaw" + | "zlib.inflateRawSync" + | "zlib.unzip" + | "zlib.unzipSync" + | "zlib.BrotliCompress()" + | "zlib.BrotliCompress" + | "zlib.BrotliDecompress()" + | "zlib.BrotliDecompress" + | "zlib.Deflate()" + | "zlib.Deflate" + | "zlib.DeflateRaw()" + | "zlib.DeflateRaw" + | "zlib.Gunzip()" + | "zlib.Gunzip" + | "zlib.Gzip()" + | "zlib.Gzip" + | "zlib.Inflate()" + | "zlib.Inflate" + | "zlib.InflateRaw()" + | "zlib.InflateRaw" + | "zlib.Unzip()" + | "zlib.Unzip" + | "zlib" + )[]; + }, + ]; +// ----- n/prefer-global/buffer ----- +type NPreferGlobalBuffer = [] | ["always" | "never"]; +// ----- n/prefer-global/console ----- +type NPreferGlobalConsole = [] | ["always" | "never"]; +// ----- n/prefer-global/process ----- +type NPreferGlobalProcess = [] | ["always" | "never"]; +// ----- n/prefer-global/text-decoder ----- +type NPreferGlobalTextDecoder = [] | ["always" | "never"]; +// ----- n/prefer-global/text-encoder ----- +type NPreferGlobalTextEncoder = [] | ["always" | "never"]; +// ----- n/prefer-global/url ----- +type NPreferGlobalUrl = [] | ["always" | "never"]; +// ----- n/prefer-global/url-search-params ----- +type NPreferGlobalUrlSearchParams = [] | ["always" | "never"]; +// ----- n/prefer-node-protocol ----- +type NPreferNodeProtocol = + | [] + | [ + { + version?: string; + }, + ]; +// ----- n/shebang ----- +type NShebang = + | [] + | [ + { + convertPath?: + | { + [k: string]: [string, string]; + } + | [ + { + include: [string, ...string[]]; + exclude?: string[]; + + replace: [string, string]; + }, + ...{ + include: [string, ...string[]]; + exclude?: string[]; + + replace: [string, string]; + }[], + ]; + ignoreUnpublished?: boolean; + additionalExecutables?: string[]; + executableMap?: { + [k: string]: string; + }; + }, + ]; // ----- new-cap ----- type NewCap = | [] diff --git a/src/rules/__snapshots__/imports.spec.ts.snap b/src/rules/__snapshots__/imports.spec.ts.snap index 60e781c..303be1b 100644 --- a/src/rules/__snapshots__/imports.spec.ts.snap +++ b/src/rules/__snapshots__/imports.spec.ts.snap @@ -20,6 +20,5 @@ exports[`should create imports rules 1`] = ` "import-x/no-self-import": "error", "import-x/no-unresolved": "error", "import-x/no-useless-path-segments": "error", - "node-import/prefer-node-protocol": "error", } `; diff --git a/src/rules/__snapshots__/node.spec.ts.snap b/src/rules/__snapshots__/node.spec.ts.snap new file mode 100644 index 0000000..b736639 --- /dev/null +++ b/src/rules/__snapshots__/node.spec.ts.snap @@ -0,0 +1,7 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`should create node rules 1`] = ` +{ + "n/prefer-node-protocol": "error", +} +`; diff --git a/src/rules/imports.ts b/src/rules/imports.ts index d5062c1..9b16f29 100644 --- a/src/rules/imports.ts +++ b/src/rules/imports.ts @@ -13,5 +13,4 @@ export const importsRules = { "import-x/no-empty-named-blocks": "error", "import-x/no-self-import": "error", "import-x/no-useless-path-segments": "error", - "node-import/prefer-node-protocol": "error", } satisfies Rules; diff --git a/src/rules/node.spec.ts b/src/rules/node.spec.ts new file mode 100644 index 0000000..adccc2f --- /dev/null +++ b/src/rules/node.spec.ts @@ -0,0 +1,5 @@ +import { nodeRules } from "./node"; + +test("should create node rules", () => { + expect(nodeRules).toMatchSnapshot(); +}); diff --git a/src/rules/node.ts b/src/rules/node.ts new file mode 100644 index 0000000..ea81987 --- /dev/null +++ b/src/rules/node.ts @@ -0,0 +1,5 @@ +import type { Rules } from "../types"; + +export const nodeRules = { + "n/prefer-node-protocol": "error", +} satisfies Rules; diff --git a/src/stubs.d.ts b/src/stubs.d.ts index 80e0ce4..27193d8 100644 --- a/src/stubs.d.ts +++ b/src/stubs.d.ts @@ -12,14 +12,6 @@ declare module "eslint-config-prettier" { export default config; } -declare module "eslint-plugin-node-import" { - type Plugin = import("eslint").ESLint.Plugin; - - const plugin: Plugin; - - export default plugin; -} - declare module "eslint-plugin-react-hooks" { type Plugin = import("eslint").ESLint.Plugin; type Rules = import("eslint").Linter.RulesRecord;