@kazupon/eslint-config 0.14.1 → 0.16.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.
@@ -0,0 +1,377 @@
1
+ import type { Linter } from 'eslint';
2
+ export interface VitestRules {
3
+ /**
4
+ * require .spec test file pattern
5
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/consistent-test-filename.md
6
+ */
7
+ 'vitest/consistent-test-filename'?: Linter.RuleEntry<VitestConsistentTestFilename>;
8
+ /**
9
+ * enforce using test or it but not both
10
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/consistent-test-it.md
11
+ */
12
+ 'vitest/consistent-test-it'?: Linter.RuleEntry<VitestConsistentTestIt>;
13
+ /**
14
+ * enforce having expectation in test body
15
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/expect-expect.md
16
+ */
17
+ 'vitest/expect-expect'?: Linter.RuleEntry<VitestExpectExpect>;
18
+ /**
19
+ * Enforce padding around afterAll blocks
20
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/index.md
21
+ */
22
+ 'vitest/index'?: Linter.RuleEntry<[]>;
23
+ /**
24
+ * enforce a maximum number of expect per test
25
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/max-expects.md
26
+ */
27
+ 'vitest/max-expects'?: Linter.RuleEntry<VitestMaxExpects>;
28
+ /**
29
+ * require describe block to be less than set max value or default value
30
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/max-nested-describe.md
31
+ */
32
+ 'vitest/max-nested-describe'?: Linter.RuleEntry<VitestMaxNestedDescribe>;
33
+ /**
34
+ * disallow alias methods
35
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/no-alias-methods.md
36
+ */
37
+ 'vitest/no-alias-methods'?: Linter.RuleEntry<[]>;
38
+ /**
39
+ * disallow commented out tests
40
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/no-commented-out-tests.md
41
+ */
42
+ 'vitest/no-commented-out-tests'?: Linter.RuleEntry<[]>;
43
+ /**
44
+ * disallow conditional expects
45
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/no-conditional-expect.md
46
+ */
47
+ 'vitest/no-conditional-expect'?: Linter.RuleEntry<[]>;
48
+ /**
49
+ * disallow conditional tests
50
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/no-conditional-in-test.md
51
+ */
52
+ 'vitest/no-conditional-in-test'?: Linter.RuleEntry<[]>;
53
+ /**
54
+ * disallow conditional tests
55
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/no-conditional-tests.md
56
+ */
57
+ 'vitest/no-conditional-tests'?: Linter.RuleEntry<[]>;
58
+ /**
59
+ * disallow disabled tests
60
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/no-disabled-tests.md
61
+ */
62
+ 'vitest/no-disabled-tests'?: Linter.RuleEntry<[]>;
63
+ /**
64
+ * disallow using a callback in asynchronous tests and hooks
65
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/no-done-callback.md
66
+ * @deprecated
67
+ */
68
+ 'vitest/no-done-callback'?: Linter.RuleEntry<[]>;
69
+ /**
70
+ * disallow duplicate hooks and teardown hooks
71
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/no-duplicate-hooks.md
72
+ */
73
+ 'vitest/no-duplicate-hooks'?: Linter.RuleEntry<[]>;
74
+ /**
75
+ * disallow focused tests
76
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/no-focused-tests.md
77
+ */
78
+ 'vitest/no-focused-tests'?: Linter.RuleEntry<VitestNoFocusedTests>;
79
+ /**
80
+ * disallow setup and teardown hooks
81
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/no-hooks.md
82
+ */
83
+ 'vitest/no-hooks'?: Linter.RuleEntry<VitestNoHooks>;
84
+ /**
85
+ * disallow identical titles
86
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/no-identical-title.md
87
+ */
88
+ 'vitest/no-identical-title'?: Linter.RuleEntry<[]>;
89
+ /**
90
+ * disallow importing `node:test`
91
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/no-import-node-test.md
92
+ */
93
+ 'vitest/no-import-node-test'?: Linter.RuleEntry<[]>;
94
+ /**
95
+ * disallow string interpolation in snapshots
96
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/no-interpolation-in-snapshots.md
97
+ */
98
+ 'vitest/no-interpolation-in-snapshots'?: Linter.RuleEntry<[]>;
99
+ /**
100
+ * disallow large snapshots
101
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/no-large-snapshots.md
102
+ */
103
+ 'vitest/no-large-snapshots'?: Linter.RuleEntry<VitestNoLargeSnapshots>;
104
+ /**
105
+ * disallow importing from __mocks__ directory
106
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/no-mocks-import.md
107
+ */
108
+ 'vitest/no-mocks-import'?: Linter.RuleEntry<[]>;
109
+ /**
110
+ * disallow the use of certain matchers
111
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/no-restricted-matchers.md
112
+ */
113
+ 'vitest/no-restricted-matchers'?: Linter.RuleEntry<VitestNoRestrictedMatchers>;
114
+ /**
115
+ * disallow specific `vi.` methods
116
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/no-restricted-vi-methods.md
117
+ */
118
+ 'vitest/no-restricted-vi-methods'?: Linter.RuleEntry<VitestNoRestrictedViMethods>;
119
+ /**
120
+ * disallow using `expect` outside of `it` or `test` blocks
121
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/no-standalone-expect.md
122
+ */
123
+ 'vitest/no-standalone-expect'?: Linter.RuleEntry<VitestNoStandaloneExpect>;
124
+ /**
125
+ * disallow using `test` as a prefix
126
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/no-test-prefixes.md
127
+ */
128
+ 'vitest/no-test-prefixes'?: Linter.RuleEntry<[]>;
129
+ /**
130
+ * disallow return statements in tests
131
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/no-test-return-statement.md
132
+ */
133
+ 'vitest/no-test-return-statement'?: Linter.RuleEntry<[]>;
134
+ /**
135
+ * enforce using `toBeCalledWith()` or `toHaveBeenCalledWith()`
136
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/prefer-called-with.md
137
+ */
138
+ 'vitest/prefer-called-with'?: Linter.RuleEntry<[]>;
139
+ /**
140
+ * enforce using the built-in comparison matchers
141
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/prefer-comparison-matcher.md
142
+ */
143
+ 'vitest/prefer-comparison-matcher'?: Linter.RuleEntry<[]>;
144
+ /**
145
+ * enforce using `each` rather than manual loops
146
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/prefer-each.md
147
+ */
148
+ 'vitest/prefer-each'?: Linter.RuleEntry<[]>;
149
+ /**
150
+ * enforce using the built-in quality matchers
151
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/prefer-equality-matcher.md
152
+ */
153
+ 'vitest/prefer-equality-matcher'?: Linter.RuleEntry<[]>;
154
+ /**
155
+ * enforce using expect assertions instead of callbacks
156
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/prefer-expect-assertions.md
157
+ */
158
+ 'vitest/prefer-expect-assertions'?: Linter.RuleEntry<VitestPreferExpectAssertions>;
159
+ /**
160
+ * enforce using `expect().resolves` over `expect(await ...)` syntax
161
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/prefer-expect-resolves.md
162
+ */
163
+ 'vitest/prefer-expect-resolves'?: Linter.RuleEntry<[]>;
164
+ /**
165
+ * enforce having hooks in consistent order
166
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/prefer-hooks-in-order.md
167
+ */
168
+ 'vitest/prefer-hooks-in-order'?: Linter.RuleEntry<[]>;
169
+ /**
170
+ * enforce having hooks before any test cases
171
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/prefer-hooks-on-top.md
172
+ */
173
+ 'vitest/prefer-hooks-on-top'?: Linter.RuleEntry<[]>;
174
+ /**
175
+ * enforce lowercase titles
176
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/prefer-lowercase-title.md
177
+ */
178
+ 'vitest/prefer-lowercase-title'?: Linter.RuleEntry<VitestPreferLowercaseTitle>;
179
+ /**
180
+ * enforce mock resolved/rejected shorthands for promises
181
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/prefer-mock-promise-shorthand.md
182
+ */
183
+ 'vitest/prefer-mock-promise-shorthand'?: Linter.RuleEntry<[]>;
184
+ /**
185
+ * enforce including a hint with external snapshots
186
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/prefer-snapshot-hint.md
187
+ */
188
+ 'vitest/prefer-snapshot-hint'?: Linter.RuleEntry<VitestPreferSnapshotHint>;
189
+ /**
190
+ * enforce using `vi.spyOn`
191
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/prefer-spy-on.md
192
+ */
193
+ 'vitest/prefer-spy-on'?: Linter.RuleEntry<[]>;
194
+ /**
195
+ * enforce strict equal over equal
196
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/prefer-strict-equal.md
197
+ */
198
+ 'vitest/prefer-strict-equal'?: Linter.RuleEntry<[]>;
199
+ /**
200
+ * enforce using toBe()
201
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/prefer-to-be.md
202
+ */
203
+ 'vitest/prefer-to-be'?: Linter.RuleEntry<[]>;
204
+ /**
205
+ * enforce using toBeFalsy()
206
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/prefer-to-be-falsy.md
207
+ */
208
+ 'vitest/prefer-to-be-falsy'?: Linter.RuleEntry<[]>;
209
+ /**
210
+ * enforce using toBeObject()
211
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/prefer-to-be-object.md
212
+ */
213
+ 'vitest/prefer-to-be-object'?: Linter.RuleEntry<[]>;
214
+ /**
215
+ * enforce using `toBeTruthy`
216
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/prefer-to-be-truthy.md
217
+ */
218
+ 'vitest/prefer-to-be-truthy'?: Linter.RuleEntry<[]>;
219
+ /**
220
+ * enforce using toContain()
221
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/prefer-to-contain.md
222
+ */
223
+ 'vitest/prefer-to-contain'?: Linter.RuleEntry<[]>;
224
+ /**
225
+ * enforce using toHaveLength()
226
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/prefer-to-have-length.md
227
+ */
228
+ 'vitest/prefer-to-have-length'?: Linter.RuleEntry<[]>;
229
+ /**
230
+ * enforce using `test.todo`
231
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/prefer-todo.md
232
+ */
233
+ 'vitest/prefer-todo'?: Linter.RuleEntry<[]>;
234
+ /**
235
+ * require setup and teardown to be within a hook
236
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/require-hook.md
237
+ */
238
+ 'vitest/require-hook'?: Linter.RuleEntry<VitestRequireHook>;
239
+ /**
240
+ * require local Test Context for concurrent snapshot tests
241
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/require-local-test-context-for-concurrent-snapshots.md
242
+ */
243
+ 'vitest/require-local-test-context-for-concurrent-snapshots'?: Linter.RuleEntry<[]>;
244
+ /**
245
+ * require toThrow() to be called with an error message
246
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/require-to-throw-message.md
247
+ */
248
+ 'vitest/require-to-throw-message'?: Linter.RuleEntry<[]>;
249
+ /**
250
+ * enforce that all tests are in a top-level describe
251
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/require-top-level-describe.md
252
+ */
253
+ 'vitest/require-top-level-describe'?: Linter.RuleEntry<VitestRequireTopLevelDescribe>;
254
+ /**
255
+ * enforce valid describe callback
256
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/valid-describe-callback.md
257
+ */
258
+ 'vitest/valid-describe-callback'?: Linter.RuleEntry<[]>;
259
+ /**
260
+ * enforce valid `expect()` usage
261
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/valid-expect.md
262
+ */
263
+ 'vitest/valid-expect'?: Linter.RuleEntry<VitestValidExpect>;
264
+ /**
265
+ * enforce valid titles
266
+ * @see https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/valid-title.md
267
+ */
268
+ 'vitest/valid-title'?: Linter.RuleEntry<VitestValidTitle>;
269
+ }
270
+ type VitestConsistentTestFilename = [] | [
271
+ {
272
+ pattern?: string;
273
+ allTestPattern?: string;
274
+ }
275
+ ];
276
+ type VitestConsistentTestIt = [] | [
277
+ {
278
+ fn?: ("test" | "it");
279
+ withinDescribe?: ("test" | "it");
280
+ }
281
+ ];
282
+ type VitestExpectExpect = [] | [
283
+ {
284
+ assertFunctionNames?: [] | [string];
285
+ additionalTestBlockFunctions?: string[];
286
+ }
287
+ ];
288
+ type VitestMaxExpects = [] | [
289
+ {
290
+ max?: number;
291
+ }
292
+ ];
293
+ type VitestMaxNestedDescribe = [] | [
294
+ {
295
+ max?: number;
296
+ }
297
+ ];
298
+ type VitestNoFocusedTests = [] | [
299
+ {
300
+ fixable?: boolean;
301
+ }
302
+ ];
303
+ type VitestNoHooks = [] | [
304
+ {
305
+ allow?: unknown[];
306
+ }
307
+ ];
308
+ type VitestNoLargeSnapshots = [] | [
309
+ {
310
+ maxSize?: number;
311
+ inlineMaxSize?: number;
312
+ allowedSnapshots?: {
313
+ [k: string]: unknown[] | undefined;
314
+ };
315
+ }
316
+ ];
317
+ type VitestNoRestrictedMatchers = [] | [
318
+ {
319
+ [k: string]: (string | null) | undefined;
320
+ }
321
+ ];
322
+ type VitestNoRestrictedViMethods = [] | [
323
+ {
324
+ [k: string]: (string | null) | undefined;
325
+ }
326
+ ];
327
+ type VitestNoStandaloneExpect = [] | [
328
+ {
329
+ additionaltestblockfunctions?: string[];
330
+ [k: string]: unknown | undefined;
331
+ }
332
+ ];
333
+ type VitestPreferExpectAssertions = [] | [
334
+ {
335
+ onlyFunctionsWithAsyncKeyword?: boolean;
336
+ onlyFunctionsWithExpectInLoop?: boolean;
337
+ onlyFunctionsWithExpectInCallback?: boolean;
338
+ }
339
+ ];
340
+ type VitestPreferLowercaseTitle = [] | [
341
+ {
342
+ ignore?: ("describe" | "test" | "it")[];
343
+ allowedPrefixes?: string[];
344
+ ignoreTopLevelDescribe?: boolean;
345
+ lowercaseFirstCharacterOnly?: boolean;
346
+ }
347
+ ];
348
+ type VitestPreferSnapshotHint = [] | [("always" | "multi")];
349
+ type VitestRequireHook = [] | [
350
+ {
351
+ allowedFunctionCalls?: string[];
352
+ }
353
+ ];
354
+ type VitestRequireTopLevelDescribe = [] | [
355
+ {
356
+ maxNumberOfTopLevelDescribes?: number;
357
+ }
358
+ ];
359
+ type VitestValidExpect = [] | [
360
+ {
361
+ alwaysAwait?: boolean;
362
+ asyncMatchers?: string[];
363
+ minArgs?: number;
364
+ maxArgs?: number;
365
+ }
366
+ ];
367
+ type VitestValidTitle = [] | [
368
+ {
369
+ ignoreTypeOfDescribeName?: boolean;
370
+ allowArguments?: boolean;
371
+ disallowedWords?: string[];
372
+ [k: string]: (string | [string] | [string, string] | {
373
+ [k: string]: (string | [string] | [string, string]) | undefined;
374
+ });
375
+ }
376
+ ];
377
+ export {};
@@ -1,5 +1,83 @@
1
1
  import type { Linter } from 'eslint';
