oxlint-plugin-react-doctor 0.8.1-dev.e6a1557 → 0.8.1-dev.f4aa821

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 +1 -323
  2. package/dist/index.js +355 -2139
  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" | "remotion" | "pure-preact" | "react-native" | "server-actions" | "ssr" | "client-only" | "nextjs:static-export" | "nextjs:15" | "tailwind" | "tailwind:3.4" | "zod" | "zod:4" | "mobx" | "mobx-react" | "mobx-react-lite" | "mobx-react-binding" | "mobx-state-tree" | "mobx-react-observer" | "zustand" | "typescript" | "react-compiler" | "tanstack-query" | "valtio" | "pre-es2023" | `react:${number}` | `preact:${number}` | `remotion:${number}` | `valtio:${number}` | `mobx:${number}` | `zustand:${number}`;
103
+ type Capability = FrameworkToken | "react" | "remotion" | "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" | "valtio" | "pre-es2023" | `react:${number}` | `preact:${number}` | `remotion:${number}` | `valtio:${number}`;
104
104
  type CapabilityQuery = (capability: Capability) => boolean;
105
105
  //#endregion
106
106
  //#region src/plugin/utils/file-scan.d.ts
@@ -2720,75 +2720,6 @@ declare const REACT_DOCTOR_RULES: readonly [{
2720
2720
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
2721
2721
  readonly create: (context: RuleContext) => RuleVisitors;
2722
2722
  };
2723
- }, {
2724
- readonly key: "react-doctor/mobx-no-make-auto-observable-in-inheritance";
2725
- readonly id: "mobx-no-make-auto-observable-in-inheritance";
2726
- readonly source: "react-doctor";
2727
- readonly originallyExternal: false;
2728
- readonly rule: {
2729
- readonly framework: "global";
2730
- readonly category: "Bugs";
2731
- readonly id: string;
2732
- readonly title?: string;
2733
- readonly severity: RuleSeverity;
2734
- readonly requires?: ReadonlyArray<Capability>;
2735
- readonly disabledWhen?: ReadonlyArray<Capability>;
2736
- readonly tags?: ReadonlyArray<string>;
2737
- readonly matchByOccurrence?: boolean;
2738
- readonly defaultEnabled?: boolean;
2739
- readonly lifecycle?: "retired";
2740
- readonly scan?: FileScan;
2741
- readonly committedFilesOnly?: boolean;
2742
- readonly recommendation?: string;
2743
- readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
2744
- readonly create: (context: RuleContext) => RuleVisitors;
2745
- };
2746
- }, {
2747
- readonly key: "react-doctor/mobx-no-observer-wrapped-memo";
2748
- readonly id: "mobx-no-observer-wrapped-memo";
2749
- readonly source: "react-doctor";
2750
- readonly originallyExternal: false;
2751
- readonly rule: {
2752
- readonly framework: "global";
2753
- readonly category: "Bugs";
2754
- readonly id: string;
2755
- readonly title?: string;
2756
- readonly severity: RuleSeverity;
2757
- readonly requires?: ReadonlyArray<Capability>;
2758
- readonly disabledWhen?: ReadonlyArray<Capability>;
2759
- readonly tags?: ReadonlyArray<string>;
2760
- readonly matchByOccurrence?: boolean;
2761
- readonly defaultEnabled?: boolean;
2762
- readonly lifecycle?: "retired";
2763
- readonly scan?: FileScan;
2764
- readonly committedFilesOnly?: boolean;
2765
- readonly recommendation?: string;
2766
- readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
2767
- readonly create: (context: RuleContext) => RuleVisitors;
2768
- };
2769
- }, {
2770
- readonly key: "react-doctor/mobx-reaction-disposer-discarded";
2771
- readonly id: "mobx-reaction-disposer-discarded";
2772
- readonly source: "react-doctor";
2773
- readonly originallyExternal: false;
2774
- readonly rule: {
2775
- readonly framework: "global";
2776
- readonly category: "Bugs";
2777
- readonly id: string;
2778
- readonly title?: string;
2779
- readonly severity: RuleSeverity;
2780
- readonly requires?: ReadonlyArray<Capability>;
2781
- readonly disabledWhen?: ReadonlyArray<Capability>;
2782
- readonly tags?: ReadonlyArray<string>;
2783
- readonly matchByOccurrence?: boolean;
2784
- readonly defaultEnabled?: boolean;
2785
- readonly lifecycle?: "retired";
2786
- readonly scan?: FileScan;
2787
- readonly committedFilesOnly?: boolean;
2788
- readonly recommendation?: string;
2789
- readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
2790
- readonly create: (context: RuleContext) => RuleVisitors;
2791
- };
2792
2723
  }, {
2793
2724
  readonly key: "react-doctor/mouse-events-have-key-events";
2794
2725
  readonly id: "mouse-events-have-key-events";
@@ -9712,98 +9643,6 @@ declare const REACT_DOCTOR_RULES: readonly [{
9712
9643
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
9713
9644
  readonly create: (context: RuleContext) => RuleVisitors;
9714
9645
  };
9715
- }, {
9716
- readonly key: "react-doctor/zustand-no-fresh-selector-result";
9717
- readonly id: "zustand-no-fresh-selector-result";
9718
- readonly source: "react-doctor";
9719
- readonly originallyExternal: false;
9720
- readonly rule: {
9721
- readonly framework: "global";
9722
- readonly category: "Performance";
9723
- readonly requires: readonly Capability[];
9724
- readonly id: string;
9725
- readonly title?: string;
9726
- readonly severity: RuleSeverity;
9727
- readonly disabledWhen?: ReadonlyArray<Capability>;
9728
- readonly tags?: ReadonlyArray<string>;
9729
- readonly matchByOccurrence?: boolean;
9730
- readonly defaultEnabled?: boolean;
9731
- readonly lifecycle?: "retired";
9732
- readonly scan?: FileScan;
9733
- readonly committedFilesOnly?: boolean;
9734
- readonly recommendation?: string;
9735
- readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
9736
- readonly create: (context: RuleContext) => RuleVisitors;
9737
- };
9738
- }, {
9739
- readonly key: "react-doctor/zustand-no-get-during-initialization";
9740
- readonly id: "zustand-no-get-during-initialization";
9741
- readonly source: "react-doctor";
9742
- readonly originallyExternal: false;
9743
- readonly rule: {
9744
- readonly framework: "global";
9745
- readonly category: "Bugs";
9746
- readonly requires: readonly Capability[];
9747
- readonly id: string;
9748
- readonly title?: string;
9749
- readonly severity: RuleSeverity;
9750
- readonly disabledWhen?: ReadonlyArray<Capability>;
9751
- readonly tags?: ReadonlyArray<string>;
9752
- readonly matchByOccurrence?: boolean;
9753
- readonly defaultEnabled?: boolean;
9754
- readonly lifecycle?: "retired";
9755
- readonly scan?: FileScan;
9756
- readonly committedFilesOnly?: boolean;
9757
- readonly recommendation?: string;
9758
- readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
9759
- readonly create: (context: RuleContext) => RuleVisitors;
9760
- };
9761
- }, {
9762
- readonly key: "react-doctor/zustand-no-mutating-state";
9763
- readonly id: "zustand-no-mutating-state";
9764
- readonly source: "react-doctor";
9765
- readonly originallyExternal: false;
9766
- readonly rule: {
9767
- readonly framework: "global";
9768
- readonly category: "Bugs";
9769
- readonly requires: readonly Capability[];
9770
- readonly id: string;
9771
- readonly title?: string;
9772
- readonly severity: RuleSeverity;
9773
- readonly disabledWhen?: ReadonlyArray<Capability>;
9774
- readonly tags?: ReadonlyArray<string>;
9775
- readonly matchByOccurrence?: boolean;
9776
- readonly defaultEnabled?: boolean;
9777
- readonly lifecycle?: "retired";
9778
- readonly scan?: FileScan;
9779
- readonly committedFilesOnly?: boolean;
9780
- readonly recommendation?: string;
9781
- readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
9782
- readonly create: (context: RuleContext) => RuleVisitors;
9783
- };
9784
- }, {
9785
- readonly key: "react-doctor/zustand-no-whole-store-destructure";
9786
- readonly id: "zustand-no-whole-store-destructure";
9787
- readonly source: "react-doctor";
9788
- readonly originallyExternal: false;
9789
- readonly rule: {
9790
- readonly framework: "global";
9791
- readonly category: "Bugs";
9792
- readonly requires: readonly Capability[];
9793
- readonly id: string;
9794
- readonly title?: string;
9795
- readonly severity: RuleSeverity;
9796
- readonly disabledWhen?: ReadonlyArray<Capability>;
9797
- readonly tags?: ReadonlyArray<string>;
9798
- readonly matchByOccurrence?: boolean;
9799
- readonly defaultEnabled?: boolean;
9800
- readonly lifecycle?: "retired";
9801
- readonly scan?: FileScan;
9802
- readonly committedFilesOnly?: boolean;
9803
- readonly recommendation?: string;
9804
- readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
9805
- readonly create: (context: RuleContext) => RuleVisitors;
9806
- };
9807
9646
  }];
