eslint-plugin-react-x 1.37.1-next.5 → 1.37.2-beta.1

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.js +142 -130
  2. package/dist/index.mjs +142 -130
  3. package/package.json +8 -7
package/dist/index.js CHANGED
@@ -13,6 +13,7 @@ var typeUtils = require('@typescript-eslint/type-utils');
13
13
  var utils = require('@typescript-eslint/utils');
14
14
  var tsApiUtils = require('ts-api-utils');
15
15
  var ts = require('typescript');
16
+ var isImmutableType = require('is-immutable-type');
16
17
 
17
18
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
18
19
 
@@ -135,7 +136,7 @@ var settings3 = {
135
136
 
136
137
  // package.json
137
138
  var name4 = "eslint-plugin-react-x";
138
- var version = "1.37.1-next.5";
139
+ var version = "1.37.2-beta.1";
139
140
  var createRule = shared.createRuleForPlugin("x");
140
141
 
141
142
  // src/rules/avoid-shorthand-boolean.ts
@@ -585,20 +586,21 @@ var no_children_map_default = createRule({
585
586
  schema: []
586
587
  },
587
588
  name: RULE_NAME7,
588
- create(context) {
589
- return {
590
- MemberExpression(node) {
591
- if (core.isChildrenMap(context, node)) {
592
- context.report({
593
- messageId: "noChildrenMap",
594
- node: node.property
595
- });
596
- }
597
- }
598
- };
599
- },
589
+ create: create7,
600
590
  defaultOptions: []
601
591
  });
592
+ function create7(context) {
593
+ return {
594
+ MemberExpression(node) {
595
+ if (core.isChildrenMap(context, node)) {
596
+ context.report({
597
+ messageId: "noChildrenMap",
598
+ node: node.property
599
+ });
600
+ }
601
+ }
602
+ };
603
+ }
602
604
  var RULE_NAME8 = "no-children-only";
603
605
  var RULE_FEATURES8 = [];
