oxlint-plugin-react-doctor 0.2.9 → 0.2.11-dev.402c7ea

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.
Files changed (3) hide show
  1. package/dist/index.d.ts +1064 -70
  2. package/dist/index.js +3880 -985
  3. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -82,10 +82,17 @@ interface ScopeAnalysis {
82
82
  //#region src/plugin/utils/rule-context.d.ts
83
83
  interface BaseRuleContext {
84
84
  report: (descriptor: ReportDescriptor) => void;
85
- getFilename?: () => string;
85
+ readonly filename?: string;
86
+ /**
87
+ * @deprecated Rules use `context.filename`. Read only as a fallback by
88
+ * `wrapWithSemanticContext`; ESLint implements it as a `this`-bound class
89
+ * method, so it must be called on the host context, never a detached
90
+ * reference.
91
+ */
92
+ getFilename?: () => string | undefined;
86
93
  readonly settings?: Readonly<Record<string, unknown>>;
87
94
  }
88
- interface RuleContext extends BaseRuleContext {
95
+ interface RuleContext extends Omit<BaseRuleContext, "getFilename"> {
89
96
  readonly scopes: ScopeAnalysis;
90
97
  readonly cfg: ControlFlowAnalysis;
91
98
  }
@@ -97,7 +104,7 @@ interface RuleVisitors {
97
104
  //#endregion
98
105
  //#region src/plugin/utils/rule.d.ts
99
106
  type RuleSeverity = "error" | "warn";
100
- type RuleFramework = "global" | "nextjs" | "react-native" | "tanstack-start" | "tanstack-query";
107
+ type RuleFramework = "global" | "nextjs" | "react-native" | "tanstack-start" | "tanstack-query" | "preact";
101
108
  interface Rule {
102
109
  id: string;
103
110
  severity: RuleSeverity;
@@ -130,6 +137,23 @@ type OxlintRuleSeverity = RuleSeverity | "off";
130
137
  //#endregion
131
138
  //#region src/rules.d.ts
132
139
  declare const REACT_DOCTOR_RULES: readonly [{
140
+ readonly key: "react-doctor/activity-wraps-effect-heavy-subtree";
141
+ readonly id: "activity-wraps-effect-heavy-subtree";
142
+ readonly source: "react-doctor";
143
+ readonly originallyExternal: false;
144
+ readonly rule: {
145
+ readonly framework: "global";
146
+ readonly category: "State & Effects";
147
+ readonly id: string;
148
+ readonly severity: RuleSeverity;
149
+ readonly requires?: ReadonlyArray<string>;
150
+ readonly disabledBy?: ReadonlyArray<string>;
151
+ readonly tags?: ReadonlyArray<string>;
152
+ readonly defaultEnabled?: boolean;
153
+ readonly recommendation?: string;
154
+ readonly create: (context: RuleContext) => RuleVisitors;
155
+ };
156
+ }, {
133
157
  readonly key: "react-doctor/advanced-event-handler-refs";
134
158
  readonly id: "advanced-event-handler-refs";
135
159
  readonly source: "react-doctor";
@@ -724,6 +748,23 @@ declare const REACT_DOCTOR_RULES: readonly [{
724
748
  readonly recommendation?: string;
725
749
  readonly create: (context: RuleContext) => RuleVisitors;
726
750
  };
751
+ }, {
752
+ readonly key: "react-doctor/hooks-no-nan-in-deps";
753
+ readonly id: "hooks-no-nan-in-deps";
754
+ readonly source: "react-doctor";
755
+ readonly originallyExternal: false;
756
+ readonly rule: {
757
+ readonly framework: "global";
758
+ readonly category: "State & Effects";
759
+ readonly id: string;
760
+ readonly severity: RuleSeverity;
761
+ readonly requires?: ReadonlyArray<string>;
762
+ readonly disabledBy?: ReadonlyArray<string>;
763
+ readonly tags?: ReadonlyArray<string>;
764
+ readonly defaultEnabled?: boolean;
765
+ readonly recommendation?: string;
766
+ readonly create: (context: RuleContext) => RuleVisitors;
767
+ };
727
768
  }, {
728
769
  readonly key: "react-doctor/html-has-lang";
729
770
  readonly id: "html-has-lang";
@@ -741,6 +782,57 @@ declare const REACT_DOCTOR_RULES: readonly [{
741
782
  readonly recommendation?: string;
742
783
  readonly create: (context: RuleContext) => RuleVisitors;
743
784
  };
785
+ }, {
786
+ readonly key: "react-doctor/html-no-invalid-paragraph-child";
787
+ readonly id: "html-no-invalid-paragraph-child";
788
+ readonly source: "react-doctor";
789
+ readonly originallyExternal: false;
790
+ readonly rule: {
791
+ readonly framework: "global";
792
+ readonly category: "Correctness";
793
+ readonly id: string;
794
+ readonly severity: RuleSeverity;
795
+ readonly requires?: ReadonlyArray<string>;
796
+ readonly disabledBy?: ReadonlyArray<string>;
797
+ readonly tags?: ReadonlyArray<string>;
798
+ readonly defaultEnabled?: boolean;
799
+ readonly recommendation?: string;
800
+ readonly create: (context: RuleContext) => RuleVisitors;
801
+ };
802
+ }, {
803
+ readonly key: "react-doctor/html-no-invalid-table-nesting";
804
+ readonly id: "html-no-invalid-table-nesting";
805
+ readonly source: "react-doctor";
806
+ readonly originallyExternal: false;
807
+ readonly rule: {
808
+ readonly framework: "global";
809
+ readonly category: "Correctness";
810
+ readonly id: string;
811
+ readonly severity: RuleSeverity;
812
+ readonly requires?: ReadonlyArray<string>;
813
+ readonly disabledBy?: ReadonlyArray<string>;
814
+ readonly tags?: ReadonlyArray<string>;
815
+ readonly defaultEnabled?: boolean;
816
+ readonly recommendation?: string;
817
+ readonly create: (context: RuleContext) => RuleVisitors;
818
+ };
819
+ }, {
820
+ readonly key: "react-doctor/html-no-nested-interactive";
821
+ readonly id: "html-no-nested-interactive";
822
+ readonly source: "react-doctor";
823
+ readonly originallyExternal: false;
824
+ readonly rule: {
825
+ readonly framework: "global";
826
+ readonly category: "Correctness";
827
+ readonly id: string;
828
+ readonly severity: RuleSeverity;
829
+ readonly requires?: ReadonlyArray<string>;
830
+ readonly disabledBy?: ReadonlyArray<string>;
831
+ readonly tags?: ReadonlyArray<string>;
832
+ readonly defaultEnabled?: boolean;
833
+ readonly recommendation?: string;
834
+ readonly create: (context: RuleContext) => RuleVisitors;
835
+ };
744
836
  }, {
745
837
  readonly key: "react-doctor/iframe-has-title";
746
838
  readonly id: "iframe-has-title";
@@ -809,6 +901,74 @@ declare const REACT_DOCTOR_RULES: readonly [{
809
901
  readonly recommendation?: string;
810
902
  readonly create: (context: RuleContext) => RuleVisitors;
811
903
  };
904
+ }, {
905
+ readonly key: "react-doctor/jotai-derived-atom-returns-fresh-object";
906
+ readonly id: "jotai-derived-atom-returns-fresh-object";
907
+ readonly source: "react-doctor";
908
+ readonly originallyExternal: false;
909
+ readonly rule: {
910
+ readonly framework: "global";
911
+ readonly category: "State & Effects";
912
+ readonly id: string;
913
+ readonly severity: RuleSeverity;
914
+ readonly requires?: ReadonlyArray<string>;
915
+ readonly disabledBy?: ReadonlyArray<string>;
916
+ readonly tags?: ReadonlyArray<string>;
917
+ readonly defaultEnabled?: boolean;
918
+ readonly recommendation?: string;
919
+ readonly create: (context: RuleContext) => RuleVisitors;
920
+ };
921
+ }, {
922
+ readonly key: "react-doctor/jotai-select-atom-in-render-body";
923
+ readonly id: "jotai-select-atom-in-render-body";
924
+ readonly source: "react-doctor";
925
+ readonly originallyExternal: false;
926
+ readonly rule: {
927
+ readonly framework: "global";
928
+ readonly category: "State & Effects";
929
+ readonly id: string;
930
+ readonly severity: RuleSeverity;
931
+ readonly requires?: ReadonlyArray<string>;
932
+ readonly disabledBy?: ReadonlyArray<string>;
933
+ readonly tags?: ReadonlyArray<string>;
934
+ readonly defaultEnabled?: boolean;
935
+ readonly recommendation?: string;
936
+ readonly create: (context: RuleContext) => RuleVisitors;
937
+ };
938
+ }, {
939
+ readonly key: "react-doctor/jotai-tq-use-raw-query-atom";
940
+ readonly id: "jotai-tq-use-raw-query-atom";
941
+ readonly source: "react-doctor";
942
+ readonly originallyExternal: false;
943
+ readonly rule: {
944
+ readonly framework: "global";
945
+ readonly category: "State & Effects";
946
+ readonly id: string;
947
+ readonly severity: RuleSeverity;
948
+ readonly requires?: ReadonlyArray<string>;
949
+ readonly disabledBy?: ReadonlyArray<string>;
950
+ readonly tags?: ReadonlyArray<string>;
951
+ readonly defaultEnabled?: boolean;
952
+ readonly recommendation?: string;
953
+ readonly create: (context: RuleContext) => RuleVisitors;
954
+ };
955
+ }, {
956
+ readonly key: "react-doctor/js-async-reduce-without-awaited-acc";
957
+ readonly id: "js-async-reduce-without-awaited-acc";
958
+ readonly source: "react-doctor";
959
+ readonly originallyExternal: false;
960
+ readonly rule: {
961
+ readonly framework: "global";
962
+ readonly category: "Performance";
963
+ readonly id: string;
964
+ readonly severity: RuleSeverity;
965
+ readonly requires?: ReadonlyArray<string>;
966
+ readonly disabledBy?: ReadonlyArray<string>;
967
+ readonly tags?: ReadonlyArray<string>;
968
+ readonly defaultEnabled?: boolean;
969
+ readonly recommendation?: string;
970
+ readonly create: (context: RuleContext) => RuleVisitors;
971
+ };
812
972
  }, {
813
973
  readonly key: "react-doctor/js-batch-dom-css";
814
974
  readonly id: "js-batch-dom-css";
@@ -1914,6 +2074,40 @@ declare const REACT_DOCTOR_RULES: readonly [{
1914
2074
  readonly recommendation?: string;
1915
2075
  readonly create: (context: RuleContext) => RuleVisitors;
1916
2076
  };
2077
+ }, {
2078
+ readonly key: "react-doctor/no-create-context-in-render";
2079
+ readonly id: "no-create-context-in-render";
2080
+ readonly source: "react-doctor";
2081
+ readonly originallyExternal: false;
2082
+ readonly rule: {
2083
+ readonly framework: "global";
2084
+ readonly category: "Correctness";
2085
+ readonly id: string;
2086
+ readonly severity: RuleSeverity;
2087
+ readonly requires?: ReadonlyArray<string>;
2088
+ readonly disabledBy?: ReadonlyArray<string>;
2089
+ readonly tags?: ReadonlyArray<string>;
2090
+ readonly defaultEnabled?: boolean;
2091
+ readonly recommendation?: string;
2092
+ readonly create: (context: RuleContext) => RuleVisitors;
2093
+ };
2094
+ }, {
2095
+ readonly key: "react-doctor/no-create-store-in-render";
2096
+ readonly id: "no-create-store-in-render";
2097
+ readonly source: "react-doctor";
2098
+ readonly originallyExternal: false;
2099
+ readonly rule: {
2100
+ readonly framework: "global";
2101
+ readonly category: "Correctness";
2102
+ readonly id: string;
2103
+ readonly severity: RuleSeverity;
2104
+ readonly requires?: ReadonlyArray<string>;
2105
+ readonly disabledBy?: ReadonlyArray<string>;
2106
+ readonly tags?: ReadonlyArray<string>;
2107
+ readonly defaultEnabled?: boolean;
2108
+ readonly recommendation?: string;
2109
+ readonly create: (context: RuleContext) => RuleVisitors;
2110
+ };
1917
2111
  }, {
1918
2112
  readonly key: "react-doctor/no-danger";
1919
2113
  readonly id: "no-danger";
@@ -2220,6 +2414,23 @@ declare const REACT_DOCTOR_RULES: readonly [{
2220
2414
  readonly recommendation?: string;
2221
2415
  readonly create: (context: RuleContext) => RuleVisitors;
2222
2416
  };
2417
+ }, {
2418
+ readonly key: "react-doctor/no-effect-with-fresh-deps";
2419
+ readonly id: "no-effect-with-fresh-deps";
2420
+ readonly source: "react-doctor";
2421
+ readonly originallyExternal: false;
2422
+ readonly rule: {
2423
+ readonly framework: "global";
2424
+ readonly category: "State & Effects";
2425
+ readonly id: string;
2426
+ readonly severity: RuleSeverity;
2427
+ readonly requires?: ReadonlyArray<string>;
2428
+ readonly disabledBy?: ReadonlyArray<string>;
2429
+ readonly tags?: ReadonlyArray<string>;
2430
+ readonly defaultEnabled?: boolean;
2431
+ readonly recommendation?: string;
2432
+ readonly create: (context: RuleContext) => RuleVisitors;
2433
+ };
2223
2434
  }, {
2224
2435
  readonly key: "react-doctor/no-eval";
2225
2436
  readonly id: "no-eval";
@@ -2951,6 +3162,23 @@ declare const REACT_DOCTOR_RULES: readonly [{
2951
3162
  readonly recommendation?: string;
2952
3163
  readonly create: (context: RuleContext) => RuleVisitors;
2953
3164
  };
3165
+ }, {
3166
+ readonly key: "react-doctor/no-prop-types";
3167
+ readonly id: "no-prop-types";
3168
+ readonly source: "react-doctor";
3169
+ readonly originallyExternal: false;
3170
+ readonly rule: {
3171
+ readonly framework: "global";
3172
+ readonly category: "Architecture";
3173
+ readonly id: string;
3174
+ readonly severity: RuleSeverity;
3175
+ readonly requires?: ReadonlyArray<string>;
3176
+ readonly disabledBy?: ReadonlyArray<string>;
3177
+ readonly tags?: ReadonlyArray<string>;
3178
+ readonly defaultEnabled?: boolean;
3179
+ readonly recommendation?: string;
3180
+ readonly create: (context: RuleContext) => RuleVisitors;
3181
+ };
2954
3182
  }, {
2955
3183
  readonly key: "react-doctor/no-pure-black-background";
2956
3184
  readonly id: "no-pure-black-background";
@@ -2968,6 +3196,23 @@ declare const REACT_DOCTOR_RULES: readonly [{
2968
3196
  readonly recommendation?: string;
2969
3197
  readonly create: (context: RuleContext) => RuleVisitors;
2970
3198
  };
3199
+ }, {
3200
+ readonly key: "react-doctor/no-random-key";
3201
+ readonly id: "no-random-key";
3202
+ readonly source: "react-doctor";
3203
+ readonly originallyExternal: false;
3204
+ readonly rule: {
3205
+ readonly framework: "global";
3206
+ readonly category: "Correctness";
3207
+ readonly id: string;
3208
+ readonly severity: RuleSeverity;
3209
+ readonly requires?: ReadonlyArray<string>;
3210
+ readonly disabledBy?: ReadonlyArray<string>;
3211
+ readonly tags?: ReadonlyArray<string>;
3212
+ readonly defaultEnabled?: boolean;
3213
+ readonly recommendation?: string;
3214
+ readonly create: (context: RuleContext) => RuleVisitors;
3215
+ };
2971
3216
  }, {
2972
3217
  readonly key: "react-doctor/no-react-children";
2973
3218
  readonly id: "no-react-children";
@@ -3479,13 +3724,13 @@ declare const REACT_DOCTOR_RULES: readonly [{
3479
3724
  readonly create: (context: RuleContext) => RuleVisitors;
3480
3725
  };
3481
3726
  }, {
3482
- readonly key: "react-doctor/prefer-dynamic-import";
3483
- readonly id: "prefer-dynamic-import";
3727
+ readonly key: "react-doctor/preact-no-children-length";
3728
+ readonly id: "preact-no-children-length";
3484
3729
  readonly source: "react-doctor";
3485
3730
  readonly originallyExternal: false;
3486
3731
  readonly rule: {
3487
- readonly framework: "global";
3488
- readonly category: "Bundle Size";
3732
+ readonly framework: "preact";
3733
+ readonly category: "Preact";
3489
3734
  readonly id: string;
3490
3735
  readonly severity: RuleSeverity;
3491
3736
  readonly requires?: ReadonlyArray<string>;
@@ -3496,13 +3741,13 @@ declare const REACT_DOCTOR_RULES: readonly [{
3496
3741
  readonly create: (context: RuleContext) => RuleVisitors;
3497
3742
  };
3498
3743
  }, {
3499
- readonly key: "react-doctor/prefer-es6-class";
3500
- readonly id: "prefer-es6-class";
3744
+ readonly key: "react-doctor/preact-no-react-hooks-import";
3745
+ readonly id: "preact-no-react-hooks-import";
3501
3746
  readonly source: "react-doctor";
3502
- readonly originallyExternal: true;
3747
+ readonly originallyExternal: false;
3503
3748
  readonly rule: {
3504
- readonly framework: "global";
3505
- readonly category: "Architecture";
3749
+ readonly framework: "preact";
3750
+ readonly category: "Preact";
3506
3751
  readonly id: string;
3507
3752
  readonly severity: RuleSeverity;
3508
3753
  readonly requires?: ReadonlyArray<string>;
@@ -3513,13 +3758,13 @@ declare const REACT_DOCTOR_RULES: readonly [{
3513
3758
  readonly create: (context: RuleContext) => RuleVisitors;
3514
3759
  };
3515
3760
  }, {
3516
- readonly key: "react-doctor/prefer-function-component";
3517
- readonly id: "prefer-function-component";
3761
+ readonly key: "react-doctor/preact-no-render-arguments";
3762
+ readonly id: "preact-no-render-arguments";
3518
3763
  readonly source: "react-doctor";
3519
- readonly originallyExternal: true;
3764
+ readonly originallyExternal: false;
3520
3765
  readonly rule: {
3521
- readonly framework: "global";
3522
- readonly category: "Architecture";
3766
+ readonly framework: "preact";
3767
+ readonly category: "Preact";
3523
3768
  readonly id: string;
3524
3769
  readonly severity: RuleSeverity;
3525
3770
  readonly requires?: ReadonlyArray<string>;
@@ -3530,13 +3775,13 @@ declare const REACT_DOCTOR_RULES: readonly [{
3530
3775
  readonly create: (context: RuleContext) => RuleVisitors;
3531
3776
  };
3532
3777
  }, {
3533
- readonly key: "react-doctor/prefer-tag-over-role";
3534
- readonly id: "prefer-tag-over-role";
3778
+ readonly key: "react-doctor/preact-prefer-ondblclick";
3779
+ readonly id: "preact-prefer-ondblclick";
3535
3780
  readonly source: "react-doctor";
3536
- readonly originallyExternal: true;
3781
+ readonly originallyExternal: false;
3537
3782
  readonly rule: {
3538
- readonly framework: "global";
3539
- readonly category: "Accessibility";
3783
+ readonly framework: "preact";
3784
+ readonly category: "Preact";
3540
3785
  readonly id: string;
3541
3786
  readonly severity: RuleSeverity;
3542
3787
  readonly requires?: ReadonlyArray<string>;
@@ -3547,13 +3792,13 @@ declare const REACT_DOCTOR_RULES: readonly [{
3547
3792
  readonly create: (context: RuleContext) => RuleVisitors;
3548
3793
  };
3549
3794
  }, {
3550
- readonly key: "react-doctor/prefer-use-effect-event";
3551
- readonly id: "prefer-use-effect-event";
3795
+ readonly key: "react-doctor/preact-prefer-oninput";
3796
+ readonly id: "preact-prefer-oninput";
3552
3797
  readonly source: "react-doctor";
3553
3798
  readonly originallyExternal: false;
3554
3799
  readonly rule: {
3555
- readonly framework: "global";
3556
- readonly category: "State & Effects";
3800
+ readonly framework: "preact";
3801
+ readonly category: "Preact";
3557
3802
  readonly id: string;
3558
3803
  readonly severity: RuleSeverity;
3559
3804
  readonly requires?: ReadonlyArray<string>;
@@ -3564,13 +3809,13 @@ declare const REACT_DOCTOR_RULES: readonly [{
3564
3809
  readonly create: (context: RuleContext) => RuleVisitors;
3565
3810
  };
3566
3811
  }, {
3567
- readonly key: "react-doctor/prefer-use-sync-external-store";
3568
- readonly id: "prefer-use-sync-external-store";
3812
+ readonly key: "react-doctor/prefer-dynamic-import";
3813
+ readonly id: "prefer-dynamic-import";
3569
3814
  readonly source: "react-doctor";
3570
3815
  readonly originallyExternal: false;
3571
3816
  readonly rule: {
3572
3817
  readonly framework: "global";
3573
- readonly category: "State & Effects";
3818
+ readonly category: "Bundle Size";
3574
3819
  readonly id: string;
3575
3820
  readonly severity: RuleSeverity;
3576
3821
  readonly requires?: ReadonlyArray<string>;
@@ -3581,13 +3826,13 @@ declare const REACT_DOCTOR_RULES: readonly [{
3581
3826
  readonly create: (context: RuleContext) => RuleVisitors;
3582
3827
  };
3583
3828
  }, {
3584
- readonly key: "react-doctor/prefer-useReducer";
3585
- readonly id: "prefer-useReducer";
3829
+ readonly key: "react-doctor/prefer-es6-class";
3830
+ readonly id: "prefer-es6-class";
3586
3831
  readonly source: "react-doctor";
3587
- readonly originallyExternal: false;
3832
+ readonly originallyExternal: true;
3588
3833
  readonly rule: {
3589
3834
  readonly framework: "global";
3590
- readonly category: "State & Effects";
3835
+ readonly category: "Architecture";
3591
3836
  readonly id: string;
3592
3837
  readonly severity: RuleSeverity;
3593
3838
  readonly requires?: ReadonlyArray<string>;
@@ -3598,10 +3843,163 @@ declare const REACT_DOCTOR_RULES: readonly [{
3598
3843
  readonly create: (context: RuleContext) => RuleVisitors;
3599
3844
  };
3600
3845
  }, {
3601
- readonly key: "react-doctor/query-mutation-missing-invalidation";
3602
- readonly id: "query-mutation-missing-invalidation";
3846
+ readonly key: "react-doctor/prefer-function-component";
3847
+ readonly id: "prefer-function-component";
3603
3848
  readonly source: "react-doctor";
3604
- readonly originallyExternal: false;
3849
+ readonly originallyExternal: true;
3850
+ readonly rule: {
3851
+ readonly framework: "global";
3852
+ readonly category: "Architecture";
3853
+ readonly id: string;
3854
+ readonly severity: RuleSeverity;
3855
+ readonly requires?: ReadonlyArray<string>;
3856
+ readonly disabledBy?: ReadonlyArray<string>;
3857
+ readonly tags?: ReadonlyArray<string>;
3858
+ readonly defaultEnabled?: boolean;
3859
+ readonly recommendation?: string;
3860
+ readonly create: (context: RuleContext) => RuleVisitors;
3861
+ };
3862
+ }, {
3863
+ readonly key: "react-doctor/prefer-html-dialog";
3864
+ readonly id: "prefer-html-dialog";
3865
+ readonly source: "react-doctor";
3866
+ readonly originallyExternal: false;
3867
+ readonly rule: {
3868
+ readonly framework: "global";
3869
+ readonly category: "Accessibility";
3870
+ readonly id: string;
3871
+ readonly severity: RuleSeverity;
3872
+ readonly requires?: ReadonlyArray<string>;
3873
+ readonly disabledBy?: ReadonlyArray<string>;
3874
+ readonly tags?: ReadonlyArray<string>;
3875
+ readonly defaultEnabled?: boolean;
3876
+ readonly recommendation?: string;
3877
+ readonly create: (context: RuleContext) => RuleVisitors;
3878
+ };
3879
+ }, {
3880
+ readonly key: "react-doctor/prefer-module-scope-pure-function";
3881
+ readonly id: "prefer-module-scope-pure-function";
3882
+ readonly source: "react-doctor";
3883
+ readonly originallyExternal: false;
3884
+ readonly rule: {
3885
+ readonly framework: "global";
3886
+ readonly category: "Architecture";
3887
+ readonly id: string;
3888
+ readonly severity: RuleSeverity;
3889
+ readonly requires?: ReadonlyArray<string>;
3890
+ readonly disabledBy?: ReadonlyArray<string>;
3891
+ readonly tags?: ReadonlyArray<string>;
3892
+ readonly defaultEnabled?: boolean;
3893
+ readonly recommendation?: string;
3894
+ readonly create: (context: RuleContext) => RuleVisitors;
3895
+ };
3896
+ }, {
3897
+ readonly key: "react-doctor/prefer-module-scope-static-value";
3898
+ readonly id: "prefer-module-scope-static-value";
3899
+ readonly source: "react-doctor";
3900
+ readonly originallyExternal: false;
3901
+ readonly rule: {
3902
+ readonly framework: "global";
3903
+ readonly category: "Architecture";
3904
+ readonly id: string;
3905
+ readonly severity: RuleSeverity;
3906
+ readonly requires?: ReadonlyArray<string>;
3907
+ readonly disabledBy?: ReadonlyArray<string>;
3908
+ readonly tags?: ReadonlyArray<string>;
3909
+ readonly defaultEnabled?: boolean;
3910
+ readonly recommendation?: string;
3911
+ readonly create: (context: RuleContext) => RuleVisitors;
3912
+ };
3913
+ }, {
3914
+ readonly key: "react-doctor/prefer-stable-empty-fallback";
3915
+ readonly id: "prefer-stable-empty-fallback";
3916
+ readonly source: "react-doctor";
3917
+ readonly originallyExternal: false;
3918
+ readonly rule: {
3919
+ readonly framework: "global";
3920
+ readonly category: "Performance";
3921
+ readonly id: string;
3922
+ readonly severity: RuleSeverity;
3923
+ readonly requires?: ReadonlyArray<string>;
3924
+ readonly disabledBy?: ReadonlyArray<string>;
3925
+ readonly tags?: ReadonlyArray<string>;
3926
+ readonly defaultEnabled?: boolean;
3927
+ readonly recommendation?: string;
3928
+ readonly create: (context: RuleContext) => RuleVisitors;
3929
+ };
3930
+ }, {
3931
+ readonly key: "react-doctor/prefer-tag-over-role";
3932
+ readonly id: "prefer-tag-over-role";
3933
+ readonly source: "react-doctor";
3934
+ readonly originallyExternal: true;
3935
+ readonly rule: {
3936
+ readonly framework: "global";
3937
+ readonly category: "Accessibility";
3938
+ readonly id: string;
3939
+ readonly severity: RuleSeverity;
3940
+ readonly requires?: ReadonlyArray<string>;
3941
+ readonly disabledBy?: ReadonlyArray<string>;
3942
+ readonly tags?: ReadonlyArray<string>;
3943
+ readonly defaultEnabled?: boolean;
3944
+ readonly recommendation?: string;
3945
+ readonly create: (context: RuleContext) => RuleVisitors;
3946
+ };
3947
+ }, {
3948
+ readonly key: "react-doctor/prefer-use-effect-event";
3949
+ readonly id: "prefer-use-effect-event";
3950
+ readonly source: "react-doctor";
3951
+ readonly originallyExternal: false;
3952
+ readonly rule: {
3953
+ readonly framework: "global";
3954
+ readonly category: "State & Effects";
3955
+ readonly id: string;
3956
+ readonly severity: RuleSeverity;
3957
+ readonly requires?: ReadonlyArray<string>;
3958
+ readonly disabledBy?: ReadonlyArray<string>;
3959
+ readonly tags?: ReadonlyArray<string>;
3960
+ readonly defaultEnabled?: boolean;
3961
+ readonly recommendation?: string;
3962
+ readonly create: (context: RuleContext) => RuleVisitors;
3963
+ };
3964
+ }, {
3965
+ readonly key: "react-doctor/prefer-use-sync-external-store";
3966
+ readonly id: "prefer-use-sync-external-store";
3967
+ readonly source: "react-doctor";
3968
+ readonly originallyExternal: false;
3969
+ readonly rule: {
3970
+ readonly framework: "global";
3971
+ readonly category: "State & Effects";
3972
+ readonly id: string;
3973
+ readonly severity: RuleSeverity;
3974
+ readonly requires?: ReadonlyArray<string>;
3975
+ readonly disabledBy?: ReadonlyArray<string>;
3976
+ readonly tags?: ReadonlyArray<string>;
3977
+ readonly defaultEnabled?: boolean;
3978
+ readonly recommendation?: string;
3979
+ readonly create: (context: RuleContext) => RuleVisitors;
3980
+ };
3981
+ }, {
3982
+ readonly key: "react-doctor/prefer-useReducer";
3983
+ readonly id: "prefer-useReducer";
3984
+ readonly source: "react-doctor";
3985
+ readonly originallyExternal: false;
3986
+ readonly rule: {
3987
+ readonly framework: "global";
3988
+ readonly category: "State & Effects";
3989
+ readonly id: string;
3990
+ readonly severity: RuleSeverity;
3991
+ readonly requires?: ReadonlyArray<string>;
3992
+ readonly disabledBy?: ReadonlyArray<string>;
3993
+ readonly tags?: ReadonlyArray<string>;
3994
+ readonly defaultEnabled?: boolean;
3995
+ readonly recommendation?: string;
3996
+ readonly create: (context: RuleContext) => RuleVisitors;
3997
+ };
3998
+ }, {
3999
+ readonly key: "react-doctor/query-mutation-missing-invalidation";
4000
+ readonly id: "query-mutation-missing-invalidation";
4001
+ readonly source: "react-doctor";
4002
+ readonly originallyExternal: false;
3605
4003
  readonly rule: {
3606
4004
  readonly framework: "tanstack-query";
3607
4005
  readonly category: "TanStack Query";
@@ -3700,8 +4098,8 @@ declare const REACT_DOCTOR_RULES: readonly [{
3700
4098
  readonly create: (context: RuleContext) => RuleVisitors;
3701
4099
  };
3702
4100
  }, {
3703
- readonly key: "react-doctor/react-compiler-destructure-method";
3704
- readonly id: "react-compiler-destructure-method";
4101
+ readonly key: "react-doctor/react-compiler-no-manual-memoization";
4102
+ readonly id: "react-compiler-no-manual-memoization";
3705
4103
  readonly source: "react-doctor";
3706
4104
  readonly originallyExternal: false;
3707
4105
  readonly rule: {
@@ -3717,13 +4115,30 @@ declare const REACT_DOCTOR_RULES: readonly [{
3717
4115
  readonly create: (context: RuleContext) => RuleVisitors;
3718
4116
  };
3719
4117
  }, {
3720
- readonly key: "react-doctor/react-compiler-no-manual-memoization";
3721
- readonly id: "react-compiler-no-manual-memoization";
4118
+ readonly key: "react-doctor/react-in-jsx-scope";
4119
+ readonly id: "react-in-jsx-scope";
4120
+ readonly source: "react-doctor";
4121
+ readonly originallyExternal: true;
4122
+ readonly rule: {
4123
+ readonly framework: "global";
4124
+ readonly category: "Correctness";
4125
+ readonly id: string;
4126
+ readonly severity: RuleSeverity;
4127
+ readonly requires?: ReadonlyArray<string>;
4128
+ readonly disabledBy?: ReadonlyArray<string>;
4129
+ readonly tags?: ReadonlyArray<string>;
4130
+ readonly defaultEnabled?: boolean;
4131
+ readonly recommendation?: string;
4132
+ readonly create: (context: RuleContext) => RuleVisitors;
4133
+ };
4134
+ }, {
4135
+ readonly key: "react-doctor/redux-useselector-inline-derivation";
4136
+ readonly id: "redux-useselector-inline-derivation";
3722
4137
  readonly source: "react-doctor";
3723
4138
  readonly originallyExternal: false;
3724
4139
  readonly rule: {
3725
4140
  readonly framework: "global";
3726
- readonly category: "Architecture";
4141
+ readonly category: "Performance";
3727
4142
  readonly id: string;
3728
4143
  readonly severity: RuleSeverity;
3729
4144
  readonly requires?: ReadonlyArray<string>;
@@ -3734,13 +4149,13 @@ declare const REACT_DOCTOR_RULES: readonly [{
3734
4149
  readonly create: (context: RuleContext) => RuleVisitors;
3735
4150
  };
3736
4151
  }, {
3737
- readonly key: "react-doctor/react-in-jsx-scope";
3738
- readonly id: "react-in-jsx-scope";
4152
+ readonly key: "react-doctor/redux-useselector-returns-new-collection";
4153
+ readonly id: "redux-useselector-returns-new-collection";
3739
4154
  readonly source: "react-doctor";
3740
- readonly originallyExternal: true;
4155
+ readonly originallyExternal: false;
3741
4156
  readonly rule: {
3742
4157
  readonly framework: "global";
3743
- readonly category: "Correctness";
4158
+ readonly category: "Performance";
3744
4159
  readonly id: string;
3745
4160
  readonly severity: RuleSeverity;
3746
4161
  readonly requires?: ReadonlyArray<string>;
@@ -3971,6 +4386,23 @@ declare const REACT_DOCTOR_RULES: readonly [{
3971
4386
  readonly recommendation?: string;
3972
4387
  readonly create: (context: RuleContext) => RuleVisitors;
3973
4388
  };
4389
+ }, {
4390
+ readonly key: "react-doctor/rerender-lazy-ref-init";
4391
+ readonly id: "rerender-lazy-ref-init";
4392
+ readonly source: "react-doctor";
4393
+ readonly originallyExternal: false;
4394
+ readonly rule: {
4395
+ readonly framework: "global";
4396
+ readonly category: "Performance";
4397
+ readonly id: string;
4398
+ readonly severity: RuleSeverity;
4399
+ readonly requires?: ReadonlyArray<string>;
4400
+ readonly disabledBy?: ReadonlyArray<string>;
4401
+ readonly tags?: ReadonlyArray<string>;
4402
+ readonly defaultEnabled?: boolean;
4403
+ readonly recommendation?: string;
4404
+ readonly create: (context: RuleContext) => RuleVisitors;
4405
+ };
3974
4406
  }, {
3975
4407
  readonly key: "react-doctor/rerender-lazy-state-init";
3976
4408
  readonly id: "rerender-lazy-state-init";
@@ -4141,6 +4573,23 @@ declare const REACT_DOCTOR_RULES: readonly [{
4141
4573
  readonly recommendation?: string;
4142
4574
  readonly create: (context: RuleContext) => RuleVisitors;
4143
4575
  };
4576
+ }, {
4577
+ readonly key: "react-doctor/rn-list-missing-estimated-item-size";
4578
+ readonly id: "rn-list-missing-estimated-item-size";
4579
+ readonly source: "react-doctor";
4580
+ readonly originallyExternal: false;
4581
+ readonly rule: {
4582
+ readonly framework: "react-native";
4583
+ readonly category: "React Native";
4584
+ readonly tags: readonly string[];
4585
+ readonly id: string;
4586
+ readonly severity: RuleSeverity;
4587
+ readonly requires?: ReadonlyArray<string>;
4588
+ readonly disabledBy?: ReadonlyArray<string>;
4589
+ readonly defaultEnabled?: boolean;
4590
+ readonly recommendation?: string;
4591
+ readonly create: (context: RuleContext) => RuleVisitors;
4592
+ };
4144
4593
  }, {
4145
4594
  readonly key: "react-doctor/rn-list-recyclable-without-types";
4146
4595
  readonly id: "rn-list-recyclable-without-types";
@@ -4311,6 +4760,23 @@ declare const REACT_DOCTOR_RULES: readonly [{
4311
4760
  readonly recommendation?: string;
4312
4761
  readonly create: (context: RuleContext) => RuleVisitors;
4313
4762
  };
4763
+ }, {
4764
+ readonly key: "react-doctor/rn-no-renderitem-key";
4765
+ readonly id: "rn-no-renderitem-key";
4766
+ readonly source: "react-doctor";
4767
+ readonly originallyExternal: false;
4768
+ readonly rule: {
4769
+ readonly framework: "react-native";
4770
+ readonly category: "React Native";
4771
+ readonly tags: readonly string[];
4772
+ readonly id: string;
4773
+ readonly severity: RuleSeverity;
4774
+ readonly requires?: ReadonlyArray<string>;
4775
+ readonly disabledBy?: ReadonlyArray<string>;
4776
+ readonly defaultEnabled?: boolean;
4777
+ readonly recommendation?: string;
4778
+ readonly create: (context: RuleContext) => RuleVisitors;
4779
+ };
4314
4780
  }, {
4315
4781
  readonly key: "react-doctor/rn-no-scroll-state";
4316
4782
  readonly id: "rn-no-scroll-state";
@@ -4413,6 +4879,23 @@ declare const REACT_DOCTOR_RULES: readonly [{
4413
4879
  readonly recommendation?: string;
4414
4880
  readonly create: (context: RuleContext) => RuleVisitors;
4415
4881
  };
4882
+ }, {
4883
+ readonly key: "react-doctor/rn-prefer-pressable-over-gesture-detector";
4884
+ readonly id: "rn-prefer-pressable-over-gesture-detector";
4885
+ readonly source: "react-doctor";
4886
+ readonly originallyExternal: false;
4887
+ readonly rule: {
4888
+ readonly framework: "react-native";
4889
+ readonly category: "React Native";
4890
+ readonly tags: readonly string[];
4891
+ readonly id: string;
4892
+ readonly severity: RuleSeverity;
4893
+ readonly requires?: ReadonlyArray<string>;
4894
+ readonly disabledBy?: ReadonlyArray<string>;
4895
+ readonly defaultEnabled?: boolean;
4896
+ readonly recommendation?: string;
4897
+ readonly create: (context: RuleContext) => RuleVisitors;
4898
+ };
4416
4899
  }, {
4417
4900
  readonly key: "react-doctor/rn-prefer-reanimated";
4418
4901
  readonly id: "rn-prefer-reanimated";
@@ -4464,6 +4947,23 @@ declare const REACT_DOCTOR_RULES: readonly [{
4464
4947
  readonly recommendation?: string;
4465
4948
  readonly create: (context: RuleContext) => RuleVisitors;
4466
4949
  };
4950
+ }, {
4951
+ readonly key: "react-doctor/rn-scrollview-flex-in-content-container";
4952
+ readonly id: "rn-scrollview-flex-in-content-container";
4953
+ readonly source: "react-doctor";
4954
+ readonly originallyExternal: false;
4955
+ readonly rule: {
4956
+ readonly framework: "react-native";
4957
+ readonly category: "React Native";
4958
+ readonly tags: readonly string[];
4959
+ readonly id: string;
4960
+ readonly severity: RuleSeverity;
4961
+ readonly requires?: ReadonlyArray<string>;
4962
+ readonly disabledBy?: ReadonlyArray<string>;
4963
+ readonly defaultEnabled?: boolean;
4964
+ readonly recommendation?: string;
4965
+ readonly create: (context: RuleContext) => RuleVisitors;
4966
+ };
4467
4967
  }, {
4468
4968
  readonly key: "react-doctor/rn-style-prefer-boxshadow";
4469
4969
  readonly id: "rn-style-prefer-boxshadow";
@@ -5092,6 +5592,23 @@ declare const EXTERNAL_RULES: readonly [{
5092
5592
  readonly severity: "error";
5093
5593
  }];
5094
5594
  declare const RULES: readonly [{
5595
+ readonly key: "react-doctor/activity-wraps-effect-heavy-subtree";
5596
+ readonly id: "activity-wraps-effect-heavy-subtree";
5597
+ readonly source: "react-doctor";
5598
+ readonly originallyExternal: false;
5599
+ readonly rule: {
5600
+ readonly framework: "global";
5601
+ readonly category: "State & Effects";
5602
+ readonly id: string;
5603
+ readonly severity: RuleSeverity;
5604
+ readonly requires?: ReadonlyArray<string>;
5605
+ readonly disabledBy?: ReadonlyArray<string>;
5606
+ readonly tags?: ReadonlyArray<string>;
5607
+ readonly defaultEnabled?: boolean;
5608
+ readonly recommendation?: string;
5609
+ readonly create: (context: RuleContext) => RuleVisitors;
5610
+ };
5611
+ }, {
5095
5612
  readonly key: "react-doctor/advanced-event-handler-refs";
5096
5613
  readonly id: "advanced-event-handler-refs";
5097
5614
  readonly source: "react-doctor";
@@ -5686,6 +6203,23 @@ declare const RULES: readonly [{
5686
6203
  readonly recommendation?: string;
5687
6204
  readonly create: (context: RuleContext) => RuleVisitors;
5688
6205
  };
6206
+ }, {
6207
+ readonly key: "react-doctor/hooks-no-nan-in-deps";
6208
+ readonly id: "hooks-no-nan-in-deps";
6209
+ readonly source: "react-doctor";
6210
+ readonly originallyExternal: false;
6211
+ readonly rule: {
6212
+ readonly framework: "global";
6213
+ readonly category: "State & Effects";
6214
+ readonly id: string;
6215
+ readonly severity: RuleSeverity;
6216
+ readonly requires?: ReadonlyArray<string>;
6217
+ readonly disabledBy?: ReadonlyArray<string>;
6218
+ readonly tags?: ReadonlyArray<string>;
6219
+ readonly defaultEnabled?: boolean;
6220
+ readonly recommendation?: string;
6221
+ readonly create: (context: RuleContext) => RuleVisitors;
6222
+ };
5689
6223
  }, {
5690
6224
  readonly key: "react-doctor/html-has-lang";
5691
6225
  readonly id: "html-has-lang";
@@ -5703,6 +6237,57 @@ declare const RULES: readonly [{
5703
6237
  readonly recommendation?: string;
5704
6238
  readonly create: (context: RuleContext) => RuleVisitors;
5705
6239
  };
6240
+ }, {
6241
+ readonly key: "react-doctor/html-no-invalid-paragraph-child";
6242
+ readonly id: "html-no-invalid-paragraph-child";
6243
+ readonly source: "react-doctor";
6244
+ readonly originallyExternal: false;
6245
+ readonly rule: {
6246
+ readonly framework: "global";
6247
+ readonly category: "Correctness";
6248
+ readonly id: string;
6249
+ readonly severity: RuleSeverity;
6250
+ readonly requires?: ReadonlyArray<string>;
6251
+ readonly disabledBy?: ReadonlyArray<string>;
6252
+ readonly tags?: ReadonlyArray<string>;
6253
+ readonly defaultEnabled?: boolean;
6254
+ readonly recommendation?: string;
6255
+ readonly create: (context: RuleContext) => RuleVisitors;
6256
+ };
6257
+ }, {
6258
+ readonly key: "react-doctor/html-no-invalid-table-nesting";
6259
+ readonly id: "html-no-invalid-table-nesting";
6260
+ readonly source: "react-doctor";
6261
+ readonly originallyExternal: false;
6262
+ readonly rule: {
6263
+ readonly framework: "global";
6264
+ readonly category: "Correctness";
6265
+ readonly id: string;
6266
+ readonly severity: RuleSeverity;
6267
+ readonly requires?: ReadonlyArray<string>;
6268
+ readonly disabledBy?: ReadonlyArray<string>;
6269
+ readonly tags?: ReadonlyArray<string>;
6270
+ readonly defaultEnabled?: boolean;
6271
+ readonly recommendation?: string;
6272
+ readonly create: (context: RuleContext) => RuleVisitors;
6273
+ };
6274
+ }, {
6275
+ readonly key: "react-doctor/html-no-nested-interactive";
6276
+ readonly id: "html-no-nested-interactive";
6277
+ readonly source: "react-doctor";
6278
+ readonly originallyExternal: false;
6279
+ readonly rule: {
6280
+ readonly framework: "global";
6281
+ readonly category: "Correctness";
6282
+ readonly id: string;
6283
+ readonly severity: RuleSeverity;
6284
+ readonly requires?: ReadonlyArray<string>;
6285
+ readonly disabledBy?: ReadonlyArray<string>;
6286
+ readonly tags?: ReadonlyArray<string>;
6287
+ readonly defaultEnabled?: boolean;
6288
+ readonly recommendation?: string;
6289
+ readonly create: (context: RuleContext) => RuleVisitors;
6290
+ };
5706
6291
  }, {
5707
6292
  readonly key: "react-doctor/iframe-has-title";
5708
6293
  readonly id: "iframe-has-title";
@@ -5771,6 +6356,74 @@ declare const RULES: readonly [{
5771
6356
  readonly recommendation?: string;
5772
6357
  readonly create: (context: RuleContext) => RuleVisitors;
5773
6358
  };
6359
+ }, {
6360
+ readonly key: "react-doctor/jotai-derived-atom-returns-fresh-object";
6361
+ readonly id: "jotai-derived-atom-returns-fresh-object";
6362
+ readonly source: "react-doctor";
6363
+ readonly originallyExternal: false;
6364
+ readonly rule: {
6365
+ readonly framework: "global";
6366
+ readonly category: "State & Effects";
6367
+ readonly id: string;
6368
+ readonly severity: RuleSeverity;
6369
+ readonly requires?: ReadonlyArray<string>;
6370
+ readonly disabledBy?: ReadonlyArray<string>;
6371
+ readonly tags?: ReadonlyArray<string>;
6372
+ readonly defaultEnabled?: boolean;
6373
+ readonly recommendation?: string;
6374
+ readonly create: (context: RuleContext) => RuleVisitors;
6375
+ };
6376
+ }, {
6377
+ readonly key: "react-doctor/jotai-select-atom-in-render-body";
6378
+ readonly id: "jotai-select-atom-in-render-body";
6379
+ readonly source: "react-doctor";
6380
+ readonly originallyExternal: false;
6381
+ readonly rule: {
6382
+ readonly framework: "global";
6383
+ readonly category: "State & Effects";
6384
+ readonly id: string;
6385
+ readonly severity: RuleSeverity;
6386
+ readonly requires?: ReadonlyArray<string>;
6387
+ readonly disabledBy?: ReadonlyArray<string>;
6388
+ readonly tags?: ReadonlyArray<string>;
6389
+ readonly defaultEnabled?: boolean;
6390
+ readonly recommendation?: string;
6391
+ readonly create: (context: RuleContext) => RuleVisitors;
6392
+ };
6393
+ }, {
6394
+ readonly key: "react-doctor/jotai-tq-use-raw-query-atom";
6395
+ readonly id: "jotai-tq-use-raw-query-atom";
6396
+ readonly source: "react-doctor";
6397
+ readonly originallyExternal: false;
6398
+ readonly rule: {
6399
+ readonly framework: "global";
6400
+ readonly category: "State & Effects";
6401
+ readonly id: string;
6402
+ readonly severity: RuleSeverity;
6403
+ readonly requires?: ReadonlyArray<string>;
6404
+ readonly disabledBy?: ReadonlyArray<string>;
6405
+ readonly tags?: ReadonlyArray<string>;
6406
+ readonly defaultEnabled?: boolean;
6407
+ readonly recommendation?: string;
6408
+ readonly create: (context: RuleContext) => RuleVisitors;
6409
+ };
6410
+ }, {
6411
+ readonly key: "react-doctor/js-async-reduce-without-awaited-acc";
6412
+ readonly id: "js-async-reduce-without-awaited-acc";
6413
+ readonly source: "react-doctor";
6414
+ readonly originallyExternal: false;
6415
+ readonly rule: {
6416
+ readonly framework: "global";
6417
+ readonly category: "Performance";
6418
+ readonly id: string;
6419
+ readonly severity: RuleSeverity;
6420
+ readonly requires?: ReadonlyArray<string>;
6421
+ readonly disabledBy?: ReadonlyArray<string>;
6422
+ readonly tags?: ReadonlyArray<string>;
6423
+ readonly defaultEnabled?: boolean;
6424
+ readonly recommendation?: string;
6425
+ readonly create: (context: RuleContext) => RuleVisitors;
6426
+ };
5774
6427
  }, {
5775
6428
  readonly key: "react-doctor/js-batch-dom-css";
5776
6429
  readonly id: "js-batch-dom-css";
@@ -6876,6 +7529,40 @@ declare const RULES: readonly [{
6876
7529
  readonly recommendation?: string;
6877
7530
  readonly create: (context: RuleContext) => RuleVisitors;
6878
7531
  };
7532
+ }, {
7533
+ readonly key: "react-doctor/no-create-context-in-render";
7534
+ readonly id: "no-create-context-in-render";
7535
+ readonly source: "react-doctor";
7536
+ readonly originallyExternal: false;
7537
+ readonly rule: {
7538
+ readonly framework: "global";
7539
+ readonly category: "Correctness";
7540
+ readonly id: string;
7541
+ readonly severity: RuleSeverity;
7542
+ readonly requires?: ReadonlyArray<string>;
7543
+ readonly disabledBy?: ReadonlyArray<string>;
7544
+ readonly tags?: ReadonlyArray<string>;
7545
+ readonly defaultEnabled?: boolean;
7546
+ readonly recommendation?: string;
7547
+ readonly create: (context: RuleContext) => RuleVisitors;
7548
+ };
7549
+ }, {
7550
+ readonly key: "react-doctor/no-create-store-in-render";
7551
+ readonly id: "no-create-store-in-render";
7552
+ readonly source: "react-doctor";
7553
+ readonly originallyExternal: false;
7554
+ readonly rule: {
7555
+ readonly framework: "global";
7556
+ readonly category: "Correctness";
7557
+ readonly id: string;
7558
+ readonly severity: RuleSeverity;
7559
+ readonly requires?: ReadonlyArray<string>;
7560
+ readonly disabledBy?: ReadonlyArray<string>;
7561
+ readonly tags?: ReadonlyArray<string>;
7562
+ readonly defaultEnabled?: boolean;
7563
+ readonly recommendation?: string;
7564
+ readonly create: (context: RuleContext) => RuleVisitors;
7565
+ };
6879
7566
  }, {
6880
7567
  readonly key: "react-doctor/no-danger";
6881
7568
  readonly id: "no-danger";
@@ -7182,6 +7869,23 @@ declare const RULES: readonly [{
7182
7869
  readonly recommendation?: string;
7183
7870
  readonly create: (context: RuleContext) => RuleVisitors;
7184
7871
  };
7872
+ }, {
7873
+ readonly key: "react-doctor/no-effect-with-fresh-deps";
7874
+ readonly id: "no-effect-with-fresh-deps";
7875
+ readonly source: "react-doctor";
7876
+ readonly originallyExternal: false;
7877
+ readonly rule: {
7878
+ readonly framework: "global";
7879
+ readonly category: "State & Effects";
7880
+ readonly id: string;
7881
+ readonly severity: RuleSeverity;
7882
+ readonly requires?: ReadonlyArray<string>;
7883
+ readonly disabledBy?: ReadonlyArray<string>;
7884
+ readonly tags?: ReadonlyArray<string>;
7885
+ readonly defaultEnabled?: boolean;
7886
+ readonly recommendation?: string;
7887
+ readonly create: (context: RuleContext) => RuleVisitors;
7888
+ };
7185
7889
  }, {
7186
7890
  readonly key: "react-doctor/no-eval";
7187
7891
  readonly id: "no-eval";
@@ -7846,13 +8550,47 @@ declare const RULES: readonly [{
7846
8550
  readonly create: (context: RuleContext) => RuleVisitors;
7847
8551
  };
7848
8552
  }, {
7849
- readonly key: "react-doctor/no-permanent-will-change";
7850
- readonly id: "no-permanent-will-change";
8553
+ readonly key: "react-doctor/no-permanent-will-change";
8554
+ readonly id: "no-permanent-will-change";
8555
+ readonly source: "react-doctor";
8556
+ readonly originallyExternal: false;
8557
+ readonly rule: {
8558
+ readonly framework: "global";
8559
+ readonly category: "Performance";
8560
+ readonly id: string;
8561
+ readonly severity: RuleSeverity;
8562
+ readonly requires?: ReadonlyArray<string>;
8563
+ readonly disabledBy?: ReadonlyArray<string>;
8564
+ readonly tags?: ReadonlyArray<string>;
8565
+ readonly defaultEnabled?: boolean;
8566
+ readonly recommendation?: string;
8567
+ readonly create: (context: RuleContext) => RuleVisitors;
8568
+ };
8569
+ }, {
8570
+ readonly key: "react-doctor/no-polymorphic-children";
8571
+ readonly id: "no-polymorphic-children";
8572
+ readonly source: "react-doctor";
8573
+ readonly originallyExternal: false;
8574
+ readonly rule: {
8575
+ readonly framework: "global";
8576
+ readonly category: "Architecture";
8577
+ readonly id: string;
8578
+ readonly severity: RuleSeverity;
8579
+ readonly requires?: ReadonlyArray<string>;
8580
+ readonly disabledBy?: ReadonlyArray<string>;
8581
+ readonly tags?: ReadonlyArray<string>;
8582
+ readonly defaultEnabled?: boolean;
8583
+ readonly recommendation?: string;
8584
+ readonly create: (context: RuleContext) => RuleVisitors;
8585
+ };
8586
+ }, {
8587
+ readonly key: "react-doctor/no-prevent-default";
8588
+ readonly id: "no-prevent-default";
7851
8589
  readonly source: "react-doctor";
7852
8590
  readonly originallyExternal: false;
7853
8591
  readonly rule: {
7854
8592
  readonly framework: "global";
7855
- readonly category: "Performance";
8593
+ readonly category: "Correctness";
7856
8594
  readonly id: string;
7857
8595
  readonly severity: RuleSeverity;
7858
8596
  readonly requires?: ReadonlyArray<string>;
@@ -7863,13 +8601,13 @@ declare const RULES: readonly [{
7863
8601
  readonly create: (context: RuleContext) => RuleVisitors;
7864
8602
  };
7865
8603
  }, {
7866
- readonly key: "react-doctor/no-polymorphic-children";
7867
- readonly id: "no-polymorphic-children";
8604
+ readonly key: "react-doctor/no-prop-callback-in-effect";
8605
+ readonly id: "no-prop-callback-in-effect";
7868
8606
  readonly source: "react-doctor";
7869
8607
  readonly originallyExternal: false;
7870
8608
  readonly rule: {
7871
8609
  readonly framework: "global";
7872
- readonly category: "Architecture";
8610
+ readonly category: "State & Effects";
7873
8611
  readonly id: string;
7874
8612
  readonly severity: RuleSeverity;
7875
8613
  readonly requires?: ReadonlyArray<string>;
@@ -7880,13 +8618,13 @@ declare const RULES: readonly [{
7880
8618
  readonly create: (context: RuleContext) => RuleVisitors;
7881
8619
  };
7882
8620
  }, {
7883
- readonly key: "react-doctor/no-prevent-default";
7884
- readonly id: "no-prevent-default";
8621
+ readonly key: "react-doctor/no-prop-types";
8622
+ readonly id: "no-prop-types";
7885
8623
  readonly source: "react-doctor";
7886
8624
  readonly originallyExternal: false;
7887
8625
  readonly rule: {
7888
8626
  readonly framework: "global";
7889
- readonly category: "Correctness";
8627
+ readonly category: "Architecture";
7890
8628
  readonly id: string;
7891
8629
  readonly severity: RuleSeverity;
7892
8630
  readonly requires?: ReadonlyArray<string>;
@@ -7897,13 +8635,13 @@ declare const RULES: readonly [{
7897
8635
  readonly create: (context: RuleContext) => RuleVisitors;
7898
8636
  };
7899
8637
  }, {
7900
- readonly key: "react-doctor/no-prop-callback-in-effect";
7901
- readonly id: "no-prop-callback-in-effect";
8638
+ readonly key: "react-doctor/no-pure-black-background";
8639
+ readonly id: "no-pure-black-background";
7902
8640
  readonly source: "react-doctor";
7903
8641
  readonly originallyExternal: false;
7904
8642
  readonly rule: {
7905
8643
  readonly framework: "global";
7906
- readonly category: "State & Effects";
8644
+ readonly category: "Architecture";
7907
8645
  readonly id: string;
7908
8646
  readonly severity: RuleSeverity;
7909
8647
  readonly requires?: ReadonlyArray<string>;
@@ -7914,13 +8652,13 @@ declare const RULES: readonly [{
7914
8652
  readonly create: (context: RuleContext) => RuleVisitors;
7915
8653
  };
7916
8654
  }, {
7917
- readonly key: "react-doctor/no-pure-black-background";
7918
- readonly id: "no-pure-black-background";
8655
+ readonly key: "react-doctor/no-random-key";
8656
+ readonly id: "no-random-key";
7919
8657
  readonly source: "react-doctor";
7920
8658
  readonly originallyExternal: false;
7921
8659
  readonly rule: {
7922
8660
  readonly framework: "global";
7923
- readonly category: "Architecture";
8661
+ readonly category: "Correctness";
7924
8662
  readonly id: string;
7925
8663
  readonly severity: RuleSeverity;
7926
8664
  readonly requires?: ReadonlyArray<string>;
@@ -8440,6 +9178,91 @@ declare const RULES: readonly [{
8440
9178
  readonly recommendation?: string;
8441
9179
  readonly create: (context: RuleContext) => RuleVisitors;
8442
9180
  };
9181
+ }, {
9182
+ readonly key: "react-doctor/preact-no-children-length";
9183
+ readonly id: "preact-no-children-length";
9184
+ readonly source: "react-doctor";
9185
+ readonly originallyExternal: false;
9186
+ readonly rule: {
9187
+ readonly framework: "preact";
9188
+ readonly category: "Preact";
9189
+ readonly id: string;
9190
+ readonly severity: RuleSeverity;
9191
+ readonly requires?: ReadonlyArray<string>;
9192
+ readonly disabledBy?: ReadonlyArray<string>;
9193
+ readonly tags?: ReadonlyArray<string>;
9194
+ readonly defaultEnabled?: boolean;
9195
+ readonly recommendation?: string;
9196
+ readonly create: (context: RuleContext) => RuleVisitors;
9197
+ };
9198
+ }, {
9199
+ readonly key: "react-doctor/preact-no-react-hooks-import";
9200
+ readonly id: "preact-no-react-hooks-import";
9201
+ readonly source: "react-doctor";
9202
+ readonly originallyExternal: false;
9203
+ readonly rule: {
9204
+ readonly framework: "preact";
9205
+ readonly category: "Preact";
9206
+ readonly id: string;
9207
+ readonly severity: RuleSeverity;
9208
+ readonly requires?: ReadonlyArray<string>;
9209
+ readonly disabledBy?: ReadonlyArray<string>;
9210
+ readonly tags?: ReadonlyArray<string>;
9211
+ readonly defaultEnabled?: boolean;
9212
+ readonly recommendation?: string;
9213
+ readonly create: (context: RuleContext) => RuleVisitors;
9214
+ };
9215
+ }, {
9216
+ readonly key: "react-doctor/preact-no-render-arguments";
9217
+ readonly id: "preact-no-render-arguments";
9218
+ readonly source: "react-doctor";
9219
+ readonly originallyExternal: false;
9220
+ readonly rule: {
9221
+ readonly framework: "preact";
9222
+ readonly category: "Preact";
9223
+ readonly id: string;
9224
+ readonly severity: RuleSeverity;
9225
+ readonly requires?: ReadonlyArray<string>;
9226
+ readonly disabledBy?: ReadonlyArray<string>;
9227
+ readonly tags?: ReadonlyArray<string>;
9228
+ readonly defaultEnabled?: boolean;
9229
+ readonly recommendation?: string;
9230
+ readonly create: (context: RuleContext) => RuleVisitors;
9231
+ };
9232
+ }, {
9233
+ readonly key: "react-doctor/preact-prefer-ondblclick";
9234
+ readonly id: "preact-prefer-ondblclick";
9235
+ readonly source: "react-doctor";
9236
+ readonly originallyExternal: false;
9237
+ readonly rule: {
9238
+ readonly framework: "preact";
9239
+ readonly category: "Preact";
9240
+ readonly id: string;
9241
+ readonly severity: RuleSeverity;
9242
+ readonly requires?: ReadonlyArray<string>;
9243
+ readonly disabledBy?: ReadonlyArray<string>;
9244
+ readonly tags?: ReadonlyArray<string>;
9245
+ readonly defaultEnabled?: boolean;
9246
+ readonly recommendation?: string;
9247
+ readonly create: (context: RuleContext) => RuleVisitors;
9248
+ };
9249
+ }, {
9250
+ readonly key: "react-doctor/preact-prefer-oninput";
9251
+ readonly id: "preact-prefer-oninput";
9252
+ readonly source: "react-doctor";
9253
+ readonly originallyExternal: false;
9254
+ readonly rule: {
9255
+ readonly framework: "preact";
9256
+ readonly category: "Preact";
9257
+ readonly id: string;
9258
+ readonly severity: RuleSeverity;
9259
+ readonly requires?: ReadonlyArray<string>;
9260
+ readonly disabledBy?: ReadonlyArray<string>;
9261
+ readonly tags?: ReadonlyArray<string>;
9262
+ readonly defaultEnabled?: boolean;
9263
+ readonly recommendation?: string;
9264
+ readonly create: (context: RuleContext) => RuleVisitors;
9265
+ };
8443
9266
  }, {
8444
9267
  readonly key: "react-doctor/prefer-dynamic-import";
8445
9268
  readonly id: "prefer-dynamic-import";
@@ -8491,6 +9314,74 @@ declare const RULES: readonly [{
8491
9314
  readonly recommendation?: string;
8492
9315
  readonly create: (context: RuleContext) => RuleVisitors;
8493
9316
  };
9317
+ }, {
9318
+ readonly key: "react-doctor/prefer-html-dialog";
9319
+ readonly id: "prefer-html-dialog";
9320
+ readonly source: "react-doctor";
9321
+ readonly originallyExternal: false;
9322
+ readonly rule: {
9323
+ readonly framework: "global";
9324
+ readonly category: "Accessibility";
9325
+ readonly id: string;
9326
+ readonly severity: RuleSeverity;
9327
+ readonly requires?: ReadonlyArray<string>;
9328
+ readonly disabledBy?: ReadonlyArray<string>;
9329
+ readonly tags?: ReadonlyArray<string>;
9330
+ readonly defaultEnabled?: boolean;
9331
+ readonly recommendation?: string;
9332
+ readonly create: (context: RuleContext) => RuleVisitors;
9333
+ };
9334
+ }, {
9335
+ readonly key: "react-doctor/prefer-module-scope-pure-function";
9336
+ readonly id: "prefer-module-scope-pure-function";
9337
+ readonly source: "react-doctor";
9338
+ readonly originallyExternal: false;
9339
+ readonly rule: {
9340
+ readonly framework: "global";
9341
+ readonly category: "Architecture";
9342
+ readonly id: string;
9343
+ readonly severity: RuleSeverity;
9344
+ readonly requires?: ReadonlyArray<string>;
9345
+ readonly disabledBy?: ReadonlyArray<string>;
9346
+ readonly tags?: ReadonlyArray<string>;
9347
+ readonly defaultEnabled?: boolean;
9348
+ readonly recommendation?: string;
9349
+ readonly create: (context: RuleContext) => RuleVisitors;
9350
+ };
9351
+ }, {
9352
+ readonly key: "react-doctor/prefer-module-scope-static-value";
9353
+ readonly id: "prefer-module-scope-static-value";
9354
+ readonly source: "react-doctor";
9355
+ readonly originallyExternal: false;
9356
+ readonly rule: {
9357
+ readonly framework: "global";
9358
+ readonly category: "Architecture";
9359
+ readonly id: string;
9360
+ readonly severity: RuleSeverity;
9361
+ readonly requires?: ReadonlyArray<string>;
9362
+ readonly disabledBy?: ReadonlyArray<string>;
9363
+ readonly tags?: ReadonlyArray<string>;
9364
+ readonly defaultEnabled?: boolean;
9365
+ readonly recommendation?: string;
9366
+ readonly create: (context: RuleContext) => RuleVisitors;
9367
+ };
9368
+ }, {
9369
+ readonly key: "react-doctor/prefer-stable-empty-fallback";
9370
+ readonly id: "prefer-stable-empty-fallback";
9371
+ readonly source: "react-doctor";
9372
+ readonly originallyExternal: false;
9373
+ readonly rule: {
9374
+ readonly framework: "global";
9375
+ readonly category: "Performance";
9376
+ readonly id: string;
9377
+ readonly severity: RuleSeverity;
9378
+ readonly requires?: ReadonlyArray<string>;
9379
+ readonly disabledBy?: ReadonlyArray<string>;
9380
+ readonly tags?: ReadonlyArray<string>;
9381
+ readonly defaultEnabled?: boolean;
9382
+ readonly recommendation?: string;
9383
+ readonly create: (context: RuleContext) => RuleVisitors;
9384
+ };
8494
9385
  }, {
8495
9386
  readonly key: "react-doctor/prefer-tag-over-role";
8496
9387
  readonly id: "prefer-tag-over-role";
@@ -8662,8 +9553,8 @@ declare const RULES: readonly [{
8662
9553
  readonly create: (context: RuleContext) => RuleVisitors;
8663
9554
  };
8664
9555
  }, {
8665
- readonly key: "react-doctor/react-compiler-destructure-method";
8666
- readonly id: "react-compiler-destructure-method";
9556
+ readonly key: "react-doctor/react-compiler-no-manual-memoization";
9557
+ readonly id: "react-compiler-no-manual-memoization";
8667
9558
  readonly source: "react-doctor";
8668
9559
  readonly originallyExternal: false;
8669
9560
  readonly rule: {
@@ -8679,13 +9570,30 @@ declare const RULES: readonly [{
8679
9570
  readonly create: (context: RuleContext) => RuleVisitors;
8680
9571
  };
8681
9572
  }, {
8682
- readonly key: "react-doctor/react-compiler-no-manual-memoization";
8683
- readonly id: "react-compiler-no-manual-memoization";
9573
+ readonly key: "react-doctor/react-in-jsx-scope";
9574
+ readonly id: "react-in-jsx-scope";
9575
+ readonly source: "react-doctor";
9576
+ readonly originallyExternal: true;
9577
+ readonly rule: {
9578
+ readonly framework: "global";
9579
+ readonly category: "Correctness";
9580
+ readonly id: string;
9581
+ readonly severity: RuleSeverity;
9582
+ readonly requires?: ReadonlyArray<string>;
9583
+ readonly disabledBy?: ReadonlyArray<string>;
9584
+ readonly tags?: ReadonlyArray<string>;
9585
+ readonly defaultEnabled?: boolean;
9586
+ readonly recommendation?: string;
9587
+ readonly create: (context: RuleContext) => RuleVisitors;
9588
+ };
9589
+ }, {
9590
+ readonly key: "react-doctor/redux-useselector-inline-derivation";
9591
+ readonly id: "redux-useselector-inline-derivation";
8684
9592
  readonly source: "react-doctor";
8685
9593
  readonly originallyExternal: false;
8686
9594
  readonly rule: {
8687
9595
  readonly framework: "global";
8688
- readonly category: "Architecture";
9596
+ readonly category: "Performance";
8689
9597
  readonly id: string;
8690
9598
  readonly severity: RuleSeverity;
8691
9599
  readonly requires?: ReadonlyArray<string>;
@@ -8696,13 +9604,13 @@ declare const RULES: readonly [{
8696
9604
  readonly create: (context: RuleContext) => RuleVisitors;
8697
9605
  };
8698
9606
  }, {
8699
- readonly key: "react-doctor/react-in-jsx-scope";
8700
- readonly id: "react-in-jsx-scope";
9607
+ readonly key: "react-doctor/redux-useselector-returns-new-collection";
9608
+ readonly id: "redux-useselector-returns-new-collection";
8701
9609
  readonly source: "react-doctor";
8702
- readonly originallyExternal: true;
9610
+ readonly originallyExternal: false;
8703
9611
  readonly rule: {
8704
9612
  readonly framework: "global";
8705
- readonly category: "Correctness";
9613
+ readonly category: "Performance";
8706
9614
  readonly id: string;
8707
9615
  readonly severity: RuleSeverity;
8708
9616
  readonly requires?: ReadonlyArray<string>;
@@ -8933,6 +9841,23 @@ declare const RULES: readonly [{
8933
9841
  readonly recommendation?: string;
8934
9842
  readonly create: (context: RuleContext) => RuleVisitors;
8935
9843
  };
9844
+ }, {
9845
+ readonly key: "react-doctor/rerender-lazy-ref-init";
9846
+ readonly id: "rerender-lazy-ref-init";
9847
+ readonly source: "react-doctor";
9848
+ readonly originallyExternal: false;
9849
+ readonly rule: {
9850
+ readonly framework: "global";
9851
+ readonly category: "Performance";
9852
+ readonly id: string;
9853
+ readonly severity: RuleSeverity;
9854
+ readonly requires?: ReadonlyArray<string>;
9855
+ readonly disabledBy?: ReadonlyArray<string>;
9856
+ readonly tags?: ReadonlyArray<string>;
9857
+ readonly defaultEnabled?: boolean;
9858
+ readonly recommendation?: string;
9859
+ readonly create: (context: RuleContext) => RuleVisitors;
9860
+ };
8936
9861
  }, {
8937
9862
  readonly key: "react-doctor/rerender-lazy-state-init";
8938
9863
  readonly id: "rerender-lazy-state-init";
@@ -9103,6 +10028,23 @@ declare const RULES: readonly [{
9103
10028
  readonly recommendation?: string;
9104
10029
  readonly create: (context: RuleContext) => RuleVisitors;
9105
10030
  };
10031
+ }, {
10032
+ readonly key: "react-doctor/rn-list-missing-estimated-item-size";
10033
+ readonly id: "rn-list-missing-estimated-item-size";
10034
+ readonly source: "react-doctor";
10035
+ readonly originallyExternal: false;
10036
+ readonly rule: {
10037
+ readonly framework: "react-native";
10038
+ readonly category: "React Native";
10039
+ readonly tags: readonly string[];
10040
+ readonly id: string;
10041
+ readonly severity: RuleSeverity;
10042
+ readonly requires?: ReadonlyArray<string>;
10043
+ readonly disabledBy?: ReadonlyArray<string>;
10044
+ readonly defaultEnabled?: boolean;
10045
+ readonly recommendation?: string;
10046
+ readonly create: (context: RuleContext) => RuleVisitors;
10047
+ };
9106
10048
  }, {
9107
10049
  readonly key: "react-doctor/rn-list-recyclable-without-types";
9108
10050
  readonly id: "rn-list-recyclable-without-types";
@@ -9273,6 +10215,23 @@ declare const RULES: readonly [{
9273
10215
  readonly recommendation?: string;
9274
10216
  readonly create: (context: RuleContext) => RuleVisitors;
9275
10217
  };
10218
+ }, {
10219
+ readonly key: "react-doctor/rn-no-renderitem-key";
10220
+ readonly id: "rn-no-renderitem-key";
10221
+ readonly source: "react-doctor";
10222
+ readonly originallyExternal: false;
10223
+ readonly rule: {
10224
+ readonly framework: "react-native";
10225
+ readonly category: "React Native";
10226
+ readonly tags: readonly string[];
10227
+ readonly id: string;
10228
+ readonly severity: RuleSeverity;
10229
+ readonly requires?: ReadonlyArray<string>;
10230
+ readonly disabledBy?: ReadonlyArray<string>;
10231
+ readonly defaultEnabled?: boolean;
10232
+ readonly recommendation?: string;
10233
+ readonly create: (context: RuleContext) => RuleVisitors;
10234
+ };
9276
10235
  }, {
9277
10236
  readonly key: "react-doctor/rn-no-scroll-state";
9278
10237
  readonly id: "rn-no-scroll-state";
@@ -9375,6 +10334,23 @@ declare const RULES: readonly [{
9375
10334
  readonly recommendation?: string;
9376
10335
  readonly create: (context: RuleContext) => RuleVisitors;
9377
10336
  };
10337
+ }, {
10338
+ readonly key: "react-doctor/rn-prefer-pressable-over-gesture-detector";
10339
+ readonly id: "rn-prefer-pressable-over-gesture-detector";
10340
+ readonly source: "react-doctor";
10341
+ readonly originallyExternal: false;
10342
+ readonly rule: {
10343
+ readonly framework: "react-native";
10344
+ readonly category: "React Native";
10345
+ readonly tags: readonly string[];
10346
+ readonly id: string;
10347
+ readonly severity: RuleSeverity;
10348
+ readonly requires?: ReadonlyArray<string>;
10349
+ readonly disabledBy?: ReadonlyArray<string>;
10350
+ readonly defaultEnabled?: boolean;
10351
+ readonly recommendation?: string;
10352
+ readonly create: (context: RuleContext) => RuleVisitors;
10353
+ };
9378
10354
  }, {
9379
10355
  readonly key: "react-doctor/rn-prefer-reanimated";
9380
10356
  readonly id: "rn-prefer-reanimated";
@@ -9426,6 +10402,23 @@ declare const RULES: readonly [{
9426
10402
  readonly recommendation?: string;
9427
10403
  readonly create: (context: RuleContext) => RuleVisitors;
9428
10404
  };
10405
+ }, {
10406
+ readonly key: "react-doctor/rn-scrollview-flex-in-content-container";
10407
+ readonly id: "rn-scrollview-flex-in-content-container";
10408
+ readonly source: "react-doctor";
10409
+ readonly originallyExternal: false;
10410
+ readonly rule: {
10411
+ readonly framework: "react-native";
10412
+ readonly category: "React Native";
10413
+ readonly tags: readonly string[];
10414
+ readonly id: string;
10415
+ readonly severity: RuleSeverity;
10416
+ readonly requires?: ReadonlyArray<string>;
10417
+ readonly disabledBy?: ReadonlyArray<string>;
10418
+ readonly defaultEnabled?: boolean;
10419
+ readonly recommendation?: string;
10420
+ readonly create: (context: RuleContext) => RuleVisitors;
10421
+ };
9429
10422
  }, {
9430
10423
  readonly key: "react-doctor/rn-style-prefer-boxshadow";
9431
10424
  readonly id: "rn-style-prefer-boxshadow";
@@ -10057,6 +11050,7 @@ declare const NEXTJS_RULES: Record<string, OxlintRuleSeverity>;
10057
11050
  declare const REACT_NATIVE_RULES: Record<string, OxlintRuleSeverity>;
10058
11051
  declare const TANSTACK_START_RULES: Record<string, OxlintRuleSeverity>;
10059
11052
  declare const TANSTACK_QUERY_RULES: Record<string, OxlintRuleSeverity>;
11053
+ declare const PREACT_RULES: Record<string, OxlintRuleSeverity>;
10060
11054
  declare const ALL_REACT_DOCTOR_RULES: Record<string, OxlintRuleSeverity>;
10061
11055
  declare const ALL_REACT_DOCTOR_RULE_KEYS: ReadonlySet<string>;
10062
11056
  declare const FRAMEWORK_SPECIFIC_RULE_KEYS: ReadonlySet<string>;
@@ -10070,5 +11064,5 @@ declare const REACT_NATIVE_DEPENDENCY_NAMES: ReadonlySet<string>;
10070
11064
  declare const REACT_NATIVE_DEPENDENCY_PREFIXES: ReadonlyArray<string>;
10071
11065
  declare const isReactNativeDependencyName: (dependencyName: string) => boolean;
10072
11066
  //#endregion
10073
- export { ALL_REACT_DOCTOR_RULES, ALL_REACT_DOCTOR_RULE_KEYS, EXTERNAL_RULES, type EsTreeNode, FRAMEWORK_SPECIFIC_RULE_KEYS, MOTION_LIBRARY_PACKAGES, NEXTJS_RULES, type OxlintRuleSeverity, REACT_COMPILER_RULES, REACT_DOCTOR_RULES, REACT_NATIVE_DEPENDENCY_NAMES, REACT_NATIVE_DEPENDENCY_PREFIXES, REACT_NATIVE_RULES, RECOMMENDED_RULES, RULES, type Rule, type RuleFramework, type RulePlugin, type RuleSeverity, type RuleVisitors, TANSTACK_QUERY_RULES, TANSTACK_START_RULES, plugin as default, isReactNativeDependencyName };
11067
+ export { ALL_REACT_DOCTOR_RULES, ALL_REACT_DOCTOR_RULE_KEYS, EXTERNAL_RULES, type EsTreeNode, FRAMEWORK_SPECIFIC_RULE_KEYS, MOTION_LIBRARY_PACKAGES, NEXTJS_RULES, type OxlintRuleSeverity, PREACT_RULES, REACT_COMPILER_RULES, REACT_DOCTOR_RULES, REACT_NATIVE_DEPENDENCY_NAMES, REACT_NATIVE_DEPENDENCY_PREFIXES, REACT_NATIVE_RULES, RECOMMENDED_RULES, RULES, type Rule, type RuleFramework, type RulePlugin, type RuleSeverity, type RuleVisitors, TANSTACK_QUERY_RULES, TANSTACK_START_RULES, plugin as default, isReactNativeDependencyName };
10074
11068
  //# sourceMappingURL=index.d.ts.map