oxlint-plugin-react-doctor 0.8.1-dev.88114a2 → 0.8.1-dev.8e5ae45

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 +693 -3
  2. package/dist/index.js +2493 -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";
@@ -9252,6 +9528,52 @@ declare const REACT_DOCTOR_RULES: readonly [{
9252
9528
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
9253
9529
  readonly create: (context: RuleContext) => RuleVisitors;
9254
9530
  };
9531
+ }, {
9532
+ readonly key: "react-doctor/valtio-no-proxy-read-in-render";
9533
+ readonly id: "valtio-no-proxy-read-in-render";
9534
+ readonly source: "react-doctor";
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
+ };
9255
9577
  }, {
9256
9578
  readonly key: "react-doctor/void-dom-elements-no-children";
9257
9579
  readonly id: "void-dom-elements-no-children";
@@ -9390,6 +9712,29 @@ 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
+ };
9393
9738
  }];
9394
9739
  declare const EXTERNAL_RULES: readonly [{
9395
9740
  readonly key: "react-hooks-js/set-state-in-render";
@@ -11993,11 +12338,80 @@ declare const RULES: readonly [{
11993
12338
  readonly originallyExternal: true;
11994
12339
  readonly rule: {
11995
12340
  readonly framework: "global";
11996
- readonly category: "Accessibility";
11997
- readonly requires: readonly Capability[];
12341
+ readonly category: "Accessibility";
12342
+ readonly requires: readonly Capability[];
12343
+ readonly id: string;
12344
+ readonly title?: string;
12345
+ readonly severity: RuleSeverity;
12346
+ readonly disabledWhen?: ReadonlyArray<Capability>;
12347
+ readonly tags?: ReadonlyArray<string>;
12348
+ readonly matchByOccurrence?: boolean;
12349
+ readonly defaultEnabled?: boolean;
12350
+ readonly lifecycle?: "retired";
12351
+ readonly scan?: FileScan;
12352
+ readonly committedFilesOnly?: boolean;
12353
+ readonly recommendation?: string;
12354
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
12355
+ readonly create: (context: RuleContext) => RuleVisitors;
12356
+ };
12357
+ }, {
12358
+ readonly key: "react-doctor/mobx-no-make-auto-observable-in-inheritance";
12359
+ readonly id: "mobx-no-make-auto-observable-in-inheritance";
12360
+ readonly source: "react-doctor";
12361
+ readonly originallyExternal: false;
12362
+ readonly rule: {
12363
+ readonly framework: "global";
12364
+ readonly category: "Bugs";
12365
+ readonly id: string;
12366
+ readonly title?: string;
12367
+ readonly severity: RuleSeverity;
12368
+ readonly requires?: ReadonlyArray<Capability>;
12369
+ readonly disabledWhen?: ReadonlyArray<Capability>;
12370
+ readonly tags?: ReadonlyArray<string>;
12371
+ readonly matchByOccurrence?: boolean;
12372
+ readonly defaultEnabled?: boolean;
12373
+ readonly lifecycle?: "retired";
12374
+ readonly scan?: FileScan;
12375
+ readonly committedFilesOnly?: boolean;
12376
+ readonly recommendation?: string;
12377
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
12378
+ readonly create: (context: RuleContext) => RuleVisitors;
12379
+ };
12380
+ }, {
12381
+ readonly key: "react-doctor/mobx-no-observer-wrapped-memo";
12382
+ readonly id: "mobx-no-observer-wrapped-memo";
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-reaction-disposer-discarded";
12405
+ readonly id: "mobx-reaction-disposer-discarded";
12406
+ readonly source: "react-doctor";
12407
+ readonly originallyExternal: false;
12408
+ readonly rule: {
12409
+ readonly framework: "global";
12410
+ readonly category: "Bugs";
11998
12411
  readonly id: string;
11999
12412
  readonly title?: string;
12000
12413
  readonly severity: RuleSeverity;
12414
+ readonly requires?: ReadonlyArray<Capability>;
12001
12415
  readonly disabledWhen?: ReadonlyArray<Capability>;
12002
12416
  readonly tags?: ReadonlyArray<string>;
12003
12417
  readonly matchByOccurrence?: boolean;
@@ -16356,6 +16770,213 @@ declare const RULES: readonly [{
16356
16770
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
16357
16771
  readonly create: (context: RuleContext) => RuleVisitors;
16358
16772
  };
16773
+ }, {
16774
+ readonly key: "react-doctor/remotion-calculate-metadata-fetch-signal";
16775
+ readonly id: "remotion-calculate-metadata-fetch-signal";
16776
+ readonly source: "react-doctor";
16777
+ readonly originallyExternal: false;
16778
+ readonly rule: {
16779
+ readonly framework: "global";
16780
+ readonly category: "Bugs";
16781
+ readonly id: string;
16782
+ readonly title?: string;
16783
+ readonly severity: RuleSeverity;
16784
+ readonly requires?: ReadonlyArray<Capability>;
16785
+ readonly disabledWhen?: ReadonlyArray<Capability>;
16786
+ readonly tags?: ReadonlyArray<string>;
16787
+ readonly matchByOccurrence?: boolean;
16788
+ readonly defaultEnabled?: boolean;
16789
+ readonly lifecycle?: "retired";
16790
+ readonly scan?: FileScan;
16791
+ readonly committedFilesOnly?: boolean;
16792
+ readonly recommendation?: string;
16793
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
16794
+ readonly create: (context: RuleContext) => RuleVisitors;
16795
+ };
16796
+ }, {
16797
+ readonly key: "react-doctor/remotion-deterministic-randomness";
16798
+ readonly id: "remotion-deterministic-randomness";
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-no-css-animation";
16821
+ readonly id: "remotion-no-css-animation";
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-transition";
16844
+ readonly id: "remotion-no-css-transition";
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-url-assets";
16867
+ readonly id: "remotion-no-css-url-assets";
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-module-scope-delay-render";
16890
+ readonly id: "remotion-no-module-scope-delay-render";
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-native-media-elements";
16913
+ readonly id: "remotion-no-native-media-elements";
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-next-image";
16936
+ readonly id: "remotion-no-next-image";
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-stable-delay-render-handle";
16959
+ readonly id: "remotion-stable-delay-render-handle";
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
+ };
16359
16980
  }, {
16360
16981
  readonly key: "react-doctor/rendering-animate-svg-wrapper";
16361
16982
  readonly id: "rendering-animate-svg-wrapper";
@@ -18541,6 +19162,52 @@ declare const RULES: readonly [{
18541
19162
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
18542
19163
  readonly create: (context: RuleContext) => RuleVisitors;
18543
19164
  };
19165
+ }, {
19166
+ readonly key: "react-doctor/valtio-no-proxy-read-in-render";
19167
+ readonly id: "valtio-no-proxy-read-in-render";
19168
+ readonly source: "react-doctor";
19169
+ readonly originallyExternal: false;
19170
+ readonly rule: {
19171
+ readonly framework: "global";
19172
+ readonly category: "Bugs";
19173
+ readonly requires: readonly Capability[];
19174
+ readonly id: string;
19175
+ readonly title?: string;
19176
+ readonly severity: RuleSeverity;
19177
+ readonly disabledWhen?: ReadonlyArray<Capability>;
19178
+ readonly tags?: ReadonlyArray<string>;
19179
+ readonly matchByOccurrence?: boolean;
19180
+ readonly defaultEnabled?: boolean;
19181
+ readonly lifecycle?: "retired";
19182
+ readonly scan?: FileScan;
19183
+ readonly committedFilesOnly?: boolean;
19184
+ readonly recommendation?: string;
19185
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
19186
+ readonly create: (context: RuleContext) => RuleVisitors;
19187
+ };
19188
+ }, {
19189
+ readonly key: "react-doctor/valtio-no-snapshot-in-callback";
19190
+ readonly id: "valtio-no-snapshot-in-callback";
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
+ };
18544
19211
  }, {
18545
19212
  readonly key: "react-doctor/void-dom-elements-no-children";
18546
19213
  readonly id: "void-dom-elements-no-children";
@@ -18679,6 +19346,29 @@ declare const RULES: readonly [{
18679
19346
  readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
18680
19347
  readonly create: (context: RuleContext) => RuleVisitors;
18681
19348
  };
19349
+ }, {
19350
+ readonly key: "react-doctor/zustand-no-fresh-selector-result";
19351
+ readonly id: "zustand-no-fresh-selector-result";
19352
+ readonly source: "react-doctor";
19353
+ readonly originallyExternal: false;
19354
+ readonly rule: {
19355
+ readonly framework: "global";
19356
+ readonly category: "Performance";
19357
+ readonly requires: readonly Capability[];
19358
+ readonly id: string;
19359
+ readonly title?: string;
19360
+ readonly severity: RuleSeverity;
19361
+ readonly disabledWhen?: ReadonlyArray<Capability>;
19362
+ readonly tags?: ReadonlyArray<string>;
19363
+ readonly matchByOccurrence?: boolean;
19364
+ readonly defaultEnabled?: boolean;
19365
+ readonly lifecycle?: "retired";
19366
+ readonly scan?: FileScan;
19367
+ readonly committedFilesOnly?: boolean;
19368
+ readonly recommendation?: string;
19369
+ readonly recommendationFor?: (hasCapability: CapabilityQuery) => string | undefined;
19370
+ readonly create: (context: RuleContext) => RuleVisitors;
19371
+ };
18682
19372
  }, {
18683
19373
  readonly key: "react-hooks-js/set-state-in-render";
18684
19374
  readonly source: "react-compiler";