@pobammer-ts/small-rules 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1246 -0
- package/dist/index.js +26290 -0
- package/package.json +127 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,1246 @@
|
|
|
1
|
+
//#region src/index.d.ts
|
|
2
|
+
declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
3
|
+
"array-type-generic": import("oxlint-plugin-utilities").CreateRule<readonly [], "useGenericArrayType", readonly []>;
|
|
4
|
+
"ban-instances": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
5
|
+
readonly bannedInstances?: readonly string[] | {
|
|
6
|
+
readonly [x: string]: string;
|
|
7
|
+
};
|
|
8
|
+
readonly bannedProperties?: {
|
|
9
|
+
readonly [x: string]: {
|
|
10
|
+
readonly [x: string]: string;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
}], "bannedInstance" | "bannedInstanceCustom" | "bannedProperty" | "bannedPropertyCustom", readonly [{
|
|
14
|
+
readonly additionalProperties: false;
|
|
15
|
+
readonly properties: {
|
|
16
|
+
readonly bannedInstances: {
|
|
17
|
+
readonly description: "Map of banned class names to custom messages, or an array of class names.";
|
|
18
|
+
readonly oneOf: readonly [{
|
|
19
|
+
readonly items: {
|
|
20
|
+
readonly type: "string";
|
|
21
|
+
};
|
|
22
|
+
readonly type: "array";
|
|
23
|
+
}, {
|
|
24
|
+
readonly additionalProperties: {
|
|
25
|
+
readonly type: "string";
|
|
26
|
+
};
|
|
27
|
+
readonly type: "object";
|
|
28
|
+
}];
|
|
29
|
+
};
|
|
30
|
+
readonly bannedProperties: {
|
|
31
|
+
readonly additionalProperties: {
|
|
32
|
+
readonly additionalProperties: {
|
|
33
|
+
readonly type: "string";
|
|
34
|
+
};
|
|
35
|
+
readonly type: "object";
|
|
36
|
+
};
|
|
37
|
+
readonly description: "Map of banned class names to maps of banned property names and custom messages.";
|
|
38
|
+
readonly type: "object";
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
readonly type: "object";
|
|
42
|
+
}]>;
|
|
43
|
+
"ban-react-fc": import("oxlint-plugin-utilities").CreateRule<readonly [], "banReactFC", readonly []>;
|
|
44
|
+
"ban-types": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
45
|
+
readonly bannedTypes?: readonly string[] | {
|
|
46
|
+
readonly [x: string]: string;
|
|
47
|
+
};
|
|
48
|
+
}], "bannedType" | "bannedTypeWithReplacement", readonly [{
|
|
49
|
+
readonly additionalProperties: false;
|
|
50
|
+
readonly properties: {
|
|
51
|
+
readonly bannedTypes: {
|
|
52
|
+
readonly description: "Array of banned type names or an object mapping banned type names to preferred replacement names.";
|
|
53
|
+
readonly oneOf: readonly [{
|
|
54
|
+
readonly items: {
|
|
55
|
+
readonly type: "string";
|
|
56
|
+
};
|
|
57
|
+
readonly type: "array";
|
|
58
|
+
}, {
|
|
59
|
+
readonly additionalProperties: {
|
|
60
|
+
readonly type: "string";
|
|
61
|
+
};
|
|
62
|
+
readonly type: "object";
|
|
63
|
+
}];
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
readonly type: "object";
|
|
67
|
+
}]>;
|
|
68
|
+
"directive-disable-enable-pair": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
69
|
+
readonly allowWholeFile?: boolean;
|
|
70
|
+
}], "missingPair" | "missingRulePair", readonly [{
|
|
71
|
+
readonly additionalProperties: false;
|
|
72
|
+
readonly properties: {
|
|
73
|
+
allowWholeFile: {
|
|
74
|
+
type: "boolean";
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
readonly type: "object";
|
|
78
|
+
}]>;
|
|
79
|
+
"directive-no-aggregating-enable": import("oxlint-plugin-utilities").CreateRule<readonly [], "aggregatingEnable", readonly []>;
|
|
80
|
+
"directive-no-duplicate-disable": import("oxlint-plugin-utilities").CreateRule<readonly [], "duplicate" | "duplicateRule", readonly []>;
|
|
81
|
+
"directive-no-restricted-disable": import("oxlint-plugin-utilities").CreateRule<readonly string[], "disallow", {
|
|
82
|
+
readonly items: {
|
|
83
|
+
type: "string";
|
|
84
|
+
};
|
|
85
|
+
readonly type: "array";
|
|
86
|
+
readonly uniqueItems: true;
|
|
87
|
+
}>;
|
|
88
|
+
"directive-no-unlimited-disable": import("oxlint-plugin-utilities").CreateRule<readonly [], "unexpected", readonly []>;
|
|
89
|
+
"directive-no-unused-enable": import("oxlint-plugin-utilities").CreateRule<readonly [], "unused" | "unusedRule", readonly []>;
|
|
90
|
+
"directive-no-use": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
91
|
+
readonly allow?: readonly string[];
|
|
92
|
+
}], "disallow", readonly [{
|
|
93
|
+
readonly additionalProperties: false;
|
|
94
|
+
readonly properties: {
|
|
95
|
+
readonly allow: {
|
|
96
|
+
readonly items: {
|
|
97
|
+
type: "string";
|
|
98
|
+
};
|
|
99
|
+
readonly type: "array";
|
|
100
|
+
readonly uniqueItems: true;
|
|
101
|
+
};
|
|
102
|
+
};
|
|
103
|
+
readonly type: "object";
|
|
104
|
+
}]>;
|
|
105
|
+
"directive-require-description": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
106
|
+
readonly ignore?: readonly string[];
|
|
107
|
+
}], "missingDescription", readonly [{
|
|
108
|
+
readonly additionalProperties: false;
|
|
109
|
+
readonly properties: {
|
|
110
|
+
readonly ignore: {
|
|
111
|
+
readonly items: {
|
|
112
|
+
type: "string";
|
|
113
|
+
};
|
|
114
|
+
readonly type: "array";
|
|
115
|
+
readonly uniqueItems: true;
|
|
116
|
+
};
|
|
117
|
+
};
|
|
118
|
+
readonly type: "object";
|
|
119
|
+
}]>;
|
|
120
|
+
"enforce-ianitor-check-type": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
121
|
+
readonly baseThreshold?: number;
|
|
122
|
+
readonly errorThreshold?: number;
|
|
123
|
+
readonly interfacePenalty?: number;
|
|
124
|
+
readonly performanceMode?: boolean;
|
|
125
|
+
readonly warnThreshold?: number;
|
|
126
|
+
}], "complexInterfaceNeedsCheck" | "missingIanitorCheckType", readonly [{
|
|
127
|
+
readonly additionalProperties: false;
|
|
128
|
+
readonly properties: {
|
|
129
|
+
readonly baseThreshold: {
|
|
130
|
+
readonly minimum: 1;
|
|
131
|
+
readonly type: "number";
|
|
132
|
+
};
|
|
133
|
+
readonly errorThreshold: {
|
|
134
|
+
readonly minimum: 1;
|
|
135
|
+
readonly type: "number";
|
|
136
|
+
};
|
|
137
|
+
readonly interfacePenalty: {
|
|
138
|
+
readonly minimum: 1;
|
|
139
|
+
readonly type: "number";
|
|
140
|
+
};
|
|
141
|
+
readonly performanceMode: {
|
|
142
|
+
readonly type: "boolean";
|
|
143
|
+
};
|
|
144
|
+
readonly warnThreshold: {
|
|
145
|
+
readonly minimum: 1;
|
|
146
|
+
readonly type: "number";
|
|
147
|
+
};
|
|
148
|
+
};
|
|
149
|
+
readonly type: "object";
|
|
150
|
+
}]>;
|
|
151
|
+
"memoized-effect-dependencies": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
152
|
+
readonly environment?: "roblox-ts" | "standard";
|
|
153
|
+
readonly hooks?: readonly {
|
|
154
|
+
readonly dependenciesIndex?: number;
|
|
155
|
+
readonly name: string;
|
|
156
|
+
}[];
|
|
157
|
+
readonly mode?: "aggressive" | "definite" | "moderate";
|
|
158
|
+
}], "unmemoizedDependency", readonly [{
|
|
159
|
+
readonly additionalProperties: false;
|
|
160
|
+
readonly properties: {
|
|
161
|
+
readonly environment: {
|
|
162
|
+
readonly default: "roblox-ts";
|
|
163
|
+
readonly description: "The React environment: 'roblox-ts' uses @rbxts/react, 'standard' uses react.";
|
|
164
|
+
readonly enum: readonly ["roblox-ts", "standard"];
|
|
165
|
+
readonly type: "string";
|
|
166
|
+
};
|
|
167
|
+
readonly hooks: {
|
|
168
|
+
readonly description: "Array of effect hook entries to check for memoized dependencies";
|
|
169
|
+
readonly items: {
|
|
170
|
+
readonly additionalProperties: false;
|
|
171
|
+
readonly properties: {
|
|
172
|
+
readonly dependenciesIndex: {
|
|
173
|
+
readonly description: "Index of the dependencies array for validation";
|
|
174
|
+
readonly type: "number";
|
|
175
|
+
};
|
|
176
|
+
readonly name: {
|
|
177
|
+
readonly description: "The name of the hook";
|
|
178
|
+
readonly type: "string";
|
|
179
|
+
};
|
|
180
|
+
};
|
|
181
|
+
readonly required: readonly ["name"];
|
|
182
|
+
readonly type: "object";
|
|
183
|
+
};
|
|
184
|
+
readonly type: "array";
|
|
185
|
+
};
|
|
186
|
+
readonly mode: {
|
|
187
|
+
readonly default: "definite";
|
|
188
|
+
readonly description: "Strictness for memoization detection: definite (only obvious), moderate (unknown calls and non-const), aggressive (any non-module).";
|
|
189
|
+
readonly enum: readonly ["aggressive", "definite", "moderate"];
|
|
190
|
+
readonly type: "string";
|
|
191
|
+
};
|
|
192
|
+
};
|
|
193
|
+
readonly type: "object";
|
|
194
|
+
}]>;
|
|
195
|
+
"no-array-constructor-elements": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
196
|
+
readonly environment?: "roblox-ts" | "standard";
|
|
197
|
+
readonly requireExplicitGenericOnNewArray?: boolean;
|
|
198
|
+
}], "avoidConstructorEnumeration" | "avoidLengthConstructorInStandard" | "avoidSingleArgumentConstructor" | "collapseArrayPushInitialization" | "requireExplicitGenericOnNewArray" | "suggestArrayFromLength" | "suggestArrayLiteral" | "suggestCollapseArrayPushInitialization", readonly [{
|
|
199
|
+
readonly additionalProperties: false;
|
|
200
|
+
readonly properties: {
|
|
201
|
+
readonly environment: {
|
|
202
|
+
readonly default: "roblox-ts";
|
|
203
|
+
readonly description: "Array constructor environment mode: 'roblox-ts' allows new Array(length); 'standard' reports it.";
|
|
204
|
+
readonly enum: readonly ["roblox-ts", "standard"];
|
|
205
|
+
readonly type: "string";
|
|
206
|
+
};
|
|
207
|
+
readonly requireExplicitGenericOnNewArray: {
|
|
208
|
+
readonly default: true;
|
|
209
|
+
readonly description: "When true, zero-argument new Array() requires explicit generic type arguments or contextual array typing.";
|
|
210
|
+
readonly type: "boolean";
|
|
211
|
+
};
|
|
212
|
+
};
|
|
213
|
+
readonly type: "object";
|
|
214
|
+
}]>;
|
|
215
|
+
"no-array-size-assignment": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
216
|
+
readonly allowAutofix?: boolean;
|
|
217
|
+
}], "usePush", readonly [{
|
|
218
|
+
readonly additionalProperties: false;
|
|
219
|
+
readonly properties: {
|
|
220
|
+
readonly allowAutofix: {
|
|
221
|
+
readonly default: false;
|
|
222
|
+
readonly type: "boolean";
|
|
223
|
+
};
|
|
224
|
+
};
|
|
225
|
+
readonly type: "object";
|
|
226
|
+
}]>;
|
|
227
|
+
"no-async-constructor": import("oxlint-plugin-utilities").CreateRule<readonly [], "asyncIifeInConstructor" | "awaitInConstructor" | "orphanedPromise" | "promiseChainInConstructor" | "unhandledAsyncCall", readonly []>;
|
|
228
|
+
"no-cascading-set-state": import("oxlint-plugin-utilities").CreateRule<readonly [], "cascadingSetState", undefined>;
|
|
229
|
+
"no-color3-constructor": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
230
|
+
readonly reportUnknownComponents?: boolean;
|
|
231
|
+
}], "onlyZeroArgs" | "useFromRGB", readonly [{
|
|
232
|
+
readonly additionalProperties: false;
|
|
233
|
+
readonly properties: {
|
|
234
|
+
readonly reportUnknownComponents: {
|
|
235
|
+
readonly default: true;
|
|
236
|
+
readonly type: "boolean";
|
|
237
|
+
};
|
|
238
|
+
};
|
|
239
|
+
readonly type: "object";
|
|
240
|
+
}]>;
|
|
241
|
+
"no-commented-code": import("oxlint-plugin-utilities").CreateRule<readonly [], "commentedCode", readonly []>;
|
|
242
|
+
"no-constant-condition-with-break": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
243
|
+
readonly loopExitCalls?: readonly string[];
|
|
244
|
+
}], "unexpected", readonly [{
|
|
245
|
+
readonly additionalProperties: false;
|
|
246
|
+
readonly properties: {
|
|
247
|
+
readonly loopExitCalls: {
|
|
248
|
+
readonly items: {
|
|
249
|
+
readonly minLength: 1;
|
|
250
|
+
readonly type: "string";
|
|
251
|
+
};
|
|
252
|
+
readonly type: "array";
|
|
253
|
+
};
|
|
254
|
+
};
|
|
255
|
+
readonly type: "object";
|
|
256
|
+
}]>;
|
|
257
|
+
"no-error": import("oxlint-plugin-utilities").CreateRule<readonly [], "noError", readonly []>;
|
|
258
|
+
"no-events-in-events-callback": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
259
|
+
readonly eventsImportPaths: readonly string[];
|
|
260
|
+
}], "preferFunctions", readonly [{
|
|
261
|
+
readonly additionalProperties: false;
|
|
262
|
+
readonly properties: {
|
|
263
|
+
readonly eventsImportPaths: {
|
|
264
|
+
readonly items: {
|
|
265
|
+
readonly minLength: 1;
|
|
266
|
+
readonly type: "string";
|
|
267
|
+
};
|
|
268
|
+
readonly type: "array";
|
|
269
|
+
};
|
|
270
|
+
};
|
|
271
|
+
readonly required: readonly ["eventsImportPaths"];
|
|
272
|
+
readonly type: "object";
|
|
273
|
+
}]>;
|
|
274
|
+
"no-giant-component": import("oxlint-plugin-utilities").CreateRule<readonly [], "giantComponent", undefined>;
|
|
275
|
+
"no-god-components": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
276
|
+
readonly enforceTargetLines?: boolean;
|
|
277
|
+
readonly ignoreComponents?: readonly string[];
|
|
278
|
+
readonly maxDestructuredProps?: number;
|
|
279
|
+
readonly maxLines?: number;
|
|
280
|
+
readonly maxStateHooks?: number;
|
|
281
|
+
readonly maxTsxNesting?: number;
|
|
282
|
+
readonly stateHooks?: readonly string[];
|
|
283
|
+
readonly targetLines?: number;
|
|
284
|
+
}], "exceedsMaxLines" | "exceedsTargetLines" | "nullLiteral" | "tooManyProps" | "tooManyStateHooks" | "tsxNestingTooDeep", readonly [{
|
|
285
|
+
readonly additionalProperties: false;
|
|
286
|
+
readonly properties: {
|
|
287
|
+
readonly enforceTargetLines: {
|
|
288
|
+
readonly default: true;
|
|
289
|
+
readonly description: "Whether to report when exceeding targetLines (soft limit).";
|
|
290
|
+
readonly type: "boolean";
|
|
291
|
+
};
|
|
292
|
+
readonly ignoreComponents: {
|
|
293
|
+
readonly description: "Component names to ignore.";
|
|
294
|
+
readonly items: {
|
|
295
|
+
readonly type: "string";
|
|
296
|
+
};
|
|
297
|
+
readonly type: "array";
|
|
298
|
+
};
|
|
299
|
+
readonly maxDestructuredProps: {
|
|
300
|
+
readonly default: 5;
|
|
301
|
+
readonly description: "Maximum number of destructured props in a component parameter.";
|
|
302
|
+
readonly type: "number";
|
|
303
|
+
};
|
|
304
|
+
readonly maxLines: {
|
|
305
|
+
readonly default: 200;
|
|
306
|
+
readonly description: "Hard maximum lines for a component.";
|
|
307
|
+
readonly type: "number";
|
|
308
|
+
};
|
|
309
|
+
readonly maxStateHooks: {
|
|
310
|
+
readonly default: 5;
|
|
311
|
+
readonly description: "Maximum number of stateful hook calls in a component.";
|
|
312
|
+
readonly type: "number";
|
|
313
|
+
};
|
|
314
|
+
readonly maxTsxNesting: {
|
|
315
|
+
readonly default: 3;
|
|
316
|
+
readonly description: "Maximum JSX/TSX nesting depth in a component.";
|
|
317
|
+
readonly type: "number";
|
|
318
|
+
};
|
|
319
|
+
readonly stateHooks: {
|
|
320
|
+
readonly default: readonly ["useState", "useReducer", "useBinding"];
|
|
321
|
+
readonly description: "Hook names to count toward state complexity.";
|
|
322
|
+
readonly items: {
|
|
323
|
+
readonly type: "string";
|
|
324
|
+
};
|
|
325
|
+
readonly type: "array";
|
|
326
|
+
};
|
|
327
|
+
readonly targetLines: {
|
|
328
|
+
readonly default: 120;
|
|
329
|
+
readonly description: "Soft target lines for a component.";
|
|
330
|
+
readonly type: "number";
|
|
331
|
+
};
|
|
332
|
+
};
|
|
333
|
+
readonly type: "object";
|
|
334
|
+
}]>;
|
|
335
|
+
"no-ianitor-in-function-body": import("oxlint-plugin-utilities").CreateRule<readonly [], "hoistIanitorValidator", readonly []>;
|
|
336
|
+
"no-ianitor-success-access": import("oxlint-plugin-utilities").CreateRule<readonly [], "preferCreateGuard", readonly []>;
|
|
337
|
+
"no-identity-map": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
338
|
+
readonly bindingPatterns?: readonly string[];
|
|
339
|
+
}], "identityArrayMap" | "identityBindingMap", readonly [{
|
|
340
|
+
readonly additionalProperties: false;
|
|
341
|
+
readonly properties: {
|
|
342
|
+
readonly bindingPatterns: {
|
|
343
|
+
readonly default: readonly string[];
|
|
344
|
+
readonly description: "Variable name patterns to recognize as Bindings (case insensitive)";
|
|
345
|
+
readonly items: {
|
|
346
|
+
readonly type: "string";
|
|
347
|
+
};
|
|
348
|
+
readonly type: "array";
|
|
349
|
+
};
|
|
350
|
+
};
|
|
351
|
+
readonly type: "object";
|
|
352
|
+
}]>;
|
|
353
|
+
"no-increment-decrement": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
354
|
+
readonly allowAutofix?: boolean;
|
|
355
|
+
}], "noDecrement" | "noIncrement", readonly [{
|
|
356
|
+
readonly additionalProperties: false;
|
|
357
|
+
readonly properties: {
|
|
358
|
+
readonly allowAutofix: {
|
|
359
|
+
readonly default: false;
|
|
360
|
+
readonly type: "boolean";
|
|
361
|
+
};
|
|
362
|
+
};
|
|
363
|
+
readonly type: "object";
|
|
364
|
+
}]>;
|
|
365
|
+
"no-inline-property-on-memo-component": import("oxlint-plugin-utilities").CreateRule<readonly [], "inlineProperty", undefined>;
|
|
366
|
+
"no-instance-methods-without-this": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
367
|
+
readonly checkPrivate?: boolean;
|
|
368
|
+
readonly checkProtected?: boolean;
|
|
369
|
+
readonly checkPublic?: boolean;
|
|
370
|
+
}], "noInstanceMethodWithoutThis", readonly [{
|
|
371
|
+
readonly additionalProperties: false;
|
|
372
|
+
readonly properties: {
|
|
373
|
+
readonly checkPrivate: {
|
|
374
|
+
readonly default: true;
|
|
375
|
+
readonly description: "Check private methods (default: true)";
|
|
376
|
+
readonly type: "boolean";
|
|
377
|
+
};
|
|
378
|
+
readonly checkProtected: {
|
|
379
|
+
readonly default: true;
|
|
380
|
+
readonly description: "Check protected methods (default: true)";
|
|
381
|
+
readonly type: "boolean";
|
|
382
|
+
};
|
|
383
|
+
readonly checkPublic: {
|
|
384
|
+
readonly default: true;
|
|
385
|
+
readonly description: "Check public methods (default: true)";
|
|
386
|
+
readonly type: "boolean";
|
|
387
|
+
};
|
|
388
|
+
};
|
|
389
|
+
readonly type: "object";
|
|
390
|
+
}]>;
|
|
391
|
+
"no-native-properties-spread": import("oxlint-plugin-utilities").CreateRule<readonly [], "noElementSpread" | "noNativePropertiesSpread", readonly []>;
|
|
392
|
+
"no-new-instance-in-use-memo": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
393
|
+
readonly constructors?: readonly string[];
|
|
394
|
+
readonly environment?: "roblox-ts" | "standard";
|
|
395
|
+
readonly maxHelperTraceDepth?: number;
|
|
396
|
+
}], "noNewInUseMemo", readonly [{
|
|
397
|
+
readonly additionalProperties: false;
|
|
398
|
+
readonly properties: {
|
|
399
|
+
readonly constructors: {
|
|
400
|
+
readonly description: "Constructor identifiers that should be disallowed inside useMemo callbacks.";
|
|
401
|
+
readonly items: {
|
|
402
|
+
readonly type: "string";
|
|
403
|
+
};
|
|
404
|
+
readonly type: "array";
|
|
405
|
+
};
|
|
406
|
+
readonly environment: {
|
|
407
|
+
readonly default: "roblox-ts";
|
|
408
|
+
readonly description: "The React environment: 'roblox-ts' uses @rbxts/react, 'standard' uses react.";
|
|
409
|
+
readonly enum: readonly ["roblox-ts", "standard"];
|
|
410
|
+
readonly type: "string";
|
|
411
|
+
};
|
|
412
|
+
readonly maxHelperTraceDepth: {
|
|
413
|
+
readonly default: 4;
|
|
414
|
+
readonly description: "Maximum depth for tracing local helper function calls from useMemo callbacks. 0 disables helper traversal.";
|
|
415
|
+
readonly minimum: 0;
|
|
416
|
+
readonly type: "integer";
|
|
417
|
+
};
|
|
418
|
+
};
|
|
419
|
+
readonly type: "object";
|
|
420
|
+
}]>;
|
|
421
|
+
"no-print": import("oxlint-plugin-utilities").CreateRule<readonly [], "noPrint", readonly []>;
|
|
422
|
+
"no-redundant-aspect-ratio-constraint": import("oxlint-plugin-utilities").CreateRule<readonly [], "redundantAspectRatioConstraint", readonly []>;
|
|
423
|
+
"no-render-helper-functions": import("oxlint-plugin-utilities").CreateRule<readonly [], "noRenderHelper", readonly []>;
|
|
424
|
+
"no-spec-file-extension": import("oxlint-plugin-utilities").CreateRule<readonly [], "noSpecFileExtension", readonly []>;
|
|
425
|
+
"no-static-react-create-element": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
426
|
+
readonly environment?: "roblox-ts" | "standard";
|
|
427
|
+
}], "useJsx", readonly [{
|
|
428
|
+
readonly additionalProperties: false;
|
|
429
|
+
readonly properties: {
|
|
430
|
+
environment: {
|
|
431
|
+
enum: readonly ["roblox-ts", "standard"];
|
|
432
|
+
type: string;
|
|
433
|
+
};
|
|
434
|
+
};
|
|
435
|
+
readonly type: "object";
|
|
436
|
+
}]>;
|
|
437
|
+
"no-table-create-map": import("oxlint-plugin-utilities").CreateRule<readonly [], "avoidConstructThenMap", readonly []>;
|
|
438
|
+
"no-task-wait": import("oxlint-plugin-utilities").CreateRule<readonly [], "noPromiseDelayAwait" | "noTaskWait", readonly []>;
|
|
439
|
+
"no-underscore-react-props": import("oxlint-plugin-utilities").CreateRule<readonly [], "noUnderscoreReactProp", readonly []>;
|
|
440
|
+
"no-unused-imports": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
441
|
+
readonly checkJSDoc?: boolean;
|
|
442
|
+
}], "unusedImport", readonly [{
|
|
443
|
+
readonly additionalProperties: false;
|
|
444
|
+
readonly properties: {
|
|
445
|
+
readonly checkJSDoc: {
|
|
446
|
+
readonly default: true;
|
|
447
|
+
readonly description: "Check if imports are referenced in JSDoc comments";
|
|
448
|
+
readonly type: "boolean";
|
|
449
|
+
};
|
|
450
|
+
};
|
|
451
|
+
readonly type: "object";
|
|
452
|
+
}]>;
|
|
453
|
+
"no-unused-use-memo": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
454
|
+
readonly environment?: "roblox-ts" | "standard";
|
|
455
|
+
}], "unusedUseMemo", readonly [{
|
|
456
|
+
readonly additionalProperties: false;
|
|
457
|
+
readonly properties: {
|
|
458
|
+
readonly environment: {
|
|
459
|
+
readonly default: "roblox-ts";
|
|
460
|
+
readonly enum: readonly ["roblox-ts", "standard"];
|
|
461
|
+
readonly type: "string";
|
|
462
|
+
};
|
|
463
|
+
};
|
|
464
|
+
readonly type: "object";
|
|
465
|
+
}]>;
|
|
466
|
+
"no-use-memo-simple-expression": import("oxlint-plugin-utilities").CreateRule<readonly [], "simpleMemo", undefined>;
|
|
467
|
+
"no-useless-constants": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
468
|
+
readonly ignoreCallPatterns?: readonly string[];
|
|
469
|
+
}], "uselessConstant" | "uselessConstantNoFix" | "uselessConstants", readonly [{
|
|
470
|
+
readonly additionalProperties: false;
|
|
471
|
+
readonly properties: {
|
|
472
|
+
readonly ignoreCallPatterns: {
|
|
473
|
+
readonly default: readonly string[];
|
|
474
|
+
readonly items: {
|
|
475
|
+
readonly type: "string";
|
|
476
|
+
};
|
|
477
|
+
readonly type: "array";
|
|
478
|
+
};
|
|
479
|
+
};
|
|
480
|
+
readonly type: "object";
|
|
481
|
+
}]>;
|
|
482
|
+
"no-useless-default": import("oxlint-plugin-utilities").CreateRule<readonly [], "uselessDefault", readonly []>;
|
|
483
|
+
"no-useless-use-effect": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
484
|
+
readonly environment?: "roblox-ts" | "standard";
|
|
485
|
+
readonly hooks?: readonly string[];
|
|
486
|
+
readonly propertyCallbackPrefixes?: readonly string[];
|
|
487
|
+
readonly refHooks?: readonly string[];
|
|
488
|
+
readonly reportAdjustState?: boolean;
|
|
489
|
+
readonly reportDerivedState?: boolean;
|
|
490
|
+
readonly reportDuplicateDeps?: boolean;
|
|
491
|
+
readonly reportEffectChain?: boolean;
|
|
492
|
+
readonly reportEmptyEffect?: boolean;
|
|
493
|
+
readonly reportEventFlag?: boolean;
|
|
494
|
+
readonly reportEventSpecificLogic?: boolean;
|
|
495
|
+
readonly reportExternalStore?: boolean;
|
|
496
|
+
readonly reportInitializeState?: boolean;
|
|
497
|
+
readonly reportLogOnly?: boolean;
|
|
498
|
+
readonly reportMixedDerivedState?: boolean;
|
|
499
|
+
readonly reportNotifyParent?: boolean;
|
|
500
|
+
readonly reportPassRefToParent?: boolean;
|
|
501
|
+
readonly reportResetState?: boolean;
|
|
502
|
+
readonly stateHooks?: readonly string[];
|
|
503
|
+
}], "adjustState" | "derivedState" | "duplicateDeps" | "effectChain" | "emptyEffect" | "eventFlag" | "eventSpecificLogic" | "externalStore" | "initializeState" | "logOnly" | "mixedDerivedState" | "notifyParent" | "passRefToParent" | "resetState", readonly [{
|
|
504
|
+
readonly additionalProperties: false;
|
|
505
|
+
readonly properties: {
|
|
506
|
+
readonly environment: {
|
|
507
|
+
readonly default: "roblox-ts";
|
|
508
|
+
readonly description: "The React environment: 'roblox-ts' uses @rbxts/react, 'standard' uses react.";
|
|
509
|
+
readonly enum: readonly ["roblox-ts", "standard"];
|
|
510
|
+
readonly type: "string";
|
|
511
|
+
};
|
|
512
|
+
readonly hooks: {
|
|
513
|
+
readonly default: readonly ["useEffect", "useLayoutEffect", "useInsertionEffect"];
|
|
514
|
+
readonly items: {
|
|
515
|
+
readonly type: "string";
|
|
516
|
+
};
|
|
517
|
+
readonly type: "array";
|
|
518
|
+
};
|
|
519
|
+
readonly propertyCallbackPrefixes: {
|
|
520
|
+
readonly default: readonly ["on"];
|
|
521
|
+
readonly items: {
|
|
522
|
+
readonly type: "string";
|
|
523
|
+
};
|
|
524
|
+
readonly type: "array";
|
|
525
|
+
};
|
|
526
|
+
readonly refHooks: {
|
|
527
|
+
readonly default: readonly ["useRef"];
|
|
528
|
+
readonly description: "Ref hook names that return mutable ref objects.";
|
|
529
|
+
readonly items: {
|
|
530
|
+
readonly type: "string";
|
|
531
|
+
};
|
|
532
|
+
readonly type: "array";
|
|
533
|
+
};
|
|
534
|
+
readonly reportAdjustState: {
|
|
535
|
+
readonly default: true;
|
|
536
|
+
readonly type: "boolean";
|
|
537
|
+
};
|
|
538
|
+
readonly reportDerivedState: {
|
|
539
|
+
readonly default: true;
|
|
540
|
+
readonly type: "boolean";
|
|
541
|
+
};
|
|
542
|
+
readonly reportDuplicateDeps: {
|
|
543
|
+
readonly default: true;
|
|
544
|
+
readonly type: "boolean";
|
|
545
|
+
};
|
|
546
|
+
readonly reportEffectChain: {
|
|
547
|
+
readonly default: true;
|
|
548
|
+
readonly type: "boolean";
|
|
549
|
+
};
|
|
550
|
+
readonly reportEmptyEffect: {
|
|
551
|
+
readonly default: true;
|
|
552
|
+
readonly type: "boolean";
|
|
553
|
+
};
|
|
554
|
+
readonly reportEventFlag: {
|
|
555
|
+
readonly default: true;
|
|
556
|
+
readonly type: "boolean";
|
|
557
|
+
};
|
|
558
|
+
readonly reportEventSpecificLogic: {
|
|
559
|
+
readonly default: true;
|
|
560
|
+
readonly type: "boolean";
|
|
561
|
+
};
|
|
562
|
+
readonly reportExternalStore: {
|
|
563
|
+
readonly default: true;
|
|
564
|
+
readonly type: "boolean";
|
|
565
|
+
};
|
|
566
|
+
readonly reportInitializeState: {
|
|
567
|
+
readonly default: true;
|
|
568
|
+
readonly type: "boolean";
|
|
569
|
+
};
|
|
570
|
+
readonly reportLogOnly: {
|
|
571
|
+
readonly default: true;
|
|
572
|
+
readonly type: "boolean";
|
|
573
|
+
};
|
|
574
|
+
readonly reportMixedDerivedState: {
|
|
575
|
+
readonly default: true;
|
|
576
|
+
readonly type: "boolean";
|
|
577
|
+
};
|
|
578
|
+
readonly reportNotifyParent: {
|
|
579
|
+
readonly default: true;
|
|
580
|
+
readonly type: "boolean";
|
|
581
|
+
};
|
|
582
|
+
readonly reportPassRefToParent: {
|
|
583
|
+
readonly default: true;
|
|
584
|
+
readonly type: "boolean";
|
|
585
|
+
};
|
|
586
|
+
readonly reportResetState: {
|
|
587
|
+
readonly default: true;
|
|
588
|
+
readonly type: "boolean";
|
|
589
|
+
};
|
|
590
|
+
readonly stateHooks: {
|
|
591
|
+
readonly default: readonly ["useState", "useReducer"];
|
|
592
|
+
readonly description: "State hook names that return [value, setter] pairs.";
|
|
593
|
+
readonly items: {
|
|
594
|
+
readonly type: "string";
|
|
595
|
+
};
|
|
596
|
+
readonly type: "array";
|
|
597
|
+
};
|
|
598
|
+
};
|
|
599
|
+
readonly type: "object";
|
|
600
|
+
}]>;
|
|
601
|
+
"no-useless-use-memo": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
602
|
+
readonly dependencyMode?: "aggressive" | "empty-or-omitted" | "non-updating";
|
|
603
|
+
readonly environment?: "roblox-ts" | "standard";
|
|
604
|
+
readonly staticGlobalFactories?: readonly string[];
|
|
605
|
+
}], "uselessUseMemo", readonly [{
|
|
606
|
+
readonly additionalProperties: false;
|
|
607
|
+
readonly properties: {
|
|
608
|
+
readonly dependencyMode: {
|
|
609
|
+
readonly default: "non-updating";
|
|
610
|
+
readonly enum: readonly ["empty-or-omitted", "non-updating", "aggressive"];
|
|
611
|
+
readonly type: "string";
|
|
612
|
+
};
|
|
613
|
+
readonly environment: {
|
|
614
|
+
readonly default: "roblox-ts";
|
|
615
|
+
readonly enum: readonly ["roblox-ts", "standard"];
|
|
616
|
+
readonly type: "string";
|
|
617
|
+
};
|
|
618
|
+
readonly staticGlobalFactories: {
|
|
619
|
+
readonly items: {
|
|
620
|
+
readonly type: "string";
|
|
621
|
+
};
|
|
622
|
+
readonly type: "array";
|
|
623
|
+
};
|
|
624
|
+
};
|
|
625
|
+
readonly type: "object";
|
|
626
|
+
}]>;
|
|
627
|
+
"no-useless-use-spring": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
628
|
+
readonly springHooks?: readonly string[];
|
|
629
|
+
readonly staticGlobalFactories?: readonly string[];
|
|
630
|
+
readonly treatEmptyDepsAsViolation?: boolean;
|
|
631
|
+
}], "uselessSpring", readonly [{
|
|
632
|
+
readonly additionalProperties: false;
|
|
633
|
+
readonly default: {
|
|
634
|
+
readonly staticGlobalFactories: readonly string[];
|
|
635
|
+
readonly treatEmptyDepsAsViolation: true;
|
|
636
|
+
};
|
|
637
|
+
readonly properties: {
|
|
638
|
+
readonly springHooks: {
|
|
639
|
+
readonly description: "Hook identifiers that should be treated as spring hooks";
|
|
640
|
+
readonly items: {
|
|
641
|
+
readonly type: "string";
|
|
642
|
+
};
|
|
643
|
+
readonly type: "array";
|
|
644
|
+
};
|
|
645
|
+
readonly staticGlobalFactories: {
|
|
646
|
+
readonly default: readonly string[];
|
|
647
|
+
readonly description: "Global factory identifiers that are treated as static constructors";
|
|
648
|
+
readonly items: {
|
|
649
|
+
readonly type: "string";
|
|
650
|
+
};
|
|
651
|
+
readonly type: "array";
|
|
652
|
+
};
|
|
653
|
+
readonly treatEmptyDepsAsViolation: {
|
|
654
|
+
readonly default: true;
|
|
655
|
+
readonly description: "Treat static config with an empty dependency array as a violation";
|
|
656
|
+
readonly type: "boolean";
|
|
657
|
+
};
|
|
658
|
+
};
|
|
659
|
+
readonly type: "object";
|
|
660
|
+
}]>;
|
|
661
|
+
"no-warn": import("oxlint-plugin-utilities").CreateRule<readonly [], "noWarn", readonly []>;
|
|
662
|
+
"only-type-imports": import("oxlint-plugin-utilities").CreateRule<readonly [], "onlyTypeImports", readonly []>;
|
|
663
|
+
"prefer-class-properties": import("oxlint-plugin-utilities").CreateRule<readonly ["always" | "never"], "unexpectedAssignment" | "unexpectedClassProperty", readonly [{
|
|
664
|
+
readonly enum: readonly ["always", "never"];
|
|
665
|
+
readonly type: "string";
|
|
666
|
+
}]>;
|
|
667
|
+
"prefer-constant-dispatch": import("oxlint-plugin-utilities").CreateRule<readonly [], "preferConstantDispatch", readonly []>;
|
|
668
|
+
"prefer-context-stack": import("oxlint-plugin-utilities").CreateRule<readonly [], "preferContextStack", readonly []>;
|
|
669
|
+
"prefer-early-return": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
670
|
+
readonly maximumStatements?: number;
|
|
671
|
+
}], "preferEarlyReturn", readonly [{
|
|
672
|
+
readonly additionalProperties: false;
|
|
673
|
+
readonly properties: {
|
|
674
|
+
readonly maximumStatements: {
|
|
675
|
+
readonly default: 1;
|
|
676
|
+
readonly minimum: 0;
|
|
677
|
+
readonly type: "number";
|
|
678
|
+
};
|
|
679
|
+
};
|
|
680
|
+
readonly type: "object";
|
|
681
|
+
}]>;
|
|
682
|
+
"prefer-expect-assertions": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
683
|
+
readonly additionalExpectCallNames?: readonly string[];
|
|
684
|
+
readonly onlyFunctionsWithAsyncKeyword?: boolean;
|
|
685
|
+
readonly onlyFunctionsWithExpectInCallback?: boolean;
|
|
686
|
+
readonly onlyFunctionsWithExpectInLoop?: boolean;
|
|
687
|
+
}], "assertionsRequiresNumberArgument" | "assertionsRequiresOneArgument" | "hasAssertionsTakesNoArguments" | "haveExpectAssertions" | "suggestAddingAssertions" | "suggestAddingHasAssertions" | "wrongAssertionCount", readonly [{
|
|
688
|
+
readonly additionalProperties: false;
|
|
689
|
+
readonly properties: {
|
|
690
|
+
readonly additionalExpectCallNames: {
|
|
691
|
+
readonly items: {
|
|
692
|
+
readonly type: "string";
|
|
693
|
+
};
|
|
694
|
+
readonly type: "array";
|
|
695
|
+
};
|
|
696
|
+
readonly onlyFunctionsWithAsyncKeyword: {
|
|
697
|
+
readonly type: "boolean";
|
|
698
|
+
};
|
|
699
|
+
readonly onlyFunctionsWithExpectInCallback: {
|
|
700
|
+
readonly type: "boolean";
|
|
701
|
+
};
|
|
702
|
+
readonly onlyFunctionsWithExpectInLoop: {
|
|
703
|
+
readonly type: "boolean";
|
|
704
|
+
};
|
|
705
|
+
};
|
|
706
|
+
readonly type: "object";
|
|
707
|
+
}]>;
|
|
708
|
+
"prefer-expect-assertions-count": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
709
|
+
readonly additionalAssertionFunctions?: readonly string[];
|
|
710
|
+
}], "preferAssertionsCount", readonly [{
|
|
711
|
+
readonly additionalProperties: false;
|
|
712
|
+
readonly properties: {
|
|
713
|
+
readonly additionalAssertionFunctions: {
|
|
714
|
+
readonly items: {
|
|
715
|
+
readonly type: "string";
|
|
716
|
+
};
|
|
717
|
+
readonly type: "array";
|
|
718
|
+
};
|
|
719
|
+
};
|
|
720
|
+
readonly type: "object";
|
|
721
|
+
}]>;
|
|
722
|
+
"prefer-hoisted-jsx-elements": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
723
|
+
readonly additionalHoistableComponents?: readonly string[];
|
|
724
|
+
readonly additionalStaticFactories?: readonly string[];
|
|
725
|
+
}], "hoistableJsxElement", readonly [{
|
|
726
|
+
readonly additionalProperties: false;
|
|
727
|
+
readonly properties: {
|
|
728
|
+
readonly additionalHoistableComponents: {
|
|
729
|
+
readonly description: "Additional component names that can be hoisted to module-level constants.";
|
|
730
|
+
readonly items: {
|
|
731
|
+
readonly type: "string";
|
|
732
|
+
};
|
|
733
|
+
readonly type: "array";
|
|
734
|
+
};
|
|
735
|
+
readonly additionalStaticFactories: {
|
|
736
|
+
readonly description: "Additional factory functions whose return values are considered static.";
|
|
737
|
+
readonly items: {
|
|
738
|
+
readonly type: "string";
|
|
739
|
+
};
|
|
740
|
+
readonly type: "array";
|
|
741
|
+
};
|
|
742
|
+
};
|
|
743
|
+
readonly type: "object";
|
|
744
|
+
}]>;
|
|
745
|
+
"prefer-hoisted-jsx-object-properties": import("oxlint-plugin-utilities").CreateRule<readonly [], "hoistableObjectProp", readonly []>;
|
|
746
|
+
"prefer-idiv": import("oxlint-plugin-utilities").CreateRule<readonly [], "useIdiv", readonly []>;
|
|
747
|
+
"prefer-local-portal-component": import("oxlint-plugin-utilities").CreateRule<readonly [], "preferPortalComponent", readonly []>;
|
|
748
|
+
"prefer-math-min-max": import("oxlint-plugin-utilities").CreateRule<readonly [], "preferMathMethod", readonly []>;
|
|
749
|
+
"prefer-modding-inspect": import("oxlint-plugin-utilities").CreateRule<readonly [], "preferModdingInspect", readonly []>;
|
|
750
|
+
"prefer-module-scope-constants": import("oxlint-plugin-utilities").CreateRule<readonly [], "mustBeModuleScope" | "mustUseConst", readonly []>;
|
|
751
|
+
"prefer-padding-components": import("oxlint-plugin-utilities").CreateRule<readonly [], "preferDirectionalPadding" | "preferEqualPadding", readonly []>;
|
|
752
|
+
"prefer-pascal-case-enums": import("oxlint-plugin-utilities").CreateRule<readonly [], "notPascalCase", readonly []>;
|
|
753
|
+
"prefer-sequence-overloads": import("oxlint-plugin-utilities").CreateRule<readonly [], "preferSingleOverload" | "preferTwoPointOverload", readonly []>;
|
|
754
|
+
"prefer-single-world-query": import("oxlint-plugin-utilities").CreateRule<readonly [], "preferSingleGet" | "preferSingleHas", readonly []>;
|
|
755
|
+
"prefer-singular-enums": import("oxlint-plugin-utilities").CreateRule<readonly [], "notSingular", readonly []>;
|
|
756
|
+
"prefer-ternary-conditional-rendering": import("oxlint-plugin-utilities").CreateRule<readonly [], "preferTernaryConditionalRendering", readonly []>;
|
|
757
|
+
"prefer-udim2-shorthand": import("oxlint-plugin-utilities").CreateRule<readonly [], "preferFromOffset" | "preferFromScale", readonly []>;
|
|
758
|
+
"prefer-use-reducer": import("oxlint-plugin-utilities").CreateRule<readonly [], "excessiveUseState", undefined>;
|
|
759
|
+
"prevent-abbreviations": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
760
|
+
readonly allowList?: {
|
|
761
|
+
readonly [x: string]: boolean;
|
|
762
|
+
};
|
|
763
|
+
readonly allowPropertyAccess?: readonly string[];
|
|
764
|
+
readonly checkDefaultAndNamespaceImports?: "internal" | boolean;
|
|
765
|
+
readonly checkFilenames?: boolean;
|
|
766
|
+
readonly checkProperties?: boolean;
|
|
767
|
+
readonly checkShorthandImports?: "internal" | boolean;
|
|
768
|
+
readonly checkShorthandProperties?: boolean;
|
|
769
|
+
readonly checkVariables?: boolean;
|
|
770
|
+
readonly extendDefaultAllowList?: boolean;
|
|
771
|
+
readonly extendDefaultReplacements?: boolean;
|
|
772
|
+
readonly ignore?: readonly (string | {})[];
|
|
773
|
+
readonly ignoreShorthands?: readonly string[];
|
|
774
|
+
readonly replacements?: {
|
|
775
|
+
readonly [x: string]: false | {
|
|
776
|
+
readonly [x: string]: boolean;
|
|
777
|
+
};
|
|
778
|
+
};
|
|
779
|
+
readonly shorthands?: {
|
|
780
|
+
readonly [x: string]: string;
|
|
781
|
+
};
|
|
782
|
+
}], "replace" | "suggestion", readonly [{
|
|
783
|
+
readonly additionalProperties: false;
|
|
784
|
+
readonly properties: {
|
|
785
|
+
readonly allowList: {
|
|
786
|
+
readonly additionalProperties: {
|
|
787
|
+
readonly type: "boolean";
|
|
788
|
+
};
|
|
789
|
+
readonly type: "object";
|
|
790
|
+
};
|
|
791
|
+
readonly allowPropertyAccess: {
|
|
792
|
+
readonly items: {
|
|
793
|
+
readonly type: "string";
|
|
794
|
+
};
|
|
795
|
+
readonly type: "array";
|
|
796
|
+
};
|
|
797
|
+
readonly checkDefaultAndNamespaceImports: {
|
|
798
|
+
readonly enum: readonly [false, true, "internal"];
|
|
799
|
+
};
|
|
800
|
+
readonly checkFilenames: {
|
|
801
|
+
readonly type: "boolean";
|
|
802
|
+
};
|
|
803
|
+
readonly checkProperties: {
|
|
804
|
+
readonly type: "boolean";
|
|
805
|
+
};
|
|
806
|
+
readonly checkShorthandImports: {
|
|
807
|
+
readonly enum: readonly [false, true, "internal"];
|
|
808
|
+
};
|
|
809
|
+
readonly checkShorthandProperties: {
|
|
810
|
+
readonly type: "boolean";
|
|
811
|
+
};
|
|
812
|
+
readonly checkVariables: {
|
|
813
|
+
readonly type: "boolean";
|
|
814
|
+
};
|
|
815
|
+
readonly extendDefaultAllowList: {
|
|
816
|
+
readonly type: "boolean";
|
|
817
|
+
};
|
|
818
|
+
readonly extendDefaultReplacements: {
|
|
819
|
+
readonly type: "boolean";
|
|
820
|
+
};
|
|
821
|
+
readonly ignore: {
|
|
822
|
+
readonly items: {
|
|
823
|
+
readonly oneOf: readonly [{
|
|
824
|
+
readonly type: "object";
|
|
825
|
+
}, {
|
|
826
|
+
readonly type: "string";
|
|
827
|
+
}];
|
|
828
|
+
};
|
|
829
|
+
readonly type: "array";
|
|
830
|
+
};
|
|
831
|
+
readonly ignoreShorthands: {
|
|
832
|
+
readonly items: {
|
|
833
|
+
readonly type: "string";
|
|
834
|
+
};
|
|
835
|
+
readonly type: "array";
|
|
836
|
+
};
|
|
837
|
+
readonly replacements: {
|
|
838
|
+
readonly additionalProperties: {
|
|
839
|
+
readonly oneOf: readonly [{
|
|
840
|
+
readonly enum: readonly [false];
|
|
841
|
+
}, {
|
|
842
|
+
readonly additionalProperties: {
|
|
843
|
+
readonly type: "boolean";
|
|
844
|
+
};
|
|
845
|
+
readonly type: "object";
|
|
846
|
+
}];
|
|
847
|
+
};
|
|
848
|
+
readonly type: "object";
|
|
849
|
+
};
|
|
850
|
+
readonly shorthands: {
|
|
851
|
+
readonly additionalProperties: {
|
|
852
|
+
readonly type: "string";
|
|
853
|
+
};
|
|
854
|
+
readonly type: "object";
|
|
855
|
+
};
|
|
856
|
+
};
|
|
857
|
+
readonly type: "object";
|
|
858
|
+
}]>;
|
|
859
|
+
"react-hooks-strict-return": import("oxlint-plugin-utilities").CreateRule<readonly [], "tooManyReturnValues", readonly []>;
|
|
860
|
+
"require-async-suffix": import("oxlint-plugin-utilities").CreateRule<readonly [], "missingAsyncSuffix", readonly []>;
|
|
861
|
+
"require-module-level-instantiation": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
862
|
+
readonly classes?: {
|
|
863
|
+
readonly [x: string]: string;
|
|
864
|
+
};
|
|
865
|
+
}], "mustBeModuleLevel", readonly [{
|
|
866
|
+
readonly additionalProperties: false;
|
|
867
|
+
readonly properties: {
|
|
868
|
+
readonly classes: {
|
|
869
|
+
readonly additionalProperties: {
|
|
870
|
+
readonly type: "string";
|
|
871
|
+
};
|
|
872
|
+
readonly type: "object";
|
|
873
|
+
};
|
|
874
|
+
};
|
|
875
|
+
readonly type: "object";
|
|
876
|
+
}]>;
|
|
877
|
+
"require-named-effect-functions": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
878
|
+
readonly environment?: "roblox-ts" | "standard";
|
|
879
|
+
readonly hooks?: readonly {
|
|
880
|
+
readonly allowAsync: boolean;
|
|
881
|
+
readonly name: string;
|
|
882
|
+
}[];
|
|
883
|
+
}], "anonymousFunction" | "arrowFunction" | "asyncAnonymousFunction" | "asyncArrowFunction" | "asyncFunctionDeclaration" | "asyncFunctionExpression" | "functionExpression" | "identifierReferencesArrow" | "identifierReferencesAsyncArrow" | "identifierReferencesAsyncFunction" | "identifierReferencesCallback", readonly [{
|
|
884
|
+
readonly additionalProperties: false;
|
|
885
|
+
readonly properties: {
|
|
886
|
+
readonly environment: {
|
|
887
|
+
readonly default: "roblox-ts";
|
|
888
|
+
readonly description: "Environment mode: 'roblox-ts' only allows identifiers, 'standard' allows both identifiers and named function expressions";
|
|
889
|
+
readonly enum: readonly ["roblox-ts", "standard"];
|
|
890
|
+
readonly type: "string";
|
|
891
|
+
};
|
|
892
|
+
readonly hooks: {
|
|
893
|
+
readonly description: "Array of hook configuration objects with name and allowAsync settings";
|
|
894
|
+
readonly items: {
|
|
895
|
+
readonly additionalProperties: false;
|
|
896
|
+
readonly properties: {
|
|
897
|
+
readonly allowAsync: {
|
|
898
|
+
readonly description: "Whether async functions are allowed for this hook";
|
|
899
|
+
readonly type: "boolean";
|
|
900
|
+
};
|
|
901
|
+
readonly name: {
|
|
902
|
+
readonly description: "Hook name to check";
|
|
903
|
+
readonly type: "string";
|
|
904
|
+
};
|
|
905
|
+
};
|
|
906
|
+
readonly required: readonly ["name", "allowAsync"];
|
|
907
|
+
readonly type: "object";
|
|
908
|
+
};
|
|
909
|
+
readonly type: "array";
|
|
910
|
+
};
|
|
911
|
+
};
|
|
912
|
+
readonly type: "object";
|
|
913
|
+
}]>;
|
|
914
|
+
"require-paired-calls": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
915
|
+
readonly allowConditionalClosers?: boolean;
|
|
916
|
+
readonly allowMultipleOpeners?: boolean;
|
|
917
|
+
readonly maxNestingDepth?: number;
|
|
918
|
+
readonly pairs: readonly {
|
|
919
|
+
readonly alternatives?: readonly string[];
|
|
920
|
+
readonly closer: string | readonly string[];
|
|
921
|
+
readonly opener: string;
|
|
922
|
+
readonly openerAlternatives?: readonly string[];
|
|
923
|
+
readonly platform?: "roblox";
|
|
924
|
+
readonly requireSync?: boolean;
|
|
925
|
+
readonly yieldingFunctions?: readonly string[];
|
|
926
|
+
}[];
|
|
927
|
+
}], "asyncViolation" | "conditionalOpener" | "maxNestingExceeded" | "multipleOpeners" | "robloxYieldViolation" | "unexpectedCloser" | "unpairedCloser" | "unpairedOpener" | "wrongOrder", readonly [{
|
|
928
|
+
readonly additionalProperties: false;
|
|
929
|
+
readonly properties: {
|
|
930
|
+
readonly allowConditionalClosers: {
|
|
931
|
+
readonly default: false;
|
|
932
|
+
readonly type: "boolean";
|
|
933
|
+
};
|
|
934
|
+
readonly allowMultipleOpeners: {
|
|
935
|
+
readonly default: true;
|
|
936
|
+
readonly type: "boolean";
|
|
937
|
+
};
|
|
938
|
+
readonly maxNestingDepth: {
|
|
939
|
+
readonly default: 0;
|
|
940
|
+
readonly minimum: 0;
|
|
941
|
+
readonly type: "number";
|
|
942
|
+
};
|
|
943
|
+
readonly pairs: {
|
|
944
|
+
readonly items: {
|
|
945
|
+
readonly additionalProperties: false;
|
|
946
|
+
readonly properties: {
|
|
947
|
+
readonly alternatives: {
|
|
948
|
+
readonly items: {
|
|
949
|
+
readonly minLength: 1;
|
|
950
|
+
readonly type: "string";
|
|
951
|
+
};
|
|
952
|
+
readonly type: "array";
|
|
953
|
+
};
|
|
954
|
+
readonly closer: {
|
|
955
|
+
readonly oneOf: readonly [{
|
|
956
|
+
readonly minLength: 1;
|
|
957
|
+
readonly type: "string";
|
|
958
|
+
}, {
|
|
959
|
+
readonly items: {
|
|
960
|
+
readonly minLength: 1;
|
|
961
|
+
readonly type: "string";
|
|
962
|
+
};
|
|
963
|
+
readonly minItems: 1;
|
|
964
|
+
readonly type: "array";
|
|
965
|
+
}];
|
|
966
|
+
};
|
|
967
|
+
readonly opener: {
|
|
968
|
+
readonly minLength: 1;
|
|
969
|
+
readonly type: "string";
|
|
970
|
+
};
|
|
971
|
+
readonly openerAlternatives: {
|
|
972
|
+
readonly items: {
|
|
973
|
+
readonly minLength: 1;
|
|
974
|
+
readonly type: "string";
|
|
975
|
+
};
|
|
976
|
+
readonly type: "array";
|
|
977
|
+
};
|
|
978
|
+
readonly platform: {
|
|
979
|
+
readonly enum: readonly ["roblox"];
|
|
980
|
+
readonly type: "string";
|
|
981
|
+
};
|
|
982
|
+
readonly requireSync: {
|
|
983
|
+
readonly default: false;
|
|
984
|
+
readonly type: "boolean";
|
|
985
|
+
};
|
|
986
|
+
readonly yieldingFunctions: {
|
|
987
|
+
readonly items: {
|
|
988
|
+
readonly minLength: 1;
|
|
989
|
+
readonly type: "string";
|
|
990
|
+
};
|
|
991
|
+
readonly type: "array";
|
|
992
|
+
};
|
|
993
|
+
};
|
|
994
|
+
readonly required: readonly ["opener", "closer"];
|
|
995
|
+
readonly type: "object";
|
|
996
|
+
};
|
|
997
|
+
readonly minItems: 1;
|
|
998
|
+
readonly type: "array";
|
|
999
|
+
};
|
|
1000
|
+
};
|
|
1001
|
+
readonly required: readonly ["pairs"];
|
|
1002
|
+
readonly type: "object";
|
|
1003
|
+
}]>;
|
|
1004
|
+
"require-react-component-keys": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
1005
|
+
readonly allowRootKeys?: boolean;
|
|
1006
|
+
readonly ignoreCallExpressions?: readonly string[];
|
|
1007
|
+
readonly iterationMethods?: readonly string[];
|
|
1008
|
+
readonly memoizationHooks?: readonly string[];
|
|
1009
|
+
}], "missingKey" | "rootComponentWithKey", readonly [{
|
|
1010
|
+
readonly additionalProperties: false;
|
|
1011
|
+
readonly properties: {
|
|
1012
|
+
readonly allowRootKeys: {
|
|
1013
|
+
readonly default: false;
|
|
1014
|
+
readonly description: "Allow key props on root component returns";
|
|
1015
|
+
readonly type: "boolean";
|
|
1016
|
+
};
|
|
1017
|
+
readonly ignoreCallExpressions: {
|
|
1018
|
+
readonly default: readonly ["ReactTree.mount"];
|
|
1019
|
+
readonly description: "Function calls where JSX arguments don't need keys";
|
|
1020
|
+
readonly items: {
|
|
1021
|
+
readonly type: "string";
|
|
1022
|
+
};
|
|
1023
|
+
readonly type: "array";
|
|
1024
|
+
};
|
|
1025
|
+
readonly iterationMethods: {
|
|
1026
|
+
readonly default: readonly string[];
|
|
1027
|
+
readonly description: "Array method names that indicate iteration contexts where keys are required";
|
|
1028
|
+
readonly items: {
|
|
1029
|
+
readonly type: "string";
|
|
1030
|
+
};
|
|
1031
|
+
readonly type: "array";
|
|
1032
|
+
};
|
|
1033
|
+
readonly memoizationHooks: {
|
|
1034
|
+
readonly default: readonly ["useCallback", "useMemo"];
|
|
1035
|
+
readonly description: "Hook names that indicate memoization contexts where keys are required";
|
|
1036
|
+
readonly items: {
|
|
1037
|
+
readonly type: "string";
|
|
1038
|
+
};
|
|
1039
|
+
readonly type: "array";
|
|
1040
|
+
};
|
|
1041
|
+
};
|
|
1042
|
+
readonly type: "object";
|
|
1043
|
+
}]>;
|
|
1044
|
+
"require-react-display-names": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
1045
|
+
readonly environment?: "roblox-ts" | "standard";
|
|
1046
|
+
}], "directContextExport" | "directMemoExport" | "missingContextDisplayName" | "missingMemoDisplayName", readonly [{
|
|
1047
|
+
readonly additionalProperties: false;
|
|
1048
|
+
readonly properties: {
|
|
1049
|
+
environment: {
|
|
1050
|
+
enum: readonly ["roblox-ts", "standard"];
|
|
1051
|
+
type: string;
|
|
1052
|
+
};
|
|
1053
|
+
};
|
|
1054
|
+
readonly type: "object";
|
|
1055
|
+
}]>;
|
|
1056
|
+
"require-switch-case-braces": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
1057
|
+
readonly metric?: "lines" | "statements";
|
|
1058
|
+
}], "wrapCaseBody", readonly [{
|
|
1059
|
+
readonly additionalProperties: false;
|
|
1060
|
+
readonly properties: {
|
|
1061
|
+
readonly metric: {
|
|
1062
|
+
readonly default: "lines";
|
|
1063
|
+
readonly enum: readonly ["lines", "statements"];
|
|
1064
|
+
readonly type: "string";
|
|
1065
|
+
};
|
|
1066
|
+
};
|
|
1067
|
+
readonly type: "object";
|
|
1068
|
+
}]>;
|
|
1069
|
+
"require-throw-error-capture": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
1070
|
+
readonly allow?: readonly (string | {
|
|
1071
|
+
readonly from?: "file" | "lib" | "package";
|
|
1072
|
+
readonly name: string | readonly string[];
|
|
1073
|
+
readonly package?: string;
|
|
1074
|
+
})[];
|
|
1075
|
+
}], "missingCaptureStackTrace", readonly [{
|
|
1076
|
+
readonly additionalProperties: false;
|
|
1077
|
+
readonly properties: {
|
|
1078
|
+
readonly allow: {
|
|
1079
|
+
readonly description: "Error classes that do not need Error.captureStackTrace";
|
|
1080
|
+
readonly items: {
|
|
1081
|
+
readonly anyOf: readonly [{
|
|
1082
|
+
readonly type: "string";
|
|
1083
|
+
}, {
|
|
1084
|
+
readonly additionalProperties: false;
|
|
1085
|
+
readonly properties: {
|
|
1086
|
+
readonly from: {
|
|
1087
|
+
readonly description: "Where the error class is declared";
|
|
1088
|
+
readonly enum: readonly ["file", "lib", "package"];
|
|
1089
|
+
readonly type: "string";
|
|
1090
|
+
};
|
|
1091
|
+
readonly name: {
|
|
1092
|
+
readonly anyOf: readonly [{
|
|
1093
|
+
readonly type: "string";
|
|
1094
|
+
}, {
|
|
1095
|
+
readonly items: {
|
|
1096
|
+
readonly type: "string";
|
|
1097
|
+
};
|
|
1098
|
+
readonly type: "array";
|
|
1099
|
+
}];
|
|
1100
|
+
readonly description: "Name(s) of the error class";
|
|
1101
|
+
};
|
|
1102
|
+
readonly package: {
|
|
1103
|
+
readonly description: "Package the error class is imported from (required when from is 'package')";
|
|
1104
|
+
readonly type: "string";
|
|
1105
|
+
};
|
|
1106
|
+
};
|
|
1107
|
+
readonly required: readonly ["name"];
|
|
1108
|
+
readonly type: "object";
|
|
1109
|
+
}];
|
|
1110
|
+
};
|
|
1111
|
+
readonly type: "array";
|
|
1112
|
+
};
|
|
1113
|
+
};
|
|
1114
|
+
readonly type: "object";
|
|
1115
|
+
}]>;
|
|
1116
|
+
"require-unicode-regex": import("oxlint-plugin-utilities").CreateRule<readonly [], "requireUnicodeFlag", readonly []>;
|
|
1117
|
+
"rerender-memo-with-default-value": import("oxlint-plugin-utilities").CreateRule<readonly [], "emptyArrayDefault" | "emptyObjectDefault", undefined>;
|
|
1118
|
+
"strict-component-boundaries": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
1119
|
+
readonly allow?: readonly string[];
|
|
1120
|
+
readonly maxDepth?: number;
|
|
1121
|
+
}], "noReachingIntoComponent", readonly [{
|
|
1122
|
+
readonly additionalProperties: false;
|
|
1123
|
+
readonly properties: {
|
|
1124
|
+
readonly allow: {
|
|
1125
|
+
readonly items: {
|
|
1126
|
+
readonly type: "string";
|
|
1127
|
+
};
|
|
1128
|
+
readonly type: "array";
|
|
1129
|
+
};
|
|
1130
|
+
readonly maxDepth: {
|
|
1131
|
+
readonly type: "integer";
|
|
1132
|
+
};
|
|
1133
|
+
};
|
|
1134
|
+
readonly type: "object";
|
|
1135
|
+
}]>;
|
|
1136
|
+
"use-exhaustive-dependencies": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
1137
|
+
readonly hooks?: readonly {
|
|
1138
|
+
readonly closureIndex?: number;
|
|
1139
|
+
readonly dependenciesIndex?: number;
|
|
1140
|
+
readonly name: string;
|
|
1141
|
+
readonly stableResult?: number | boolean | readonly string[] | readonly number[];
|
|
1142
|
+
}[];
|
|
1143
|
+
readonly reportMissingDependenciesArray?: boolean;
|
|
1144
|
+
readonly reportUnnecessaryDependencies?: boolean;
|
|
1145
|
+
readonly reportUnnecessaryStableDependencies?: boolean;
|
|
1146
|
+
readonly resolveExpressionDependencies?: boolean;
|
|
1147
|
+
}], "addDependenciesArraySuggestion" | "addDependencySuggestion" | "addMissingDependenciesSuggestion" | "missingDependencies" | "missingDependenciesArray" | "missingDependency" | "removeDependencySuggestion" | "unnecessaryDependency" | "unstableDependency", readonly [{
|
|
1148
|
+
readonly additionalProperties: false;
|
|
1149
|
+
readonly properties: {
|
|
1150
|
+
readonly hooks: {
|
|
1151
|
+
readonly description: "Array of custom hook entries to check for exhaustive dependencies";
|
|
1152
|
+
readonly items: {
|
|
1153
|
+
readonly additionalProperties: false;
|
|
1154
|
+
readonly properties: {
|
|
1155
|
+
readonly closureIndex: {
|
|
1156
|
+
readonly description: "Index of the closure argument for dependency validation";
|
|
1157
|
+
readonly type: "number";
|
|
1158
|
+
};
|
|
1159
|
+
readonly dependenciesIndex: {
|
|
1160
|
+
readonly description: "Index of the dependencies array for validation";
|
|
1161
|
+
readonly type: "number";
|
|
1162
|
+
};
|
|
1163
|
+
readonly name: {
|
|
1164
|
+
readonly description: "The name of the hook";
|
|
1165
|
+
readonly type: "string";
|
|
1166
|
+
};
|
|
1167
|
+
readonly stableResult: {
|
|
1168
|
+
readonly description: "Specify stable results: true (whole result), number (array index), number[] (multiple indices), or string[] (object properties)";
|
|
1169
|
+
readonly oneOf: readonly [{
|
|
1170
|
+
readonly type: "boolean";
|
|
1171
|
+
}, {
|
|
1172
|
+
readonly type: "number";
|
|
1173
|
+
}, {
|
|
1174
|
+
readonly items: {
|
|
1175
|
+
readonly type: "number";
|
|
1176
|
+
};
|
|
1177
|
+
readonly type: "array";
|
|
1178
|
+
}, {
|
|
1179
|
+
readonly items: {
|
|
1180
|
+
readonly type: "string";
|
|
1181
|
+
};
|
|
1182
|
+
readonly type: "array";
|
|
1183
|
+
}];
|
|
1184
|
+
};
|
|
1185
|
+
};
|
|
1186
|
+
readonly required: readonly ["name"];
|
|
1187
|
+
readonly type: "object";
|
|
1188
|
+
};
|
|
1189
|
+
readonly type: "array";
|
|
1190
|
+
};
|
|
1191
|
+
readonly reportMissingDependenciesArray: {
|
|
1192
|
+
readonly default: true;
|
|
1193
|
+
readonly description: "Report when the dependencies array is completely missing";
|
|
1194
|
+
readonly type: "boolean";
|
|
1195
|
+
};
|
|
1196
|
+
readonly reportUnnecessaryDependencies: {
|
|
1197
|
+
readonly default: true;
|
|
1198
|
+
readonly description: "Report when unnecessary dependencies are specified";
|
|
1199
|
+
readonly type: "boolean";
|
|
1200
|
+
};
|
|
1201
|
+
readonly reportUnnecessaryStableDependencies: {
|
|
1202
|
+
readonly default: false;
|
|
1203
|
+
readonly description: "Report when stable values (useRef, useState setter, etc.) are included as dependencies";
|
|
1204
|
+
readonly type: "boolean";
|
|
1205
|
+
};
|
|
1206
|
+
readonly resolveExpressionDependencies: {
|
|
1207
|
+
readonly default: true;
|
|
1208
|
+
readonly description: "Recognize expression dependencies like `value !== undefined` as covering a capture";
|
|
1209
|
+
readonly type: "boolean";
|
|
1210
|
+
};
|
|
1211
|
+
};
|
|
1212
|
+
readonly type: "object";
|
|
1213
|
+
}]>;
|
|
1214
|
+
"use-hook-at-top-level": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
1215
|
+
readonly ignoreHooks?: readonly string[];
|
|
1216
|
+
readonly importSources?: {
|
|
1217
|
+
readonly [x: string]: boolean;
|
|
1218
|
+
};
|
|
1219
|
+
readonly onlyHooks?: readonly string[];
|
|
1220
|
+
}], "afterEarlyReturn" | "conditionalHook" | "loopHook" | "nestedFunction" | "recursiveHookCall" | "tryBlockHook", readonly [{
|
|
1221
|
+
readonly additionalProperties: false;
|
|
1222
|
+
readonly properties: {
|
|
1223
|
+
readonly ignoreHooks: {
|
|
1224
|
+
readonly items: {
|
|
1225
|
+
readonly type: "string";
|
|
1226
|
+
};
|
|
1227
|
+
readonly type: "array";
|
|
1228
|
+
};
|
|
1229
|
+
readonly importSources: {
|
|
1230
|
+
readonly additionalProperties: {
|
|
1231
|
+
readonly type: "boolean";
|
|
1232
|
+
};
|
|
1233
|
+
readonly type: "object";
|
|
1234
|
+
};
|
|
1235
|
+
readonly onlyHooks: {
|
|
1236
|
+
readonly items: {
|
|
1237
|
+
readonly type: "string";
|
|
1238
|
+
};
|
|
1239
|
+
readonly type: "array";
|
|
1240
|
+
};
|
|
1241
|
+
};
|
|
1242
|
+
readonly type: "object";
|
|
1243
|
+
}]>;
|
|
1244
|
+
}>;
|
|
1245
|
+
//#endregion
|
|
1246
|
+
export { smallRules as default };
|