oxlint-plugin-react-doctor 0.4.0 → 0.4.1-dev.7d4b996

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 +380 -0
  2. package/dist/index.js +1447 -657
  3. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -1829,6 +1829,44 @@ declare const REACT_DOCTOR_RULES: readonly [{
1829
1829
  readonly recommendation?: string;
1830
1830
  readonly create: (context: RuleContext) => RuleVisitors;
1831
1831
  };
1832
+ }, {
1833
+ readonly key: "react-doctor/nextjs-error-boundary-missing-use-client";
1834
+ readonly id: "nextjs-error-boundary-missing-use-client";
1835
+ readonly source: "react-doctor";
1836
+ readonly originallyExternal: false;
1837
+ readonly rule: {
1838
+ readonly framework: "nextjs";
1839
+ readonly category: "Bugs";
1840
+ readonly id: string;
1841
+ readonly title?: string;
1842
+ readonly severity: RuleSeverity;
1843
+ readonly requires?: ReadonlyArray<string>;
1844
+ readonly disabledBy?: ReadonlyArray<string>;
1845
+ readonly tags?: ReadonlyArray<string>;
1846
+ readonly defaultEnabled?: boolean;
1847
+ readonly lifecycle?: "retired";
1848
+ readonly recommendation?: string;
1849
+ readonly create: (context: RuleContext) => RuleVisitors;
1850
+ };
1851
+ }, {
1852
+ readonly key: "react-doctor/nextjs-global-error-missing-html-body";
1853
+ readonly id: "nextjs-global-error-missing-html-body";
1854
+ readonly source: "react-doctor";
1855
+ readonly originallyExternal: false;
1856
+ readonly rule: {
1857
+ readonly framework: "nextjs";
1858
+ readonly category: "Bugs";
1859
+ readonly id: string;
1860
+ readonly title?: string;
1861
+ readonly severity: RuleSeverity;
1862
+ readonly requires?: ReadonlyArray<string>;
1863
+ readonly disabledBy?: ReadonlyArray<string>;
1864
+ readonly tags?: ReadonlyArray<string>;
1865
+ readonly defaultEnabled?: boolean;
1866
+ readonly lifecycle?: "retired";
1867
+ readonly recommendation?: string;
1868
+ readonly create: (context: RuleContext) => RuleVisitors;
1869
+ };
1832
1870
  }, {
1833
1871
  readonly key: "react-doctor/nextjs-image-missing-sizes";
1834
1872
  readonly id: "nextjs-image-missing-sizes";
@@ -1962,6 +2000,44 @@ declare const REACT_DOCTOR_RULES: readonly [{
1962
2000
  readonly recommendation?: string;
1963
2001
  readonly create: (context: RuleContext) => RuleVisitors;
1964
2002
  };
2003
+ }, {
2004
+ readonly key: "react-doctor/nextjs-no-default-export-in-route-handler";
2005
+ readonly id: "nextjs-no-default-export-in-route-handler";
2006
+ readonly source: "react-doctor";
2007
+ readonly originallyExternal: false;
2008
+ readonly rule: {
2009
+ readonly framework: "nextjs";
2010
+ readonly category: "Bugs";
2011
+ readonly id: string;
2012
+ readonly title?: string;
2013
+ readonly severity: RuleSeverity;
2014
+ readonly requires?: ReadonlyArray<string>;
2015
+ readonly disabledBy?: ReadonlyArray<string>;
2016
+ readonly tags?: ReadonlyArray<string>;
2017
+ readonly defaultEnabled?: boolean;
2018
+ readonly lifecycle?: "retired";
2019
+ readonly recommendation?: string;
2020
+ readonly create: (context: RuleContext) => RuleVisitors;
2021
+ };
2022
+ }, {
2023
+ readonly key: "react-doctor/nextjs-no-edge-og-runtime";
2024
+ readonly id: "nextjs-no-edge-og-runtime";
2025
+ readonly source: "react-doctor";
2026
+ readonly originallyExternal: false;
2027
+ readonly rule: {
2028
+ readonly framework: "nextjs";
2029
+ readonly category: "Bugs";
2030
+ readonly id: string;
2031
+ readonly title?: string;
2032
+ readonly severity: RuleSeverity;
2033
+ readonly requires?: ReadonlyArray<string>;
2034
+ readonly disabledBy?: ReadonlyArray<string>;
2035
+ readonly tags?: ReadonlyArray<string>;
2036
+ readonly defaultEnabled?: boolean;
2037
+ readonly lifecycle?: "retired";
2038
+ readonly recommendation?: string;
2039
+ readonly create: (context: RuleContext) => RuleVisitors;
2040
+ };
1965
2041
  }, {
1966
2042
  readonly key: "react-doctor/nextjs-no-font-link";
1967
2043
  readonly id: "nextjs-no-font-link";
@@ -1981,6 +2057,25 @@ declare const REACT_DOCTOR_RULES: readonly [{
1981
2057
  readonly recommendation?: string;
1982
2058
  readonly create: (context: RuleContext) => RuleVisitors;
1983
2059
  };
2060
+ }, {
2061
+ readonly key: "react-doctor/nextjs-no-google-analytics-script";
2062
+ readonly id: "nextjs-no-google-analytics-script";
2063
+ readonly source: "react-doctor";
2064
+ readonly originallyExternal: false;
2065
+ readonly rule: {
2066
+ readonly framework: "nextjs";
2067
+ readonly category: "Bugs";
2068
+ readonly id: string;
2069
+ readonly title?: string;
2070
+ readonly severity: RuleSeverity;
2071
+ readonly requires?: ReadonlyArray<string>;
2072
+ readonly disabledBy?: ReadonlyArray<string>;
2073
+ readonly tags?: ReadonlyArray<string>;
2074
+ readonly defaultEnabled?: boolean;
2075
+ readonly lifecycle?: "retired";
2076
+ readonly recommendation?: string;
2077
+ readonly create: (context: RuleContext) => RuleVisitors;
2078
+ };
1984
2079
  }, {
1985
2080
  readonly key: "react-doctor/nextjs-no-head-import";
1986
2081
  readonly id: "nextjs-no-head-import";
@@ -2076,6 +2171,25 @@ declare const REACT_DOCTOR_RULES: readonly [{
2076
2171
  readonly recommendation?: string;
2077
2172
  readonly create: (context: RuleContext) => RuleVisitors;
2078
2173
  };
2174
+ }, {
2175
+ readonly key: "react-doctor/nextjs-no-script-in-head";
2176
+ readonly id: "nextjs-no-script-in-head";
2177
+ readonly source: "react-doctor";
2178
+ readonly originallyExternal: false;
2179
+ readonly rule: {
2180
+ readonly framework: "nextjs";
2181
+ readonly category: "Bugs";
2182
+ readonly id: string;
2183
+ readonly title?: string;
2184
+ readonly severity: RuleSeverity;
2185
+ readonly requires?: ReadonlyArray<string>;
2186
+ readonly disabledBy?: ReadonlyArray<string>;
2187
+ readonly tags?: ReadonlyArray<string>;
2188
+ readonly defaultEnabled?: boolean;
2189
+ readonly lifecycle?: "retired";
2190
+ readonly recommendation?: string;
2191
+ readonly create: (context: RuleContext) => RuleVisitors;
2192
+ };
2079
2193
  }, {
2080
2194
  readonly key: "react-doctor/nextjs-no-side-effect-in-get-handler";
2081
2195
  readonly id: "nextjs-no-side-effect-in-get-handler";
@@ -2114,6 +2228,25 @@ declare const REACT_DOCTOR_RULES: readonly [{
2114
2228
  readonly recommendation?: string;
2115
2229
  readonly create: (context: RuleContext) => RuleVisitors;
2116
2230
  };
2231
+ }, {
2232
+ readonly key: "react-doctor/nextjs-no-vercel-og-import";
2233
+ readonly id: "nextjs-no-vercel-og-import";
2234
+ readonly source: "react-doctor";
2235
+ readonly originallyExternal: false;
2236
+ readonly rule: {
2237
+ readonly framework: "nextjs";
2238
+ readonly category: "Bugs";
2239
+ readonly id: string;
2240
+ readonly title?: string;
2241
+ readonly severity: RuleSeverity;
2242
+ readonly requires?: ReadonlyArray<string>;
2243
+ readonly disabledBy?: ReadonlyArray<string>;
2244
+ readonly tags?: ReadonlyArray<string>;
2245
+ readonly defaultEnabled?: boolean;
2246
+ readonly lifecycle?: "retired";
2247
+ readonly recommendation?: string;
2248
+ readonly create: (context: RuleContext) => RuleVisitors;
2249
+ };
2117
2250
  }, {
2118
2251
  readonly key: "react-doctor/no-access-key";
2119
2252
  readonly id: "no-access-key";
@@ -3064,6 +3197,25 @@ declare const REACT_DOCTOR_RULES: readonly [{
3064
3197
  readonly recommendation?: string;
3065
3198
  readonly create: (context: RuleContext) => RuleVisitors;
3066
3199
  };
3200
+ }, {
3201
+ readonly key: "react-doctor/no-jsx-element-type";
3202
+ readonly id: "no-jsx-element-type";
3203
+ readonly source: "react-doctor";
3204
+ readonly originallyExternal: false;
3205
+ readonly rule: {
3206
+ readonly framework: "global";
3207
+ readonly category: "Bugs";
3208
+ readonly id: string;
3209
+ readonly title?: string;
3210
+ readonly severity: RuleSeverity;
3211
+ readonly requires?: ReadonlyArray<string>;
3212
+ readonly disabledBy?: ReadonlyArray<string>;
3213
+ readonly tags?: ReadonlyArray<string>;
3214
+ readonly defaultEnabled?: boolean;
3215
+ readonly lifecycle?: "retired";
3216
+ readonly recommendation?: string;
3217
+ readonly create: (context: RuleContext) => RuleVisitors;
3218
+ };
3067
3219
  }, {
3068
3220
  readonly key: "react-doctor/no-justified-text";
3069
3221
  readonly id: "no-justified-text";
@@ -4318,6 +4470,25 @@ declare const REACT_DOCTOR_RULES: readonly [{
4318
4470
  readonly recommendation?: string;
4319
4471
  readonly create: (context: RuleContext) => RuleVisitors;
4320
4472
  };
4473
+ }, {
4474
+ readonly key: "react-doctor/prefer-explicit-variants";
4475
+ readonly id: "prefer-explicit-variants";
4476
+ readonly source: "react-doctor";
4477
+ readonly originallyExternal: false;
4478
+ readonly rule: {
4479
+ readonly framework: "global";
4480
+ readonly category: "Maintainability";
4481
+ readonly id: string;
4482
+ readonly title?: string;
4483
+ readonly severity: RuleSeverity;
4484
+ readonly requires?: ReadonlyArray<string>;
4485
+ readonly disabledBy?: ReadonlyArray<string>;
4486
+ readonly tags?: ReadonlyArray<string>;
4487
+ readonly defaultEnabled?: boolean;
4488
+ readonly lifecycle?: "retired";
4489
+ readonly recommendation?: string;
4490
+ readonly create: (context: RuleContext) => RuleVisitors;
4491
+ };
4321
4492
  }, {
4322
4493
  readonly key: "react-doctor/prefer-function-component";
4323
4494
  readonly id: "prefer-function-component";
@@ -4489,6 +4660,25 @@ declare const REACT_DOCTOR_RULES: readonly [{
4489
4660
  readonly recommendation?: string;
4490
4661
  readonly create: (context: RuleContext) => RuleVisitors;
4491
4662
  };
4663
+ }, {
4664
+ readonly key: "react-doctor/query-destructure-result";
4665
+ readonly id: "query-destructure-result";
4666
+ readonly source: "react-doctor";
4667
+ readonly originallyExternal: false;
4668
+ readonly rule: {
4669
+ readonly framework: "tanstack-query";
4670
+ readonly category: "Bugs";
4671
+ readonly id: string;
4672
+ readonly title?: string;
4673
+ readonly severity: RuleSeverity;
4674
+ readonly requires?: ReadonlyArray<string>;
4675
+ readonly disabledBy?: ReadonlyArray<string>;
4676
+ readonly tags?: ReadonlyArray<string>;
4677
+ readonly defaultEnabled?: boolean;
4678
+ readonly lifecycle?: "retired";
4679
+ readonly recommendation?: string;
4680
+ readonly create: (context: RuleContext) => RuleVisitors;
4681
+ };
4492
4682
  }, {
4493
4683
  readonly key: "react-doctor/query-mutation-missing-invalidation";
4494
4684
  readonly id: "query-mutation-missing-invalidation";
@@ -8127,6 +8317,44 @@ declare const RULES: readonly [{
8127
8317
  readonly recommendation?: string;
8128
8318
  readonly create: (context: RuleContext) => RuleVisitors;
8129
8319
  };
8320
+ }, {
8321
+ readonly key: "react-doctor/nextjs-error-boundary-missing-use-client";
8322
+ readonly id: "nextjs-error-boundary-missing-use-client";
8323
+ readonly source: "react-doctor";
8324
+ readonly originallyExternal: false;
8325
+ readonly rule: {
8326
+ readonly framework: "nextjs";
8327
+ readonly category: "Bugs";
8328
+ readonly id: string;
8329
+ readonly title?: string;
8330
+ readonly severity: RuleSeverity;
8331
+ readonly requires?: ReadonlyArray<string>;
8332
+ readonly disabledBy?: ReadonlyArray<string>;
8333
+ readonly tags?: ReadonlyArray<string>;
8334
+ readonly defaultEnabled?: boolean;
8335
+ readonly lifecycle?: "retired";
8336
+ readonly recommendation?: string;
8337
+ readonly create: (context: RuleContext) => RuleVisitors;
8338
+ };
8339
+ }, {
8340
+ readonly key: "react-doctor/nextjs-global-error-missing-html-body";
8341
+ readonly id: "nextjs-global-error-missing-html-body";
8342
+ readonly source: "react-doctor";
8343
+ readonly originallyExternal: false;
8344
+ readonly rule: {
8345
+ readonly framework: "nextjs";
8346
+ readonly category: "Bugs";
8347
+ readonly id: string;
8348
+ readonly title?: string;
8349
+ readonly severity: RuleSeverity;
8350
+ readonly requires?: ReadonlyArray<string>;
8351
+ readonly disabledBy?: ReadonlyArray<string>;
8352
+ readonly tags?: ReadonlyArray<string>;
8353
+ readonly defaultEnabled?: boolean;
8354
+ readonly lifecycle?: "retired";
8355
+ readonly recommendation?: string;
8356
+ readonly create: (context: RuleContext) => RuleVisitors;
8357
+ };
8130
8358
  }, {
8131
8359
  readonly key: "react-doctor/nextjs-image-missing-sizes";
8132
8360
  readonly id: "nextjs-image-missing-sizes";
@@ -8260,6 +8488,44 @@ declare const RULES: readonly [{
8260
8488
  readonly recommendation?: string;
8261
8489
  readonly create: (context: RuleContext) => RuleVisitors;
8262
8490
  };
8491
+ }, {
8492
+ readonly key: "react-doctor/nextjs-no-default-export-in-route-handler";
8493
+ readonly id: "nextjs-no-default-export-in-route-handler";
8494
+ readonly source: "react-doctor";
8495
+ readonly originallyExternal: false;
8496
+ readonly rule: {
8497
+ readonly framework: "nextjs";
8498
+ readonly category: "Bugs";
8499
+ readonly id: string;
8500
+ readonly title?: string;
8501
+ readonly severity: RuleSeverity;
8502
+ readonly requires?: ReadonlyArray<string>;
8503
+ readonly disabledBy?: ReadonlyArray<string>;
8504
+ readonly tags?: ReadonlyArray<string>;
8505
+ readonly defaultEnabled?: boolean;
8506
+ readonly lifecycle?: "retired";
8507
+ readonly recommendation?: string;
8508
+ readonly create: (context: RuleContext) => RuleVisitors;
8509
+ };
8510
+ }, {
8511
+ readonly key: "react-doctor/nextjs-no-edge-og-runtime";
8512
+ readonly id: "nextjs-no-edge-og-runtime";
8513
+ readonly source: "react-doctor";
8514
+ readonly originallyExternal: false;
8515
+ readonly rule: {
8516
+ readonly framework: "nextjs";
8517
+ readonly category: "Bugs";
8518
+ readonly id: string;
8519
+ readonly title?: string;
8520
+ readonly severity: RuleSeverity;
8521
+ readonly requires?: ReadonlyArray<string>;
8522
+ readonly disabledBy?: ReadonlyArray<string>;
8523
+ readonly tags?: ReadonlyArray<string>;
8524
+ readonly defaultEnabled?: boolean;
8525
+ readonly lifecycle?: "retired";
8526
+ readonly recommendation?: string;
8527
+ readonly create: (context: RuleContext) => RuleVisitors;
8528
+ };
8263
8529
  }, {
8264
8530
  readonly key: "react-doctor/nextjs-no-font-link";
8265
8531
  readonly id: "nextjs-no-font-link";
@@ -8279,6 +8545,25 @@ declare const RULES: readonly [{
8279
8545
  readonly recommendation?: string;
8280
8546
  readonly create: (context: RuleContext) => RuleVisitors;
8281
8547
  };
8548
+ }, {
8549
+ readonly key: "react-doctor/nextjs-no-google-analytics-script";
8550
+ readonly id: "nextjs-no-google-analytics-script";
8551
+ readonly source: "react-doctor";
8552
+ readonly originallyExternal: false;
8553
+ readonly rule: {
8554
+ readonly framework: "nextjs";
8555
+ readonly category: "Bugs";
8556
+ readonly id: string;
8557
+ readonly title?: string;
8558
+ readonly severity: RuleSeverity;
8559
+ readonly requires?: ReadonlyArray<string>;
8560
+ readonly disabledBy?: ReadonlyArray<string>;
8561
+ readonly tags?: ReadonlyArray<string>;
8562
+ readonly defaultEnabled?: boolean;
8563
+ readonly lifecycle?: "retired";
8564
+ readonly recommendation?: string;
8565
+ readonly create: (context: RuleContext) => RuleVisitors;
8566
+ };
8282
8567
  }, {
8283
8568
  readonly key: "react-doctor/nextjs-no-head-import";
8284
8569
  readonly id: "nextjs-no-head-import";
@@ -8374,6 +8659,25 @@ declare const RULES: readonly [{
8374
8659
  readonly recommendation?: string;
8375
8660
  readonly create: (context: RuleContext) => RuleVisitors;
8376
8661
  };
8662
+ }, {
8663
+ readonly key: "react-doctor/nextjs-no-script-in-head";
8664
+ readonly id: "nextjs-no-script-in-head";
8665
+ readonly source: "react-doctor";
8666
+ readonly originallyExternal: false;
8667
+ readonly rule: {
8668
+ readonly framework: "nextjs";
8669
+ readonly category: "Bugs";
8670
+ readonly id: string;
8671
+ readonly title?: string;
8672
+ readonly severity: RuleSeverity;
8673
+ readonly requires?: ReadonlyArray<string>;
8674
+ readonly disabledBy?: ReadonlyArray<string>;
8675
+ readonly tags?: ReadonlyArray<string>;
8676
+ readonly defaultEnabled?: boolean;
8677
+ readonly lifecycle?: "retired";
8678
+ readonly recommendation?: string;
8679
+ readonly create: (context: RuleContext) => RuleVisitors;
8680
+ };
8377
8681
  }, {
8378
8682
  readonly key: "react-doctor/nextjs-no-side-effect-in-get-handler";
8379
8683
  readonly id: "nextjs-no-side-effect-in-get-handler";
@@ -8412,6 +8716,25 @@ declare const RULES: readonly [{
8412
8716
  readonly recommendation?: string;
8413
8717
  readonly create: (context: RuleContext) => RuleVisitors;
8414
8718
  };
8719
+ }, {
8720
+ readonly key: "react-doctor/nextjs-no-vercel-og-import";
8721
+ readonly id: "nextjs-no-vercel-og-import";
8722
+ readonly source: "react-doctor";
8723
+ readonly originallyExternal: false;
8724
+ readonly rule: {
8725
+ readonly framework: "nextjs";
8726
+ readonly category: "Bugs";
8727
+ readonly id: string;
8728
+ readonly title?: string;
8729
+ readonly severity: RuleSeverity;
8730
+ readonly requires?: ReadonlyArray<string>;
8731
+ readonly disabledBy?: ReadonlyArray<string>;
8732
+ readonly tags?: ReadonlyArray<string>;
8733
+ readonly defaultEnabled?: boolean;
8734
+ readonly lifecycle?: "retired";
8735
+ readonly recommendation?: string;
8736
+ readonly create: (context: RuleContext) => RuleVisitors;
8737
+ };
8415
8738
  }, {
8416
8739
  readonly key: "react-doctor/no-access-key";
8417
8740
  readonly id: "no-access-key";
@@ -9362,6 +9685,25 @@ declare const RULES: readonly [{
9362
9685
  readonly recommendation?: string;
9363
9686
  readonly create: (context: RuleContext) => RuleVisitors;
9364
9687
  };
9688
+ }, {
9689
+ readonly key: "react-doctor/no-jsx-element-type";
9690
+ readonly id: "no-jsx-element-type";
9691
+ readonly source: "react-doctor";
9692
+ readonly originallyExternal: false;
9693
+ readonly rule: {
9694
+ readonly framework: "global";
9695
+ readonly category: "Bugs";
9696
+ readonly id: string;
9697
+ readonly title?: string;
9698
+ readonly severity: RuleSeverity;
9699
+ readonly requires?: ReadonlyArray<string>;
9700
+ readonly disabledBy?: ReadonlyArray<string>;
9701
+ readonly tags?: ReadonlyArray<string>;
9702
+ readonly defaultEnabled?: boolean;
9703
+ readonly lifecycle?: "retired";
9704
+ readonly recommendation?: string;
9705
+ readonly create: (context: RuleContext) => RuleVisitors;
9706
+ };
9365
9707
  }, {
9366
9708
  readonly key: "react-doctor/no-justified-text";
9367
9709
  readonly id: "no-justified-text";
@@ -10616,6 +10958,25 @@ declare const RULES: readonly [{
10616
10958
  readonly recommendation?: string;
10617
10959
  readonly create: (context: RuleContext) => RuleVisitors;
10618
10960
  };
10961
+ }, {
10962
+ readonly key: "react-doctor/prefer-explicit-variants";
10963
+ readonly id: "prefer-explicit-variants";
10964
+ readonly source: "react-doctor";
10965
+ readonly originallyExternal: false;
10966
+ readonly rule: {
10967
+ readonly framework: "global";
10968
+ readonly category: "Maintainability";
10969
+ readonly id: string;
10970
+ readonly title?: string;
10971
+ readonly severity: RuleSeverity;
10972
+ readonly requires?: ReadonlyArray<string>;
10973
+ readonly disabledBy?: ReadonlyArray<string>;
10974
+ readonly tags?: ReadonlyArray<string>;
10975
+ readonly defaultEnabled?: boolean;
10976
+ readonly lifecycle?: "retired";
10977
+ readonly recommendation?: string;
10978
+ readonly create: (context: RuleContext) => RuleVisitors;
10979
+ };
10619
10980
  }, {
10620
10981
  readonly key: "react-doctor/prefer-function-component";
10621
10982
  readonly id: "prefer-function-component";
@@ -10787,6 +11148,25 @@ declare const RULES: readonly [{
10787
11148
  readonly recommendation?: string;
10788
11149
  readonly create: (context: RuleContext) => RuleVisitors;
10789
11150
  };
11151
+ }, {
11152
+ readonly key: "react-doctor/query-destructure-result";
11153
+ readonly id: "query-destructure-result";
11154
+ readonly source: "react-doctor";
11155
+ readonly originallyExternal: false;
11156
+ readonly rule: {
11157
+ readonly framework: "tanstack-query";
11158
+ readonly category: "Bugs";
11159
+ readonly id: string;
11160
+ readonly title?: string;
11161
+ readonly severity: RuleSeverity;
11162
+ readonly requires?: ReadonlyArray<string>;
11163
+ readonly disabledBy?: ReadonlyArray<string>;
11164
+ readonly tags?: ReadonlyArray<string>;
11165
+ readonly defaultEnabled?: boolean;
11166
+ readonly lifecycle?: "retired";
11167
+ readonly recommendation?: string;
11168
+ readonly create: (context: RuleContext) => RuleVisitors;
11169
+ };
10790
11170
  }, {
10791
11171
  readonly key: "react-doctor/query-mutation-missing-invalidation";
10792
11172
  readonly id: "query-mutation-missing-invalidation";