{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://json.schemastore.org/partial-eslint-plugins.json", "$comment": "For improvements to this schema, please send a PR to https://github.com/fox-projects/jsonschema-extractor.", "type": "object", "definitions": { "ruleNumber": { "description": "ESLint rule\n\n0 - turns the rule off\n1 - turn the rule on as a warning (doesn't affect exit code)\n2 - turn the rule on as an error (exit code is 1 when triggered)\n", "type": "integer", "minimum": 0, "maximum": 2 }, "ruleString": { "description": "ESLint rule\n\n\"off\" - turns the rule off\n\"warn\" - turn the rule on as a warning (doesn't affect exit code)\n\"error\" - turn the rule on as an error (exit code is 1 when triggered)\n", "type": "string", "enum": ["off", "warn", "error"] }, "pluginNames": { "type": "array", "items": { "anyOf": [ { "enum": [ "eslint-plugin-jest", "eslint-plugin-n", "eslint-plugin-jsx-a11y", "eslint-plugin-react", "eslint-plugin-unused-imports", "eslint-plugin-react-hooks", "eslint-plugin-import", "eslint-plugin-security", "eslint-plugin-unicorn", "eslint-plugin-regexp", "eslint-plugin-ft-flow", "eslint-plugin-prettier", "eslint-plugin-cypress", "eslint-plugin-eslint-plugin", "eslint-plugin-mocha", "eslint-plugin-qunit", "eslint-plugin-jasmine", "eslint-plugin-ember", "eslint-plugin-you-dont-need-lodash-underscore", "@tanstack/eslint-plugin-query", "eslint-plugin-react-perf", "eslint-plugin-no-only-tests", "eslint-plugin-jsdoc", "eslint-plugin-yml", "eslint-plugin-vue", "eslint-plugin-jest-dom", "eslint-plugin-simple-import-sort", "eslint-plugin-ava", "eslint-plugin-es-x", "eslint-plugin-testing-library", "eslint-plugin-i18next", "eslint-plugin-markdown", "eslint-plugin-local-rules", "eslint-plugin-html", "eslint-plugin-sonarjs", "eslint-plugin-lodash", "@next/eslint-plugin-next", "eslint-plugin-perfectionist", "eslint-plugin-canonical", "eslint-plugin-jest-formatting", "eslint-plugin-babel", "eslint-plugin-tailwindcss", "eslint-plugin-flowtype", "eslint-plugin-lit-a11y", "@rushstack/eslint-plugin-security", "eslint-plugin-sort-exports", "eslint-plugin-json", "eslint-plugin-react-native", "eslint-plugin-deprecation", "eslint-plugin-vuejs-accessibility", "eslint-plugin-chai-friendly", "eslint-plugin-check-file", "eslint-plugin-promise", "eslint-plugin-sort-class-members", "eslint-plugin-astro", "eslint-plugin-playwright", "eslint-plugin-typescript-sort-keys", "eslint-plugin-react-refresh", "eslint-plugin-jsonc", "eslint-plugin-ban", "eslint-plugin-tsdoc", "eslint-plugin-vitest", "eslint-plugin-nuxt", "eslint-plugin-i", "eslint-plugin-css-modules", "eslint-plugin-no-secrets" ] }, { "type": "string" } ] }, "uniqueItems": true } }, "properties": { "@angular-eslint/component-class-suffix": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "suffixes": { "type": "array", "items": { "type": "string" } } } } ] } ], "description": "Classes decorated with @Component must have suffix \"Component\" (or custom) in their name. See more at https://angular.dev/style-guide#style-02-03\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/component-class-suffix.md" }, "@angular-eslint/component-max-inline-declarations": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "template": { "minimum": 0, "type": "number" }, "styles": { "minimum": 0, "type": "number" }, "animations": { "minimum": 0, "type": "number" } } } ] } ], "description": "Enforces a maximum number of lines in inline template, styles and animations. See more at https://angular.dev/style-guide#style-05-04\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/component-max-inline-declarations.md" }, "@angular-eslint/component-selector": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "type": { "oneOf": [ { "type": "string" }, { "type": "array", "items": { "type": "string", "enum": ["element", "attribute"] } } ] }, "prefix": { "oneOf": [ { "type": "string" }, { "type": "array" } ] }, "style": { "type": "string", "enum": ["camelCase", "kebab-case"] } } } ] } ], "description": "Component selectors should follow given naming rules. See more at https://angular.dev/style-guide#style-02-07, https://angular.dev/style-guide#style-05-02\n and https://angular.dev/style-guide#style-05-03.\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/component-selector.md" }, "@angular-eslint/consistent-component-styles": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": {} } ] } ], "description": "Ensures consistent usage of `styles`/`styleUrls`/`styleUrl` within Component metadata\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/consistent-component-styles.md" }, "@angular-eslint/contextual-decorator": { "description": "Ensures that classes use contextual decorators in its body\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/contextual-decorator.md" }, "@angular-eslint/contextual-lifecycle": { "description": "Ensures that lifecycle methods are used in a correct context\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/contextual-lifecycle.md" }, "@angular-eslint/directive-class-suffix": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "suffixes": { "type": "array", "items": { "type": "string" } } } } ] } ], "description": "Classes decorated with @Directive must have suffix \"Directive\" (or custom) in their name. See more at https://angular.dev/style-guide#style-02-03\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/directive-class-suffix.md" }, "@angular-eslint/directive-selector": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "type": { "oneOf": [ { "type": "string" }, { "type": "array", "items": { "type": "string", "enum": ["element", "attribute"] } } ] }, "prefix": { "oneOf": [ { "type": "string" }, { "type": "array" } ] }, "style": { "type": "string", "enum": ["camelCase", "kebab-case"] } } } ] } ], "description": "Directive selectors should follow given naming rules. See more at https://angular.dev/style-guide#style-02-06 and https://angular.dev/style-guide#style-02-08.\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/directive-selector.md" }, "@angular-eslint/no-async-lifecycle-method": { "description": "Angular Lifecycle methods should not be async. Angular does not wait for async lifecycle but the code incorrectly suggests it does.\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-async-lifecycle-method.md" }, "@angular-eslint/no-attribute-decorator": { "description": "The @Attribute decorator is used to obtain a single value for an attribute. This is a much less common use-case than getting a stream of values (using @Input), so often the @Attribute decorator is mistakenly used when @Input was what was intended. This rule disallows usage of @Attribute decorator altogether in order to prevent these mistakes.\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-attribute-decorator.md" }, "@angular-eslint/no-conflicting-lifecycle": { "description": "Ensures that directives not implement conflicting lifecycle interfaces.\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-conflicting-lifecycle.md" }, "@angular-eslint/no-duplicates-in-metadata-arrays": { "description": "Ensures that metadata arrays do not contain duplicate entries.\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-duplicates-in-metadata-arrays.md" }, "@angular-eslint/no-empty-lifecycle-method": { "description": "Disallows declaring empty lifecycle methods\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-empty-lifecycle-method.md" }, "@angular-eslint/no-forward-ref": { "description": "Disallows usage of `forwardRef` references for DI\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-forward-ref.md" }, "@angular-eslint/no-host-metadata-property": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "allowStatic": { "type": "boolean", "default": false } } } ] } ], "description": "Disallows usage of the `host` metadata property. NOTE: This used to be recommended by the Angular Team, but now they recommend the exact opposite: https://github.com/angular/angular/issues/54284\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-host-metadata-property.md" }, "@angular-eslint/no-input-prefix": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "prefixes": { "type": "array", "items": { "type": "string" } } } } ] } ], "description": "Ensures that input bindings, including aliases, are not named or prefixed by the configured disallowed prefixes\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-input-prefix.md" }, "@angular-eslint/no-input-rename": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "allowedNames": { "type": "array", "items": { "type": "string" }, "description": "A list with allowed input names", "uniqueItems": true } } } ] } ], "description": "Ensures that input bindings are not aliased\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-input-rename.md" }, "@angular-eslint/no-inputs-metadata-property": { "description": "Disallows usage of the `inputs` metadata property. See more at https://angular.dev/style-guide#style-05-12\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-inputs-metadata-property.md" }, "@angular-eslint/no-lifecycle-call": { "description": "Disallows explicit calls to lifecycle methods\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-lifecycle-call.md" }, "@angular-eslint/no-output-native": { "description": "Ensures that output bindings, including aliases, are not named as standard DOM events\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-output-native.md" }, "@angular-eslint/no-output-on-prefix": { "description": "Ensures that output bindings, including aliases, are not named \"on\", nor prefixed with it. See more at https://angular.dev/style-guide#style-05-16\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-output-on-prefix.md" }, "@angular-eslint/no-output-rename": { "description": "Ensures that output bindings are not aliased\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-output-rename.md" }, "@angular-eslint/no-outputs-metadata-property": { "description": "Disallows usage of the `outputs` metadata property. See more at https://angular.dev/style-guide#style-05-12\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-outputs-metadata-property.md" }, "@angular-eslint/no-pipe-impure": { "description": "Disallows the declaration of impure pipes\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-pipe-impure.md" }, "@angular-eslint/no-queries-metadata-property": { "description": "Disallows usage of the `queries` metadata property. See more at https://angular.dev/style-guide#style-05-12.\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/no-queries-metadata-property.md" }, "@angular-eslint/pipe-prefix": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "prefixes": { "type": "array", "items": { "type": "string" }, "uniqueItems": true } } } ] } ], "description": "Enforce consistent prefix for pipes.\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/pipe-prefix.md" }, "@angular-eslint/prefer-on-push-component-change-detection": { "description": "Ensures component's `changeDetection` is set to `ChangeDetectionStrategy.OnPush`\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/prefer-on-push-component-change-detection.md" }, "@angular-eslint/prefer-standalone": { "description": "Ensures component, directive and pipe `standalone` property is set to `true` in the component decorator\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/prefer-standalone.md" }, "@angular-eslint/prefer-standalone-component": { "description": "Ensures component `standalone` property is set to `true` in the component decorator\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/prefer-standalone-component.md" }, "@angular-eslint/prefer-output-readonly": { "description": "Prefer to declare `@Output` as `readonly` since they are not supposed to be reassigned\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/prefer-output-readonly.md" }, "@angular-eslint/relative-url-prefix": { "description": "The ./ and ../ prefix is standard syntax for relative URLs; don't depend on Angular's current ability to do without that prefix. See more at https://angular.dev/style-guide#style-05-04\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/relative-url-prefix.md" }, "@angular-eslint/require-localize-metadata": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "requireDescription": { "type": "boolean", "default": false }, "requireMeaning": { "type": "boolean", "default": false } } } ] } ], "description": "Ensures that $localize tagged messages contain helpful metadata to aid with translations.\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/require-localize-metadata.md" }, "@angular-eslint/sort-lifecycle-methods": { "description": "Ensures that lifecycle methods are declared in order of execution\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/sort-lifecycle-methods.md" }, "@angular-eslint/sort-ngmodule-metadata-arrays": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "locale": { "type": "string", "description": "A string with a BCP 47 language tag.", "default": "en-US" } } } ] } ], "description": "Ensures ASC alphabetical order for `NgModule` metadata arrays for easy visual scanning\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/sort-ngmodule-metadata-arrays.md" }, "@angular-eslint/use-component-selector": { "description": "Component selector must be declared\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/use-component-selector.md" }, "@angular-eslint/use-component-view-encapsulation": { "description": "Disallows using `ViewEncapsulation.None`\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/use-component-view-encapsulation.md" }, "@angular-eslint/use-injectable-provided-in": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "ignoreClassNamePattern": { "type": "string" } } } ] } ], "description": "Using the `providedIn` property makes `Injectables` tree-shakable\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/use-injectable-provided-in.md" }, "@angular-eslint/use-lifecycle-interface": { "description": "Ensures that classes implement lifecycle interfaces corresponding to the declared lifecycle methods. See more at https://angular.dev/style-guide#style-09-01\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/use-lifecycle-interface.md" }, "@angular-eslint/use-pipe-transform-interface": { "description": "Ensures that `Pipes` implement `PipeTransform` interface\nhttps://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/docs/rules/use-pipe-transform-interface.md" }, "eslint-plugin-import/no-unresolved": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "commonjs": { "type": "boolean" }, "amd": { "type": "boolean" }, "esmodule": { "type": "boolean" }, "ignore": { "type": "array", "minItems": 1, "items": { "type": "string" }, "uniqueItems": true }, "caseSensitive": { "type": "boolean", "default": true }, "caseSensitiveStrict": { "type": "boolean", "default": false } } } ] } ], "description": "Ensure imports point to a file/module that can be resolved.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-unresolved.md" }, "eslint-plugin-import/named": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "commonjs": { "type": "boolean" } } } ] } ], "description": "Ensure named imports correspond to a named export in the remote file.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/named.md" }, "eslint-plugin-import/default": { "description": "Ensure a default export is present, given a default import.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/default.md" }, "eslint-plugin-import/namespace": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "allowComputed": { "description": "If `false`, will report computed (and thus, un-lintable) references to namespace members.", "type": "boolean", "default": false } } } ] } ], "description": "Ensure imported namespaces contain dereferenced properties as they are dereferenced.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/namespace.md" }, "eslint-plugin-import/no-namespace": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "ignore": { "type": "array", "items": { "type": "string" }, "uniqueItems": true } } } ] } ], "description": "Forbid namespace (a.k.a. \"wildcard\" `*`) imports.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-namespace.md" }, "eslint-plugin-import/export": { "description": "Forbid any invalid exports, i.e. re-export of the same name.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/export.md" }, "eslint-plugin-import/no-mutable-exports": { "description": "Forbid the use of mutable exports with `var` or `let`.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-mutable-exports.md" }, "eslint-plugin-import/extensions": { "description": "Ensure consistent use of file extension within the import path.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/extensions.md" }, "eslint-plugin-import/no-restricted-paths": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "zones": { "type": "array", "minItems": 1, "items": { "type": "object", "properties": { "target": { "anyOf": [ { "type": "string" }, { "type": "array", "items": { "type": "string" }, "uniqueItems": true, "minItems": 1 } ] }, "from": { "anyOf": [ { "type": "string" }, { "type": "array", "items": { "type": "string" }, "uniqueItems": true, "minItems": 1 } ] }, "except": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "message": { "type": "string" } }, "additionalProperties": false } }, "basePath": { "type": "string" } } } ] } ], "description": "Enforce which files can be imported in a given folder.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-restricted-paths.md" }, "eslint-plugin-import/no-internal-modules": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": {} } ] } ], "description": "Forbid importing the submodules of other modules.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-internal-modules.md" }, "eslint-plugin-import/group-exports": { "description": "Prefer named exports to be grouped together in a single export declaration\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/group-exports.md" }, "eslint-plugin-import/no-relative-packages": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "commonjs": { "type": "boolean" }, "amd": { "type": "boolean" }, "esmodule": { "type": "boolean" }, "ignore": { "type": "array", "minItems": 1, "items": { "type": "string" }, "uniqueItems": true } } } ] } ], "description": "Forbid importing packages through relative paths.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-relative-packages.md" }, "eslint-plugin-import/no-relative-parent-imports": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "commonjs": { "type": "boolean" }, "amd": { "type": "boolean" }, "esmodule": { "type": "boolean" }, "ignore": { "type": "array", "minItems": 1, "items": { "type": "string" }, "uniqueItems": true } } } ] } ], "description": "Forbid importing modules from parent directories.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-relative-parent-imports.md" }, "eslint-plugin-import/consistent-type-specifier-style": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": {} } ] } ], "description": "Enforce or ban the use of inline type-only markers for named imports.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/consistent-type-specifier-style.md" }, "eslint-plugin-import/no-self-import": { "description": "Forbid a module from importing itself.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-self-import.md" }, "eslint-plugin-import/no-cycle": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "commonjs": { "type": "boolean" }, "amd": { "type": "boolean" }, "esmodule": { "type": "boolean" }, "ignore": { "type": "array", "minItems": 1, "items": { "type": "string" }, "uniqueItems": true }, "maxDepth": { "anyOf": [ { "description": "maximum dependency depth to traverse", "type": "integer", "minimum": 1 }, { "enum": ["∞"], "type": "string" } ] }, "ignoreExternal": { "description": "ignore external modules", "type": "boolean", "default": false }, "allowUnsafeDynamicCyclicDependency": { "description": "Allow cyclic dependency if there is at least one dynamic import in the chain", "type": "boolean", "default": false } } } ] } ], "description": "Forbid a module from importing a module with a dependency path back to itself.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-cycle.md" }, "eslint-plugin-import/no-named-default": { "description": "Forbid named default exports.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-named-default.md" }, "eslint-plugin-import/no-named-as-default": { "description": "Forbid use of exported name as identifier of default export.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-named-as-default.md" }, "eslint-plugin-import/no-named-as-default-member": { "description": "Forbid use of exported name as property of default export.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-named-as-default-member.md" }, "eslint-plugin-import/no-anonymous-default-export": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "allowArray": { "description": "If `false`, will report default export of an array", "type": "boolean" }, "allowArrowFunction": { "description": "If `false`, will report default export of an arrow function", "type": "boolean" }, "allowCallExpression": { "description": "If `false`, will report default export of a function call", "type": "boolean" }, "allowAnonymousClass": { "description": "If `false`, will report default export of an anonymous class", "type": "boolean" }, "allowAnonymousFunction": { "description": "If `false`, will report default export of an anonymous function", "type": "boolean" }, "allowLiteral": { "description": "If `false`, will report default export of a literal", "type": "boolean" }, "allowObject": { "description": "If `false`, will report default export of an object expression", "type": "boolean" }, "allowNew": { "description": "If `false`, will report default export of a class instantiation", "type": "boolean" } } } ] } ], "description": "Forbid anonymous values as default exports.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-anonymous-default-export.md" }, "eslint-plugin-import/no-unused-modules": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "src": { "description": "files/paths to be analyzed (only for unused exports)", "type": "array", "uniqueItems": true, "items": { "type": "string", "minLength": 1 } }, "ignoreExports": { "description": "files/paths for which unused exports will not be reported (e.g module entry points)", "type": "array", "uniqueItems": true, "items": { "type": "string", "minLength": 1 } }, "missingExports": { "description": "report modules without any exports", "type": "boolean" }, "unusedExports": { "description": "report exports without any usage", "type": "boolean" } } } ] } ], "description": "Forbid modules without exports, or exports without matching import in another module.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-unused-modules.md" }, "eslint-plugin-import/no-commonjs": { "description": "Forbid CommonJS `require` calls and `module.exports` or `exports.*`.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-commonjs.md" }, "eslint-plugin-import/no-amd": { "description": "Forbid AMD `require` and `define` calls.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-amd.md" }, "eslint-plugin-import/no-duplicates": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "considerQueryString": { "type": "boolean" }, "prefer-inline": { "type": "boolean" } } } ] } ], "description": "Forbid repeated import of the same module in multiple places.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-duplicates.md" }, "eslint-plugin-import/first": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": {} } ] } ], "description": "Ensure all imports appear before other statements.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/first.md" }, "eslint-plugin-import/max-dependencies": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "max": { "type": "number" }, "ignoreTypeImports": { "type": "boolean" } } } ] } ], "description": "Enforce the maximum number of dependencies a module can have.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/max-dependencies.md" }, "eslint-plugin-import/no-extraneous-dependencies": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "devDependencies": { "oneOf": [ { "type": "boolean" }, { "type": "array", "items": {} } ] }, "optionalDependencies": { "oneOf": [ { "type": "boolean" }, { "type": "array", "items": {} } ] }, "peerDependencies": { "oneOf": [ { "type": "boolean" }, { "type": "array", "items": {} } ] }, "bundledDependencies": { "oneOf": [ { "type": "boolean" }, { "type": "array", "items": {} } ] }, "packageDir": { "oneOf": [ { "type": "string" }, { "type": "array", "items": {} } ] }, "includeInternal": { "oneOf": [ { "type": "boolean" } ] }, "includeTypes": { "oneOf": [ { "type": "boolean" } ] } } } ] } ], "description": "Forbid the use of extraneous packages.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-extraneous-dependencies.md" }, "eslint-plugin-import/no-absolute-path": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "commonjs": { "type": "boolean" }, "amd": { "type": "boolean" }, "esmodule": { "type": "boolean" }, "ignore": { "type": "array", "minItems": 1, "items": { "type": "string" }, "uniqueItems": true } } } ] } ], "description": "Forbid import of modules using absolute paths.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-absolute-path.md" }, "eslint-plugin-import/no-nodejs-modules": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "allow": { "type": "array", "uniqueItems": true, "items": { "type": "string" } } } } ] } ], "description": "Forbid Node.js builtin modules.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-nodejs-modules.md" }, "eslint-plugin-import/no-webpack-loader-syntax": { "description": "Forbid webpack loader syntax in imports.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-webpack-loader-syntax.md" }, "eslint-plugin-import/order": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "groups": { "type": "array" }, "pathGroupsExcludedImportTypes": { "type": "array" }, "distinctGroup": { "type": "boolean", "default": true }, "pathGroups": { "type": "array", "items": { "type": "object", "properties": { "pattern": { "type": "string" }, "patternOptions": { "type": "object" }, "group": { "type": "string", "enum": [ "builtin", "external", "internal", "unknown", "parent", "sibling", "index", "object", "type" ] }, "position": { "type": "string", "enum": ["after", "before"] } }, "additionalProperties": false, "required": ["pattern", "group"] } }, "newlines-between": { "enum": [ "ignore", "always", "always-and-inside-groups", "never" ] }, "alphabetize": { "type": "object", "properties": { "caseInsensitive": { "type": "boolean", "default": false }, "order": { "enum": ["ignore", "asc", "desc"], "default": "ignore" }, "orderImportKind": { "enum": ["ignore", "asc", "desc"], "default": "ignore" } }, "additionalProperties": false }, "warnOnUnassignedImports": { "type": "boolean", "default": false } } } ] } ], "description": "Enforce a convention in module import order.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/order.md" }, "eslint-plugin-import/newline-after-import": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "count": { "type": "integer", "minimum": 1 }, "exactCount": { "type": "boolean" }, "considerComments": { "type": "boolean" } } } ] } ], "description": "Enforce a newline after import statements.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/newline-after-import.md" }, "eslint-plugin-import/prefer-default-export": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "target": { "type": "string", "enum": ["single", "any"], "default": "single" } } } ] } ], "description": "Prefer a default export if module exports a single name or multiple names.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/prefer-default-export.md" }, "eslint-plugin-import/no-default-export": { "description": "Forbid default exports.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-default-export.md" }, "eslint-plugin-import/no-named-export": { "description": "Forbid named exports.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-named-export.md" }, "eslint-plugin-import/no-dynamic-require": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "esmodule": { "type": "boolean" } } } ] } ], "description": "Forbid `require()` calls with expressions.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-dynamic-require.md" }, "eslint-plugin-import/unambiguous": { "description": "Forbid potentially ambiguous parse goal (`script` vs. `module`).\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/unambiguous.md" }, "eslint-plugin-import/no-unassigned-import": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "devDependencies": { "oneOf": [ { "type": "boolean" }, { "type": "array", "items": {} } ] }, "optionalDependencies": { "oneOf": [ { "type": "boolean" }, { "type": "array", "items": {} } ] }, "peerDependencies": { "oneOf": [ { "type": "boolean" }, { "type": "array", "items": {} } ] }, "allow": { "type": "array", "items": { "type": "string" } } } } ] } ], "description": "Forbid unassigned imports\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-unassigned-import.md" }, "eslint-plugin-import/no-useless-path-segments": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "commonjs": { "type": "boolean" }, "noUselessIndex": { "type": "boolean" } } } ] } ], "description": "Forbid unnecessary path segments in import and require statements.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-useless-path-segments.md" }, "eslint-plugin-import/dynamic-import-chunkname": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "importFunctions": { "type": "array", "uniqueItems": true, "items": { "type": "string" } }, "webpackChunknameFormat": { "type": "string" } } } ] } ], "description": "Enforce a leading comment with the webpackChunkName for dynamic imports.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/dynamic-import-chunkname.md" }, "eslint-plugin-import/no-import-module-exports": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "exceptions": { "type": "array" } } } ] } ], "description": "Forbid import statements with CommonJS module.exports.\n" }, "eslint-plugin-import/no-empty-named-blocks": { "description": "Forbid empty named import blocks.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-empty-named-blocks.md" }, "eslint-plugin-import/exports-last": { "description": "Ensure all exports appear after other statements.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/exports-last.md" }, "eslint-plugin-import/no-deprecated": { "description": "Forbid imported names marked with `@deprecated` documentation tag.\nhttps://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-deprecated.md" }, "eslint-plugin-import/imports-first": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": {} } ] } ], "description": "Replaced by `import/first`.\nhttps://github.com/import-js/eslint-plugin-import/blob/7b25c1cb95ee18acc1531002fd343e1e6031f9ed/docs/rules/imports-first.md" }, "eslint-plugin-unicorn/better-regex": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "sortCharacterClasses": { "type": "boolean", "default": true } } } ] } ], "description": "Improve regexes by making them shorter, consistent, and safer.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/better-regex.md" }, "eslint-plugin-unicorn/catch-error-name": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "name": { "type": "string" }, "ignore": { "type": "array", "uniqueItems": true } } } ] } ], "description": "Enforce a specific parameter name in catch clauses.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/catch-error-name.md" }, "eslint-plugin-unicorn/consistent-destructuring": { "description": "Use destructured variables over properties.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/consistent-destructuring.md" }, "eslint-plugin-unicorn/consistent-empty-array-spread": { "description": "Prefer consistent types when spreading a ternary in an array literal.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/consistent-empty-array-spread.md" }, "eslint-plugin-unicorn/consistent-function-scoping": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "checkArrowFunctions": { "type": "boolean", "default": true } } } ] } ], "description": "Move function definitions to the highest possible scope.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/consistent-function-scoping.md" }, "eslint-plugin-unicorn/custom-error-definition": { "description": "Enforce correct `Error` subclassing.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/custom-error-definition.md" }, "eslint-plugin-unicorn/empty-brace-spaces": { "description": "Enforce no spaces between braces.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/empty-brace-spaces.md" }, "eslint-plugin-unicorn/error-message": { "description": "Enforce passing a `message` value when creating a built-in error.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/error-message.md" }, "eslint-plugin-unicorn/escape-case": { "description": "Require escape sequences to use uppercase values.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/escape-case.md" }, "eslint-plugin-unicorn/expiring-todo-comments": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "terms": { "type": "array", "items": { "type": "string" } }, "ignore": { "type": "array", "uniqueItems": true }, "ignoreDatesOnPullRequests": { "type": "boolean", "default": true }, "allowWarningComments": { "type": "boolean", "default": false }, "date": { "type": "string", "format": "date" } } } ] } ], "description": "Add expiration conditions to TODO comments.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/expiring-todo-comments.md" }, "eslint-plugin-unicorn/explicit-length-check": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "non-zero": { "enum": ["greater-than", "not-equal"], "default": "greater-than" } } } ] } ], "description": "Enforce explicitly comparing the `length` or `size` property of a value.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/explicit-length-check.md" }, "eslint-plugin-unicorn/filename-case": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": {} } ] } ], "description": "Enforce a case style for filenames.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/filename-case.md" }, "eslint-plugin-unicorn/import-style": { "description": "Enforce specific import styles per module.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/import-style.md" }, "eslint-plugin-unicorn/new-for-builtins": { "description": "Enforce the use of `new` for all builtins, except `String`, `Number`, `Boolean`, `Symbol` and `BigInt`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/new-for-builtins.md" }, "eslint-plugin-unicorn/no-abusive-eslint-disable": { "description": "Enforce specifying rules to disable in `eslint-disable` comments.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-abusive-eslint-disable.md" }, "eslint-plugin-unicorn/no-anonymous-default-export": { "description": "Disallow anonymous functions and classes as the default export.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-anonymous-default-export.md" }, "eslint-plugin-unicorn/no-array-callback-reference": { "description": "Prevent passing a function reference directly to iterator methods.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-array-callback-reference.md" }, "eslint-plugin-unicorn/no-array-for-each": { "description": "Prefer `for…of` over the `forEach` method.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-array-for-each.md" }, "eslint-plugin-unicorn/no-array-method-this-argument": { "description": "Disallow using the `this` argument in array methods.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-array-method-this-argument.md" }, "eslint-plugin-unicorn/no-array-push-push": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "ignore": { "type": "array", "uniqueItems": true } } } ] } ], "description": "Enforce combining multiple `Array#push()` into one call.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-array-push-push.md" }, "eslint-plugin-unicorn/no-array-reduce": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "allowSimpleOperations": { "type": "boolean", "default": true } } } ] } ], "description": "Disallow `Array#reduce()` and `Array#reduceRight()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-array-reduce.md" }, "eslint-plugin-unicorn/no-await-expression-member": { "description": "Disallow member access from await expression.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-await-expression-member.md" }, "eslint-plugin-unicorn/no-await-in-promise-methods": { "description": "Disallow using `await` in `Promise` method parameters.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-await-in-promise-methods.md" }, "eslint-plugin-unicorn/no-console-spaces": { "description": "Do not use leading/trailing space between `console.log` parameters.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-console-spaces.md" }, "eslint-plugin-unicorn/no-document-cookie": { "description": "Do not use `document.cookie` directly.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-document-cookie.md" }, "eslint-plugin-unicorn/no-empty-file": { "description": "Disallow empty files.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-empty-file.md" }, "eslint-plugin-unicorn/no-for-loop": { "description": "Do not use a `for` loop that can be replaced with a `for-of` loop.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-for-loop.md" }, "eslint-plugin-unicorn/no-hex-escape": { "description": "Enforce the use of Unicode escapes instead of hexadecimal escapes.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-hex-escape.md" }, "eslint-plugin-unicorn/no-instanceof-array": { "description": "Require `Array.isArray()` instead of `instanceof Array`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-instanceof-array.md" }, "eslint-plugin-unicorn/no-invalid-fetch-options": { "description": "Disallow invalid options in `fetch()` and `new Request()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-invalid-fetch-options.md" }, "eslint-plugin-unicorn/no-invalid-remove-event-listener": { "description": "Prevent calling `EventTarget#removeEventListener()` with the result of an expression.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-invalid-remove-event-listener.md" }, "eslint-plugin-unicorn/no-keyword-prefix": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "disallowedPrefixes": { "type": "array", "items": [ { "type": "string" } ], "minItems": 1, "uniqueItems": true, "maxItems": 1 }, "checkProperties": { "type": "boolean" }, "onlyCamelCase": { "type": "boolean" } } } ] } ], "description": "Disallow identifiers starting with `new` or `class`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-keyword-prefix.md" }, "eslint-plugin-unicorn/no-lonely-if": { "description": "Disallow `if` statements as the only statement in `if` blocks without `else`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-lonely-if.md" }, "eslint-plugin-unicorn/no-magic-array-flat-depth": { "description": "Disallow a magic number as the `depth` argument in `Array#flat(…).`\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-magic-array-flat-depth.md" }, "eslint-plugin-unicorn/no-negated-condition": { "description": "Disallow negated conditions.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-negated-condition.md" }, "eslint-plugin-unicorn/no-negation-in-equality-check": { "description": "Disallow negated expression in equality check.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-negation-in-equality-check.md" }, "eslint-plugin-unicorn/no-nested-ternary": { "description": "Disallow nested ternary expressions.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-nested-ternary.md" }, "eslint-plugin-unicorn/no-new-array": { "description": "Disallow `new Array()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-new-array.md" }, "eslint-plugin-unicorn/no-new-buffer": { "description": "Enforce the use of `Buffer.from()` and `Buffer.alloc()` instead of the deprecated `new Buffer()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-new-buffer.md" }, "eslint-plugin-unicorn/no-null": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "checkStrictEquality": { "type": "boolean", "default": false } } } ] } ], "description": "Disallow the use of the `null` literal.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-null.md" }, "eslint-plugin-unicorn/no-object-as-default-parameter": { "description": "Disallow the use of objects as default parameters.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-object-as-default-parameter.md" }, "eslint-plugin-unicorn/no-process-exit": { "description": "Disallow `process.exit()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-process-exit.md" }, "eslint-plugin-unicorn/no-single-promise-in-promise-methods": { "description": "Disallow passing single-element arrays to `Promise` methods.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-single-promise-in-promise-methods.md" }, "eslint-plugin-unicorn/no-static-only-class": { "description": "Disallow classes that only have static members.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-static-only-class.md" }, "eslint-plugin-unicorn/no-thenable": { "description": "Disallow `then` property.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-thenable.md" }, "eslint-plugin-unicorn/no-this-assignment": { "description": "Disallow assigning `this` to a variable.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-this-assignment.md" }, "eslint-plugin-unicorn/no-typeof-undefined": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "checkGlobalVariables": { "type": "boolean", "default": false } } } ] } ], "description": "Disallow comparing `undefined` using `typeof`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-typeof-undefined.md" }, "eslint-plugin-unicorn/no-unnecessary-await": { "description": "Disallow awaiting non-promise values.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-unnecessary-await.md" }, "eslint-plugin-unicorn/no-unnecessary-polyfills": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "targets": { "oneOf": [ { "type": "string" }, { "type": "array" }, { "type": "object" } ] } } } ] } ], "description": "Enforce the use of built-in methods instead of unnecessary polyfills.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-unnecessary-polyfills.md" }, "eslint-plugin-unicorn/no-unreadable-array-destructuring": { "description": "Disallow unreadable array destructuring.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-unreadable-array-destructuring.md" }, "eslint-plugin-unicorn/no-unreadable-iife": { "description": "Disallow unreadable IIFEs.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-unreadable-iife.md" }, "eslint-plugin-unicorn/no-unused-properties": { "description": "Disallow unused object properties.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-unused-properties.md" }, "eslint-plugin-unicorn/no-useless-fallback-in-spread": { "description": "Disallow useless fallback when spreading in object literals.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-useless-fallback-in-spread.md" }, "eslint-plugin-unicorn/no-useless-length-check": { "description": "Disallow useless array length check.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-useless-length-check.md" }, "eslint-plugin-unicorn/no-useless-promise-resolve-reject": { "description": "Disallow returning/yielding `Promise.resolve/reject()` in async functions or promise callbacks\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-useless-promise-resolve-reject.md" }, "eslint-plugin-unicorn/no-useless-spread": { "description": "Disallow unnecessary spread.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-useless-spread.md" }, "eslint-plugin-unicorn/no-useless-switch-case": { "description": "Disallow useless case in switch statements.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-useless-switch-case.md" }, "eslint-plugin-unicorn/no-useless-undefined": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "checkArguments": { "type": "boolean" }, "checkArrowFunctionBody": { "type": "boolean" } } } ] } ], "description": "Disallow useless `undefined`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-useless-undefined.md" }, "eslint-plugin-unicorn/no-zero-fractions": { "description": "Disallow number literals with zero fractions or dangling dots.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/no-zero-fractions.md" }, "eslint-plugin-unicorn/number-literal-case": { "description": "Enforce proper case for numeric literals.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/number-literal-case.md" }, "eslint-plugin-unicorn/numeric-separators-style": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "binary": { "type": "object", "additionalProperties": false, "properties": { "onlyIfContainsSeparator": { "type": "boolean" }, "minimumDigits": { "type": "integer", "minimum": 0, "default": 0 }, "groupLength": { "type": "integer", "minimum": 1, "default": 4 } } }, "octal": { "type": "object", "additionalProperties": false, "properties": { "onlyIfContainsSeparator": { "type": "boolean" }, "minimumDigits": { "type": "integer", "minimum": 0, "default": 0 }, "groupLength": { "type": "integer", "minimum": 1, "default": 4 } } }, "hexadecimal": { "type": "object", "additionalProperties": false, "properties": { "onlyIfContainsSeparator": { "type": "boolean" }, "minimumDigits": { "type": "integer", "minimum": 0, "default": 0 }, "groupLength": { "type": "integer", "minimum": 1, "default": 2 } } }, "number": { "type": "object", "additionalProperties": false, "properties": { "onlyIfContainsSeparator": { "type": "boolean" }, "minimumDigits": { "type": "integer", "minimum": 0, "default": 5 }, "groupLength": { "type": "integer", "minimum": 1, "default": 3 } } }, "onlyIfContainsSeparator": { "type": "boolean", "default": false } } } ] } ], "description": "Enforce the style of numeric separators by correctly grouping digits.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/numeric-separators-style.md" }, "eslint-plugin-unicorn/prefer-add-event-listener": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "excludedPackages": { "type": "array", "items": { "type": "string" }, "uniqueItems": true } } } ] } ], "description": "Prefer `.addEventListener()` and `.removeEventListener()` over `on`-functions.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-add-event-listener.md" }, "eslint-plugin-unicorn/prefer-array-find": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "checkFromLast": { "type": "boolean", "default": true } } } ] } ], "description": "Prefer `.find(…)` and `.findLast(…)` over the first or last element from `.filter(…)`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-array-find.md" }, "eslint-plugin-unicorn/prefer-array-flat-map": { "description": "Prefer `.flatMap(…)` over `.map(…).flat()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-array-flat-map.md" }, "eslint-plugin-unicorn/prefer-array-flat": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "functions": { "type": "array", "uniqueItems": true } } } ] } ], "description": "Prefer `Array#flat()` over legacy techniques to flatten arrays.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-array-flat.md" }, "eslint-plugin-unicorn/prefer-array-index-of": { "description": "Prefer `Array#{indexOf,lastIndexOf}()` over `Array#{findIndex,findLastIndex}()` when looking for the index of an item.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-array-index-of.md" }, "eslint-plugin-unicorn/prefer-array-some": { "description": "Prefer `.some(…)` over `.filter(…).length` check and `.{find,findLast,findIndex,findLastIndex}(…)`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-array-some.md" }, "eslint-plugin-unicorn/prefer-at": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "getLastElementFunctions": { "type": "array", "uniqueItems": true }, "checkAllIndexAccess": { "type": "boolean", "default": false } } } ] } ], "description": "Prefer `.at()` method for index access and `String#charAt()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-at.md" }, "eslint-plugin-unicorn/prefer-blob-reading-methods": { "description": "Prefer `Blob#arrayBuffer()` over `FileReader#readAsArrayBuffer(…)` and `Blob#text()` over `FileReader#readAsText(…)`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-blob-reading-methods.md" }, "eslint-plugin-unicorn/prefer-code-point": { "description": "Prefer `String#codePointAt(…)` over `String#charCodeAt(…)` and `String.fromCodePoint(…)` over `String.fromCharCode(…)`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-code-point.md" }, "eslint-plugin-unicorn/prefer-date-now": { "description": "Prefer `Date.now()` to get the number of milliseconds since the Unix Epoch.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-date-now.md" }, "eslint-plugin-unicorn/prefer-default-parameters": { "description": "Prefer default parameters over reassignment.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-default-parameters.md" }, "eslint-plugin-unicorn/prefer-dom-node-append": { "description": "Prefer `Node#append()` over `Node#appendChild()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-dom-node-append.md" }, "eslint-plugin-unicorn/prefer-dom-node-dataset": { "description": "Prefer using `.dataset` on DOM elements over calling attribute methods.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-dom-node-dataset.md" }, "eslint-plugin-unicorn/prefer-dom-node-remove": { "description": "Prefer `childNode.remove()` over `parentNode.removeChild(childNode)`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-dom-node-remove.md" }, "eslint-plugin-unicorn/prefer-dom-node-text-content": { "description": "Prefer `.textContent` over `.innerText`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-dom-node-text-content.md" }, "eslint-plugin-unicorn/prefer-event-target": { "description": "Prefer `EventTarget` over `EventEmitter`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-event-target.md" }, "eslint-plugin-unicorn/prefer-export-from": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "ignoreUsedVariables": { "type": "boolean", "default": false } } } ] } ], "description": "Prefer `export…from` when re-exporting.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-export-from.md" }, "eslint-plugin-unicorn/prefer-includes": { "description": "Prefer `.includes()` over `.indexOf()`, `.lastIndexOf()`, and `Array#some()` when checking for existence or non-existence.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-includes.md" }, "eslint-plugin-unicorn/prefer-json-parse-buffer": { "description": "Prefer reading a JSON file as a buffer.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-json-parse-buffer.md" }, "eslint-plugin-unicorn/prefer-keyboard-event-key": { "description": "Prefer `KeyboardEvent#key` over `KeyboardEvent#keyCode`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-keyboard-event-key.md" }, "eslint-plugin-unicorn/prefer-logical-operator-over-ternary": { "description": "Prefer using a logical operator over a ternary.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-logical-operator-over-ternary.md" }, "eslint-plugin-unicorn/prefer-math-trunc": { "description": "Enforce the use of `Math.trunc` instead of bitwise operators.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-math-trunc.md" }, "eslint-plugin-unicorn/prefer-modern-dom-apis": { "description": "Prefer `.before()` over `.insertBefore()`, `.replaceWith()` over `.replaceChild()`, prefer one of `.before()`, `.after()`, `.append()` or `.prepend()` over `insertAdjacentText()` and `insertAdjacentElement()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-modern-dom-apis.md" }, "eslint-plugin-unicorn/prefer-modern-math-apis": { "description": "Prefer modern `Math` APIs over legacy patterns.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-modern-math-apis.md" }, "eslint-plugin-unicorn/prefer-module": { "description": "Prefer JavaScript modules (ESM) over CommonJS.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-module.md" }, "eslint-plugin-unicorn/prefer-native-coercion-functions": { "description": "Prefer using `String`, `Number`, `BigInt`, `Boolean`, and `Symbol` directly.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-native-coercion-functions.md" }, "eslint-plugin-unicorn/prefer-negative-index": { "description": "Prefer negative index over `.length - index` when possible.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-negative-index.md" }, "eslint-plugin-unicorn/prefer-node-protocol": { "description": "Prefer using the `node:` protocol when importing Node.js builtin modules.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-node-protocol.md" }, "eslint-plugin-unicorn/prefer-number-properties": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "checkInfinity": { "type": "boolean", "default": false }, "checkNaN": { "type": "boolean", "default": true } } } ] } ], "description": "Prefer `Number` static properties over global ones.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-number-properties.md" }, "eslint-plugin-unicorn/prefer-object-from-entries": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "functions": { "type": "array", "uniqueItems": true } } } ] } ], "description": "Prefer using `Object.fromEntries(…)` to transform a list of key-value pairs into an object.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-object-from-entries.md" }, "eslint-plugin-unicorn/prefer-optional-catch-binding": { "description": "Prefer omitting the `catch` binding parameter.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-optional-catch-binding.md" }, "eslint-plugin-unicorn/prefer-prototype-methods": { "description": "Prefer borrowing methods from the prototype instead of the instance.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-prototype-methods.md" }, "eslint-plugin-unicorn/prefer-query-selector": { "description": "Prefer `.querySelector()` over `.getElementById()`, `.querySelectorAll()` over `.getElementsByClassName()` and `.getElementsByTagName()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-query-selector.md" }, "eslint-plugin-unicorn/prefer-reflect-apply": { "description": "Prefer `Reflect.apply()` over `Function#apply()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-reflect-apply.md" }, "eslint-plugin-unicorn/prefer-regexp-test": { "description": "Prefer `RegExp#test()` over `String#match()` and `RegExp#exec()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-regexp-test.md" }, "eslint-plugin-unicorn/prefer-set-has": { "description": "Prefer `Set#has()` over `Array#includes()` when checking for existence or non-existence.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-set-has.md" }, "eslint-plugin-unicorn/prefer-set-size": { "description": "Prefer using `Set#size` instead of `Array#length`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-set-size.md" }, "eslint-plugin-unicorn/prefer-spread": { "description": "Prefer the spread operator over `Array.from(…)`, `Array#concat(…)`, `Array#{slice,toSpliced}()` and `String#split('')`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-spread.md" }, "eslint-plugin-unicorn/prefer-string-raw": { "description": "Prefer using the `String.raw` tag to avoid escaping `\\`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-string-raw.md" }, "eslint-plugin-unicorn/prefer-string-replace-all": { "description": "Prefer `String#replaceAll()` over regex searches with the global flag.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-string-replace-all.md" }, "eslint-plugin-unicorn/prefer-string-slice": { "description": "Prefer `String#slice()` over `String#substr()` and `String#substring()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-string-slice.md" }, "eslint-plugin-unicorn/prefer-string-starts-ends-with": { "description": "Prefer `String#startsWith()` & `String#endsWith()` over `RegExp#test()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-string-starts-ends-with.md" }, "eslint-plugin-unicorn/prefer-string-trim-start-end": { "description": "Prefer `String#trimStart()` / `String#trimEnd()` over `String#trimLeft()` / `String#trimRight()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-string-trim-start-end.md" }, "eslint-plugin-unicorn/prefer-structured-clone": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "functions": { "type": "array", "uniqueItems": true } } } ] } ], "description": "Prefer using `structuredClone` to create a deep clone.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-structured-clone.md" }, "eslint-plugin-unicorn/prefer-switch": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "minimumCases": { "type": "integer", "minimum": 2, "default": 3 }, "emptyDefaultCase": { "enum": [ "no-default-comment", "do-nothing-comment", "no-default-case" ], "default": "no-default-comment" } } } ] } ], "description": "Prefer `switch` over multiple `else-if`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-switch.md" }, "eslint-plugin-unicorn/prefer-ternary": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": {} } ] } ], "description": "Prefer ternary expressions over simple `if-else` statements.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-ternary.md" }, "eslint-plugin-unicorn/prefer-top-level-await": { "description": "Prefer top-level await over top-level promises and async function calls.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-top-level-await.md" }, "eslint-plugin-unicorn/prefer-type-error": { "description": "Enforce throwing `TypeError` in type checking conditions.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prefer-type-error.md" }, "eslint-plugin-unicorn/prevent-abbreviations": { "description": "Prevent abbreviations.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/prevent-abbreviations.md" }, "eslint-plugin-unicorn/relative-url-style": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": {} } ] } ], "description": "Enforce consistent relative URL style.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/relative-url-style.md" }, "eslint-plugin-unicorn/require-array-join-separator": { "description": "Enforce using the separator argument with `Array#join()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/require-array-join-separator.md" }, "eslint-plugin-unicorn/require-number-to-fixed-digits-argument": { "description": "Enforce using the digits argument with `Number#toFixed()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/require-number-to-fixed-digits-argument.md" }, "eslint-plugin-unicorn/require-post-message-target-origin": { "description": "Enforce using the `targetOrigin` argument with `window.postMessage()`.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/require-post-message-target-origin.md" }, "eslint-plugin-unicorn/string-content": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "patterns": { "type": "object", "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "object", "required": ["suggest"], "properties": { "suggest": { "type": "string" }, "fix": { "type": "boolean" }, "message": { "type": "string" } }, "additionalProperties": false } ] } } } } ] } ], "description": "Enforce better string content.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/string-content.md" }, "eslint-plugin-unicorn/switch-case-braces": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": {} } ] } ], "description": "Enforce consistent brace style for `case` clauses.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/switch-case-braces.md" }, "eslint-plugin-unicorn/template-indent": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": { "indent": { "oneOf": [ { "type": "string", "pattern": "^\\s+$" }, { "type": "integer", "minimum": 1 } ] }, "tags": { "type": "array", "uniqueItems": true, "items": { "type": "string" } }, "functions": { "type": "array", "uniqueItems": true, "items": { "type": "string" } }, "selectors": { "type": "array", "uniqueItems": true, "items": { "type": "string" } }, "comments": { "type": "array", "uniqueItems": true, "items": { "type": "string" } } } } ] } ], "description": "Fix whitespace-insensitive template indentation.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/template-indent.md" }, "eslint-plugin-unicorn/text-encoding-identifier-case": { "description": "Enforce consistent case for text encoding identifiers.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/text-encoding-identifier-case.md" }, "eslint-plugin-unicorn/throw-new-error": { "description": "Require `new` when creating an error.\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/rules/throw-new-error.md" }, "eslint-plugin-unicorn/import-index": { "description": "\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/deprecated-rules.md#import-index" }, "eslint-plugin-unicorn/no-array-instanceof": { "description": "\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/deprecated-rules.md#no-array-instanceof" }, "eslint-plugin-unicorn/no-fn-reference-in-iterator": { "description": "\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/deprecated-rules.md#no-fn-reference-in-iterator" }, "eslint-plugin-unicorn/no-reduce": { "description": "\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/deprecated-rules.md#no-reduce" }, "eslint-plugin-unicorn/no-unsafe-regex": { "description": "\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/deprecated-rules.md#no-unsafe-regex" }, "eslint-plugin-unicorn/prefer-dataset": { "description": "\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/deprecated-rules.md#prefer-dataset" }, "eslint-plugin-unicorn/prefer-event-key": { "description": "\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/deprecated-rules.md#prefer-event-key" }, "eslint-plugin-unicorn/prefer-exponentiation-operator": { "description": "\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/deprecated-rules.md#prefer-exponentiation-operator" }, "eslint-plugin-unicorn/prefer-flat-map": { "description": "\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/deprecated-rules.md#prefer-flat-map" }, "eslint-plugin-unicorn/prefer-node-append": { "description": "\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/deprecated-rules.md#prefer-node-append" }, "eslint-plugin-unicorn/prefer-node-remove": { "description": "\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/deprecated-rules.md#prefer-node-remove" }, "eslint-plugin-unicorn/prefer-object-has-own": { "description": "\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/deprecated-rules.md#prefer-object-has-own" }, "eslint-plugin-unicorn/prefer-replace-all": { "description": "\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/deprecated-rules.md#prefer-replace-all" }, "eslint-plugin-unicorn/prefer-starts-ends-with": { "description": "\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/deprecated-rules.md#prefer-starts-ends-with" }, "eslint-plugin-unicorn/prefer-text-content": { "description": "\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/deprecated-rules.md#prefer-text-content" }, "eslint-plugin-unicorn/prefer-trim-start-end": { "description": "\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/deprecated-rules.md#prefer-trim-start-end" }, "eslint-plugin-unicorn/regex-shorthand": { "description": "\nhttps://github.com/sindresorhus/eslint-plugin-unicorn/blob/v54.0.0/docs/deprecated-rules.md#regex-shorthand" }, "eslint-plugin-vue/array-bracket-newline": { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" }, { "minItems": 2, "maxItems": 2, "type": "array", "items": [ { "oneOf": [ { "$ref": "#/definitions/ruleNumber" }, { "$ref": "#/definitions/ruleString" } ] }, { "type": "object", "additionalProperties": true, "properties": {} } ] } ], "description": "Enforce linebreaks after opening and before closing array brackets in `