9808
9647
  declare const EXTERNAL_RULES: readonly [{
9809
9648
  readonly key: "react-hooks-js/set-state-in-render";
@@ -12423,75 +12262,6 @@ declare const RULES: readonly [{
12423
12262
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
12424
12263
  readonly create: (context: RuleContext) => RuleVisitors;
12425
12264
  };
12426
- }, {
12427
- readonly key: "react-doctor/mobx-no-make-auto-observable-in-inheritance";
12428
- readonly id: "mobx-no-make-auto-observable-in-inheritance";
12429
- readonly source: "react-doctor";
12430
- readonly originallyExternal: false;
12431
- readonly rule: {
12432
- readonly framework: "global";
12433
- readonly category: "Bugs";
12434
- readonly id: string;
12435
- readonly title?: string;
12436
- readonly severity: RuleSeverity;
12437
- readonly requires?: ReadonlyArray<Capability>;
12438
- readonly disabledWhen?: ReadonlyArray<Capability>;
12439
- readonly tags?: ReadonlyArray<string>;
12440
- readonly matchByOccurrence?: boolean;
12441
- readonly defaultEnabled?: boolean;
12442
- readonly lifecycle?: "retired";
12443
- readonly scan?: FileScan;
12444
- readonly committedFilesOnly?: boolean;
12445
- readonly recommendation?: string;
12446
- readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
12447
- readonly create: (context: RuleContext) => RuleVisitors;
12448
- };
12449
- }, {
12450
- readonly key: "react-doctor/mobx-no-observer-wrapped-memo";
12451
- readonly id: "mobx-no-observer-wrapped-memo";
12452
- readonly source: "react-doctor";
12453
- readonly originallyExternal: false;
12454
- readonly rule: {
12455
- readonly framework: "global";
12456
- readonly category: "Bugs";
12457
- readonly id: string;
12458
- readonly title?: string;
12459
- readonly severity: RuleSeverity;
12460
- readonly requires?: ReadonlyArray<Capability>;
12461
- readonly disabledWhen?: ReadonlyArray<Capability>;
12462
- readonly tags?: ReadonlyArray<string>;
12463
- readonly matchByOccurrence?: boolean;
12464
- readonly defaultEnabled?: boolean;
12465
- readonly lifecycle?: "retired";
12466
- readonly scan?: FileScan;
12467
- readonly committedFilesOnly?: boolean;
12468
- readonly recommendation?: string;
12469
- readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
12470
- readonly create: (context: RuleContext) => RuleVisitors;
12471
- };
12472
- }, {
12473
- readonly key: "react-doctor/mobx-reaction-disposer-discarded";
12474
- readonly id: "mobx-reaction-disposer-discarded";
12475
- readonly source: "react-doctor";
12476
- readonly originallyExternal: false;
12477
- readonly rule: {
12478
- readonly framework: "global";
12479
- readonly category: "Bugs";
12480
- readonly id: string;
12481
- readonly title?: string;
12482
- readonly severity: RuleSeverity;
12483
- readonly requires?: ReadonlyArray<Capability>;
12484
- readonly disabledWhen?: ReadonlyArray<Capability>;
12485
- readonly tags?: ReadonlyArray<string>;
12486
- readonly matchByOccurrence?: boolean;
12487
- readonly defaultEnabled?: boolean;
12488
- readonly lifecycle?: "retired";
12489
- readonly scan?: FileScan;
12490
- readonly committedFilesOnly?: boolean;
12491
- readonly recommendation?: string;
12492
- readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
12493
- readonly create: (context: RuleContext) => RuleVisitors;
12494
- };
12495
12265
  }, {
12496
12266
  readonly key: "react-doctor/mouse-events-have-key-events";
12497
12267
  readonly id: "mouse-events-have-key-events";
@@ -19415,98 +19185,6 @@ declare const RULES: readonly [{
19415
19185
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
19416
19186
  readonly create: (context: RuleContext) => RuleVisitors;
19417
19187
  };
19418
- }, {
19419
- readonly key: "react-doctor/zustand-no-fresh-selector-result";
19420
- readonly id: "zustand-no-fresh-selector-result";
19421
- readonly source: "react-doctor";
19422
- readonly originallyExternal: false;
19423
- readonly rule: {
19424
- readonly framework: "global";
19425
- readonly category: "Performance";
19426
- readonly requires: readonly Capability[];
19427
- readonly id: string;
19428
- readonly title?: string;
19429
- readonly severity: RuleSeverity;
19430
- readonly disabledWhen?: ReadonlyArray<Capability>;
19431
- readonly tags?: ReadonlyArray<string>;
19432
- readonly matchByOccurrence?: boolean;
19433
- readonly defaultEnabled?: boolean;
19434
- readonly lifecycle?: "retired";
19435
- readonly scan?: FileScan;
19436
- readonly committedFilesOnly?: boolean;
19437
- readonly recommendation?: string;
19438
- readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
19439
- readonly create: (context: RuleContext) => RuleVisitors;
19440
- };
19441
- }, {
19442
- readonly key: "react-doctor/zustand-no-get-during-initialization";
19443
- readonly id: "zustand-no-get-during-initialization";
19444
- readonly source: "react-doctor";
19445
- readonly originallyExternal: false;
19446
- readonly rule: {
19447
- readonly framework: "global";
19448
- readonly category: "Bugs";
19449
- readonly requires: readonly Capability[];
19450
- readonly id: string;
19451
- readonly title?: string;
19452
- readonly severity: RuleSeverity;
19453
- readonly disabledWhen?: ReadonlyArray<Capability>;
19454
- readonly tags?: ReadonlyArray<string>;
19455
- readonly matchByOccurrence?: boolean;
19456
- readonly defaultEnabled?: boolean;
19457
- readonly lifecycle?: "retired";
19458
- readonly scan?: FileScan;
19459
- readonly committedFilesOnly?: boolean;
19460
- readonly recommendation?: string;
19461
- readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
19462
- readonly create: (context: RuleContext) => RuleVisitors;
19463
- };
19464
- }, {
19465
- readonly key: "react-doctor/zustand-no-mutating-state";
19466
- readonly id: "zustand-no-mutating-state";
19467
- readonly source: "react-doctor";
19468
- readonly originallyExternal: false;
19469
- readonly rule: {
19470
- readonly framework: "global";
19471
- readonly category: "Bugs";
19472
- readonly requires: readonly Capability[];
19473
- readonly id: string;
19474
- readonly title?: string;
19475
- readonly severity: RuleSeverity;
19476
- readonly disabledWhen?: ReadonlyArray<Capability>;
19477
- readonly tags?: ReadonlyArray<string>;
19478
- readonly matchByOccurrence?: boolean;
19479
- readonly defaultEnabled?: boolean;
19480
- readonly lifecycle?: "retired";
19481
- readonly scan?: FileScan;
19482
- readonly committedFilesOnly?: boolean;
19483
- readonly recommendation?: string;
19484
- readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
19485
- readonly create: (context: RuleContext) => RuleVisitors;
19486
- };
19487
- }, {
19488
- readonly key: "react-doctor/zustand-no-whole-store-destructure";
19489
- readonly id: "zustand-no-whole-store-destructure";
19490
- readonly source: "react-doctor";
19491
- readonly originallyExternal: false;
19492
- readonly rule: {
19493
- readonly framework: "global";
19494
- readonly category: "Bugs";
19495
- readonly requires: readonly Capability[];
19496
- readonly id: string;
19497
- readonly title?: string;
19498
- readonly severity: RuleSeverity;
19499
- readonly disabledWhen?: ReadonlyArray<Capability>;
19500
- readonly tags?: ReadonlyArray<string>;
19501
- readonly matchByOccurrence?: boolean;
19502
- readonly defaultEnabled?: boolean;
19503
- readonly lifecycle?: "retired";
19504
- readonly scan?: FileScan;
19505
- readonly committedFilesOnly?: boolean;
19506
- readonly recommendation?: string;
19507
- readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
19508
- readonly create: (context: RuleContext) => RuleVisitors;
19509
- };
19510
19188
  }, {
19511
19189
  readonly key: "react-hooks-js/set-state-in-render";
19512
19190
  readonly source: "react-compiler";