@pobammer-ts/small-rules 2.14.0 → 2.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/LICENSE +21 -0
- package/README.md +8 -2
- package/THIRD-PARTY-NOTICES.md +105 -0
- package/dist/index.d.ts +228 -25
- package/dist/index.js +68 -12
- package/package.json +58 -44
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 HowManySmall
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -6,14 +6,17 @@
|
|
|
6
6
|
|
|
7
7
|
[](https://www.npmjs.com/package/@pobammer-ts/small-rules)
|
|
8
8
|
[](https://www.npmjs.com/package/@pobammer-ts/small-rules)
|
|
9
|
-
[](https://docs.howmanysmall.com/small-rules/rules/)
|
|
10
10
|
[](https://github.com/pobammer-ts/small-rules/actions/workflows/ci.yaml)
|
|
11
11
|
[](https://github.com/pobammer-ts/small-rules/blob/main/LICENSE)
|
|
12
12
|
|
|
13
13
|
[](https://www.typescriptlang.org/)
|
|
14
14
|
[](https://nodejs.org)
|
|
15
15
|
[](https://oxc.rs)
|
|
16
|
-
[](https://eslint.org)
|
|
17
|
+
[](https://biomejs.dev)
|
|
18
|
+
[](https://github.com/oxc-project/oxc)
|
|
19
|
+
[](https://knip.dev)
|
|
17
20
|
|
|
18
21
|
</div>
|
|
19
22
|
|
|
@@ -50,3 +53,6 @@ Browse the [**full rule catalog →**](https://docs.howmanysmall.com/small-rules
|
|
|
50
53
|
## License
|
|
51
54
|
|
|
52
55
|
MIT © HowManySmall
|
|
56
|
+
|
|
57
|
+
Includes MIT-licensed code from [dmmulroy/anti-slop](https://github.com/dmmulroy/anti-slop).
|
|
58
|
+
See [THIRD-PARTY-NOTICES.md](THIRD-PARTY-NOTICES.md).
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
<!-- Generated by `node --run generate:third-party-notices`. Do not edit by hand. -->
|
|
2
|
+
<!-- Source of truth: scripts/utilities/vendored-notices.ts -->
|
|
3
|
+
|
|
4
|
+
# Third-Party Notices
|
|
5
|
+
|
|
6
|
+
`@pobammer-ts/small-rules` incorporates material from the third-party projects listed
|
|
7
|
+
below. The original copyright notices and the license terms under which that material
|
|
8
|
+
was received are reproduced here.
|
|
9
|
+
|
|
10
|
+
This file is distributed in the published npm package. The same notices are embedded in
|
|
11
|
+
`dist/index.js`.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 1. `anti-slop`
|
|
16
|
+
|
|
17
|
+
- **Source:** <https://github.com/dmmulroy/anti-slop>
|
|
18
|
+
- **Vendored commit:** `446268e5d15baa968eaec669ff65358d36ae6259`
|
|
19
|
+
- **Copyright:** Copyright (c) 2026 Dillon Mulroy
|
|
20
|
+
- **License:** MIT
|
|
21
|
+
|
|
22
|
+
Vendored into `src/rules/anti-slop/`, adapted rather than verbatim:
|
|
23
|
+
|
|
24
|
+
| This project | Upstream |
|
|
25
|
+
| --- | --- |
|
|
26
|
+
| `no-chained-type-assertions.ts` | `src/rules/no-chained-type-assertions.ts` |
|
|
27
|
+
| `no-conditional-empty-object-spread.ts` | `src/rules/no-conditional-empty-object-spread.ts` |
|
|
28
|
+
| `no-known-value-widening.ts` | `src/rules/no-known-value-widening.ts` |
|
|
29
|
+
| `no-module-mocking.ts` | `src/rules/no-module-mocking.ts` |
|
|
30
|
+
| `no-object-parameters.ts` | `src/rules/no-object-parameters.ts` |
|
|
31
|
+
| `no-reflect-apply.ts` | `src/rules/no-reflect-apply.ts` |
|
|
32
|
+
| `no-reflect-get.ts` | `src/rules/no-reflect-get.ts` |
|
|
33
|
+
| `no-runtime-typeof.ts` | `src/rules/no-runtime-typeof.ts` |
|
|
34
|
+
| `no-shape-in-symbol-names.ts` | `src/rules/no-shape-in-symbol-names.ts` |
|
|
35
|
+
| `no-unknown-parameters.ts` | `src/rules/no-unknown-parameters.ts` |
|
|
36
|
+
| `no-unknown-returns.ts` | `src/rules/no-unknown-returns.ts` |
|
|
37
|
+
| `no-unknown-type-aliases.ts` | `src/rules/no-unknown-type-aliases.ts` |
|
|
38
|
+
| `no-unsafe-dictionary-type.ts` | `src/rules/no-unsafe-dictionary-type.ts` |
|
|
39
|
+
| `no-widen-then-assert.ts` | `src/rules/no-widen-then-assert.ts` |
|
|
40
|
+
| `require-safety-comment-for-type-assertion.ts` | `src/rules/require-safety-comment-for-type-assertion.ts` |
|
|
41
|
+
|
|
42
|
+
```text
|
|
43
|
+
MIT License
|
|
44
|
+
|
|
45
|
+
Copyright (c) 2026 Dillon Mulroy
|
|
46
|
+
|
|
47
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
48
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
49
|
+
in the Software without restriction, including without limitation the rights
|
|
50
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
51
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
52
|
+
furnished to do so, subject to the following conditions:
|
|
53
|
+
|
|
54
|
+
The above copyright notice and this permission notice shall be included in all
|
|
55
|
+
copies or substantial portions of the Software.
|
|
56
|
+
|
|
57
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
58
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
59
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
60
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
61
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
62
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
63
|
+
SOFTWARE.
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## 2. `anti-slop shared helpers`
|
|
69
|
+
|
|
70
|
+
- **Source:** <https://github.com/dmmulroy/anti-slop>
|
|
71
|
+
- **Vendored commit:** `446268e5d15baa968eaec669ff65358d36ae6259`
|
|
72
|
+
- **Copyright:** Copyright (c) 2026 Dillon Mulroy
|
|
73
|
+
- **License:** MIT
|
|
74
|
+
|
|
75
|
+
Vendored into `src/utilities/anti-slop/`, adapted rather than verbatim:
|
|
76
|
+
|
|
77
|
+
| This project | Upstream |
|
|
78
|
+
| --- | --- |
|
|
79
|
+
| `dictionary-types.ts` | `src/shared/dictionary-types.ts` |
|
|
80
|
+
| `lexical-type-parameters.ts` | `src/shared/lexical-type-parameters.ts` |
|
|
81
|
+
| `reflect-method.ts` | `src/shared/reflect-method.ts` |
|
|
82
|
+
|
|
83
|
+
```text
|
|
84
|
+
MIT License
|
|
85
|
+
|
|
86
|
+
Copyright (c) 2026 Dillon Mulroy
|
|
87
|
+
|
|
88
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
89
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
90
|
+
in the Software without restriction, including without limitation the rights
|
|
91
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
92
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
93
|
+
furnished to do so, subject to the following conditions:
|
|
94
|
+
|
|
95
|
+
The above copyright notice and this permission notice shall be included in all
|
|
96
|
+
copies or substantial portions of the Software.
|
|
97
|
+
|
|
98
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
99
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
100
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
101
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
102
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
103
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
104
|
+
SOFTWARE.
|
|
105
|
+
```
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,66 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* This bundle includes code from the following third-party projects.
|
|
3
|
+
* Full notices: https://github.com/howmanysmall/small-rules/blob/main/THIRD-PARTY-NOTICES.md
|
|
4
|
+
*
|
|
5
|
+
* anti-slop <https://github.com/dmmulroy/anti-slop>
|
|
6
|
+
* Copyright (c) 2026 Dillon Mulroy
|
|
7
|
+
* SPDX-License-Identifier: MIT
|
|
8
|
+
*
|
|
9
|
+
* MIT License
|
|
10
|
+
*
|
|
11
|
+
* Copyright (c) 2026 Dillon Mulroy
|
|
12
|
+
*
|
|
13
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
14
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
15
|
+
* in the Software without restriction, including without limitation the rights
|
|
16
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
17
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
18
|
+
* furnished to do so, subject to the following conditions:
|
|
19
|
+
*
|
|
20
|
+
* The above copyright notice and this permission notice shall be included in all
|
|
21
|
+
* copies or substantial portions of the Software.
|
|
22
|
+
*
|
|
23
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
24
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
25
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
26
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
27
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
28
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
29
|
+
* SOFTWARE.
|
|
30
|
+
*
|
|
31
|
+
* anti-slop shared helpers <https://github.com/dmmulroy/anti-slop>
|
|
32
|
+
* Copyright (c) 2026 Dillon Mulroy
|
|
33
|
+
* SPDX-License-Identifier: MIT
|
|
34
|
+
*
|
|
35
|
+
* MIT License
|
|
36
|
+
*
|
|
37
|
+
* Copyright (c) 2026 Dillon Mulroy
|
|
38
|
+
*
|
|
39
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
40
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
41
|
+
* in the Software without restriction, including without limitation the rights
|
|
42
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
43
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
44
|
+
* furnished to do so, subject to the following conditions:
|
|
45
|
+
*
|
|
46
|
+
* The above copyright notice and this permission notice shall be included in all
|
|
47
|
+
* copies or substantial portions of the Software.
|
|
48
|
+
*
|
|
49
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
50
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
51
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
52
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
53
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
54
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
55
|
+
* SOFTWARE.
|
|
56
|
+
*/
|
|
57
|
+
//#region src/rules/react/no-useless-use-memo.d.ts
|
|
58
|
+
declare const enum DependencyMode {
|
|
59
|
+
Aggressive = "aggressive",
|
|
60
|
+
EmptyOrOmitted = "empty-or-omitted",
|
|
61
|
+
NonUpdating = "non-updating"
|
|
62
|
+
}
|
|
63
|
+
//#endregion
|
|
1
64
|
//#region src/index.d.ts
|
|
2
65
|
declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
3
66
|
"array-type-generic": import("oxlint-plugin-utilities").CreateOnceRule<readonly [], "useGenericArrayType", undefined>;
|
|
@@ -221,21 +284,21 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
221
284
|
};
|
|
222
285
|
readonly hooks: {
|
|
223
286
|
readonly default: {
|
|
224
|
-
dependenciesIndex: number;
|
|
225
287
|
name: string;
|
|
288
|
+
dependenciesIndex: number;
|
|
226
289
|
}[];
|
|
227
290
|
readonly description: "Effect hooks checked by default; configured entries are added to this set.";
|
|
228
291
|
readonly items: {
|
|
229
292
|
readonly additionalProperties: false;
|
|
230
293
|
readonly properties: {
|
|
231
|
-
readonly dependenciesIndex: {
|
|
232
|
-
readonly description: "Index of the dependencies array for validation";
|
|
233
|
-
readonly type: "number";
|
|
234
|
-
};
|
|
235
294
|
readonly name: {
|
|
236
295
|
readonly description: "The name of the hook";
|
|
237
296
|
readonly type: "string";
|
|
238
297
|
};
|
|
298
|
+
readonly dependenciesIndex: {
|
|
299
|
+
readonly description: "Index of the dependencies array for validation";
|
|
300
|
+
readonly type: "number";
|
|
301
|
+
};
|
|
239
302
|
};
|
|
240
303
|
readonly required: readonly ["name"];
|
|
241
304
|
readonly type: "object";
|
|
@@ -251,6 +314,18 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
251
314
|
};
|
|
252
315
|
readonly type: "object";
|
|
253
316
|
}], "unmemoizedDependency", undefined>;
|
|
317
|
+
"no-adjust-state-on-prop-change": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
318
|
+
readonly additionalProperties: false;
|
|
319
|
+
readonly properties: {
|
|
320
|
+
readonly environment: {
|
|
321
|
+
readonly default: "roblox-ts";
|
|
322
|
+
readonly description: "The React environment: 'roblox-ts' uses @rbxts/react, 'standard' uses react.";
|
|
323
|
+
readonly enum: readonly ["roblox-ts", "standard"];
|
|
324
|
+
readonly type: "string";
|
|
325
|
+
};
|
|
326
|
+
};
|
|
327
|
+
readonly type: "object";
|
|
328
|
+
}], "avoidAdjustingStateWhenAPropChanges", undefined>;
|
|
254
329
|
"no-array-constructor-elements": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
255
330
|
readonly additionalProperties: false;
|
|
256
331
|
readonly properties: {
|
|
@@ -360,6 +435,19 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
360
435
|
readonly type: "object";
|
|
361
436
|
}], "noAsyncInSystem", undefined>;
|
|
362
437
|
"no-cascading-set-state": import("oxlint-plugin-utilities").CreateRule<undefined, "cascadingSetState", undefined>;
|
|
438
|
+
"no-chain-state-updates": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
439
|
+
readonly additionalProperties: false;
|
|
440
|
+
readonly properties: {
|
|
441
|
+
readonly environment: {
|
|
442
|
+
readonly default: "roblox-ts";
|
|
443
|
+
readonly description: "The React environment: 'roblox-ts' uses @rbxts/react, 'standard' uses react.";
|
|
444
|
+
readonly enum: readonly ["roblox-ts", "standard"];
|
|
445
|
+
readonly type: "string";
|
|
446
|
+
};
|
|
447
|
+
};
|
|
448
|
+
readonly type: "object";
|
|
449
|
+
}], "avoidChainingStateUpdates", undefined>;
|
|
450
|
+
"no-chained-type-assertions": import("oxlint-plugin-utilities").CreateOnceRule<undefined, "chained", undefined>;
|
|
363
451
|
"no-color3-constructor": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
364
452
|
readonly additionalProperties: false;
|
|
365
453
|
readonly properties: {
|
|
@@ -382,6 +470,7 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
382
470
|
};
|
|
383
471
|
readonly type: "object";
|
|
384
472
|
}], "commentedCode", undefined>;
|
|
473
|
+
"no-conditional-empty-object-spread": import("oxlint-plugin-utilities").CreateOnceRule<undefined, "avoid", undefined>;
|
|
385
474
|
"no-constant-condition-with-break": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
386
475
|
readonly additionalProperties: false;
|
|
387
476
|
readonly properties: {
|
|
@@ -397,7 +486,31 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
397
486
|
readonly type: "object";
|
|
398
487
|
}], "unexpected", undefined>;
|
|
399
488
|
"no-dead-store": import("oxlint-plugin-utilities").CreateRule<readonly [], "deadStore", undefined>;
|
|
489
|
+
"no-derived-state": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
490
|
+
readonly additionalProperties: false;
|
|
491
|
+
readonly properties: {
|
|
492
|
+
readonly environment: {
|
|
493
|
+
readonly default: "roblox-ts";
|
|
494
|
+
readonly description: "The React environment: 'roblox-ts' uses @rbxts/react, 'standard' uses react.";
|
|
495
|
+
readonly enum: readonly ["roblox-ts", "standard"];
|
|
496
|
+
readonly type: "string";
|
|
497
|
+
};
|
|
498
|
+
};
|
|
499
|
+
readonly type: "object";
|
|
500
|
+
}], "avoidDerivedState", undefined>;
|
|
400
501
|
"no-error": import("oxlint-plugin-utilities").CreateRule<readonly [], "noError", readonly []>;
|
|
502
|
+
"no-event-handler": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
503
|
+
readonly additionalProperties: false;
|
|
504
|
+
readonly properties: {
|
|
505
|
+
readonly environment: {
|
|
506
|
+
readonly default: "roblox-ts";
|
|
507
|
+
readonly description: "The React environment: 'roblox-ts' uses @rbxts/react, 'standard' uses react.";
|
|
508
|
+
readonly enum: readonly ["roblox-ts", "standard"];
|
|
509
|
+
readonly type: "string";
|
|
510
|
+
};
|
|
511
|
+
};
|
|
512
|
+
readonly type: "object";
|
|
513
|
+
}], "avoidEventHandler" | "avoidPropHandler", undefined>;
|
|
401
514
|
"no-events-in-events-callback": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
402
515
|
readonly additionalProperties: false;
|
|
403
516
|
readonly properties: {
|
|
@@ -413,6 +526,18 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
413
526
|
readonly required: readonly ["eventsImportPaths"];
|
|
414
527
|
readonly type: "object";
|
|
415
528
|
}], "preferFunctions", undefined>;
|
|
529
|
+
"no-external-store-subscription": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
530
|
+
readonly additionalProperties: false;
|
|
531
|
+
readonly properties: {
|
|
532
|
+
readonly environment: {
|
|
533
|
+
readonly default: "roblox-ts";
|
|
534
|
+
readonly description: "The React environment: 'roblox-ts' uses @rbxts/react, 'standard' uses react.";
|
|
535
|
+
readonly enum: readonly ["roblox-ts", "standard"];
|
|
536
|
+
readonly type: "string";
|
|
537
|
+
};
|
|
538
|
+
};
|
|
539
|
+
readonly type: "object";
|
|
540
|
+
}], "avoidExternalStoreSubscription", undefined>;
|
|
416
541
|
"no-filter-map-chain": import("oxlint-plugin-utilities").CreateRule<readonly [], "avoidFilterMapChain", undefined>;
|
|
417
542
|
"no-floating-point-equality": import("oxlint-plugin-utilities").CreateRule<readonly [], "exactFloatComparison", undefined>;
|
|
418
543
|
"no-giant-component": import("oxlint-plugin-utilities").CreateRule<undefined, "giantComponent", undefined>;
|
|
@@ -495,6 +620,18 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
495
620
|
};
|
|
496
621
|
readonly type: "object";
|
|
497
622
|
}], "noDecrement" | "noIncrement", undefined>;
|
|
623
|
+
"no-initialize-state": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
624
|
+
readonly additionalProperties: false;
|
|
625
|
+
readonly properties: {
|
|
626
|
+
readonly environment: {
|
|
627
|
+
readonly default: "roblox-ts";
|
|
628
|
+
readonly description: "The React environment: 'roblox-ts' uses @rbxts/react, 'standard' uses react.";
|
|
629
|
+
readonly enum: readonly ["roblox-ts", "standard"];
|
|
630
|
+
readonly type: "string";
|
|
631
|
+
};
|
|
632
|
+
};
|
|
633
|
+
readonly type: "object";
|
|
634
|
+
}], "avoidInitializingState", undefined>;
|
|
498
635
|
"no-inline-property-on-memo-component": import("oxlint-plugin-utilities").CreateRule<undefined, "inlineProperty", undefined>;
|
|
499
636
|
"no-instance-methods-without-this": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
500
637
|
readonly additionalProperties: false;
|
|
@@ -517,7 +654,9 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
517
654
|
};
|
|
518
655
|
readonly type: "object";
|
|
519
656
|
}], "noInstanceMethodWithoutThis", undefined>;
|
|
657
|
+
"no-known-value-widening": import("oxlint-plugin-utilities").CreateOnceRule<undefined, "widening", undefined>;
|
|
520
658
|
"no-loop-iterable-mutation": import("oxlint-plugin-utilities").CreateRule<readonly [], "noLoopIterableMutation", undefined>;
|
|
659
|
+
"no-module-mocking": import("oxlint-plugin-utilities").CreateOnceRule<undefined, "moduleMock", undefined>;
|
|
521
660
|
"no-native-properties-spread": import("oxlint-plugin-utilities").CreateRule<readonly [], "noElementSpread" | "noNativePropertiesSpread", undefined>;
|
|
522
661
|
"no-new-instance-in-use-memo": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
523
662
|
readonly additionalProperties: false;
|
|
@@ -545,6 +684,31 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
545
684
|
};
|
|
546
685
|
readonly type: "object";
|
|
547
686
|
}], "noNewInUseMemo", undefined>;
|
|
687
|
+
"no-object-parameters": import("oxlint-plugin-utilities").CreateOnceRule<undefined, "objectParameter", undefined>;
|
|
688
|
+
"no-pass-data-to-parent": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
689
|
+
readonly additionalProperties: false;
|
|
690
|
+
readonly properties: {
|
|
691
|
+
readonly environment: {
|
|
692
|
+
readonly default: "roblox-ts";
|
|
693
|
+
readonly description: "The React environment: 'roblox-ts' uses @rbxts/react, 'standard' uses react.";
|
|
694
|
+
readonly enum: readonly ["roblox-ts", "standard"];
|
|
695
|
+
readonly type: "string";
|
|
696
|
+
};
|
|
697
|
+
};
|
|
698
|
+
readonly type: "object";
|
|
699
|
+
}], "avoidPassingDataToParentInComponent" | "avoidPassingDataToParentInHook", undefined>;
|
|
700
|
+
"no-pass-live-state-to-parent": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
701
|
+
readonly additionalProperties: false;
|
|
702
|
+
readonly properties: {
|
|
703
|
+
readonly environment: {
|
|
704
|
+
readonly default: "roblox-ts";
|
|
705
|
+
readonly description: "The React environment: 'roblox-ts' uses @rbxts/react, 'standard' uses react.";
|
|
706
|
+
readonly enum: readonly ["roblox-ts", "standard"];
|
|
707
|
+
readonly type: "string";
|
|
708
|
+
};
|
|
709
|
+
};
|
|
710
|
+
readonly type: "object";
|
|
711
|
+
}], "avoidPassingLiveStateToParentInComponent" | "avoidPassingLiveStateToParentInHook", undefined>;
|
|
548
712
|
"no-print": import("oxlint-plugin-utilities").CreateRule<readonly [], "noPrint", readonly []>;
|
|
549
713
|
"no-recursive": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
550
714
|
readonly additionalProperties: false;
|
|
@@ -552,7 +716,21 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
552
716
|
readonly type: "object";
|
|
553
717
|
}], "noRecursive", undefined>;
|
|
554
718
|
"no-redundant-aspect-ratio-constraint": import("oxlint-plugin-utilities").CreateRule<readonly [], "redundantAspectRatioConstraint", undefined>;
|
|
719
|
+
"no-reflect-apply": import("oxlint-plugin-utilities").CreateOnceRule<undefined, "reflectApply", undefined>;
|
|
720
|
+
"no-reflect-get": import("oxlint-plugin-utilities").CreateOnceRule<undefined, "reflectGet", undefined>;
|
|
555
721
|
"no-render-helper-functions": import("oxlint-plugin-utilities").CreateRule<readonly [], "noRenderHelper", undefined>;
|
|
722
|
+
"no-reset-all-state-on-prop-change": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
723
|
+
readonly additionalProperties: false;
|
|
724
|
+
readonly properties: {
|
|
725
|
+
readonly environment: {
|
|
726
|
+
readonly default: "roblox-ts";
|
|
727
|
+
readonly description: "The React environment: 'roblox-ts' uses @rbxts/react, 'standard' uses react.";
|
|
728
|
+
readonly enum: readonly ["roblox-ts", "standard"];
|
|
729
|
+
readonly type: "string";
|
|
730
|
+
};
|
|
731
|
+
};
|
|
732
|
+
readonly type: "object";
|
|
733
|
+
}], "avoidResettingAllStateWhenAPropChanges", undefined>;
|
|
556
734
|
"no-restricted-property-assignment": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
557
735
|
readonly additionalProperties: false;
|
|
558
736
|
readonly properties: {
|
|
@@ -593,6 +771,20 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
593
771
|
readonly required: readonly ["restrictions"];
|
|
594
772
|
readonly type: "object";
|
|
595
773
|
}], "restricted" | "restrictedCustom", undefined>;
|
|
774
|
+
"no-runtime-typeof": import("oxlint-plugin-utilities").CreateOnceRule<readonly [{
|
|
775
|
+
readonly additionalProperties: false;
|
|
776
|
+
readonly properties: {
|
|
777
|
+
readonly allowInTypeGuards: {
|
|
778
|
+
readonly default: false;
|
|
779
|
+
readonly description: "Allow `typeof` inside functions whose return type is a type predicate (`value is T`) or an assertion predicate (`asserts value is T`).";
|
|
780
|
+
readonly type: "boolean";
|
|
781
|
+
};
|
|
782
|
+
};
|
|
783
|
+
readonly type: "object";
|
|
784
|
+
}], "runtimeTypeof", readonly [{
|
|
785
|
+
readonly allowInTypeGuards: false;
|
|
786
|
+
}]>;
|
|
787
|
+
"no-shape-in-symbol-names": import("oxlint-plugin-utilities").CreateOnceRule<undefined, "forbiddenSymbolName", undefined>;
|
|
596
788
|
"no-spec-file-extension": import("oxlint-plugin-utilities").CreateOnceRule<readonly [], "noSpecFileExtension", undefined>;
|
|
597
789
|
"no-static-react-create-element": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
598
790
|
readonly additionalProperties: false;
|
|
@@ -610,6 +802,10 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
610
802
|
"no-task-wait": import("oxlint-plugin-utilities").CreateOnceRule<readonly [], "noPromiseDelayAwait" | "noTaskWait", undefined>;
|
|
611
803
|
"no-trivial-assertions": import("oxlint-plugin-utilities").CreateRule<readonly [], "freshIdentity" | "freshPredicate" | "issue", undefined>;
|
|
612
804
|
"no-underscore-react-props": import("oxlint-plugin-utilities").CreateOnceRule<readonly [], "noUnderscoreReactProperty", undefined>;
|
|
805
|
+
"no-unknown-parameters": import("oxlint-plugin-utilities").CreateOnceRule<undefined, "unknownParameter", undefined>;
|
|
806
|
+
"no-unknown-returns": import("oxlint-plugin-utilities").CreateOnceRule<undefined, "unknownReturn", undefined>;
|
|
807
|
+
"no-unknown-type-aliases": import("oxlint-plugin-utilities").CreateOnceRule<undefined, "unknownAlias", undefined>;
|
|
808
|
+
"no-unsafe-dictionary-type": import("oxlint-plugin-utilities").CreateOnceRule<undefined, "unsafeDictionary", undefined>;
|
|
613
809
|
"no-unused-imports": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
614
810
|
readonly additionalProperties: false;
|
|
615
811
|
readonly properties: {
|
|
@@ -768,9 +964,9 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
768
964
|
readonly additionalProperties: false;
|
|
769
965
|
readonly properties: {
|
|
770
966
|
readonly dependencyMode: {
|
|
771
|
-
readonly default:
|
|
967
|
+
readonly default: DependencyMode.NonUpdating;
|
|
772
968
|
readonly description: "Dependency-array mode used to decide whether a memoized value is static.";
|
|
773
|
-
readonly enum: readonly [
|
|
969
|
+
readonly enum: readonly [DependencyMode.EmptyOrOmitted, DependencyMode.Aggressive, DependencyMode.NonUpdating];
|
|
774
970
|
readonly type: "string";
|
|
775
971
|
};
|
|
776
972
|
readonly environment: {
|
|
@@ -824,6 +1020,7 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
824
1020
|
}], "uselessSpring", undefined>;
|
|
825
1021
|
"no-variadic-spread": import("oxlint-plugin-utilities").CreateOnceRule<readonly [], "noVariadicSpread", undefined>;
|
|
826
1022
|
"no-warn": import("oxlint-plugin-utilities").CreateRule<readonly [], "noWarn", readonly []>;
|
|
1023
|
+
"no-widen-then-assert": import("oxlint-plugin-utilities").CreateOnceRule<undefined, "widenThenAssert", undefined>;
|
|
827
1024
|
"only-type-imports": import("oxlint-plugin-utilities").CreateRule<readonly [], "onlyTypeImports", undefined>;
|
|
828
1025
|
"prefer-class-properties": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
829
1026
|
readonly enum: readonly ["always", "never"];
|
|
@@ -1035,7 +1232,12 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
1035
1232
|
readonly additionalProperties: {
|
|
1036
1233
|
readonly type: "string";
|
|
1037
1234
|
};
|
|
1038
|
-
readonly default:
|
|
1235
|
+
readonly default: {
|
|
1236
|
+
args: string;
|
|
1237
|
+
char: string;
|
|
1238
|
+
dt: string;
|
|
1239
|
+
plr: string;
|
|
1240
|
+
};
|
|
1039
1241
|
readonly defaultLabel: "default shorthands";
|
|
1040
1242
|
readonly description: "Shorthand names and the full names they should expand to.";
|
|
1041
1243
|
readonly type: "object";
|
|
@@ -1080,27 +1282,27 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
1080
1282
|
};
|
|
1081
1283
|
readonly hooks: {
|
|
1082
1284
|
readonly default: readonly [{
|
|
1083
|
-
readonly allowAsync: false;
|
|
1084
1285
|
readonly name: "useEffect";
|
|
1085
|
-
}, {
|
|
1086
1286
|
readonly allowAsync: false;
|
|
1087
|
-
readonly name: "useLayoutEffect";
|
|
1088
1287
|
}, {
|
|
1288
|
+
readonly name: "useLayoutEffect";
|
|
1089
1289
|
readonly allowAsync: false;
|
|
1290
|
+
}, {
|
|
1090
1291
|
readonly name: "useInsertionEffect";
|
|
1292
|
+
readonly allowAsync: false;
|
|
1091
1293
|
}];
|
|
1092
1294
|
readonly description: "Hook configuration objects with name and allowAsync settings.";
|
|
1093
1295
|
readonly items: {
|
|
1094
1296
|
readonly additionalProperties: false;
|
|
1095
1297
|
readonly properties: {
|
|
1096
|
-
readonly allowAsync: {
|
|
1097
|
-
readonly description: "Whether async functions are allowed for this hook";
|
|
1098
|
-
readonly type: "boolean";
|
|
1099
|
-
};
|
|
1100
1298
|
readonly name: {
|
|
1101
1299
|
readonly description: "Hook name to check";
|
|
1102
1300
|
readonly type: "string";
|
|
1103
1301
|
};
|
|
1302
|
+
readonly allowAsync: {
|
|
1303
|
+
readonly description: "Whether async functions are allowed for this hook";
|
|
1304
|
+
readonly type: "boolean";
|
|
1305
|
+
};
|
|
1104
1306
|
};
|
|
1105
1307
|
readonly required: readonly ["name", "allowAsync"];
|
|
1106
1308
|
readonly type: "object";
|
|
@@ -1109,7 +1311,7 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
1109
1311
|
};
|
|
1110
1312
|
readonly inlineFunctionDeclarations: {
|
|
1111
1313
|
readonly default: false;
|
|
1112
|
-
readonly description: "Convert effect callbacks that reference a named function declaration into inline named function expressions (standard and sloptor modes only), keeping the effect body visible to dependency analysis.";
|
|
1314
|
+
readonly description: "Convert effect callbacks that reference a named function declaration into inline named function expressions (standard and sloptor modes only), keeping the effect body visible to dependency analysis. When the declaration is only referenced by the effect and is not exported or commented, the fix also removes the now-unused declaration.";
|
|
1113
1315
|
readonly type: "boolean";
|
|
1114
1316
|
};
|
|
1115
1317
|
readonly sloptor: {
|
|
@@ -1254,6 +1456,7 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
1254
1456
|
};
|
|
1255
1457
|
readonly type: "object";
|
|
1256
1458
|
}], "directContextExport" | "directMemoExport" | "missingContextDisplayName" | "missingMemoDisplayName", undefined>;
|
|
1459
|
+
"require-safety-comment-for-type-assertion": import("oxlint-plugin-utilities").CreateOnceRule<undefined, "missingSafetyComment", undefined>;
|
|
1257
1460
|
"require-switch-case-braces": import("oxlint-plugin-utilities").CreateRule<readonly [{
|
|
1258
1461
|
readonly additionalProperties: false;
|
|
1259
1462
|
readonly properties: {
|
|
@@ -1277,11 +1480,6 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
1277
1480
|
}, {
|
|
1278
1481
|
readonly additionalProperties: false;
|
|
1279
1482
|
readonly properties: {
|
|
1280
|
-
readonly from: {
|
|
1281
|
-
readonly description: "Where the error class is declared";
|
|
1282
|
-
readonly enum: readonly ["file", "library", "package"];
|
|
1283
|
-
readonly type: "string";
|
|
1284
|
-
};
|
|
1285
1483
|
readonly name: {
|
|
1286
1484
|
readonly anyOf: readonly [{
|
|
1287
1485
|
readonly type: "string";
|
|
@@ -1293,6 +1491,11 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
1293
1491
|
}];
|
|
1294
1492
|
readonly description: "Name(s) of the error class";
|
|
1295
1493
|
};
|
|
1494
|
+
readonly from: {
|
|
1495
|
+
readonly description: "Where the error class is declared";
|
|
1496
|
+
readonly enum: readonly ["file", "library", "package"];
|
|
1497
|
+
readonly type: "string";
|
|
1498
|
+
};
|
|
1296
1499
|
readonly package: {
|
|
1297
1500
|
readonly description: "Package the error class is imported from (required when from is 'package')";
|
|
1298
1501
|
readonly type: "string";
|
|
@@ -1341,6 +1544,10 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
1341
1544
|
readonly items: {
|
|
1342
1545
|
readonly additionalProperties: false;
|
|
1343
1546
|
readonly properties: {
|
|
1547
|
+
readonly name: {
|
|
1548
|
+
readonly description: "The name of the hook";
|
|
1549
|
+
readonly type: "string";
|
|
1550
|
+
};
|
|
1344
1551
|
readonly closureIndex: {
|
|
1345
1552
|
readonly description: "Index of the closure argument for dependency validation";
|
|
1346
1553
|
readonly type: "number";
|
|
@@ -1349,10 +1556,6 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
|
|
|
1349
1556
|
readonly description: "Index of the dependencies array for validation";
|
|
1350
1557
|
readonly type: "number";
|
|
1351
1558
|
};
|
|
1352
|
-
readonly name: {
|
|
1353
|
-
readonly description: "The name of the hook";
|
|
1354
|
-
readonly type: "string";
|
|
1355
|
-
};
|
|
1356
1559
|
readonly stableResult: {
|
|
1357
1560
|
readonly description: "Specify stable results: true (whole result), number (array index), number[] (multiple indices), or string[] (object properties)";
|
|
1358
1561
|
readonly oneOf: readonly [{
|