604
606
  var no_children_only_default = createRule({
@@ -614,10 +616,10 @@ var no_children_only_default = createRule({
614
616
  schema: []
615
617
  },
616
618
  name: RULE_NAME8,
617
- create: create7,
619
+ create: create8,
618
620
  defaultOptions: []
619
621
  });
620
- function create7(context) {
622
+ function create8(context) {
621
623
  return {
622
624
  MemberExpression(node) {
623
625
  if (core.isChildrenOnly(context, node)) {
@@ -644,10 +646,10 @@ var no_children_prop_default = createRule({
644
646
  schema: []
645
647
  },
646
648
  name: RULE_NAME9,
647
- create: create8,
649
+ create: create9,
648
650
  defaultOptions: []
649
651
  });
650
- function create8(context) {
652
+ function create9(context) {
651
653
  return {
652
654
  JSXElement(node) {
653
655
  const attribute = JSX8__namespace.getAttribute(
@@ -679,10 +681,10 @@ var no_children_to_array_default = createRule({
679
681
  schema: []
680
682
  },
681
683
  name: RULE_NAME10,
682
- create: create9,
684
+ create: create10,
683
685
  defaultOptions: []
684
686
  });
685
- function create9(context) {
687
+ function create10(context) {
686
688
  return {
687
689
  MemberExpression(node) {
688
690
  if (core.isChildrenToArray(context, node)) {
@@ -709,10 +711,10 @@ var no_class_component_default = createRule({
709
711
  schema: []
710
712
  },
711
713
  name: RULE_NAME11,
712
- create: create10,
714
+ create: create11,
713
715
  defaultOptions: []
714
716
  });
715
- function create10(context) {
717
+ function create11(context) {
716
718
  if (!context.sourceCode.text.includes("Component")) return {};
717
719
  const { ctx, listeners } = core.useComponentCollectorLegacy();
718
720
  return {
@@ -749,10 +751,10 @@ var no_clone_element_default = createRule({
749
751
  schema: []
750
752
  },
751
753
  name: RULE_NAME12,
752
- create: create11,
754
+ create: create12,
753
755
  defaultOptions: []
754
756
  });
755
- function create11(context) {
757
+ function create12(context) {
756
758
  return {
757
759
  CallExpression(node) {
758
760
  if (!core.isCloneElementCall(context, node)) {
@@ -780,36 +782,37 @@ var no_comment_textnodes_default = createRule({
780
782
  schema: []
781
783
  },
782
784
  name: RULE_NAME13,
783
- create(context) {
784
- function hasCommentLike(node) {
785
- if (AST11__namespace.isOneOf([types.AST_NODE_TYPES.JSXAttribute, types.AST_NODE_TYPES.JSXExpressionContainer])(node.parent)) {
786
- return false;
787
- }
788
- const rawValue = context.sourceCode.getText(node);
789
- return /^\s*\/(?:\/|\*)/mu.test(rawValue);
790
- }
791
- const visitorFunction = (node) => {
792
- if (!AST11__namespace.isOneOf([types.AST_NODE_TYPES.JSXElement, types.AST_NODE_TYPES.JSXFragment])(node.parent)) {
793
- return;
794
- }
795
- if (!hasCommentLike(node)) {
796
- return;
797
- }
798
- if (!node.parent.type.includes("JSX")) {
799
- return;
800
- }
801
- context.report({
802
- messageId: "noCommentTextnodes",
803
- node
804
- });
805
- };
806
- return {
807
- JSXText: visitorFunction,
808
- Literal: visitorFunction
809
- };
810
- },
785
+ create: create13,
811
786
  defaultOptions: []
812
787
  });
788
+ function create13(context) {
789
+ function hasCommentLike(node) {
790
+ if (AST11__namespace.isOneOf([types.AST_NODE_TYPES.JSXAttribute, types.AST_NODE_TYPES.JSXExpressionContainer])(node.parent)) {
791
+ return false;
792
+ }
793
+ const rawValue = context.sourceCode.getText(node);
794
+ return /^\s*\/(?:\/|\*)/mu.test(rawValue);
795
+ }
796
+ const visitorFunction = (node) => {
797
+ if (!AST11__namespace.isOneOf([types.AST_NODE_TYPES.JSXElement, types.AST_NODE_TYPES.JSXFragment])(node.parent)) {
798
+ return;
799
+ }
800
+ if (!hasCommentLike(node)) {
801
+ return;
802
+ }
803
+ if (!node.parent.type.includes("JSX")) {
804
+ return;
805
+ }
806
+ context.report({
807
+ messageId: "noCommentTextnodes",
808
+ node
809
+ });
810
+ };
811
+ return {
812
+ JSXText: visitorFunction,
813
+ Literal: visitorFunction
814
+ };
815
+ }
813
816
  var RULE_NAME14 = "no-complex-conditional-rendering";
814
817
  var RULE_FEATURES14 = [];
815
818
  var no_complex_conditional_rendering_default = createRule({
@@ -825,10 +828,10 @@ var no_complex_conditional_rendering_default = createRule({
825
828
  schema: []
826
829
  },
827
830
  name: RULE_NAME14,
828
- create: create12,
831
+ create: create14,
829
832
  defaultOptions: []
830
833
  });
831
- function create12(context) {
834
+ function create14(context) {
832
835
  const visitorFunction = (node) => {
833
836
  const jsxExpContainer = node.parent?.parent;
834
837
  if (!AST11__namespace.is(types.AST_NODE_TYPES.JSXExpressionContainer)(jsxExpContainer)) {
@@ -874,10 +877,10 @@ var no_component_will_mount_default = createRule({
874
877
  schema: []
875
878
  },
876
879
  name: RULE_NAME15,
877
- create: create13,
880
+ create: create15,
878
881
  defaultOptions: []
879
882
  });
880
- function create13(context) {
883
+ function create15(context) {
881
884
  if (!context.sourceCode.text.includes("componentWillMount")) return {};
882
885
  const { ctx, listeners } = core.useComponentCollectorLegacy();
883
886
  return {
@@ -925,10 +928,10 @@ var no_component_will_receive_props_default = createRule({
925
928
  schema: []
926
929
  },
927
930
  name: RULE_NAME16,
928
- create: create14,
931
+ create: create16,
929
932
  defaultOptions: []
930
933
  });
931
- function create14(context) {
934
+ function create16(context) {
932
935
  if (!context.sourceCode.text.includes("componentWillReceiveProps")) return {};
933
936
  const { ctx, listeners } = core.useComponentCollectorLegacy();
934
937
  return {
@@ -976,10 +979,10 @@ var no_component_will_update_default = createRule({
976
979
  schema: []
977
980
  },
978
981
  name: RULE_NAME17,
979
- create: create15,
982
+ create: create17,
980
983
  defaultOptions: []
981
984
  });
982
- function create15(context) {
985
+ function create17(context) {
983
986
  if (!context.sourceCode.text.includes("componentWillUpdate")) return {};
984
987
  const { ctx, listeners } = core.useComponentCollectorLegacy();
985
988
  return {
@@ -1024,10 +1027,10 @@ var no_context_provider_default = createRule({
1024
1027
  schema: []
1025
1028
  },
1026
1029
  name: RULE_NAME18,
1027
- create: create16,
1030
+ create: create18,
1028
1031
  defaultOptions: []
1029
1032
  });
1030
- function create16(context) {
1033
+ function create18(context) {
1031
1034
  if (!context.sourceCode.text.includes("Provider")) return {};
1032
1035
  const { version: version2 } = shared.getSettingsFromContext(context);
1033
1036
  if (compareVersions.compare(version2, "19.0.0", "<")) return {};
@@ -1074,10 +1077,10 @@ var no_create_ref_default = createRule({
1074
1077
  schema: []
1075
1078
  },
1076
1079
  name: RULE_NAME19,
1077
- create: create17,
1080
+ create: create19,
1078
1081
  defaultOptions: []
1079
1082
  });
1080
- function create17(context) {
1083
+ function create19(context) {
1081
1084
  return {
1082
1085
  CallExpression(node) {
1083
1086
  if (core.isCreateRefCall(context, node) && AST11__namespace.findParentNode(node, core.isClassComponent) == null) {
@@ -1101,10 +1104,10 @@ var no_default_props_default = createRule({
1101
1104
  schema: []
1102
1105
  },
1103
1106
  name: RULE_NAME20,
1104
- create: create18,
1107
+ create: create20,
1105
1108
  defaultOptions: []
1106
1109
  });
1107
- function create18(context) {
1110
+ function create20(context) {
1108
1111
  if (!context.sourceCode.text.includes("defaultProps")) return {};
1109
1112
  return {
1110
1113
  AssignmentExpression(node) {
@@ -1156,10 +1159,10 @@ var no_direct_mutation_state_default = createRule({
1156
1159
  schema: []
1157
1160
  },
1158
1161
  name: RULE_NAME21,
1159
- create: create19,
1162
+ create: create21,
1160
1163
  defaultOptions: []
1161
1164
  });
1162
- function create19(context) {
1165
+ function create21(context) {
1163
1166
  return {
1164
1167
  AssignmentExpression(node) {
1165
1168
  if (!core.isAssignmentToThisState(node)) return;
@@ -1195,10 +1198,10 @@ var no_duplicate_jsx_props_default = createRule({
1195
1198
  schema: []
1196
1199
  },
1197
1200
  name: RULE_NAME22,
1198
- create: create20,
1201
+ create: create22,
1199
1202
  defaultOptions: []
1200
1203
  });
1201
- function create20(context) {
1204
+ function create22(context) {
1202
1205
  return {
1203
1206
  JSXOpeningElement(node) {
1204
1207
  const props = [];
@@ -1237,10 +1240,10 @@ var no_duplicate_key_default = createRule({
1237
1240
  schema: []
1238
1241
  },
1239
1242
  name: RULE_NAME23,
1240
- create: create21,
1243
+ create: create23,
1241
1244
  defaultOptions: []
1242
1245
  });
1243
- function create21(context) {
1246
+ function create23(context) {
1244
1247
  if (!context.sourceCode.getText().includes("key=")) {
1245
1248
  return {};
1246
1249
  }
@@ -1322,10 +1325,10 @@ var no_forward_ref_default = createRule({
1322
1325
  schema: []
1323
1326
  },
1324
1327
  name: RULE_NAME24,
1325
- create: create22,
1328
+ create: create24,
1326
1329
  defaultOptions: []
1327
1330
  });
1328
- function create22(context) {
1331
+ function create24(context) {
1329
1332
  if (!context.sourceCode.text.includes("forwardRef")) {
1330
1333
  return {};
1331
1334
  }
@@ -1428,10 +1431,10 @@ var no_implicit_key_default = createRule({
1428
1431
  schema: []
1429
1432
  },
1430
1433
  name: RULE_NAME25,
1431
- create: create23,
1434
+ create: create25,
1432
1435
  defaultOptions: []
1433
1436
  });
1434
- function create23(context) {
1437
+ function create25(context) {
1435
1438
  return {
1436
1439
  JSXOpeningElement(node) {
1437
1440
  const initialScope = context.sourceCode.getScope(node);
@@ -1540,10 +1543,10 @@ var no_leaked_conditional_rendering_default = createRule({
1540
1543
  schema: []
1541
1544
  },
1542
1545
  name: RULE_NAME26,
1543
- create: create24,
1546
+ create: create26,
1544
1547
  defaultOptions: []
1545
1548
  });
1546
- function create24(context) {
1549
+ function create26(context) {
1547
1550
  if (!context.sourceCode.text.includes("&&") && !context.sourceCode.text.includes("?")) return {};
1548
1551
  const { version: version2 } = shared.getSettingsFromContext(context);
1549
1552
  const allowedVariants = [
@@ -1615,10 +1618,10 @@ var no_missing_component_display_name_default = createRule({
1615
1618
  schema: []
1616
1619
  },
1617
1620
  name: RULE_NAME27,
1618
- create: create25,
1621
+ create: create27,
1619
1622
  defaultOptions: []
1620
1623
  });
1621
- function create25(context) {
1624
+ function create27(context) {
1622
1625
  if (!context.sourceCode.text.includes("memo") && !context.sourceCode.text.includes("forwardRef")) return {};
1623
1626
  const {
1624
1627
  ctx,
@@ -1668,10 +1671,10 @@ var no_missing_context_display_name_default = createRule({
1668
1671
  schema: []
1669
1672
  },
1670
1673
  name: RULE_NAME28,
1671
- create: create26,
1674
+ create: create28,
1672
1675
  defaultOptions: []
1673
1676
  });
1674
- function create26(context) {
1677
+ function create28(context) {
1675
1678
  if (!context.sourceCode.text.includes("createContext")) return {};
1676
1679
  const createCalls = [];
1677
1680
  const displayNameAssignments = [];
@@ -1725,10 +1728,10 @@ var no_missing_key_default = createRule({
1725
1728
  schema: []
1726
1729
  },
1727
1730
  name: RULE_NAME29,
1728
- create: create27,
1731
+ create: create29,
1729
1732
  defaultOptions: []
1730
1733
  });
1731
- function create27(context) {
1734
+ function create29(context) {
1732
1735
  const report = shared.createReport(context);
1733
1736
  const state = { isWithinChildrenToArray: false };
1734
1737
  function checkIteratorElement(node) {
@@ -1857,10 +1860,10 @@ var no_nested_component_definitions_default = createRule({
1857
1860
  schema: []
1858
1861
  },
1859
1862
  name: RULE_NAME30,
1860
- create: create28,
1863
+ create: create30,
1861
1864
  defaultOptions: []
1862
1865
  });
1863
- function create28(context) {
1866
+ function create30(context) {
1864
1867
  const hint = core.ERComponentHint.SkipMapCallback | core.ERComponentHint.SkipNullLiteral | core.ERComponentHint.SkipUndefined | core.ERComponentHint.SkipBooleanLiteral | core.ERComponentHint.SkipStringLiteral | core.ERComponentHint.SkipNumberLiteral | core.ERComponentHint.StrictLogical | core.ERComponentHint.StrictConditional;
1865
1868
  const collector = core.useComponentCollector(context, { hint });
1866
1869
  const collectorLegacy = core.useComponentCollectorLegacy();
@@ -1966,10 +1969,10 @@ var no_prop_types_default = createRule({
1966
1969
  schema: []
1967
1970
  },
1968
1971
  name: RULE_NAME31,
1969
- create: create29,
1972
+ create: create31,
1970
1973
  defaultOptions: []
1971
1974
  });
1972
- function create29(context) {
1975
+ function create31(context) {
1973
1976
  if (!context.sourceCode.text.includes("propTypes")) {
1974
1977
  return {};
1975
1978
  }
@@ -2023,10 +2026,10 @@ var no_redundant_should_component_update_default = createRule({
2023
2026
  schema: []
2024
2027
  },
2025
2028
  name: RULE_NAME32,
2026
- create: create30,
2029
+ create: create32,
2027
2030
  defaultOptions: []
2028
2031
  });
2029
- function create30(context) {
2032
+ function create32(context) {
2030
2033
  if (!context.sourceCode.text.includes("shouldComponentUpdate")) return {};
2031
2034
  const { ctx, listeners } = core.useComponentCollectorLegacy();
2032
2035
  return {
@@ -2071,10 +2074,10 @@ var no_set_state_in_component_did_mount_default = createRule({
2071
2074
  schema: []
2072
2075
  },
2073
2076
  name: RULE_NAME33,
2074
- create: create31,
2077
+ create: create33,
2075
2078
  defaultOptions: []
2076
2079
  });
2077
- function create31(context) {
2080
+ function create33(context) {
2078
2081
  if (!context.sourceCode.text.includes("componentDidMount")) return {};
2079
2082
  return {
2080
2083
  CallExpression(node) {
@@ -2113,10 +2116,10 @@ var no_set_state_in_component_did_update_default = createRule({
2113
2116
  schema: []
2114
2117
  },
2115
2118
  name: RULE_NAME34,
2116
- create: create32,
2119
+ create: create34,
2117
2120
  defaultOptions: []
2118
2121
  });
2119
- function create32(context) {
2122
+ function create34(context) {
2120
2123
  if (!context.sourceCode.text.includes("componentDidUpdate")) return {};
2121
2124
  return {
2122
2125
  CallExpression(node) {
@@ -2155,10 +2158,10 @@ var no_set_state_in_component_will_update_default = createRule({
2155
2158
  schema: []
2156
2159
  },
2157
2160
  name: RULE_NAME35,
2158
- create: create33,
2161
+ create: create35,
2159
2162
  defaultOptions: []
2160
2163
  });
2161
- function create33(context) {
2164
+ function create35(context) {
2162
2165
  if (!context.sourceCode.text.includes("componentWillUpdate")) return {};
2163
2166
  return {
2164
2167
  CallExpression(node) {
@@ -2206,10 +2209,10 @@ var no_string_refs_default = createRule({
2206
2209
  schema: []
2207
2210
  },
2208
2211
  name: RULE_NAME36,
2209
- create: create34,
2212
+ create: create36,
2210
2213
  defaultOptions: []
2211
2214
  });
2212
- function create34(context) {
2215
+ function create36(context) {
2213
2216
  return {
2214
2217
  JSXAttribute(node) {
2215
2218
  if (node.name.name !== "ref") {
@@ -2242,10 +2245,10 @@ var no_unsafe_component_will_mount_default = createRule({
2242
2245
  schema: []
2243
2246
  },
2244
2247
  name: RULE_NAME37,
2245
- create: create35,
2248
+ create: create37,
2246
2249
  defaultOptions: []
2247
2250
  });
2248
- function create35(context) {
2251
+ function create37(context) {
2249
2252
  if (!context.sourceCode.text.includes("UNSAFE_componentWillMount")) return {};
2250
2253
  const { ctx, listeners } = core.useComponentCollectorLegacy();
2251
2254
  return {
@@ -2284,10 +2287,10 @@ var no_unsafe_component_will_receive_props_default = createRule({
2284
2287
  schema: []
2285
2288
  },
2286
2289
  name: RULE_NAME38,
2287
- create: create36,
2290
+ create: create38,
2288
2291
  defaultOptions: []
2289
2292
  });
2290
- function create36(context) {
2293
+ function create38(context) {
2291
2294
  if (!context.sourceCode.text.includes("UNSAFE_componentWillReceiveProps")) {
2292
2295
  return {};
2293
2296
  }
@@ -2328,10 +2331,10 @@ var no_unsafe_component_will_update_default = createRule({
2328
2331
  schema: []
2329
2332
  },
2330
2333
  name: RULE_NAME39,
2331
- create: create37,
2334
+ create: create39,
2332
2335
  defaultOptions: []
2333
2336
  });
2334
- function create37(context) {
2337
+ function create39(context) {
2335
2338
  if (!context.sourceCode.text.includes("UNSAFE_componentWillUpdate")) return {};
2336
2339
  const { ctx, listeners } = core.useComponentCollectorLegacy();
2337
2340
  return {
@@ -2367,10 +2370,10 @@ var no_unstable_context_value_default = createRule({
2367
2370
  schema: []
2368
2371
  },
2369
2372
  name: RULE_NAME40,
2370
- create: create38,
2373
+ create: create40,
2371
2374
  defaultOptions: []
2372
2375
  });
2373
- function create38(context) {
2376
+ function create40(context) {
2374
2377
  const { version: version2 } = shared.getSettingsFromContext(context);
2375
2378
  const isReact18OrBelow = compareVersions.compare(version2, "19.0.0", "<");
2376
2379
  const { ctx, listeners } = core.useComponentCollector(context);
@@ -2440,10 +2443,10 @@ var no_unstable_default_props_default = createRule({
2440
2443
  schema: []
2441
2444
  },
2442
2445
  name: RULE_NAME41,
2443
- create: create39,
2446
+ create: create41,
2444
2447
  defaultOptions: []
2445
2448
  });
2446
- function create39(context) {
2449
+ function create41(context) {
2447
2450
  const { ctx, listeners } = core.useComponentCollector(context);
2448
2451
  const declarators = /* @__PURE__ */ new Map();
2449
2452
  return {
@@ -2534,10 +2537,10 @@ var no_unused_class_component_members_default = createRule({
2534
2537
  schema: []
2535
2538
  },
2536
2539
  name: RULE_NAME42,
2537
- create: create40,
2540
+ create: create42,
2538
2541
  defaultOptions: []
2539
2542
  });
2540
- function create40(context) {
2543
+ function create42(context) {
2541
2544
  const classEntries = [];
2542
2545
  const methodEntries = [];
2543
2546
  const propertyDefs = /* @__PURE__ */ new WeakMap();
@@ -2665,10 +2668,10 @@ var no_unused_state_default = createRule({
2665
2668
  schema: []
2666
2669
  },
2667
2670
  name: RULE_NAME43,
2668
- create: create41,
2671
+ create: create43,
2669
2672
  defaultOptions: []
2670
2673
  });
2671
- function create41(context) {
2674
+ function create43(context) {
2672
2675
  const classEntries = [];
2673
2676
  const methodEntries = [];
2674
2677
  const constructorEntries = [];
@@ -2820,10 +2823,10 @@ var no_use_context_default = createRule({
2820
2823
  schema: []
2821
2824
  },
2822
2825
  name: RULE_NAME44,
2823
- create: create42,
2826
+ create: create44,
2824
2827
  defaultOptions: []
2825
2828
  });
2826
- function create42(context) {
2829
+ function create44(context) {
2827
2830
  if (!context.sourceCode.text.includes("useContext")) return {};
2828
2831
  const settings4 = shared.getSettingsFromContext(context);
2829
2832
  const useContextAlias = /* @__PURE__ */ new Set();
@@ -2916,10 +2919,10 @@ var no_useless_forward_ref_default = createRule({
2916
2919
  schema: []
2917
2920
  },
2918
2921
  name: RULE_NAME45,
2919
- create: create43,
2922
+ create: create45,
2920
2923
  defaultOptions: []
2921
2924
  });
2922
- function create43(context) {
2925
+ function create45(context) {
2923
2926
  return {
2924
2927
  CallExpression(node) {
2925
2928
  if (!core.isForwardRefCall(context, node)) {
@@ -2967,10 +2970,10 @@ var no_useless_fragment_default = createRule({
2967
2970
  }]
2968
2971
  },
2969
2972
  name: RULE_NAME46,
2970
- create: create44,
2973
+ create: create46,
2971
2974
  defaultOptions
2972
2975
  });
2973
- function create44(context, [option]) {
2976
+ function create46(context, [option]) {
2974
2977
  const { allowExpressions = true } = option;
2975
2978
  return {
2976
2979
  JSXElement(node) {
@@ -3100,10 +3103,10 @@ var prefer_destructuring_assignment_default = createRule({
3100
3103
  schema: []
3101
3104
  },
3102
3105
  name: RULE_NAME47,
3103
- create: create45,
3106
+ create: create47,
3104
3107
  defaultOptions: []
3105
3108
  });
3106
- function create45(context) {
3109
+ function create47(context) {
3107
3110
  const { ctx, listeners } = core.useComponentCollector(context);
3108
3111
  const memberExpressionWithNames = [];
3109
3112
  return {
@@ -3181,10 +3184,10 @@ var prefer_react_namespace_import_default = createRule({
3181
3184
  schema: []
3182
3185
  },
3183
3186
  name: RULE_NAME48,
3184
- create: create46,
3187
+ create: create48,
3185
3188
  defaultOptions: []
3186
3189
  });
3187
- function create46(context) {
3190
+ function create48(context) {
3188
3191
  const { importSource } = shared.getSettingsFromContext(context);
3189
3192
  return {
3190
3193
  [`ImportDeclaration[source.value="${importSource}"] ImportDefaultSpecifier`](node) {
@@ -3234,10 +3237,10 @@ var prefer_read_only_props_default = createRule({
3234
3237
  schema: []
3235
3238
  },
3236
3239
  name: RULE_NAME49,
3237
- create: create47,
3240
+ create: create49,
3238
3241
  defaultOptions: []
3239
3242
  });
3240
- function create47(context) {
3243
+ function create49(context) {
3241
3244
  const services = utils.ESLintUtils.getParserServices(context, false);
3242
3245
  const { ctx, listeners } = core.useComponentCollector(context);
3243
3246
  return {
@@ -3250,7 +3253,7 @@ function create47(context) {
3250
3253
  continue;
3251
3254
  }
3252
3255
  const propsType = typeUtils.getConstrainedTypeAtLocation(services, props);
3253
- if (typeUtils.isTypeReadonly(services.program, propsType)) {
3256
+ if (isTypeReadonlyLoose(services, propsType)) {
3254
3257
  continue;
3255
3258
  }
3256
3259
  context.report({ messageId: "preferReadOnlyProps", node: props });
@@ -3258,6 +3261,15 @@ function create47(context) {
3258
3261
  }
3259
3262
  };
3260
3263
  }
3264
+ function isTypeReadonlyLoose(services, type) {
3265
+ if (typeUtils.isTypeReadonly(services.program, type)) return true;
3266
+ try {
3267
+ const im = isImmutableType.getTypeImmutability(services.program, type);
3268
+ return isImmutableType.isUnknown(im) || isImmutableType.isImmutable(im) || isImmutableType.isReadonlyShallow(im) || isImmutableType.isReadonlyDeep(im);
3269
+ } catch {
3270
+ return true;
3271
+ }
3272
+ }
3261
3273
  var RULE_NAME50 = "prefer-shorthand-boolean";
3262
3274
  var RULE_FEATURES49 = [
3263
3275
  "FIX"
@@ -3276,10 +3288,10 @@ var prefer_shorthand_boolean_default = createRule({
3276
3288
  schema: []
3277
3289
  },
3278
3290
  name: RULE_NAME50,
3279
- create: create48,
3291
+ create: create50,
3280
3292
  defaultOptions: []
3281
3293
  });
3282
- function create48(context) {
3294
+ function create50(context) {
3283
3295
  return {
3284
3296
  JSXAttribute(node) {
3285
3297
  const { value } = node;
@@ -3317,10 +3329,10 @@ var prefer_shorthand_fragment_default = createRule({
3317
3329
  schema: []
3318
3330
  },
3319
3331
  name: RULE_NAME51,
3320
- create: create49,
3332
+ create: create51,
3321
3333
  defaultOptions: []
3322
3334
  });
3323
- function create49(context) {
3335
+ function create51(context) {
3324
3336
  return {
3325
3337
  JSXElement(node) {
3326
3338
  if (!JSX8__namespace.isFragmentElement(node)) return;
@@ -3360,10 +3372,10 @@ var use_jsx_vars_default = createRule({
3360
3372
  schema: []
3361
3373
  },
3362
3374
  name: RULE_NAME52,
3363
- create: create50,
3375
+ create: create52,
3364
3376
  defaultOptions: []
3365
3377
  });
3366
- function create50(context) {
3378
+ function create52(context) {
3367
3379
  return {
3368
3380
  JSXOpeningElement(node) {
3369
3381
  switch (node.name.type) {