@favorodera/eslint-config 0.1.4 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -6
- package/dist/index.d.mts +287 -182
- package/dist/index.mjs +446 -364
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<p>
|
|
5
5
|
<a href="https://github.com/favorodera/eslint-config/blob/main/LICENSE"><img src="https://img.shields.io/github/license/favorodera/eslint-config.svg?style=plastic&label=License&color=blue" alt="License"></a>
|
|
6
6
|
<a href="https://github.com/favorodera/eslint-config/stargazers"><img src="https://img.shields.io/github/stars/favorodera/eslint-config.svg?style=plastic&label=Stars&color=blue" alt="GitHub Stars"></a>
|
|
7
|
-
<a href="https://npmx.dev/package/@favorodera/eslint-config"><img src="https://img.shields.io/npm/
|
|
7
|
+
<a href="https://npmx.dev/package/@favorodera/eslint-config"><img src="https://img.shields.io/npm/dt/@favorodera/eslint-config.svg?style=plastic&label=NPM%20Downloads&color=blue" alt="NPM Downloads"></a>
|
|
8
8
|
<a href="https://npmx.dev/package/@favorodera/eslint-config"><img src="https://img.shields.io/npm/v/@favorodera/eslint-config.svg?style=plastic&label=Version&color=blue" alt="NPM Version"></a>
|
|
9
9
|
</p>
|
|
10
10
|
</div>
|
|
@@ -30,7 +30,7 @@ The following configurations are bundled and enabled by default (they can be ind
|
|
|
30
30
|
|
|
31
31
|
- **JavaScript** — Core ESLint rules (`@eslint/js`)
|
|
32
32
|
- **TypeScript** — Type-aware linting (`typescript-eslint`)
|
|
33
|
-
- **Vue** — Single-file component support (`eslint-plugin-vue`, `vue-eslint-parser`)
|
|
33
|
+
- **Vue** — Single-file component support and accessibility linting (`eslint-plugin-vue`, `vue-eslint-parser`, `eslint-plugin-vuejs-accessibility`)
|
|
34
34
|
- **Stylistic** — Formatting rules (`@stylistic/eslint-plugin`)
|
|
35
35
|
- **Tailwind CSS** — Utility class linting and sorting (`eslint-plugin-better-tailwindcss`)
|
|
36
36
|
- **Test** — Test and Vitest specific linting (`@vitest/eslint-plugin`)
|
|
@@ -94,10 +94,8 @@ export default factory({
|
|
|
94
94
|
|
|
95
95
|
// Example: Customize specific rulesets
|
|
96
96
|
stylistic: {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
quotes: 'double',
|
|
100
|
-
},
|
|
97
|
+
indent: 4,
|
|
98
|
+
quotes: 'double',
|
|
101
99
|
},
|
|
102
100
|
|
|
103
101
|
// Example: Disable tailwind if you aren't using it
|
package/dist/index.d.mts
CHANGED
|
@@ -5220,6 +5220,99 @@ interface RuleOptions {
|
|
|
5220
5220
|
* @see https://eslint.org/docs/latest/rules/vars-on-top
|
|
5221
5221
|
*/
|
|
5222
5222
|
'vars-on-top'?: Linter.RuleEntry<[]>;
|
|
5223
|
+
/**
|
|
5224
|
+
* @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/alt-text.html
|
|
5225
|
+
*/
|
|
5226
|
+
'vue-a11y/alt-text'?: Linter.RuleEntry<VueA11YAltText>;
|
|
5227
|
+
/**
|
|
5228
|
+
* @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/anchor-has-content.html
|
|
5229
|
+
*/
|
|
5230
|
+
'vue-a11y/anchor-has-content'?: Linter.RuleEntry<VueA11YAnchorHasContent>;
|
|
5231
|
+
/**
|
|
5232
|
+
* @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/aria-props.html
|
|
5233
|
+
*/
|
|
5234
|
+
'vue-a11y/aria-props'?: Linter.RuleEntry<[]>;
|
|
5235
|
+
/**
|
|
5236
|
+
* @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/aria-role.html
|
|
5237
|
+
*/
|
|
5238
|
+
'vue-a11y/aria-role'?: Linter.RuleEntry<VueA11YAriaRole>;
|
|
5239
|
+
/**
|
|
5240
|
+
* @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/aria-unsupported-elements.html
|
|
5241
|
+
*/
|
|
5242
|
+
'vue-a11y/aria-unsupported-elements'?: Linter.RuleEntry<[]>;
|
|
5243
|
+
/**
|
|
5244
|
+
* @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/click-events-have-key-events.html
|
|
5245
|
+
*/
|
|
5246
|
+
'vue-a11y/click-events-have-key-events'?: Linter.RuleEntry<[]>;
|
|
5247
|
+
/**
|
|
5248
|
+
* @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/form-control-has-label.html
|
|
5249
|
+
*/
|
|
5250
|
+
'vue-a11y/form-control-has-label'?: Linter.RuleEntry<VueA11YFormControlHasLabel>;
|
|
5251
|
+
/**
|
|
5252
|
+
* @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/heading-has-content.html
|
|
5253
|
+
*/
|
|
5254
|
+
'vue-a11y/heading-has-content'?: Linter.RuleEntry<VueA11YHeadingHasContent>;
|
|
5255
|
+
/**
|
|
5256
|
+
* @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/iframe-has-title.html
|
|
5257
|
+
*/
|
|
5258
|
+
'vue-a11y/iframe-has-title'?: Linter.RuleEntry<[]>;
|
|
5259
|
+
/**
|
|
5260
|
+
* @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/interactive-supports-focus.html
|
|
5261
|
+
*/
|
|
5262
|
+
'vue-a11y/interactive-supports-focus'?: Linter.RuleEntry<VueA11YInteractiveSupportsFocus>;
|
|
5263
|
+
/**
|
|
5264
|
+
* @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/label-has-for.html
|
|
5265
|
+
*/
|
|
5266
|
+
'vue-a11y/label-has-for'?: Linter.RuleEntry<VueA11YLabelHasFor>;
|
|
5267
|
+
/**
|
|
5268
|
+
* @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/media-has-caption.html
|
|
5269
|
+
*/
|
|
5270
|
+
'vue-a11y/media-has-caption'?: Linter.RuleEntry<VueA11YMediaHasCaption>;
|
|
5271
|
+
/**
|
|
5272
|
+
* @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/mouse-events-have-key-events.html
|
|
5273
|
+
*/
|
|
5274
|
+
'vue-a11y/mouse-events-have-key-events'?: Linter.RuleEntry<[]>;
|
|
5275
|
+
/**
|
|
5276
|
+
* @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-access-key.html
|
|
5277
|
+
*/
|
|
5278
|
+
'vue-a11y/no-access-key'?: Linter.RuleEntry<[]>;
|
|
5279
|
+
/**
|
|
5280
|
+
* @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-aria-hidden-on-focusable.html
|
|
5281
|
+
*/
|
|
5282
|
+
'vue-a11y/no-aria-hidden-on-focusable'?: Linter.RuleEntry<[]>;
|
|
5283
|
+
/**
|
|
5284
|
+
* @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-autofocus.html
|
|
5285
|
+
*/
|
|
5286
|
+
'vue-a11y/no-autofocus'?: Linter.RuleEntry<VueA11YNoAutofocus>;
|
|
5287
|
+
/**
|
|
5288
|
+
* @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-distracting-elements.html
|
|
5289
|
+
*/
|
|
5290
|
+
'vue-a11y/no-distracting-elements'?: Linter.RuleEntry<VueA11YNoDistractingElements>;
|
|
5291
|
+
/**
|
|
5292
|
+
* @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-onchange.html
|
|
5293
|
+
* @deprecated
|
|
5294
|
+
*/
|
|
5295
|
+
'vue-a11y/no-onchange'?: Linter.RuleEntry<[]>;
|
|
5296
|
+
/**
|
|
5297
|
+
* @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-redundant-roles.html
|
|
5298
|
+
*/
|
|
5299
|
+
'vue-a11y/no-redundant-roles'?: Linter.RuleEntry<VueA11YNoRedundantRoles>;
|
|
5300
|
+
/**
|
|
5301
|
+
* @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-role-presentation-on-focusable.html
|
|
5302
|
+
*/
|
|
5303
|
+
'vue-a11y/no-role-presentation-on-focusable'?: Linter.RuleEntry<[]>;
|
|
5304
|
+
/**
|
|
5305
|
+
* @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-static-element-interactions.html
|
|
5306
|
+
*/
|
|
5307
|
+
'vue-a11y/no-static-element-interactions'?: Linter.RuleEntry<[]>;
|
|
5308
|
+
/**
|
|
5309
|
+
* @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/role-has-required-aria-props.html
|
|
5310
|
+
*/
|
|
5311
|
+
'vue-a11y/role-has-required-aria-props'?: Linter.RuleEntry<[]>;
|
|
5312
|
+
/**
|
|
5313
|
+
* @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/tabindex-no-positive.html
|
|
5314
|
+
*/
|
|
5315
|
+
'vue-a11y/tabindex-no-positive'?: Linter.RuleEntry<[]>;
|
|
5223
5316
|
/**
|
|
5224
5317
|
* Enforce linebreaks after opening and before closing array brackets in `<template>`
|
|
5225
5318
|
* @see https://eslint.vuejs.org/rules/array-bracket-newline.html
|
|
@@ -16797,6 +16890,66 @@ type UseIsnan = [] | [{
|
|
|
16797
16890
|
}]; // ----- valid-typeof -----
|
|
16798
16891
|
type ValidTypeof = [] | [{
|
|
16799
16892
|
requireStringLiterals?: boolean;
|
|
16893
|
+
}]; // ----- vue-a11y/alt-text -----
|
|
16894
|
+
type VueA11YAltText = [] | [{
|
|
16895
|
+
elements?: string[];
|
|
16896
|
+
img?: string[];
|
|
16897
|
+
object?: string[];
|
|
16898
|
+
area?: string[];
|
|
16899
|
+
"input[type=\"image\"]"?: string[];
|
|
16900
|
+
[k: string]: unknown | undefined;
|
|
16901
|
+
}]; // ----- vue-a11y/anchor-has-content -----
|
|
16902
|
+
type VueA11YAnchorHasContent = [] | [{
|
|
16903
|
+
components?: string[];
|
|
16904
|
+
accessibleChildren?: string[];
|
|
16905
|
+
accessibleDirectives?: string[];
|
|
16906
|
+
[k: string]: unknown | undefined;
|
|
16907
|
+
}]; // ----- vue-a11y/aria-role -----
|
|
16908
|
+
type VueA11YAriaRole = [] | [{
|
|
16909
|
+
ignoreNonDOM?: boolean;
|
|
16910
|
+
}]; // ----- vue-a11y/form-control-has-label -----
|
|
16911
|
+
type VueA11YFormControlHasLabel = [] | [{
|
|
16912
|
+
labelComponents?: string[];
|
|
16913
|
+
controlComponents?: string[];
|
|
16914
|
+
[k: string]: unknown | undefined;
|
|
16915
|
+
}]; // ----- vue-a11y/heading-has-content -----
|
|
16916
|
+
type VueA11YHeadingHasContent = [] | [{
|
|
16917
|
+
components?: string[];
|
|
16918
|
+
accessibleChildren?: string[];
|
|
16919
|
+
accessibleDirectives?: string[];
|
|
16920
|
+
[k: string]: unknown | undefined;
|
|
16921
|
+
}]; // ----- vue-a11y/interactive-supports-focus -----
|
|
16922
|
+
type VueA11YInteractiveSupportsFocus = [] | [{
|
|
16923
|
+
tabbable?: ("button" | "checkbox" | "columnheader" | "combobox" | "grid" | "gridcell" | "link" | "listbox" | "menu" | "menubar" | "menuitem" | "menuitemcheckbox" | "menuitemradio" | "option" | "progressbar" | "radio" | "radiogroup" | "row" | "rowheader" | "scrollbar" | "searchbox" | "slider" | "spinbutton" | "switch" | "tab" | "tablist" | "textbox" | "tree" | "treegrid" | "treeitem" | "doc-backlink" | "doc-biblioref" | "doc-glossref" | "doc-noteref")[];
|
|
16924
|
+
[k: string]: unknown | undefined;
|
|
16925
|
+
}]; // ----- vue-a11y/label-has-for -----
|
|
16926
|
+
type VueA11YLabelHasFor = [] | [{
|
|
16927
|
+
components?: string[];
|
|
16928
|
+
controlComponents?: string[];
|
|
16929
|
+
required?: (("nesting" | "id") | {
|
|
16930
|
+
some: ("nesting" | "id")[];
|
|
16931
|
+
[k: string]: unknown | undefined;
|
|
16932
|
+
} | {
|
|
16933
|
+
every: ("nesting" | "id")[];
|
|
16934
|
+
[k: string]: unknown | undefined;
|
|
16935
|
+
});
|
|
16936
|
+
allowChildren?: boolean;
|
|
16937
|
+
[k: string]: unknown | undefined;
|
|
16938
|
+
}]; // ----- vue-a11y/media-has-caption -----
|
|
16939
|
+
type VueA11YMediaHasCaption = [] | [{
|
|
16940
|
+
audio?: string[];
|
|
16941
|
+
track?: string[];
|
|
16942
|
+
video?: string[];
|
|
16943
|
+
[k: string]: unknown | undefined;
|
|
16944
|
+
}]; // ----- vue-a11y/no-autofocus -----
|
|
16945
|
+
type VueA11YNoAutofocus = [] | [{
|
|
16946
|
+
ignoreNonDOM?: boolean;
|
|
16947
|
+
}]; // ----- vue-a11y/no-distracting-elements -----
|
|
16948
|
+
type VueA11YNoDistractingElements = [] | [{
|
|
16949
|
+
[k: string]: unknown | undefined;
|
|
16950
|
+
}]; // ----- vue-a11y/no-redundant-roles -----
|
|
16951
|
+
type VueA11YNoRedundantRoles = [] | [{
|
|
16952
|
+
[k: string]: string[] | undefined;
|
|
16800
16953
|
}]; // ----- vue/array-bracket-newline -----
|
|
16801
16954
|
type VueArrayBracketNewline = [] | [(("always" | "never" | "consistent") | {
|
|
16802
16955
|
multiline?: boolean;
|
|
@@ -18125,18 +18278,11 @@ type Yoda = [] | [("always" | "never")] | [("always" | "never"), {
|
|
|
18125
18278
|
exceptRange?: boolean;
|
|
18126
18279
|
onlyEquality?: boolean;
|
|
18127
18280
|
}]; // Names of all the configs
|
|
18128
|
-
type ConfigNames = 'favorodera/ignores' | 'favorodera/imports/setup' | 'favorodera/imports/rules' | 'favorodera/javascript/setup' | 'favorodera/javascript/rules' | 'favorodera/jsdoc/setup' | 'favorodera/jsdoc/rules' | 'favorodera/jsonc/setup' | 'favorodera/jsonc/rules' | 'favorodera/jsonc/sort/package-json' | 'favorodera/jsonc/sort/tsconfig-json' | 'favorodera/jsonc/disables' | 'favorodera/markdown/setup' | 'favorodera/markdown/rules' | 'favorodera/markdown/code-in-md/disables' | 'favorodera/node/setup' | 'favorodera/node/rules' | 'favorodera/node/disables' | 'favorodera/perfectionist/setup' | 'favorodera/perfectionist/rules' | 'favorodera/pnpm/setup' | 'favorodera/pnpm/package-json' | 'favorodera/pnpm/pnpm-workspace-yaml' | 'favorodera/stylistic/setup' | 'favorodera/stylistic/rules' | 'favorodera/tailwind/setup' | 'favorodera/tailwind/rules' | 'favorodera/test/setup' | 'favorodera/test/rules' | 'favorodera/test/disables' | 'favorodera/typescript/setup' | 'favorodera/typescript/rules' | 'favorodera/unicorn/setup' | 'favorodera/unicorn/rules' | 'favorodera/unused-imports/setup' | 'favorodera/unused-imports/rules' | 'favorodera/unused-imports/disables' | 'favorodera/vue/setup' | 'favorodera/vue/rules' | 'favorodera/yaml/setup' | 'favorodera/yaml/rules' | 'favorodera/yaml/sort/pnpm-workspace-yaml';
|
|
18281
|
+
type ConfigNames = 'favorodera/ignores' | 'favorodera/imports/setup' | 'favorodera/imports/rules' | 'favorodera/javascript/setup' | 'favorodera/javascript/rules' | 'favorodera/jsdoc/recommended/setup' | 'favorodera/jsdoc/stylistic/setup' | 'favorodera/jsdoc/rules' | 'favorodera/jsonc/setup' | 'favorodera/jsonc/rules' | 'favorodera/jsonc/sort/package-json' | 'favorodera/jsonc/sort/tsconfig-json' | 'favorodera/jsonc/disables' | 'favorodera/markdown/setup' | 'favorodera/markdown/rules' | 'favorodera/markdown/code-in-md/disables' | 'favorodera/node/setup' | 'favorodera/node/rules' | 'favorodera/node/disables' | 'favorodera/perfectionist/setup' | 'favorodera/perfectionist/rules' | 'favorodera/pnpm/setup' | 'favorodera/pnpm/package-json' | 'favorodera/pnpm/pnpm-workspace-yaml' | 'favorodera/stylistic/setup' | 'favorodera/stylistic/rules' | 'favorodera/tailwind/recommended/setup' | 'favorodera/tailwind/stylistic/setup' | 'favorodera/tailwind/rules' | 'favorodera/test/setup' | 'favorodera/test/rules' | 'favorodera/test/disables' | 'favorodera/typescript/setup' | 'favorodera/typescript/rules' | 'favorodera/unicorn/setup' | 'favorodera/unicorn/rules' | 'favorodera/unused-imports/setup' | 'favorodera/unused-imports/rules' | 'favorodera/unused-imports/disables' | 'favorodera/vue/setup' | 'favorodera/vue/a11y/setup' | 'favorodera/vue/rules' | 'favorodera/vue/a11y/rules' | 'favorodera/yaml/setup' | 'favorodera/yaml/rules' | 'favorodera/yaml/sort/pnpm-workspace-yaml';
|
|
18129
18282
|
//#endregion
|
|
18130
18283
|
//#region src/types/utils.d.ts
|
|
18131
18284
|
/** ESLint rules configuration with type-safe autocompletion */
|
|
18132
18285
|
type Rules = Record<string, Linter.RuleEntry<any> | undefined> & RuleOptions;
|
|
18133
|
-
/** Shared configuration options for ESLint rules */
|
|
18134
|
-
interface SharedOptions {
|
|
18135
|
-
/** File glob patterns to apply configuration to */
|
|
18136
|
-
files?: Array<string>;
|
|
18137
|
-
/** Override rules configuration */
|
|
18138
|
-
overrides?: TypedFlatConfigItem['rules'];
|
|
18139
|
-
}
|
|
18140
18286
|
/**
|
|
18141
18287
|
* An updated version of ESLint's `Linter.Config`, which provides autocompletion
|
|
18142
18288
|
* for `rules` and relaxes type limitations for `plugins` and `rules`, because
|
|
@@ -18163,198 +18309,148 @@ type TypedFlatConfigItem = Omit<ConfigWithExtends, 'plugins' | 'rules'> & {
|
|
|
18163
18309
|
*/
|
|
18164
18310
|
type IgnoresPatterns = ((defaults: Array<string>) => Array<string>) | Array<string>;
|
|
18165
18311
|
//#endregion
|
|
18166
|
-
//#region src/configs/imports.d.ts
|
|
18167
|
-
/** Options for configuring imports linting rules. */
|
|
18168
|
-
type ImportsConfigOptions = SharedOptions;
|
|
18169
|
-
//#endregion
|
|
18170
|
-
//#region src/configs/javascript.d.ts
|
|
18171
|
-
/** Options for configuring JavaScript linting rules. */
|
|
18172
|
-
type JavascriptConfigOptions = SharedOptions;
|
|
18173
|
-
//#endregion
|
|
18174
|
-
//#region src/configs/jsdoc.d.ts
|
|
18175
|
-
/** Options for configuring JSDoc linting rules. */
|
|
18176
|
-
type JSDocConfigOptions = SharedOptions;
|
|
18177
|
-
//#endregion
|
|
18178
|
-
//#region src/configs/jsonc.d.ts
|
|
18179
|
-
/** Options for configuring JSON and JSONC linting rules. */
|
|
18180
|
-
type JSONCConfigOptions = SharedOptions;
|
|
18181
|
-
//#endregion
|
|
18182
18312
|
//#region src/configs/markdown.d.ts
|
|
18183
18313
|
/** Options for configuring Markdown linting rules. */
|
|
18184
|
-
|
|
18314
|
+
interface MarkdownConfigOptions {
|
|
18185
18315
|
/**
|
|
18186
18316
|
* Enable GitHub Flavored Markdown (GFM) support.
|
|
18187
18317
|
* When true, applies additional linting rules specific to GFM extensions
|
|
18188
18318
|
* like tables, task lists, and strikethrough.
|
|
18189
18319
|
*/
|
|
18190
18320
|
gfm?: boolean;
|
|
18191
|
-
}
|
|
18192
|
-
//#endregion
|
|
18193
|
-
//#region src/configs/node.d.ts
|
|
18194
|
-
/** Options for configuring Node.js linting rules. */
|
|
18195
|
-
type NodeConfigOptions = SharedOptions;
|
|
18321
|
+
}
|
|
18196
18322
|
//#endregion
|
|
18197
18323
|
//#region src/configs/perfectionist.d.ts
|
|
18198
|
-
/**
|
|
18199
|
-
|
|
18324
|
+
/**
|
|
18325
|
+
* Options for configuring Perfectionist linting rules.
|
|
18326
|
+
* @see https://perfectionist.dev/guide/getting-started#settings
|
|
18327
|
+
* @see https://perfectionist.dev/configs/recommended-custom
|
|
18328
|
+
*/
|
|
18329
|
+
interface PerfectionistConfigOptions {
|
|
18200
18330
|
/**
|
|
18201
|
-
*
|
|
18202
|
-
*
|
|
18203
|
-
* @see https://perfectionist.dev/guide/getting-started#settings
|
|
18204
|
-
* @see https://perfectionist.dev/configs/recommended-custom
|
|
18331
|
+
* The type of sorting algorithm.
|
|
18332
|
+
* @default 'natural'
|
|
18205
18333
|
*/
|
|
18206
|
-
|
|
18207
|
-
|
|
18208
|
-
|
|
18209
|
-
|
|
18210
|
-
|
|
18211
|
-
|
|
18212
|
-
|
|
18213
|
-
|
|
18214
|
-
|
|
18215
|
-
|
|
18334
|
+
type?: 'alphabetical' | 'custom' | 'line-length' | 'natural';
|
|
18335
|
+
/**
|
|
18336
|
+
* The order of sorting.
|
|
18337
|
+
* @default 'asc'
|
|
18338
|
+
*/
|
|
18339
|
+
order?: 'asc' | 'desc';
|
|
18340
|
+
/**
|
|
18341
|
+
* The fallback sorting type and order used when two elements are equal
|
|
18342
|
+
* under the primary comparison.
|
|
18343
|
+
*/
|
|
18344
|
+
fallbackSort?: {
|
|
18216
18345
|
order?: 'asc' | 'desc';
|
|
18217
|
-
|
|
18218
|
-
* The fallback sorting type and order used when two elements are equal
|
|
18219
|
-
* under the primary comparison.
|
|
18220
|
-
*/
|
|
18221
|
-
fallbackSort?: {
|
|
18222
|
-
order?: 'asc' | 'desc';
|
|
18223
|
-
type: 'alphabetical' | 'custom' | 'line-length' | 'natural';
|
|
18224
|
-
};
|
|
18225
|
-
/**
|
|
18226
|
-
* Custom alphabet string for the `'custom'` sort type.
|
|
18227
|
-
* Defines the exact character order to use.
|
|
18228
|
-
*/
|
|
18229
|
-
alphabet?: string;
|
|
18230
|
-
/**
|
|
18231
|
-
* Ignore case when sorting.
|
|
18232
|
-
* @default true
|
|
18233
|
-
*/
|
|
18234
|
-
ignoreCase?: boolean;
|
|
18235
|
-
/**
|
|
18236
|
-
* Control whether special characters should be kept, trimmed or removed
|
|
18237
|
-
* before sorting.
|
|
18238
|
-
* @default 'keep'
|
|
18239
|
-
*/
|
|
18240
|
-
specialCharacters?: 'keep' | 'remove' | 'trim';
|
|
18241
|
-
/**
|
|
18242
|
-
* Locale(s) used for locale-aware string comparison.
|
|
18243
|
-
* A BCP 47 language tag or an array of such tags.
|
|
18244
|
-
* @default 'en-US'
|
|
18245
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare#locales
|
|
18246
|
-
*/
|
|
18247
|
-
locales?: Array<string> | string;
|
|
18248
|
-
/**
|
|
18249
|
-
* Partition sorted elements by comments.
|
|
18250
|
-
* Can be `true`, `false`, a regexp pattern string, or an array of patterns.
|
|
18251
|
-
* @default true
|
|
18252
|
-
*/
|
|
18253
|
-
partitionByComment?: Array<string> | boolean | string;
|
|
18254
|
-
/**
|
|
18255
|
-
* Partition sorted elements by newlines.
|
|
18256
|
-
* @default true
|
|
18257
|
-
*/
|
|
18258
|
-
partitionByNewLine?: boolean;
|
|
18259
|
-
/**
|
|
18260
|
-
* Specifies how to handle newlines between groups.
|
|
18261
|
-
* `'ignore'` preserves existing newlines; a number enforces that many blank lines.
|
|
18262
|
-
* @default 'ignore'
|
|
18263
|
-
*/
|
|
18264
|
-
newlinesBetween?: 'ignore' | number;
|
|
18265
|
-
/**
|
|
18266
|
-
* Specifies how to handle newlines between elements of each group.
|
|
18267
|
-
* `'ignore'` preserves existing newlines; a number enforces that many blank lines.
|
|
18268
|
-
* @default 'ignore'
|
|
18269
|
-
*/
|
|
18270
|
-
newlinesInside?: 'ignore' | 'newlinesBetween' | number;
|
|
18346
|
+
type: 'alphabetical' | 'custom' | 'line-length' | 'natural';
|
|
18271
18347
|
};
|
|
18272
|
-
|
|
18348
|
+
/**
|
|
18349
|
+
* Custom alphabet string for the `'custom'` sort type.
|
|
18350
|
+
* Defines the exact character order to use.
|
|
18351
|
+
*/
|
|
18352
|
+
alphabet?: string;
|
|
18353
|
+
/**
|
|
18354
|
+
* Ignore case when sorting.
|
|
18355
|
+
* @default true
|
|
18356
|
+
*/
|
|
18357
|
+
ignoreCase?: boolean;
|
|
18358
|
+
/**
|
|
18359
|
+
* Control whether special characters should be kept, trimmed or removed
|
|
18360
|
+
* before sorting.
|
|
18361
|
+
* @default 'keep'
|
|
18362
|
+
*/
|
|
18363
|
+
specialCharacters?: 'keep' | 'remove' | 'trim';
|
|
18364
|
+
/**
|
|
18365
|
+
* Locale(s) used for locale-aware string comparison.
|
|
18366
|
+
* A BCP 47 language tag or an array of such tags.
|
|
18367
|
+
* @default 'en-US'
|
|
18368
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare#locales
|
|
18369
|
+
*/
|
|
18370
|
+
locales?: Array<string> | string;
|
|
18371
|
+
/**
|
|
18372
|
+
* Partition sorted elements by comments.
|
|
18373
|
+
* Can be `true`, `false`, a regexp pattern string, or an array of patterns.
|
|
18374
|
+
* @default true
|
|
18375
|
+
*/
|
|
18376
|
+
partitionByComment?: Array<string> | boolean | string;
|
|
18377
|
+
/**
|
|
18378
|
+
* Partition sorted elements by newlines.
|
|
18379
|
+
* @default true
|
|
18380
|
+
*/
|
|
18381
|
+
partitionByNewLine?: boolean;
|
|
18382
|
+
/**
|
|
18383
|
+
* Specifies how to handle newlines between groups.
|
|
18384
|
+
* `'ignore'` preserves existing newlines; a number enforces that many blank lines.
|
|
18385
|
+
* @default 'ignore'
|
|
18386
|
+
*/
|
|
18387
|
+
newlinesBetween?: 'ignore' | number;
|
|
18388
|
+
/**
|
|
18389
|
+
* Specifies how to handle newlines between elements of each group.
|
|
18390
|
+
* `'ignore'` preserves existing newlines; a number enforces that many blank lines.
|
|
18391
|
+
* @default 'ignore'
|
|
18392
|
+
*/
|
|
18393
|
+
newlinesInside?: 'ignore' | 'newlinesBetween' | number;
|
|
18394
|
+
}
|
|
18273
18395
|
//#endregion
|
|
18274
18396
|
//#region src/configs/stylistic.d.ts
|
|
18275
18397
|
/** Options for configuring Stylistic formatting rules. */
|
|
18276
|
-
type StylisticConfigOptions =
|
|
18277
|
-
settings?: Omit<StylisticCustomizeOptions, 'pluginName'>;
|
|
18278
|
-
};
|
|
18398
|
+
type StylisticConfigOptions = Omit<StylisticCustomizeOptions, 'pluginName'>;
|
|
18279
18399
|
//#endregion
|
|
18280
18400
|
//#region src/configs/tailwind.d.ts
|
|
18281
|
-
/**
|
|
18282
|
-
|
|
18401
|
+
/**
|
|
18402
|
+
* Options for configuring Tailwind CSS linting rules.
|
|
18403
|
+
* @see https://github.com/schoero/eslint-plugin-better-tailwindcss/blob/main/docs/settings/settings.md
|
|
18404
|
+
*/
|
|
18405
|
+
interface TailwindConfigOptions {
|
|
18283
18406
|
/**
|
|
18284
|
-
*
|
|
18285
|
-
*
|
|
18286
|
-
*
|
|
18407
|
+
* Working directory used to resolve Tailwind config files.
|
|
18408
|
+
* Useful for monorepos where linting runs from the root but each project has its own setup.
|
|
18409
|
+
* Relative to the ESLint process's cwd; defaults to that cwd if not specified.
|
|
18287
18410
|
*/
|
|
18288
|
-
|
|
18289
|
-
|
|
18290
|
-
|
|
18291
|
-
|
|
18292
|
-
|
|
18293
|
-
|
|
18294
|
-
|
|
18295
|
-
|
|
18296
|
-
|
|
18297
|
-
|
|
18298
|
-
|
|
18299
|
-
|
|
18300
|
-
|
|
18301
|
-
|
|
18302
|
-
|
|
18303
|
-
|
|
18304
|
-
|
|
18305
|
-
|
|
18306
|
-
|
|
18307
|
-
|
|
18308
|
-
|
|
18309
|
-
|
|
18310
|
-
|
|
18311
|
-
|
|
18312
|
-
|
|
18313
|
-
|
|
18314
|
-
|
|
18315
|
-
|
|
18316
|
-
|
|
18317
|
-
|
|
18318
|
-
|
|
18319
|
-
|
|
18320
|
-
/**
|
|
18321
|
-
* Flat list of AST selectors that determine which string literals are linted as Tailwind classes.
|
|
18322
|
-
* Only matches are treated as class candidates.
|
|
18323
|
-
*/
|
|
18324
|
-
selectors?: Selectors;
|
|
18325
|
-
};
|
|
18326
|
-
};
|
|
18327
|
-
//#endregion
|
|
18328
|
-
//#region src/configs/test.d.ts
|
|
18329
|
-
/** Options for configuring test (Vitest) linting rules. */
|
|
18330
|
-
type TestConfigOptions = SharedOptions;
|
|
18331
|
-
//#endregion
|
|
18332
|
-
//#region src/configs/typescript.d.ts
|
|
18333
|
-
/** Options for configuring TypeScript linting rules. */
|
|
18334
|
-
type TypescriptConfigOptions = SharedOptions;
|
|
18335
|
-
//#endregion
|
|
18336
|
-
//#region src/configs/unicorn.d.ts
|
|
18337
|
-
/** Options for configuring Unicorn linting rules. */
|
|
18338
|
-
type UnicornConfigOptions = SharedOptions;
|
|
18339
|
-
//#endregion
|
|
18340
|
-
//#region src/configs/unused-imports.d.ts
|
|
18341
|
-
/** Options for configuring unused imports linting rules. */
|
|
18342
|
-
type UnusedImportsConfigOptions = SharedOptions;
|
|
18411
|
+
cwd?: string;
|
|
18412
|
+
/**
|
|
18413
|
+
* Whether to detect custom component classes (like `card`, `btn`) defined in Tailwind CSS v4,
|
|
18414
|
+
* so they are not reported as unknown classes.
|
|
18415
|
+
* @default true
|
|
18416
|
+
*/
|
|
18417
|
+
detectComponentClasses?: boolean;
|
|
18418
|
+
/**
|
|
18419
|
+
* Path to the CSS entry file (e.g. `src/global.css`), relative to the current working directory.
|
|
18420
|
+
* Falls back to the default configuration when omitted.
|
|
18421
|
+
*/
|
|
18422
|
+
entryPoint?: string;
|
|
18423
|
+
/**
|
|
18424
|
+
* How linting messages are displayed:
|
|
18425
|
+
* - `"visual"` – visualizes whitespace/line breaks (default outside CI)
|
|
18426
|
+
* - `"compact"` – single-line messages, suitable for CI
|
|
18427
|
+
* - `"raw"` – raw information without visualization
|
|
18428
|
+
*
|
|
18429
|
+
* Defaults to `"visual"`, or `"compact"` in CI environments.
|
|
18430
|
+
*/
|
|
18431
|
+
messageStyle?: 'compact' | 'raw' | 'visual';
|
|
18432
|
+
/**
|
|
18433
|
+
* Font size of the `<html>` element in pixels (default 16px).
|
|
18434
|
+
* Used to determine if arbitrary values can be replaced with predefined sizing scales.
|
|
18435
|
+
*/
|
|
18436
|
+
rootFontSize?: number;
|
|
18437
|
+
/**
|
|
18438
|
+
* Flat list of AST selectors that determine which string literals are linted as Tailwind classes.
|
|
18439
|
+
* Only matches are treated as class candidates.
|
|
18440
|
+
*/
|
|
18441
|
+
selectors?: Selectors;
|
|
18442
|
+
}
|
|
18343
18443
|
//#endregion
|
|
18344
18444
|
//#region src/configs/vue.d.ts
|
|
18345
18445
|
/** Options for configuring Vue single-file component linting rules. */
|
|
18346
|
-
|
|
18446
|
+
interface VueConfigOptions {
|
|
18347
18447
|
/**
|
|
18348
18448
|
* Configuration for extracting and linting custom Single-File Component (SFC) blocks
|
|
18349
18449
|
* such as `<style>`, `<route>`, or `<i18n>`.
|
|
18350
18450
|
* Pass `false` to disable block processing, or an options object to customize block matching.
|
|
18351
18451
|
*/
|
|
18352
18452
|
sfcBlocks?: boolean | Options;
|
|
18353
|
-
}
|
|
18354
|
-
//#endregion
|
|
18355
|
-
//#region src/configs/yaml.d.ts
|
|
18356
|
-
/** Options for configuring YAML linting rules. */
|
|
18357
|
-
type YAMLConfigOptions = SharedOptions;
|
|
18453
|
+
}
|
|
18358
18454
|
//#endregion
|
|
18359
18455
|
//#region src/factory.d.ts
|
|
18360
18456
|
/**
|
|
@@ -18369,17 +18465,17 @@ interface ConfigOptions {
|
|
|
18369
18465
|
/** Glob patterns to exclude from linting. */
|
|
18370
18466
|
ignores?: IgnoresPatterns;
|
|
18371
18467
|
/** Imports sorting and quality rules (via `eslint-plugin-import-lite`). */
|
|
18372
|
-
imports?: boolean
|
|
18468
|
+
imports?: boolean;
|
|
18373
18469
|
/** Core JavaScript language rules (via `@eslint/js`). */
|
|
18374
|
-
javascript?: boolean
|
|
18470
|
+
javascript?: boolean;
|
|
18375
18471
|
/** JSDoc comments formatting and validation (via `eslint-plugin-jsdoc`). */
|
|
18376
|
-
jsdoc?: boolean
|
|
18472
|
+
jsdoc?: boolean;
|
|
18377
18473
|
/** JSON, JSON5, and JSONC files linting and sorting (via `eslint-plugin-jsonc`). */
|
|
18378
|
-
jsonc?: boolean
|
|
18474
|
+
jsonc?: boolean;
|
|
18379
18475
|
/** Markdown files and embedded code blocks linting (via `@eslint/markdown`). */
|
|
18380
18476
|
markdown?: boolean | MarkdownConfigOptions;
|
|
18381
18477
|
/** Node.js specific linting rules (via `eslint-plugin-n`). */
|
|
18382
|
-
node?: boolean
|
|
18478
|
+
node?: boolean;
|
|
18383
18479
|
/** Perfectionist rules for sorting objects, imports, classes, etc (via `eslint-plugin-perfectionist`). */
|
|
18384
18480
|
perfectionist?: boolean | PerfectionistConfigOptions;
|
|
18385
18481
|
/** PNPM workspaces rules (via `eslint-plugin-pnpm`). */
|
|
@@ -18389,17 +18485,17 @@ interface ConfigOptions {
|
|
|
18389
18485
|
/** Tailwind CSS class sorting and best practices (via `eslint-plugin-better-tailwindcss`). */
|
|
18390
18486
|
tailwind?: boolean | TailwindConfigOptions;
|
|
18391
18487
|
/** Test and Vitest specific linting rules (via `@vitest/eslint-plugin`). */
|
|
18392
|
-
test?: boolean
|
|
18488
|
+
test?: boolean;
|
|
18393
18489
|
/** TypeScript language linting (via `typescript-eslint`). */
|
|
18394
|
-
typescript?: boolean
|
|
18490
|
+
typescript?: boolean;
|
|
18395
18491
|
/** Unicorn rules for various code quality improvements (via `eslint-plugin-unicorn`). */
|
|
18396
|
-
unicorn?: boolean
|
|
18492
|
+
unicorn?: boolean;
|
|
18397
18493
|
/** Unused imports and variables detection and cleanup (via `eslint-plugin-unused-imports`). */
|
|
18398
|
-
unusedImports?: boolean
|
|
18399
|
-
/** Vue single-file components linting (via `eslint-plugin-vue`). */
|
|
18494
|
+
unusedImports?: boolean;
|
|
18495
|
+
/** Vue single-file components accessibility and linting (via `eslint-plugin-vue` and `eslint-plugin-vuejs-accessibility`). */
|
|
18400
18496
|
vue?: boolean | VueConfigOptions;
|
|
18401
18497
|
/** YAML files linting and sorting (via `eslint-plugin-yml`). */
|
|
18402
|
-
yaml?: boolean
|
|
18498
|
+
yaml?: boolean;
|
|
18403
18499
|
}
|
|
18404
18500
|
/**
|
|
18405
18501
|
* Factory to create a flat ESLint config.
|
|
@@ -18468,5 +18564,14 @@ declare function extractRules(...configArrays: Array<Array<{
|
|
|
18468
18564
|
declare function importModule<TModule>(module: Awaitable<TModule>): Promise<TModule extends {
|
|
18469
18565
|
default: infer TModuleDefault;
|
|
18470
18566
|
} ? TModuleDefault : TModule>;
|
|
18567
|
+
/**
|
|
18568
|
+
* Creates a new object that omits the specified keys from the target object.
|
|
18569
|
+
* @template TTarget The type of the target object.
|
|
18570
|
+
* @template TTargetKeys The type of the keys to omit from the target object.
|
|
18571
|
+
* @param target The target object from which to omit the specified keys.
|
|
18572
|
+
* @param keys An array of keys to omit from the target object.
|
|
18573
|
+
* @returns A new object that contains all properties of the target object except for the specified keys.
|
|
18574
|
+
*/
|
|
18575
|
+
declare function omit<TTarget extends object, TTargetKeys extends keyof TTarget>(target: TTarget, keys: Array<TTargetKeys>): Omit<TTarget, TTargetKeys>;
|
|
18471
18576
|
//#endregion
|
|
18472
|
-
export { type ConfigNames, type ConfigOptions, type TypedFlatConfigItem, codeInMdGlob, extractRules, factory, ignoresGlob, importModule, jsGlob, json5Glob, jsonGlob, jsoncGlob, mdGlob, mdInMdGlob, packageJsonGlob, pnpmWorkspaceGlob, scriptsGlob, testGlob, tsConfigGlob, tsGlob, vueGlob, yamlGlob };
|
|
18577
|
+
export { type ConfigNames, type ConfigOptions, type TypedFlatConfigItem, codeInMdGlob, extractRules, factory, ignoresGlob, importModule, jsGlob, json5Glob, jsonGlob, jsoncGlob, mdGlob, mdInMdGlob, omit, packageJsonGlob, pnpmWorkspaceGlob, scriptsGlob, testGlob, tsConfigGlob, tsGlob, vueGlob, yamlGlob };
|