oxlint-plugin-react-doctor 0.8.1-dev.7c9dbed → 0.8.1-dev.7eca0ee

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 +740 -4
  2. package/dist/index.js +2553 -302
  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" | "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}`;
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}`;
104
104
  type CapabilityQuery = (capability: Capability) => boolean;
105
105
  //#endregion
106
106
  //#region src/plugin/utils/file-scan.d.ts
@@ -2720,6 +2720,75 @@ 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
+ };
2723
2792
  }, {
2724
2793
  readonly key: "react-doctor/mouse-events-have-key-events";
2725
2794
  readonly id: "mouse-events-have-key-events";
@@ -7067,6 +7136,213 @@ declare const REACT_DOCTOR_RULES: readonly [{
7067
7136
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
7068
7137
  readonly create: (context: RuleContext) => RuleVisitors;
7069
7138
  };
7139
+ }, {
7140
+ readonly key: "react-doctor/remotion-calculate-metadata-fetch-signal";
7141
+ readonly id: "remotion-calculate-metadata-fetch-signal";
7142
+ readonly source: "react-doctor";
7143
+ readonly originallyExternal: false;
7144
+ readonly rule: {
7145
+ readonly framework: "global";
7146
+ readonly category: "Bugs";
7147
+ readonly id: string;
7148
+ readonly title?: string;
7149
+ readonly severity: RuleSeverity;
7150
+ readonly requires?: ReadonlyArray<Capability>;
7151
+ readonly disabledWhen?: ReadonlyArray<Capability>;
7152
+ readonly tags?: ReadonlyArray<string>;
7153
+ readonly matchByOccurrence?: boolean;
7154
+ readonly defaultEnabled?: boolean;
7155
+ readonly lifecycle?: "retired";
7156
+ readonly scan?: FileScan;
7157
+ readonly committedFilesOnly?: boolean;
7158
+ readonly recommendation?: string;
7159
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
7160
+ readonly create: (context: RuleContext) => RuleVisitors;
7161
+ };
7162
+ }, {
7163
+ readonly key: "react-doctor/remotion-deterministic-randomness";
7164
+ readonly id: "remotion-deterministic-randomness";
7165
+ readonly source: "react-doctor";
7166
+ readonly originallyExternal: false;
7167
+ readonly rule: {
7168
+ readonly framework: "global";
7169
+ readonly category: "Bugs";
7170
+ readonly id: string;
7171
+ readonly title?: string;
7172
+ readonly severity: RuleSeverity;
7173
+ readonly requires?: ReadonlyArray<Capability>;
7174
+ readonly disabledWhen?: ReadonlyArray<Capability>;
7175
+ readonly tags?: ReadonlyArray<string>;
7176
+ readonly matchByOccurrence?: boolean;
7177
+ readonly defaultEnabled?: boolean;
7178
+ readonly lifecycle?: "retired";
7179
+ readonly scan?: FileScan;
7180
+ readonly committedFilesOnly?: boolean;
7181
+ readonly recommendation?: string;
7182
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
7183
+ readonly create: (context: RuleContext) => RuleVisitors;
7184
+ };
7185
+ }, {
7186
+ readonly key: "react-doctor/remotion-no-css-animation";
7187
+ readonly id: "remotion-no-css-animation";
7188
+ readonly source: "react-doctor";
7189
+ readonly originallyExternal: false;
7190
+ readonly rule: {
7191
+ readonly framework: "global";
7192
+ readonly category: "Bugs";
7193
+ readonly id: string;
7194
+ readonly title?: string;
7195
+ readonly severity: RuleSeverity;
7196
+ readonly requires?: ReadonlyArray<Capability>;
7197
+ readonly disabledWhen?: ReadonlyArray<Capability>;
7198
+ readonly tags?: ReadonlyArray<string>;
7199
+ readonly matchByOccurrence?: boolean;
7200
+ readonly defaultEnabled?: boolean;
7201
+ readonly lifecycle?: "retired";
7202
+ readonly scan?: FileScan;
7203
+ readonly committedFilesOnly?: boolean;
7204
+ readonly recommendation?: string;
7205
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
7206
+ readonly create: (context: RuleContext) => RuleVisitors;
7207
+ };
7208
+ }, {
7209
+ readonly key: "react-doctor/remotion-no-css-transition";
7210
+ readonly id: "remotion-no-css-transition";
7211
+ readonly source: "react-doctor";
7212
+ readonly originallyExternal: false;
7213
+ readonly rule: {
7214
+ readonly framework: "global";
7215
+ readonly category: "Bugs";
7216
+ readonly id: string;
7217
+ readonly title?: string;
7218
+ readonly severity: RuleSeverity;
7219
+ readonly requires?: ReadonlyArray<Capability>;
7220
+ readonly disabledWhen?: ReadonlyArray<Capability>;
7221
+ readonly tags?: ReadonlyArray<string>;
7222
+ readonly matchByOccurrence?: boolean;
7223
+ readonly defaultEnabled?: boolean;
7224
+ readonly lifecycle?: "retired";
7225
+ readonly scan?: FileScan;
7226
+ readonly committedFilesOnly?: boolean;
7227
+ readonly recommendation?: string;
7228
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
7229
+ readonly create: (context: RuleContext) => RuleVisitors;
7230
+ };
7231
+ }, {
7232
+ readonly key: "react-doctor/remotion-no-css-url-assets";
7233
+ readonly id: "remotion-no-css-url-assets";
7234
+ readonly source: "react-doctor";
7235
+ readonly originallyExternal: false;
7236
+ readonly rule: {
7237
+ readonly framework: "global";
7238
+ readonly category: "Bugs";
7239
+ readonly id: string;
7240
+ readonly title?: string;
7241
+ readonly severity: RuleSeverity;
7242
+ readonly requires?: ReadonlyArray<Capability>;
7243
+ readonly disabledWhen?: ReadonlyArray<Capability>;
7244
+ readonly tags?: ReadonlyArray<string>;
7245
+ readonly matchByOccurrence?: boolean;
7246
+ readonly defaultEnabled?: boolean;
7247
+ readonly lifecycle?: "retired";
7248
+ readonly scan?: FileScan;
7249
+ readonly committedFilesOnly?: boolean;
7250
+ readonly recommendation?: string;
7251
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
7252
+ readonly create: (context: RuleContext) => RuleVisitors;
7253
+ };
7254
+ }, {
7255
+ readonly key: "react-doctor/remotion-no-module-scope-delay-render";
7256
+ readonly id: "remotion-no-module-scope-delay-render";
7257
+ readonly source: "react-doctor";
7258
+ readonly originallyExternal: false;
7259
+ readonly rule: {
7260
+ readonly framework: "global";
7261
+ readonly category: "Bugs";
7262
+ readonly id: string;
7263
+ readonly title?: string;
7264
+ readonly severity: RuleSeverity;
7265
+ readonly requires?: ReadonlyArray<Capability>;
7266
+ readonly disabledWhen?: ReadonlyArray<Capability>;
7267
+ readonly tags?: ReadonlyArray<string>;
7268
+ readonly matchByOccurrence?: boolean;
7269
+ readonly defaultEnabled?: boolean;
7270
+ readonly lifecycle?: "retired";
7271
+ readonly scan?: FileScan;
7272
+ readonly committedFilesOnly?: boolean;
7273
+ readonly recommendation?: string;
7274
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
7275
+ readonly create: (context: RuleContext) => RuleVisitors;
7276
+ };
7277
+ }, {
7278
+ readonly key: "react-doctor/remotion-no-native-media-elements";
7279
+ readonly id: "remotion-no-native-media-elements";
7280
+ readonly source: "react-doctor";
7281
+ readonly originallyExternal: false;
7282
+ readonly rule: {
7283
+ readonly framework: "global";
7284
+ readonly category: "Bugs";
7285
+ readonly id: string;
7286
+ readonly title?: string;
7287
+ readonly severity: RuleSeverity;
7288
+ readonly requires?: ReadonlyArray<Capability>;
7289
+ readonly disabledWhen?: ReadonlyArray<Capability>;
7290
+ readonly tags?: ReadonlyArray<string>;
7291
+ readonly matchByOccurrence?: boolean;
7292
+ readonly defaultEnabled?: boolean;
7293
+ readonly lifecycle?: "retired";
7294
+ readonly scan?: FileScan;
7295
+ readonly committedFilesOnly?: boolean;
7296
+ readonly recommendation?: string;
7297
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
7298
+ readonly create: (context: RuleContext) => RuleVisitors;
7299
+ };
7300
+ }, {
7301
+ readonly key: "react-doctor/remotion-no-next-image";
7302
+ readonly id: "remotion-no-next-image";
7303
+ readonly source: "react-doctor";
7304
+ readonly originallyExternal: false;
7305
+ readonly rule: {
7306
+ readonly framework: "global";
7307
+ readonly category: "Bugs";
7308
+ readonly id: string;
7309
+ readonly title?: string;
7310
+ readonly severity: RuleSeverity;
7311
+ readonly requires?: ReadonlyArray<Capability>;
7312
+ readonly disabledWhen?: ReadonlyArray<Capability>;
7313
+ readonly tags?: ReadonlyArray<string>;
7314
+ readonly matchByOccurrence?: boolean;
7315
+ readonly defaultEnabled?: boolean;
7316
+ readonly lifecycle?: "retired";
7317
+ readonly scan?: FileScan;
7318
+ readonly committedFilesOnly?: boolean;
7319
+ readonly recommendation?: string;
7320
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
7321
+ readonly create: (context: RuleContext) => RuleVisitors;
7322
+ };
7323
+ }, {
7324
+ readonly key: "react-doctor/remotion-stable-delay-render-handle";
7325
+ readonly id: "remotion-stable-delay-render-handle";
7326
+ readonly source: "react-doctor";
7327
+ readonly originallyExternal: false;
7328
+ readonly rule: {
7329
+ readonly framework: "global";
7330
+ readonly category: "Bugs";
7331
+ readonly id: string;
7332
+ readonly title?: string;
7333
+ readonly severity: RuleSeverity;
7334
+ readonly requires?: ReadonlyArray<Capability>;
7335
+ readonly disabledWhen?: ReadonlyArray<Capability>;
7336
+ readonly tags?: ReadonlyArray<string>;
7337
+ readonly matchByOccurrence?: boolean;
7338
+ readonly defaultEnabled?: boolean;
7339
+ readonly lifecycle?: "retired";
7340
+ readonly scan?: FileScan;
7341
+ readonly committedFilesOnly?: boolean;
7342
+ readonly recommendation?: string;
7343
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
7344
+ readonly create: (context: RuleContext) => RuleVisitors;
7345
+ };
7070
7346
  }, {
7071
7347
  readonly key: "react-doctor/rendering-animate-svg-wrapper";
7072
7348
  readonly id: "rendering-animate-svg-wrapper";
@@ -9253,10 +9529,56 @@ declare const REACT_DOCTOR_RULES: readonly [{
9253
9529
  readonly create: (context: RuleContext) => RuleVisitors;
9254
9530
  };
9255
9531
  }, {
9256
- readonly key: "react-doctor/void-dom-elements-no-children";
9257
- readonly id: "void-dom-elements-no-children";
9532
+ readonly key: "react-doctor/valtio-no-proxy-read-in-render";
9533
+ readonly id: "valtio-no-proxy-read-in-render";
9258
9534
  readonly source: "react-doctor";
9259
- readonly originallyExternal: true;
9535
+ readonly originallyExternal: false;
9536
+ readonly rule: {
9537
+ readonly framework: "global";
9538
+ readonly category: "Bugs";
9539
+ readonly requires: readonly Capability[];
9540
+ readonly id: string;
9541
+ readonly title?: string;
9542
+ readonly severity: RuleSeverity;
9543
+ readonly disabledWhen?: ReadonlyArray<Capability>;
9544
+ readonly tags?: ReadonlyArray<string>;
9545
+ readonly matchByOccurrence?: boolean;
9546
+ readonly defaultEnabled?: boolean;
9547
+ readonly lifecycle?: "retired";
9548
+ readonly scan?: FileScan;
9549
+ readonly committedFilesOnly?: boolean;
9550
+ readonly recommendation?: string;
9551
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
9552
+ readonly create: (context: RuleContext) => RuleVisitors;
9553
+ };
9554
+ }, {
9555
+ readonly key: "react-doctor/valtio-no-snapshot-in-callback";
9556
+ readonly id: "valtio-no-snapshot-in-callback";
9557
+ readonly source: "react-doctor";
9558
+ readonly originallyExternal: false;
9559
+ readonly rule: {
9560
+ readonly framework: "global";
9561
+ readonly category: "Bugs";
9562
+ readonly requires: readonly Capability[];
9563
+ readonly id: string;
9564
+ readonly title?: string;
9565
+ readonly severity: RuleSeverity;
9566
+ readonly disabledWhen?: ReadonlyArray<Capability>;
9567
+ readonly tags?: ReadonlyArray<string>;
9568
+ readonly matchByOccurrence?: boolean;
9569
+ readonly defaultEnabled?: boolean;
9570
+ readonly lifecycle?: "retired";
9571
+ readonly scan?: FileScan;
9572
+ readonly committedFilesOnly?: boolean;
9573
+ readonly recommendation?: string;
9574
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
9575
+ readonly create: (context: RuleContext) => RuleVisitors;
9576
+ };
9577
+ }, {
9578
+ readonly key: "react-doctor/void-dom-elements-no-children";
9579
+ readonly id: "void-dom-elements-no-children";
9580
+ readonly source: "react-doctor";
9581
+ readonly originallyExternal: true;
9260
9582
  readonly rule: {
9261
9583
  readonly framework: "global";
9262
9584
  readonly category: "Bugs";
@@ -9390,6 +9712,52 @@ declare const REACT_DOCTOR_RULES: readonly [{
9390
9712
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
9391
9713
  readonly create: (context: RuleContext) => RuleVisitors;
9392
9714
  };
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-whole-store-destructure";
9740
+ readonly id: "zustand-no-whole-store-destructure";
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
+ };
9393
9761
  }];
9394
9762
  declare const EXTERNAL_RULES: readonly [{
9395
9763
  readonly key: "react-hooks-js/set-state-in-render";
@@ -12009,6 +12377,75 @@ declare const RULES: readonly [{
12009
12377
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
12010
12378
  readonly create: (context: RuleContext) => RuleVisitors;
12011
12379
  };
12380
+ }, {
12381
+ readonly key: "react-doctor/mobx-no-make-auto-observable-in-inheritance";
12382
+ readonly id: "mobx-no-make-auto-observable-in-inheritance";
12383
+ readonly source: "react-doctor";
12384
+ readonly originallyExternal: false;
12385
+ readonly rule: {
12386
+ readonly framework: "global";
12387
+ readonly category: "Bugs";
12388
+ readonly id: string;
12389
+ readonly title?: string;
12390
+ readonly severity: RuleSeverity;
12391
+ readonly requires?: ReadonlyArray<Capability>;
12392
+ readonly disabledWhen?: ReadonlyArray<Capability>;
12393
+ readonly tags?: ReadonlyArray<string>;
12394
+ readonly matchByOccurrence?: boolean;
12395
+ readonly defaultEnabled?: boolean;
12396
+ readonly lifecycle?: "retired";
12397
+ readonly scan?: FileScan;
12398
+ readonly committedFilesOnly?: boolean;
12399
+ readonly recommendation?: string;
12400
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
12401
+ readonly create: (context: RuleContext) => RuleVisitors;
12402
+ };
12403
+ }, {
12404
+ readonly key: "react-doctor/mobx-no-observer-wrapped-memo";
12405
+ readonly id: "mobx-no-observer-wrapped-memo";
12406
+ readonly source: "react-doctor";
12407
+ readonly originallyExternal: false;
12408
+ readonly rule: {
12409
+ readonly framework: "global";
12410
+ readonly category: "Bugs";
12411
+ readonly id: string;
12412
+ readonly title?: string;
12413
+ readonly severity: RuleSeverity;
12414
+ readonly requires?: ReadonlyArray<Capability>;
12415
+ readonly disabledWhen?: ReadonlyArray<Capability>;
12416
+ readonly tags?: ReadonlyArray<string>;
12417
+ readonly matchByOccurrence?: boolean;
12418
+ readonly defaultEnabled?: boolean;
12419
+ readonly lifecycle?: "retired";
12420
+ readonly scan?: FileScan;
12421
+ readonly committedFilesOnly?: boolean;
12422
+ readonly recommendation?: string;
12423
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
12424
+ readonly create: (context: RuleContext) => RuleVisitors;
12425
+ };
12426
+ }, {
12427
+ readonly key: "react-doctor/mobx-reaction-disposer-discarded";
12428
+ readonly id: "mobx-reaction-disposer-discarded";
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
+ };
12012
12449
  }, {
12013
12450
  readonly key: "react-doctor/mouse-events-have-key-events";
12014
12451
  readonly id: "mouse-events-have-key-events";
@@ -16356,6 +16793,213 @@ declare const RULES: readonly [{
16356
16793
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
16357
16794
  readonly create: (context: RuleContext) => RuleVisitors;
16358
16795
  };
16796
+ }, {
16797
+ readonly key: "react-doctor/remotion-calculate-metadata-fetch-signal";
16798
+ readonly id: "remotion-calculate-metadata-fetch-signal";
16799
+ readonly source: "react-doctor";
16800
+ readonly originallyExternal: false;
16801
+ readonly rule: {
16802
+ readonly framework: "global";
16803
+ readonly category: "Bugs";
16804
+ readonly id: string;
16805
+ readonly title?: string;
16806
+ readonly severity: RuleSeverity;
16807
+ readonly requires?: ReadonlyArray<Capability>;
16808
+ readonly disabledWhen?: ReadonlyArray<Capability>;
16809
+ readonly tags?: ReadonlyArray<string>;
16810
+ readonly matchByOccurrence?: boolean;
16811
+ readonly defaultEnabled?: boolean;
16812
+ readonly lifecycle?: "retired";
16813
+ readonly scan?: FileScan;
16814
+ readonly committedFilesOnly?: boolean;
16815
+ readonly recommendation?: string;
16816
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
16817
+ readonly create: (context: RuleContext) => RuleVisitors;
16818
+ };
16819
+ }, {
16820
+ readonly key: "react-doctor/remotion-deterministic-randomness";
16821
+ readonly id: "remotion-deterministic-randomness";
16822
+ readonly source: "react-doctor";
16823
+ readonly originallyExternal: false;
16824
+ readonly rule: {
16825
+ readonly framework: "global";
16826
+ readonly category: "Bugs";
16827
+ readonly id: string;
16828
+ readonly title?: string;
16829
+ readonly severity: RuleSeverity;
16830
+ readonly requires?: ReadonlyArray<Capability>;
16831
+ readonly disabledWhen?: ReadonlyArray<Capability>;
16832
+ readonly tags?: ReadonlyArray<string>;
16833
+ readonly matchByOccurrence?: boolean;
16834
+ readonly defaultEnabled?: boolean;
16835
+ readonly lifecycle?: "retired";
16836
+ readonly scan?: FileScan;
16837
+ readonly committedFilesOnly?: boolean;
16838
+ readonly recommendation?: string;
16839
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
16840
+ readonly create: (context: RuleContext) => RuleVisitors;
16841
+ };
16842
+ }, {
16843
+ readonly key: "react-doctor/remotion-no-css-animation";
16844
+ readonly id: "remotion-no-css-animation";
16845
+ readonly source: "react-doctor";
16846
+ readonly originallyExternal: false;
16847
+ readonly rule: {
16848
+ readonly framework: "global";
16849
+ readonly category: "Bugs";
16850
+ readonly id: string;
16851
+ readonly title?: string;
16852
+ readonly severity: RuleSeverity;
16853
+ readonly requires?: ReadonlyArray<Capability>;
16854
+ readonly disabledWhen?: ReadonlyArray<Capability>;
16855
+ readonly tags?: ReadonlyArray<string>;
16856
+ readonly matchByOccurrence?: boolean;
16857
+ readonly defaultEnabled?: boolean;
16858
+ readonly lifecycle?: "retired";
16859
+ readonly scan?: FileScan;
16860
+ readonly committedFilesOnly?: boolean;
16861
+ readonly recommendation?: string;
16862
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
16863
+ readonly create: (context: RuleContext) => RuleVisitors;
16864
+ };
16865
+ }, {
16866
+ readonly key: "react-doctor/remotion-no-css-transition";
16867
+ readonly id: "remotion-no-css-transition";
16868
+ readonly source: "react-doctor";
16869
+ readonly originallyExternal: false;
16870
+ readonly rule: {
16871
+ readonly framework: "global";
16872
+ readonly category: "Bugs";
16873
+ readonly id: string;
16874
+ readonly title?: string;
16875
+ readonly severity: RuleSeverity;
16876
+ readonly requires?: ReadonlyArray<Capability>;
16877
+ readonly disabledWhen?: ReadonlyArray<Capability>;
16878
+ readonly tags?: ReadonlyArray<string>;
16879
+ readonly matchByOccurrence?: boolean;
16880
+ readonly defaultEnabled?: boolean;
16881
+ readonly lifecycle?: "retired";
16882
+ readonly scan?: FileScan;
16883
+ readonly committedFilesOnly?: boolean;
16884
+ readonly recommendation?: string;
16885
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
16886
+ readonly create: (context: RuleContext) => RuleVisitors;
16887
+ };
16888
+ }, {
16889
+ readonly key: "react-doctor/remotion-no-css-url-assets";
16890
+ readonly id: "remotion-no-css-url-assets";
16891
+ readonly source: "react-doctor";
16892
+ readonly originallyExternal: false;
16893
+ readonly rule: {
16894
+ readonly framework: "global";
16895
+ readonly category: "Bugs";
16896
+ readonly id: string;
16897
+ readonly title?: string;
16898
+ readonly severity: RuleSeverity;
16899
+ readonly requires?: ReadonlyArray<Capability>;
16900
+ readonly disabledWhen?: ReadonlyArray<Capability>;
16901
+ readonly tags?: ReadonlyArray<string>;
16902
+ readonly matchByOccurrence?: boolean;
16903
+ readonly defaultEnabled?: boolean;
16904
+ readonly lifecycle?: "retired";
16905
+ readonly scan?: FileScan;
16906
+ readonly committedFilesOnly?: boolean;
16907
+ readonly recommendation?: string;
16908
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
16909
+ readonly create: (context: RuleContext) => RuleVisitors;
16910
+ };
16911
+ }, {
16912
+ readonly key: "react-doctor/remotion-no-module-scope-delay-render";
16913
+ readonly id: "remotion-no-module-scope-delay-render";
16914
+ readonly source: "react-doctor";
16915
+ readonly originallyExternal: false;
16916
+ readonly rule: {
16917
+ readonly framework: "global";
16918
+ readonly category: "Bugs";
16919
+ readonly id: string;
16920
+ readonly title?: string;
16921
+ readonly severity: RuleSeverity;
16922
+ readonly requires?: ReadonlyArray<Capability>;
16923
+ readonly disabledWhen?: ReadonlyArray<Capability>;
16924
+ readonly tags?: ReadonlyArray<string>;
16925
+ readonly matchByOccurrence?: boolean;
16926
+ readonly defaultEnabled?: boolean;
16927
+ readonly lifecycle?: "retired";
16928
+ readonly scan?: FileScan;
16929
+ readonly committedFilesOnly?: boolean;
16930
+ readonly recommendation?: string;
16931
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
16932
+ readonly create: (context: RuleContext) => RuleVisitors;
16933
+ };
16934
+ }, {
16935
+ readonly key: "react-doctor/remotion-no-native-media-elements";
16936
+ readonly id: "remotion-no-native-media-elements";
16937
+ readonly source: "react-doctor";
16938
+ readonly originallyExternal: false;
16939
+ readonly rule: {
16940
+ readonly framework: "global";
16941
+ readonly category: "Bugs";
16942
+ readonly id: string;
16943
+ readonly title?: string;
16944
+ readonly severity: RuleSeverity;
16945
+ readonly requires?: ReadonlyArray<Capability>;
16946
+ readonly disabledWhen?: ReadonlyArray<Capability>;
16947
+ readonly tags?: ReadonlyArray<string>;
16948
+ readonly matchByOccurrence?: boolean;
16949
+ readonly defaultEnabled?: boolean;
16950
+ readonly lifecycle?: "retired";
16951
+ readonly scan?: FileScan;
16952
+ readonly committedFilesOnly?: boolean;
16953
+ readonly recommendation?: string;
16954
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
16955
+ readonly create: (context: RuleContext) => RuleVisitors;
16956
+ };
16957
+ }, {
16958
+ readonly key: "react-doctor/remotion-no-next-image";
16959
+ readonly id: "remotion-no-next-image";
16960
+ readonly source: "react-doctor";
16961
+ readonly originallyExternal: false;
16962
+ readonly rule: {
16963
+ readonly framework: "global";
16964
+ readonly category: "Bugs";
16965
+ readonly id: string;
16966
+ readonly title?: string;
16967
+ readonly severity: RuleSeverity;
16968
+ readonly requires?: ReadonlyArray<Capability>;
16969
+ readonly disabledWhen?: ReadonlyArray<Capability>;
16970
+ readonly tags?: ReadonlyArray<string>;
16971
+ readonly matchByOccurrence?: boolean;
16972
+ readonly defaultEnabled?: boolean;
16973
+ readonly lifecycle?: "retired";
16974
+ readonly scan?: FileScan;
16975
+ readonly committedFilesOnly?: boolean;
16976
+ readonly recommendation?: string;
16977
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
16978
+ readonly create: (context: RuleContext) => RuleVisitors;
16979
+ };
16980
+ }, {
16981
+ readonly key: "react-doctor/remotion-stable-delay-render-handle";
16982
+ readonly id: "remotion-stable-delay-render-handle";
16983
+ readonly source: "react-doctor";
16984
+ readonly originallyExternal: false;
16985
+ readonly rule: {
16986
+ readonly framework: "global";
16987
+ readonly category: "Bugs";
16988
+ readonly id: string;
16989
+ readonly title?: string;
16990
+ readonly severity: RuleSeverity;
16991
+ readonly requires?: ReadonlyArray<Capability>;
16992
+ readonly disabledWhen?: ReadonlyArray<Capability>;
16993
+ readonly tags?: ReadonlyArray<string>;
16994
+ readonly matchByOccurrence?: boolean;
16995
+ readonly defaultEnabled?: boolean;
16996
+ readonly lifecycle?: "retired";
16997
+ readonly scan?: FileScan;
16998
+ readonly committedFilesOnly?: boolean;
16999
+ readonly recommendation?: string;
17000
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
17001
+ readonly create: (context: RuleContext) => RuleVisitors;
17002
+ };
16359
17003
  }, {
16360
17004
  readonly key: "react-doctor/rendering-animate-svg-wrapper";
16361
17005
  readonly id: "rendering-animate-svg-wrapper";
@@ -18541,6 +19185,52 @@ declare const RULES: readonly [{
18541
19185
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
18542
19186
  readonly create: (context: RuleContext) => RuleVisitors;
18543
19187
  };
19188
+ }, {
19189
+ readonly key: "react-doctor/valtio-no-proxy-read-in-render";
19190
+ readonly id: "valtio-no-proxy-read-in-render";
19191
+ readonly source: "react-doctor";
19192
+ readonly originallyExternal: false;
19193
+ readonly rule: {
19194
+ readonly framework: "global";
19195
+ readonly category: "Bugs";
19196
+ readonly requires: readonly Capability[];
19197
+ readonly id: string;
19198
+ readonly title?: string;
19199
+ readonly severity: RuleSeverity;
19200
+ readonly disabledWhen?: ReadonlyArray<Capability>;
19201
+ readonly tags?: ReadonlyArray<string>;
19202
+ readonly matchByOccurrence?: boolean;
19203
+ readonly defaultEnabled?: boolean;
19204
+ readonly lifecycle?: "retired";
19205
+ readonly scan?: FileScan;
19206
+ readonly committedFilesOnly?: boolean;
19207
+ readonly recommendation?: string;
19208
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
19209
+ readonly create: (context: RuleContext) => RuleVisitors;
19210
+ };
19211
+ }, {
19212
+ readonly key: "react-doctor/valtio-no-snapshot-in-callback";
19213
+ readonly id: "valtio-no-snapshot-in-callback";
19214
+ readonly source: "react-doctor";
19215
+ readonly originallyExternal: false;
19216
+ readonly rule: {
19217
+ readonly framework: "global";
19218
+ readonly category: "Bugs";
19219
+ readonly requires: readonly Capability[];
19220
+ readonly id: string;
19221
+ readonly title?: string;
19222
+ readonly severity: RuleSeverity;
19223
+ readonly disabledWhen?: ReadonlyArray<Capability>;
19224
+ readonly tags?: ReadonlyArray<string>;
19225
+ readonly matchByOccurrence?: boolean;
19226
+ readonly defaultEnabled?: boolean;
19227
+ readonly lifecycle?: "retired";
19228
+ readonly scan?: FileScan;
19229
+ readonly committedFilesOnly?: boolean;
19230
+ readonly recommendation?: string;
19231
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
19232
+ readonly create: (context: RuleContext) => RuleVisitors;
19233
+ };
18544
19234
  }, {
18545
19235
  readonly key: "react-doctor/void-dom-elements-no-children";
18546
19236
  readonly id: "void-dom-elements-no-children";
@@ -18679,6 +19369,52 @@ declare const RULES: readonly [{
18679
19369
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
18680
19370
  readonly create: (context: RuleContext) => RuleVisitors;
18681
19371
  };
19372
+ }, {
19373
+ readonly key: "react-doctor/zustand-no-fresh-selector-result";
19374
+ readonly id: "zustand-no-fresh-selector-result";
19375
+ readonly source: "react-doctor";
19376
+ readonly originallyExternal: false;
19377
+ readonly rule: {
19378
+ readonly framework: "global";
19379
+ readonly category: "Performance";
19380
+ readonly requires: readonly Capability[];
19381
+ readonly id: string;
19382
+ readonly title?: string;
19383
+ readonly severity: RuleSeverity;
19384
+ readonly disabledWhen?: ReadonlyArray<Capability>;
19385
+ readonly tags?: ReadonlyArray<string>;
19386
+ readonly matchByOccurrence?: boolean;
19387
+ readonly defaultEnabled?: boolean;
19388
+ readonly lifecycle?: "retired";
19389
+ readonly scan?: FileScan;
19390
+ readonly committedFilesOnly?: boolean;
19391
+ readonly recommendation?: string;
19392
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
19393
+ readonly create: (context: RuleContext) => RuleVisitors;
19394
+ };
19395
+ }, {
19396
+ readonly key: "react-doctor/zustand-no-whole-store-destructure";
19397
+ readonly id: "zustand-no-whole-store-destructure";
19398
+ readonly source: "react-doctor";
19399
+ readonly originallyExternal: false;
19400
+ readonly rule: {
19401
+ readonly framework: "global";
19402
+ readonly category: "Bugs";
19403
+ readonly requires: readonly Capability[];
19404
+ readonly id: string;
19405
+ readonly title?: string;
19406
+ readonly severity: RuleSeverity;
19407
+ readonly disabledWhen?: ReadonlyArray<Capability>;
19408
+ readonly tags?: ReadonlyArray<string>;
19409
+ readonly matchByOccurrence?: boolean;
19410
+ readonly defaultEnabled?: boolean;
19411
+ readonly lifecycle?: "retired";
19412
+ readonly scan?: FileScan;
19413
+ readonly committedFilesOnly?: boolean;
19414
+ readonly recommendation?: string;
19415
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
19416
+ readonly create: (context: RuleContext) => RuleVisitors;
19417
+ };
18682
19418
  }, {
18683
19419
  readonly key: "react-hooks-js/set-state-in-render";
18684
19420
  readonly source: "react-compiler";