`) that have click handlers use the role attribute.
182 | * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-static-element-interactions.md
183 | */
184 | 'jsx-a11y/no-static-element-interactions'?: Linter.RuleEntry
185 | /**
186 | * Enforces using semantic DOM elements over the ARIA `role` property.
187 | * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/prefer-tag-over-role.md
188 | */
189 | 'jsx-a11y/prefer-tag-over-role'?: Linter.RuleEntry
190 | /**
191 | * Enforce that elements with ARIA roles must have all required attributes for that role.
192 | * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/role-has-required-aria-props.md
193 | */
194 | 'jsx-a11y/role-has-required-aria-props'?: Linter.RuleEntry
195 | /**
196 | * Enforce that elements with explicit or implicit roles defined contain only `aria-*` properties supported by that `role`.
197 | * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/role-supports-aria-props.md
198 | */
199 | 'jsx-a11y/role-supports-aria-props'?: Linter.RuleEntry
200 | /**
201 | * Enforce `scope` prop is only used on `` elements.
202 | * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/scope.md
203 | */
204 | 'jsx-a11y/scope'?: Linter.RuleEntry
205 | /**
206 | * Enforce `tabIndex` value is not greater than zero.
207 | * @see https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/tabindex-no-positive.md
208 | */
209 | 'jsx-a11y/tabindex-no-positive'?: Linter.RuleEntry
210 | }
211 |
212 | /* ======= Declarations ======= */
213 | // ----- jsx-a11y/accessible-emoji -----
214 | type JsxA11YAccessibleEmoji = []|[{
215 | [k: string]: unknown | undefined
216 | }]
217 | // ----- jsx-a11y/alt-text -----
218 | type JsxA11YAltText = []|[{
219 | elements?: string[]
220 | img?: string[]
221 | object?: string[]
222 | area?: string[]
223 | "input[type=\"image\"]"?: string[]
224 | [k: string]: unknown | undefined
225 | }]
226 | // ----- jsx-a11y/anchor-ambiguous-text -----
227 | type JsxA11YAnchorAmbiguousText = []|[{
228 | words?: string[]
229 | [k: string]: unknown | undefined
230 | }]
231 | // ----- jsx-a11y/anchor-has-content -----
232 | type JsxA11YAnchorHasContent = []|[{
233 | components?: string[]
234 | [k: string]: unknown | undefined
235 | }]
236 | // ----- jsx-a11y/anchor-is-valid -----
237 | type JsxA11YAnchorIsValid = []|[{
238 | components?: string[]
239 | specialLink?: string[]
240 |
241 | aspects?: [("noHref" | "invalidHref" | "preferButton"), ...(("noHref" | "invalidHref" | "preferButton"))[]]
242 | [k: string]: unknown | undefined
243 | }]
244 | // ----- jsx-a11y/aria-activedescendant-has-tabindex -----
245 | type JsxA11YAriaActivedescendantHasTabindex = []|[{
246 | [k: string]: unknown | undefined
247 | }]
248 | // ----- jsx-a11y/aria-props -----
249 | type JsxA11YAriaProps = []|[{
250 | [k: string]: unknown | undefined
251 | }]
252 | // ----- jsx-a11y/aria-proptypes -----
253 | type JsxA11YAriaProptypes = []|[{
254 | [k: string]: unknown | undefined
255 | }]
256 | // ----- jsx-a11y/aria-role -----
257 | type JsxA11YAriaRole = []|[{
258 | allowedInvalidRoles?: string[]
259 | ignoreNonDOM?: boolean
260 | [k: string]: unknown | undefined
261 | }]
262 | // ----- jsx-a11y/aria-unsupported-elements -----
263 | type JsxA11YAriaUnsupportedElements = []|[{
264 | [k: string]: unknown | undefined
265 | }]
266 | // ----- jsx-a11y/autocomplete-valid -----
267 | type JsxA11YAutocompleteValid = []|[{
268 | inputComponents?: string[]
269 | [k: string]: unknown | undefined
270 | }]
271 | // ----- jsx-a11y/click-events-have-key-events -----
272 | type JsxA11YClickEventsHaveKeyEvents = []|[{
273 | [k: string]: unknown | undefined
274 | }]
275 | // ----- jsx-a11y/control-has-associated-label -----
276 | type JsxA11YControlHasAssociatedLabel = []|[{
277 | labelAttributes?: string[]
278 | controlComponents?: string[]
279 | ignoreElements?: string[]
280 | ignoreRoles?: string[]
281 |
282 | depth?: number
283 | [k: string]: unknown | undefined
284 | }]
285 | // ----- jsx-a11y/heading-has-content -----
286 | type JsxA11YHeadingHasContent = []|[{
287 | components?: string[]
288 | [k: string]: unknown | undefined
289 | }]
290 | // ----- jsx-a11y/html-has-lang -----
291 | type JsxA11YHtmlHasLang = []|[{
292 | [k: string]: unknown | undefined
293 | }]
294 | // ----- jsx-a11y/iframe-has-title -----
295 | type JsxA11YIframeHasTitle = []|[{
296 | [k: string]: unknown | undefined
297 | }]
298 | // ----- jsx-a11y/img-redundant-alt -----
299 | type JsxA11YImgRedundantAlt = []|[{
300 | components?: string[]
301 | words?: string[]
302 | [k: string]: unknown | undefined
303 | }]
304 | // ----- jsx-a11y/interactive-supports-focus -----
305 | type JsxA11YInteractiveSupportsFocus = []|[{
306 |
307 | 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")[]
308 | [k: string]: unknown | undefined
309 | }]
310 | // ----- jsx-a11y/label-has-associated-control -----
311 | type JsxA11YLabelHasAssociatedControl = []|[{
312 | labelComponents?: string[]
313 | labelAttributes?: string[]
314 | controlComponents?: string[]
315 |
316 | assert?: ("htmlFor" | "nesting" | "both" | "either")
317 |
318 | depth?: number
319 | [k: string]: unknown | undefined
320 | }]
321 | // ----- jsx-a11y/label-has-for -----
322 | type JsxA11YLabelHasFor = []|[{
323 | components?: string[]
324 | required?: (("nesting" | "id") | {
325 |
326 | some: ("nesting" | "id")[]
327 | [k: string]: unknown | undefined
328 | } | {
329 |
330 | every: ("nesting" | "id")[]
331 | [k: string]: unknown | undefined
332 | })
333 | allowChildren?: boolean
334 | [k: string]: unknown | undefined
335 | }]
336 | // ----- jsx-a11y/lang -----
337 | type JsxA11YLang = []|[{
338 | [k: string]: unknown | undefined
339 | }]
340 | // ----- jsx-a11y/media-has-caption -----
341 | type JsxA11YMediaHasCaption = []|[{
342 | audio?: string[]
343 | video?: string[]
344 | track?: string[]
345 | [k: string]: unknown | undefined
346 | }]
347 | // ----- jsx-a11y/mouse-events-have-key-events -----
348 | type JsxA11YMouseEventsHaveKeyEvents = []|[{
349 |
350 | hoverInHandlers?: string[]
351 |
352 | hoverOutHandlers?: string[]
353 | [k: string]: unknown | undefined
354 | }]
355 | // ----- jsx-a11y/no-access-key -----
356 | type JsxA11YNoAccessKey = []|[{
357 | [k: string]: unknown | undefined
358 | }]
359 | // ----- jsx-a11y/no-aria-hidden-on-focusable -----
360 | type JsxA11YNoAriaHiddenOnFocusable = []|[{
361 | [k: string]: unknown | undefined
362 | }]
363 | // ----- jsx-a11y/no-autofocus -----
364 | type JsxA11YNoAutofocus = []|[{
365 | ignoreNonDOM?: boolean
366 | [k: string]: unknown | undefined
367 | }]
368 | // ----- jsx-a11y/no-distracting-elements -----
369 | type JsxA11YNoDistractingElements = []|[{
370 |
371 | elements?: ("marquee" | "blink")[]
372 | [k: string]: unknown | undefined
373 | }]
374 | // ----- jsx-a11y/no-interactive-element-to-noninteractive-role -----
375 | type JsxA11YNoInteractiveElementToNoninteractiveRole = []|[{
376 | [k: string]: string[] | undefined
377 | }]
378 | // ----- jsx-a11y/no-noninteractive-element-interactions -----
379 | type JsxA11YNoNoninteractiveElementInteractions = []|[{
380 | handlers?: string[]
381 | [k: string]: unknown | undefined
382 | }]
383 | // ----- jsx-a11y/no-noninteractive-element-to-interactive-role -----
384 | type JsxA11YNoNoninteractiveElementToInteractiveRole = []|[{
385 | [k: string]: string[] | undefined
386 | }]
387 | // ----- jsx-a11y/no-noninteractive-tabindex -----
388 | type JsxA11YNoNoninteractiveTabindex = []|[{
389 |
390 | roles?: string[]
391 |
392 | tags?: string[]
393 | [k: string]: unknown | undefined
394 | }]
395 | // ----- jsx-a11y/no-onchange -----
396 | type JsxA11YNoOnchange = []|[{
397 | [k: string]: unknown | undefined
398 | }]
399 | // ----- jsx-a11y/no-redundant-roles -----
400 | type JsxA11YNoRedundantRoles = []|[{
401 | [k: string]: string[] | undefined
402 | }]
403 | // ----- jsx-a11y/no-static-element-interactions -----
404 | type JsxA11YNoStaticElementInteractions = []|[{
405 | handlers?: string[]
406 | [k: string]: unknown | undefined
407 | }]
408 | // ----- jsx-a11y/prefer-tag-over-role -----
409 | type JsxA11YPreferTagOverRole = []|[{
410 | [k: string]: unknown | undefined
411 | }]
412 | // ----- jsx-a11y/role-has-required-aria-props -----
413 | type JsxA11YRoleHasRequiredAriaProps = []|[{
414 | [k: string]: unknown | undefined
415 | }]
416 | // ----- jsx-a11y/role-supports-aria-props -----
417 | type JsxA11YRoleSupportsAriaProps = []|[{
418 | [k: string]: unknown | undefined
419 | }]
420 | // ----- jsx-a11y/scope -----
421 | type JsxA11YScope = []|[{
422 | [k: string]: unknown | undefined
423 | }]
424 | // ----- jsx-a11y/tabindex-no-positive -----
425 | type JsxA11YTabindexNoPositive = []|[{
426 | [k: string]: unknown | undefined
427 | }]
--------------------------------------------------------------------------------
/test/output/plugins.d.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | /* prettier-ignore */
3 | import type { Linter } from 'eslint'
4 |
5 | declare module 'eslint' {
6 | namespace Linter {
7 | interface RulesRecord extends RuleOptions {}
8 | }
9 | }
10 |
11 | export interface RuleOptions {
12 | /**
13 | * Having line breaks styles to object, array and named imports
14 | * @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/consistent-chaining.md
15 | */
16 | 'antfu/consistent-chaining'?: Linter.RuleEntry
17 | /**
18 | * Having line breaks styles to object, array and named imports
19 | * @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/consistent-list-newline.md
20 | */
21 | 'antfu/consistent-list-newline'?: Linter.RuleEntry
22 | /**
23 | * Enforce Anthony's style of curly bracket
24 | * @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/curly.md
25 | */
26 | 'antfu/curly'?: Linter.RuleEntry<[]>
27 | /**
28 | * Newline after if
29 | * @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/if-newline.md
30 | */
31 | 'antfu/if-newline'?: Linter.RuleEntry<[]>
32 | /**
33 | * Fix duplication in imports
34 | * @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/import-dedupe.md
35 | */
36 | 'antfu/import-dedupe'?: Linter.RuleEntry<[]>
37 | /**
38 | * Enforce consistent indentation in `unindent` template tag
39 | * @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/indent-unindent.md
40 | */
41 | 'antfu/indent-unindent'?: Linter.RuleEntry
42 | /**
43 | * Prevent importing modules in `dist` folder
44 | * @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/no-import-dist.test.ts
45 | */
46 | 'antfu/no-import-dist'?: Linter.RuleEntry<[]>
47 | /**
48 | * Prevent importing modules in `node_modules` folder by relative or absolute path
49 | * @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/no-import-node-modules-by-path.test.ts
50 | */
51 | 'antfu/no-import-node-modules-by-path'?: Linter.RuleEntry<[]>
52 | /**
53 | * Prevent using top-level await
54 | * @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/no-top-level-await.test.ts
55 | */
56 | 'antfu/no-top-level-await'?: Linter.RuleEntry<[]>
57 | /**
58 | * Do not use `exports =`
59 | * @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/no-ts-export-equal.test.ts
60 | */
61 | 'antfu/no-ts-export-equal'?: Linter.RuleEntry<[]>
62 | /**
63 | * Enforce top-level functions to be declared with function keyword
64 | * @see https://github.com/antfu/eslint-plugin-antfu/blob/main/src/rules/top-level-function.md
65 | */
66 | 'antfu/top-level-function'?: Linter.RuleEntry<[]>
67 | /**
68 | * Enforce or ban the use of inline type-only markers for named imports.
69 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/consistent-type-specifier-style.md
70 | */
71 | 'import/consistent-type-specifier-style'?: Linter.RuleEntry
72 | /**
73 | * Ensure a default export is present, given a default import.
74 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/default.md
75 | */
76 | 'import/default'?: Linter.RuleEntry<[]>
77 | /**
78 | * Enforce a leading comment with the webpackChunkName for dynamic imports.
79 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/dynamic-import-chunkname.md
80 | */
81 | 'import/dynamic-import-chunkname'?: Linter.RuleEntry
82 | /**
83 | * Forbid any invalid exports, i.e. re-export of the same name.
84 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/export.md
85 | */
86 | 'import/export'?: Linter.RuleEntry<[]>
87 | /**
88 | * Ensure all exports appear after other statements.
89 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/exports-last.md
90 | */
91 | 'import/exports-last'?: Linter.RuleEntry<[]>
92 | /**
93 | * Ensure consistent use of file extension within the import path.
94 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/extensions.md
95 | */
96 | 'import/extensions'?: Linter.RuleEntry
97 | /**
98 | * Ensure all imports appear before other statements.
99 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/first.md
100 | */
101 | 'import/first'?: Linter.RuleEntry
102 | /**
103 | * Prefer named exports to be grouped together in a single export declaration.
104 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/group-exports.md
105 | */
106 | 'import/group-exports'?: Linter.RuleEntry<[]>
107 | /**
108 | * Replaced by `import-x/first`.
109 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/imports-first.md
110 | * @deprecated
111 | */
112 | 'import/imports-first'?: Linter.RuleEntry
113 | /**
114 | * Enforce the maximum number of dependencies a module can have.
115 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/max-dependencies.md
116 | */
117 | 'import/max-dependencies'?: Linter.RuleEntry
118 | /**
119 | * Ensure named imports correspond to a named export in the remote file.
120 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/named.md
121 | */
122 | 'import/named'?: Linter.RuleEntry
123 | /**
124 | * Ensure imported namespaces contain dereferenced properties as they are dereferenced.
125 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/namespace.md
126 | */
127 | 'import/namespace'?: Linter.RuleEntry
128 | /**
129 | * Enforce a newline after import statements.
130 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/newline-after-import.md
131 | */
132 | 'import/newline-after-import'?: Linter.RuleEntry
133 | /**
134 | * Forbid import of modules using absolute paths.
135 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-absolute-path.md
136 | */
137 | 'import/no-absolute-path'?: Linter.RuleEntry
138 | /**
139 | * Forbid AMD `require` and `define` calls.
140 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-amd.md
141 | */
142 | 'import/no-amd'?: Linter.RuleEntry<[]>
143 | /**
144 | * Forbid anonymous values as default exports.
145 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-anonymous-default-export.md
146 | */
147 | 'import/no-anonymous-default-export'?: Linter.RuleEntry
148 | /**
149 | * Forbid CommonJS `require` calls and `module.exports` or `exports.*`.
150 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-commonjs.md
151 | */
152 | 'import/no-commonjs'?: Linter.RuleEntry
153 | /**
154 | * Forbid a module from importing a module with a dependency path back to itself.
155 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-cycle.md
156 | */
157 | 'import/no-cycle'?: Linter.RuleEntry
158 | /**
159 | * Forbid default exports.
160 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-default-export.md
161 | */
162 | 'import/no-default-export'?: Linter.RuleEntry<[]>
163 | /**
164 | * Forbid imported names marked with `@deprecated` documentation tag.
165 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-deprecated.md
166 | */
167 | 'import/no-deprecated'?: Linter.RuleEntry<[]>
168 | /**
169 | * Forbid repeated import of the same module in multiple places.
170 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-duplicates.md
171 | */
172 | 'import/no-duplicates'?: Linter.RuleEntry
173 | /**
174 | * Forbid `require()` calls with expressions.
175 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-dynamic-require.md
176 | */
177 | 'import/no-dynamic-require'?: Linter.RuleEntry
178 | /**
179 | * Forbid empty named import blocks.
180 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-empty-named-blocks.md
181 | */
182 | 'import/no-empty-named-blocks'?: Linter.RuleEntry<[]>
183 | /**
184 | * Forbid the use of extraneous packages.
185 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-extraneous-dependencies.md
186 | */
187 | 'import/no-extraneous-dependencies'?: Linter.RuleEntry
188 | /**
189 | * Forbid import statements with CommonJS module.exports.
190 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-import-module-exports.md
191 | */
192 | 'import/no-import-module-exports'?: Linter.RuleEntry
193 | /**
194 | * Forbid importing the submodules of other modules.
195 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-internal-modules.md
196 | */
197 | 'import/no-internal-modules'?: Linter.RuleEntry
198 | /**
199 | * Forbid the use of mutable exports with `var` or `let`.
200 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-mutable-exports.md
201 | */
202 | 'import/no-mutable-exports'?: Linter.RuleEntry<[]>
203 | /**
204 | * Forbid use of exported name as identifier of default export.
205 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-named-as-default.md
206 | */
207 | 'import/no-named-as-default'?: Linter.RuleEntry<[]>
208 | /**
209 | * Forbid use of exported name as property of default export.
210 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-named-as-default-member.md
211 | */
212 | 'import/no-named-as-default-member'?: Linter.RuleEntry<[]>
213 | /**
214 | * Forbid named default exports.
215 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-named-default.md
216 | */
217 | 'import/no-named-default'?: Linter.RuleEntry<[]>
218 | /**
219 | * Forbid named exports.
220 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-named-export.md
221 | */
222 | 'import/no-named-export'?: Linter.RuleEntry<[]>
223 | /**
224 | * Forbid namespace (a.k.a. "wildcard" `*`) imports.
225 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-namespace.md
226 | */
227 | 'import/no-namespace'?: Linter.RuleEntry
228 | /**
229 | * Forbid Node.js builtin modules.
230 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-nodejs-modules.md
231 | */
232 | 'import/no-nodejs-modules'?: Linter.RuleEntry
233 | /**
234 | * Forbid importing packages through relative paths.
235 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-relative-packages.md
236 | */
237 | 'import/no-relative-packages'?: Linter.RuleEntry
238 | /**
239 | * Forbid importing modules from parent directories.
240 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-relative-parent-imports.md
241 | */
242 | 'import/no-relative-parent-imports'?: Linter.RuleEntry
243 | /**
244 | * Forbid importing a default export by a different name.
245 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-rename-default.md
246 | */
247 | 'import/no-rename-default'?: Linter.RuleEntry
248 | /**
249 | * Enforce which files can be imported in a given folder.
250 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-restricted-paths.md
251 | */
252 | 'import/no-restricted-paths'?: Linter.RuleEntry
253 | /**
254 | * Forbid a module from importing itself.
255 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-self-import.md
256 | */
257 | 'import/no-self-import'?: Linter.RuleEntry<[]>
258 | /**
259 | * Forbid unassigned imports.
260 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-unassigned-import.md
261 | */
262 | 'import/no-unassigned-import'?: Linter.RuleEntry
263 | /**
264 | * Ensure imports point to a file/module that can be resolved.
265 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-unresolved.md
266 | */
267 | 'import/no-unresolved'?: Linter.RuleEntry
268 | /**
269 | * Forbid modules without exports, or exports without matching import in another module.
270 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-unused-modules.md
271 | */
272 | 'import/no-unused-modules'?: Linter.RuleEntry
273 | /**
274 | * Forbid unnecessary path segments in import and require statements.
275 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-useless-path-segments.md
276 | */
277 | 'import/no-useless-path-segments'?: Linter.RuleEntry
278 | /**
279 | * Forbid webpack loader syntax in imports.
280 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/no-webpack-loader-syntax.md
281 | */
282 | 'import/no-webpack-loader-syntax'?: Linter.RuleEntry<[]>
283 | /**
284 | * Enforce a convention in module import order.
285 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/order.md
286 | */
287 | 'import/order'?: Linter.RuleEntry
288 | /**
289 | * Prefer a default export if module exports a single name or multiple names.
290 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/prefer-default-export.md
291 | */
292 | 'import/prefer-default-export'?: Linter.RuleEntry
293 | /**
294 | * Enforce using namespace imports for specific modules, like `react`/`react-dom`, etc.
295 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/prefer-namespace-import.md
296 | */
297 | 'import/prefer-namespace-import'?: Linter.RuleEntry
298 | /**
299 | * Forbid potentially ambiguous parse goal (`script` vs. `module`).
300 | * @see https://github.com/un-ts/eslint-plugin-import-x/blob/v4.16.1/docs/rules/unambiguous.md
301 | */
302 | 'import/unambiguous'?: Linter.RuleEntry<[]>
303 | }
304 |
305 | /* ======= Declarations ======= */
306 | // ----- antfu/consistent-chaining -----
307 | type AntfuConsistentChaining = []|[{
308 |
309 | allowLeadingPropertyAccess?: boolean
310 | }]
311 | // ----- antfu/consistent-list-newline -----
312 | type AntfuConsistentListNewline = []|[{
313 | ArrayExpression?: boolean
314 | ArrayPattern?: boolean
315 | ArrowFunctionExpression?: boolean
316 | CallExpression?: boolean
317 | ExportNamedDeclaration?: boolean
318 | FunctionDeclaration?: boolean
319 | FunctionExpression?: boolean
320 | ImportDeclaration?: boolean
321 | JSONArrayExpression?: boolean
322 | JSONObjectExpression?: boolean
323 | JSXOpeningElement?: boolean
324 | NewExpression?: boolean
325 | ObjectExpression?: boolean
326 | ObjectPattern?: boolean
327 | TSFunctionType?: boolean
328 | TSInterfaceDeclaration?: boolean
329 | TSTupleType?: boolean
330 | TSTypeLiteral?: boolean
331 | TSTypeParameterDeclaration?: boolean
332 | TSTypeParameterInstantiation?: boolean
333 | }]
334 | // ----- antfu/indent-unindent -----
335 | type AntfuIndentUnindent = []|[{
336 | indent?: number
337 | tags?: string[]
338 | }]
339 | // ----- import/consistent-type-specifier-style -----
340 | type ImportConsistentTypeSpecifierStyle = []|[("prefer-top-level" | "prefer-inline")]
341 | // ----- import/dynamic-import-chunkname -----
342 | type ImportDynamicImportChunkname = []|[{
343 | importFunctions?: string[]
344 | allowEmpty?: boolean
345 | webpackChunknameFormat?: string
346 | [k: string]: unknown | undefined
347 | }]
348 | // ----- import/extensions -----
349 | type ImportExtensions = ([]|[("always" | "ignorePackages" | "never")] | []|[("always" | "ignorePackages" | "never")]|[("always" | "ignorePackages" | "never"), {
350 | pattern?: {
351 | [k: string]: ("always" | "ignorePackages" | "never")
352 | }
353 | ignorePackages?: boolean
354 | checkTypeImports?: boolean
355 | pathGroupOverrides?: {
356 | pattern: string
357 | patternOptions?: {
358 | [k: string]: unknown | undefined
359 | }
360 | action: ("enforce" | "ignore")
361 | }[]
362 | fix?: boolean
363 | [k: string]: unknown | undefined
364 | }] | []|[{
365 | pattern?: {
366 | [k: string]: ("always" | "ignorePackages" | "never")
367 | }
368 | ignorePackages?: boolean
369 | checkTypeImports?: boolean
370 | pathGroupOverrides?: {
371 | pattern: string
372 | patternOptions?: {
373 | [k: string]: unknown | undefined
374 | }
375 | action: ("enforce" | "ignore")
376 | }[]
377 | fix?: boolean
378 | [k: string]: unknown | undefined
379 | }] | []|[("always" | "ignorePackages" | "never")]|[("always" | "ignorePackages" | "never"), {
380 | [k: string]: ("always" | "ignorePackages" | "never")
381 | }] | []|[{
382 | [k: string]: ("always" | "ignorePackages" | "never")
383 | }])
384 | // ----- import/first -----
385 | type ImportFirst = []|[("absolute-first" | "disable-absolute-first")]
386 | // ----- import/imports-first -----
387 | type ImportImportsFirst = []|[("absolute-first" | "disable-absolute-first")]
388 | // ----- import/max-dependencies -----
389 | type ImportMaxDependencies = []|[{
390 | max?: number
391 | ignoreTypeImports?: boolean
392 | }]
393 | // ----- import/named -----
394 | type ImportNamed = []|[{
395 | commonjs?: boolean
396 | }]
397 | // ----- import/namespace -----
398 | type ImportNamespace = []|[{
399 |
400 | allowComputed?: boolean
401 | }]
402 | // ----- import/newline-after-import -----
403 | type ImportNewlineAfterImport = []|[{
404 | count?: number
405 | exactCount?: boolean
406 | considerComments?: boolean
407 | }]
408 | // ----- import/no-absolute-path -----
409 | type ImportNoAbsolutePath = []|[{
410 | commonjs?: boolean
411 | amd?: boolean
412 | esmodule?: boolean
413 |
414 | ignore?: [string, ...(string)[]]
415 | }]
416 | // ----- import/no-anonymous-default-export -----
417 | type ImportNoAnonymousDefaultExport = []|[{
418 |
419 | allowArray?: boolean
420 |
421 | allowArrowFunction?: boolean
422 |
423 | allowCallExpression?: boolean
424 |
425 | allowAnonymousClass?: boolean
426 |
427 | allowAnonymousFunction?: boolean
428 |
429 | allowLiteral?: boolean
430 |
431 | allowObject?: boolean
432 |
433 | allowNew?: boolean
434 | }]
435 | // ----- import/no-commonjs -----
436 | type ImportNoCommonjs = ([]|["allow-primitive-modules"] | []|[{
437 | allowPrimitiveModules?: boolean
438 | allowRequire?: boolean
439 | allowConditionalRequire?: boolean
440 | }])
441 | // ----- import/no-cycle -----
442 | type ImportNoCycle = []|[{
443 | commonjs?: boolean
444 | amd?: boolean
445 | esmodule?: boolean
446 |
447 | ignore?: [string, ...(string)[]]
448 | maxDepth?: (number | "∞")
449 |
450 | ignoreExternal?: boolean
451 |
452 | allowUnsafeDynamicCyclicDependency?: boolean
453 | }]
454 | // ----- import/no-duplicates -----
455 | type ImportNoDuplicates = []|[{
456 | considerQueryString?: boolean
457 | "prefer-inline"?: boolean
458 | }]
459 | // ----- import/no-dynamic-require -----
460 | type ImportNoDynamicRequire = []|[{
461 | esmodule?: boolean
462 | }]
463 | // ----- import/no-extraneous-dependencies -----
464 | type ImportNoExtraneousDependencies = []|[{
465 | devDependencies?: (boolean | unknown[])
466 | optionalDependencies?: (boolean | unknown[])
467 | peerDependencies?: (boolean | unknown[])
468 | bundledDependencies?: (boolean | unknown[])
469 | packageDir?: (string | unknown[])
470 | includeInternal?: boolean
471 | includeTypes?: boolean
472 | whitelist?: unknown[]
473 | }]
474 | // ----- import/no-import-module-exports -----
475 | type ImportNoImportModuleExports = []|[{
476 | exceptions?: unknown[]
477 | }]
478 | // ----- import/no-internal-modules -----
479 | type ImportNoInternalModules = []|[({
480 | allow?: string[]
481 | } | {
482 | forbid?: string[]
483 | })]
484 | // ----- import/no-namespace -----
485 | type ImportNoNamespace = []|[{
486 | ignore?: string[]
487 | [k: string]: unknown | undefined
488 | }]
489 | // ----- import/no-nodejs-modules -----
490 | type ImportNoNodejsModules = []|[{
491 | allow?: string[]
492 | }]
493 | // ----- import/no-relative-packages -----
494 | type ImportNoRelativePackages = []|[{
495 | commonjs?: boolean
496 | amd?: boolean
497 | esmodule?: boolean
498 |
499 | ignore?: [string, ...(string)[]]
500 | }]
501 | // ----- import/no-relative-parent-imports -----
502 | type ImportNoRelativeParentImports = []|[{
503 | commonjs?: boolean
504 | amd?: boolean
505 | esmodule?: boolean
506 |
507 | ignore?: [string, ...(string)[]]
508 | }]
509 | // ----- import/no-rename-default -----
510 | type ImportNoRenameDefault = []|[{
511 | commonjs?: boolean
512 | preventRenamingBindings?: boolean
513 | }]
514 | // ----- import/no-restricted-paths -----
515 | type ImportNoRestrictedPaths = []|[{
516 |
517 | zones?: [{
518 | target?: (string | [string, ...(string)[]])
519 | from?: (string | [string, ...(string)[]])
520 | except?: string[]
521 | message?: string
522 | }, ...({
523 | target?: (string | [string, ...(string)[]])
524 | from?: (string | [string, ...(string)[]])
525 | except?: string[]
526 | message?: string
527 | })[]]
528 | basePath?: string
529 | }]
530 | // ----- import/no-unassigned-import -----
531 | type ImportNoUnassignedImport = []|[{
532 | devDependencies?: (boolean | unknown[])
533 | optionalDependencies?: (boolean | unknown[])
534 | peerDependencies?: (boolean | unknown[])
535 | allow?: string[]
536 | }]
537 | // ----- import/no-unresolved -----
538 | type ImportNoUnresolved = []|[{
539 | commonjs?: boolean
540 | amd?: boolean
541 | esmodule?: boolean
542 |
543 | ignore?: [string, ...(string)[]]
544 | caseSensitive?: boolean
545 | caseSensitiveStrict?: boolean
546 | }]
547 | // ----- import/no-unused-modules -----
548 | type ImportNoUnusedModules = []|[({
549 | unusedExports: true
550 |
551 | src?: [unknown, ...(unknown)[]]
552 | [k: string]: unknown | undefined
553 | } | {
554 | missingExports: true
555 | [k: string]: unknown | undefined
556 | })]
557 | // ----- import/no-useless-path-segments -----
558 | type ImportNoUselessPathSegments = []|[{
559 | commonjs?: boolean
560 | noUselessIndex?: boolean
561 | }]
562 | // ----- import/order -----
563 | type ImportOrder = []|[{
564 | groups?: unknown[]
565 | pathGroupsExcludedImportTypes?: unknown[]
566 | distinctGroup?: boolean
567 | pathGroups?: {
568 | pattern: string
569 | patternOptions?: {
570 | [k: string]: unknown | undefined
571 | }
572 | group: ("builtin" | "external" | "internal" | "unknown" | "parent" | "sibling" | "index" | "object" | "type")
573 | position?: ("after" | "before")
574 | }[]
575 | "newlines-between"?: ("ignore" | "always" | "always-and-inside-groups" | "never")
576 | "newlines-between-types"?: ("ignore" | "always" | "always-and-inside-groups" | "never")
577 | consolidateIslands?: ("inside-groups" | "never")
578 | sortTypesGroup?: boolean
579 | named?: (boolean | {
580 | enabled?: boolean
581 | import?: boolean
582 | export?: boolean
583 | require?: boolean
584 | cjsExports?: boolean
585 | types?: ("mixed" | "types-first" | "types-last")
586 | })
587 | alphabetize?: {
588 | caseInsensitive?: boolean
589 | order?: ("ignore" | "asc" | "desc")
590 | orderImportKind?: ("ignore" | "asc" | "desc")
591 | }
592 | warnOnUnassignedImports?: boolean
593 | }]
594 | // ----- import/prefer-default-export -----
595 | type ImportPreferDefaultExport = []|[{
596 | target?: ("single" | "any")
597 | }]
598 | // ----- import/prefer-namespace-import -----
599 | type ImportPreferNamespaceImport = []|[{
600 | patterns?: string[]
601 | }]
--------------------------------------------------------------------------------
/test/output/flat-config-vue.d.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | /* prettier-ignore */
3 | import type { Linter } from 'eslint'
4 |
5 | declare module 'eslint' {
6 | namespace Linter {
7 | interface RulesRecord extends RuleOptions {}
8 | }
9 | }
10 |
11 | export interface RuleOptions {
12 | /**
13 | * Enforce linebreaks after opening and before closing array brackets in ``
14 | * @see https://eslint.vuejs.org/rules/array-bracket-newline.html
15 | */
16 | 'vue/array-bracket-newline'?: Linter.RuleEntry
17 | /**
18 | * Enforce consistent spacing inside array brackets in ``
19 | * @see https://eslint.vuejs.org/rules/array-bracket-spacing.html
20 | */
21 | 'vue/array-bracket-spacing'?: Linter.RuleEntry
22 | /**
23 | * Enforce line breaks after each array element in ``
24 | * @see https://eslint.vuejs.org/rules/array-element-newline.html
25 | */
26 | 'vue/array-element-newline'?: Linter.RuleEntry
27 | /**
28 | * Enforce consistent spacing before and after the arrow in arrow functions in ``
29 | * @see https://eslint.vuejs.org/rules/arrow-spacing.html
30 | */
31 | 'vue/arrow-spacing'?: Linter.RuleEntry
32 | /**
33 | * enforce attribute naming style on custom components in template
34 | * @see https://eslint.vuejs.org/rules/attribute-hyphenation.html
35 | */
36 | 'vue/attribute-hyphenation'?: Linter.RuleEntry
37 | /**
38 | * enforce order of attributes
39 | * @see https://eslint.vuejs.org/rules/attributes-order.html
40 | */
41 | 'vue/attributes-order'?: Linter.RuleEntry
42 | /**
43 | * disallow use other than available `lang`
44 | * @see https://eslint.vuejs.org/rules/block-lang.html
45 | */
46 | 'vue/block-lang'?: Linter.RuleEntry
47 | /**
48 | * enforce order of component top-level elements
49 | * @see https://eslint.vuejs.org/rules/block-order.html
50 | */
51 | 'vue/block-order'?: Linter.RuleEntry
52 | /**
53 | * Disallow or enforce spaces inside of blocks after opening block and before closing block in ``
54 | * @see https://eslint.vuejs.org/rules/block-spacing.html
55 | */
56 | 'vue/block-spacing'?: Linter.RuleEntry
57 | /**
58 | * enforce line breaks after opening and before closing block-level tags
59 | * @see https://eslint.vuejs.org/rules/block-tag-newline.html
60 | */
61 | 'vue/block-tag-newline'?: Linter.RuleEntry
62 | /**
63 | * Enforce consistent brace style for blocks in ``
64 | * @see https://eslint.vuejs.org/rules/brace-style.html
65 | */
66 | 'vue/brace-style'?: Linter.RuleEntry
67 | /**
68 | * Enforce camelcase naming convention in ``
69 | * @see https://eslint.vuejs.org/rules/camelcase.html
70 | */
71 | 'vue/camelcase'?: Linter.RuleEntry
72 | /**
73 | * Require or disallow trailing commas in ``
74 | * @see https://eslint.vuejs.org/rules/comma-dangle.html
75 | */
76 | 'vue/comma-dangle'?: Linter.RuleEntry
77 | /**
78 | * Enforce consistent spacing before and after commas in ``
79 | * @see https://eslint.vuejs.org/rules/comma-spacing.html
80 | */
81 | 'vue/comma-spacing'?: Linter.RuleEntry
82 | /**
83 | * Enforce consistent comma style in ``
84 | * @see https://eslint.vuejs.org/rules/comma-style.html
85 | */
86 | 'vue/comma-style'?: Linter.RuleEntry
87 | /**
88 | * support comment-directives in ``
89 | * @see https://eslint.vuejs.org/rules/comment-directive.html
90 | */
91 | 'vue/comment-directive'?: Linter.RuleEntry
92 | /**
93 | * enforce component API style
94 | * @see https://eslint.vuejs.org/rules/component-api-style.html
95 | */
96 | 'vue/component-api-style'?: Linter.RuleEntry
97 | /**
98 | * enforce specific casing for component definition name
99 | * @see https://eslint.vuejs.org/rules/component-definition-name-casing.html
100 | */
101 | 'vue/component-definition-name-casing'?: Linter.RuleEntry
102 | /**
103 | * enforce specific casing for the component naming style in template
104 | * @see https://eslint.vuejs.org/rules/component-name-in-template-casing.html
105 | */
106 | 'vue/component-name-in-template-casing'?: Linter.RuleEntry
107 | /**
108 | * enforce the casing of component name in `components` options
109 | * @see https://eslint.vuejs.org/rules/component-options-name-casing.html
110 | */
111 | 'vue/component-options-name-casing'?: Linter.RuleEntry
112 | /**
113 | * enforce specific casing for custom event name
114 | * @see https://eslint.vuejs.org/rules/custom-event-name-casing.html
115 | */
116 | 'vue/custom-event-name-casing'?: Linter.RuleEntry
117 | /**
118 | * enforce declaration style of `defineEmits`
119 | * @see https://eslint.vuejs.org/rules/define-emits-declaration.html
120 | */
121 | 'vue/define-emits-declaration'?: Linter.RuleEntry
122 | /**
123 | * enforce order of compiler macros (`defineProps`, `defineEmits`, etc.)
124 | * @see https://eslint.vuejs.org/rules/define-macros-order.html
125 | */
126 | 'vue/define-macros-order'?: Linter.RuleEntry
127 | /**
128 | * enforce declaration style of `defineProps`
129 | * @see https://eslint.vuejs.org/rules/define-props-declaration.html
130 | */
131 | 'vue/define-props-declaration'?: Linter.RuleEntry
132 | /**
133 | * enforce consistent style for props destructuring
134 | * @see https://eslint.vuejs.org/rules/define-props-destructuring.html
135 | */
136 | 'vue/define-props-destructuring'?: Linter.RuleEntry
137 | /**
138 | * Enforce consistent newlines before and after dots in ``
139 | * @see https://eslint.vuejs.org/rules/dot-location.html
140 | */
141 | 'vue/dot-location'?: Linter.RuleEntry
142 | /**
143 | * Enforce dot notation whenever possible in ``
144 | * @see https://eslint.vuejs.org/rules/dot-notation.html
145 | */
146 | 'vue/dot-notation'?: Linter.RuleEntry
147 | /**
148 | * enforce or forbid the use of the `scoped` and `module` attributes in SFC top level style tags
149 | * @see https://eslint.vuejs.org/rules/enforce-style-attribute.html
150 | */
151 | 'vue/enforce-style-attribute'?: Linter.RuleEntry
152 | /**
153 | * Require the use of `===` and `!==` in ``
154 | * @see https://eslint.vuejs.org/rules/eqeqeq.html
155 | */
156 | 'vue/eqeqeq'?: Linter.RuleEntry
157 | /**
158 | * enforce the location of first attribute
159 | * @see https://eslint.vuejs.org/rules/first-attribute-linebreak.html
160 | */
161 | 'vue/first-attribute-linebreak'?: Linter.RuleEntry
162 | /**
163 | * Require or disallow spacing between function identifiers and their invocations in ``
164 | * @see https://eslint.vuejs.org/rules/func-call-spacing.html
165 | */
166 | 'vue/func-call-spacing'?: Linter.RuleEntry
167 | /**
168 | * disallow usage of button without an explicit type attribute
169 | * @see https://eslint.vuejs.org/rules/html-button-has-type.html
170 | */
171 | 'vue/html-button-has-type'?: Linter.RuleEntry
172 | /**
173 | * require or disallow a line break before tag's closing brackets
174 | * @see https://eslint.vuejs.org/rules/html-closing-bracket-newline.html
175 | */
176 | 'vue/html-closing-bracket-newline'?: Linter.RuleEntry
177 | /**
178 | * require or disallow a space before tag's closing brackets
179 | * @see https://eslint.vuejs.org/rules/html-closing-bracket-spacing.html
180 | */
181 | 'vue/html-closing-bracket-spacing'?: Linter.RuleEntry
182 | /**
183 | * enforce unified line break in HTML comments
184 | * @see https://eslint.vuejs.org/rules/html-comment-content-newline.html
185 | */
186 | 'vue/html-comment-content-newline'?: Linter.RuleEntry
187 | /**
188 | * enforce unified spacing in HTML comments
189 | * @see https://eslint.vuejs.org/rules/html-comment-content-spacing.html
190 | */
191 | 'vue/html-comment-content-spacing'?: Linter.RuleEntry
192 | /**
193 | * enforce consistent indentation in HTML comments
194 | * @see https://eslint.vuejs.org/rules/html-comment-indent.html
195 | */
196 | 'vue/html-comment-indent'?: Linter.RuleEntry
197 | /**
198 | * enforce end tag style
199 | * @see https://eslint.vuejs.org/rules/html-end-tags.html
200 | */
201 | 'vue/html-end-tags'?: Linter.RuleEntry<[]>
202 | /**
203 | * enforce consistent indentation in ``
204 | * @see https://eslint.vuejs.org/rules/html-indent.html
205 | */
206 | 'vue/html-indent'?: Linter.RuleEntry
207 | /**
208 | * enforce quotes style of HTML attributes
209 | * @see https://eslint.vuejs.org/rules/html-quotes.html
210 | */
211 | 'vue/html-quotes'?: Linter.RuleEntry
212 | /**
213 | * enforce self-closing style
214 | * @see https://eslint.vuejs.org/rules/html-self-closing.html
215 | */
216 | 'vue/html-self-closing'?: Linter.RuleEntry
217 | /**
218 | * prevent variables used in JSX to be marked as unused
219 | * @see https://eslint.vuejs.org/rules/jsx-uses-vars.html
220 | */
221 | 'vue/jsx-uses-vars'?: Linter.RuleEntry<[]>
222 | /**
223 | * Enforce consistent spacing between property names and type annotations in types and interfaces in ``
224 | * @see https://eslint.vuejs.org/rules/key-spacing.html
225 | */
226 | 'vue/key-spacing'?: Linter.RuleEntry
227 | /**
228 | * Enforce consistent spacing before and after keywords in ``
229 | * @see https://eslint.vuejs.org/rules/keyword-spacing.html
230 | */
231 | 'vue/keyword-spacing'?: Linter.RuleEntry
232 | /**
233 | * require component name property to match its file name
234 | * @see https://eslint.vuejs.org/rules/match-component-file-name.html
235 | */
236 | 'vue/match-component-file-name'?: Linter.RuleEntry
237 | /**
238 | * require the registered component name to match the imported component name
239 | * @see https://eslint.vuejs.org/rules/match-component-import-name.html
240 | */
241 | 'vue/match-component-import-name'?: Linter.RuleEntry<[]>
242 | /**
243 | * enforce the maximum number of attributes per line
244 | * @see https://eslint.vuejs.org/rules/max-attributes-per-line.html
245 | */
246 | 'vue/max-attributes-per-line'?: Linter.RuleEntry
247 | /**
248 | * enforce a maximum line length in `.vue` files
249 | * @see https://eslint.vuejs.org/rules/max-len.html
250 | */
251 | 'vue/max-len'?: Linter.RuleEntry
252 | /**
253 | * enforce maximum number of lines in Vue SFC blocks
254 | * @see https://eslint.vuejs.org/rules/max-lines-per-block.html
255 | */
256 | 'vue/max-lines-per-block'?: Linter.RuleEntry
257 | /**
258 | * enforce maximum number of props in Vue component
259 | * @see https://eslint.vuejs.org/rules/max-props.html
260 | */
261 | 'vue/max-props'?: Linter.RuleEntry
262 | /**
263 | * enforce maximum depth of template
264 | * @see https://eslint.vuejs.org/rules/max-template-depth.html
265 | */
266 | 'vue/max-template-depth'?: Linter.RuleEntry
267 | /**
268 | * require component names to be always multi-word
269 | * @see https://eslint.vuejs.org/rules/multi-word-component-names.html
270 | */
271 | 'vue/multi-word-component-names'?: Linter.RuleEntry
272 | /**
273 | * require a line break before and after the contents of a multiline element
274 | * @see https://eslint.vuejs.org/rules/multiline-html-element-content-newline.html
275 | */
276 | 'vue/multiline-html-element-content-newline'?: Linter.RuleEntry
277 | /**
278 | * Enforce newlines between operands of ternary expressions in ``
279 | * @see https://eslint.vuejs.org/rules/multiline-ternary.html
280 | */
281 | 'vue/multiline-ternary'?: Linter.RuleEntry
282 | /**
283 | * enforce unified spacing in mustache interpolations
284 | * @see https://eslint.vuejs.org/rules/mustache-interpolation-spacing.html
285 | */
286 | 'vue/mustache-interpolation-spacing'?: Linter.RuleEntry
287 | /**
288 | * enforce new lines between multi-line properties in Vue components
289 | * @see https://eslint.vuejs.org/rules/new-line-between-multi-line-property.html
290 | */
291 | 'vue/new-line-between-multi-line-property'?: Linter.RuleEntry
292 | /**
293 | * enforce Promise or callback style in `nextTick`
294 | * @see https://eslint.vuejs.org/rules/next-tick-style.html
295 | */
296 | 'vue/next-tick-style'?: Linter.RuleEntry
297 | /**
298 | * disallow using arrow functions to define watcher
299 | * @see https://eslint.vuejs.org/rules/no-arrow-functions-in-watch.html
300 | */
301 | 'vue/no-arrow-functions-in-watch'?: Linter.RuleEntry<[]>
302 | /**
303 | * disallow asynchronous actions in computed properties
304 | * @see https://eslint.vuejs.org/rules/no-async-in-computed-properties.html
305 | */
306 | 'vue/no-async-in-computed-properties'?: Linter.RuleEntry<[]>
307 | /**
308 | * disallow the use of bare strings in ``
309 | * @see https://eslint.vuejs.org/rules/no-bare-strings-in-template.html
310 | */
311 | 'vue/no-bare-strings-in-template'?: Linter.RuleEntry
312 | /**
313 | * disallow boolean defaults
314 | * @see https://eslint.vuejs.org/rules/no-boolean-default.html
315 | */
316 | 'vue/no-boolean-default'?: Linter.RuleEntry
317 | /**
318 | * disallow element's child contents which would be overwritten by a directive like `v-html` or `v-text`
319 | * @see https://eslint.vuejs.org/rules/no-child-content.html
320 | */
321 | 'vue/no-child-content'?: Linter.RuleEntry
322 | /**
323 | * disallow accessing computed properties in `data`
324 | * @see https://eslint.vuejs.org/rules/no-computed-properties-in-data.html
325 | */
326 | 'vue/no-computed-properties-in-data'?: Linter.RuleEntry<[]>
327 | /**
328 | * Disallow the use of `console` in ``
329 | * @see https://eslint.vuejs.org/rules/no-console.html
330 | */
331 | 'vue/no-console'?: Linter.RuleEntry
332 | /**
333 | * Disallow constant expressions in conditions in ``
334 | * @see https://eslint.vuejs.org/rules/no-constant-condition.html
335 | */
336 | 'vue/no-constant-condition'?: Linter.RuleEntry
337 | /**
338 | * disallow custom modifiers on v-model used on the component
339 | * @see https://eslint.vuejs.org/rules/no-custom-modifiers-on-v-model.html
340 | */
341 | 'vue/no-custom-modifiers-on-v-model'?: Linter.RuleEntry<[]>
342 | /**
343 | * disallow using deprecated object declaration on data (in Vue.js 3.0.0+)
344 | * @see https://eslint.vuejs.org/rules/no-deprecated-data-object-declaration.html
345 | */
346 | 'vue/no-deprecated-data-object-declaration'?: Linter.RuleEntry<[]>
347 | /**
348 | * disallow using deprecated `$delete` and `$set` (in Vue.js 3.0.0+)
349 | * @see https://eslint.vuejs.org/rules/no-deprecated-delete-set.html
350 | */
351 | 'vue/no-deprecated-delete-set'?: Linter.RuleEntry<[]>
352 | /**
353 | * disallow using deprecated `destroyed` and `beforeDestroy` lifecycle hooks (in Vue.js 3.0.0+)
354 | * @see https://eslint.vuejs.org/rules/no-deprecated-destroyed-lifecycle.html
355 | */
356 | 'vue/no-deprecated-destroyed-lifecycle'?: Linter.RuleEntry<[]>
357 | /**
358 | * disallow using deprecated `$listeners` (in Vue.js 3.0.0+)
359 | * @see https://eslint.vuejs.org/rules/no-deprecated-dollar-listeners-api.html
360 | */
361 | 'vue/no-deprecated-dollar-listeners-api'?: Linter.RuleEntry<[]>
362 | /**
363 | * disallow using deprecated `$scopedSlots` (in Vue.js 3.0.0+)
364 | * @see https://eslint.vuejs.org/rules/no-deprecated-dollar-scopedslots-api.html
365 | */
366 | 'vue/no-deprecated-dollar-scopedslots-api'?: Linter.RuleEntry<[]>
367 | /**
368 | * disallow using deprecated events api (in Vue.js 3.0.0+)
369 | * @see https://eslint.vuejs.org/rules/no-deprecated-events-api.html
370 | */
371 | 'vue/no-deprecated-events-api'?: Linter.RuleEntry<[]>
372 | /**
373 | * disallow using deprecated filters syntax (in Vue.js 3.0.0+)
374 | * @see https://eslint.vuejs.org/rules/no-deprecated-filter.html
375 | */
376 | 'vue/no-deprecated-filter'?: Linter.RuleEntry<[]>
377 | /**
378 | * disallow using deprecated the `functional` template (in Vue.js 3.0.0+)
379 | * @see https://eslint.vuejs.org/rules/no-deprecated-functional-template.html
380 | */
381 | 'vue/no-deprecated-functional-template'?: Linter.RuleEntry<[]>
382 | /**
383 | * disallow using deprecated the `is` attribute on HTML elements (in Vue.js 3.0.0+)
384 | * @see https://eslint.vuejs.org/rules/no-deprecated-html-element-is.html
385 | */
386 | 'vue/no-deprecated-html-element-is'?: Linter.RuleEntry<[]>
387 | /**
388 | * disallow using deprecated `inline-template` attribute (in Vue.js 3.0.0+)
389 | * @see https://eslint.vuejs.org/rules/no-deprecated-inline-template.html
390 | */
391 | 'vue/no-deprecated-inline-template'?: Linter.RuleEntry<[]>
392 | /**
393 | * disallow deprecated `model` definition (in Vue.js 3.0.0+)
394 | * @see https://eslint.vuejs.org/rules/no-deprecated-model-definition.html
395 | */
396 | 'vue/no-deprecated-model-definition'?: Linter.RuleEntry
397 | /**
398 | * disallow deprecated `this` access in props default function (in Vue.js 3.0.0+)
399 | * @see https://eslint.vuejs.org/rules/no-deprecated-props-default-this.html
400 | */
401 | 'vue/no-deprecated-props-default-this'?: Linter.RuleEntry<[]>
402 | /**
403 | * disallow using deprecated `tag` property on `RouterLink` (in Vue.js 3.0.0+)
404 | * @see https://eslint.vuejs.org/rules/no-deprecated-router-link-tag-prop.html
405 | */
406 | 'vue/no-deprecated-router-link-tag-prop'?: Linter.RuleEntry
407 | /**
408 | * disallow deprecated `scope` attribute (in Vue.js 2.5.0+)
409 | * @see https://eslint.vuejs.org/rules/no-deprecated-scope-attribute.html
410 | */
411 | 'vue/no-deprecated-scope-attribute'?: Linter.RuleEntry<[]>
412 | /**
413 | * disallow deprecated `slot` attribute (in Vue.js 2.6.0+)
414 | * @see https://eslint.vuejs.org/rules/no-deprecated-slot-attribute.html
415 | */
416 | 'vue/no-deprecated-slot-attribute'?: Linter.RuleEntry
417 | /**
418 | * disallow deprecated `slot-scope` attribute (in Vue.js 2.6.0+)
419 | * @see https://eslint.vuejs.org/rules/no-deprecated-slot-scope-attribute.html
420 | */
421 | 'vue/no-deprecated-slot-scope-attribute'?: Linter.RuleEntry<[]>
422 | /**
423 | * disallow use of deprecated `.sync` modifier on `v-bind` directive (in Vue.js 3.0.0+)
424 | * @see https://eslint.vuejs.org/rules/no-deprecated-v-bind-sync.html
425 | */
426 | 'vue/no-deprecated-v-bind-sync'?: Linter.RuleEntry<[]>
427 | /**
428 | * disallow deprecated `v-is` directive (in Vue.js 3.1.0+)
429 | * @see https://eslint.vuejs.org/rules/no-deprecated-v-is.html
430 | */
431 | 'vue/no-deprecated-v-is'?: Linter.RuleEntry<[]>
432 | /**
433 | * disallow using deprecated `.native` modifiers (in Vue.js 3.0.0+)
434 | * @see https://eslint.vuejs.org/rules/no-deprecated-v-on-native-modifier.html
435 | */
436 | 'vue/no-deprecated-v-on-native-modifier'?: Linter.RuleEntry<[]>
437 | /**
438 | * disallow using deprecated number (keycode) modifiers (in Vue.js 3.0.0+)
439 | * @see https://eslint.vuejs.org/rules/no-deprecated-v-on-number-modifiers.html
440 | */
441 | 'vue/no-deprecated-v-on-number-modifiers'?: Linter.RuleEntry<[]>
442 | /**
443 | * disallow using deprecated `Vue.config.keyCodes` (in Vue.js 3.0.0+)
444 | * @see https://eslint.vuejs.org/rules/no-deprecated-vue-config-keycodes.html
445 | */
446 | 'vue/no-deprecated-vue-config-keycodes'?: Linter.RuleEntry<[]>
447 | /**
448 | * disallow duplication of field names
449 | * @see https://eslint.vuejs.org/rules/no-dupe-keys.html
450 | */
451 | 'vue/no-dupe-keys'?: Linter.RuleEntry
452 | /**
453 | * disallow duplicate conditions in `v-if` / `v-else-if` chains
454 | * @see https://eslint.vuejs.org/rules/no-dupe-v-else-if.html
455 | */
456 | 'vue/no-dupe-v-else-if'?: Linter.RuleEntry<[]>
457 | /**
458 | * enforce `inheritAttrs` to be set to `false` when using `v-bind="$attrs"`
459 | * @see https://eslint.vuejs.org/rules/no-duplicate-attr-inheritance.html
460 | */
461 | 'vue/no-duplicate-attr-inheritance'?: Linter.RuleEntry
462 | /**
463 | * disallow duplication of attributes
464 | * @see https://eslint.vuejs.org/rules/no-duplicate-attributes.html
465 | */
466 | 'vue/no-duplicate-attributes'?: Linter.RuleEntry
467 | /**
468 | * disallow the `` ` |