{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Oxlintrc", "description": "Oxlint Configuration File\n\nThis configuration is aligned with ESLint v8's configuration schema (`eslintrc.json`).\n\nUsage: `oxlint -c oxlintrc.json`\n\nExample\n\n`.oxlintrc.json`\n\n```json\n{\n\"$schema\": \"./node_modules/oxlint/configuration_schema.json\",\n\"plugins\": [\"import\", \"typescript\", \"unicorn\"],\n\"env\": {\n\"browser\": true\n},\n\"globals\": {\n\"foo\": \"readonly\"\n},\n\"settings\": {\n\"react\": {\n\"version\": \"18.2.0\"\n},\n\"custom\": { \"option\": true }\n},\n\"rules\": {\n\"eqeqeq\": \"warn\",\n\"import/no-cycle\": \"error\",\n\"react/self-closing-comp\": [\"error\", { \"html\": false }]\n},\n\"overrides\": [\n{\n\"files\": [\"*.test.ts\", \"*.spec.ts\"],\n\"rules\": {\n\"@typescript-eslint/no-explicit-any\": \"off\"\n}\n}\n]\n}\n```\n\n`oxlint.config.ts`\n\n```ts\nimport { defineConfig } from \"oxlint\";\n\nexport default defineConfig({\nplugins: [\"import\", \"typescript\", \"unicorn\"],\nenv: {\n\"browser\": true\n},\nglobals: {\n\"foo\": \"readonly\"\n},\nsettings: {\nreact: {\nversion: \"18.2.0\"\n},\ncustom: { option: true }\n},\nrules: {\n\"eqeqeq\": \"warn\",\n\"import/no-cycle\": \"error\",\n\"react/self-closing-comp\": [\"error\", { \"html\": false }]\n},\noverrides: [\n{\nfiles: [\"*.test.ts\", \"*.spec.ts\"],\nrules: {\n\"@typescript-eslint/no-explicit-any\": \"off\"\n}\n}\n]\n});\n```", "type": "object", "properties": { "$schema": { "description": "Schema URI for editor tooling.", "type": "string", "markdownDescription": "Schema URI for editor tooling." }, "categories": { "default": {}, "allOf": [ { "$ref": "#/definitions/OxlintCategories" } ] }, "env": { "description": "Environments enable and disable collections of global variables.", "default": { "builtin": true }, "allOf": [ { "$ref": "#/definitions/OxlintEnv" } ], "markdownDescription": "Environments enable and disable collections of global variables." }, "extends": { "description": "Paths of configuration files that this configuration file extends (inherits from). The files\nare resolved relative to the location of the configuration file that contains the `extends`\nproperty. The configuration files are merged from the first to the last, with the last file\noverriding the previous ones.", "type": "array", "items": { "type": "string" }, "markdownDescription": "Paths of configuration files that this configuration file extends (inherits from). The files\nare resolved relative to the location of the configuration file that contains the `extends`\nproperty. The configuration files are merged from the first to the last, with the last file\noverriding the previous ones." }, "globals": { "description": "Enabled or disabled specific global variables.", "default": {}, "allOf": [ { "$ref": "#/definitions/OxlintGlobals" } ], "markdownDescription": "Enabled or disabled specific global variables." }, "ignorePatterns": { "description": "Globs to ignore during linting. These are resolved from the configuration file path.", "default": [], "type": "array", "items": { "type": "string" }, "markdownDescription": "Globs to ignore during linting. These are resolved from the configuration file path." }, "jsPlugins": { "description": "JS plugins, allows usage of ESLint plugins with Oxlint.\n\nRead more about JS plugins in\n[the docs](https://oxc.rs/docs/guide/usage/linter/js-plugins.html).\n\nNote: JS plugins are in alpha and not subject to semver.\n\nExamples:\n\nBasic usage with a local plugin path.\n\n```json\n{\n\"jsPlugins\": [\"./custom-plugin.js\"],\n\"rules\": {\n\"custom/rule-name\": \"warn\"\n}\n}\n```\n\nBasic usage with a TypeScript plugin and a local plugin path.\n\nTypeScript plugin files are supported in the following environments:\n- Deno and Bun: TypeScript files are supported natively.\n- Node.js >=22.18.0 and Node.js ^20.19.0: TypeScript files are supported natively with built-in\ntype-stripping enabled by default.\n\nFor older Node.js versions, TypeScript plugins are not supported. Please use JavaScript plugins or upgrade your Node version.\n\n```json\n{\n\"jsPlugins\": [\"./custom-plugin.ts\"],\n\"rules\": {\n\"custom/rule-name\": \"warn\"\n}\n}\n```\n\nUsing a built-in Rust plugin alongside a JS plugin with the same name\nby giving the JS plugin an alias.\n\n```json\n{\n\"plugins\": [\"import\"],\n\"jsPlugins\": [\n{ \"name\": \"import-js\", \"specifier\": \"eslint-plugin-import\" }\n],\n\"rules\": {\n\"import/no-cycle\": \"error\",\n\"import-js/no-unresolved\": \"warn\"\n}\n}\n```", "anyOf": [ { "type": "null" }, { "type": "array", "items": { "$ref": "#/definitions/ExternalPluginEntry" }, "uniqueItems": true } ], "markdownDescription": "JS plugins, allows usage of ESLint plugins with Oxlint.\n\nRead more about JS plugins in\n[the docs](https://oxc.rs/docs/guide/usage/linter/js-plugins.html).\n\nNote: JS plugins are in alpha and not subject to semver.\n\nExamples:\n\nBasic usage with a local plugin path.\n\n```json\n{\n\"jsPlugins\": [\"./custom-plugin.js\"],\n\"rules\": {\n\"custom/rule-name\": \"warn\"\n}\n}\n```\n\nBasic usage with a TypeScript plugin and a local plugin path.\n\nTypeScript plugin files are supported in the following environments:\n- Deno and Bun: TypeScript files are supported natively.\n- Node.js >=22.18.0 and Node.js ^20.19.0: TypeScript files are supported natively with built-in\ntype-stripping enabled by default.\n\nFor older Node.js versions, TypeScript plugins are not supported. Please use JavaScript plugins or upgrade your Node version.\n\n```json\n{\n\"jsPlugins\": [\"./custom-plugin.ts\"],\n\"rules\": {\n\"custom/rule-name\": \"warn\"\n}\n}\n```\n\nUsing a built-in Rust plugin alongside a JS plugin with the same name\nby giving the JS plugin an alias.\n\n```json\n{\n\"plugins\": [\"import\"],\n\"jsPlugins\": [\n{ \"name\": \"import-js\", \"specifier\": \"eslint-plugin-import\" }\n],\n\"rules\": {\n\"import/no-cycle\": \"error\",\n\"import-js/no-unresolved\": \"warn\"\n}\n}\n```" }, "options": { "description": "Oxlint config options.", "allOf": [ { "$ref": "#/definitions/OxlintOptions" } ], "markdownDescription": "Oxlint config options." }, "overrides": { "description": "Add, remove, or otherwise reconfigure rules for specific files or groups of files.", "allOf": [ { "$ref": "#/definitions/OxlintOverrides" } ], "markdownDescription": "Add, remove, or otherwise reconfigure rules for specific files or groups of files." }, "plugins": { "description": "Enabled built-in plugins for Oxlint.\nYou can view the list of available plugins on\n[the website](https://oxc.rs/docs/guide/usage/linter/plugins.html#supported-plugins).\n\nNOTE: Setting the `plugins` field will overwrite the base set of plugins.\nThe `plugins` array should reflect all of the plugins you want to use.", "default": null, "allOf": [ { "$ref": "#/definitions/LintPlugins" } ], "markdownDescription": "Enabled built-in plugins for Oxlint.\nYou can view the list of available plugins on\n[the website](https://oxc.rs/docs/guide/usage/linter/plugins.html#supported-plugins).\n\nNOTE: Setting the `plugins` field will overwrite the base set of plugins.\nThe `plugins` array should reflect all of the plugins you want to use." }, "rules": { "description": "Example\n\n`.oxlintrc.json`\n\n```json\n{\n\"$schema\": \"./node_modules/oxlint/configuration_schema.json\",\n\"rules\": {\n\"eqeqeq\": \"warn\",\n\"import/no-cycle\": \"error\",\n\"prefer-const\": [\"error\", { \"ignoreReadBeforeAssign\": true }]\n}\n}\n```\n\nSee [Oxlint Rules](https://oxc.rs/docs/guide/usage/linter/rules.html) for the list of\nrules.", "default": {}, "allOf": [ { "$ref": "#/definitions/OxlintRules" } ], "markdownDescription": "Example\n\n`.oxlintrc.json`\n\n```json\n{\n\"$schema\": \"./node_modules/oxlint/configuration_schema.json\",\n\"rules\": {\n\"eqeqeq\": \"warn\",\n\"import/no-cycle\": \"error\",\n\"prefer-const\": [\"error\", { \"ignoreReadBeforeAssign\": true }]\n}\n}\n```\n\nSee [Oxlint Rules](https://oxc.rs/docs/guide/usage/linter/rules.html) for the list of\nrules." }, "settings": { "description": "Plugin-specific configuration for both built-in and custom plugins.\nThis includes settings for built-in plugins such as `react` and `jsdoc`\nas well as configuring settings for JS custom plugins loaded via `jsPlugins`.", "default": { "jsx-a11y": { "polymorphicPropName": null, "components": {}, "attributes": {} }, "next": { "rootDir": [] }, "react": { "formComponents": [], "linkComponents": [], "version": null, "componentWrapperFunctions": [] }, "jsdoc": { "ignorePrivate": false, "ignoreInternal": false, "ignoreReplacesDocs": true, "overrideReplacesDocs": true, "augmentsExtendsReplacesDocs": false, "implementsReplacesDocs": false, "exemptDestructuredRootsFromChecks": false, "tagNamePreference": {} }, "vitest": { "typecheck": false }, "jest": { "version": null } }, "allOf": [ { "$ref": "#/definitions/OxlintSettings" } ], "markdownDescription": "Plugin-specific configuration for both built-in and custom plugins.\nThis includes settings for built-in plugins such as `react` and `jsdoc`\nas well as configuring settings for JS custom plugins loaded via `jsPlugins`." } }, "additionalProperties": false, "allowComments": true, "allowTrailingCommas": true, "definitions": { "AbsoluteFirst": { "oneOf": [ { "description": "Forces absolute imports to be listed before relative imports.\n\nExamples of **incorrect** code for this rule with `\"absolute-first\"`:\n```js\nimport { x } from './foo';\nimport { y } from 'bar'\n```\n\nExamples of **correct** code for this rule with `\"absolute-first\"`:\n```js\nimport { y } from 'bar';\nimport { x } from './foo'\n```", "type": "string", "enum": [ "absolute-first" ], "markdownDescription": "Forces absolute imports to be listed before relative imports.\n\nExamples of **incorrect** code for this rule with `\"absolute-first\"`:\n```js\nimport { x } from './foo';\nimport { y } from 'bar'\n```\n\nExamples of **correct** code for this rule with `\"absolute-first\"`:\n```js\nimport { y } from 'bar';\nimport { x } from './foo'\n```" }, { "description": "Disables the absolute-first behavior.\nThis is the default behavior.", "type": "string", "enum": [ "disable-absolute-first" ], "markdownDescription": "Disables the absolute-first behavior.\nThis is the default behavior." } ] }, "AccessibilityLevel": { "oneOf": [ { "description": "Always require an accessibility modifier.", "type": "string", "enum": [ "explicit" ], "markdownDescription": "Always require an accessibility modifier." }, { "description": "Require an accessibility modifier except when public.", "type": "string", "enum": [ "no-public" ], "markdownDescription": "Require an accessibility modifier except when public." }, { "description": "Never check whether there is an accessibility modifier.", "type": "string", "enum": [ "off" ], "markdownDescription": "Never check whether there is an accessibility modifier." } ] }, "AccessibilityOverrides": { "type": "object", "properties": { "accessors": { "description": "Which member accessibility modifier requirements to apply for accessors (getters/setters).", "allOf": [ { "$ref": "#/definitions/AccessibilityLevel" } ], "markdownDescription": "Which member accessibility modifier requirements to apply for accessors (getters/setters)." }, "constructors": { "description": "Which member accessibility modifier requirements to apply for constructors.", "allOf": [ { "$ref": "#/definitions/AccessibilityLevel" } ], "markdownDescription": "Which member accessibility modifier requirements to apply for constructors." }, "methods": { "description": "Which member accessibility modifier requirements to apply for methods.", "allOf": [ { "$ref": "#/definitions/AccessibilityLevel" } ], "markdownDescription": "Which member accessibility modifier requirements to apply for methods." }, "parameterProperties": { "description": "Which member accessibility modifier requirements to apply for parameter properties.", "allOf": [ { "$ref": "#/definitions/AccessibilityLevel" } ], "markdownDescription": "Which member accessibility modifier requirements to apply for parameter properties." }, "properties": { "description": "Which member accessibility modifier requirements to apply for properties.", "allOf": [ { "$ref": "#/definitions/AccessibilityLevel" } ], "markdownDescription": "Which member accessibility modifier requirements to apply for properties." } }, "additionalProperties": false }, "AccessorPairsConfig": { "type": "object", "properties": { "enforceForClassMembers": { "description": "Enforce the rule for class members.", "default": true, "type": "boolean", "markdownDescription": "Enforce the rule for class members." }, "enforceForTSTypes": { "description": "Enforce the rule for TypeScript interfaces and types.", "default": false, "type": "boolean", "markdownDescription": "Enforce the rule for TypeScript interfaces and types." }, "getWithoutSet": { "description": "Report a getter without a setter.", "default": false, "type": "boolean", "markdownDescription": "Report a getter without a setter." }, "setWithoutGet": { "description": "Report a setter without a getter.", "default": true, "type": "boolean", "markdownDescription": "Report a setter without a getter." } }, "additionalProperties": false }, "AllKeyword": { "type": "string", "enum": [ "all" ] }, "AllowConstantLoopConditions": { "description": "Represents the different ways `allowConstantLoopConditions` can be specified in JSON.\nCan be:\n- `true` or `false`\n- A string enum (`\"never\"`, `\"always\"`, `\"only-allowed-literals\"`)", "anyOf": [ { "type": "boolean" }, { "$ref": "#/definitions/AllowConstantLoopConditionsMode" } ], "markdownDescription": "Represents the different ways `allowConstantLoopConditions` can be specified in JSON.\nCan be:\n- `true` or `false`\n- A string enum (`\"never\"`, `\"always\"`, `\"only-allowed-literals\"`)" }, "AllowConstantLoopConditionsMode": { "type": "string", "enum": [ "never", "always", "only-allowed-literals" ] }, "AllowInGenericTypeArguments": { "anyOf": [ { "type": "boolean" }, { "type": "array", "items": { "type": "string" } } ] }, "AllowInterfaces": { "oneOf": [ { "description": "Never allow interfaces with no fields.", "type": "string", "enum": [ "never" ], "markdownDescription": "Never allow interfaces with no fields." }, { "description": "Always allow interfaces with no fields.", "type": "string", "enum": [ "always" ], "markdownDescription": "Always allow interfaces with no fields." }, { "description": "Allow empty interfaces that `extend` from a single base interface.\n\nExamples of **correct** code for this rule with `{ allowInterfaces: 'with-single-extends' }`:\n```ts\ninterface Base {\nvalue: boolean;\n}\ninterface Derived extends Base {}\n```", "type": "string", "enum": [ "with-single-extends" ], "markdownDescription": "Allow empty interfaces that `extend` from a single base interface.\n\nExamples of **correct** code for this rule with `{ allowInterfaces: 'with-single-extends' }`:\n```ts\ninterface Base {\nvalue: boolean;\n}\ninterface Derived extends Base {}\n```" } ] }, "AllowKind": { "description": "Kinds of functions that can be allowed to be empty.", "oneOf": [ { "description": "Allow empty regular functions.\n\n```js\nfunction foo() {}\n```", "type": "string", "enum": [ "functions" ], "markdownDescription": "Allow empty regular functions.\n\n```js\nfunction foo() {}\n```" }, { "description": "Allow empty arrow functions.\n\n```js\nconst foo = () => {};\n```", "type": "string", "enum": [ "arrowFunctions" ], "markdownDescription": "Allow empty arrow functions.\n\n```js\nconst foo = () => {};\n```" }, { "description": "Allow empty generator functions.\n\n```js\nfunction* foo() {}\n```", "type": "string", "enum": [ "generatorFunctions" ], "markdownDescription": "Allow empty generator functions.\n\n```js\nfunction* foo() {}\n```" }, { "description": "Allow empty methods.\n\n```js\nclass Foo {\nbar() {}\n}\n```", "type": "string", "enum": [ "methods" ], "markdownDescription": "Allow empty methods.\n\n```js\nclass Foo {\nbar() {}\n}\n```" }, { "description": "Allow empty generator methods.\n\n```js\nclass Foo {\n*bar() {}\n}\n```", "type": "string", "enum": [ "generatorMethods" ], "markdownDescription": "Allow empty generator methods.\n\n```js\nclass Foo {\n*bar() {}\n}\n```" }, { "description": "Allow empty getters.\n\n```js\nclass Foo {\nget bar() {}\n}\n```", "type": "string", "enum": [ "getters" ], "markdownDescription": "Allow empty getters.\n\n```js\nclass Foo {\nget bar() {}\n}\n```" }, { "description": "Allow empty setters.\n\n```js\nclass Foo {\nset bar(value) {}\n}\n```", "type": "string", "enum": [ "setters" ], "markdownDescription": "Allow empty setters.\n\n```js\nclass Foo {\nset bar(value) {}\n}\n```" }, { "description": "Allow empty constructors.\n\n```js\nclass Foo {\nconstructor() {}\n}\n```", "type": "string", "enum": [ "constructors" ], "markdownDescription": "Allow empty constructors.\n\n```js\nclass Foo {\nconstructor() {}\n}\n```" }, { "description": "Allow empty async functions.\n\n```js\nasync function foo() {}\n```", "type": "string", "enum": [ "asyncFunctions" ], "markdownDescription": "Allow empty async functions.\n\n```js\nasync function foo() {}\n```" }, { "description": "Allow empty async methods.\n\n```js\nclass Foo {\nasync bar() {}\n}\n```", "type": "string", "enum": [ "asyncMethods" ], "markdownDescription": "Allow empty async methods.\n\n```js\nclass Foo {\nasync bar() {}\n}\n```" }, { "description": "Allow empty private constructors.\n\n```ts\nclass Foo {\nprivate constructor() {}\n}\n```", "type": "string", "enum": [ "privateConstructors" ], "markdownDescription": "Allow empty private constructors.\n\n```ts\nclass Foo {\nprivate constructor() {}\n}\n```" }, { "description": "Allow empty protected constructors.\n\n```ts\nclass Foo {\nprotected constructor() {}\n}\n```", "type": "string", "enum": [ "protectedConstructors" ], "markdownDescription": "Allow empty protected constructors.\n\n```ts\nclass Foo {\nprotected constructor() {}\n}\n```" }, { "description": "Allow empty decorated functions.\n\n```js\nclass Foo {\n@decorator()\nbar() {}\n}\n```", "type": "string", "enum": [ "decoratedFunctions" ], "markdownDescription": "Allow empty decorated functions.\n\n```js\nclass Foo {\n@decorator()\nbar() {}\n}\n```" }, { "description": "Allow empty override methods.\n\n```ts\nclass Foo extends Base {\noverride bar() {}\n}\n```", "type": "string", "enum": [ "overrideMethods" ], "markdownDescription": "Allow empty override methods.\n\n```ts\nclass Foo extends Base {\noverride bar() {}\n}\n```" } ], "markdownDescription": "Kinds of functions that can be allowed to be empty." }, "AllowObjectTypes": { "oneOf": [ { "description": "Never allow object type literals with no fields.", "type": "string", "enum": [ "never" ], "markdownDescription": "Never allow object type literals with no fields." }, { "description": "Always allow object type literals with no fields.", "type": "string", "enum": [ "always" ], "markdownDescription": "Always allow object type literals with no fields." } ] }, "AllowSingleElementEquality": { "oneOf": [ { "description": "Always allow equality checks against the first or last character.", "type": "string", "enum": [ "always" ], "markdownDescription": "Always allow equality checks against the first or last character." }, { "description": "Never allow equality checks against the first or last character.", "type": "string", "enum": [ "never" ], "markdownDescription": "Never allow equality checks against the first or last character." } ] }, "AllowWarnDeny": { "oneOf": [ { "description": "Oxlint rule.\n- \"allow\" or \"off\": Turn off the rule.\n- \"warn\": Turn the rule on as a warning (doesn't affect exit code).\n- \"error\" or \"deny\": Turn the rule on as an error (will exit with a failure code).", "type": "string", "enum": [ "allow", "off", "warn", "error", "deny" ], "markdownDescription": "Oxlint rule.\n- \"allow\" or \"off\": Turn off the rule.\n- \"warn\": Turn the rule on as a warning (doesn't affect exit code).\n- \"error\" or \"deny\": Turn the rule on as an error (will exit with a failure code)." }, { "description": "Oxlint rule.\n \n- 0: Turn off the rule.\n- 1: Turn the rule on as a warning (doesn't affect exit code).\n- 2: Turn the rule on as an error (will exit with a failure code).", "type": "integer", "format": "uint32", "maximum": 2.0, "minimum": 0.0, "markdownDescription": "Oxlint rule.\n \n- 0: Turn off the rule.\n- 1: Turn the rule on as a warning (doesn't affect exit code).\n- 2: Turn the rule on as an error (will exit with a failure code)." } ] }, "AllowYoda": { "oneOf": [ { "description": "The default `\"never\"` option can have exception options in an object literal, via `exceptRange` and `onlyEquality`.", "type": "string", "enum": [ "never" ], "markdownDescription": "The default `\"never\"` option can have exception options in an object literal, via `exceptRange` and `onlyEquality`." }, { "description": "The `\"always\"` option requires that literal values must always come first in comparisons.", "type": "string", "enum": [ "always" ], "markdownDescription": "The `\"always\"` option requires that literal values must always come first in comparisons." } ] }, "AllowedOrDisallowInFunc": { "type": "string", "enum": [ "allowed", "disallow-in-func" ] }, "AltTextConfigSchema": { "type": "object", "properties": { "area": { "description": "Custom components to check for alt text on `area` elements.", "default": [], "type": "array", "items": { "type": "string" }, "markdownDescription": "Custom components to check for alt text on `area` elements." }, "elements": { "description": "Custom components to check for alt text on any of the supported elements.", "type": "array", "items": { "$ref": "#/definitions/AltTextElements" }, "markdownDescription": "Custom components to check for alt text on any of the supported elements." }, "img": { "description": "Custom components to check for alt text on `img` elements.", "default": [], "type": "array", "items": { "type": "string" }, "markdownDescription": "Custom components to check for alt text on `img` elements." }, "input[type=\"image\"]": { "description": "Custom components to check for alt text on `input[type=\"image\"]` elements.", "default": [], "type": "array", "items": { "type": "string" }, "markdownDescription": "Custom components to check for alt text on `input[type=\"image\"]` elements." }, "object": { "description": "Custom components to check for alt text on `object` elements.", "default": [], "type": "array", "items": { "type": "string" }, "markdownDescription": "Custom components to check for alt text on `object` elements." } }, "additionalProperties": false }, "AltTextElements": { "type": "string", "enum": [ "img", "object", "area", "input[type=\"image\"]" ] }, "AlwaysNever": { "type": "string", "enum": [ "always", "never" ] }, "AlwaysReturnConfig": { "type": "object", "properties": { "ignoreAssignmentVariable": { "description": "You can pass an `{ ignoreAssignmentVariable: [] }` as an option to this rule\nwith a list of variable names so that the last `then()` callback in a promise\nchain does not warn if it does an assignment to a global variable. Default is\n`[\"globalThis\"]`.\n\n```javascript\n/* promise/always-return: [\"error\", { ignoreAssignmentVariable: [\"globalThis\"] }] */\n\n// OK\npromise.then((x) => {\nglobalThis = x\n})\n\npromise.then((x) => {\nglobalThis.x = x\n})\n\n// OK\npromise.then((x) => {\nglobalThis.x.y = x\n})\n\n// NG\npromise.then((x) => {\nanyOtherVariable = x\n})\n\n// NG\npromise.then((x) => {\nanyOtherVariable.x = x\n})\n\n// NG\npromise.then((x) => {\nx()\n})\n```", "default": [ "globalThis" ], "type": "array", "items": { "type": "string" }, "uniqueItems": true, "markdownDescription": "You can pass an `{ ignoreAssignmentVariable: [] }` as an option to this rule\nwith a list of variable names so that the last `then()` callback in a promise\nchain does not warn if it does an assignment to a global variable. Default is\n`[\"globalThis\"]`.\n\n```javascript\n/* promise/always-return: [\"error\", { ignoreAssignmentVariable: [\"globalThis\"] }] */\n\n// OK\npromise.then((x) => {\nglobalThis = x\n})\n\npromise.then((x) => {\nglobalThis.x = x\n})\n\n// OK\npromise.then((x) => {\nglobalThis.x.y = x\n})\n\n// NG\npromise.then((x) => {\nanyOtherVariable = x\n})\n\n// NG\npromise.then((x) => {\nanyOtherVariable.x = x\n})\n\n// NG\npromise.then((x) => {\nx()\n})\n```" }, "ignoreLastCallback": { "description": "You can pass an `{ ignoreLastCallback: true }` as an option to this rule so that\nthe last `then()` callback in a promise chain does not warn if it does not have\na `return`. Default is `false`.\n\n```javascript\n// OK\npromise.then((x) => {\nconsole.log(x)\n})\n// OK\nvoid promise.then((x) => {\nconsole.log(x)\n})\n// OK\nawait promise.then((x) => {\nconsole.log(x)\n})\n\npromise\n// NG\n.then((x) => {\nconsole.log(x)\n})\n// OK\n.then((x) => {\nconsole.log(x)\n})\n\n// NG\nconst v = promise.then((x) => {\nconsole.log(x)\n})\n// NG\nconst v = await promise.then((x) => {\nconsole.log(x)\n})\nfunction foo() {\n// NG\nreturn promise.then((x) => {\nconsole.log(x)\n})\n}\n```", "default": false, "type": "boolean", "markdownDescription": "You can pass an `{ ignoreLastCallback: true }` as an option to this rule so that\nthe last `then()` callback in a promise chain does not warn if it does not have\na `return`. Default is `false`.\n\n```javascript\n// OK\npromise.then((x) => {\nconsole.log(x)\n})\n// OK\nvoid promise.then((x) => {\nconsole.log(x)\n})\n// OK\nawait promise.then((x) => {\nconsole.log(x)\n})\n\npromise\n// NG\n.then((x) => {\nconsole.log(x)\n})\n// OK\n.then((x) => {\nconsole.log(x)\n})\n\n// NG\nconst v = promise.then((x) => {\nconsole.log(x)\n})\n// NG\nconst v = await promise.then((x) => {\nconsole.log(x)\n})\nfunction foo() {\n// NG\nreturn promise.then((x) => {\nconsole.log(x)\n})\n}\n```" } }, "additionalProperties": false }, "AnchorAmbiguousTextConfig": { "type": "object", "properties": { "words": { "description": "List of ambiguous words or phrases that should be flagged in anchor text.", "default": [ "click here", "here", "link", "a link", "learn more" ], "type": "array", "items": { "type": "string" }, "markdownDescription": "List of ambiguous words or phrases that should be flagged in anchor text." } }, "additionalProperties": false }, "AnchorIsValidAspect": { "type": "string", "enum": [ "noHref", "invalidHref", "preferButton" ] }, "AnchorIsValidConfig": { "type": "object", "properties": { "aspects": { "description": "Sub-rule aspects to run.", "type": "array", "items": { "$ref": "#/definitions/AnchorIsValidAspect" }, "markdownDescription": "Sub-rule aspects to run." }, "components": { "description": "Custom components to treat as anchor elements.", "default": [], "type": "array", "items": { "type": "string" }, "markdownDescription": "Custom components to treat as anchor elements." }, "specialLink": { "description": "Custom prop names to treat as link destinations.", "default": [], "type": "array", "items": { "type": "string" }, "markdownDescription": "Custom prop names to treat as link destinations." } }, "additionalProperties": false }, "ArgsOption": { "oneOf": [ { "description": "Unused positional arguments that occur before the last used argument\nwill not be checked, but all named arguments and all positional\narguments after the last used argument will be checked.", "type": "string", "enum": [ "after-used" ], "markdownDescription": "Unused positional arguments that occur before the last used argument\nwill not be checked, but all named arguments and all positional\narguments after the last used argument will be checked." }, { "description": "All named arguments must be used", "type": "string", "enum": [ "all" ], "markdownDescription": "All named arguments must be used" }, { "description": "Do not check arguments", "type": "string", "enum": [ "none" ], "markdownDescription": "Do not check arguments" } ] }, "AriaRoleConfig": { "type": "object", "properties": { "allowedInvalidRoles": { "description": "Custom roles that should be allowed in addition to the ARIA spec.", "default": [], "type": "array", "items": { "type": "string" }, "markdownDescription": "Custom roles that should be allowed in addition to the ARIA spec." }, "ignoreNonDOM": { "description": "Determines if developer-created components are checked.", "default": false, "type": "boolean", "markdownDescription": "Determines if developer-created components are checked." } }, "additionalProperties": false }, "ArrayCallbackReturn": { "type": "object", "properties": { "allowImplicit": { "description": "When set to true, allows callbacks of methods that require a return value to\nimplicitly return undefined with a return statement containing no expression.", "default": false, "type": "boolean", "markdownDescription": "When set to true, allows callbacks of methods that require a return value to\nimplicitly return undefined with a return statement containing no expression." }, "allowVoid": { "description": "When set to true, rule will not report the return value with a void operator.\nWorks only if `checkForEach` option is set to true.", "default": false, "type": "boolean", "markdownDescription": "When set to true, rule will not report the return value with a void operator.\nWorks only if `checkForEach` option is set to true." }, "checkForEach": { "description": "When set to true, rule will also report forEach callbacks that return a value.", "default": false, "type": "boolean", "markdownDescription": "When set to true, rule will also report forEach callbacks that return a value." } }, "additionalProperties": false }, "ArrayLiteralTypeAssertions": { "oneOf": [ { "description": "Allow type assertions on array literals.\n\nExamples of **correct** code with this option:\n```ts\nconst x = [1, 2] as number[];\nconst x = ['a'] as Array;\n```", "type": "string", "enum": [ "allow" ], "markdownDescription": "Allow type assertions on array literals.\n\nExamples of **correct** code with this option:\n```ts\nconst x = [1, 2] as number[];\nconst x = ['a'] as Array;\n```" }, { "description": "Allow type assertions on array literals only when used as a function parameter,\n`throw` target, or default value.\n\nExamples of **incorrect** code with this option:\n```ts\nconst x = [1, 2] as Foo;\nconst foo = () => [5] as Foo;\n```\n\nExamples of **correct** code with this option:\n```ts\nprint([5] as Foo);\nthrow [1, 2] as Bar;\nfunction f(x = [5] as Foo.Bar) {}\n```", "type": "string", "enum": [ "allow-as-parameter" ], "markdownDescription": "Allow type assertions on array literals only when used as a function parameter,\n`throw` target, or default value.\n\nExamples of **incorrect** code with this option:\n```ts\nconst x = [1, 2] as Foo;\nconst foo = () => [5] as Foo;\n```\n\nExamples of **correct** code with this option:\n```ts\nprint([5] as Foo);\nthrow [1, 2] as Bar;\nfunction f(x = [5] as Foo.Bar) {}\n```" }, { "description": "Disallow type assertions on array literals entirely.\n\nExamples of **incorrect** code with this option:\n```ts\nconst x = [1, 2] as Foo;\nprint([5] as Foo);\n```\n\nExamples of **correct** code with this option:\n```ts\nconst x: Foo = [1, 2];\nconst x = [1, 2] satisfies Foo;\n```", "type": "string", "enum": [ "never" ], "markdownDescription": "Disallow type assertions on array literals entirely.\n\nExamples of **incorrect** code with this option:\n```ts\nconst x = [1, 2] as Foo;\nprint([5] as Foo);\n```\n\nExamples of **correct** code with this option:\n```ts\nconst x: Foo = [1, 2];\nconst x = [1, 2] satisfies Foo;\n```" } ] }, "ArrayOption": { "oneOf": [ { "description": "Enforce using `T[]` for all array types.\n\nExample of **incorrect** code for this option:\n```ts\nconst arr: Array = new Array();\n```\n\nExample of **correct** code for this option:\n```ts\nconst arr: number[] = new Array();\n```", "type": "string", "enum": [ "array" ], "markdownDescription": "Enforce using `T[]` for all array types.\n\nExample of **incorrect** code for this option:\n```ts\nconst arr: Array = new Array();\n```\n\nExample of **correct** code for this option:\n```ts\nconst arr: number[] = new Array();\n```" }, { "description": "Enforce using `T[]` for simple types, and `Array` for complex types.\n\nExample of **incorrect** code for this option:\n```ts\nconst a: (string | number)[] = ['a', 'b'];\nconst b: { prop: string }[] = [{ prop: 'a' }];\nconst c: Array = ['a', 'b'];\nconst d: Array = ['a', 'b'];\n```\n\nExample of **correct** code for this option:\n```ts\nconst a: Array = ['a', 'b'];\nconst b: Array<{ prop: string }> = [{ prop: 'a' }];\nconst c: string[] = ['a', 'b'];\nconst d: MyType[] = ['a', 'b'];\n```", "type": "string", "enum": [ "array-simple" ], "markdownDescription": "Enforce using `T[]` for simple types, and `Array` for complex types.\n\nExample of **incorrect** code for this option:\n```ts\nconst a: (string | number)[] = ['a', 'b'];\nconst b: { prop: string }[] = [{ prop: 'a' }];\nconst c: Array = ['a', 'b'];\nconst d: Array = ['a', 'b'];\n```\n\nExample of **correct** code for this option:\n```ts\nconst a: Array = ['a', 'b'];\nconst b: Array<{ prop: string }> = [{ prop: 'a' }];\nconst c: string[] = ['a', 'b'];\nconst d: MyType[] = ['a', 'b'];\n```" }, { "description": "Enforce using `Array` for all array types.\n\nExample of **incorrect** code for this option:\n```ts\nconst arr: number[] = new Array();\n```\n\nExample of **correct** code for this option:\n```ts\nconst arr: Array = new Array();\n```", "type": "string", "enum": [ "generic" ], "markdownDescription": "Enforce using `Array` for all array types.\n\nExample of **incorrect** code for this option:\n```ts\nconst arr: number[] = new Array();\n```\n\nExample of **correct** code for this option:\n```ts\nconst arr: Array = new Array();\n```" } ] }, "ArrayTypeConfig": { "type": "object", "properties": { "default": { "description": "The array type expected for mutable cases.", "default": "array", "allOf": [ { "$ref": "#/definitions/ArrayOption" } ], "markdownDescription": "The array type expected for mutable cases." }, "readonly": { "description": "The array type expected for readonly cases. If omitted, the value for `default` will be used.", "default": null, "allOf": [ { "$ref": "#/definitions/ReadonlyArrayOption" } ], "markdownDescription": "The array type expected for readonly cases. If omitted, the value for `default` will be used." } }, "additionalProperties": false }, "ArrowBodyStyle": { "type": "array", "items": [ { "$ref": "#/definitions/Mode2" }, { "$ref": "#/definitions/ArrowBodyStyleConfig" } ], "maxItems": 2, "minItems": 2 }, "ArrowBodyStyleConfig": { "type": "object", "properties": { "requireReturnForObjectLiteral": { "description": "Requires braces and an explicit return for object literals. This option only applies when\nthe first option is `\"as-needed\"`.", "default": false, "type": "boolean", "markdownDescription": "Requires braces and an explicit return for object literals. This option only applies when\nthe first option is `\"as-needed\"`." } }, "additionalProperties": false }, "Assert": { "oneOf": [ { "description": "Assert that the label uses `htmlFor` to associate a control.", "type": "string", "enum": [ "htmlFor" ], "markdownDescription": "Assert that the label uses `htmlFor` to associate a control." }, { "description": "Assert that the label has a nested control", "type": "string", "enum": [ "nesting" ], "markdownDescription": "Assert that the label has a nested control" }, { "description": "Assert that the label uses both `htmlFor` and nesting for associating a control", "type": "string", "enum": [ "both" ], "markdownDescription": "Assert that the label uses both `htmlFor` and nesting for associating a control" }, { "description": "Assert that the label uses either `htmlFor` or nesting for associating a control", "type": "string", "enum": [ "either" ], "markdownDescription": "Assert that the label uses either `htmlFor` or nesting for associating a control" } ] }, "AssertionStyle": { "oneOf": [ { "description": "Enforce `as` syntax for type assertions.\n\nExamples of **incorrect** code with this option:\n```ts\nconst value = bar;\n```\n\nExamples of **correct** code with this option:\n```ts\nconst value = bar as Foo;\n```", "type": "string", "enum": [ "as" ], "markdownDescription": "Enforce `as` syntax for type assertions.\n\nExamples of **incorrect** code with this option:\n```ts\nconst value = bar;\n```\n\nExamples of **correct** code with this option:\n```ts\nconst value = bar as Foo;\n```" }, { "description": "Enforce angle-bracket syntax for type assertions.\n\nExamples of **incorrect** code with this option:\n```ts\nconst value = bar as Foo;\n```\n\nExamples of **correct** code with this option:\n```ts\nconst value = bar;\n```", "type": "string", "enum": [ "angle-bracket" ], "markdownDescription": "Enforce angle-bracket syntax for type assertions.\n\nExamples of **incorrect** code with this option:\n```ts\nconst value = bar as Foo;\n```\n\nExamples of **correct** code with this option:\n```ts\nconst value = bar;\n```" }, { "description": "Disallow type assertions entirely.\n\nExamples of **incorrect** code with this option:\n```ts\nconst value = bar as Foo;\nconst value = bar;\n```\n\nExamples of **correct** code with this option:\n```ts\nconst value: Foo = bar;\nconst value = bar satisfies Foo;\n```", "type": "string", "enum": [ "never" ], "markdownDescription": "Disallow type assertions entirely.\n\nExamples of **incorrect** code with this option:\n```ts\nconst value = bar as Foo;\nconst value = bar;\n```\n\nExamples of **correct** code with this option:\n```ts\nconst value: Foo = bar;\nconst value = bar satisfies Foo;\n```" } ] }, "AutocompleteValidConfig": { "type": "object", "properties": { "inputComponents": { "description": "List of custom component names that should be treated as input elements.", "default": [ "input" ], "type": "array", "items": { "type": "string" }, "uniqueItems": true, "markdownDescription": "List of custom component names that should be treated as input elements." } }, "additionalProperties": false }, "BanConfigValue": { "description": "Represents the different ways a ban config can be specified in JSON.\nCan be:\n- `true` - ban with default message\n- A string - ban with custom message\n- An object with `message` and optional `fixWith` and `suggest`", "anyOf": [ { "description": "`\"TypeName\": true` - ban with default message\nNote: Only `true` is valid; `false` would fail to deserialize and be ignored.", "allOf": [ { "$ref": "#/definitions/True" } ], "markdownDescription": "`\"TypeName\": true` - ban with default message\nNote: Only `true` is valid; `false` would fail to deserialize and be ignored." }, { "description": "`\"TypeName\": \"message\"` - ban with custom message", "type": "string", "markdownDescription": "`\"TypeName\": \"message\"` - ban with custom message" }, { "description": "`\"TypeName\": { \"message\": \"...\", \"fixWith\": \"...\", \"suggest\": [\"...\"] }` - full config", "type": "object", "properties": { "fixWith": { "description": "Replacement type for automatic fixing. Applied directly with `--fix`.", "default": null, "type": "string", "markdownDescription": "Replacement type for automatic fixing. Applied directly with `--fix`." }, "message": { "description": "Custom message explaining why the type is banned.", "default": null, "type": "string", "markdownDescription": "Custom message explaining why the type is banned." }, "suggest": { "description": "Suggested replacement types for manual review. Shown as editor suggestions.", "type": "array", "items": { "type": "string" }, "markdownDescription": "Suggested replacement types for manual review. Shown as editor suggestions." } }, "additionalProperties": false, "markdownDescription": "`\"TypeName\": { \"message\": \"...\", \"fixWith\": \"...\", \"suggest\": [\"...\"] }` - full config" } ], "markdownDescription": "Represents the different ways a ban config can be specified in JSON.\nCan be:\n- `true` - ban with default message\n- A string - ban with custom message\n- An object with `message` and optional `fixWith` and `suggest`" }, "BanTsCommentConfig": { "description": "This rule allows you to specify how different TypeScript directive comments\nshould be handled.\n\nFor each directive (`@ts-expect-error`, `@ts-ignore`, `@ts-nocheck`, `@ts-check`), you can choose one of the following options:\n- `true`: Disallow the directive entirely, preventing its use in the entire codebase.\n- `false`: Allow the directive without any restrictions.\n- `\"allow-with-description\"`: Allow the directive only if it is followed by a description explaining its use. The description must meet the minimum length specified by `minimumDescriptionLength`.\n- `{ \"descriptionFormat\": \"\" }`: Allow the directive only if the description matches the specified regex pattern.\n\nFor example:\n```json\n{\n\"ts-expect-error\": \"allow-with-description\",\n\"ts-ignore\": true,\n\"ts-nocheck\": { \"descriptionFormat\": \"^: TS\\\\d+ because .+$\" },\n\"ts-check\": false,\n\"minimumDescriptionLength\": 3\n}\n```", "type": "object", "properties": { "minimumDescriptionLength": { "description": "Minimum description length required when using directives with `allow-with-description`.", "default": 3, "type": "integer", "format": "uint64", "minimum": 0.0, "markdownDescription": "Minimum description length required when using directives with `allow-with-description`." }, "ts-check": { "description": "How to handle the `@ts-check` directive.", "allOf": [ { "$ref": "#/definitions/DirectiveConfigSchema" } ], "markdownDescription": "How to handle the `@ts-check` directive." }, "ts-expect-error": { "description": "How to handle the `@ts-expect-error` directive.", "allOf": [ { "$ref": "#/definitions/DirectiveConfigSchema" } ], "markdownDescription": "How to handle the `@ts-expect-error` directive." }, "ts-ignore": { "description": "How to handle the `@ts-ignore` directive.", "allOf": [ { "$ref": "#/definitions/DirectiveConfigSchema" } ], "markdownDescription": "How to handle the `@ts-ignore` directive." }, "ts-nocheck": { "description": "How to handle the `@ts-nocheck` directive.", "allOf": [ { "$ref": "#/definitions/DirectiveConfigSchema" } ], "markdownDescription": "How to handle the `@ts-nocheck` directive." } }, "additionalProperties": false, "markdownDescription": "This rule allows you to specify how different TypeScript directive comments\nshould be handled.\n\nFor each directive (`@ts-expect-error`, `@ts-ignore`, `@ts-nocheck`, `@ts-check`), you can choose one of the following options:\n- `true`: Disallow the directive entirely, preventing its use in the entire codebase.\n- `false`: Allow the directive without any restrictions.\n- `\"allow-with-description\"`: Allow the directive only if it is followed by a description explaining its use. The description must meet the minimum length specified by `minimumDescriptionLength`.\n- `{ \"descriptionFormat\": \"\" }`: Allow the directive only if the description matches the specified regex pattern.\n\nFor example:\n```json\n{\n\"ts-expect-error\": \"allow-with-description\",\n\"ts-ignore\": true,\n\"ts-nocheck\": { \"descriptionFormat\": \"^: TS\\\\d+ because .+$\" },\n\"ts-check\": false,\n\"minimumDescriptionLength\": 3\n}\n```" }, "BlockScopedFunctions": { "oneOf": [ { "description": "Allow function declarations in nested blocks in strict mode (ES6+ behavior).", "type": "string", "enum": [ "allow" ], "markdownDescription": "Allow function declarations in nested blocks in strict mode (ES6+ behavior)." }, { "description": "Disallow function declarations in nested blocks regardless of strict mode.", "type": "string", "enum": [ "disallow" ], "markdownDescription": "Disallow function declarations in nested blocks regardless of strict mode." } ] }, "BomOptionType": { "oneOf": [ { "description": "Always require a Unicode BOM (Byte Order Mark) at the beginning of the file.", "type": "string", "enum": [ "always" ], "markdownDescription": "Always require a Unicode BOM (Byte Order Mark) at the beginning of the file." }, { "description": "Never allow a Unicode BOM (Byte Order Mark) at the beginning of the file.\nThis is the default option.", "type": "string", "enum": [ "never" ], "markdownDescription": "Never allow a Unicode BOM (Byte Order Mark) at the beginning of the file.\nThis is the default option." } ] }, "ButtonHasType": { "type": "object", "properties": { "button": { "description": "If true, allow `type=\"button\"`.", "default": true, "type": "boolean", "markdownDescription": "If true, allow `type=\"button\"`." }, "reset": { "description": "If true, allow `type=\"reset\"`.", "default": true, "type": "boolean", "markdownDescription": "If true, allow `type=\"reset\"`." }, "submit": { "description": "If true, allow `type=\"submit\"`.", "default": true, "type": "boolean", "markdownDescription": "If true, allow `type=\"submit\"`." } }, "additionalProperties": false }, "CallbackReturn": { "description": "The rule takes a single option - an array of possible callback names - which may include object methods. The default callback names are `callback`, `cb`, `next`.", "type": "array", "items": { "type": "string" }, "markdownDescription": "The rule takes a single option - an array of possible callback names - which may include object methods. The default callback names are `callback`, `cb`, `next`." }, "CapitalizedCommentsOptions": { "description": "Configuration for the capitalized-comments rule.\n\nThe first element specifies whether comments should `\"always\"` or `\"never\"`\nbegin with a capital letter. The second element is an optional object\ncontaining additional options.", "type": "array", "items": [ { "$ref": "#/definitions/AlwaysNever" }, { "$ref": "#/definitions/OptionsJsonEnum" } ], "maxItems": 2, "minItems": 2, "markdownDescription": "Configuration for the capitalized-comments rule.\n\nThe first element specifies whether comments should `\"always\"` or `\"never\"`\nbegin with a capital letter. The second element is an optional object\ncontaining additional options." }, "CaseType": { "type": "string", "enum": [ "PascalCase", "kebab-case" ] }, "CaseType2": { "type": "string", "enum": [ "camelCase", "snake_case" ] }, "CatchErrorNameConfig": { "type": "object", "properties": { "ignore": { "description": "A list of patterns to ignore when checking `catch` variable names. The pattern\ncan be a string or regular expression.", "type": "array", "items": { "type": "string" }, "markdownDescription": "A list of patterns to ignore when checking `catch` variable names. The pattern\ncan be a string or regular expression." }, "name": { "description": "The name to use for error variables in `catch` blocks. You can customize it\nto something other than `'error'` (e.g., `'exception'`).", "default": "error", "type": "string", "markdownDescription": "The name to use for error variables in `catch` blocks. You can customize it\nto something other than `'error'` (e.g., `'exception'`)." } }, "additionalProperties": false }, "CatchOrReturnConfig": { "type": "object", "properties": { "allowFinally": { "description": "Whether to allow `finally()` as a termination method.", "default": false, "type": "boolean", "markdownDescription": "Whether to allow `finally()` as a termination method." }, "allowThen": { "description": "Whether to allow `then()` with two arguments as a termination method.", "default": false, "type": "boolean", "markdownDescription": "Whether to allow `then()` with two arguments as a termination method." }, "allowThenStrict": { "description": "Whether to allow `then(null, handler)` as a termination method.", "default": false, "type": "boolean", "markdownDescription": "Whether to allow `then(null, handler)` as a termination method." }, "terminationMethod": { "description": "List of allowed termination methods (e.g., `catch`, `done`).", "default": [ "catch" ], "allOf": [ { "$ref": "#/definitions/TerminationMethod" } ], "markdownDescription": "List of allowed termination methods (e.g., `catch`, `done`)." } }, "additionalProperties": false }, "CaughtErrorsJson": { "oneOf": [ { "description": "All named arguments must be used.", "type": "string", "enum": [ "all" ], "markdownDescription": "All named arguments must be used." }, { "description": "Do not check error objects.", "type": "string", "enum": [ "none" ], "markdownDescription": "Do not check error objects." } ] }, "CheckLoops": { "type": "string", "enum": [ "all", "allExceptWhileTrue", "none" ] }, "CheckLoopsConfig": { "anyOf": [ { "type": "boolean" }, { "$ref": "#/definitions/CheckLoops" } ] }, "CheckTagNamesConfig": { "type": "object", "properties": { "definedTags": { "description": "Additional tag names to allow.", "default": [], "type": "array", "items": { "type": "string" }, "markdownDescription": "Additional tag names to allow." }, "jsxTags": { "description": "Whether to allow JSX-related tags:\n- `jsx`\n- `jsxFrag`\n- `jsxImportSource`\n- `jsxRuntime`", "default": false, "type": "boolean", "markdownDescription": "Whether to allow JSX-related tags:\n- `jsx`\n- `jsxFrag`\n- `jsxImportSource`\n- `jsxRuntime`" }, "typed": { "description": "If typed is `true`, disallow tags that are unnecessary/duplicative of TypeScript functionality.", "default": false, "type": "boolean", "markdownDescription": "If typed is `true`, disallow tags that are unnecessary/duplicative of TypeScript functionality." } }, "additionalProperties": false }, "CheckedRequiresOnchangeOrReadonly": { "type": "object", "properties": { "ignoreExclusiveCheckedAttribute": { "description": "Ignore the restriction that `checked` and `defaultChecked` should not be used together.", "default": false, "type": "boolean", "markdownDescription": "Ignore the restriction that `checked` and `defaultChecked` should not be used together." }, "ignoreMissingProperties": { "description": "Ignore the requirement to provide either `onChange` or `readOnly` when the `checked` prop is present.", "default": false, "type": "boolean", "markdownDescription": "Ignore the requirement to provide either `onChange` or `readOnly` when the `checked` prop is present." } }, "additionalProperties": false }, "ChecksVoidReturn": { "anyOf": [ { "type": "boolean" }, { "$ref": "#/definitions/ChecksVoidReturnOptions" } ] }, "ChecksVoidReturnOptions": { "type": "object", "properties": { "arguments": { "description": "Whether to check Promise-returning functions passed as arguments to void-returning functions.", "default": true, "type": "boolean", "markdownDescription": "Whether to check Promise-returning functions passed as arguments to void-returning functions." }, "attributes": { "description": "Whether to check Promise-returning functions in JSX attributes expecting void.", "default": true, "type": "boolean", "markdownDescription": "Whether to check Promise-returning functions in JSX attributes expecting void." }, "inheritedMethods": { "description": "Whether to check Promise-returning methods that override void-returning inherited methods.", "default": true, "type": "boolean", "markdownDescription": "Whether to check Promise-returning methods that override void-returning inherited methods." }, "properties": { "description": "Whether to check Promise-returning functions assigned to object properties expecting void.", "default": true, "type": "boolean", "markdownDescription": "Whether to check Promise-returning functions assigned to object properties expecting void." }, "returns": { "description": "Whether to check Promise values returned from void-returning functions.", "default": true, "type": "boolean", "markdownDescription": "Whether to check Promise values returned from void-returning functions." }, "variables": { "description": "Whether to check Promise-returning functions assigned to variables typed as void-returning.", "default": true, "type": "boolean", "markdownDescription": "Whether to check Promise-returning functions assigned to variables typed as void-returning." } }, "additionalProperties": false }, "ClassLiteralPropertyStyleOption": { "oneOf": [ { "description": "Enforce using readonly fields for literal values.\n\nExamples of **incorrect** code with this option:\n```ts\nclass C {\nget name() {\nreturn \"oxc\";\n}\n}\n```\n\nExamples of **correct** code with this option:\n```ts\nclass C {\nreadonly name = \"oxc\";\n}\n```", "type": "string", "enum": [ "fields" ], "markdownDescription": "Enforce using readonly fields for literal values.\n\nExamples of **incorrect** code with this option:\n```ts\nclass C {\nget name() {\nreturn \"oxc\";\n}\n}\n```\n\nExamples of **correct** code with this option:\n```ts\nclass C {\nreadonly name = \"oxc\";\n}\n```" }, { "description": "Enforce using getters for literal values.\n\nExamples of **incorrect** code with this option:\n```ts\nclass C {\nreadonly name = \"oxc\";\n}\n```\n\nExamples of **correct** code with this option:\n```ts\nclass C {\nget name() {\nreturn \"oxc\";\n}\n}\n```", "type": "string", "enum": [ "getters" ], "markdownDescription": "Enforce using getters for literal values.\n\nExamples of **incorrect** code with this option:\n```ts\nclass C {\nreadonly name = \"oxc\";\n}\n```\n\nExamples of **correct** code with this option:\n```ts\nclass C {\nget name() {\nreturn \"oxc\";\n}\n}\n```" } ] }, "ClassMethodsUseThisConfig": { "type": "object", "properties": { "enforceForClassFields": { "description": "Enforce this rule for class fields that are functions.", "default": true, "type": "boolean", "markdownDescription": "Enforce this rule for class fields that are functions." }, "exceptMethods": { "description": "List of method names to exempt from this rule. Names can include the hash for private methods.\nExample: `save`, `#rerender`", "default": [], "type": "array", "items": { "type": "string" }, "markdownDescription": "List of method names to exempt from this rule. Names can include the hash for private methods.\nExample: `save`, `#rerender`" }, "ignoreClassesWithImplements": { "description": "Whether to ignore classes that implement interfaces.", "default": null, "allOf": [ { "$ref": "#/definitions/IgnoreClassWithImplements" } ], "markdownDescription": "Whether to ignore classes that implement interfaces." }, "ignoreOverrideMethods": { "description": "Whether to ignore methods that are overridden.", "default": false, "type": "boolean", "markdownDescription": "Whether to ignore methods that are overridden." } }, "additionalProperties": false }, "CommentConfigJson": { "type": "object", "properties": { "ignoreConsecutiveComments": { "description": "If true, consecutive comments will be ignored after the first comment.", "type": "boolean", "markdownDescription": "If true, consecutive comments will be ignored after the first comment." }, "ignoreInlineComments": { "description": "If true, inline comments (comments in the middle of code) will be ignored.", "type": "boolean", "markdownDescription": "If true, inline comments (comments in the middle of code) will be ignored." }, "ignorePattern": { "description": "A regex pattern. Comments that match the pattern will not cause violations.", "type": "string", "markdownDescription": "A regex pattern. Comments that match the pattern will not cause violations." } }, "additionalProperties": false }, "CompareType": { "oneOf": [ { "description": "Always require triple-equal comparisons, `===`/`!==`.\nThis is the default.", "type": "string", "enum": [ "always" ], "markdownDescription": "Always require triple-equal comparisons, `===`/`!==`.\nThis is the default." }, { "description": "Allow certain safe comparisons to use `==`/`!=` (`typeof`, literals, nullish).", "type": "string", "enum": [ "smart" ], "markdownDescription": "Allow certain safe comparisons to use `==`/`!=` (`typeof`, literals, nullish)." } ] }, "ComplexityConfig": { "type": "object", "properties": { "max": { "description": "Maximum amount of cyclomatic complexity", "default": 20, "type": "integer", "format": "uint32", "minimum": 0.0, "markdownDescription": "Maximum amount of cyclomatic complexity" }, "variant": { "description": "The cyclomatic complexity variant to use", "default": "classic", "allOf": [ { "$ref": "#/definitions/Variant" } ], "markdownDescription": "The cyclomatic complexity variant to use" } }, "additionalProperties": false }, "ComplexityConfigEnum": { "anyOf": [ { "type": "integer", "format": "uint32", "minimum": 0.0 }, { "$ref": "#/definitions/ComplexityConfig" } ] }, "Config": { "type": "array", "items": [ { "$ref": "#/definitions/CaseType2" }, { "$ref": "#/definitions/Options" } ], "maxItems": 2, "minItems": 2 }, "ConsistentEachForJson": { "type": "object", "properties": { "describe": { "description": "Preferred method to create parameterized tests for `describe` blocks.", "allOf": [ { "$ref": "#/definitions/MemberNames" } ], "markdownDescription": "Preferred method to create parameterized tests for `describe` blocks." }, "it": { "description": "Preferred method to create parameterized tests for `it` blocks.", "allOf": [ { "$ref": "#/definitions/MemberNames" } ], "markdownDescription": "Preferred method to create parameterized tests for `it` blocks." }, "suite": { "description": "Preferred method to create parameterized tests for `suite` blocks.", "allOf": [ { "$ref": "#/definitions/MemberNames" } ], "markdownDescription": "Preferred method to create parameterized tests for `suite` blocks." }, "test": { "description": "Preferred method to create parameterized tests for `test` blocks.", "allOf": [ { "$ref": "#/definitions/MemberNames" } ], "markdownDescription": "Preferred method to create parameterized tests for `test` blocks." } }, "additionalProperties": false }, "ConsistentFunctionScoping": { "type": "object", "properties": { "checkArrowFunctions": { "description": "Whether to check scoping with arrow functions.", "default": true, "type": "boolean", "markdownDescription": "Whether to check scoping with arrow functions." } }, "additionalProperties": false }, "ConsistentIndexedObjectStyleConfig": { "oneOf": [ { "description": "When set to `record`, enforces the use of a `Record` for indexed object types, e.g. `Record`.", "type": "string", "enum": [ "record" ], "markdownDescription": "When set to `record`, enforces the use of a `Record` for indexed object types, e.g. `Record`." }, { "description": "When set to `index-signature`, enforces the use of indexed signature types, e.g. `{ [key: string]: unknown }`.", "type": "string", "enum": [ "index-signature" ], "markdownDescription": "When set to `index-signature`, enforces the use of indexed signature types, e.g. `{ [key: string]: unknown }`." } ] }, "ConsistentReturnConfig": { "type": "object", "properties": { "treatUndefinedAsUnspecified": { "description": "Treat explicit `return undefined` as equivalent to an unspecified return.", "default": false, "type": "boolean", "markdownDescription": "Treat explicit `return undefined` as equivalent to an unspecified return." } }, "additionalProperties": false }, "ConsistentTestFilenameConfig": { "type": "object", "properties": { "allTestPattern": { "description": "Regex pattern to ensure we are linting only test filenames.\nDecides whether a file is a testing file.", "type": "string", "markdownDescription": "Regex pattern to ensure we are linting only test filenames.\nDecides whether a file is a testing file." }, "pattern": { "description": "Required regex to check if a test filename have a valid formart.\nPattern doesn't have a default value, you must provide one.", "type": "string", "markdownDescription": "Required regex to check if a test filename have a valid formart.\nPattern doesn't have a default value, you must provide one." } }, "additionalProperties": false }, "ConsistentTestItConfig": { "type": "object", "properties": { "fn": { "description": "Decides whether to use `test` or `it`.\n\nExamples of **incorrect** code for `{ \"fn\": \"test\" }`:\n```javascript\nit('foo');\nit.only('foo');\n```\n\nExamples of **correct** code for `{ \"fn\": \"test\" }`:\n```javascript\ntest('foo');\ntest.only('foo');\n```\n\nExamples of **incorrect** code for `{ \"fn\": \"it\" }`:\n```javascript\ntest('foo');\ntest.only('foo');\n```\n\nExamples of **correct** code for `{ \"fn\": \"it\" }`:\n```javascript\nit('foo');\nit.only('foo');\n```", "default": "test", "allOf": [ { "$ref": "#/definitions/TestCaseName" } ], "markdownDescription": "Decides whether to use `test` or `it`.\n\nExamples of **incorrect** code for `{ \"fn\": \"test\" }`:\n```javascript\nit('foo');\nit.only('foo');\n```\n\nExamples of **correct** code for `{ \"fn\": \"test\" }`:\n```javascript\ntest('foo');\ntest.only('foo');\n```\n\nExamples of **incorrect** code for `{ \"fn\": \"it\" }`:\n```javascript\ntest('foo');\ntest.only('foo');\n```\n\nExamples of **correct** code for `{ \"fn\": \"it\" }`:\n```javascript\nit('foo');\nit.only('foo');\n```" }, "withinDescribe": { "description": "Decides whether to use `test` or `it` within a `describe` scope.\nIf only `fn` is provided, this will default to the value of `fn`.\n\nExamples of **incorrect** code for `{ \"withinDescribe\": \"test\" }`:\n```javascript\ndescribe('foo', function () {\nit('bar');\n});\n```\n\nExamples of **correct** code for `{ \"withinDescribe\": \"test\" }`:\n```javascript\ndescribe('foo', function () {\ntest('bar');\n});\n```", "default": "it", "allOf": [ { "$ref": "#/definitions/TestCaseName" } ], "markdownDescription": "Decides whether to use `test` or `it` within a `describe` scope.\nIf only `fn` is provided, this will default to the value of `fn`.\n\nExamples of **incorrect** code for `{ \"withinDescribe\": \"test\" }`:\n```javascript\ndescribe('foo', function () {\nit('bar');\n});\n```\n\nExamples of **correct** code for `{ \"withinDescribe\": \"test\" }`:\n```javascript\ndescribe('foo', function () {\ntest('bar');\n});\n```" } }, "additionalProperties": false }, "ConsistentTypeAssertionsConfig": { "type": "object", "properties": { "arrayLiteralTypeAssertions": { "description": "Whether array literal type assertions are allowed, allowed only as parameters, or disallowed.", "allOf": [ { "$ref": "#/definitions/ArrayLiteralTypeAssertions" } ], "markdownDescription": "Whether array literal type assertions are allowed, allowed only as parameters, or disallowed." }, "assertionStyle": { "description": "Which assertion syntax is enforced.", "allOf": [ { "$ref": "#/definitions/AssertionStyle" } ], "markdownDescription": "Which assertion syntax is enforced." }, "objectLiteralTypeAssertions": { "description": "Whether object literal type assertions are allowed, allowed only as parameters, or disallowed.", "allOf": [ { "$ref": "#/definitions/ObjectLiteralTypeAssertions" } ], "markdownDescription": "Whether object literal type assertions are allowed, allowed only as parameters, or disallowed." } }, "additionalProperties": false }, "ConsistentTypeDefinitionsConfig": { "oneOf": [ { "description": "Prefer `interface` over `type` for object type definitions:\n\n```typescript\ninterface T {\nx: number;\n}\n```", "type": "string", "enum": [ "interface" ], "markdownDescription": "Prefer `interface` over `type` for object type definitions:\n\n```typescript\ninterface T {\nx: number;\n}\n```" }, { "description": "Prefer `type` over `interface` for object type definitions:\n\n```typescript\ntype T = { x: number };\n```", "type": "string", "enum": [ "type" ], "markdownDescription": "Prefer `type` over `interface` for object type definitions:\n\n```typescript\ntype T = { x: number };\n```" } ] }, "ConsistentTypeExportsConfig": { "type": "object", "properties": { "fixMixedExportsWithInlineTypeSpecifier": { "description": "Enables an autofix strategy that rewrites mixed exports using inline `type` specifiers.", "default": false, "type": "boolean", "markdownDescription": "Enables an autofix strategy that rewrites mixed exports using inline `type` specifiers." } }, "additionalProperties": false }, "ConsistentTypeImportsConfig": { "type": "object", "properties": { "disallowTypeAnnotations": { "description": "Disallow using `import()` in type annotations, like `type T = import('foo')`", "default": true, "type": "boolean", "markdownDescription": "Disallow using `import()` in type annotations, like `type T = import('foo')`" }, "fixStyle": { "description": "Control how type imports are added when auto-fixing.", "default": "separate-type-imports", "allOf": [ { "$ref": "#/definitions/FixStyle" } ], "markdownDescription": "Control how type imports are added when auto-fixing." }, "prefer": { "description": "Control whether to enforce type imports or value imports.", "default": "type-imports", "allOf": [ { "$ref": "#/definitions/Prefer" } ], "markdownDescription": "Control whether to enforce type imports or value imports." } }, "additionalProperties": false }, "ConsistentVitestConfig": { "type": "object", "properties": { "fn": { "description": "Decides whether to prefer vitest function accessor", "default": "vi", "allOf": [ { "$ref": "#/definitions/VitestFnName" } ], "markdownDescription": "Decides whether to prefer vitest function accessor" } }, "additionalProperties": false }, "ControlHasAssociatedLabelConfig": { "type": "object", "properties": { "controlComponents": { "description": "Custom JSX components to be treated as interactive controls.", "default": [], "type": "array", "items": { "type": "string" }, "markdownDescription": "Custom JSX components to be treated as interactive controls." }, "depth": { "description": "Maximum depth to search for an accessible label within the element.\nDefaults to `2`.", "default": 2, "type": "integer", "format": "uint8", "maximum": 25.0, "minimum": 0.0, "markdownDescription": "Maximum depth to search for an accessible label within the element.\nDefaults to `2`." }, "ignoreElements": { "description": "Elements to ignore.\nDefaults to `[\"audio\", \"canvas\", \"embed\", \"input\", \"textarea\", \"tr\", \"video\"]`.", "default": [ "audio", "canvas", "embed", "input", "textarea", "tr", "video" ], "type": "array", "items": { "type": "string" }, "markdownDescription": "Elements to ignore.\nDefaults to `[\"audio\", \"canvas\", \"embed\", \"input\", \"textarea\", \"tr\", \"video\"]`." }, "ignoreRoles": { "description": "Interactive roles to ignore.\nDefaults to `[\"grid\", \"listbox\", \"menu\", \"menubar\", \"radiogroup\", \"row\", \"tablist\", \"toolbar\", \"tree\", \"treegrid\"]`.", "default": [ "grid", "listbox", "menu", "menubar", "radiogroup", "row", "tablist", "toolbar", "tree", "treegrid" ], "type": "array", "items": { "type": "string" }, "markdownDescription": "Interactive roles to ignore.\nDefaults to `[\"grid\", \"listbox\", \"menu\", \"menubar\", \"radiogroup\", \"row\", \"tablist\", \"toolbar\", \"tree\", \"treegrid\"]`." }, "labelAttributes": { "description": "Additional attributes to check for accessible label text.", "default": [], "type": "array", "items": { "type": "string" }, "markdownDescription": "Additional attributes to check for accessible label text." } }, "additionalProperties": false }, "CountThis": { "oneOf": [ { "description": "Always count `this` as a parameter.", "type": "string", "enum": [ "always" ], "markdownDescription": "Always count `this` as a parameter." }, { "description": "Never count `this` as a parameter.", "type": "string", "enum": [ "never" ], "markdownDescription": "Never count `this` as a parameter." }, { "description": "Count `this` unless it is explicitly typed as `void`.", "type": "string", "enum": [ "except-void" ], "markdownDescription": "Count `this` unless it is explicitly typed as `void`." } ] }, "Curly": { "description": "Configuration for the curly rule, specified as an array of one or two elements.\n\nExamples:\n- `[\"all\"]` - Require braces in all cases (default)\n- `[\"multi\"]` - Require braces only for multi-statement blocks\n- `[\"multi-line\"]` - Require braces for multi-line blocks\n- `[\"multi-or-nest\"]` - Require braces for nested or multi-line blocks\n- `[\"multi\", \"consistent\"]` - Multi mode with consistent braces in if-else chains", "type": "array", "items": [ { "$ref": "#/definitions/CurlyType" }, { "$ref": "#/definitions/CurlyConsistent" } ], "maxItems": 2, "minItems": 2, "markdownDescription": "Configuration for the curly rule, specified as an array of one or two elements.\n\nExamples:\n- `[\"all\"]` - Require braces in all cases (default)\n- `[\"multi\"]` - Require braces only for multi-statement blocks\n- `[\"multi-line\"]` - Require braces for multi-line blocks\n- `[\"multi-or-nest\"]` - Require braces for nested or multi-line blocks\n- `[\"multi\", \"consistent\"]` - Multi mode with consistent braces in if-else chains" }, "CurlyConsistent": { "description": "The optional second element of the curly config array.\nWhen set to `\"consistent\"`, enforces consistent brace usage within if-else chains.", "oneOf": [ { "description": "Enforce consistent brace usage in if-else chains", "type": "string", "enum": [ "consistent" ], "markdownDescription": "Enforce consistent brace usage in if-else chains" } ], "markdownDescription": "The optional second element of the curly config array.\nWhen set to `\"consistent\"`, enforces consistent brace usage within if-else chains." }, "CurlyType": { "description": "The enforcement type for the curly rule.", "oneOf": [ { "description": "Require braces in all cases (default)", "type": "string", "enum": [ "all" ], "markdownDescription": "Require braces in all cases (default)" }, { "description": "Require braces only when there are multiple statements in the block", "type": "string", "enum": [ "multi" ], "markdownDescription": "Require braces only when there are multiple statements in the block" }, { "description": "Require braces when the block spans multiple lines", "type": "string", "enum": [ "multi-line" ], "markdownDescription": "Require braces when the block spans multiple lines" }, { "description": "Require braces when the block is nested or spans multiple lines", "type": "string", "enum": [ "multi-or-nest" ], "markdownDescription": "Require braces when the block is nested or spans multiple lines" } ], "markdownDescription": "The enforcement type for the curly rule." }, "CustomComponent": { "anyOf": [ { "type": "string" }, { "type": "object", "required": [ "attribute", "name" ], "properties": { "attribute": { "type": "string" }, "name": { "type": "string" } } }, { "type": "object", "required": [ "attributes", "name" ], "properties": { "attributes": { "type": "array", "items": { "type": "string" } }, "name": { "type": "string" } } } ] }, "DeclarationStyle": { "oneOf": [ { "description": "Enforces the use of a named TypeScript type or interface as the\nargument to `defineEmits`, e.g. `defineEmits()`.", "type": "string", "enum": [ "type-based" ], "markdownDescription": "Enforces the use of a named TypeScript type or interface as the\nargument to `defineEmits`, e.g. `defineEmits()`." }, { "description": "Enforces the use of an inline type literal as the argument to\n`defineEmits`, e.g. `defineEmits<{ (event: string): void }>()`.", "type": "string", "enum": [ "type-literal" ], "markdownDescription": "Enforces the use of an inline type literal as the argument to\n`defineEmits`, e.g. `defineEmits<{ (event: string): void }>()`." }, { "description": "Enforces the use of runtime declaration, where emits are declared\nusing an array or object, e.g. `defineEmits(['event1', 'event2'])`.", "type": "string", "enum": [ "runtime" ], "markdownDescription": "Enforces the use of runtime declaration, where emits are declared\nusing an array or object, e.g. `defineEmits(['event1', 'event2'])`." } ] }, "DeclarationStyle2": { "oneOf": [ { "description": "Enforce type-based declaration.", "type": "string", "enum": [ "type-based" ], "markdownDescription": "Enforce type-based declaration." }, { "description": "Enforce runtime declaration.", "type": "string", "enum": [ "runtime" ], "markdownDescription": "Enforce runtime declaration." } ] }, "DefaultCaseConfig": { "type": "object", "properties": { "commentPattern": { "description": "A regex pattern used to detect comments that mark the absence\nof a `default` case as intentional.\n\nDefault value: `no default`.\n\nExamples of **incorrect** code for this rule with the `{ \"commentPattern\": \"^skip\\\\sdefault\" }` option:\n```js\nswitch (a) {\ncase 1:\nbreak;\n// no default\n}\n```\n\nExamples of **correct** code for this rule with the `{ \"commentPattern\": \"^skip\\\\sdefault\" }` option:\n```js\nswitch (a) {\ncase 1:\nbreak;\n// skip default\n}\n```", "type": "string", "markdownDescription": "A regex pattern used to detect comments that mark the absence\nof a `default` case as intentional.\n\nDefault value: `no default`.\n\nExamples of **incorrect** code for this rule with the `{ \"commentPattern\": \"^skip\\\\sdefault\" }` option:\n```js\nswitch (a) {\ncase 1:\nbreak;\n// no default\n}\n```\n\nExamples of **correct** code for this rule with the `{ \"commentPattern\": \"^skip\\\\sdefault\" }` option:\n```js\nswitch (a) {\ncase 1:\nbreak;\n// skip default\n}\n```" } }, "additionalProperties": false }, "DefinePropsDestructuring": { "type": "object", "properties": { "destructure": { "description": "Require or prohibit destructuring.", "default": "only-when-assigned", "allOf": [ { "$ref": "#/definitions/Destructure" } ], "markdownDescription": "Require or prohibit destructuring." } }, "additionalProperties": false }, "Destructure": { "oneOf": [ { "description": "Requires destructuring when `defineProps` is assigned to a variable and warns against using `withDefaults` with destructuring", "type": "string", "enum": [ "only-when-assigned" ], "markdownDescription": "Requires destructuring when `defineProps` is assigned to a variable and warns against using `withDefaults` with destructuring" }, { "description": "Requires destructuring when using `defineProps` and warns against using `withDefaults` with destructuring", "type": "string", "enum": [ "always" ], "markdownDescription": "Requires destructuring when using `defineProps` and warns against using `withDefaults` with destructuring" }, { "description": "Requires using a variable to store props and prohibits destructuring", "type": "string", "enum": [ "never" ], "markdownDescription": "Requires using a variable to store props and prohibits destructuring" } ] }, "Destructuring": { "oneOf": [ { "description": "Warn if any of the variables in a destructuring assignment should be `const`.", "type": "string", "enum": [ "any" ], "markdownDescription": "Warn if any of the variables in a destructuring assignment should be `const`." }, { "description": "Only warn if all variables in a destructuring assignment should be `const`. Otherwise, ignore them.", "type": "string", "enum": [ "all" ], "markdownDescription": "Only warn if all variables in a destructuring assignment should be `const`. Otherwise, ignore them." } ] }, "DirectiveConfigSchema": { "anyOf": [ { "type": "boolean" }, { "$ref": "#/definitions/RequireDescription" }, { "type": "object", "properties": { "descriptionFormat": { "type": "string" } }, "additionalProperties": false } ] }, "DisplayNameConfig": { "type": "object", "properties": { "checkContextObjects": { "description": "When `true`, this rule will warn on context objects\nwithout a `displayName`.\n\n`displayName` allows you to [name your context](https://reactjs.org/docs/context.html#contextdisplayname) object.\nThis name is used in the React DevTools for the context's `Provider` and `Consumer`.", "default": false, "type": "boolean", "markdownDescription": "When `true`, this rule will warn on context objects\nwithout a `displayName`.\n\n`displayName` allows you to [name your context](https://reactjs.org/docs/context.html#contextdisplayname) object.\nThis name is used in the React DevTools for the context's `Provider` and `Consumer`." }, "ignoreTranspilerName": { "description": "When `true`, the rule will ignore the name set by the transpiler\nand require a `displayName` property in this case.", "default": false, "type": "boolean", "markdownDescription": "When `true`, the rule will ignore the name set by the transpiler\nand require a `displayName` property in this case." } }, "additionalProperties": false }, "DistractingElement": { "type": "string", "enum": [ "marquee", "blink" ] }, "DotNotationConfig": { "type": "object", "properties": { "allowIndexSignaturePropertyAccess": { "description": "Allow bracket notation for properties covered by an index signature.", "default": false, "type": "boolean", "markdownDescription": "Allow bracket notation for properties covered by an index signature." }, "allowKeywords": { "description": "Allow bracket notation for ES3 keyword property names (for example `obj[\"class\"]`).", "default": true, "type": "boolean", "markdownDescription": "Allow bracket notation for ES3 keyword property names (for example `obj[\"class\"]`)." }, "allowPattern": { "description": "Regex pattern for property names that are allowed to use bracket notation.", "default": "", "type": "string", "markdownDescription": "Regex pattern for property names that are allowed to use bracket notation." }, "allowPrivateClassPropertyAccess": { "description": "Allow bracket notation for private class members.", "default": false, "type": "boolean", "markdownDescription": "Allow bracket notation for private class members." }, "allowProtectedClassPropertyAccess": { "description": "Allow bracket notation for protected class members.", "default": false, "type": "boolean", "markdownDescription": "Allow bracket notation for protected class members." } }, "additionalProperties": false }, "DummyRule": { "anyOf": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" } ], "additionalItems": true, "minItems": 1 } ] }, "DummyRuleMap": { "description": "See [Oxlint Rules](https://oxc.rs/docs/guide/usage/linter/rules.html)", "type": "object", "properties": { "accessor-pairs": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/AccessorPairsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "array-callback-return": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ArrayCallbackReturn" } ], "maxItems": 2, "minItems": 2 } ] }, "arrow-body-style": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/Mode2" }, { "$ref": "#/definitions/ArrowBodyStyleConfig" } ], "maxItems": 3, "minItems": 2 } ] }, "block-scoped-var": { "$ref": "#/definitions/RuleNoConfig" }, "capitalized-comments": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/AlwaysNever" }, { "$ref": "#/definitions/OptionsJsonEnum" } ], "maxItems": 3, "minItems": 2 } ] }, "class-methods-use-this": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ClassMethodsUseThisConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "complexity": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ComplexityConfigEnum" } ], "maxItems": 2, "minItems": 2 } ] }, "constructor-super": { "$ref": "#/definitions/RuleNoConfig" }, "curly": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/CurlyType" }, { "$ref": "#/definitions/CurlyConsistent" } ], "maxItems": 3, "minItems": 2 } ] }, "default-case": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/DefaultCaseConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "default-case-last": { "$ref": "#/definitions/RuleNoConfig" }, "default-param-last": { "$ref": "#/definitions/RuleNoConfig" }, "eqeqeq": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/CompareType" }, { "$ref": "#/definitions/EqeqeqOptions" } ], "maxItems": 3, "minItems": 2 } ] }, "for-direction": { "$ref": "#/definitions/RuleNoConfig" }, "func-name-matching": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "anyOf": [ { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/FuncNameMatchingMode" }, { "$ref": "#/definitions/FuncNameMatchingConfig" } ], "maxItems": 3, "minItems": 2 }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/FuncNameMatchingMode" } ], "maxItems": 2, "minItems": 2 }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/FuncNameMatchingConfig" } ], "maxItems": 2, "minItems": 2 } ] } ] }, "func-names": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/FuncNamesConfigType" }, { "$ref": "#/definitions/FuncNamesGeneratorsConfig" } ], "maxItems": 3, "minItems": 2 } ] }, "func-style": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/Style" }, { "$ref": "#/definitions/FuncStyleConfig" } ], "maxItems": 3, "minItems": 2 } ] }, "getter-return": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/GetterReturn" } ], "maxItems": 2, "minItems": 2 } ] }, "grouped-accessor-pairs": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/PairOrder" }, { "$ref": "#/definitions/GroupedAccessorPairsConfig" } ], "maxItems": 3, "minItems": 2 } ] }, "guard-for-in": { "$ref": "#/definitions/RuleNoConfig" }, "id-length": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/IdLengthConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "id-match": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "type": "string" }, { "$ref": "#/definitions/IdMatchOptions" } ], "maxItems": 3, "minItems": 2 } ] }, "import/consistent-type-specifier-style": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/Mode" } ], "maxItems": 2, "minItems": 2 } ] }, "import/default": { "$ref": "#/definitions/RuleNoConfig" }, "import/export": { "$ref": "#/definitions/RuleNoConfig" }, "import/exports-last": { "$ref": "#/definitions/RuleNoConfig" }, "import/extensions": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "anyOf": [ { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ExtensionRule" }, { "$ref": "#/definitions/ImportExtensionsObject" } ], "maxItems": 3, "minItems": 2 }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ExtensionRule" } ], "maxItems": 2, "minItems": 2 }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ImportExtensionsObject" } ], "maxItems": 2, "minItems": 2 } ] } ] }, "import/first": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/AbsoluteFirst" } ], "maxItems": 2, "minItems": 2 } ] }, "import/group-exports": { "$ref": "#/definitions/RuleNoConfig" }, "import/max-dependencies": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/MaxDependenciesConfigJson" } ], "maxItems": 2, "minItems": 2 } ] }, "import/named": { "$ref": "#/definitions/RuleNoConfig" }, "import/namespace": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/Namespace" } ], "maxItems": 2, "minItems": 2 } ] }, "import/newline-after-import": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NewlineAfterImport" } ], "maxItems": 2, "minItems": 2 } ] }, "import/no-absolute-path": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoAbsolutePath" } ], "maxItems": 2, "minItems": 2 } ] }, "import/no-amd": { "$ref": "#/definitions/RuleNoConfig" }, "import/no-anonymous-default-export": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoAnonymousDefaultExport" } ], "maxItems": 2, "minItems": 2 } ] }, "import/no-commonjs": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoCommonjs" } ], "maxItems": 2, "minItems": 2 } ] }, "import/no-cycle": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoCycle" } ], "maxItems": 2, "minItems": 2 } ] }, "import/no-default-export": { "$ref": "#/definitions/RuleNoConfig" }, "import/no-duplicates": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoDuplicates" } ], "maxItems": 2, "minItems": 2 } ] }, "import/no-dynamic-require": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoDynamicRequire" } ], "maxItems": 2, "minItems": 2 } ] }, "import/no-empty-named-blocks": { "$ref": "#/definitions/RuleNoConfig" }, "import/no-mutable-exports": { "$ref": "#/definitions/RuleNoConfig" }, "import/no-named-as-default": { "$ref": "#/definitions/RuleNoConfig" }, "import/no-named-as-default-member": { "$ref": "#/definitions/RuleNoConfig" }, "import/no-named-default": { "$ref": "#/definitions/RuleNoConfig" }, "import/no-named-export": { "$ref": "#/definitions/RuleNoConfig" }, "import/no-namespace": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoNamespaceConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "import/no-nodejs-modules": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoNodejsModulesConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "import/no-relative-parent-imports": { "$ref": "#/definitions/RuleNoConfig" }, "import/no-self-import": { "$ref": "#/definitions/RuleNoConfig" }, "import/no-unassigned-import": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoUnassignedImportConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "import/no-webpack-loader-syntax": { "$ref": "#/definitions/RuleNoConfig" }, "import/prefer-default-export": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/PreferDefaultExport" } ], "maxItems": 2, "minItems": 2 } ] }, "import/unambiguous": { "$ref": "#/definitions/RuleNoConfig" }, "init-declarations": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/AlwaysNever" }, { "$ref": "#/definitions/InitDeclarationsConfig" } ], "maxItems": 3, "minItems": 2 } ] }, "jest/consistent-test-it": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ConsistentTestItConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jest/expect-expect": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ExpectExpectConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jest/max-expects": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/MaxExpectsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jest/max-nested-describe": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/MaxNestedDescribeConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jest/no-alias-methods": { "$ref": "#/definitions/RuleNoConfig" }, "jest/no-commented-out-tests": { "$ref": "#/definitions/RuleNoConfig" }, "jest/no-conditional-expect": { "$ref": "#/definitions/RuleNoConfig" }, "jest/no-conditional-in-test": { "$ref": "#/definitions/RuleNoConfig" }, "jest/no-confusing-set-timeout": { "$ref": "#/definitions/RuleNoConfig" }, "jest/no-deprecated-functions": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoDeprecatedFunctionsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jest/no-disabled-tests": { "$ref": "#/definitions/RuleNoConfig" }, "jest/no-done-callback": { "$ref": "#/definitions/RuleNoConfig" }, "jest/no-duplicate-hooks": { "$ref": "#/definitions/RuleNoConfig" }, "jest/no-export": { "$ref": "#/definitions/RuleNoConfig" }, "jest/no-focused-tests": { "$ref": "#/definitions/RuleNoConfig" }, "jest/no-hooks": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoHooksConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jest/no-identical-title": { "$ref": "#/definitions/RuleNoConfig" }, "jest/no-interpolation-in-snapshots": { "$ref": "#/definitions/RuleNoConfig" }, "jest/no-jasmine-globals": { "$ref": "#/definitions/RuleNoConfig" }, "jest/no-large-snapshots": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoLargeSnapshotsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jest/no-mocks-import": { "$ref": "#/definitions/RuleNoConfig" }, "jest/no-restricted-jest-methods": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoRestrictedTestMethodsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jest/no-restricted-matchers": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoRestrictedMatchersConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jest/no-standalone-expect": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoStandaloneExpectConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jest/no-test-prefixes": { "$ref": "#/definitions/RuleNoConfig" }, "jest/no-test-return-statement": { "$ref": "#/definitions/RuleNoConfig" }, "jest/no-unneeded-async-expect-function": { "$ref": "#/definitions/RuleNoConfig" }, "jest/no-untyped-mock-factory": { "$ref": "#/definitions/RuleNoConfig" }, "jest/padding-around-after-all-blocks": { "$ref": "#/definitions/RuleNoConfig" }, "jest/padding-around-test-blocks": { "$ref": "#/definitions/RuleNoConfig" }, "jest/prefer-called-with": { "$ref": "#/definitions/RuleNoConfig" }, "jest/prefer-comparison-matcher": { "$ref": "#/definitions/RuleNoConfig" }, "jest/prefer-each": { "$ref": "#/definitions/RuleNoConfig" }, "jest/prefer-ending-with-an-expect": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/PreferEndingWithAnExpectConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jest/prefer-equality-matcher": { "$ref": "#/definitions/RuleNoConfig" }, "jest/prefer-expect-assertions": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/PreferExpectAssertionsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jest/prefer-expect-resolves": { "$ref": "#/definitions/RuleNoConfig" }, "jest/prefer-hooks-in-order": { "$ref": "#/definitions/RuleNoConfig" }, "jest/prefer-hooks-on-top": { "$ref": "#/definitions/RuleNoConfig" }, "jest/prefer-importing-jest-globals": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/PreferImportingJestGlobalsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jest/prefer-jest-mocked": { "$ref": "#/definitions/RuleNoConfig" }, "jest/prefer-lowercase-title": { "$ref": "#/definitions/DummyRule" }, "jest/prefer-mock-promise-shorthand": { "$ref": "#/definitions/RuleNoConfig" }, "jest/prefer-mock-return-shorthand": { "$ref": "#/definitions/RuleNoConfig" }, "jest/prefer-snapshot-hint": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/SnapshotHintMode" } ], "maxItems": 2, "minItems": 2 } ] }, "jest/prefer-spy-on": { "$ref": "#/definitions/RuleNoConfig" }, "jest/prefer-strict-equal": { "$ref": "#/definitions/RuleNoConfig" }, "jest/prefer-to-be": { "$ref": "#/definitions/RuleNoConfig" }, "jest/prefer-to-contain": { "$ref": "#/definitions/RuleNoConfig" }, "jest/prefer-to-have-been-called": { "$ref": "#/definitions/RuleNoConfig" }, "jest/prefer-to-have-been-called-times": { "$ref": "#/definitions/RuleNoConfig" }, "jest/prefer-to-have-length": { "$ref": "#/definitions/RuleNoConfig" }, "jest/prefer-todo": { "$ref": "#/definitions/RuleNoConfig" }, "jest/require-hook": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/RequireHookConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jest/require-to-throw-message": { "$ref": "#/definitions/RuleNoConfig" }, "jest/require-top-level-describe": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/RequireTopLevelDescribeConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jest/valid-describe-callback": { "$ref": "#/definitions/RuleNoConfig" }, "jest/valid-expect": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ValidExpectConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jest/valid-expect-in-promise": { "$ref": "#/definitions/RuleNoConfig" }, "jest/valid-title": { "$ref": "#/definitions/DummyRule" }, "jsdoc/check-access": { "$ref": "#/definitions/RuleNoConfig" }, "jsdoc/check-property-names": { "$ref": "#/definitions/RuleNoConfig" }, "jsdoc/check-tag-names": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/CheckTagNamesConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jsdoc/empty-tags": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/EmptyTagsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jsdoc/implements-on-classes": { "$ref": "#/definitions/RuleNoConfig" }, "jsdoc/no-defaults": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoDefaultsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jsdoc/require-param": { "$ref": "#/definitions/DummyRule" }, "jsdoc/require-param-description": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/RequireParamDescriptionConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jsdoc/require-param-name": { "$ref": "#/definitions/RuleNoConfig" }, "jsdoc/require-param-type": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/RequireParamTypeConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jsdoc/require-property": { "$ref": "#/definitions/RuleNoConfig" }, "jsdoc/require-property-description": { "$ref": "#/definitions/RuleNoConfig" }, "jsdoc/require-property-name": { "$ref": "#/definitions/RuleNoConfig" }, "jsdoc/require-property-type": { "$ref": "#/definitions/RuleNoConfig" }, "jsdoc/require-returns": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/RequireReturnsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jsdoc/require-returns-description": { "$ref": "#/definitions/RuleNoConfig" }, "jsdoc/require-returns-type": { "$ref": "#/definitions/RuleNoConfig" }, "jsdoc/require-throws-description": { "$ref": "#/definitions/RuleNoConfig" }, "jsdoc/require-throws-type": { "$ref": "#/definitions/RuleNoConfig" }, "jsdoc/require-yields": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/RequireYieldsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jsdoc/require-yields-description": { "$ref": "#/definitions/RuleNoConfig" }, "jsdoc/require-yields-type": { "$ref": "#/definitions/RuleNoConfig" }, "jsx-a11y/alt-text": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/AltTextConfigSchema" } ], "maxItems": 2, "minItems": 2 } ] }, "jsx-a11y/anchor-ambiguous-text": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/AnchorAmbiguousTextConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jsx-a11y/anchor-has-content": { "$ref": "#/definitions/RuleNoConfig" }, "jsx-a11y/anchor-is-valid": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/AnchorIsValidConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jsx-a11y/aria-activedescendant-has-tabindex": { "$ref": "#/definitions/RuleNoConfig" }, "jsx-a11y/aria-props": { "$ref": "#/definitions/RuleNoConfig" }, "jsx-a11y/aria-proptypes": { "$ref": "#/definitions/RuleNoConfig" }, "jsx-a11y/aria-role": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/AriaRoleConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jsx-a11y/aria-unsupported-elements": { "$ref": "#/definitions/RuleNoConfig" }, "jsx-a11y/autocomplete-valid": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/AutocompleteValidConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jsx-a11y/click-events-have-key-events": { "$ref": "#/definitions/RuleNoConfig" }, "jsx-a11y/control-has-associated-label": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ControlHasAssociatedLabelConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jsx-a11y/heading-has-content": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/HeadingHasContentConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jsx-a11y/html-has-lang": { "$ref": "#/definitions/RuleNoConfig" }, "jsx-a11y/iframe-has-title": { "$ref": "#/definitions/RuleNoConfig" }, "jsx-a11y/img-redundant-alt": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ImgRedundantAltConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jsx-a11y/interactive-supports-focus": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/InteractiveSupportsFocusConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jsx-a11y/label-has-associated-control": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/LabelHasAssociatedControlConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jsx-a11y/lang": { "$ref": "#/definitions/RuleNoConfig" }, "jsx-a11y/media-has-caption": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/MediaHasCaptionConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jsx-a11y/mouse-events-have-key-events": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/MouseEventsHaveKeyEventsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jsx-a11y/no-access-key": { "$ref": "#/definitions/RuleNoConfig" }, "jsx-a11y/no-aria-hidden-on-focusable": { "$ref": "#/definitions/RuleNoConfig" }, "jsx-a11y/no-autofocus": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoAutofocus" } ], "maxItems": 2, "minItems": 2 } ] }, "jsx-a11y/no-distracting-elements": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoDistractingElementsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jsx-a11y/no-interactive-element-to-noninteractive-role": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoInteractiveElementToNoninteractiveRoleConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jsx-a11y/no-noninteractive-element-interactions": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoNoninteractiveElementInteractionsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jsx-a11y/no-noninteractive-element-to-interactive-role": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoNoninteractiveElementToInteractiveRoleConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jsx-a11y/no-noninteractive-tabindex": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoNoninteractiveTabindexConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jsx-a11y/no-redundant-roles": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoRedundantRolesConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jsx-a11y/no-static-element-interactions": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoStaticElementInteractionsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "jsx-a11y/prefer-tag-over-role": { "$ref": "#/definitions/RuleNoConfig" }, "jsx-a11y/role-has-required-aria-props": { "$ref": "#/definitions/RuleNoConfig" }, "jsx-a11y/role-supports-aria-props": { "$ref": "#/definitions/RuleNoConfig" }, "jsx-a11y/scope": { "$ref": "#/definitions/RuleNoConfig" }, "jsx-a11y/tabindex-no-positive": { "$ref": "#/definitions/RuleNoConfig" }, "logical-assignment-operators": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/AlwaysNever" }, { "$ref": "#/definitions/LogicalAssignmentOperatorsConfig" } ], "maxItems": 3, "minItems": 2 } ] }, "max-classes-per-file": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/MaxClassesPerFileConfigEnum" } ], "maxItems": 2, "minItems": 2 } ] }, "max-depth": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/MaxDepthConfigEnum" } ], "maxItems": 2, "minItems": 2 } ] }, "max-lines": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/MaxLinesConfigEnum" } ], "maxItems": 2, "minItems": 2 } ] }, "max-lines-per-function": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/MaxLinesPerFunctionConfigEnum" } ], "maxItems": 2, "minItems": 2 } ] }, "max-nested-callbacks": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/MaxNestedCallbacksConfigEnum" } ], "maxItems": 2, "minItems": 2 } ] }, "max-params": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/MaxParamsConfigEnum" } ], "maxItems": 2, "minItems": 2 } ] }, "max-statements": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/MaxStatementsConfigEnum" } ], "maxItems": 2, "minItems": 2 } ] }, "new-cap": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NewCapConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "nextjs/google-font-display": { "$ref": "#/definitions/RuleNoConfig" }, "nextjs/google-font-preconnect": { "$ref": "#/definitions/RuleNoConfig" }, "nextjs/inline-script-id": { "$ref": "#/definitions/RuleNoConfig" }, "nextjs/next-script-for-ga": { "$ref": "#/definitions/RuleNoConfig" }, "nextjs/no-assign-module-variable": { "$ref": "#/definitions/RuleNoConfig" }, "nextjs/no-async-client-component": { "$ref": "#/definitions/RuleNoConfig" }, "nextjs/no-before-interactive-script-outside-document": { "$ref": "#/definitions/RuleNoConfig" }, "nextjs/no-css-tags": { "$ref": "#/definitions/RuleNoConfig" }, "nextjs/no-document-import-in-page": { "$ref": "#/definitions/RuleNoConfig" }, "nextjs/no-duplicate-head": { "$ref": "#/definitions/RuleNoConfig" }, "nextjs/no-head-element": { "$ref": "#/definitions/RuleNoConfig" }, "nextjs/no-head-import-in-document": { "$ref": "#/definitions/RuleNoConfig" }, "nextjs/no-html-link-for-pages": { "$ref": "#/definitions/RuleNoConfig" }, "nextjs/no-img-element": { "$ref": "#/definitions/RuleNoConfig" }, "nextjs/no-page-custom-font": { "$ref": "#/definitions/RuleNoConfig" }, "nextjs/no-script-component-in-head": { "$ref": "#/definitions/RuleNoConfig" }, "nextjs/no-styled-jsx-in-document": { "$ref": "#/definitions/RuleNoConfig" }, "nextjs/no-sync-scripts": { "$ref": "#/definitions/RuleNoConfig" }, "nextjs/no-title-in-document-head": { "$ref": "#/definitions/RuleNoConfig" }, "nextjs/no-typos": { "$ref": "#/definitions/RuleNoConfig" }, "nextjs/no-unwanted-polyfillio": { "$ref": "#/definitions/RuleNoConfig" }, "no-alert": { "$ref": "#/definitions/RuleNoConfig" }, "no-array-constructor": { "$ref": "#/definitions/RuleNoConfig" }, "no-async-promise-executor": { "$ref": "#/definitions/RuleNoConfig" }, "no-await-in-loop": { "$ref": "#/definitions/RuleNoConfig" }, "no-bitwise": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoBitwiseConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "no-caller": { "$ref": "#/definitions/RuleNoConfig" }, "no-case-declarations": { "$ref": "#/definitions/RuleNoConfig" }, "no-class-assign": { "$ref": "#/definitions/RuleNoConfig" }, "no-compare-neg-zero": { "$ref": "#/definitions/RuleNoConfig" }, "no-cond-assign": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoCondAssignConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "no-console": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoConsoleConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "no-const-assign": { "$ref": "#/definitions/RuleNoConfig" }, "no-constant-binary-expression": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoConstantBinaryExpressionConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "no-constant-condition": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoConstantCondition" } ], "maxItems": 2, "minItems": 2 } ] }, "no-constructor-return": { "$ref": "#/definitions/RuleNoConfig" }, "no-continue": { "$ref": "#/definitions/RuleNoConfig" }, "no-control-regex": { "$ref": "#/definitions/RuleNoConfig" }, "no-debugger": { "$ref": "#/definitions/RuleNoConfig" }, "no-delete-var": { "$ref": "#/definitions/RuleNoConfig" }, "no-div-regex": { "$ref": "#/definitions/RuleNoConfig" }, "no-dupe-class-members": { "$ref": "#/definitions/RuleNoConfig" }, "no-dupe-else-if": { "$ref": "#/definitions/RuleNoConfig" }, "no-dupe-keys": { "$ref": "#/definitions/RuleNoConfig" }, "no-duplicate-case": { "$ref": "#/definitions/RuleNoConfig" }, "no-duplicate-imports": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoDuplicateImports" } ], "maxItems": 2, "minItems": 2 } ] }, "no-else-return": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoElseReturn" } ], "maxItems": 2, "minItems": 2 } ] }, "no-empty": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoEmpty" } ], "maxItems": 2, "minItems": 2 } ] }, "no-empty-character-class": { "$ref": "#/definitions/RuleNoConfig" }, "no-empty-function": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoEmptyFunctionConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "no-empty-pattern": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoEmptyPattern" } ], "maxItems": 2, "minItems": 2 } ] }, "no-empty-static-block": { "$ref": "#/definitions/RuleNoConfig" }, "no-eq-null": { "$ref": "#/definitions/RuleNoConfig" }, "no-eval": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoEval" } ], "maxItems": 2, "minItems": 2 } ] }, "no-ex-assign": { "$ref": "#/definitions/RuleNoConfig" }, "no-extend-native": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoExtendNativeConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "no-extra-bind": { "$ref": "#/definitions/RuleNoConfig" }, "no-extra-boolean-cast": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoExtraBooleanCast" } ], "maxItems": 2, "minItems": 2 } ] }, "no-extra-label": { "$ref": "#/definitions/RuleNoConfig" }, "no-fallthrough": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoFallthroughConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "no-func-assign": { "$ref": "#/definitions/RuleNoConfig" }, "no-global-assign": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoGlobalAssignConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "no-implicit-coercion": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoImplicitCoercionConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "no-implicit-globals": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoImplicitGlobals" } ], "maxItems": 2, "minItems": 2 } ] }, "no-implied-eval": { "$ref": "#/definitions/RuleNoConfig" }, "no-import-assign": { "$ref": "#/definitions/RuleNoConfig" }, "no-inline-comments": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoInlineCommentsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "no-inner-declarations": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoInnerDeclarationsConfig" }, { "$ref": "#/definitions/NoInnerDeclarationsOptions" } ], "maxItems": 3, "minItems": 2 } ] }, "no-invalid-regexp": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoInvalidRegexpConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "no-irregular-whitespace": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoIrregularWhitespaceConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "no-iterator": { "$ref": "#/definitions/RuleNoConfig" }, "no-label-var": { "$ref": "#/definitions/RuleNoConfig" }, "no-labels": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoLabels" } ], "maxItems": 2, "minItems": 2 } ] }, "no-lone-blocks": { "$ref": "#/definitions/RuleNoConfig" }, "no-lonely-if": { "$ref": "#/definitions/RuleNoConfig" }, "no-loop-func": { "$ref": "#/definitions/RuleNoConfig" }, "no-loss-of-precision": { "$ref": "#/definitions/RuleNoConfig" }, "no-magic-numbers": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoMagicNumbersConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "no-misleading-character-class": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoMisleadingCharacterClass" } ], "maxItems": 2, "minItems": 2 } ] }, "no-multi-assign": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoMultiAssign" } ], "maxItems": 2, "minItems": 2 } ] }, "no-multi-str": { "$ref": "#/definitions/RuleNoConfig" }, "no-negated-condition": { "$ref": "#/definitions/RuleNoConfig" }, "no-nested-ternary": { "$ref": "#/definitions/RuleNoConfig" }, "no-new": { "$ref": "#/definitions/RuleNoConfig" }, "no-new-func": { "$ref": "#/definitions/RuleNoConfig" }, "no-new-native-nonconstructor": { "$ref": "#/definitions/RuleNoConfig" }, "no-new-wrappers": { "$ref": "#/definitions/RuleNoConfig" }, "no-nonoctal-decimal-escape": { "$ref": "#/definitions/RuleNoConfig" }, "no-obj-calls": { "$ref": "#/definitions/RuleNoConfig" }, "no-object-constructor": { "$ref": "#/definitions/RuleNoConfig" }, "no-param-reassign": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoParamReassignConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "no-plusplus": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoPlusplus" } ], "maxItems": 2, "minItems": 2 } ] }, "no-promise-executor-return": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoPromiseExecutorReturnConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "no-proto": { "$ref": "#/definitions/RuleNoConfig" }, "no-prototype-builtins": { "$ref": "#/definitions/RuleNoConfig" }, "no-redeclare": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoRedeclare" } ], "maxItems": 2, "minItems": 2 } ] }, "no-regex-spaces": { "$ref": "#/definitions/RuleNoConfig" }, "no-restricted-exports": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoRestrictedExportsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "no-restricted-globals": { "$ref": "#/definitions/DummyRule" }, "no-restricted-imports": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoRestrictedImportsConfigEnum" } ], "additionalItems": { "$ref": "#/definitions/NoRestrictedImportsConfigEnum" }, "minItems": 2 } ] }, "no-restricted-properties": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/PropertyDetails" } ], "additionalItems": { "$ref": "#/definitions/PropertyDetails" }, "minItems": 2 } ] }, "no-return-assign": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoReturnAssignMode" } ], "maxItems": 2, "minItems": 2 } ] }, "no-script-url": { "$ref": "#/definitions/RuleNoConfig" }, "no-self-assign": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoSelfAssign" } ], "maxItems": 2, "minItems": 2 } ] }, "no-self-compare": { "$ref": "#/definitions/RuleNoConfig" }, "no-sequences": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoSequences" } ], "maxItems": 2, "minItems": 2 } ] }, "no-setter-return": { "$ref": "#/definitions/RuleNoConfig" }, "no-shadow": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoShadowConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "no-shadow-restricted-names": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoShadowRestrictedNamesConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "no-sparse-arrays": { "$ref": "#/definitions/RuleNoConfig" }, "no-template-curly-in-string": { "$ref": "#/definitions/RuleNoConfig" }, "no-ternary": { "$ref": "#/definitions/RuleNoConfig" }, "no-this-before-super": { "$ref": "#/definitions/RuleNoConfig" }, "no-throw-literal": { "$ref": "#/definitions/RuleNoConfig" }, "no-unassigned-vars": { "$ref": "#/definitions/RuleNoConfig" }, "no-undef": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoUndef" } ], "maxItems": 2, "minItems": 2 } ] }, "no-undefined": { "$ref": "#/definitions/RuleNoConfig" }, "no-underscore-dangle": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoUnderscoreDangle" } ], "maxItems": 2, "minItems": 2 } ] }, "no-unexpected-multiline": { "$ref": "#/definitions/RuleNoConfig" }, "no-unmodified-loop-condition": { "$ref": "#/definitions/RuleNoConfig" }, "no-unneeded-ternary": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoUnneededTernary" } ], "maxItems": 2, "minItems": 2 } ] }, "no-unreachable": { "$ref": "#/definitions/RuleNoConfig" }, "no-unreachable-loop": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoUnreachableLoop" } ], "maxItems": 2, "minItems": 2 } ] }, "no-unsafe-finally": { "$ref": "#/definitions/RuleNoConfig" }, "no-unsafe-negation": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoUnsafeNegation" } ], "maxItems": 2, "minItems": 2 } ] }, "no-unsafe-optional-chaining": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoUnsafeOptionalChaining" } ], "maxItems": 2, "minItems": 2 } ] }, "no-unused-expressions": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoUnusedExpressionsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "no-unused-labels": { "$ref": "#/definitions/RuleNoConfig" }, "no-unused-private-class-members": { "$ref": "#/definitions/RuleNoConfig" }, "no-unused-vars": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoUnusedVarsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "no-use-before-define": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoUseBeforeDefineConfigJson" } ], "maxItems": 2, "minItems": 2 } ] }, "no-useless-assignment": { "$ref": "#/definitions/RuleNoConfig" }, "no-useless-backreference": { "$ref": "#/definitions/RuleNoConfig" }, "no-useless-call": { "$ref": "#/definitions/RuleNoConfig" }, "no-useless-catch": { "$ref": "#/definitions/RuleNoConfig" }, "no-useless-computed-key": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoUselessComputedKey" } ], "maxItems": 2, "minItems": 2 } ] }, "no-useless-concat": { "$ref": "#/definitions/RuleNoConfig" }, "no-useless-constructor": { "$ref": "#/definitions/RuleNoConfig" }, "no-useless-escape": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoUselessEscapeConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "no-useless-rename": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoUselessRenameConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "no-useless-return": { "$ref": "#/definitions/RuleNoConfig" }, "no-var": { "$ref": "#/definitions/RuleNoConfig" }, "no-void": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoVoid" } ], "maxItems": 2, "minItems": 2 } ] }, "no-warning-comments": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoWarningCommentsConfigJson" } ], "maxItems": 2, "minItems": 2 } ] }, "no-with": { "$ref": "#/definitions/RuleNoConfig" }, "node/callback-return": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/CallbackReturn" } ], "maxItems": 2, "minItems": 2 } ] }, "node/global-require": { "$ref": "#/definitions/RuleNoConfig" }, "node/handle-callback-err": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/HandleCallbackErrConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "node/no-exports-assign": { "$ref": "#/definitions/RuleNoConfig" }, "node/no-mixed-requires": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoMixedRequiresConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "node/no-new-require": { "$ref": "#/definitions/RuleNoConfig" }, "node/no-path-concat": { "$ref": "#/definitions/RuleNoConfig" }, "node/no-process-env": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoProcessEnvConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "node/no-sync": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoSyncConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "object-shorthand": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ShorthandType" }, { "$ref": "#/definitions/ObjectShorthandOptions" } ], "maxItems": 3, "minItems": 2 } ] }, "operator-assignment": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/AlwaysNever" } ], "maxItems": 2, "minItems": 2 } ] }, "oxc/approx-constant": { "$ref": "#/definitions/RuleNoConfig" }, "oxc/bad-array-method-on-arguments": { "$ref": "#/definitions/RuleNoConfig" }, "oxc/bad-bitwise-operator": { "$ref": "#/definitions/RuleNoConfig" }, "oxc/bad-char-at-comparison": { "$ref": "#/definitions/RuleNoConfig" }, "oxc/bad-comparison-sequence": { "$ref": "#/definitions/RuleNoConfig" }, "oxc/bad-min-max-func": { "$ref": "#/definitions/RuleNoConfig" }, "oxc/bad-object-literal-comparison": { "$ref": "#/definitions/RuleNoConfig" }, "oxc/bad-replace-all-arg": { "$ref": "#/definitions/RuleNoConfig" }, "oxc/branches-sharing-code": { "$ref": "#/definitions/RuleNoConfig" }, "oxc/const-comparisons": { "$ref": "#/definitions/RuleNoConfig" }, "oxc/double-comparisons": { "$ref": "#/definitions/RuleNoConfig" }, "oxc/erasing-op": { "$ref": "#/definitions/RuleNoConfig" }, "oxc/misrefactored-assign-op": { "$ref": "#/definitions/RuleNoConfig" }, "oxc/missing-throw": { "$ref": "#/definitions/RuleNoConfig" }, "oxc/no-accumulating-spread": { "$ref": "#/definitions/RuleNoConfig" }, "oxc/no-async-await": { "$ref": "#/definitions/RuleNoConfig" }, "oxc/no-async-endpoint-handlers": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoAsyncEndpointHandlersConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "oxc/no-barrel-file": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoBarrelFile" } ], "maxItems": 2, "minItems": 2 } ] }, "oxc/no-const-enum": { "$ref": "#/definitions/RuleNoConfig" }, "oxc/no-map-spread": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoMapSpreadConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "oxc/no-optional-chaining": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoOptionalChainingConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "oxc/no-rest-spread-properties": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoRestSpreadPropertiesOptions" } ], "maxItems": 2, "minItems": 2 } ] }, "oxc/no-this-in-exported-function": { "$ref": "#/definitions/RuleNoConfig" }, "oxc/number-arg-out-of-range": { "$ref": "#/definitions/RuleNoConfig" }, "oxc/only-used-in-recursion": { "$ref": "#/definitions/RuleNoConfig" }, "oxc/uninvoked-array-callback": { "$ref": "#/definitions/RuleNoConfig" }, "prefer-arrow-callback": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/PreferArrowCallback" } ], "maxItems": 2, "minItems": 2 } ] }, "prefer-const": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/PreferConst" } ], "maxItems": 2, "minItems": 2 } ] }, "prefer-destructuring": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/PreferDestructuringOption" }, { "$ref": "#/definitions/PreferDestructuringRenamedPropertiesConfig" } ], "maxItems": 3, "minItems": 2 } ] }, "prefer-exponentiation-operator": { "$ref": "#/definitions/RuleNoConfig" }, "prefer-named-capture-group": { "$ref": "#/definitions/RuleNoConfig" }, "prefer-numeric-literals": { "$ref": "#/definitions/RuleNoConfig" }, "prefer-object-has-own": { "$ref": "#/definitions/RuleNoConfig" }, "prefer-object-spread": { "$ref": "#/definitions/RuleNoConfig" }, "prefer-promise-reject-errors": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/PreferPromiseRejectErrors" } ], "maxItems": 2, "minItems": 2 } ] }, "prefer-regex-literals": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/PreferRegexLiterals" } ], "maxItems": 2, "minItems": 2 } ] }, "prefer-rest-params": { "$ref": "#/definitions/RuleNoConfig" }, "prefer-spread": { "$ref": "#/definitions/RuleNoConfig" }, "prefer-template": { "$ref": "#/definitions/RuleNoConfig" }, "preserve-caught-error": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/PreserveCaughtErrorOptions" } ], "maxItems": 2, "minItems": 2 } ] }, "promise/always-return": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/AlwaysReturnConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "promise/avoid-new": { "$ref": "#/definitions/RuleNoConfig" }, "promise/catch-or-return": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/CatchOrReturnConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "promise/no-callback-in-promise": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoCallbackInPromiseConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "promise/no-multiple-resolved": { "$ref": "#/definitions/RuleNoConfig" }, "promise/no-nesting": { "$ref": "#/definitions/RuleNoConfig" }, "promise/no-new-statics": { "$ref": "#/definitions/RuleNoConfig" }, "promise/no-promise-in-callback": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoPromiseInCallback" } ], "maxItems": 2, "minItems": 2 } ] }, "promise/no-return-in-finally": { "$ref": "#/definitions/RuleNoConfig" }, "promise/no-return-wrap": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoReturnWrap" } ], "maxItems": 2, "minItems": 2 } ] }, "promise/param-names": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ParamNamesConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "promise/prefer-await-to-callbacks": { "$ref": "#/definitions/RuleNoConfig" }, "promise/prefer-await-to-then": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/PreferAwaitToThenConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "promise/prefer-catch": { "$ref": "#/definitions/RuleNoConfig" }, "promise/spec-only": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/SpecOnlyConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "promise/valid-params": { "$ref": "#/definitions/RuleNoConfig" }, "radix": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/RadixType" } ], "maxItems": 2, "minItems": 2 } ] }, "react-perf/jsx-no-jsx-as-prop": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ReactPerfConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "react-perf/jsx-no-new-array-as-prop": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ReactPerfConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "react-perf/jsx-no-new-function-as-prop": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ReactPerfConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "react-perf/jsx-no-new-object-as-prop": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ReactPerfConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "react/button-has-type": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ButtonHasType" } ], "maxItems": 2, "minItems": 2 } ] }, "react/checked-requires-onchange-or-readonly": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/CheckedRequiresOnchangeOrReadonly" } ], "maxItems": 2, "minItems": 2 } ] }, "react/display-name": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/DisplayNameConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "react/exhaustive-deps": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ExhaustiveDepsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "react/forbid-component-props": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ForbidComponentPropsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "react/forbid-dom-props": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ForbidDomPropsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "react/forbid-elements": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ForbidElementsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "react/forward-ref-uses-ref": { "$ref": "#/definitions/RuleNoConfig" }, "react/hook-use-state": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/HookUseState" } ], "maxItems": 2, "minItems": 2 } ] }, "react/iframe-missing-sandbox": { "$ref": "#/definitions/RuleNoConfig" }, "react/jsx-boolean-value": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/EnforceBooleanAttribute" }, { "$ref": "#/definitions/JsxBooleanValueOptions" } ], "maxItems": 3, "minItems": 2 } ] }, "react/jsx-curly-brace-presence": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/JsxCurlyBracePresenceConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "react/jsx-filename-extension": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/JsxFilenameExtensionConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "react/jsx-fragments": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/FragmentMode" } ], "maxItems": 2, "minItems": 2 } ] }, "react/jsx-handler-names": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/JsxHandlerNamesConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "react/jsx-key": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/JsxKeyConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "react/jsx-max-depth": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/JsxMaxDepthConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "react/jsx-no-comment-textnodes": { "$ref": "#/definitions/RuleNoConfig" }, "react/jsx-no-constructed-context-values": { "$ref": "#/definitions/RuleNoConfig" }, "react/jsx-no-duplicate-props": { "$ref": "#/definitions/RuleNoConfig" }, "react/jsx-no-literals": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/JsxNoLiteralsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "react/jsx-no-script-url": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "anyOf": [ { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "type": "array", "items": { "$ref": "#/definitions/JsxNoScriptUrlComponent" } }, { "$ref": "#/definitions/JsxNoScriptUrlOptions" } ], "maxItems": 3, "minItems": 2 }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/JsxNoScriptUrlOptions" } ], "maxItems": 2, "minItems": 2 } ] } ] }, "react/jsx-no-target-blank": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/JsxNoTargetBlank" } ], "maxItems": 2, "minItems": 2 } ] }, "react/jsx-no-undef": { "$ref": "#/definitions/RuleNoConfig" }, "react/jsx-no-useless-fragment": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/JsxNoUselessFragment" } ], "maxItems": 2, "minItems": 2 } ] }, "react/jsx-pascal-case": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/JsxPascalCaseConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "react/jsx-props-no-spread-multi": { "$ref": "#/definitions/RuleNoConfig" }, "react/jsx-props-no-spreading": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/JsxPropsNoSpreadingConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "react/no-array-index-key": { "$ref": "#/definitions/RuleNoConfig" }, "react/no-children-prop": { "$ref": "#/definitions/RuleNoConfig" }, "react/no-clone-element": { "$ref": "#/definitions/RuleNoConfig" }, "react/no-danger": { "$ref": "#/definitions/RuleNoConfig" }, "react/no-danger-with-children": { "$ref": "#/definitions/RuleNoConfig" }, "react/no-did-mount-set-state": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/AllowedOrDisallowInFunc" } ], "maxItems": 2, "minItems": 2 } ] }, "react/no-did-update-set-state": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/AllowedOrDisallowInFunc" } ], "maxItems": 2, "minItems": 2 } ] }, "react/no-direct-mutation-state": { "$ref": "#/definitions/RuleNoConfig" }, "react/no-find-dom-node": { "$ref": "#/definitions/RuleNoConfig" }, "react/no-is-mounted": { "$ref": "#/definitions/RuleNoConfig" }, "react/no-multi-comp": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoMultiComp" } ], "maxItems": 2, "minItems": 2 } ] }, "react/no-namespace": { "$ref": "#/definitions/RuleNoConfig" }, "react/no-object-type-as-default-prop": { "$ref": "#/definitions/RuleNoConfig" }, "react/no-react-children": { "$ref": "#/definitions/RuleNoConfig" }, "react/no-redundant-should-component-update": { "$ref": "#/definitions/RuleNoConfig" }, "react/no-render-return-value": { "$ref": "#/definitions/RuleNoConfig" }, "react/no-set-state": { "$ref": "#/definitions/RuleNoConfig" }, "react/no-string-refs": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoStringRefs" } ], "maxItems": 2, "minItems": 2 } ] }, "react/no-this-in-sfc": { "$ref": "#/definitions/RuleNoConfig" }, "react/no-unescaped-entities": { "$ref": "#/definitions/RuleNoConfig" }, "react/no-unknown-property": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoUnknownPropertyConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "react/no-unsafe": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoUnsafeConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "react/no-unstable-nested-components": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoUnstableNestedComponentsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "react/no-will-update-set-state": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/AllowedOrDisallowInFunc" } ], "maxItems": 2, "minItems": 2 } ] }, "react/only-export-components": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/OnlyExportComponentsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "react/prefer-es6-class": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/AlwaysNever" } ], "maxItems": 2, "minItems": 2 } ] }, "react/prefer-function-component": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/PreferFunctionComponent" } ], "maxItems": 2, "minItems": 2 } ] }, "react/react-compiler": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ReactCompilerConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "react/react-in-jsx-scope": { "$ref": "#/definitions/RuleNoConfig" }, "react/require-render-return": { "$ref": "#/definitions/RuleNoConfig" }, "react/rules-of-hooks": { "$ref": "#/definitions/RuleNoConfig" }, "react/self-closing-comp": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/SelfClosingComp" } ], "maxItems": 2, "minItems": 2 } ] }, "react/state-in-constructor": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/AlwaysNever" } ], "maxItems": 2, "minItems": 2 } ] }, "react/style-prop-object": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/StylePropObjectConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "react/void-dom-elements-no-children": { "$ref": "#/definitions/RuleNoConfig" }, "require-await": { "$ref": "#/definitions/RuleNoConfig" }, "require-unicode-regexp": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/RequireUnicodeRegexp" } ], "maxItems": 2, "minItems": 2 } ] }, "require-yield": { "$ref": "#/definitions/RuleNoConfig" }, "sort-imports": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/SortImportsOptions" } ], "maxItems": 2, "minItems": 2 } ] }, "sort-keys": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/SortOrder" }, { "$ref": "#/definitions/SortKeysOptions" } ], "maxItems": 3, "minItems": 2 } ] }, "sort-vars": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/SortVars" } ], "maxItems": 2, "minItems": 2 } ] }, "symbol-description": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/adjacent-overload-signatures": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/array-type": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ArrayTypeConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/await-thenable": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/ban-ts-comment": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/BanTsCommentConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/ban-tslint-comment": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/ban-types": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/class-literal-property-style": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ClassLiteralPropertyStyleOption" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/consistent-generic-constructors": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/PreferGenericType" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/consistent-indexed-object-style": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ConsistentIndexedObjectStyleConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/consistent-return": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ConsistentReturnConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/consistent-type-assertions": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ConsistentTypeAssertionsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/consistent-type-definitions": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ConsistentTypeDefinitionsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/consistent-type-exports": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ConsistentTypeExportsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/consistent-type-imports": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ConsistentTypeImportsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/dot-notation": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/DotNotationConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/explicit-function-return-type": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ExplicitFunctionReturnTypeConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/explicit-member-accessibility": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ExplicitMemberAccessibilityConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/explicit-module-boundary-types": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ExplicitModuleBoundaryTypesConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/method-signature-style": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/MethodSignatureStyleConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/no-array-delete": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/no-base-to-string": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoBaseToStringConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/no-confusing-non-null-assertion": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/no-confusing-void-expression": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoConfusingVoidExpressionConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/no-deprecated": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoDeprecatedConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/no-duplicate-enum-values": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/no-duplicate-type-constituents": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoDuplicateTypeConstituentsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/no-dynamic-delete": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/no-empty-interface": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoEmptyInterface" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/no-empty-object-type": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoEmptyObjectTypeConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/no-explicit-any": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoExplicitAny" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/no-extra-non-null-assertion": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/no-extraneous-class": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoExtraneousClass" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/no-floating-promises": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoFloatingPromisesConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/no-for-in-array": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/no-implied-eval": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/no-import-type-side-effects": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/no-inferrable-types": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoInferrableTypes" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/no-invalid-void-type": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoInvalidVoidTypeConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/no-meaningless-void-operator": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoMeaninglessVoidOperatorConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/no-misused-new": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/no-misused-promises": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoMisusedPromisesConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/no-misused-spread": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoMisusedSpreadConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/no-mixed-enums": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/no-namespace": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoNamespace" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/no-non-null-asserted-nullish-coalescing": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/no-non-null-asserted-optional-chain": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/no-non-null-assertion": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/no-redundant-type-constituents": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/no-require-imports": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoRequireImportsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/no-restricted-types": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoRestrictedTypesConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/no-this-alias": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoThisAliasConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/no-unnecessary-boolean-literal-compare": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoUnnecessaryBooleanLiteralCompareConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/no-unnecessary-condition": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoUnnecessaryConditionConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/no-unnecessary-parameter-property-assignment": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/no-unnecessary-qualifier": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/no-unnecessary-template-expression": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/no-unnecessary-type-arguments": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/no-unnecessary-type-assertion": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoUnnecessaryTypeAssertionConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/no-unnecessary-type-constraint": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/no-unnecessary-type-conversion": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/no-unnecessary-type-parameters": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/no-unsafe-argument": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/no-unsafe-assignment": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/no-unsafe-call": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/no-unsafe-declaration-merging": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/no-unsafe-enum-comparison": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/no-unsafe-function-type": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/no-unsafe-member-access": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoUnsafeMemberAccessConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/no-unsafe-return": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/no-unsafe-type-assertion": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/no-unsafe-unary-minus": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/no-useless-default-assignment": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/no-useless-empty-export": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/no-var-requires": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/no-wrapper-object-types": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/non-nullable-type-assertion-style": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/only-throw-error": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/OnlyThrowErrorConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/parameter-properties": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ParameterPropertiesConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/prefer-as-const": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/prefer-enum-initializers": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/prefer-find": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/prefer-for-of": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/prefer-function-type": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/prefer-includes": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/prefer-literal-enum-member": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/PreferLiteralEnumMember" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/prefer-namespace-keyword": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/prefer-nullish-coalescing": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/PreferNullishCoalescingConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/prefer-optional-chain": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/PreferOptionalChainConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/prefer-promise-reject-errors": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/PreferPromiseRejectErrorsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/prefer-readonly": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/PreferReadonlyConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/prefer-readonly-parameter-types": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/PreferReadonlyParameterTypesConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/prefer-reduce-type-parameter": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/prefer-regexp-exec": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/prefer-return-this-type": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/prefer-string-starts-ends-with": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/PreferStringStartsEndsWithConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/prefer-ts-expect-error": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/promise-function-async": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/PromiseFunctionAsyncConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/related-getter-setter-pairs": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/require-array-sort-compare": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/RequireArraySortCompareConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/require-await": { "$ref": "#/definitions/RuleNoConfig" }, "typescript/restrict-plus-operands": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/RestrictPlusOperandsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/restrict-template-expressions": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/RestrictTemplateExpressionsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/return-await": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ReturnAwaitOption" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/strict-boolean-expressions": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/StrictBooleanExpressionsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/strict-void-return": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/StrictVoidReturnConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/switch-exhaustiveness-check": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/SwitchExhaustivenessCheckConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/triple-slash-reference": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/TripleSlashReferenceConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/unbound-method": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/UnboundMethodConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/unified-signatures": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/UnifiedSignaturesOptions" } ], "maxItems": 2, "minItems": 2 } ] }, "typescript/use-unknown-in-catch-callback-variable": { "$ref": "#/definitions/RuleNoConfig" }, "unicode-bom": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/BomOptionType" } ], "maxItems": 2, "minItems": 2 } ] }, "unicorn/catch-error-name": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/CatchErrorNameConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "unicorn/consistent-assert": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/consistent-date-clone": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/consistent-empty-array-spread": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/consistent-existence-index-check": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/consistent-function-scoping": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ConsistentFunctionScoping" } ], "maxItems": 2, "minItems": 2 } ] }, "unicorn/consistent-template-literal-escape": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/custom-error-definition": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/empty-brace-spaces": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/error-message": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/escape-case": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/explicit-length-check": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ExplicitLengthCheck" } ], "maxItems": 2, "minItems": 2 } ] }, "unicorn/explicit-timer-delay": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ExplicitTimerDelayMode" } ], "maxItems": 2, "minItems": 2 } ] }, "unicorn/filename-case": { "$ref": "#/definitions/DummyRule" }, "unicorn/import-style": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ImportStyleConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "unicorn/max-nested-calls": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/MaxNestedCalls" } ], "maxItems": 2, "minItems": 2 } ] }, "unicorn/new-for-builtins": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-abusive-eslint-disable": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-accessor-recursion": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-anonymous-default-export": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-array-callback-reference": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-array-fill-with-reference-type": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-array-for-each": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-array-method-this-argument": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-array-reduce": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoArrayReduce" } ], "maxItems": 2, "minItems": 2 } ] }, "unicorn/no-array-reverse": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoArrayReverse" } ], "maxItems": 2, "minItems": 2 } ] }, "unicorn/no-array-sort": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoArraySort" } ], "maxItems": 2, "minItems": 2 } ] }, "unicorn/no-await-expression-member": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-await-in-promise-methods": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-confusing-array-with": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-console-spaces": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-document-cookie": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-empty-file": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-hex-escape": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-immediate-mutation": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-instanceof-array": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-instanceof-builtins": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoInstanceofBuiltinsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "unicorn/no-invalid-fetch-options": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-invalid-remove-event-listener": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-length-as-slice-end": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-lonely-if": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-magic-array-flat-depth": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-negated-condition": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-negation-in-equality-check": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-nested-ternary": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-new-array": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-new-buffer": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-null": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoNull" } ], "maxItems": 2, "minItems": 2 } ] }, "unicorn/no-object-as-default-parameter": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-process-exit": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-single-promise-in-promise-methods": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-static-only-class": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-thenable": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-this-assignment": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-typeof-undefined": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoTypeofUndefined" } ], "maxItems": 2, "minItems": 2 } ] }, "unicorn/no-unnecessary-array-flat-depth": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-unnecessary-array-splice-count": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-unnecessary-await": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-unnecessary-slice-end": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-unreadable-array-destructuring": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-unreadable-iife": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-useless-collection-argument": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-useless-error-capture-stack-trace": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-useless-fallback-in-spread": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-useless-iterator-to-array": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-useless-length-check": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-useless-promise-resolve-reject": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoUselessPromiseResolveRejectOptions" } ], "maxItems": 2, "minItems": 2 } ] }, "unicorn/no-useless-spread": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-useless-switch-case": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/no-useless-undefined": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoUselessUndefined" } ], "maxItems": 2, "minItems": 2 } ] }, "unicorn/no-zero-fractions": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/number-literal-case": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/numeric-separators-style": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NumericSeparatorsStyleConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "unicorn/prefer-add-event-listener": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-array-find": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-array-flat": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-array-flat-map": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-array-index-of": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-array-some": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-at": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/PreferAtConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "unicorn/prefer-bigint-literals": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-blob-reading-methods": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-class-fields": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-classlist-toggle": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-code-point": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-date-now": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-default-parameters": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-dom-node-append": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-dom-node-dataset": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-dom-node-remove": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-dom-node-text-content": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-event-target": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-export-from": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/PreferExportFrom" } ], "maxItems": 2, "minItems": 2 } ] }, "unicorn/prefer-global-this": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-import-meta-properties": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-includes": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-keyboard-event-key": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-logical-operator-over-ternary": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-math-min-max": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-math-trunc": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-modern-dom-apis": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-modern-math-apis": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-module": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-native-coercion-functions": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-negative-index": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-node-protocol": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-number-coercion": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-number-properties": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/PreferNumberPropertiesConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "unicorn/prefer-object-from-entries": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/PreferObjectFromEntriesConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "unicorn/prefer-optional-catch-binding": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-prototype-methods": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-query-selector": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-reflect-apply": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-regexp-test": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-response-static-json": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-set-has": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-set-size": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-single-call": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/PreferSingleCallConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "unicorn/prefer-spread": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-string-raw": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-string-replace-all": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-string-slice": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-string-starts-ends-with": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-string-trim-start-end": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-structured-clone": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/PreferStructuredCloneConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "unicorn/prefer-ternary": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/PreferTernaryOption" } ], "maxItems": 2, "minItems": 2 } ] }, "unicorn/prefer-top-level-await": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/prefer-type-error": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/relative-url-style": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/RelativeUrlStyleConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "unicorn/require-array-join-separator": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/require-module-attributes": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/require-module-specifiers": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/require-number-to-fixed-digits-argument": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/require-post-message-target-origin": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/switch-case-braces": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/SwitchCaseBracesConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "unicorn/switch-case-break-position": { "$ref": "#/definitions/RuleNoConfig" }, "unicorn/text-encoding-identifier-case": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/TextEncodingIdentifierCase" } ], "maxItems": 2, "minItems": 2 } ] }, "unicorn/throw-new-error": { "$ref": "#/definitions/RuleNoConfig" }, "use-isnan": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/UseIsnan" } ], "maxItems": 2, "minItems": 2 } ] }, "valid-typeof": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ValidTypeof" } ], "maxItems": 2, "minItems": 2 } ] }, "vars-on-top": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/consistent-each-for": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ConsistentEachForJson" } ], "maxItems": 2, "minItems": 2 } ] }, "vitest/consistent-test-filename": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ConsistentTestFilenameConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "vitest/consistent-test-it": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ConsistentTestItConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "vitest/consistent-vitest-vi": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ConsistentVitestConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "vitest/expect-expect": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ExpectExpectConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "vitest/hoisted-apis-on-top": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/max-expects": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/MaxExpectsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "vitest/max-nested-describe": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/MaxNestedDescribeConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "vitest/no-alias-methods": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/no-commented-out-tests": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/no-conditional-expect": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/no-conditional-in-test": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/no-conditional-tests": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/no-disabled-tests": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/no-duplicate-hooks": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/no-focused-tests": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/no-hooks": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoHooksConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "vitest/no-identical-title": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/no-import-node-test": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/no-importing-vitest-globals": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/no-interpolation-in-snapshots": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/no-large-snapshots": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoLargeSnapshotsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "vitest/no-mocks-import": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/no-restricted-matchers": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoRestrictedMatchersConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "vitest/no-restricted-vi-methods": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoRestrictedTestMethodsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "vitest/no-standalone-expect": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoStandaloneExpectConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "vitest/no-test-prefixes": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/no-test-return-statement": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/no-unneeded-async-expect-function": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/padding-around-after-all-blocks": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/prefer-called-exactly-once-with": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/prefer-called-once": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/prefer-called-times": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/prefer-called-with": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/prefer-comparison-matcher": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/prefer-describe-function-title": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/prefer-each": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/prefer-equality-matcher": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/prefer-expect-assertions": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/PreferExpectAssertionsConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "vitest/prefer-expect-resolves": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/prefer-expect-type-of": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/prefer-hooks-in-order": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/prefer-hooks-on-top": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/prefer-import-in-mock": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/PreferImportInMockConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "vitest/prefer-importing-vitest-globals": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/prefer-lowercase-title": { "$ref": "#/definitions/DummyRule" }, "vitest/prefer-mock-promise-shorthand": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/prefer-mock-return-shorthand": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/prefer-snapshot-hint": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/SnapshotHintMode" } ], "maxItems": 2, "minItems": 2 } ] }, "vitest/prefer-spy-on": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/prefer-strict-boolean-matchers": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/prefer-strict-equal": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/prefer-to-be": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/prefer-to-be-falsy": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/prefer-to-be-object": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/prefer-to-be-truthy": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/prefer-to-contain": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/prefer-to-have-been-called-times": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/prefer-to-have-length": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/prefer-todo": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/require-awaited-expect-poll": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/require-hook": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/RequireHookConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "vitest/require-local-test-context-for-concurrent-snapshots": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/require-mock-type-parameters": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/RequireMockTypeParametersConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "vitest/require-test-timeout": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/require-to-throw-message": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/require-top-level-describe": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/RequireTopLevelDescribeConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "vitest/valid-describe-callback": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/valid-expect": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ValidExpectConfig" } ], "maxItems": 2, "minItems": 2 } ] }, "vitest/valid-expect-in-promise": { "$ref": "#/definitions/RuleNoConfig" }, "vitest/valid-title": { "$ref": "#/definitions/DummyRule" }, "vitest/warn-todo": { "$ref": "#/definitions/RuleNoConfig" }, "vue/component-definition-name-casing": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/CaseType" } ], "maxItems": 2, "minItems": 2 } ] }, "vue/define-emits-declaration": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/DeclarationStyle" } ], "maxItems": 2, "minItems": 2 } ] }, "vue/define-props-declaration": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/DeclarationStyle2" } ], "maxItems": 2, "minItems": 2 } ] }, "vue/define-props-destructuring": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/DefinePropsDestructuring" } ], "maxItems": 2, "minItems": 2 } ] }, "vue/max-props": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/MaxProps" } ], "maxItems": 2, "minItems": 2 } ] }, "vue/next-tick-style": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NextTickOption" } ], "maxItems": 2, "minItems": 2 } ] }, "vue/no-arrow-functions-in-watch": { "$ref": "#/definitions/RuleNoConfig" }, "vue/no-async-in-computed-properties": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoAsyncInComputedProperties" } ], "maxItems": 2, "minItems": 2 } ] }, "vue/no-computed-properties-in-data": { "$ref": "#/definitions/RuleNoConfig" }, "vue/no-deprecated-data-object-declaration": { "$ref": "#/definitions/RuleNoConfig" }, "vue/no-deprecated-delete-set": { "$ref": "#/definitions/RuleNoConfig" }, "vue/no-deprecated-destroyed-lifecycle": { "$ref": "#/definitions/RuleNoConfig" }, "vue/no-deprecated-events-api": { "$ref": "#/definitions/RuleNoConfig" }, "vue/no-deprecated-model-definition": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoDeprecatedModelDefinition" } ], "maxItems": 2, "minItems": 2 } ] }, "vue/no-deprecated-props-default-this": { "$ref": "#/definitions/RuleNoConfig" }, "vue/no-deprecated-vue-config-keycodes": { "$ref": "#/definitions/RuleNoConfig" }, "vue/no-dupe-keys": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoDupeKeys" } ], "maxItems": 2, "minItems": 2 } ] }, "vue/no-export-in-script-setup": { "$ref": "#/definitions/RuleNoConfig" }, "vue/no-expose-after-await": { "$ref": "#/definitions/RuleNoConfig" }, "vue/no-import-compiler-macros": { "$ref": "#/definitions/RuleNoConfig" }, "vue/no-lifecycle-after-await": { "$ref": "#/definitions/RuleNoConfig" }, "vue/no-multiple-slot-args": { "$ref": "#/definitions/RuleNoConfig" }, "vue/no-required-prop-with-default": { "$ref": "#/definitions/RuleNoConfig" }, "vue/no-reserved-component-names": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoReservedComponentNames" } ], "maxItems": 2, "minItems": 2 } ] }, "vue/no-reserved-keys": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoReservedKeys" } ], "maxItems": 2, "minItems": 2 } ] }, "vue/no-reserved-props": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/NoReservedProps" } ], "maxItems": 2, "minItems": 2 } ] }, "vue/no-shared-component-data": { "$ref": "#/definitions/RuleNoConfig" }, "vue/no-side-effects-in-computed-properties": { "$ref": "#/definitions/RuleNoConfig" }, "vue/no-this-in-before-route-enter": { "$ref": "#/definitions/RuleNoConfig" }, "vue/no-watch-after-await": { "$ref": "#/definitions/RuleNoConfig" }, "vue/prefer-import-from-vue": { "$ref": "#/definitions/RuleNoConfig" }, "vue/prop-name-casing": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/CaseType2" }, { "$ref": "#/definitions/Options" } ], "maxItems": 3, "minItems": 2 } ] }, "vue/require-default-export": { "$ref": "#/definitions/RuleNoConfig" }, "vue/require-default-prop": { "$ref": "#/definitions/RuleNoConfig" }, "vue/require-direct-export": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/RequireDirectExport" } ], "maxItems": 2, "minItems": 2 } ] }, "vue/require-prop-type-constructor": { "$ref": "#/definitions/RuleNoConfig" }, "vue/require-prop-types": { "$ref": "#/definitions/RuleNoConfig" }, "vue/require-render-return": { "$ref": "#/definitions/RuleNoConfig" }, "vue/require-slots-as-functions": { "$ref": "#/definitions/RuleNoConfig" }, "vue/require-typed-ref": { "$ref": "#/definitions/RuleNoConfig" }, "vue/return-in-computed-property": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/ReturnInComputedProperty" } ], "maxItems": 2, "minItems": 2 } ] }, "vue/return-in-emits-validator": { "$ref": "#/definitions/RuleNoConfig" }, "vue/valid-define-emits": { "$ref": "#/definitions/RuleNoConfig" }, "vue/valid-define-options": { "$ref": "#/definitions/RuleNoConfig" }, "vue/valid-define-props": { "$ref": "#/definitions/RuleNoConfig" }, "vue/valid-next-tick": { "$ref": "#/definitions/RuleNoConfig" }, "yoda": { "anyOf": [ { "$ref": "#/definitions/RuleNoConfig" }, { "type": "array", "items": [ { "$ref": "#/definitions/AllowWarnDeny" }, { "$ref": "#/definitions/AllowYoda" }, { "$ref": "#/definitions/YodaOptions" } ], "maxItems": 3, "minItems": 2 } ] } }, "additionalProperties": { "$ref": "#/definitions/DummyRule" }, "markdownDescription": "See [Oxlint Rules](https://oxc.rs/docs/guide/usage/linter/rules.html)" }, "ElementOverrideOptions": { "description": "One entry in `elementOverrides`: the base options plus override-only fields.", "type": "object", "properties": { "allowElement": { "description": "(default: false) - When true the rule will allow the specified element to have string literals as children, wrapped or unwrapped without warning.", "default": false, "type": "boolean", "markdownDescription": "(default: false) - When true the rule will allow the specified element to have string literals as children, wrapped or unwrapped without warning." }, "allowedStrings": { "description": "An array of unique string values that would otherwise warn, but will be ignored.", "default": [], "type": "array", "items": { "type": "string" }, "markdownDescription": "An array of unique string values that would otherwise warn, but will be ignored." }, "applyToNestedElements": { "description": "(default: true) - When false the rule will not apply the current options set to nested elements. This is useful when you want to apply the rule to a specific element, but not to its children.", "default": true, "type": "boolean", "markdownDescription": "(default: true) - When false the rule will not apply the current options set to nested elements. This is useful when you want to apply the rule to a specific element, but not to its children." }, "ignoreProps": { "description": "(default: false) - When true the rule ignores literals used in props, wrapped or unwrapped.", "default": false, "type": "boolean", "markdownDescription": "(default: false) - When true the rule ignores literals used in props, wrapped or unwrapped." }, "noAttributeStrings": { "description": "(default: false) - Enforces no string literals used in attributes when set to true.", "default": false, "type": "boolean", "markdownDescription": "(default: false) - Enforces no string literals used in attributes when set to true." }, "noStrings": { "description": "(default: false) - Enforces no string literals used as children, wrapped or unwrapped.", "default": false, "type": "boolean", "markdownDescription": "(default: false) - Enforces no string literals used as children, wrapped or unwrapped." }, "restrictedAttributes": { "description": "An array of unique attribute names where string literals should be restricted. Only the specified attributes will be checked for string literals when this option is used. Note: When noAttributeStrings is true, this option is ignored at the root level.", "default": [], "type": "array", "items": { "type": "string" }, "markdownDescription": "An array of unique attribute names where string literals should be restricted. Only the specified attributes will be checked for string literals when this option is used. Note: When noAttributeStrings is true, this option is ignored at the root level." } }, "additionalProperties": false, "markdownDescription": "One entry in `elementOverrides`: the base options plus override-only fields." }, "EmptyTagsConfig": { "type": "object", "properties": { "tags": { "description": "Additional tags to check for their descriptions.", "default": [], "type": "array", "items": { "type": "string" }, "markdownDescription": "Additional tags to check for their descriptions." } }, "additionalProperties": false }, "EnforceBooleanAttribute": { "oneOf": [ { "description": "All boolean attributes must have explicit values.", "type": "string", "enum": [ "always" ], "markdownDescription": "All boolean attributes must have explicit values." }, { "description": "All boolean attributes must omit values that are set to `true`.", "type": "string", "enum": [ "never" ], "markdownDescription": "All boolean attributes must omit values that are set to `true`." } ] }, "EnforceDynamicLinksEnum": { "oneOf": [ { "description": "Always enforce dynamic links.", "type": "string", "enum": [ "always" ], "markdownDescription": "Always enforce dynamic links." }, { "description": "Always enforce static links.", "type": "string", "enum": [ "never" ], "markdownDescription": "Always enforce static links." } ] }, "Eqeqeq": { "type": "array", "items": [ { "$ref": "#/definitions/CompareType" }, { "$ref": "#/definitions/EqeqeqOptions" } ], "maxItems": 2, "minItems": 2 }, "EqeqeqOptions": { "type": "object", "properties": { "null": { "description": "Configuration for whether to allow/disallow comparisons against `null`,\ne.g. `foo == null` or `foo != null`", "allOf": [ { "$ref": "#/definitions/NullType" } ], "markdownDescription": "Configuration for whether to allow/disallow comparisons against `null`,\ne.g. `foo == null` or `foo != null`" } }, "additionalProperties": false }, "ExhaustiveDepsConfig": { "type": "object", "properties": { "additionalHooks": { "description": "Optionally provide a regex of additional hooks to check.", "type": "string", "markdownDescription": "Optionally provide a regex of additional hooks to check." } }, "additionalProperties": false }, "ExpectExpectConfig": { "type": "object", "properties": { "additionalTestBlockFunctions": { "description": "An array of function names that should also be treated as test blocks.", "default": [], "type": "array", "items": { "type": "string" }, "markdownDescription": "An array of function names that should also be treated as test blocks." }, "assertFunctionNames": { "description": "A list of function names that should be treated as assertion functions.\n\nNOTE: The default value is `[\"expect\"]` for Jest and\n`[\"expect\", \"expectTypeOf\", \"assert\", \"assertType\"]` for Vitest.", "default": [ "expect" ], "type": "array", "items": { "type": "string" }, "markdownDescription": "A list of function names that should be treated as assertion functions.\n\nNOTE: The default value is `[\"expect\"]` for Jest and\n`[\"expect\", \"expectTypeOf\", \"assert\", \"assertType\"]` for Vitest." } }, "additionalProperties": false }, "ExplicitFunctionReturnTypeConfig": { "type": "object", "properties": { "allowConciseArrowFunctionExpressionsStartingWithVoid": { "description": "Whether to allow concise arrow functions that start with the `void` keyword.", "default": false, "type": "boolean", "markdownDescription": "Whether to allow concise arrow functions that start with the `void` keyword." }, "allowDirectConstAssertionInArrowFunctions": { "description": "Whether to allow arrow functions that use `as const` assertion on their return value.", "default": true, "type": "boolean", "markdownDescription": "Whether to allow arrow functions that use `as const` assertion on their return value." }, "allowExpressions": { "description": "Whether to allow expressions as function return types. When `true`, allows functions that immediately return an expression without a return type annotation.", "default": false, "type": "boolean", "markdownDescription": "Whether to allow expressions as function return types. When `true`, allows functions that immediately return an expression without a return type annotation." }, "allowFunctionsWithoutTypeParameters": { "description": "Whether to allow functions that do not have generic type parameters.", "default": false, "type": "boolean", "markdownDescription": "Whether to allow functions that do not have generic type parameters." }, "allowHigherOrderFunctions": { "description": "Whether to allow higher-order functions (functions that return another function) without return type annotations.", "default": true, "type": "boolean", "markdownDescription": "Whether to allow higher-order functions (functions that return another function) without return type annotations." }, "allowIIFEs": { "description": "Whether to allow immediately invoked function expressions (IIFEs) without return type annotations.", "default": false, "type": "boolean", "markdownDescription": "Whether to allow immediately invoked function expressions (IIFEs) without return type annotations." }, "allowTypedFunctionExpressions": { "description": "Whether to allow typed function expressions. When `true`, allows function expressions that are assigned to a typed variable or parameter.", "default": true, "type": "boolean", "markdownDescription": "Whether to allow typed function expressions. When `true`, allows function expressions that are assigned to a typed variable or parameter." }, "allowedNames": { "description": "Array of function names that are exempt from requiring return type annotations.", "default": [], "type": "array", "items": { "type": "string" }, "uniqueItems": true, "markdownDescription": "Array of function names that are exempt from requiring return type annotations." } }, "additionalProperties": false }, "ExplicitLengthCheck": { "type": "object", "properties": { "non-zero": { "description": "Configuration option to specify how non-zero length checks should be enforced.", "default": "greater-than", "allOf": [ { "$ref": "#/definitions/NonZero" } ], "markdownDescription": "Configuration option to specify how non-zero length checks should be enforced." } }, "additionalProperties": false }, "ExplicitMemberAccessibilityConfig": { "type": "object", "properties": { "accessibility": { "description": "Which accessibility modifier is required to exist or not exist.", "allOf": [ { "$ref": "#/definitions/AccessibilityLevel" } ], "markdownDescription": "Which accessibility modifier is required to exist or not exist." }, "ignoredMethodNames": { "description": "Specific method names that may be ignored.", "default": [], "type": "array", "items": { "type": "string" }, "markdownDescription": "Specific method names that may be ignored." }, "overrides": { "description": "Changes to required accessibility modifiers for specific kinds of class members.", "allOf": [ { "$ref": "#/definitions/AccessibilityOverrides" } ], "markdownDescription": "Changes to required accessibility modifiers for specific kinds of class members." } }, "additionalProperties": false }, "ExplicitModuleBoundaryTypesConfig": { "type": "object", "properties": { "allowArgumentsExplicitlyTypedAsAny": { "description": "Whether to ignore arguments that are explicitly typed as `any`.", "default": false, "type": "boolean", "markdownDescription": "Whether to ignore arguments that are explicitly typed as `any`." }, "allowDirectConstAssertionInArrowFunctions": { "description": "Whether to ignore return type annotations on body-less arrow functions\nthat return an `as const` type assertion. You must still type the\nparameters of the function.", "default": true, "type": "boolean", "markdownDescription": "Whether to ignore return type annotations on body-less arrow functions\nthat return an `as const` type assertion. You must still type the\nparameters of the function." }, "allowHigherOrderFunctions": { "description": "Whether to ignore return type annotations on functions immediately\nreturning another function expression. You must still type the\nparameters of the function.", "default": true, "type": "boolean", "markdownDescription": "Whether to ignore return type annotations on functions immediately\nreturning another function expression. You must still type the\nparameters of the function." }, "allowOverloadFunctions": { "description": "Whether to ignore return type annotations on functions with overload\nsignatures.", "default": false, "type": "boolean", "markdownDescription": "Whether to ignore return type annotations on functions with overload\nsignatures." }, "allowTypedFunctionExpressions": { "description": "Whether to ignore type annotations on the variable of a function\nexpression.", "default": true, "type": "boolean", "markdownDescription": "Whether to ignore type annotations on the variable of a function\nexpression." }, "allowedNames": { "description": "An array of function/method names that will not have their arguments or\nreturn values checked.", "default": [], "type": "array", "items": { "type": "string" }, "markdownDescription": "An array of function/method names that will not have their arguments or\nreturn values checked." } }, "additionalProperties": false }, "ExplicitTimerDelayMode": { "oneOf": [ { "description": "Require explicit `delay` argument for clarity.", "type": "string", "enum": [ "always" ], "markdownDescription": "Require explicit `delay` argument for clarity." }, { "description": "Disallow explicit `0` delay, prefer implicit default.", "type": "string", "enum": [ "never" ], "markdownDescription": "Disallow explicit `0` delay, prefer implicit default." } ] }, "ExtensionRule": { "description": "Extension rule configuration; Copy to avoid extra indirection.", "type": "string", "enum": [ "always", "never", "ignorePackages" ], "markdownDescription": "Extension rule configuration; Copy to avoid extra indirection." }, "ExternalPluginEntry": { "anyOf": [ { "description": "Path or package name of the plugin", "type": "string", "markdownDescription": "Path or package name of the plugin" }, { "description": "Plugin with custom name/alias", "type": "object", "required": [ "name", "specifier" ], "properties": { "name": { "description": "Custom name/alias for the plugin.\n\nNote: The following plugin names are reserved because they are implemented natively in Rust within oxlint and cannot be used for JS plugins:\n- react (includes react-hooks)\n- unicorn\n- typescript (includes @typescript-eslint)\n- oxc\n- import (includes import-x)\n- jsdoc\n- jest\n- vitest\n- jsx-a11y (includes jsx-a11y-x)\n- nextjs\n- react-perf\n- promise\n- node\n- vue\n- eslint\n\nIf you need to use the JavaScript version of any of these plugins, provide a custom alias to avoid conflicts.", "type": "string", "markdownDescription": "Custom name/alias for the plugin.\n\nNote: The following plugin names are reserved because they are implemented natively in Rust within oxlint and cannot be used for JS plugins:\n- react (includes react-hooks)\n- unicorn\n- typescript (includes @typescript-eslint)\n- oxc\n- import (includes import-x)\n- jsdoc\n- jest\n- vitest\n- jsx-a11y (includes jsx-a11y-x)\n- nextjs\n- react-perf\n- promise\n- node\n- vue\n- eslint\n\nIf you need to use the JavaScript version of any of these plugins, provide a custom alias to avoid conflicts." }, "specifier": { "description": "Path or package name of the plugin", "type": "string", "markdownDescription": "Path or package name of the plugin" } }, "additionalProperties": false, "markdownDescription": "Plugin with custom name/alias" } ] }, "FileFrom": { "type": "string", "enum": [ "file" ] }, "FileSpecifier": { "description": "Describes specific types or values declared in local files.", "type": "object", "required": [ "from", "name" ], "properties": { "from": { "description": "Must be \"file\"", "allOf": [ { "$ref": "#/definitions/FileFrom" } ], "markdownDescription": "Must be \"file\"" }, "name": { "description": "The name(s) of the type or value to match", "allOf": [ { "$ref": "#/definitions/NameSpecifier" } ], "markdownDescription": "The name(s) of the type or value to match" }, "path": { "description": "Optional file path to specify where the types or values must be declared.\nIf omitted, all files will be matched.", "type": "string", "markdownDescription": "Optional file path to specify where the types or values must be declared.\nIf omitted, all files will be matched." } }, "additionalProperties": false, "markdownDescription": "Describes specific types or values declared in local files." }, "FixStyle": { "oneOf": [ { "description": "Will add the type keyword after the import keyword `import type { A } from '...'`", "type": "string", "enum": [ "separate-type-imports" ], "markdownDescription": "Will add the type keyword after the import keyword `import type { A } from '...'`" }, { "description": "Will inline the type keyword `import { type A } from '...'` (only available in TypeScript 4.5+)", "type": "string", "enum": [ "inline-type-imports" ], "markdownDescription": "Will inline the type keyword `import { type A } from '...'` (only available in TypeScript 4.5+)" } ] }, "ForbidComponentPropsConfig": { "type": "object", "properties": { "forbid": { "description": "An array specifying the names of props that are forbidden.\n\nThe default value is `[\"className\", \"style\"]`.\n\nEach array element can be a string with the property name, or an object with `propName` / `propNamePattern`,\n`allowedFor` / `allowedForPatterns`, `disallowedFor` / `disallowedForPatterns`, optional custom `message`\n\n**Pattern matching**: Uses glob patterns to match prop names and component names.\nFor example, a `propNamePattern` of `\"**-**\"` would match any prop name that contains a hyphen, and an `allowedForPatterns` entry of `\"*Icon\"` would match component names like `SomeIcon` and `AnotherIcon`.\nNote that the pattern matching is done in Rust with the fast-glob library, and so may differ\nfrom the JavaScript glob library used by the original ESLint rule.\n\nExamples:\n\n- `[\"error\", { \"forbid\": [\"className\", \"style\"] }]`\n- `[\"error\", { \"forbid\": [{ \"propName\": \"className\", \"message\": \"Use variant instead\" }] }]`\n- `[\"error\", { \"forbid\": [{ \"propName\": \"className\", \"allowedFor\": [\"ReactModal\"] }] }]`\n- `[\"error\", { \"forbid\": [{ \"propNamePattern\": \"**-**\", \"disallowedFor\": [\"Foo\"] }] }]`", "type": "array", "items": { "$ref": "#/definitions/ForbidItem" }, "markdownDescription": "An array specifying the names of props that are forbidden.\n\nThe default value is `[\"className\", \"style\"]`.\n\nEach array element can be a string with the property name, or an object with `propName` / `propNamePattern`,\n`allowedFor` / `allowedForPatterns`, `disallowedFor` / `disallowedForPatterns`, optional custom `message`\n\n**Pattern matching**: Uses glob patterns to match prop names and component names.\nFor example, a `propNamePattern` of `\"**-**\"` would match any prop name that contains a hyphen, and an `allowedForPatterns` entry of `\"*Icon\"` would match component names like `SomeIcon` and `AnotherIcon`.\nNote that the pattern matching is done in Rust with the fast-glob library, and so may differ\nfrom the JavaScript glob library used by the original ESLint rule.\n\nExamples:\n\n- `[\"error\", { \"forbid\": [\"className\", \"style\"] }]`\n- `[\"error\", { \"forbid\": [{ \"propName\": \"className\", \"message\": \"Use variant instead\" }] }]`\n- `[\"error\", { \"forbid\": [{ \"propName\": \"className\", \"allowedFor\": [\"ReactModal\"] }] }]`\n- `[\"error\", { \"forbid\": [{ \"propNamePattern\": \"**-**\", \"disallowedFor\": [\"Foo\"] }] }]`" } }, "additionalProperties": false }, "ForbidDomPropsConfig": { "description": "Configuration for the `forbid-dom-props` rule.", "type": "object", "properties": { "forbid": { "description": "An array of prop names or objects that are forbidden on DOM elements.\n\nEach array element can be a string with the property name, or an object\nwith `propName`, optional `disallowedFor` and `disallowedValues` arrays,\nand an optional custom `message`.\n\nExamples:\n\n- `[\"error\", { \"forbid\": [\"id\", \"style\"] }]`\n- `[\"error\", { \"forbid\": [{ \"propName\": \"className\", \"message\": \"Use class instead\" }] }]`\n- `[\"error\", { \"forbid\": [{ \"propName\": \"style\", \"disallowedFor\": [\"div\", \"span\"] }] }]`\n- `[\"error\", { \"forbid\": [{ \"propName\": \"type\", \"disallowedValues\": [\"button\"] }] }]`", "type": "array", "items": { "$ref": "#/definitions/ForbidDomPropsItem" }, "markdownDescription": "An array of prop names or objects that are forbidden on DOM elements.\n\nEach array element can be a string with the property name, or an object\nwith `propName`, optional `disallowedFor` and `disallowedValues` arrays,\nand an optional custom `message`.\n\nExamples:\n\n- `[\"error\", { \"forbid\": [\"id\", \"style\"] }]`\n- `[\"error\", { \"forbid\": [{ \"propName\": \"className\", \"message\": \"Use class instead\" }] }]`\n- `[\"error\", { \"forbid\": [{ \"propName\": \"style\", \"disallowedFor\": [\"div\", \"span\"] }] }]`\n- `[\"error\", { \"forbid\": [{ \"propName\": \"type\", \"disallowedValues\": [\"button\"] }] }]`" } }, "additionalProperties": false, "markdownDescription": "Configuration for the `forbid-dom-props` rule." }, "ForbidDomPropsItem": { "description": "A forbidden prop, either as a plain prop name string or with options.", "anyOf": [ { "description": "A prop name to forbid on all DOM elements.", "type": "string", "markdownDescription": "A prop name to forbid on all DOM elements." }, { "description": "A prop with optional `disallowedFor` DOM node list, optional\n`disallowedValues` value list, and custom `message`.", "allOf": [ { "$ref": "#/definitions/PropWithOptions" } ], "markdownDescription": "A prop with optional `disallowedFor` DOM node list, optional\n`disallowedValues` value list, and custom `message`." } ], "markdownDescription": "A forbidden prop, either as a plain prop name string or with options." }, "ForbidElementsConfig": { "type": "object", "properties": { "forbid": { "description": "List of forbidden elements, with optional messages for display with lint violations.\n\nExamples:\n\n- `[\"error, { \"forbid\": [\"button\"] }]`\n- `[\"error, { \"forbid\": [{ \"element\": \"button\", \"message\": \"Use