oxlint-plugin-react-doctor 0.7.3 → 0.7.4-dev.11333b9

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 +369 -1
  2. package/dist/index.js +5498 -2807
  3. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -100,7 +100,7 @@ interface RuleContext extends Omit<BaseRuleContext, "getFilename"> {
100
100
  //#region src/plugin/utils/capability.d.ts
101
101
  declare const FRAMEWORK_TOKENS: readonly ["nextjs", "vite", "cra", "remix", "gatsby", "expo", "react-native", "tanstack-start", "preact", "unknown"];
102
102
  type FrameworkToken = (typeof FRAMEWORK_TOKENS)[number];
103
- type Capability = FrameworkToken | "react" | "pure-preact" | "react-native" | "server-actions" | "client-only" | "nextjs:static-export" | "nextjs:15" | "tailwind" | "tailwind:3.4" | "zod" | "zod:4" | "typescript" | "react-compiler" | "tanstack-query" | "pre-es2023" | `react:${number}` | `preact:${number}`;
103
+ type Capability = FrameworkToken | "react" | "pure-preact" | "react-native" | "server-actions" | "ssr" | "client-only" | "nextjs:static-export" | "nextjs:15" | "tailwind" | "tailwind:3.4" | "zod" | "zod:4" | "typescript" | "react-compiler" | "tanstack-query" | "pre-es2023" | `react:${number}` | `preact:${number}`;
104
104
  type CapabilityQuery = (capability: Capability) => boolean;
105
105
  //#endregion
106
106
  //#region src/plugin/utils/file-scan.d.ts
@@ -1087,6 +1087,29 @@ declare const REACT_DOCTOR_RULES: readonly [{
1087
1087
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
1088
1088
  readonly create: (context: RuleContext) => RuleVisitors;
1089
1089
  };
1090
+ }, {
1091
+ readonly key: "react-doctor/effect-listener-cleanup-mismatch";
1092
+ readonly id: "effect-listener-cleanup-mismatch";
1093
+ readonly source: "react-doctor";
1094
+ readonly originallyExternal: false;
1095
+ readonly rule: {
1096
+ readonly framework: "global";
1097
+ readonly category: "Bugs";
1098
+ readonly requires: readonly Capability[];
1099
+ readonly id: string;
1100
+ readonly title?: string;
1101
+ readonly severity: RuleSeverity;
1102
+ readonly disabledWhen?: ReadonlyArray<Capability>;
1103
+ readonly tags?: ReadonlyArray<string>;
1104
+ readonly matchByOccurrence?: boolean;
1105
+ readonly defaultEnabled?: boolean;
1106
+ readonly lifecycle?: "retired";
1107
+ readonly scan?: FileScan;
1108
+ readonly committedFilesOnly?: boolean;
1109
+ readonly recommendation?: string;
1110
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
1111
+ readonly create: (context: RuleContext) => RuleVisitors;
1112
+ };
1090
1113
  }, {
1091
1114
  readonly key: "react-doctor/effect-needs-cleanup";
1092
1115
  readonly id: "effect-needs-cleanup";
@@ -4376,6 +4399,29 @@ declare const REACT_DOCTOR_RULES: readonly [{
4376
4399
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
4377
4400
  readonly create: (context: RuleContext) => RuleVisitors;
4378
4401
  };
4402
+ }, {
4403
+ readonly key: "react-doctor/no-hydration-branch-on-browser-global";
4404
+ readonly id: "no-hydration-branch-on-browser-global";
4405
+ readonly source: "react-doctor";
4406
+ readonly originallyExternal: false;
4407
+ readonly rule: {
4408
+ readonly framework: "global";
4409
+ readonly category: "Bugs";
4410
+ readonly requires: readonly Capability[];
4411
+ readonly id: string;
4412
+ readonly title?: string;
4413
+ readonly severity: RuleSeverity;
4414
+ readonly disabledWhen?: ReadonlyArray<Capability>;
4415
+ readonly tags?: ReadonlyArray<string>;
4416
+ readonly matchByOccurrence?: boolean;
4417
+ readonly defaultEnabled?: boolean;
4418
+ readonly lifecycle?: "retired";
4419
+ readonly scan?: FileScan;
4420
+ readonly committedFilesOnly?: boolean;
4421
+ readonly recommendation?: string;
4422
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
4423
+ readonly create: (context: RuleContext) => RuleVisitors;
4424
+ };
4379
4425
  }, {
4380
4426
  readonly key: "react-doctor/no-img-lazy-with-high-fetchpriority";
4381
4427
  readonly id: "no-img-lazy-with-high-fetchpriority";
@@ -4399,6 +4445,52 @@ declare const REACT_DOCTOR_RULES: readonly [{
4399
4445
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
4400
4446
  readonly create: (context: RuleContext) => RuleVisitors;
4401
4447
  };
4448
+ }, {
4449
+ readonly key: "react-doctor/no-impure-state-updater";
4450
+ readonly id: "no-impure-state-updater";
4451
+ readonly source: "react-doctor";
4452
+ readonly originallyExternal: false;
4453
+ readonly rule: {
4454
+ readonly framework: "global";
4455
+ readonly category: "Bugs";
4456
+ readonly requires: readonly Capability[];
4457
+ readonly id: string;
4458
+ readonly title?: string;
4459
+ readonly severity: RuleSeverity;
4460
+ readonly disabledWhen?: ReadonlyArray<Capability>;
4461
+ readonly tags?: ReadonlyArray<string>;
4462
+ readonly matchByOccurrence?: boolean;
4463
+ readonly defaultEnabled?: boolean;
4464
+ readonly lifecycle?: "retired";
4465
+ readonly scan?: FileScan;
4466
+ readonly committedFilesOnly?: boolean;
4467
+ readonly recommendation?: string;
4468
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
4469
+ readonly create: (context: RuleContext) => RuleVisitors;
4470
+ };
4471
+ }, {
4472
+ readonly key: "react-doctor/no-indeterminate-attribute";
4473
+ readonly id: "no-indeterminate-attribute";
4474
+ readonly source: "react-doctor";
4475
+ readonly originallyExternal: false;
4476
+ readonly rule: {
4477
+ readonly framework: "global";
4478
+ readonly category: "Bugs";
4479
+ readonly id: string;
4480
+ readonly title?: string;
4481
+ readonly severity: RuleSeverity;
4482
+ readonly requires?: ReadonlyArray<Capability>;
4483
+ readonly disabledWhen?: ReadonlyArray<Capability>;
4484
+ readonly tags?: ReadonlyArray<string>;
4485
+ readonly matchByOccurrence?: boolean;
4486
+ readonly defaultEnabled?: boolean;
4487
+ readonly lifecycle?: "retired";
4488
+ readonly scan?: FileScan;
4489
+ readonly committedFilesOnly?: boolean;
4490
+ readonly recommendation?: string;
4491
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
4492
+ readonly create: (context: RuleContext) => RuleVisitors;
4493
+ };
4402
4494
  }, {
4403
4495
  readonly key: "react-doctor/no-initialize-state";
4404
4496
  readonly id: "no-initialize-state";
@@ -4790,6 +4882,29 @@ declare const REACT_DOCTOR_RULES: readonly [{
4790
4882
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
4791
4883
  readonly create: (context: RuleContext) => RuleVisitors;
4792
4884
  };
4885
+ }, {
4886
+ readonly key: "react-doctor/no-match-media-in-state-initializer";
4887
+ readonly id: "no-match-media-in-state-initializer";
4888
+ readonly source: "react-doctor";
4889
+ readonly originallyExternal: false;
4890
+ readonly rule: {
4891
+ readonly framework: "global";
4892
+ readonly category: "Bugs";
4893
+ readonly requires: readonly Capability[];
4894
+ readonly id: string;
4895
+ readonly title?: string;
4896
+ readonly severity: RuleSeverity;
4897
+ readonly disabledWhen?: ReadonlyArray<Capability>;
4898
+ readonly tags?: ReadonlyArray<string>;
4899
+ readonly matchByOccurrence?: boolean;
4900
+ readonly defaultEnabled?: boolean;
4901
+ readonly lifecycle?: "retired";
4902
+ readonly scan?: FileScan;
4903
+ readonly committedFilesOnly?: boolean;
4904
+ readonly recommendation?: string;
4905
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
4906
+ readonly create: (context: RuleContext) => RuleVisitors;
4907
+ };
4793
4908
  }, {
4794
4909
  readonly key: "react-doctor/no-mirror-prop-effect";
4795
4910
  readonly id: "no-mirror-prop-effect";
@@ -5181,6 +5296,29 @@ declare const REACT_DOCTOR_RULES: readonly [{
5181
5296
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
5182
5297
  readonly create: (context: RuleContext) => RuleVisitors;
5183
5298
  };
5299
+ }, {
5300
+ readonly key: "react-doctor/no-prop-callback-in-render";
5301
+ readonly id: "no-prop-callback-in-render";
5302
+ readonly source: "react-doctor";
5303
+ readonly originallyExternal: false;
5304
+ readonly rule: {
5305
+ readonly framework: "global";
5306
+ readonly category: "Bugs";
5307
+ readonly requires: readonly Capability[];
5308
+ readonly id: string;
5309
+ readonly title?: string;
5310
+ readonly severity: RuleSeverity;
5311
+ readonly disabledWhen?: ReadonlyArray<Capability>;
5312
+ readonly tags?: ReadonlyArray<string>;
5313
+ readonly matchByOccurrence?: boolean;
5314
+ readonly defaultEnabled?: boolean;
5315
+ readonly lifecycle?: "retired";
5316
+ readonly scan?: FileScan;
5317
+ readonly committedFilesOnly?: boolean;
5318
+ readonly recommendation?: string;
5319
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
5320
+ readonly create: (context: RuleContext) => RuleVisitors;
5321
+ };
5184
5322
  }, {
5185
5323
  readonly key: "react-doctor/no-prop-types";
5186
5324
  readonly id: "no-prop-types";
@@ -5365,6 +5503,29 @@ declare const REACT_DOCTOR_RULES: readonly [{
5365
5503
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
5366
5504
  readonly create: (context: RuleContext) => RuleVisitors;
5367
5505
  };
5506
+ }, {
5507
+ readonly key: "react-doctor/no-ref-current-in-render";
5508
+ readonly id: "no-ref-current-in-render";
5509
+ readonly source: "react-doctor";
5510
+ readonly originallyExternal: false;
5511
+ readonly rule: {
5512
+ readonly framework: "global";
5513
+ readonly category: "Bugs";
5514
+ readonly requires: readonly Capability[];
5515
+ readonly id: string;
5516
+ readonly title?: string;
5517
+ readonly severity: RuleSeverity;
5518
+ readonly disabledWhen?: ReadonlyArray<Capability>;
5519
+ readonly tags?: ReadonlyArray<string>;
5520
+ readonly matchByOccurrence?: boolean;
5521
+ readonly defaultEnabled?: boolean;
5522
+ readonly lifecycle?: "retired";
5523
+ readonly scan?: FileScan;
5524
+ readonly committedFilesOnly?: boolean;
5525
+ readonly recommendation?: string;
5526
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
5527
+ readonly create: (context: RuleContext) => RuleVisitors;
5528
+ };
5368
5529
  }, {
5369
5530
  readonly key: "react-doctor/no-render-in-render";
5370
5531
  readonly id: "no-render-in-render";
@@ -5848,6 +6009,29 @@ declare const REACT_DOCTOR_RULES: readonly [{
5848
6009
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
5849
6010
  readonly create: (context: RuleContext) => RuleVisitors;
5850
6011
  };
6012
+ }, {
6013
+ readonly key: "react-doctor/no-unguarded-browser-global-in-render-or-hook-init";
6014
+ readonly id: "no-unguarded-browser-global-in-render-or-hook-init";
6015
+ readonly source: "react-doctor";
6016
+ readonly originallyExternal: false;
6017
+ readonly rule: {
6018
+ readonly framework: "global";
6019
+ readonly category: "Bugs";
6020
+ readonly requires: readonly Capability[];
6021
+ readonly id: string;
6022
+ readonly title?: string;
6023
+ readonly severity: RuleSeverity;
6024
+ readonly disabledWhen?: ReadonlyArray<Capability>;
6025
+ readonly tags?: ReadonlyArray<string>;
6026
+ readonly matchByOccurrence?: boolean;
6027
+ readonly defaultEnabled?: boolean;
6028
+ readonly lifecycle?: "retired";
6029
+ readonly scan?: FileScan;
6030
+ readonly committedFilesOnly?: boolean;
6031
+ readonly recommendation?: string;
6032
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
6033
+ readonly create: (context: RuleContext) => RuleVisitors;
6034
+ };
5851
6035
  }, {
5852
6036
  readonly key: "react-doctor/no-unknown-property";
5853
6037
  readonly id: "no-unknown-property";
@@ -10169,6 +10353,29 @@ declare const RULES: readonly [{
10169
10353
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
10170
10354
  readonly create: (context: RuleContext) => RuleVisitors;
10171
10355
  };
10356
+ }, {
10357
+ readonly key: "react-doctor/effect-listener-cleanup-mismatch";
10358
+ readonly id: "effect-listener-cleanup-mismatch";
10359
+ readonly source: "react-doctor";
10360
+ readonly originallyExternal: false;
10361
+ readonly rule: {
10362
+ readonly framework: "global";
10363
+ readonly category: "Bugs";
10364
+ readonly requires: readonly Capability[];
10365
+ readonly id: string;
10366
+ readonly title?: string;
10367
+ readonly severity: RuleSeverity;
10368
+ readonly disabledWhen?: ReadonlyArray<Capability>;
10369
+ readonly tags?: ReadonlyArray<string>;
10370
+ readonly matchByOccurrence?: boolean;
10371
+ readonly defaultEnabled?: boolean;
10372
+ readonly lifecycle?: "retired";
10373
+ readonly scan?: FileScan;
10374
+ readonly committedFilesOnly?: boolean;
10375
+ readonly recommendation?: string;
10376
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
10377
+ readonly create: (context: RuleContext) => RuleVisitors;
10378
+ };
10172
10379
  }, {
10173
10380
  readonly key: "react-doctor/effect-needs-cleanup";
10174
10381
  readonly id: "effect-needs-cleanup";
@@ -13458,6 +13665,29 @@ declare const RULES: readonly [{
13458
13665
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
13459
13666
  readonly create: (context: RuleContext) => RuleVisitors;
13460
13667
  };
13668
+ }, {
13669
+ readonly key: "react-doctor/no-hydration-branch-on-browser-global";
13670
+ readonly id: "no-hydration-branch-on-browser-global";
13671
+ readonly source: "react-doctor";
13672
+ readonly originallyExternal: false;
13673
+ readonly rule: {
13674
+ readonly framework: "global";
13675
+ readonly category: "Bugs";
13676
+ readonly requires: readonly Capability[];
13677
+ readonly id: string;
13678
+ readonly title?: string;
13679
+ readonly severity: RuleSeverity;
13680
+ readonly disabledWhen?: ReadonlyArray<Capability>;
13681
+ readonly tags?: ReadonlyArray<string>;
13682
+ readonly matchByOccurrence?: boolean;
13683
+ readonly defaultEnabled?: boolean;
13684
+ readonly lifecycle?: "retired";
13685
+ readonly scan?: FileScan;
13686
+ readonly committedFilesOnly?: boolean;
13687
+ readonly recommendation?: string;
13688
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
13689
+ readonly create: (context: RuleContext) => RuleVisitors;
13690
+ };
13461
13691
  }, {
13462
13692
  readonly key: "react-doctor/no-img-lazy-with-high-fetchpriority";
13463
13693
  readonly id: "no-img-lazy-with-high-fetchpriority";
@@ -13481,6 +13711,52 @@ declare const RULES: readonly [{
13481
13711
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
13482
13712
  readonly create: (context: RuleContext) => RuleVisitors;
13483
13713
  };
13714
+ }, {
13715
+ readonly key: "react-doctor/no-impure-state-updater";
13716
+ readonly id: "no-impure-state-updater";
13717
+ readonly source: "react-doctor";
13718
+ readonly originallyExternal: false;
13719
+ readonly rule: {
13720
+ readonly framework: "global";
13721
+ readonly category: "Bugs";
13722
+ readonly requires: readonly Capability[];
13723
+ readonly id: string;
13724
+ readonly title?: string;
13725
+ readonly severity: RuleSeverity;
13726
+ readonly disabledWhen?: ReadonlyArray<Capability>;
13727
+ readonly tags?: ReadonlyArray<string>;
13728
+ readonly matchByOccurrence?: boolean;
13729
+ readonly defaultEnabled?: boolean;
13730
+ readonly lifecycle?: "retired";
13731
+ readonly scan?: FileScan;
13732
+ readonly committedFilesOnly?: boolean;
13733
+ readonly recommendation?: string;
13734
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
13735
+ readonly create: (context: RuleContext) => RuleVisitors;
13736
+ };
13737
+ }, {
13738
+ readonly key: "react-doctor/no-indeterminate-attribute";
13739
+ readonly id: "no-indeterminate-attribute";
13740
+ readonly source: "react-doctor";
13741
+ readonly originallyExternal: false;
13742
+ readonly rule: {
13743
+ readonly framework: "global";
13744
+ readonly category: "Bugs";
13745
+ readonly id: string;
13746
+ readonly title?: string;
13747
+ readonly severity: RuleSeverity;
13748
+ readonly requires?: ReadonlyArray<Capability>;
13749
+ readonly disabledWhen?: ReadonlyArray<Capability>;
13750
+ readonly tags?: ReadonlyArray<string>;
13751
+ readonly matchByOccurrence?: boolean;
13752
+ readonly defaultEnabled?: boolean;
13753
+ readonly lifecycle?: "retired";
13754
+ readonly scan?: FileScan;
13755
+ readonly committedFilesOnly?: boolean;
13756
+ readonly recommendation?: string;
13757
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
13758
+ readonly create: (context: RuleContext) => RuleVisitors;
13759
+ };
13484
13760
  }, {
13485
13761
  readonly key: "react-doctor/no-initialize-state";
13486
13762
  readonly id: "no-initialize-state";
@@ -13872,6 +14148,29 @@ declare const RULES: readonly [{
13872
14148
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
13873
14149
  readonly create: (context: RuleContext) => RuleVisitors;
13874
14150
  };
14151
+ }, {
14152
+ readonly key: "react-doctor/no-match-media-in-state-initializer";
14153
+ readonly id: "no-match-media-in-state-initializer";
14154
+ readonly source: "react-doctor";
14155
+ readonly originallyExternal: false;
14156
+ readonly rule: {
14157
+ readonly framework: "global";
14158
+ readonly category: "Bugs";
14159
+ readonly requires: readonly Capability[];
14160
+ readonly id: string;
14161
+ readonly title?: string;
14162
+ readonly severity: RuleSeverity;
14163
+ readonly disabledWhen?: ReadonlyArray<Capability>;
14164
+ readonly tags?: ReadonlyArray<string>;
14165
+ readonly matchByOccurrence?: boolean;
14166
+ readonly defaultEnabled?: boolean;
14167
+ readonly lifecycle?: "retired";
14168
+ readonly scan?: FileScan;
14169
+ readonly committedFilesOnly?: boolean;
14170
+ readonly recommendation?: string;
14171
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
14172
+ readonly create: (context: RuleContext) => RuleVisitors;
14173
+ };
13875
14174
  }, {
13876
14175
  readonly key: "react-doctor/no-mirror-prop-effect";
13877
14176
  readonly id: "no-mirror-prop-effect";
@@ -14263,6 +14562,29 @@ declare const RULES: readonly [{
14263
14562
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
14264
14563
  readonly create: (context: RuleContext) => RuleVisitors;
14265
14564
  };
14565
+ }, {
14566
+ readonly key: "react-doctor/no-prop-callback-in-render";
14567
+ readonly id: "no-prop-callback-in-render";
14568
+ readonly source: "react-doctor";
14569
+ readonly originallyExternal: false;
14570
+ readonly rule: {
14571
+ readonly framework: "global";
14572
+ readonly category: "Bugs";
14573
+ readonly requires: readonly Capability[];
14574
+ readonly id: string;
14575
+ readonly title?: string;
14576
+ readonly severity: RuleSeverity;
14577
+ readonly disabledWhen?: ReadonlyArray<Capability>;
14578
+ readonly tags?: ReadonlyArray<string>;
14579
+ readonly matchByOccurrence?: boolean;
14580
+ readonly defaultEnabled?: boolean;
14581
+ readonly lifecycle?: "retired";
14582
+ readonly scan?: FileScan;
14583
+ readonly committedFilesOnly?: boolean;
14584
+ readonly recommendation?: string;
14585
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
14586
+ readonly create: (context: RuleContext) => RuleVisitors;
14587
+ };
14266
14588
  }, {
14267
14589
  readonly key: "react-doctor/no-prop-types";
14268
14590
  readonly id: "no-prop-types";
@@ -14447,6 +14769,29 @@ declare const RULES: readonly [{
14447
14769
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
14448
14770
  readonly create: (context: RuleContext) => RuleVisitors;
14449
14771
  };
14772
+ }, {
14773
+ readonly key: "react-doctor/no-ref-current-in-render";
14774
+ readonly id: "no-ref-current-in-render";
14775
+ readonly source: "react-doctor";
14776
+ readonly originallyExternal: false;
14777
+ readonly rule: {
14778
+ readonly framework: "global";
14779
+ readonly category: "Bugs";
14780
+ readonly requires: readonly Capability[];
14781
+ readonly id: string;
14782
+ readonly title?: string;
14783
+ readonly severity: RuleSeverity;
14784
+ readonly disabledWhen?: ReadonlyArray<Capability>;
14785
+ readonly tags?: ReadonlyArray<string>;
14786
+ readonly matchByOccurrence?: boolean;
14787
+ readonly defaultEnabled?: boolean;
14788
+ readonly lifecycle?: "retired";
14789
+ readonly scan?: FileScan;
14790
+ readonly committedFilesOnly?: boolean;
14791
+ readonly recommendation?: string;
14792
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
14793
+ readonly create: (context: RuleContext) => RuleVisitors;
14794
+ };
14450
14795
  }, {
14451
14796
  readonly key: "react-doctor/no-render-in-render";
14452
14797
  readonly id: "no-render-in-render";
@@ -14930,6 +15275,29 @@ declare const RULES: readonly [{
14930
15275
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
14931
15276
  readonly create: (context: RuleContext) => RuleVisitors;
14932
15277
  };
15278
+ }, {
15279
+ readonly key: "react-doctor/no-unguarded-browser-global-in-render-or-hook-init";
15280
+ readonly id: "no-unguarded-browser-global-in-render-or-hook-init";
15281
+ readonly source: "react-doctor";
15282
+ readonly originallyExternal: false;
15283
+ readonly rule: {
15284
+ readonly framework: "global";
15285
+ readonly category: "Bugs";
15286
+ readonly requires: readonly Capability[];
15287
+ readonly id: string;
15288
+ readonly title?: string;
15289
+ readonly severity: RuleSeverity;
15290
+ readonly disabledWhen?: ReadonlyArray<Capability>;
15291
+ readonly tags?: ReadonlyArray<string>;
15292
+ readonly matchByOccurrence?: boolean;
15293
+ readonly defaultEnabled?: boolean;
15294
+ readonly lifecycle?: "retired";
15295
+ readonly scan?: FileScan;
15296
+ readonly committedFilesOnly?: boolean;
15297
+ readonly recommendation?: string;
15298
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
15299
+ readonly create: (context: RuleContext) => RuleVisitors;
15300
+ };
14933
15301
  }, {
14934
15302
  readonly key: "react-doctor/no-unknown-property";
14935
15303
  readonly id: "no-unknown-property";