@pobammer-ts/small-rules 2.15.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 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
  [![npm version](https://img.shields.io/npm/v/@pobammer-ts/small-rules?logo=npm&color=cb3837)](https://www.npmjs.com/package/@pobammer-ts/small-rules)
8
8
  [![npm downloads](https://img.shields.io/npm/dm/@pobammer-ts/small-rules?logo=npm&color=cb3837)](https://www.npmjs.com/package/@pobammer-ts/small-rules)
9
- [![Rules](https://img.shields.io/badge/rules-87-blueviolet)](https://docs.howmanysmall.com/small-rules/rules/)
9
+ [![Rules](https://img.shields.io/badge/rules-109-blueviolet)](https://docs.howmanysmall.com/small-rules/rules/)
10
10
  [![CI](https://github.com/pobammer-ts/small-rules/actions/workflows/ci.yaml/badge.svg?branch=main)](https://github.com/pobammer-ts/small-rules/actions/workflows/ci.yaml)
11
11
  [![License](https://img.shields.io/npm/l/@pobammer-ts/small-rules?color=blue)](https://github.com/pobammer-ts/small-rules/blob/main/LICENSE)
12
12
 
13
13
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.0%E2%80%938.0-3178c6?logo=typescript)](https://www.typescriptlang.org/)
14
14
  [![Node.js](https://img.shields.io/badge/Node.js-%5E20.19%20%7C%20%E2%89%A522.12-339933?logo=node.js)](https://nodejs.org)
15
15
  [![Oxlint](https://img.shields.io/badge/linter-Oxlint-f9801b?logo=oxlint)](https://oxc.rs)
16
- [![Biome](https://img.shields.io/badge/code%20style-Biome-609d6c?logo=biome)](https://biomejs.dev)
16
+ [![ESLint](https://img.shields.io/badge/linter-ESLint-4B32C3?logo=eslint)](https://eslint.org)
17
+ [![Biome](https://img.shields.io/badge/formatter-Biome-609d6c?logo=biome)](https://biomejs.dev)
18
+ [![oxfmt](https://img.shields.io/badge/formatter-oxfmt-f9801b?logo=oxlint)](https://github.com/oxc-project/oxc)
19
+ [![knip](https://img.shields.io/badge/code%20quality-knip-f97316?logo=knip)](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";
@@ -384,6 +447,7 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
384
447
  };
385
448
  readonly type: "object";
386
449
  }], "avoidChainingStateUpdates", undefined>;
450
+ "no-chained-type-assertions": import("oxlint-plugin-utilities").CreateOnceRule<undefined, "chained", undefined>;
387
451
  "no-color3-constructor": import("oxlint-plugin-utilities").CreateRule<readonly [{
388
452
  readonly additionalProperties: false;
389
453
  readonly properties: {
@@ -406,6 +470,7 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
406
470
  };
407
471
  readonly type: "object";
408
472
  }], "commentedCode", undefined>;
473
+ "no-conditional-empty-object-spread": import("oxlint-plugin-utilities").CreateOnceRule<undefined, "avoid", undefined>;
409
474
  "no-constant-condition-with-break": import("oxlint-plugin-utilities").CreateRule<readonly [{
410
475
  readonly additionalProperties: false;
411
476
  readonly properties: {
@@ -589,7 +654,9 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
589
654
  };
590
655
  readonly type: "object";
591
656
  }], "noInstanceMethodWithoutThis", undefined>;
657
+ "no-known-value-widening": import("oxlint-plugin-utilities").CreateOnceRule<undefined, "widening", undefined>;
592
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>;
593
660
  "no-native-properties-spread": import("oxlint-plugin-utilities").CreateRule<readonly [], "noElementSpread" | "noNativePropertiesSpread", undefined>;
594
661
  "no-new-instance-in-use-memo": import("oxlint-plugin-utilities").CreateRule<readonly [{
595
662
  readonly additionalProperties: false;
@@ -617,6 +684,7 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
617
684
  };
618
685
  readonly type: "object";
619
686
  }], "noNewInUseMemo", undefined>;
687
+ "no-object-parameters": import("oxlint-plugin-utilities").CreateOnceRule<undefined, "objectParameter", undefined>;
620
688
  "no-pass-data-to-parent": import("oxlint-plugin-utilities").CreateRule<readonly [{
621
689
  readonly additionalProperties: false;
622
690
  readonly properties: {
@@ -648,6 +716,8 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
648
716
  readonly type: "object";
649
717
  }], "noRecursive", undefined>;
650
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>;
651
721
  "no-render-helper-functions": import("oxlint-plugin-utilities").CreateRule<readonly [], "noRenderHelper", undefined>;
652
722
  "no-reset-all-state-on-prop-change": import("oxlint-plugin-utilities").CreateRule<readonly [{
653
723
  readonly additionalProperties: false;
@@ -701,6 +771,20 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
701
771
  readonly required: readonly ["restrictions"];
702
772
  readonly type: "object";
703
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>;
704
788
  "no-spec-file-extension": import("oxlint-plugin-utilities").CreateOnceRule<readonly [], "noSpecFileExtension", undefined>;
705
789
  "no-static-react-create-element": import("oxlint-plugin-utilities").CreateRule<readonly [{
706
790
  readonly additionalProperties: false;
@@ -718,6 +802,10 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
718
802
  "no-task-wait": import("oxlint-plugin-utilities").CreateOnceRule<readonly [], "noPromiseDelayAwait" | "noTaskWait", undefined>;
719
803
  "no-trivial-assertions": import("oxlint-plugin-utilities").CreateRule<readonly [], "freshIdentity" | "freshPredicate" | "issue", undefined>;
720
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>;
721
809
  "no-unused-imports": import("oxlint-plugin-utilities").CreateRule<readonly [{
722
810
  readonly additionalProperties: false;
723
811
  readonly properties: {
@@ -876,9 +964,9 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
876
964
  readonly additionalProperties: false;
877
965
  readonly properties: {
878
966
  readonly dependencyMode: {
879
- readonly default: "non-updating";
967
+ readonly default: DependencyMode.NonUpdating;
880
968
  readonly description: "Dependency-array mode used to decide whether a memoized value is static.";
881
- readonly enum: readonly ["empty-or-omitted", "non-updating", "aggressive"];
969
+ readonly enum: readonly [DependencyMode.EmptyOrOmitted, DependencyMode.Aggressive, DependencyMode.NonUpdating];
882
970
  readonly type: "string";
883
971
  };
884
972
  readonly environment: {
@@ -932,6 +1020,7 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
932
1020
  }], "uselessSpring", undefined>;
933
1021
  "no-variadic-spread": import("oxlint-plugin-utilities").CreateOnceRule<readonly [], "noVariadicSpread", undefined>;
934
1022
  "no-warn": import("oxlint-plugin-utilities").CreateRule<readonly [], "noWarn", readonly []>;
1023
+ "no-widen-then-assert": import("oxlint-plugin-utilities").CreateOnceRule<undefined, "widenThenAssert", undefined>;
935
1024
  "only-type-imports": import("oxlint-plugin-utilities").CreateRule<readonly [], "onlyTypeImports", undefined>;
936
1025
  "prefer-class-properties": import("oxlint-plugin-utilities").CreateRule<readonly [{
937
1026
  readonly enum: readonly ["always", "never"];
@@ -1143,7 +1232,12 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
1143
1232
  readonly additionalProperties: {
1144
1233
  readonly type: "string";
1145
1234
  };
1146
- readonly default: Record<string, string>;
1235
+ readonly default: {
1236
+ args: string;
1237
+ char: string;
1238
+ dt: string;
1239
+ plr: string;
1240
+ };
1147
1241
  readonly defaultLabel: "default shorthands";
1148
1242
  readonly description: "Shorthand names and the full names they should expand to.";
1149
1243
  readonly type: "object";
@@ -1188,27 +1282,27 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
1188
1282
  };
1189
1283
  readonly hooks: {
1190
1284
  readonly default: readonly [{
1191
- readonly allowAsync: false;
1192
1285
  readonly name: "useEffect";
1193
- }, {
1194
1286
  readonly allowAsync: false;
1195
- readonly name: "useLayoutEffect";
1196
1287
  }, {
1288
+ readonly name: "useLayoutEffect";
1197
1289
  readonly allowAsync: false;
1290
+ }, {
1198
1291
  readonly name: "useInsertionEffect";
1292
+ readonly allowAsync: false;
1199
1293
  }];
1200
1294
  readonly description: "Hook configuration objects with name and allowAsync settings.";
1201
1295
  readonly items: {
1202
1296
  readonly additionalProperties: false;
1203
1297
  readonly properties: {
1204
- readonly allowAsync: {
1205
- readonly description: "Whether async functions are allowed for this hook";
1206
- readonly type: "boolean";
1207
- };
1208
1298
  readonly name: {
1209
1299
  readonly description: "Hook name to check";
1210
1300
  readonly type: "string";
1211
1301
  };
1302
+ readonly allowAsync: {
1303
+ readonly description: "Whether async functions are allowed for this hook";
1304
+ readonly type: "boolean";
1305
+ };
1212
1306
  };
1213
1307
  readonly required: readonly ["name", "allowAsync"];
1214
1308
  readonly type: "object";
@@ -1362,6 +1456,7 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
1362
1456
  };
1363
1457
  readonly type: "object";
1364
1458
  }], "directContextExport" | "directMemoExport" | "missingContextDisplayName" | "missingMemoDisplayName", undefined>;
1459
+ "require-safety-comment-for-type-assertion": import("oxlint-plugin-utilities").CreateOnceRule<undefined, "missingSafetyComment", undefined>;
1365
1460
  "require-switch-case-braces": import("oxlint-plugin-utilities").CreateRule<readonly [{
1366
1461
  readonly additionalProperties: false;
1367
1462
  readonly properties: {
@@ -1385,11 +1480,6 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
1385
1480
  }, {
1386
1481
  readonly additionalProperties: false;
1387
1482
  readonly properties: {
1388
- readonly from: {
1389
- readonly description: "Where the error class is declared";
1390
- readonly enum: readonly ["file", "library", "package"];
1391
- readonly type: "string";
1392
- };
1393
1483
  readonly name: {
1394
1484
  readonly anyOf: readonly [{
1395
1485
  readonly type: "string";
@@ -1401,6 +1491,11 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
1401
1491
  }];
1402
1492
  readonly description: "Name(s) of the error class";
1403
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
+ };
1404
1499
  readonly package: {
1405
1500
  readonly description: "Package the error class is imported from (required when from is 'package')";
1406
1501
  readonly type: "string";
@@ -1449,6 +1544,10 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
1449
1544
  readonly items: {
1450
1545
  readonly additionalProperties: false;
1451
1546
  readonly properties: {
1547
+ readonly name: {
1548
+ readonly description: "The name of the hook";
1549
+ readonly type: "string";
1550
+ };
1452
1551
  readonly closureIndex: {
1453
1552
  readonly description: "Index of the closure argument for dependency validation";
1454
1553
  readonly type: "number";
@@ -1457,10 +1556,6 @@ declare const smallRules: import("oxlint-plugin-utilities").Plugin<{
1457
1556
  readonly description: "Index of the dependencies array for validation";
1458
1557
  readonly type: "number";
1459
1558
  };
1460
- readonly name: {
1461
- readonly description: "The name of the hook";
1462
- readonly type: "string";
1463
- };
1464
1559
  readonly stableResult: {
1465
1560
  readonly description: "Specify stable results: true (whole result), number (array index), number[] (multiple indices), or string[] (object properties)";
1466
1561
  readonly oneOf: readonly [{