import { FlatConfigComposer, ResolvableFlatConfig } from "eslint-flat-config-utils"; import { Linter } from "eslint"; import { FlatGitignoreOptions } from "eslint-config-flat-gitignore"; //#region src/types/awaitable.d.ts type Awaitable = Promise | T; //#endregion //#region src/types/nested-partial.d.ts type RecursivePartial = { [P in keyof T]?: RecursivePartial; }; //#endregion //#region src/typegen.d.ts interface RuleOptions { /** * Enforce getter and setter pairs in objects and classes * @see https://eslint.org/docs/latest/rules/accessor-pairs */ 'accessor-pairs'?: Linter.RuleEntry; /** * Enforce linebreaks after opening and before closing array brackets * @see https://eslint.org/docs/latest/rules/array-bracket-newline * @deprecated */ 'array-bracket-newline'?: Linter.RuleEntry; /** * Enforce consistent spacing inside array brackets * @see https://eslint.org/docs/latest/rules/array-bracket-spacing * @deprecated */ 'array-bracket-spacing'?: Linter.RuleEntry; /** * Enforce `return` statements in callbacks of array methods * @see https://eslint.org/docs/latest/rules/array-callback-return */ 'array-callback-return'?: Linter.RuleEntry; /** * Enforce line breaks after each array element * @see https://eslint.org/docs/latest/rules/array-element-newline * @deprecated */ 'array-element-newline'?: Linter.RuleEntry; /** * Require braces around arrow function bodies * @see https://eslint.org/docs/latest/rules/arrow-body-style */ 'arrow-body-style'?: Linter.RuleEntry; /** * Require parentheses around arrow function arguments * @see https://eslint.org/docs/latest/rules/arrow-parens * @deprecated */ 'arrow-parens'?: Linter.RuleEntry; /** * Enforce consistent spacing before and after the arrow in arrow functions * @see https://eslint.org/docs/latest/rules/arrow-spacing * @deprecated */ 'arrow-spacing'?: Linter.RuleEntry; /** * apply `jsx-a11y/alt-text` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/alt-text/ */ 'astro/jsx-a11y/alt-text'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/anchor-ambiguous-text` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/anchor-ambiguous-text/ */ 'astro/jsx-a11y/anchor-ambiguous-text'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/anchor-has-content` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/anchor-has-content/ */ 'astro/jsx-a11y/anchor-has-content'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/anchor-is-valid` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/anchor-is-valid/ */ 'astro/jsx-a11y/anchor-is-valid'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/aria-activedescendant-has-tabindex` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/aria-activedescendant-has-tabindex/ */ 'astro/jsx-a11y/aria-activedescendant-has-tabindex'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/aria-props` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/aria-props/ */ 'astro/jsx-a11y/aria-props'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/aria-proptypes` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/aria-proptypes/ */ 'astro/jsx-a11y/aria-proptypes'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/aria-role` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/aria-role/ */ 'astro/jsx-a11y/aria-role'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/aria-unsupported-elements` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/aria-unsupported-elements/ */ 'astro/jsx-a11y/aria-unsupported-elements'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/autocomplete-valid` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/autocomplete-valid/ */ 'astro/jsx-a11y/autocomplete-valid'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/click-events-have-key-events` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/click-events-have-key-events/ */ 'astro/jsx-a11y/click-events-have-key-events'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/control-has-associated-label` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/control-has-associated-label/ */ 'astro/jsx-a11y/control-has-associated-label'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/heading-has-content` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/heading-has-content/ */ 'astro/jsx-a11y/heading-has-content'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/html-has-lang` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/html-has-lang/ */ 'astro/jsx-a11y/html-has-lang'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/iframe-has-title` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/iframe-has-title/ */ 'astro/jsx-a11y/iframe-has-title'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/img-redundant-alt` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/img-redundant-alt/ */ 'astro/jsx-a11y/img-redundant-alt'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/interactive-supports-focus` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/interactive-supports-focus/ */ 'astro/jsx-a11y/interactive-supports-focus'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/label-has-associated-control` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/label-has-associated-control/ */ 'astro/jsx-a11y/label-has-associated-control'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/lang` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/lang/ */ 'astro/jsx-a11y/lang'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/media-has-caption` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/media-has-caption/ */ 'astro/jsx-a11y/media-has-caption'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/mouse-events-have-key-events` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/mouse-events-have-key-events/ */ 'astro/jsx-a11y/mouse-events-have-key-events'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/no-access-key` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-access-key/ */ 'astro/jsx-a11y/no-access-key'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/no-aria-hidden-on-focusable` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-aria-hidden-on-focusable/ */ 'astro/jsx-a11y/no-aria-hidden-on-focusable'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/no-autofocus` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-autofocus/ */ 'astro/jsx-a11y/no-autofocus'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/no-distracting-elements` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-distracting-elements/ */ 'astro/jsx-a11y/no-distracting-elements'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/no-interactive-element-to-noninteractive-role` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-interactive-element-to-noninteractive-role/ */ 'astro/jsx-a11y/no-interactive-element-to-noninteractive-role'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/no-noninteractive-element-interactions` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-noninteractive-element-interactions/ */ 'astro/jsx-a11y/no-noninteractive-element-interactions'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/no-noninteractive-element-to-interactive-role` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-noninteractive-element-to-interactive-role/ */ 'astro/jsx-a11y/no-noninteractive-element-to-interactive-role'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/no-noninteractive-tabindex` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-noninteractive-tabindex/ */ 'astro/jsx-a11y/no-noninteractive-tabindex'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/no-redundant-roles` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-redundant-roles/ */ 'astro/jsx-a11y/no-redundant-roles'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/no-static-element-interactions` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/no-static-element-interactions/ */ 'astro/jsx-a11y/no-static-element-interactions'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/prefer-tag-over-role` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/prefer-tag-over-role/ */ 'astro/jsx-a11y/prefer-tag-over-role'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/role-has-required-aria-props` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/role-has-required-aria-props/ */ 'astro/jsx-a11y/role-has-required-aria-props'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/role-supports-aria-props` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/role-supports-aria-props/ */ 'astro/jsx-a11y/role-supports-aria-props'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/scope` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/scope/ */ 'astro/jsx-a11y/scope'?: Linter.RuleEntry<[]>; /** * apply `jsx-a11y/tabindex-no-positive` rule to Astro components * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/jsx-a11y/tabindex-no-positive/ */ 'astro/jsx-a11y/tabindex-no-positive'?: Linter.RuleEntry<[]>; /** * the client:only directive is missing the correct component's framework value * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/missing-client-only-directive-value/ */ 'astro/missing-client-only-directive-value'?: Linter.RuleEntry<[]>; /** * disallow conflicting set directives and child contents * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-conflict-set-directives/ */ 'astro/no-conflict-set-directives'?: Linter.RuleEntry<[]>; /** * disallow using deprecated `Astro.canonicalURL` * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-deprecated-astro-canonicalurl/ */ 'astro/no-deprecated-astro-canonicalurl'?: Linter.RuleEntry<[]>; /** * disallow using deprecated `Astro.fetchContent()` * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-deprecated-astro-fetchcontent/ */ 'astro/no-deprecated-astro-fetchcontent'?: Linter.RuleEntry<[]>; /** * disallow using deprecated `Astro.resolve()` * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-deprecated-astro-resolve/ */ 'astro/no-deprecated-astro-resolve'?: Linter.RuleEntry<[]>; /** * disallow using deprecated `getEntryBySlug()` * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-deprecated-getentrybyslug/ */ 'astro/no-deprecated-getentrybyslug'?: Linter.RuleEntry<[]>; /** * disallow value export * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-exports-from-components/ */ 'astro/no-exports-from-components'?: Linter.RuleEntry<[]>; /** * disallow omitted end tags * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-omitted-end-tags/ * @deprecated */ 'astro/no-omitted-end-tags'?: Linter.RuleEntry<[]>; /** * disallow `prerender` export outside of pages/ directory * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-prerender-export-outside-pages/ */ 'astro/no-prerender-export-outside-pages'?: Linter.RuleEntry<[]>; /** * disallow use of `set:html` to prevent XSS attack * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-set-html-directive/ */ 'astro/no-set-html-directive'?: Linter.RuleEntry<[]>; /** * disallow use of `set:text` * @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-set-text-directive/ */ 'astro/no-set-text-directive'?: Linter.RuleEntry<[]>; /** * disallow inline `