oxlint-plugin-react-doctor 0.7.3 → 0.7.4-dev.118f806

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 +231 -1
  2. package/dist/index.js +4152 -2511
  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,29 @@ 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-indeterminate-attribute";
4450
+ readonly id: "no-indeterminate-attribute";
4451
+ readonly source: "react-doctor";
4452
+ readonly originallyExternal: false;
4453
+ readonly rule: {
4454
+ readonly framework: "global";
4455
+ readonly category: "Bugs";
4456
+ readonly id: string;
4457
+ readonly title?: string;
4458
+ readonly severity: RuleSeverity;
4459
+ readonly requires?: ReadonlyArray<Capability>;
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
+ };
4402
4471
  }, {
4403
4472
  readonly key: "react-doctor/no-initialize-state";
4404
4473
  readonly id: "no-initialize-state";
@@ -4790,6 +4859,29 @@ declare const REACT_DOCTOR_RULES: readonly [{
4790
4859
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
4791
4860
  readonly create: (context: RuleContext) => RuleVisitors;
4792
4861
  };
4862
+ }, {
4863
+ readonly key: "react-doctor/no-match-media-in-state-initializer";
4864
+ readonly id: "no-match-media-in-state-initializer";
4865
+ readonly source: "react-doctor";
4866
+ readonly originallyExternal: false;
4867
+ readonly rule: {
4868
+ readonly framework: "global";
4869
+ readonly category: "Bugs";
4870
+ readonly requires: readonly Capability[];
4871
+ readonly id: string;
4872
+ readonly title?: string;
4873
+ readonly severity: RuleSeverity;
4874
+ readonly disabledWhen?: ReadonlyArray<Capability>;
4875
+ readonly tags?: ReadonlyArray<string>;
4876
+ readonly matchByOccurrence?: boolean;
4877
+ readonly defaultEnabled?: boolean;
4878
+ readonly lifecycle?: "retired";
4879
+ readonly scan?: FileScan;
4880
+ readonly committedFilesOnly?: boolean;
4881
+ readonly recommendation?: string;
4882
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
4883
+ readonly create: (context: RuleContext) => RuleVisitors;
4884
+ };
4793
4885
  }, {
4794
4886
  readonly key: "react-doctor/no-mirror-prop-effect";
4795
4887
  readonly id: "no-mirror-prop-effect";
@@ -5848,6 +5940,29 @@ declare const REACT_DOCTOR_RULES: readonly [{
5848
5940
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
5849
5941
  readonly create: (context: RuleContext) => RuleVisitors;
5850
5942
  };
5943
+ }, {
5944
+ readonly key: "react-doctor/no-unguarded-browser-global-in-render-or-hook-init";
5945
+ readonly id: "no-unguarded-browser-global-in-render-or-hook-init";
5946
+ readonly source: "react-doctor";
5947
+ readonly originallyExternal: false;
5948
+ readonly rule: {
5949
+ readonly framework: "global";
5950
+ readonly category: "Bugs";
5951
+ readonly requires: readonly Capability[];
5952
+ readonly id: string;
5953
+ readonly title?: string;
5954
+ readonly severity: RuleSeverity;
5955
+ readonly disabledWhen?: ReadonlyArray<Capability>;
5956
+ readonly tags?: ReadonlyArray<string>;
5957
+ readonly matchByOccurrence?: boolean;
5958
+ readonly defaultEnabled?: boolean;
5959
+ readonly lifecycle?: "retired";
5960
+ readonly scan?: FileScan;
5961
+ readonly committedFilesOnly?: boolean;
5962
+ readonly recommendation?: string;
5963
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
5964
+ readonly create: (context: RuleContext) => RuleVisitors;
5965
+ };
5851
5966
  }, {
5852
5967
  readonly key: "react-doctor/no-unknown-property";
5853
5968
  readonly id: "no-unknown-property";
@@ -10169,6 +10284,29 @@ declare const RULES: readonly [{
10169
10284
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
10170
10285
  readonly create: (context: RuleContext) => RuleVisitors;
10171
10286
  };
10287
+ }, {
10288
+ readonly key: "react-doctor/effect-listener-cleanup-mismatch";
10289
+ readonly id: "effect-listener-cleanup-mismatch";
10290
+ readonly source: "react-doctor";
10291
+ readonly originallyExternal: false;
10292
+ readonly rule: {
10293
+ readonly framework: "global";
10294
+ readonly category: "Bugs";
10295
+ readonly requires: readonly Capability[];
10296
+ readonly id: string;
10297
+ readonly title?: string;
10298
+ readonly severity: RuleSeverity;
10299
+ readonly disabledWhen?: ReadonlyArray<Capability>;
10300
+ readonly tags?: ReadonlyArray<string>;
10301
+ readonly matchByOccurrence?: boolean;
10302
+ readonly defaultEnabled?: boolean;
10303
+ readonly lifecycle?: "retired";
10304
+ readonly scan?: FileScan;
10305
+ readonly committedFilesOnly?: boolean;
10306
+ readonly recommendation?: string;
10307
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
10308
+ readonly create: (context: RuleContext) => RuleVisitors;
10309
+ };
10172
10310
  }, {
10173
10311
  readonly key: "react-doctor/effect-needs-cleanup";
10174
10312
  readonly id: "effect-needs-cleanup";
@@ -13458,6 +13596,29 @@ declare const RULES: readonly [{
13458
13596
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
13459
13597
  readonly create: (context: RuleContext) => RuleVisitors;
13460
13598
  };
13599
+ }, {
13600
+ readonly key: "react-doctor/no-hydration-branch-on-browser-global";
13601
+ readonly id: "no-hydration-branch-on-browser-global";
13602
+ readonly source: "react-doctor";
13603
+ readonly originallyExternal: false;
13604
+ readonly rule: {
13605
+ readonly framework: "global";
13606
+ readonly category: "Bugs";
13607
+ readonly requires: readonly Capability[];
13608
+ readonly id: string;
13609
+ readonly title?: string;
13610
+ readonly severity: RuleSeverity;
13611
+ readonly disabledWhen?: ReadonlyArray<Capability>;
13612
+ readonly tags?: ReadonlyArray<string>;
13613
+ readonly matchByOccurrence?: boolean;
13614
+ readonly defaultEnabled?: boolean;
13615
+ readonly lifecycle?: "retired";
13616
+ readonly scan?: FileScan;
13617
+ readonly committedFilesOnly?: boolean;
13618
+ readonly recommendation?: string;
13619
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
13620
+ readonly create: (context: RuleContext) => RuleVisitors;
13621
+ };
13461
13622
  }, {
13462
13623
  readonly key: "react-doctor/no-img-lazy-with-high-fetchpriority";
13463
13624
  readonly id: "no-img-lazy-with-high-fetchpriority";
@@ -13481,6 +13642,29 @@ declare const RULES: readonly [{
13481
13642
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
13482
13643
  readonly create: (context: RuleContext) => RuleVisitors;
13483
13644
  };
13645
+ }, {
13646
+ readonly key: "react-doctor/no-indeterminate-attribute";
13647
+ readonly id: "no-indeterminate-attribute";
13648
+ readonly source: "react-doctor";
13649
+ readonly originallyExternal: false;
13650
+ readonly rule: {
13651
+ readonly framework: "global";
13652
+ readonly category: "Bugs";
13653
+ readonly id: string;
13654
+ readonly title?: string;
13655
+ readonly severity: RuleSeverity;
13656
+ readonly requires?: ReadonlyArray<Capability>;
13657
+ readonly disabledWhen?: ReadonlyArray<Capability>;
13658
+ readonly tags?: ReadonlyArray<string>;
13659
+ readonly matchByOccurrence?: boolean;
13660
+ readonly defaultEnabled?: boolean;
13661
+ readonly lifecycle?: "retired";
13662
+ readonly scan?: FileScan;
13663
+ readonly committedFilesOnly?: boolean;
13664
+ readonly recommendation?: string;
13665
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
13666
+ readonly create: (context: RuleContext) => RuleVisitors;
13667
+ };
13484
13668
  }, {
13485
13669
  readonly key: "react-doctor/no-initialize-state";
13486
13670
  readonly id: "no-initialize-state";
@@ -13872,6 +14056,29 @@ declare const RULES: readonly [{
13872
14056
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
13873
14057
  readonly create: (context: RuleContext) => RuleVisitors;
13874
14058
  };
14059
+ }, {
14060
+ readonly key: "react-doctor/no-match-media-in-state-initializer";
14061
+ readonly id: "no-match-media-in-state-initializer";
14062
+ readonly source: "react-doctor";
14063
+ readonly originallyExternal: false;
14064
+ readonly rule: {
14065
+ readonly framework: "global";
14066
+ readonly category: "Bugs";
14067
+ readonly requires: readonly Capability[];
14068
+ readonly id: string;
14069
+ readonly title?: string;
14070
+ readonly severity: RuleSeverity;
14071
+ readonly disabledWhen?: ReadonlyArray<Capability>;
14072
+ readonly tags?: ReadonlyArray<string>;
14073
+ readonly matchByOccurrence?: boolean;
14074
+ readonly defaultEnabled?: boolean;
14075
+ readonly lifecycle?: "retired";
14076
+ readonly scan?: FileScan;
14077
+ readonly committedFilesOnly?: boolean;
14078
+ readonly recommendation?: string;
14079
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
14080
+ readonly create: (context: RuleContext) => RuleVisitors;
14081
+ };
13875
14082
  }, {
13876
14083
  readonly key: "react-doctor/no-mirror-prop-effect";
13877
14084
  readonly id: "no-mirror-prop-effect";
@@ -14930,6 +15137,29 @@ declare const RULES: readonly [{
14930
15137
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
14931
15138
  readonly create: (context: RuleContext) => RuleVisitors;
14932
15139
  };
15140
+ }, {
15141
+ readonly key: "react-doctor/no-unguarded-browser-global-in-render-or-hook-init";
15142
+ readonly id: "no-unguarded-browser-global-in-render-or-hook-init";
15143
+ readonly source: "react-doctor";
15144
+ readonly originallyExternal: false;
15145
+ readonly rule: {
15146
+ readonly framework: "global";
15147
+ readonly category: "Bugs";
15148
+ readonly requires: readonly Capability[];
15149
+ readonly id: string;
15150
+ readonly title?: string;
15151
+ readonly severity: RuleSeverity;
15152
+ readonly disabledWhen?: ReadonlyArray<Capability>;
15153
+ readonly tags?: ReadonlyArray<string>;
15154
+ readonly matchByOccurrence?: boolean;
15155
+ readonly defaultEnabled?: boolean;
15156
+ readonly lifecycle?: "retired";
15157
+ readonly scan?: FileScan;
15158
+ readonly committedFilesOnly?: boolean;
15159
+ readonly recommendation?: string;
15160
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
15161
+ readonly create: (context: RuleContext) => RuleVisitors;
15162
+ };
14933
15163
  }, {
14934
15164
  readonly key: "react-doctor/no-unknown-property";
14935
15165
  readonly id: "no-unknown-property";