2
2
  export interface VueRules {
3
+ 'vue-composable/composable-placement'?: Linter.RuleEntry<[]>;
4
+ 'vue-composable/lifecycle-placement'?: Linter.RuleEntry<[]>;
5
+ /**
6
+ * enforce the `<style>` tags to be plain or have the `scoped` or `module` attribute
7
+ * @see https://future-architect.github.io/eslint-plugin-vue-scoped-css/rules/enforce-style-type.html
8
+ */
9
+ 'vue-scoped-css/enforce-style-type'?: Linter.RuleEntry<VueScopedCssEnforceStyleType>;
10
+ /**
11
+ * disallow using deprecated deep combinators
12
+ * @see https://future-architect.github.io/eslint-plugin-vue-scoped-css/rules/no-deprecated-deep-combinator.html
13
+ */
14
+ 'vue-scoped-css/no-deprecated-deep-combinator'?: Linter.RuleEntry<[]>;
15
+ /**
16
+ * disallow v-enter and v-leave classes.
17
+ * @see https://future-architect.github.io/eslint-plugin-vue-scoped-css/rules/no-deprecated-v-enter-v-leave-class.html
18
+ */
19
+ 'vue-scoped-css/no-deprecated-v-enter-v-leave-class'?: Linter.RuleEntry<[]>;
20
+ /**
21
+ * disallow parent selector for `::v-global` pseudo-element
22
+ * @see https://future-architect.github.io/eslint-plugin-vue-scoped-css/rules/no-parent-of-v-global.html
23
+ */
24
+ 'vue-scoped-css/no-parent-of-v-global'?: Linter.RuleEntry<[]>;
25
+ /**
26
+ * disallow parsing errors in `<style>`
27
+ * @see https://future-architect.github.io/eslint-plugin-vue-scoped-css/rules/no-parsing-error.html
28
+ */
29
+ 'vue-scoped-css/no-parsing-error'?: Linter.RuleEntry<[]>;
30
+ /**
31
+ * disallow `@keyframes` which don't use in Scoped CSS
32
+ * @see https://future-architect.github.io/eslint-plugin-vue-scoped-css/rules/no-unused-keyframes.html
33
+ */
34
+ 'vue-scoped-css/no-unused-keyframes'?: Linter.RuleEntry<VueScopedCssNoUnusedKeyframes>;
35
+ /**
36
+ * disallow selectors defined in Scoped CSS that don't use in `<template>`
37
+ * @see https://future-architect.github.io/eslint-plugin-vue-scoped-css/rules/no-unused-selector.html
38
+ */
39
+ 'vue-scoped-css/no-unused-selector'?: Linter.RuleEntry<VueScopedCssNoUnusedSelector>;
40
+ /**
41
+ * enforce the `<style>` tags to has the `scoped` attribute
42
+ * @see https://future-architect.github.io/eslint-plugin-vue-scoped-css/rules/require-scoped.html
43
+ * @deprecated
44
+ */
45
+ 'vue-scoped-css/require-scoped'?: Linter.RuleEntry<VueScopedCssRequireScoped>;
46
+ /**
47
+ * disallow selectors defined that is not used inside `<template>`
48
+ * @see https://future-architect.github.io/eslint-plugin-vue-scoped-css/rules/require-selector-used-inside.html
49
+ */
50
+ 'vue-scoped-css/require-selector-used-inside'?: Linter.RuleEntry<VueScopedCssRequireSelectorUsedInside>;
51
+ /**
52
+ * require selector argument to be passed to `::v-deep()`
53
+ * @see https://future-architect.github.io/eslint-plugin-vue-scoped-css/rules/require-v-deep-argument.html
54
+ */
55
+ 'vue-scoped-css/require-v-deep-argument'?: Linter.RuleEntry<[]>;
56
+ /**
57
+ * require selector argument to be passed to `::v-global()`
58
+ * @see https://future-architect.github.io/eslint-plugin-vue-scoped-css/rules/require-v-global-argument.html
59
+ */
60
+ 'vue-scoped-css/require-v-global-argument'?: Linter.RuleEntry<[]>;
61
+ /**
62
+ * require selector argument to be passed to `::v-slotted()`
63
+ * @see https://future-architect.github.io/eslint-plugin-vue-scoped-css/rules/require-v-slotted-argument.html
64
+ */
65
+ 'vue-scoped-css/require-v-slotted-argument'?: Linter.RuleEntry<[]>;
66
+ /**
67
+ * enforce `:deep()`/`::v-deep()` style
68
+ * @see https://future-architect.github.io/eslint-plugin-vue-scoped-css/rules/v-deep-pseudo-style.html
69
+ */
70
+ 'vue-scoped-css/v-deep-pseudo-style'?: Linter.RuleEntry<VueScopedCssVDeepPseudoStyle>;
71
+ /**
72
+ * enforce `:global()`/`::v-global()` style
73
+ * @see https://future-architect.github.io/eslint-plugin-vue-scoped-css/rules/v-global-pseudo-style.html
74
+ */
75
+ 'vue-scoped-css/v-global-pseudo-style'?: Linter.RuleEntry<VueScopedCssVGlobalPseudoStyle>;
76
+ /**
77
+ * enforce `:slotted()`/`::v-slotted()` style
78
+ * @see https://future-architect.github.io/eslint-plugin-vue-scoped-css/rules/v-slotted-pseudo-style.html
79
+ */
80
+ 'vue-scoped-css/v-slotted-pseudo-style'?: Linter.RuleEntry<VueScopedCssVSlottedPseudoStyle>;
3
81
  /**
4
82
  * Enforce linebreaks after opening and before closing array brackets in `<template>`
5
83
  * @see https://eslint.vuejs.org/rules/array-bracket-newline.html
@@ -1211,7 +1289,128 @@ export interface VueRules {
1211
1289
  * @see https://eslint.vuejs.org/rules/valid-v-text.html
1212
1290
  */
1213
1291
  'vue/valid-v-text'?: Linter.RuleEntry<[]>;
1292
+ /**
1293
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/alt-text.html
1294
+ */
1295
+ 'vuejs-accessibility/alt-text'?: Linter.RuleEntry<VuejsAccessibilityAltText>;
1296
+ /**
1297
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/anchor-has-content.html
1298
+ */
1299
+ 'vuejs-accessibility/anchor-has-content'?: Linter.RuleEntry<VuejsAccessibilityAnchorHasContent>;
1300
+ /**
1301
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/aria-props.html
1302
+ */
1303
+ 'vuejs-accessibility/aria-props'?: Linter.RuleEntry<[]>;
1304
+ /**
1305
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/aria-role.html
1306
+ */
1307
+ 'vuejs-accessibility/aria-role'?: Linter.RuleEntry<VuejsAccessibilityAriaRole>;
1308
+ /**
1309
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/aria-unsupported-elements.html
1310
+ */
1311
+ 'vuejs-accessibility/aria-unsupported-elements'?: Linter.RuleEntry<[]>;
1312
+ /**
1313
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/click-events-have-key-events.html
1314
+ */
1315
+ 'vuejs-accessibility/click-events-have-key-events'?: Linter.RuleEntry<[]>;
1316
+ /**
1317
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/form-control-has-label.html
1318
+ */
1319
+ 'vuejs-accessibility/form-control-has-label'?: Linter.RuleEntry<VuejsAccessibilityFormControlHasLabel>;
1320
+ /**
1321
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/heading-has-content.html
1322
+ */
1323
+ 'vuejs-accessibility/heading-has-content'?: Linter.RuleEntry<VuejsAccessibilityHeadingHasContent>;
1324
+ /**
1325
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/iframe-has-title.html
1326
+ */
1327
+ 'vuejs-accessibility/iframe-has-title'?: Linter.RuleEntry<[]>;
1328
+ /**
1329
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/interactive-supports-focus.html
1330
+ */
1331
+ 'vuejs-accessibility/interactive-supports-focus'?: Linter.RuleEntry<VuejsAccessibilityInteractiveSupportsFocus>;
1332
+ /**
1333
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/label-has-for.html
1334
+ */
1335
+ 'vuejs-accessibility/label-has-for'?: Linter.RuleEntry<VuejsAccessibilityLabelHasFor>;
1336
+ /**
1337
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/media-has-caption.html
1338
+ */
1339
+ 'vuejs-accessibility/media-has-caption'?: Linter.RuleEntry<VuejsAccessibilityMediaHasCaption>;
1340
+ /**
1341
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/mouse-events-have-key-events.html
1342
+ */
1343
+ 'vuejs-accessibility/mouse-events-have-key-events'?: Linter.RuleEntry<[]>;
1344
+ /**
1345
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-access-key.html
1346
+ */
1347
+ 'vuejs-accessibility/no-access-key'?: Linter.RuleEntry<[]>;
1348
+ /**
1349
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-aria-hidden-on-focusable.html
1350
+ */
1351
+ 'vuejs-accessibility/no-aria-hidden-on-focusable'?: Linter.RuleEntry<[]>;
1352
+ /**
1353
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-autofocus.html
1354
+ */
1355
+ 'vuejs-accessibility/no-autofocus'?: Linter.RuleEntry<VuejsAccessibilityNoAutofocus>;
1356
+ /**
1357
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-distracting-elements.html
1358
+ */
1359
+ 'vuejs-accessibility/no-distracting-elements'?: Linter.RuleEntry<VuejsAccessibilityNoDistractingElements>;
1360
+ /**
1361
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-onchange.html
1362
+ * @deprecated
1363
+ */
1364
+ 'vuejs-accessibility/no-onchange'?: Linter.RuleEntry<[]>;
1365
+ /**
1366
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-redundant-roles.html
1367
+ */
1368
+ 'vuejs-accessibility/no-redundant-roles'?: Linter.RuleEntry<VuejsAccessibilityNoRedundantRoles>;
1369
+ /**
1370
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-role-presentation-on-focusable.html
1371
+ */
1372
+ 'vuejs-accessibility/no-role-presentation-on-focusable'?: Linter.RuleEntry<[]>;
1373
+ /**
1374
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-static-element-interactions.html
1375
+ */
1376
+ 'vuejs-accessibility/no-static-element-interactions'?: Linter.RuleEntry<[]>;
1377
+ /**
1378
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/role-has-required-aria-props.html
1379
+ */
1380
+ 'vuejs-accessibility/role-has-required-aria-props'?: Linter.RuleEntry<[]>;
1381
+ /**
1382
+ * @see https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/tabindex-no-positive.html
1383
+ */
1384
+ 'vuejs-accessibility/tabindex-no-positive'?: Linter.RuleEntry<[]>;
1214
1385
  }
