@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.
- package/README.md +25 -21
- package/dist/configs/imports.d.cts +16 -0
- package/dist/configs/imports.d.ts +16 -0
- package/dist/configs/index.d.cts +2 -0
- package/dist/configs/index.d.ts +2 -0
- package/dist/configs/vitest.d.cts +22 -0
- package/dist/configs/vitest.d.ts +22 -0
- package/dist/configs/vue.d.cts +18 -3
- package/dist/configs/vue.d.ts +18 -3
- package/dist/globs.d.cts +2 -0
- package/dist/globs.d.ts +2 -0
- package/dist/index.cjs +116 -4
- package/dist/index.js +105 -5
- package/dist/types/gens/eslint.d.cts +3 -1
- package/dist/types/gens/eslint.d.ts +3 -1
- package/dist/types/gens/imports.d.cts +42 -0
- package/dist/types/gens/imports.d.ts +42 -0
- package/dist/types/gens/vitest.d.cts +377 -0
- package/dist/types/gens/vitest.d.ts +377 -0
- package/dist/types/gens/vue.d.cts +281 -0
- package/dist/types/gens/vue.d.ts +281 -0
- package/dist/types/index.d.cts +2 -0
- package/dist/types/index.d.ts +2 -0
- package/package.json +28 -3
|
@@ -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 {};
|