├── .github ├── CODEOWNERS └── FUNDING.yml ├── .prettierignore ├── src ├── config │ ├── extends │ │ ├── eslint.d.ts │ │ ├── eslint-plugin-jsdoc.d.ts │ │ ├── eslint-plugin-promise.d.ts │ │ ├── eslint-plugin-vitest.d.ts │ │ ├── eslint-plugin-sonarjs.d.ts │ │ ├── intlify-vue-i18n.d.ts │ │ ├── eslint-plugin-unicorn.d.ts │ │ ├── eslint-plugin-jsx-a11y.d.ts │ │ ├── eslint-plugin-prettier.d.ts │ │ ├── eslint-plugin-react-hooks.d.ts │ │ ├── eslint-plugin-eslint-comment.d.ts │ │ ├── eslint-plugin-react.d.ts │ │ ├── eslint-plugin-n.d.ts │ │ ├── eslint-plugin-import.d.ts │ │ ├── eslint-plugin-node.d.ts │ │ ├── eslint-plugin-mdx.d.ts │ │ ├── typescript-eslint.d.ts │ │ ├── eslint-plugin-vue.d.ts │ │ ├── eslint-plugin-graphql.d.ts │ │ ├── eslint-plugin-testing-library.d.ts │ │ ├── eslint-plugin-jsonc.d.ts │ │ └── eslint-plugin-vue-pug.d.ts │ ├── settings │ │ ├── mdx.d.ts │ │ ├── jsx-a11y.d.ts │ │ ├── node.d.ts │ │ └── index.d.ts │ └── plugin.d.ts ├── rules │ ├── mdx │ │ ├── index.d.ts │ │ └── remark.d.ts │ ├── deprecation │ │ ├── index.d.ts │ │ └── deprecation.d.ts │ ├── spellcheck │ │ └── index.d.ts │ ├── react-hooks │ │ ├── index.d.ts │ │ └── rules-of-hooks.d.ts │ ├── vue-pug │ │ ├── index.d.ts │ │ └── no-pug-control-flow.d.ts │ ├── rule-severity.d.ts │ ├── eslint │ │ ├── no-octal.d.ts │ │ ├── no-with.d.ts │ │ ├── no-ternary.d.ts │ │ ├── no-var.d.ts │ │ ├── no-multi-str.d.ts │ │ ├── no-continue.d.ts │ │ ├── no-debugger.d.ts │ │ ├── no-delete-var.d.ts │ │ ├── no-proto.d.ts │ │ ├── no-script-url.d.ts │ │ ├── no-extra-label.d.ts │ │ ├── no-extra-semi.d.ts │ │ ├── wrap-regex.d.ts │ │ ├── no-sparse-arrays.d.ts │ │ ├── no-unused-labels.d.ts │ │ ├── no-alert.d.ts │ │ ├── no-lone-blocks.d.ts │ │ ├── no-new.d.ts │ │ ├── no-dupe-keys.d.ts │ │ ├── no-extra-bind.d.ts │ │ ├── no-iterator.d.ts │ │ ├── no-await-in-loop.d.ts │ │ ├── no-class-assign.d.ts │ │ ├── no-new-func.d.ts │ │ ├── no-const-assign.d.ts │ │ ├── no-duplicate-case.d.ts │ │ ├── no-label-var.d.ts │ │ ├── no-undef-init.d.ts │ │ ├── no-undefined.d.ts │ │ ├── guard-for-in.d.ts │ │ ├── no-caller.d.ts │ │ ├── no-ex-assign.d.ts │ │ ├── no-func-assign.d.ts │ │ ├── no-useless-catch.d.ts │ │ ├── prefer-spread.d.ts │ │ ├── require-yield.d.ts │ │ ├── symbol-description.d.ts │ │ ├── no-eq-null.d.ts │ │ ├── no-implied-eval.d.ts │ │ ├── no-new-symbol.d.ts │ │ ├── no-setter-return.d.ts │ │ ├── no-compare-neg-zero.d.ts │ │ ├── no-dupe-args.d.ts │ │ ├── no-import-assign.d.ts │ │ ├── no-nested-ternary.d.ts │ │ ├── no-obj-calls.d.ts │ │ ├── no-throw-literal.d.ts │ │ ├── no-useless-return.d.ts │ │ ├── no-negated-condition.d.ts │ │ ├── no-useless-escape.d.ts │ │ ├── no-regex-spaces.d.ts │ │ ├── constructor-super.d.ts │ │ ├── default-param-last.d.ts │ │ ├── no-array-constructor.d.ts │ │ ├── no-dupe-else-if.d.ts │ │ ├── no-empty-static-block.d.ts │ │ ├── no-octal-escape.d.ts │ │ ├── no-lonely-if.d.ts │ │ ├── no-new-object.d.ts │ │ ├── require-await.d.ts │ │ ├── no-control-regex.d.ts │ │ ├── no-dupe-class-members.d.ts │ │ ├── no-useless-call.d.ts │ │ ├── prefer-rest-params.d.ts │ │ ├── no-process-env.d.ts │ │ ├── no-self-compare.d.ts │ │ ├── no-useless-constructor.d.ts │ │ ├── prefer-template.d.ts │ │ ├── vars-on-top.d.ts │ │ ├── no-div-regex.d.ts │ │ ├── no-unsafe-finally.d.ts │ │ ├── no-loss-of-precision.d.ts │ │ ├── default-case-last.d.ts │ │ ├── no-case-declarations.d.ts │ │ ├── no-tabs.d.ts │ │ ├── no-process-exit.d.ts │ │ ├── no-return-await.d.ts │ │ ├── block-scoped-var.d.ts │ │ ├── for-direction.d.ts │ │ ├── no-unexpected-multiline.d.ts │ │ ├── no-void.d.ts │ │ ├── require-unicode-regexp.d.ts │ │ ├── no-eval.d.ts │ │ ├── no-loop-func.d.ts │ │ ├── no-new-require.d.ts │ │ ├── no-new-wrappers.d.ts │ │ └── no-useless-concat.d.ts │ ├── vue │ │ ├── no-v-text.d.ts │ │ ├── valid-v-if.d.ts │ │ ├── valid-v-is.d.ts │ │ ├── html-end-tags.d.ts │ │ ├── no-unused-refs.d.ts │ │ ├── valid-v-for.d.ts │ │ ├── valid-v-pre.d.ts │ │ ├── no-v-html.d.ts │ │ ├── valid-v-bind.d.ts │ │ ├── valid-v-else.d.ts │ │ ├── valid-v-html.d.ts │ │ ├── valid-v-memo.d.ts │ │ ├── valid-v-once.d.ts │ │ ├── valid-v-show.d.ts │ │ ├── valid-v-text.d.ts │ │ ├── valid-v-cloak.d.ts │ │ ├── valid-v-model.d.ts │ │ ├── no-root-v-if.d.ts │ │ ├── valid-v-else-if.d.ts │ │ ├── use-v-on-exact.d.ts │ │ ├── valid-next-tick.d.ts │ │ ├── no-template-key.d.ts │ │ ├── no-sparse-arrays.d.ts │ │ ├── valid-template-root.d.ts │ │ ├── require-prop-types.d.ts │ │ ├── jsx-uses-vars.d.ts │ │ ├── require-expose.d.ts │ │ ├── valid-attribute-name.d.ts │ │ ├── require-default-prop.d.ts │ │ ├── require-v-for-key.d.ts │ │ ├── no-textarea-mustache.d.ts │ │ ├── valid-define-emits.d.ts │ │ ├── valid-define-props.d.ts │ │ ├── no-watch-after-await.d.ts │ │ ├── require-emit-validator.d.ts │ │ ├── valid-v-bind-sync.d.ts │ │ ├── valid-model-definition.d.ts │ │ ├── valid-define-options.d.ts │ │ ├── no-expose-after-await.d.ts │ │ ├── require-component-is.d.ts │ │ ├── require-name-property.d.ts │ │ ├── static-class-names-order.d.ts │ │ ├── no-deprecated-v-is.d.ts │ │ ├── no-dupe-v-else-if.d.ts │ │ ├── no-v-for-template-key.d.ts │ │ ├── require-render-return.d.ts │ │ ├── require-typed-ref.d.ts │ │ ├── no-export-in-script-setup.d.ts │ │ ├── no-multiple-slot-args.d.ts │ │ └── prefer-template.d.ts │ ├── jsonc │ │ ├── no-nan.d.ts │ │ ├── no-comments.d.ts │ │ ├── no-infinity.d.ts │ │ ├── no-octal.d.ts │ │ ├── no-plus-sign.d.ts │ │ ├── no-multi-str.d.ts │ │ ├── auto.d.ts │ │ ├── no-sparse-arrays.d.ts │ │ ├── no-number-props.d.ts │ │ ├── no-dupe-keys.d.ts │ │ ├── no-undefined-value.d.ts │ │ ├── no-bigint-literals.d.ts │ │ ├── no-regexp-literals.d.ts │ │ ├── valid-json-number.d.ts │ │ ├── no-useless-escape.d.ts │ │ ├── no-binary-expression.d.ts │ │ ├── no-template-literals.d.ts │ │ ├── no-parenthesized.d.ts │ │ ├── no-numeric-separators.d.ts │ │ └── no-octal-escape.d.ts │ ├── promise │ │ ├── avoid-new.d.ts │ │ ├── no-native.d.ts │ │ ├── no-nesting.d.ts │ │ ├── no-new-statics.d.ts │ │ ├── no-return-in-finally.d.ts │ │ ├── prefer-await-to-then.d.ts │ │ ├── no-multiple-resolved.d.ts │ │ ├── no-promise-in-callback.d.ts │ │ └── prefer-await-to-callbacks.d.ts │ ├── typescript-eslint │ │ ├── no-extra-semi.d.ts │ │ ├── no-unsafe-call.d.ts │ │ ├── no-implied-eval.d.ts │ │ ├── await-thenable.d.ts │ │ ├── no-require-imports.d.ts │ │ ├── no-misused-new.d.ts │ │ ├── prefer-as-const.d.ts │ │ ├── default-param-last.d.ts │ │ ├── prefer-includes.d.ts │ │ ├── no-for-in-array.d.ts │ │ ├── require-await.d.ts │ │ ├── ban-tslint-comment.d.ts │ │ ├── no-dupe-class-members.d.ts │ │ ├── no-mixed-enums.d.ts │ │ ├── no-array-constructor.d.ts │ │ ├── no-var-requires.d.ts │ │ ├── no-useless-constructor.d.ts │ │ ├── no-loss-of-precision.d.ts │ │ └── no-unsafe-return.d.ts │ ├── react │ │ ├── no-typos.d.ts │ │ ├── no-set-state.d.ts │ │ ├── no-is-mounted.d.ts │ │ ├── no-danger.d.ts │ │ ├── no-deprecated.d.ts │ │ └── no-find-dom-node.d.ts │ ├── yml │ │ ├── no-empty-key.d.ts │ │ ├── no-tab-indent.d.ts │ │ ├── no-empty-document.d.ts │ │ ├── no-trailing-zeros.d.ts │ │ └── require-string-key.d.ts │ ├── vitest │ │ ├── prefer-to-be.d.ts │ │ ├── prefer-todo.d.ts │ │ ├── prefer-spy-on.d.ts │ │ ├── prefer-each.d.ts │ │ ├── no-alias-methods.d.ts │ │ ├── no-focused-tests.d.ts │ │ ├── no-disabled-tests.d.ts │ │ ├── prefer-to-contain.d.ts │ │ ├── prefer-to-be-object.d.ts │ │ ├── no-identical-title.d.ts │ │ └── prefer-to-be-falsy.d.ts │ ├── import │ │ ├── no-amd.d.ts │ │ ├── no-named-export.d.ts │ │ ├── export.d.ts │ │ ├── no-default-export.d.ts │ │ ├── default.d.ts │ │ └── no-named-default.d.ts │ ├── unicorn │ │ ├── no-reduce.d.ts │ │ ├── no-new-array.d.ts │ │ ├── no-thenable.d.ts │ │ ├── no-empty-file.d.ts │ │ ├── import-index.d.ts │ │ └── no-process-exit.d.ts │ ├── n │ │ ├── no-process-env.d.ts │ │ └── no-process-exit.d.ts │ ├── vue-i18n │ │ ├── no-html-messages.d.ts │ │ └── no-v-html.d.ts │ └── node │ │ └── no-process-env.d.ts ├── utility-types.d.ts ├── utils.ts └── flat-config │ └── linter-options.d.ts ├── .vscode ├── extensions.json └── settings.json ├── .editorconfig ├── scripts └── generate-rule-files │ ├── cli.ts │ ├── contracts │ └── index.ts │ ├── diffs │ └── rules │ │ ├── react │ │ └── jsx-props-no-spreading.d.ts.diff │ │ ├── node │ │ └── file-extension-in-import.d.ts.diff │ │ ├── graphql-eslint │ │ └── naming-convention.d.ts.diff │ │ ├── vitest │ │ └── valid-title.d.ts.diff │ │ └── eslint │ │ └── no-constructor-return.d.ts.diff │ └── src │ ├── format.ts │ └── js-doc-builder.ts ├── tsconfig.json ├── tsup.config.ts ├── .prettierrc.js └── release.sh /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | # Owner 2 | * @Shinigami92 3 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: [Shinigami92] 2 | custom: ['https://www.paypal.com/donate?hosted_button_id=L7GY729FBKTZY'] 3 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | .github/ISSUE_TEMPLATE/ 2 | .yarn/ 3 | .pnpm-store/ 4 | .pnp.cjs 5 | pnpm-lock.yaml 6 | coverage/ 7 | dist/ 8 | -------------------------------------------------------------------------------- /src/config/extends/eslint.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Eslint extensions. 3 | */ 4 | export type EslintExtensions = 'eslint:recommended' | 'eslint:all'; 5 | -------------------------------------------------------------------------------- /src/rules/mdx/index.d.ts: -------------------------------------------------------------------------------- 1 | import type { RemarkRule } from './remark'; 2 | 3 | /** 4 | * All Mdx rules. 5 | */ 6 | export type MdxRules = RemarkRule; 7 | -------------------------------------------------------------------------------- /src/config/settings/mdx.d.ts: -------------------------------------------------------------------------------- 1 | import type { ESLintMdxSettings } from 'eslint-plugin-mdx'; 2 | 3 | /** 4 | * MDX settings. 5 | */ 6 | export type MdxSettings = ESLintMdxSettings; 7 | -------------------------------------------------------------------------------- /src/rules/deprecation/index.d.ts: -------------------------------------------------------------------------------- 1 | import type { DeprecationRule } from './deprecation'; 2 | 3 | /** 4 | * All Deprecation rules. 5 | */ 6 | export type DeprecationRules = DeprecationRule; 7 | -------------------------------------------------------------------------------- /src/rules/spellcheck/index.d.ts: -------------------------------------------------------------------------------- 1 | import type { SpellCheckerRule } from './spell-checker'; 2 | 3 | /** 4 | * All Spellcheck rules. 5 | */ 6 | export type SpellcheckRules = SpellCheckerRule; 7 | -------------------------------------------------------------------------------- /src/config/extends/eslint-plugin-jsdoc.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Eslint JSDoc extensions. 3 | * 4 | * @see [Eslint JSDoc extensions](https://github.com/gajus/eslint-plugin-jsdoc#configuration) 5 | */ 6 | export type JsdocExtensions = 'plugin:jsdoc/recommended'; 7 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "dbaeumer.vscode-eslint", 4 | "editorconfig.editorconfig", 5 | "esbenp.prettier-vscode", 6 | "pflannery.vscode-versionlens", 7 | "streetsidesoftware.code-spell-checker" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /src/config/extends/eslint-plugin-promise.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Eslint promise extensions. 3 | * 4 | * @see [Eslint promise extensions](https://github.com/eslint-community/eslint-plugin-promise#usage) 5 | */ 6 | export type PromiseExtensions = 'plugin:promise/recommended'; 7 | -------------------------------------------------------------------------------- /src/config/extends/eslint-plugin-vitest.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Eslint Vitest extensions. 3 | * 4 | * @see [Eslint Vitest extensions](https://eslint.vuejs.org/user-guide/#usage) 5 | */ 6 | export type VitestExtensions = 7 | | 'plugin:vitest/all' 8 | | 'plugin:vitest/recommended'; 9 | -------------------------------------------------------------------------------- /src/rules/react-hooks/index.d.ts: -------------------------------------------------------------------------------- 1 | import type { ExhaustiveDepsRule } from './exhaustive-deps'; 2 | import type { RulesOfHooksRule } from './rules-of-hooks'; 3 | 4 | /** 5 | * All ReactHooks rules. 6 | */ 7 | export type ReactHooksRules = RulesOfHooksRule & ExhaustiveDepsRule; 8 | -------------------------------------------------------------------------------- /src/config/extends/eslint-plugin-sonarjs.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Eslint Sonarjs extensions. 3 | * 4 | * @see [Eslint Sonarjs extensions](https://github.com/SonarSource/eslint-plugin-sonarjs#available-configurations) 5 | */ 6 | export type SonarjsExtensions = 'plugin:sonarjs/recommended'; 7 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 6 | end_of_line = lf 7 | charset = utf-8 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true 10 | 11 | [*.md] 12 | max_line_length = off 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /src/config/extends/intlify-vue-i18n.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Eslint Intlify VueI18n extensions. 3 | * 4 | * @see [Eslint Intlify VueI18n extensions](https://eslint-plugin-vue-i18n.intlify.dev/started.html) 5 | */ 6 | export type IntlifyVueI18nExtensions = 'plugin:@intlify/vue-i18n/recommended'; 7 | -------------------------------------------------------------------------------- /src/config/extends/eslint-plugin-unicorn.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Eslint Unicorn extensions. 3 | * 4 | * @see [Eslint Unicorn extensions](https://github.com/sindresorhus/eslint-plugin-unicorn) 5 | */ 6 | export type UnicornExtensions = 7 | | 'plugin:unicorn/recommended' 8 | | 'plugin:unicorn/all'; 9 | -------------------------------------------------------------------------------- /src/config/extends/eslint-plugin-jsx-a11y.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Eslint JSX A11y extensions. 3 | * 4 | * @see [Eslint JSX A11y extensions](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y) 5 | */ 6 | export type JsxA11yExtensions = 7 | | 'plugin:jsx-a11y/strict' 8 | | 'plugin:jsx-a11y/recommended'; 9 | -------------------------------------------------------------------------------- /src/config/extends/eslint-plugin-prettier.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Eslint Prettier extensions. 3 | * 4 | * @see [Eslint Prettier extensions](https://github.com/prettier/eslint-plugin-prettier#recommended-configuration) 5 | */ 6 | export type PrettierExtensions = 'plugin:prettier/recommended' | 'prettier'; 7 | -------------------------------------------------------------------------------- /src/config/extends/eslint-plugin-react-hooks.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Eslint ReactHooks extensions. 3 | * 4 | * @see [Eslint ReactHooks extensions](https://github.com/facebook/react/tree/main/packages/eslint-plugin-react-hooks) 5 | */ 6 | export type ReactHooksExtensions = 'plugin:react-hooks/recommended'; 7 | -------------------------------------------------------------------------------- /src/config/extends/eslint-plugin-eslint-comment.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Eslint EslintComments extensions. 3 | * 4 | * @see [Eslint EslintComments extensions](https://mysticatea.github.io/eslint-plugin-eslint-comments/#%F0%9F%93%96-usage) 5 | */ 6 | export type EslintCommentsExtensions = 'plugin:eslint-comments/recommended'; 7 | -------------------------------------------------------------------------------- /src/config/extends/eslint-plugin-react.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Eslint React extensions. 3 | * 4 | * @see [Eslint React extensions](https://github.com/jsx-eslint/eslint-plugin-react) 5 | */ 6 | export type ReactExtensions = 7 | | 'plugin:react/all' 8 | | 'plugin:react/jsx-runtime' 9 | | 'plugin:react/recommended'; 10 | -------------------------------------------------------------------------------- /scripts/generate-rule-files/cli.ts: -------------------------------------------------------------------------------- 1 | import { run } from '.'; 2 | 3 | const selectedPlugins: string[] | undefined = process.argv 4 | .slice(2) 5 | .find((arg) => arg.startsWith('--plugins=')) 6 | ?.replace('--plugins=', '') 7 | .split(','); 8 | 9 | run({ plugins: selectedPlugins }).catch((err) => console.error(err)); 10 | -------------------------------------------------------------------------------- /src/config/extends/eslint-plugin-n.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Eslint N (Node) extensions. 3 | * 4 | * @see [Eslint N extensions](https://github.com/eslint-community/eslint-plugin-n#-configs) 5 | */ 6 | export type NExtensions = 7 | | 'plugin:n/recommended' 8 | | 'plugin:n/recommended-module' 9 | | 'plugin:n/recommended-script'; 10 | -------------------------------------------------------------------------------- /src/config/settings/jsx-a11y.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * JSX A11y settings. 3 | * 4 | * @see [JSX A11y settings](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y) 5 | */ 6 | export interface JsxA11ySettings extends Partial> { 7 | 'jsx-a11y'?: { 8 | components?: Record; 9 | }; 10 | } 11 | -------------------------------------------------------------------------------- /scripts/generate-rule-files/contracts/index.ts: -------------------------------------------------------------------------------- 1 | import type { Rule } from 'eslint'; 2 | 3 | export type MaybeArray = T | T[]; 4 | 5 | export type PluginRules = Record; 6 | 7 | export interface Plugin { 8 | name: string; 9 | prefix?: string; 10 | module: string; 11 | rules?: PluginRules; 12 | } 13 | -------------------------------------------------------------------------------- /src/config/extends/eslint-plugin-import.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Eslint import extensions. 3 | * 4 | * @see [Eslint import extensions](https://github.com/benmosher/eslint-plugin-import#installation) 5 | */ 6 | export type ImportExtensions = 7 | | 'plugin:import/errors' 8 | | 'plugin:import/warnings' 9 | | 'plugin:import/typescript'; 10 | -------------------------------------------------------------------------------- /src/config/extends/eslint-plugin-node.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Eslint Node extensions. 3 | * 4 | * @see [Eslint Node extensions](https://github.com/mysticatea/eslint-plugin-node#-configs) 5 | */ 6 | export type NodeExtensions = 7 | | 'plugin:node/recommended' 8 | | 'plugin:node/recommended-module' 9 | | 'plugin:node/recommended-script'; 10 | -------------------------------------------------------------------------------- /src/config/extends/eslint-plugin-mdx.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Eslint MDX extensions. 3 | * 4 | * @see [Eslint MDX extensions](https://github.com/mdx-js/eslint-mdx/tree/master/packages/eslint-plugin-mdx) 5 | */ 6 | export type MdxExtensions = 7 | | 'plugin:mdx/base' 8 | | 'plugin:mdx/code-blocks' 9 | | 'plugin:mdx/overrides' 10 | | 'plugin:mdx/recommended'; 11 | -------------------------------------------------------------------------------- /src/utility-types.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * A literal type that supports custom further strings but preserves autocompletion in IDEs. 3 | * 4 | * @see [copied from issue](https://github.com/microsoft/TypeScript/issues/29729#issuecomment-471566609) 5 | */ 6 | export type LiteralUnion = 7 | | Union 8 | | (Base & { zz_IGNORE_ME?: never }); 9 | -------------------------------------------------------------------------------- /src/config/settings/node.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Node settings. 3 | */ 4 | export interface NodeSetting extends Partial> { 5 | allowModules?: string[]; 6 | resolvePaths?: string[]; 7 | tryExtensions?: string[]; 8 | } 9 | 10 | /** 11 | * Node settings. 12 | */ 13 | export interface NodeSettings { 14 | /** 15 | * Node settings. 16 | */ 17 | node?: NodeSetting; 18 | } 19 | -------------------------------------------------------------------------------- /src/config/extends/typescript-eslint.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Typescript eslint extensions. 3 | * 4 | * @see [Typescript eslint extensions](https://typescript-eslint.io/linting/configs#recommended-configurations) 5 | */ 6 | export type TypescriptEslintExtensions = 7 | | 'plugin:@typescript-eslint/recommended' 8 | | 'plugin:@typescript-eslint/recommended-requiring-type-checking' 9 | | 'plugin:@typescript-eslint/strict'; 10 | -------------------------------------------------------------------------------- /src/rules/vue-pug/index.d.ts: -------------------------------------------------------------------------------- 1 | import type { ComponentNameInTemplateCasingRule } from './component-name-in-template-casing'; 2 | import type { NoParsingErrorRule } from './no-parsing-error'; 3 | import type { NoPugControlFlowRule } from './no-pug-control-flow'; 4 | 5 | /** 6 | * All VuePug rules. 7 | */ 8 | export type VuePugRules = ComponentNameInTemplateCasingRule & 9 | NoParsingErrorRule & 10 | NoPugControlFlowRule; 11 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "module": "ESNext", 5 | "moduleResolution": "Node", 6 | "esModuleInterop": true, 7 | "strict": true, 8 | "noEmit": true, 9 | "declaration": true, 10 | "noImplicitOverride": true, 11 | "noUncheckedIndexedAccess": true, 12 | "allowSyntheticDefaultImports": true 13 | }, 14 | "exclude": ["node_modules", "dist"] 15 | } 16 | -------------------------------------------------------------------------------- /src/rules/mdx/remark.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Linter integration with remark plugins. 5 | * 6 | */ 7 | export type RemarkRuleConfig = RuleConfig<[]>; 8 | 9 | /** 10 | * Linter integration with remark plugins. 11 | * 12 | */ 13 | export interface RemarkRule { 14 | /** 15 | * Linter integration with remark plugins. 16 | * 17 | */ 18 | 'mdx/remark': RemarkRuleConfig; 19 | } 20 | -------------------------------------------------------------------------------- /src/config/extends/eslint-plugin-vue.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Eslint Vue extensions. 3 | * 4 | * @see [Eslint Vue extensions](https://eslint.vuejs.org/user-guide/#usage) 5 | */ 6 | export type VueExtensions = 7 | | 'plugin:vue/base' 8 | | 'plugin:vue/vue3-essential' 9 | | 'plugin:vue/vue3-strongly-recommended' 10 | | 'plugin:vue/vue3-recommended' 11 | | 'plugin:vue/essential' 12 | | 'plugin:vue/strongly-recommended' 13 | | 'plugin:vue/recommended'; 14 | -------------------------------------------------------------------------------- /src/config/extends/eslint-plugin-graphql.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Eslint GraphQL extensions. 3 | * 4 | * @see [Eslint GraphQL extensions](https://the-guild.dev/graphql/eslint/docs/configs) 5 | */ 6 | export type GraphqlExtensions = 7 | | 'plugin:@graphql-eslint/operations-all' 8 | | 'plugin:@graphql-eslint/operations-recommended' 9 | | 'plugin:@graphql-eslint/relay' 10 | | 'plugin:@graphql-eslint/schema-all' 11 | | 'plugin:@graphql-eslint/schema-recommended'; 12 | -------------------------------------------------------------------------------- /src/config/extends/eslint-plugin-testing-library.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Eslint TestingLibrary extensions. 3 | * 4 | * @see [Eslint TestingLibrary extensions](https://github.com/testing-library/eslint-plugin-testing-library) 5 | */ 6 | export type TestingLibraryExtensions = 7 | | 'plugin:testing-library/angular' 8 | | 'plugin:testing-library/dom' 9 | | 'plugin:testing-library/marko' 10 | | 'plugin:testing-library/react' 11 | | 'plugin:testing-library/vue'; 12 | -------------------------------------------------------------------------------- /tsup.config.ts: -------------------------------------------------------------------------------- 1 | import type { Options } from 'tsup'; 2 | import { defineConfig } from 'tsup'; 3 | 4 | const baseOptions: Options = { 5 | entry: ['src/index.ts'], 6 | outDir: 'dist', 7 | clean: true, 8 | target: ['es2022', 'node18'], 9 | minify: true, 10 | sourcemap: false, 11 | splitting: true, 12 | }; 13 | 14 | export default defineConfig([ 15 | { ...baseOptions, format: 'esm', dts: true }, 16 | { ...baseOptions, format: 'cjs', dts: false }, 17 | ]); 18 | -------------------------------------------------------------------------------- /.prettierrc.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | /** 4 | * @type {import('prettier').Config} 5 | */ 6 | export default { 7 | plugins: ['prettier-plugin-organize-imports'], 8 | singleQuote: true, 9 | trailingComma: 'all', 10 | overrides: [ 11 | { 12 | files: '*.json5', 13 | options: { 14 | parser: 'json5', 15 | quoteProps: 'preserve', 16 | singleQuote: false, 17 | trailingComma: 'none', 18 | }, 19 | }, 20 | ], 21 | }; 22 | -------------------------------------------------------------------------------- /src/config/extends/eslint-plugin-jsonc.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Eslint Jsonc extensions. 3 | * 4 | * @see [Eslint Jsonc extensions](https://github.com/ota-meshi/eslint-plugin-jsonc#configuration) 5 | */ 6 | export type JsoncExtensions = 7 | | 'plugin:jsdoc/base' 8 | | 'plugin:jsdoc/recommended' 9 | | 'plugin:jsonc/recommended-with-json' 10 | | 'plugin:jsonc/recommended-with-jsonc' 11 | | 'plugin:jsonc/recommended-with-json5' 12 | | 'plugin:jsonc/prettier' 13 | | 'plugin:jsonc/all'; 14 | -------------------------------------------------------------------------------- /src/rules/rule-severity.d.ts: -------------------------------------------------------------------------------- 1 | // Synced to https://github.com/DefinitelyTyped/DefinitelyTyped/blob/042141ce5f77f36df01c344ad09f32feda26c4fd/types/eslint/index.d.ts#L714-L716 2 | 3 | /** 4 | * Rule ordinal severity. 5 | */ 6 | export type Severity = 0 | 1 | 2; 7 | 8 | /** 9 | * Rule severity. 10 | */ 11 | export type RuleLevel = Severity | 'off' | 'warn' | 'error'; 12 | 13 | /** 14 | * Rule severity. 15 | * 16 | * @alias RuleLevel 17 | */ 18 | export type RuleSeverity = RuleLevel; 19 | -------------------------------------------------------------------------------- /src/config/extends/eslint-plugin-vue-pug.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Eslint Vue Pug extensions. 3 | * 4 | * @see [Eslint Vue Pug extensions](https://github.com/rashfael/eslint-plugin-vue-pug#usage) 5 | */ 6 | export type VuePugExtensions = 7 | | 'plugin:vue-pug/base' 8 | | 'plugin:vue-pug/vue3-essential' 9 | | 'plugin:vue-pug/vue3-strongly-recommended' 10 | | 'plugin:vue-pug/vue3-recommended' 11 | | 'plugin:vue-pug/essential' 12 | | 'plugin:vue-pug/strongly-recommended' 13 | | 'plugin:vue-pug/recommended'; 14 | -------------------------------------------------------------------------------- /src/config/plugin.d.ts: -------------------------------------------------------------------------------- 1 | import type { LiteralUnion } from '../utility-types'; 2 | 3 | /** Plugin. */ 4 | export type Plugin = LiteralUnion< 5 | | '@graphql-eslint' 6 | | '@typescript-eslint' 7 | | 'deprecation' 8 | | 'import' 9 | | 'inclusive-language' 10 | | 'jsdoc' 11 | | 'jsx-a11y' 12 | | 'mdx' 13 | | 'prettier' 14 | | 'promise' 15 | | 'react-hooks' 16 | | 'react' 17 | | 'sonarjs' 18 | | 'spellcheck' 19 | | 'testing-library' 20 | | 'unicorn' 21 | | 'vitest' 22 | | 'vue' 23 | >; 24 | -------------------------------------------------------------------------------- /release.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -x 3 | 4 | # Cleanup 5 | rm -Rf dist 6 | rm -Rf node_modules 7 | rm pnpm-lock.yaml 8 | 9 | set -e 10 | 11 | # Prepare 12 | pnpm install 13 | pnpm run lint 14 | pnpm run test -- --silent 15 | pnpm audit 16 | pnpm run build 17 | 18 | # Publish 19 | npm publish --dry-run 20 | 21 | set +ex 22 | 23 | echo 24 | echo "If everything looks okay, use 'npm publish --access public'" 25 | echo 26 | echo "Remember to create a tag" 27 | echo "Remember to increase the version number" 28 | echo 29 | -------------------------------------------------------------------------------- /scripts/generate-rule-files/diffs/rules/react/jsx-props-no-spreading.d.ts.diff: -------------------------------------------------------------------------------- 1 | diff --git a/src/rules/react/jsx-props-no-spreading.d.ts b/src/rules/react/jsx-props-no-spreading.d.ts 2 | index c1e0069..ba1e1bc 100644 3 | --- a/src/rules/react/jsx-props-no-spreading.d.ts 4 | +++ b/src/rules/react/jsx-props-no-spreading.d.ts 5 | @@ -8,8 +8,6 @@ export type JsxPropsNoSpreadingOption = { 6 | custom?: 'enforce' | 'ignore'; 7 | exceptions?: string[]; 8 | [k: string]: any; 9 | -} & { 10 | - [k: string]: any; 11 | }; 12 | 13 | /** 14 | -------------------------------------------------------------------------------- /scripts/generate-rule-files/src/format.ts: -------------------------------------------------------------------------------- 1 | import type { Config } from 'prettier'; 2 | import { format as prettierFormat } from 'prettier'; 3 | 4 | /** 5 | * Our custom prettier configuration. 6 | */ 7 | const PRETTIER_OPTIONS: Config = { 8 | plugins: ['prettier-plugin-organize-imports'], 9 | parser: 'typescript', 10 | singleQuote: true, 11 | trailingComma: 'all', 12 | }; 13 | 14 | /** 15 | * Format the given content with Prettier. 16 | */ 17 | export function format(content: string): Promise { 18 | return prettierFormat(content, PRETTIER_OPTIONS); 19 | } 20 | -------------------------------------------------------------------------------- /src/config/settings/index.d.ts: -------------------------------------------------------------------------------- 1 | import type { ImportSettings } from './import'; 2 | import type { JSDocSettings } from './jsdoc'; 3 | import type { JsxA11ySettings } from './jsx-a11y'; 4 | import type { MdxSettings } from './mdx'; 5 | import type { NodeSettings } from './node'; 6 | import type { ReactSettings } from './react'; 7 | 8 | /** 9 | * Settings. 10 | */ 11 | export interface Settings 12 | extends ImportSettings, 13 | JSDocSettings, 14 | JsxA11ySettings, 15 | MdxSettings, 16 | NodeSettings, 17 | ReactSettings, 18 | Partial> {} 19 | -------------------------------------------------------------------------------- /scripts/generate-rule-files/diffs/rules/node/file-extension-in-import.d.ts.diff: -------------------------------------------------------------------------------- 1 | diff --git b/src/rules/node/file-extension-in-import.d.ts a/src/rules/node/file-extension-in-import.d.ts 2 | index 652b18d..7261252 100644 3 | --- b/src/rules/node/file-extension-in-import.d.ts 4 | +++ a/src/rules/node/file-extension-in-import.d.ts 5 | @@ -5,7 +5,7 @@ import type { RuleConfig } from '../rule-config'; 6 | */ 7 | export interface FileExtensionInImportConfig { 8 | tryExtensions?: string[]; 9 | - [k: string]: 'always' | 'never'; 10 | + [ext: `.${string}`]: 'always' | 'never'; 11 | } 12 | 13 | /** 14 | -------------------------------------------------------------------------------- /src/utils.ts: -------------------------------------------------------------------------------- 1 | export type Unprefix, Pre extends string> = { 2 | [K in keyof T as K extends `${Pre}${infer U}` ? U : never]: T[K]; 3 | }; 4 | 5 | export type Prefix, Pre extends string> = { 6 | // @ts-expect-error 7 | [K in keyof T as `${Pre}${K}`]: T[K]; 8 | }; 9 | 10 | export type RenamePrefix< 11 | T extends Record, 12 | Old extends string, 13 | New extends string, 14 | > = Prefix, New>; 15 | 16 | export type MergeIntersection> = { 17 | [K in keyof T]: T[K]; 18 | }; 19 | -------------------------------------------------------------------------------- /src/rules/eslint/no-octal.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow octal literals. 5 | * 6 | * @see [no-octal](https://eslint.org/docs/latest/rules/no-octal) 7 | */ 8 | export type NoOctalRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow octal literals. 12 | * 13 | * @see [no-octal](https://eslint.org/docs/latest/rules/no-octal) 14 | */ 15 | export interface NoOctalRule { 16 | /** 17 | * Disallow octal literals. 18 | * 19 | * @see [no-octal](https://eslint.org/docs/latest/rules/no-octal) 20 | */ 21 | 'no-octal': NoOctalRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/eslint/no-with.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow `with` statements. 5 | * 6 | * @see [no-with](https://eslint.org/docs/latest/rules/no-with) 7 | */ 8 | export type NoWithRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow `with` statements. 12 | * 13 | * @see [no-with](https://eslint.org/docs/latest/rules/no-with) 14 | */ 15 | export interface NoWithRule { 16 | /** 17 | * Disallow `with` statements. 18 | * 19 | * @see [no-with](https://eslint.org/docs/latest/rules/no-with) 20 | */ 21 | 'no-with': NoWithRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/vue/no-v-text.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow use of v-text. 5 | * 6 | * @see [no-v-text](https://eslint.vuejs.org/rules/no-v-text.html) 7 | */ 8 | export type NoVTextRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow use of v-text. 12 | * 13 | * @see [no-v-text](https://eslint.vuejs.org/rules/no-v-text.html) 14 | */ 15 | export interface NoVTextRule { 16 | /** 17 | * Disallow use of v-text. 18 | * 19 | * @see [no-v-text](https://eslint.vuejs.org/rules/no-v-text.html) 20 | */ 21 | 'vue/no-v-text': NoVTextRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/jsonc/no-nan.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow NaN. 5 | * 6 | * @see [no-nan](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-nan.html) 7 | */ 8 | export type NoNanRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow NaN. 12 | * 13 | * @see [no-nan](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-nan.html) 14 | */ 15 | export interface NoNanRule { 16 | /** 17 | * Disallow NaN. 18 | * 19 | * @see [no-nan](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-nan.html) 20 | */ 21 | 'jsonc/no-nan': NoNanRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /scripts/generate-rule-files/src/js-doc-builder.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Simple class helper to build a JSDoc comment. 3 | */ 4 | export class JsDocBuilder { 5 | private readonly content: string[] = []; 6 | 7 | public static build(): JsDocBuilder { 8 | return new JsDocBuilder(); 9 | } 10 | 11 | public add(line?: string): JsDocBuilder { 12 | if (line) { 13 | this.content.push(line); 14 | } 15 | 16 | return this; 17 | } 18 | 19 | public output(): string { 20 | return [ 21 | // 22 | '/**', 23 | ...this.content.map((line) => ` * ${line}`), 24 | ' */', 25 | ].join('\n'); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/rules/eslint/no-ternary.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow ternary operators. 5 | * 6 | * @see [no-ternary](https://eslint.org/docs/latest/rules/no-ternary) 7 | */ 8 | export type NoTernaryRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow ternary operators. 12 | * 13 | * @see [no-ternary](https://eslint.org/docs/latest/rules/no-ternary) 14 | */ 15 | export interface NoTernaryRule { 16 | /** 17 | * Disallow ternary operators. 18 | * 19 | * @see [no-ternary](https://eslint.org/docs/latest/rules/no-ternary) 20 | */ 21 | 'no-ternary': NoTernaryRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/eslint/no-var.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Require `let` or `const` instead of `var`. 5 | * 6 | * @see [no-var](https://eslint.org/docs/latest/rules/no-var) 7 | */ 8 | export type NoVarRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Require `let` or `const` instead of `var`. 12 | * 13 | * @see [no-var](https://eslint.org/docs/latest/rules/no-var) 14 | */ 15 | export interface NoVarRule { 16 | /** 17 | * Require `let` or `const` instead of `var`. 18 | * 19 | * @see [no-var](https://eslint.org/docs/latest/rules/no-var) 20 | */ 21 | 'no-var': NoVarRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/vue/valid-v-if.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Enforce valid `v-if` directives. 5 | * 6 | * @see [valid-v-if](https://eslint.vuejs.org/rules/valid-v-if.html) 7 | */ 8 | export type ValidVIfRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Enforce valid `v-if` directives. 12 | * 13 | * @see [valid-v-if](https://eslint.vuejs.org/rules/valid-v-if.html) 14 | */ 15 | export interface ValidVIfRule { 16 | /** 17 | * Enforce valid `v-if` directives. 18 | * 19 | * @see [valid-v-if](https://eslint.vuejs.org/rules/valid-v-if.html) 20 | */ 21 | 'vue/valid-v-if': ValidVIfRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/vue/valid-v-is.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Enforce valid `v-is` directives. 5 | * 6 | * @see [valid-v-is](https://eslint.vuejs.org/rules/valid-v-is.html) 7 | */ 8 | export type ValidVIsRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Enforce valid `v-is` directives. 12 | * 13 | * @see [valid-v-is](https://eslint.vuejs.org/rules/valid-v-is.html) 14 | */ 15 | export interface ValidVIsRule { 16 | /** 17 | * Enforce valid `v-is` directives. 18 | * 19 | * @see [valid-v-is](https://eslint.vuejs.org/rules/valid-v-is.html) 20 | */ 21 | 'vue/valid-v-is': ValidVIsRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/vue/html-end-tags.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Enforce end tag style. 5 | * 6 | * @see [html-end-tags](https://eslint.vuejs.org/rules/html-end-tags.html) 7 | */ 8 | export type HtmlEndTagsRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Enforce end tag style. 12 | * 13 | * @see [html-end-tags](https://eslint.vuejs.org/rules/html-end-tags.html) 14 | */ 15 | export interface HtmlEndTagsRule { 16 | /** 17 | * Enforce end tag style. 18 | * 19 | * @see [html-end-tags](https://eslint.vuejs.org/rules/html-end-tags.html) 20 | */ 21 | 'vue/html-end-tags': HtmlEndTagsRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/eslint/no-multi-str.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow multiline strings. 5 | * 6 | * @see [no-multi-str](https://eslint.org/docs/latest/rules/no-multi-str) 7 | */ 8 | export type NoMultiStrRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow multiline strings. 12 | * 13 | * @see [no-multi-str](https://eslint.org/docs/latest/rules/no-multi-str) 14 | */ 15 | export interface NoMultiStrRule { 16 | /** 17 | * Disallow multiline strings. 18 | * 19 | * @see [no-multi-str](https://eslint.org/docs/latest/rules/no-multi-str) 20 | */ 21 | 'no-multi-str': NoMultiStrRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/eslint/no-continue.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow `continue` statements. 5 | * 6 | * @see [no-continue](https://eslint.org/docs/latest/rules/no-continue) 7 | */ 8 | export type NoContinueRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow `continue` statements. 12 | * 13 | * @see [no-continue](https://eslint.org/docs/latest/rules/no-continue) 14 | */ 15 | export interface NoContinueRule { 16 | /** 17 | * Disallow `continue` statements. 18 | * 19 | * @see [no-continue](https://eslint.org/docs/latest/rules/no-continue) 20 | */ 21 | 'no-continue': NoContinueRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/eslint/no-debugger.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow the use of `debugger`. 5 | * 6 | * @see [no-debugger](https://eslint.org/docs/latest/rules/no-debugger) 7 | */ 8 | export type NoDebuggerRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow the use of `debugger`. 12 | * 13 | * @see [no-debugger](https://eslint.org/docs/latest/rules/no-debugger) 14 | */ 15 | export interface NoDebuggerRule { 16 | /** 17 | * Disallow the use of `debugger`. 18 | * 19 | * @see [no-debugger](https://eslint.org/docs/latest/rules/no-debugger) 20 | */ 21 | 'no-debugger': NoDebuggerRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/promise/avoid-new.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * 5 | * @see [avoid-new](https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/avoid-new.md) 6 | */ 7 | export type AvoidNewRuleConfig = RuleConfig<[]>; 8 | 9 | /** 10 | * 11 | * @see [avoid-new](https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/avoid-new.md) 12 | */ 13 | export interface AvoidNewRule { 14 | /** 15 | * 16 | * @see [avoid-new](https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/avoid-new.md) 17 | */ 18 | 'promise/avoid-new': AvoidNewRuleConfig; 19 | } 20 | -------------------------------------------------------------------------------- /src/rules/promise/no-native.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * 5 | * @see [no-native](https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/no-native.md) 6 | */ 7 | export type NoNativeRuleConfig = RuleConfig<[]>; 8 | 9 | /** 10 | * 11 | * @see [no-native](https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/no-native.md) 12 | */ 13 | export interface NoNativeRule { 14 | /** 15 | * 16 | * @see [no-native](https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/no-native.md) 17 | */ 18 | 'promise/no-native': NoNativeRuleConfig; 19 | } 20 | -------------------------------------------------------------------------------- /src/rules/vue/no-unused-refs.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow unused refs. 5 | * 6 | * @see [no-unused-refs](https://eslint.vuejs.org/rules/no-unused-refs.html) 7 | */ 8 | export type NoUnusedRefsRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow unused refs. 12 | * 13 | * @see [no-unused-refs](https://eslint.vuejs.org/rules/no-unused-refs.html) 14 | */ 15 | export interface NoUnusedRefsRule { 16 | /** 17 | * Disallow unused refs. 18 | * 19 | * @see [no-unused-refs](https://eslint.vuejs.org/rules/no-unused-refs.html) 20 | */ 21 | 'vue/no-unused-refs': NoUnusedRefsRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/vue/valid-v-for.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Enforce valid `v-for` directives. 5 | * 6 | * @see [valid-v-for](https://eslint.vuejs.org/rules/valid-v-for.html) 7 | */ 8 | export type ValidVForRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Enforce valid `v-for` directives. 12 | * 13 | * @see [valid-v-for](https://eslint.vuejs.org/rules/valid-v-for.html) 14 | */ 15 | export interface ValidVForRule { 16 | /** 17 | * Enforce valid `v-for` directives. 18 | * 19 | * @see [valid-v-for](https://eslint.vuejs.org/rules/valid-v-for.html) 20 | */ 21 | 'vue/valid-v-for': ValidVForRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/vue/valid-v-pre.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Enforce valid `v-pre` directives. 5 | * 6 | * @see [valid-v-pre](https://eslint.vuejs.org/rules/valid-v-pre.html) 7 | */ 8 | export type ValidVPreRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Enforce valid `v-pre` directives. 12 | * 13 | * @see [valid-v-pre](https://eslint.vuejs.org/rules/valid-v-pre.html) 14 | */ 15 | export interface ValidVPreRule { 16 | /** 17 | * Enforce valid `v-pre` directives. 18 | * 19 | * @see [valid-v-pre](https://eslint.vuejs.org/rules/valid-v-pre.html) 20 | */ 21 | 'vue/valid-v-pre': ValidVPreRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /scripts/generate-rule-files/diffs/rules/graphql-eslint/naming-convention.d.ts.diff: -------------------------------------------------------------------------------- 1 | diff --git b/src/rules/graphql-eslint/naming-convention.d.ts a/src/rules/graphql-eslint/naming-convention.d.ts 2 | index 60b228b..5e01373 100644 3 | --- b/src/rules/graphql-eslint/naming-convention.d.ts 4 | +++ a/src/rules/graphql-eslint/naming-convention.d.ts 5 | @@ -78,8 +78,7 @@ export type NamingConventionOption = 6 | VariableDefinition?: AsString | AsObject; 7 | allowLeadingUnderscore?: boolean; 8 | allowTrailingUnderscore?: boolean; 9 | - /** 10 | - */ 11 | + } & { 12 | [k: string]: AsString | AsObject; 13 | }, 14 | ]; 15 | -------------------------------------------------------------------------------- /src/rules/deprecation/deprecation.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Do not use deprecated APIs. 5 | * 6 | * @see [deprecation](https://github.com/gund/eslint-plugin-deprecation) 7 | */ 8 | export type DeprecationRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Do not use deprecated APIs. 12 | * 13 | * @see [deprecation](https://github.com/gund/eslint-plugin-deprecation) 14 | */ 15 | export interface DeprecationRule { 16 | /** 17 | * Do not use deprecated APIs. 18 | * 19 | * @see [deprecation](https://github.com/gund/eslint-plugin-deprecation) 20 | */ 21 | 'deprecation/deprecation': DeprecationRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/eslint/no-delete-var.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow deleting variables. 5 | * 6 | * @see [no-delete-var](https://eslint.org/docs/latest/rules/no-delete-var) 7 | */ 8 | export type NoDeleteVarRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow deleting variables. 12 | * 13 | * @see [no-delete-var](https://eslint.org/docs/latest/rules/no-delete-var) 14 | */ 15 | export interface NoDeleteVarRule { 16 | /** 17 | * Disallow deleting variables. 18 | * 19 | * @see [no-delete-var](https://eslint.org/docs/latest/rules/no-delete-var) 20 | */ 21 | 'no-delete-var': NoDeleteVarRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/eslint/no-proto.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow the use of the `__proto__` property. 5 | * 6 | * @see [no-proto](https://eslint.org/docs/latest/rules/no-proto) 7 | */ 8 | export type NoProtoRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow the use of the `__proto__` property. 12 | * 13 | * @see [no-proto](https://eslint.org/docs/latest/rules/no-proto) 14 | */ 15 | export interface NoProtoRule { 16 | /** 17 | * Disallow the use of the `__proto__` property. 18 | * 19 | * @see [no-proto](https://eslint.org/docs/latest/rules/no-proto) 20 | */ 21 | 'no-proto': NoProtoRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/eslint/no-script-url.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow `javascript:` urls. 5 | * 6 | * @see [no-script-url](https://eslint.org/docs/latest/rules/no-script-url) 7 | */ 8 | export type NoScriptUrlRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow `javascript:` urls. 12 | * 13 | * @see [no-script-url](https://eslint.org/docs/latest/rules/no-script-url) 14 | */ 15 | export interface NoScriptUrlRule { 16 | /** 17 | * Disallow `javascript:` urls. 18 | * 19 | * @see [no-script-url](https://eslint.org/docs/latest/rules/no-script-url) 20 | */ 21 | 'no-script-url': NoScriptUrlRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/promise/no-nesting.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * 5 | * @see [no-nesting](https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/no-nesting.md) 6 | */ 7 | export type NoNestingRuleConfig = RuleConfig<[]>; 8 | 9 | /** 10 | * 11 | * @see [no-nesting](https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/no-nesting.md) 12 | */ 13 | export interface NoNestingRule { 14 | /** 15 | * 16 | * @see [no-nesting](https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/no-nesting.md) 17 | */ 18 | 'promise/no-nesting': NoNestingRuleConfig; 19 | } 20 | -------------------------------------------------------------------------------- /src/rules/react-hooks/rules-of-hooks.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Enforces the Rules of Hooks. 5 | * 6 | * @see [rules-of-hooks](https://reactjs.org/docs/hooks-rules.html) 7 | */ 8 | export type RulesOfHooksRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Enforces the Rules of Hooks. 12 | * 13 | * @see [rules-of-hooks](https://reactjs.org/docs/hooks-rules.html) 14 | */ 15 | export interface RulesOfHooksRule { 16 | /** 17 | * Enforces the Rules of Hooks. 18 | * 19 | * @see [rules-of-hooks](https://reactjs.org/docs/hooks-rules.html) 20 | */ 21 | 'react-hooks/rules-of-hooks': RulesOfHooksRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/vue/no-v-html.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow use of v-html to prevent XSS attack. 5 | * 6 | * @see [no-v-html](https://eslint.vuejs.org/rules/no-v-html.html) 7 | */ 8 | export type NoVHtmlRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow use of v-html to prevent XSS attack. 12 | * 13 | * @see [no-v-html](https://eslint.vuejs.org/rules/no-v-html.html) 14 | */ 15 | export interface NoVHtmlRule { 16 | /** 17 | * Disallow use of v-html to prevent XSS attack. 18 | * 19 | * @see [no-v-html](https://eslint.vuejs.org/rules/no-v-html.html) 20 | */ 21 | 'vue/no-v-html': NoVHtmlRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/vue/valid-v-bind.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Enforce valid `v-bind` directives. 5 | * 6 | * @see [valid-v-bind](https://eslint.vuejs.org/rules/valid-v-bind.html) 7 | */ 8 | export type ValidVBindRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Enforce valid `v-bind` directives. 12 | * 13 | * @see [valid-v-bind](https://eslint.vuejs.org/rules/valid-v-bind.html) 14 | */ 15 | export interface ValidVBindRule { 16 | /** 17 | * Enforce valid `v-bind` directives. 18 | * 19 | * @see [valid-v-bind](https://eslint.vuejs.org/rules/valid-v-bind.html) 20 | */ 21 | 'vue/valid-v-bind': ValidVBindRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/vue/valid-v-else.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Enforce valid `v-else` directives. 5 | * 6 | * @see [valid-v-else](https://eslint.vuejs.org/rules/valid-v-else.html) 7 | */ 8 | export type ValidVElseRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Enforce valid `v-else` directives. 12 | * 13 | * @see [valid-v-else](https://eslint.vuejs.org/rules/valid-v-else.html) 14 | */ 15 | export interface ValidVElseRule { 16 | /** 17 | * Enforce valid `v-else` directives. 18 | * 19 | * @see [valid-v-else](https://eslint.vuejs.org/rules/valid-v-else.html) 20 | */ 21 | 'vue/valid-v-else': ValidVElseRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/vue/valid-v-html.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Enforce valid `v-html` directives. 5 | * 6 | * @see [valid-v-html](https://eslint.vuejs.org/rules/valid-v-html.html) 7 | */ 8 | export type ValidVHtmlRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Enforce valid `v-html` directives. 12 | * 13 | * @see [valid-v-html](https://eslint.vuejs.org/rules/valid-v-html.html) 14 | */ 15 | export interface ValidVHtmlRule { 16 | /** 17 | * Enforce valid `v-html` directives. 18 | * 19 | * @see [valid-v-html](https://eslint.vuejs.org/rules/valid-v-html.html) 20 | */ 21 | 'vue/valid-v-html': ValidVHtmlRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/vue/valid-v-memo.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Enforce valid `v-memo` directives. 5 | * 6 | * @see [valid-v-memo](https://eslint.vuejs.org/rules/valid-v-memo.html) 7 | */ 8 | export type ValidVMemoRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Enforce valid `v-memo` directives. 12 | * 13 | * @see [valid-v-memo](https://eslint.vuejs.org/rules/valid-v-memo.html) 14 | */ 15 | export interface ValidVMemoRule { 16 | /** 17 | * Enforce valid `v-memo` directives. 18 | * 19 | * @see [valid-v-memo](https://eslint.vuejs.org/rules/valid-v-memo.html) 20 | */ 21 | 'vue/valid-v-memo': ValidVMemoRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/vue/valid-v-once.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Enforce valid `v-once` directives. 5 | * 6 | * @see [valid-v-once](https://eslint.vuejs.org/rules/valid-v-once.html) 7 | */ 8 | export type ValidVOnceRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Enforce valid `v-once` directives. 12 | * 13 | * @see [valid-v-once](https://eslint.vuejs.org/rules/valid-v-once.html) 14 | */ 15 | export interface ValidVOnceRule { 16 | /** 17 | * Enforce valid `v-once` directives. 18 | * 19 | * @see [valid-v-once](https://eslint.vuejs.org/rules/valid-v-once.html) 20 | */ 21 | 'vue/valid-v-once': ValidVOnceRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/vue/valid-v-show.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Enforce valid `v-show` directives. 5 | * 6 | * @see [valid-v-show](https://eslint.vuejs.org/rules/valid-v-show.html) 7 | */ 8 | export type ValidVShowRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Enforce valid `v-show` directives. 12 | * 13 | * @see [valid-v-show](https://eslint.vuejs.org/rules/valid-v-show.html) 14 | */ 15 | export interface ValidVShowRule { 16 | /** 17 | * Enforce valid `v-show` directives. 18 | * 19 | * @see [valid-v-show](https://eslint.vuejs.org/rules/valid-v-show.html) 20 | */ 21 | 'vue/valid-v-show': ValidVShowRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/vue/valid-v-text.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Enforce valid `v-text` directives. 5 | * 6 | * @see [valid-v-text](https://eslint.vuejs.org/rules/valid-v-text.html) 7 | */ 8 | export type ValidVTextRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Enforce valid `v-text` directives. 12 | * 13 | * @see [valid-v-text](https://eslint.vuejs.org/rules/valid-v-text.html) 14 | */ 15 | export interface ValidVTextRule { 16 | /** 17 | * Enforce valid `v-text` directives. 18 | * 19 | * @see [valid-v-text](https://eslint.vuejs.org/rules/valid-v-text.html) 20 | */ 21 | 'vue/valid-v-text': ValidVTextRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/eslint/no-extra-label.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow unnecessary labels. 5 | * 6 | * @see [no-extra-label](https://eslint.org/docs/latest/rules/no-extra-label) 7 | */ 8 | export type NoExtraLabelRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow unnecessary labels. 12 | * 13 | * @see [no-extra-label](https://eslint.org/docs/latest/rules/no-extra-label) 14 | */ 15 | export interface NoExtraLabelRule { 16 | /** 17 | * Disallow unnecessary labels. 18 | * 19 | * @see [no-extra-label](https://eslint.org/docs/latest/rules/no-extra-label) 20 | */ 21 | 'no-extra-label': NoExtraLabelRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/eslint/no-extra-semi.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow unnecessary semicolons. 5 | * 6 | * @see [no-extra-semi](https://eslint.org/docs/latest/rules/no-extra-semi) 7 | */ 8 | export type NoExtraSemiRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow unnecessary semicolons. 12 | * 13 | * @see [no-extra-semi](https://eslint.org/docs/latest/rules/no-extra-semi) 14 | */ 15 | export interface NoExtraSemiRule { 16 | /** 17 | * Disallow unnecessary semicolons. 18 | * 19 | * @see [no-extra-semi](https://eslint.org/docs/latest/rules/no-extra-semi) 20 | */ 21 | 'no-extra-semi': NoExtraSemiRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/eslint/wrap-regex.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Require parenthesis around regex literals. 5 | * 6 | * @see [wrap-regex](https://eslint.org/docs/latest/rules/wrap-regex) 7 | */ 8 | export type WrapRegexRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Require parenthesis around regex literals. 12 | * 13 | * @see [wrap-regex](https://eslint.org/docs/latest/rules/wrap-regex) 14 | */ 15 | export interface WrapRegexRule { 16 | /** 17 | * Require parenthesis around regex literals. 18 | * 19 | * @see [wrap-regex](https://eslint.org/docs/latest/rules/wrap-regex) 20 | */ 21 | 'wrap-regex': WrapRegexRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /scripts/generate-rule-files/diffs/rules/vitest/valid-title.d.ts.diff: -------------------------------------------------------------------------------- 1 | diff --git a/src/rules/vitest/valid-title.d.ts b/src/rules/vitest/valid-title.d.ts 2 | index 160be76..834ac9b 100644 3 | --- a/src/rules/vitest/valid-title.d.ts 4 | +++ b/src/rules/vitest/valid-title.d.ts 5 | @@ -7,15 +7,7 @@ export interface ValidTitleOption { 6 | ignoreTypeOfDescribeName?: boolean; 7 | allowArguments?: boolean; 8 | disallowedWords?: string[]; 9 | - /** 10 | - */ 11 | - [k: string]: 12 | - | string 13 | - | [string] 14 | - | [string, string] 15 | - | { 16 | - [k: string]: string | [string] | [string, string]; 17 | - }; 18 | + [k: string]: any; 19 | } 20 | 21 | /** 22 | -------------------------------------------------------------------------------- /src/rules/eslint/no-sparse-arrays.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow sparse arrays. 5 | * 6 | * @see [no-sparse-arrays](https://eslint.org/docs/latest/rules/no-sparse-arrays) 7 | */ 8 | export type NoSparseArraysRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow sparse arrays. 12 | * 13 | * @see [no-sparse-arrays](https://eslint.org/docs/latest/rules/no-sparse-arrays) 14 | */ 15 | export interface NoSparseArraysRule { 16 | /** 17 | * Disallow sparse arrays. 18 | * 19 | * @see [no-sparse-arrays](https://eslint.org/docs/latest/rules/no-sparse-arrays) 20 | */ 21 | 'no-sparse-arrays': NoSparseArraysRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/eslint/no-unused-labels.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow unused labels. 5 | * 6 | * @see [no-unused-labels](https://eslint.org/docs/latest/rules/no-unused-labels) 7 | */ 8 | export type NoUnusedLabelsRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow unused labels. 12 | * 13 | * @see [no-unused-labels](https://eslint.org/docs/latest/rules/no-unused-labels) 14 | */ 15 | export interface NoUnusedLabelsRule { 16 | /** 17 | * Disallow unused labels. 18 | * 19 | * @see [no-unused-labels](https://eslint.org/docs/latest/rules/no-unused-labels) 20 | */ 21 | 'no-unused-labels': NoUnusedLabelsRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/jsonc/no-comments.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow comments. 5 | * 6 | * @see [no-comments](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-comments.html) 7 | */ 8 | export type NoCommentsRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow comments. 12 | * 13 | * @see [no-comments](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-comments.html) 14 | */ 15 | export interface NoCommentsRule { 16 | /** 17 | * Disallow comments. 18 | * 19 | * @see [no-comments](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-comments.html) 20 | */ 21 | 'jsonc/no-comments': NoCommentsRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/jsonc/no-infinity.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow Infinity. 5 | * 6 | * @see [no-infinity](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-infinity.html) 7 | */ 8 | export type NoInfinityRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow Infinity. 12 | * 13 | * @see [no-infinity](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-infinity.html) 14 | */ 15 | export interface NoInfinityRule { 16 | /** 17 | * Disallow Infinity. 18 | * 19 | * @see [no-infinity](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-infinity.html) 20 | */ 21 | 'jsonc/no-infinity': NoInfinityRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/vue/valid-v-cloak.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Enforce valid `v-cloak` directives. 5 | * 6 | * @see [valid-v-cloak](https://eslint.vuejs.org/rules/valid-v-cloak.html) 7 | */ 8 | export type ValidVCloakRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Enforce valid `v-cloak` directives. 12 | * 13 | * @see [valid-v-cloak](https://eslint.vuejs.org/rules/valid-v-cloak.html) 14 | */ 15 | export interface ValidVCloakRule { 16 | /** 17 | * Enforce valid `v-cloak` directives. 18 | * 19 | * @see [valid-v-cloak](https://eslint.vuejs.org/rules/valid-v-cloak.html) 20 | */ 21 | 'vue/valid-v-cloak': ValidVCloakRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/vue/valid-v-model.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Enforce valid `v-model` directives. 5 | * 6 | * @see [valid-v-model](https://eslint.vuejs.org/rules/valid-v-model.html) 7 | */ 8 | export type ValidVModelRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Enforce valid `v-model` directives. 12 | * 13 | * @see [valid-v-model](https://eslint.vuejs.org/rules/valid-v-model.html) 14 | */ 15 | export interface ValidVModelRule { 16 | /** 17 | * Enforce valid `v-model` directives. 18 | * 19 | * @see [valid-v-model](https://eslint.vuejs.org/rules/valid-v-model.html) 20 | */ 21 | 'vue/valid-v-model': ValidVModelRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/eslint/no-alert.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow the use of `alert`, `confirm`, and `prompt`. 5 | * 6 | * @see [no-alert](https://eslint.org/docs/latest/rules/no-alert) 7 | */ 8 | export type NoAlertRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow the use of `alert`, `confirm`, and `prompt`. 12 | * 13 | * @see [no-alert](https://eslint.org/docs/latest/rules/no-alert) 14 | */ 15 | export interface NoAlertRule { 16 | /** 17 | * Disallow the use of `alert`, `confirm`, and `prompt`. 18 | * 19 | * @see [no-alert](https://eslint.org/docs/latest/rules/no-alert) 20 | */ 21 | 'no-alert': NoAlertRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/eslint/no-lone-blocks.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow unnecessary nested blocks. 5 | * 6 | * @see [no-lone-blocks](https://eslint.org/docs/latest/rules/no-lone-blocks) 7 | */ 8 | export type NoLoneBlocksRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow unnecessary nested blocks. 12 | * 13 | * @see [no-lone-blocks](https://eslint.org/docs/latest/rules/no-lone-blocks) 14 | */ 15 | export interface NoLoneBlocksRule { 16 | /** 17 | * Disallow unnecessary nested blocks. 18 | * 19 | * @see [no-lone-blocks](https://eslint.org/docs/latest/rules/no-lone-blocks) 20 | */ 21 | 'no-lone-blocks': NoLoneBlocksRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/eslint/no-new.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow `new` operators outside of assignments or comparisons. 5 | * 6 | * @see [no-new](https://eslint.org/docs/latest/rules/no-new) 7 | */ 8 | export type NoNewRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow `new` operators outside of assignments or comparisons. 12 | * 13 | * @see [no-new](https://eslint.org/docs/latest/rules/no-new) 14 | */ 15 | export interface NoNewRule { 16 | /** 17 | * Disallow `new` operators outside of assignments or comparisons. 18 | * 19 | * @see [no-new](https://eslint.org/docs/latest/rules/no-new) 20 | */ 21 | 'no-new': NoNewRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/jsonc/no-octal.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow legacy octal literals. 5 | * 6 | * @see [no-octal](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-octal.html) 7 | */ 8 | export type NoOctalRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow legacy octal literals. 12 | * 13 | * @see [no-octal](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-octal.html) 14 | */ 15 | export interface NoOctalRule { 16 | /** 17 | * Disallow legacy octal literals. 18 | * 19 | * @see [no-octal](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-octal.html) 20 | */ 21 | 'jsonc/no-octal': NoOctalRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/vue/no-root-v-if.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow `v-if` directives on root element. 5 | * 6 | * @see [no-root-v-if](https://eslint.vuejs.org/rules/no-root-v-if.html) 7 | */ 8 | export type NoRootVIfRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow `v-if` directives on root element. 12 | * 13 | * @see [no-root-v-if](https://eslint.vuejs.org/rules/no-root-v-if.html) 14 | */ 15 | export interface NoRootVIfRule { 16 | /** 17 | * Disallow `v-if` directives on root element. 18 | * 19 | * @see [no-root-v-if](https://eslint.vuejs.org/rules/no-root-v-if.html) 20 | */ 21 | 'vue/no-root-v-if': NoRootVIfRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/eslint/no-dupe-keys.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow duplicate keys in object literals. 5 | * 6 | * @see [no-dupe-keys](https://eslint.org/docs/latest/rules/no-dupe-keys) 7 | */ 8 | export type NoDupeKeysRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow duplicate keys in object literals. 12 | * 13 | * @see [no-dupe-keys](https://eslint.org/docs/latest/rules/no-dupe-keys) 14 | */ 15 | export interface NoDupeKeysRule { 16 | /** 17 | * Disallow duplicate keys in object literals. 18 | * 19 | * @see [no-dupe-keys](https://eslint.org/docs/latest/rules/no-dupe-keys) 20 | */ 21 | 'no-dupe-keys': NoDupeKeysRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/eslint/no-extra-bind.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow unnecessary calls to `.bind()`. 5 | * 6 | * @see [no-extra-bind](https://eslint.org/docs/latest/rules/no-extra-bind) 7 | */ 8 | export type NoExtraBindRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow unnecessary calls to `.bind()`. 12 | * 13 | * @see [no-extra-bind](https://eslint.org/docs/latest/rules/no-extra-bind) 14 | */ 15 | export interface NoExtraBindRule { 16 | /** 17 | * Disallow unnecessary calls to `.bind()`. 18 | * 19 | * @see [no-extra-bind](https://eslint.org/docs/latest/rules/no-extra-bind) 20 | */ 21 | 'no-extra-bind': NoExtraBindRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/jsonc/no-plus-sign.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow plus sign. 5 | * 6 | * @see [no-plus-sign](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-plus-sign.html) 7 | */ 8 | export type NoPlusSignRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow plus sign. 12 | * 13 | * @see [no-plus-sign](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-plus-sign.html) 14 | */ 15 | export interface NoPlusSignRule { 16 | /** 17 | * Disallow plus sign. 18 | * 19 | * @see [no-plus-sign](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-plus-sign.html) 20 | */ 21 | 'jsonc/no-plus-sign': NoPlusSignRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/typescript-eslint/no-extra-semi.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow unnecessary semicolons. 5 | * 6 | * @see [no-extra-semi](https://typescript-eslint.io/rules/no-extra-semi) 7 | */ 8 | export type NoExtraSemiRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow unnecessary semicolons. 12 | * 13 | * @see [no-extra-semi](https://typescript-eslint.io/rules/no-extra-semi) 14 | */ 15 | export interface NoExtraSemiRule { 16 | /** 17 | * Disallow unnecessary semicolons. 18 | * 19 | * @see [no-extra-semi](https://typescript-eslint.io/rules/no-extra-semi) 20 | */ 21 | '@typescript-eslint/no-extra-semi': NoExtraSemiRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/eslint/no-iterator.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow the use of the `__iterator__` property. 5 | * 6 | * @see [no-iterator](https://eslint.org/docs/latest/rules/no-iterator) 7 | */ 8 | export type NoIteratorRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow the use of the `__iterator__` property. 12 | * 13 | * @see [no-iterator](https://eslint.org/docs/latest/rules/no-iterator) 14 | */ 15 | export interface NoIteratorRule { 16 | /** 17 | * Disallow the use of the `__iterator__` property. 18 | * 19 | * @see [no-iterator](https://eslint.org/docs/latest/rules/no-iterator) 20 | */ 21 | 'no-iterator': NoIteratorRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/promise/no-new-statics.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * 5 | * @see [no-new-statics](https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/no-new-statics.md) 6 | */ 7 | export type NoNewStaticsRuleConfig = RuleConfig<[]>; 8 | 9 | /** 10 | * 11 | * @see [no-new-statics](https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/no-new-statics.md) 12 | */ 13 | export interface NoNewStaticsRule { 14 | /** 15 | * 16 | * @see [no-new-statics](https://github.com/eslint-community/eslint-plugin-promise/blob/main/docs/rules/no-new-statics.md) 17 | */ 18 | 'promise/no-new-statics': NoNewStaticsRuleConfig; 19 | } 20 | -------------------------------------------------------------------------------- /src/rules/eslint/no-await-in-loop.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow `await` inside of loops. 5 | * 6 | * @see [no-await-in-loop](https://eslint.org/docs/latest/rules/no-await-in-loop) 7 | */ 8 | export type NoAwaitInLoopRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow `await` inside of loops. 12 | * 13 | * @see [no-await-in-loop](https://eslint.org/docs/latest/rules/no-await-in-loop) 14 | */ 15 | export interface NoAwaitInLoopRule { 16 | /** 17 | * Disallow `await` inside of loops. 18 | * 19 | * @see [no-await-in-loop](https://eslint.org/docs/latest/rules/no-await-in-loop) 20 | */ 21 | 'no-await-in-loop': NoAwaitInLoopRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/eslint/no-class-assign.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow reassigning class members. 5 | * 6 | * @see [no-class-assign](https://eslint.org/docs/latest/rules/no-class-assign) 7 | */ 8 | export type NoClassAssignRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow reassigning class members. 12 | * 13 | * @see [no-class-assign](https://eslint.org/docs/latest/rules/no-class-assign) 14 | */ 15 | export interface NoClassAssignRule { 16 | /** 17 | * Disallow reassigning class members. 18 | * 19 | * @see [no-class-assign](https://eslint.org/docs/latest/rules/no-class-assign) 20 | */ 21 | 'no-class-assign': NoClassAssignRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/vue/valid-v-else-if.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Enforce valid `v-else-if` directives. 5 | * 6 | * @see [valid-v-else-if](https://eslint.vuejs.org/rules/valid-v-else-if.html) 7 | */ 8 | export type ValidVElseIfRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Enforce valid `v-else-if` directives. 12 | * 13 | * @see [valid-v-else-if](https://eslint.vuejs.org/rules/valid-v-else-if.html) 14 | */ 15 | export interface ValidVElseIfRule { 16 | /** 17 | * Enforce valid `v-else-if` directives. 18 | * 19 | * @see [valid-v-else-if](https://eslint.vuejs.org/rules/valid-v-else-if.html) 20 | */ 21 | 'vue/valid-v-else-if': ValidVElseIfRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/eslint/no-new-func.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow `new` operators with the `Function` object. 5 | * 6 | * @see [no-new-func](https://eslint.org/docs/latest/rules/no-new-func) 7 | */ 8 | export type NoNewFuncRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow `new` operators with the `Function` object. 12 | * 13 | * @see [no-new-func](https://eslint.org/docs/latest/rules/no-new-func) 14 | */ 15 | export interface NoNewFuncRule { 16 | /** 17 | * Disallow `new` operators with the `Function` object. 18 | * 19 | * @see [no-new-func](https://eslint.org/docs/latest/rules/no-new-func) 20 | */ 21 | 'no-new-func': NoNewFuncRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/react/no-typos.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow common typos. 5 | * 6 | * @see [no-typos](https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-typos.md) 7 | */ 8 | export type NoTyposRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow common typos. 12 | * 13 | * @see [no-typos](https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-typos.md) 14 | */ 15 | export interface NoTyposRule { 16 | /** 17 | * Disallow common typos. 18 | * 19 | * @see [no-typos](https://github.com/jsx-eslint/eslint-plugin-react/tree/master/docs/rules/no-typos.md) 20 | */ 21 | 'react/no-typos': NoTyposRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/yml/no-empty-key.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow empty mapping keys. 5 | * 6 | * @see [no-empty-key](https://ota-meshi.github.io/eslint-plugin-yml/rules/no-empty-key.html) 7 | */ 8 | export type NoEmptyKeyRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow empty mapping keys. 12 | * 13 | * @see [no-empty-key](https://ota-meshi.github.io/eslint-plugin-yml/rules/no-empty-key.html) 14 | */ 15 | export interface NoEmptyKeyRule { 16 | /** 17 | * Disallow empty mapping keys. 18 | * 19 | * @see [no-empty-key](https://ota-meshi.github.io/eslint-plugin-yml/rules/no-empty-key.html) 20 | */ 21 | 'yml/no-empty-key': NoEmptyKeyRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/eslint/no-const-assign.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow reassigning `const` variables. 5 | * 6 | * @see [no-const-assign](https://eslint.org/docs/latest/rules/no-const-assign) 7 | */ 8 | export type NoConstAssignRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow reassigning `const` variables. 12 | * 13 | * @see [no-const-assign](https://eslint.org/docs/latest/rules/no-const-assign) 14 | */ 15 | export interface NoConstAssignRule { 16 | /** 17 | * Disallow reassigning `const` variables. 18 | * 19 | * @see [no-const-assign](https://eslint.org/docs/latest/rules/no-const-assign) 20 | */ 21 | 'no-const-assign': NoConstAssignRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/eslint/no-duplicate-case.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow duplicate case labels. 5 | * 6 | * @see [no-duplicate-case](https://eslint.org/docs/latest/rules/no-duplicate-case) 7 | */ 8 | export type NoDuplicateCaseRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow duplicate case labels. 12 | * 13 | * @see [no-duplicate-case](https://eslint.org/docs/latest/rules/no-duplicate-case) 14 | */ 15 | export interface NoDuplicateCaseRule { 16 | /** 17 | * Disallow duplicate case labels. 18 | * 19 | * @see [no-duplicate-case](https://eslint.org/docs/latest/rules/no-duplicate-case) 20 | */ 21 | 'no-duplicate-case': NoDuplicateCaseRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/eslint/no-label-var.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow labels that share a name with a variable. 5 | * 6 | * @see [no-label-var](https://eslint.org/docs/latest/rules/no-label-var) 7 | */ 8 | export type NoLabelVarRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow labels that share a name with a variable. 12 | * 13 | * @see [no-label-var](https://eslint.org/docs/latest/rules/no-label-var) 14 | */ 15 | export interface NoLabelVarRule { 16 | /** 17 | * Disallow labels that share a name with a variable. 18 | * 19 | * @see [no-label-var](https://eslint.org/docs/latest/rules/no-label-var) 20 | */ 21 | 'no-label-var': NoLabelVarRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/eslint/no-undef-init.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow initializing variables to `undefined`. 5 | * 6 | * @see [no-undef-init](https://eslint.org/docs/latest/rules/no-undef-init) 7 | */ 8 | export type NoUndefInitRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow initializing variables to `undefined`. 12 | * 13 | * @see [no-undef-init](https://eslint.org/docs/latest/rules/no-undef-init) 14 | */ 15 | export interface NoUndefInitRule { 16 | /** 17 | * Disallow initializing variables to `undefined`. 18 | * 19 | * @see [no-undef-init](https://eslint.org/docs/latest/rules/no-undef-init) 20 | */ 21 | 'no-undef-init': NoUndefInitRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/eslint/no-undefined.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow the use of `undefined` as an identifier. 5 | * 6 | * @see [no-undefined](https://eslint.org/docs/latest/rules/no-undefined) 7 | */ 8 | export type NoUndefinedRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow the use of `undefined` as an identifier. 12 | * 13 | * @see [no-undefined](https://eslint.org/docs/latest/rules/no-undefined) 14 | */ 15 | export interface NoUndefinedRule { 16 | /** 17 | * Disallow the use of `undefined` as an identifier. 18 | * 19 | * @see [no-undefined](https://eslint.org/docs/latest/rules/no-undefined) 20 | */ 21 | 'no-undefined': NoUndefinedRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/jsonc/no-multi-str.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow multiline strings. 5 | * 6 | * @see [no-multi-str](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-multi-str.html) 7 | */ 8 | export type NoMultiStrRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow multiline strings. 12 | * 13 | * @see [no-multi-str](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-multi-str.html) 14 | */ 15 | export interface NoMultiStrRule { 16 | /** 17 | * Disallow multiline strings. 18 | * 19 | * @see [no-multi-str](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-multi-str.html) 20 | */ 21 | 'jsonc/no-multi-str': NoMultiStrRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/vue/use-v-on-exact.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Enforce usage of `exact` modifier on `v-on`. 5 | * 6 | * @see [use-v-on-exact](https://eslint.vuejs.org/rules/use-v-on-exact.html) 7 | */ 8 | export type UseVOnExactRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Enforce usage of `exact` modifier on `v-on`. 12 | * 13 | * @see [use-v-on-exact](https://eslint.vuejs.org/rules/use-v-on-exact.html) 14 | */ 15 | export interface UseVOnExactRule { 16 | /** 17 | * Enforce usage of `exact` modifier on `v-on`. 18 | * 19 | * @see [use-v-on-exact](https://eslint.vuejs.org/rules/use-v-on-exact.html) 20 | */ 21 | 'vue/use-v-on-exact': UseVOnExactRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/vue/valid-next-tick.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Enforce valid `nextTick` function calls. 5 | * 6 | * @see [valid-next-tick](https://eslint.vuejs.org/rules/valid-next-tick.html) 7 | */ 8 | export type ValidNextTickRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Enforce valid `nextTick` function calls. 12 | * 13 | * @see [valid-next-tick](https://eslint.vuejs.org/rules/valid-next-tick.html) 14 | */ 15 | export interface ValidNextTickRule { 16 | /** 17 | * Enforce valid `nextTick` function calls. 18 | * 19 | * @see [valid-next-tick](https://eslint.vuejs.org/rules/valid-next-tick.html) 20 | */ 21 | 'vue/valid-next-tick': ValidNextTickRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/eslint/guard-for-in.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Require `for-in` loops to include an `if` statement. 5 | * 6 | * @see [guard-for-in](https://eslint.org/docs/latest/rules/guard-for-in) 7 | */ 8 | export type GuardForInRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Require `for-in` loops to include an `if` statement. 12 | * 13 | * @see [guard-for-in](https://eslint.org/docs/latest/rules/guard-for-in) 14 | */ 15 | export interface GuardForInRule { 16 | /** 17 | * Require `for-in` loops to include an `if` statement. 18 | * 19 | * @see [guard-for-in](https://eslint.org/docs/latest/rules/guard-for-in) 20 | */ 21 | 'guard-for-in': GuardForInRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/eslint/no-caller.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow the use of `arguments.caller` or `arguments.callee`. 5 | * 6 | * @see [no-caller](https://eslint.org/docs/latest/rules/no-caller) 7 | */ 8 | export type NoCallerRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow the use of `arguments.caller` or `arguments.callee`. 12 | * 13 | * @see [no-caller](https://eslint.org/docs/latest/rules/no-caller) 14 | */ 15 | export interface NoCallerRule { 16 | /** 17 | * Disallow the use of `arguments.caller` or `arguments.callee`. 18 | * 19 | * @see [no-caller](https://eslint.org/docs/latest/rules/no-caller) 20 | */ 21 | 'no-caller': NoCallerRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/eslint/no-ex-assign.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow reassigning exceptions in `catch` clauses. 5 | * 6 | * @see [no-ex-assign](https://eslint.org/docs/latest/rules/no-ex-assign) 7 | */ 8 | export type NoExAssignRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow reassigning exceptions in `catch` clauses. 12 | * 13 | * @see [no-ex-assign](https://eslint.org/docs/latest/rules/no-ex-assign) 14 | */ 15 | export interface NoExAssignRule { 16 | /** 17 | * Disallow reassigning exceptions in `catch` clauses. 18 | * 19 | * @see [no-ex-assign](https://eslint.org/docs/latest/rules/no-ex-assign) 20 | */ 21 | 'no-ex-assign': NoExAssignRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/eslint/no-func-assign.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow reassigning `function` declarations. 5 | * 6 | * @see [no-func-assign](https://eslint.org/docs/latest/rules/no-func-assign) 7 | */ 8 | export type NoFuncAssignRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow reassigning `function` declarations. 12 | * 13 | * @see [no-func-assign](https://eslint.org/docs/latest/rules/no-func-assign) 14 | */ 15 | export interface NoFuncAssignRule { 16 | /** 17 | * Disallow reassigning `function` declarations. 18 | * 19 | * @see [no-func-assign](https://eslint.org/docs/latest/rules/no-func-assign) 20 | */ 21 | 'no-func-assign': NoFuncAssignRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/eslint/no-useless-catch.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow unnecessary `catch` clauses. 5 | * 6 | * @see [no-useless-catch](https://eslint.org/docs/latest/rules/no-useless-catch) 7 | */ 8 | export type NoUselessCatchRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Disallow unnecessary `catch` clauses. 12 | * 13 | * @see [no-useless-catch](https://eslint.org/docs/latest/rules/no-useless-catch) 14 | */ 15 | export interface NoUselessCatchRule { 16 | /** 17 | * Disallow unnecessary `catch` clauses. 18 | * 19 | * @see [no-useless-catch](https://eslint.org/docs/latest/rules/no-useless-catch) 20 | */ 21 | 'no-useless-catch': NoUselessCatchRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/eslint/prefer-spread.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Require spread operators instead of `.apply()`. 5 | * 6 | * @see [prefer-spread](https://eslint.org/docs/latest/rules/prefer-spread) 7 | */ 8 | export type PreferSpreadRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Require spread operators instead of `.apply()`. 12 | * 13 | * @see [prefer-spread](https://eslint.org/docs/latest/rules/prefer-spread) 14 | */ 15 | export interface PreferSpreadRule { 16 | /** 17 | * Require spread operators instead of `.apply()`. 18 | * 19 | * @see [prefer-spread](https://eslint.org/docs/latest/rules/prefer-spread) 20 | */ 21 | 'prefer-spread': PreferSpreadRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/eslint/require-yield.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Require generator functions to contain `yield`. 5 | * 6 | * @see [require-yield](https://eslint.org/docs/latest/rules/require-yield) 7 | */ 8 | export type RequireYieldRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Require generator functions to contain `yield`. 12 | * 13 | * @see [require-yield](https://eslint.org/docs/latest/rules/require-yield) 14 | */ 15 | export interface RequireYieldRule { 16 | /** 17 | * Require generator functions to contain `yield`. 18 | * 19 | * @see [require-yield](https://eslint.org/docs/latest/rules/require-yield) 20 | */ 21 | 'require-yield': RequireYieldRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/eslint/symbol-description.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Require symbol descriptions. 5 | * 6 | * @see [symbol-description](https://eslint.org/docs/latest/rules/symbol-description) 7 | */ 8 | export type SymbolDescriptionRuleConfig = RuleConfig<[]>; 9 | 10 | /** 11 | * Require symbol descriptions. 12 | * 13 | * @see [symbol-description](https://eslint.org/docs/latest/rules/symbol-description) 14 | */ 15 | export interface SymbolDescriptionRule { 16 | /** 17 | * Require symbol descriptions. 18 | * 19 | * @see [symbol-description](https://eslint.org/docs/latest/rules/symbol-description) 20 | */ 21 | 'symbol-description': SymbolDescriptionRuleConfig; 22 | } 23 | -------------------------------------------------------------------------------- /src/rules/vue/no-template-key.d.ts: -------------------------------------------------------------------------------- 1 | import type { RuleConfig } from '../rule-config'; 2 | 3 | /** 4 | * Disallow `key` attribute on `