1386
+ type VueScopedCssEnforceStyleType = [] | [
1387
+ {
1388
+ allows?: [("plain" | "scoped" | "module"), ...(("plain" | "scoped" | "module"))[]];
1389
+ }
1390
+ ];
1391
+ type VueScopedCssNoUnusedKeyframes = [] | [
1392
+ {
1393
+ checkUnscoped?: boolean;
1394
+ }
1395
+ ];
1396
+ type VueScopedCssNoUnusedSelector = [] | [
1397
+ {
1398
+ ignoreBEMModifier?: boolean;
1399
+ captureClassesFromDoc?: [] | [string];
1400
+ checkUnscoped?: boolean;
1401
+ }
1402
+ ];
1403
+ type VueScopedCssRequireScoped = [] | [("always" | "never")];
1404
+ type VueScopedCssRequireSelectorUsedInside = [] | [
1405
+ {
1406
+ ignoreBEMModifier?: boolean;
1407
+ captureClassesFromDoc?: [] | [string];
1408
+ checkUnscoped?: boolean;
1409
+ }
1410
+ ];
1411
+ type VueScopedCssVDeepPseudoStyle = [] | [(":deep" | "::v-deep")];
1412
+ type VueScopedCssVGlobalPseudoStyle = [] | [(":global" | "::v-global")];
1413
+ type VueScopedCssVSlottedPseudoStyle = [] | [(":slotted" | "::v-slotted")];
1215
1414
  type VueArrayBracketNewline = [] | [
1216
1415
  (("always" | "never" | "consistent") | {
1217
1416
  multiline?: boolean;
@@ -2462,4 +2661,86 @@ type VueValidVSlot = [] | [
2462
2661
  allowModifiers?: boolean;
2463
2662
  }
2464
2663
  ];
2664
+ type VuejsAccessibilityAltText = [] | [
2665
+ {
2666
+ elements?: string[];
2667
+ img?: string[];
2668
+ object?: string[];
2669
+ area?: string[];
2670
+ "input[type=\"image\"]"?: string[];
2671
+ [k: string]: unknown | undefined;
2672
+ }
2673
+ ];
2674
+ type VuejsAccessibilityAnchorHasContent = [] | [
2675
+ {
2676
+ components?: string[];
2677
+ accessibleChildren?: string[];
2678
+ accessibleDirectives?: string[];
2679
+ [k: string]: unknown | undefined;
2680
+ }
2681
+ ];
2682
+ type VuejsAccessibilityAriaRole = [] | [
2683
+ {
2684
+ ignoreNonDOM?: boolean;
2685
+ }
2686
+ ];
2687
+ type VuejsAccessibilityFormControlHasLabel = [] | [
2688
+ {
2689
+ labelComponents?: string[];
2690
+ controlComponents?: string[];
2691
+ [k: string]: unknown | undefined;
2692
+ }
2693
+ ];
2694
+ type VuejsAccessibilityHeadingHasContent = [] | [
2695
+ {
2696
+ components?: string[];
2697
+ accessibleChildren?: string[];
2698
+ accessibleDirectives?: string[];
2699
+ [k: string]: unknown | undefined;
2700
+ }
2701
+ ];
2702
+ type VuejsAccessibilityInteractiveSupportsFocus = [] | [
2703
+ {
2704
+ 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")[];
2705
+ [k: string]: unknown | undefined;
2706
+ }
2707
+ ];
2708
+ type VuejsAccessibilityLabelHasFor = [] | [
2709
+ {
2710
+ components?: string[];
2711
+ controlComponents?: string[];
2712
+ required?: (("nesting" | "id") | {
2713
+ some: ("nesting" | "id")[];
2714
+ [k: string]: unknown | undefined;
2715
+ } | {
2716
+ every: ("nesting" | "id")[];
2717
+ [k: string]: unknown | undefined;
2718
+ });
2719
+ allowChildren?: boolean;
2720
+ [k: string]: unknown | undefined;
2721
+ }
2722
+ ];
2723
+ type VuejsAccessibilityMediaHasCaption = [] | [
2724
+ {
2725
+ audio?: string[];
2726
+ track?: string[];
2727
+ video?: string[];
2728
+ [k: string]: unknown | undefined;
2729
+ }
2730
+ ];
2731
+ type VuejsAccessibilityNoAutofocus = [] | [
2732
+ {
2733
+ ignoreNonDOM?: boolean;
2734
+ }
2735
+ ];
2736
+ type VuejsAccessibilityNoDistractingElements = [] | [
2737
+ {
2738
+ [k: string]: unknown | undefined;
2739
+ }
2740
+ ];
2741
+ type VuejsAccessibilityNoRedundantRoles = [] | [
2742
+ {
2743
+ [k: string]: string[] | undefined;
2744
+ }
2745
+ ];
2465
2746
  export {};