eslint-plugin-react-dom 1.37.1 → 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.
- package/dist/index.js +157 -154
- package/dist/index.mjs +157 -154
- package/package.json +7 -7
package/dist/index.js
CHANGED
|
@@ -66,7 +66,7 @@ var settings = {
|
|
|
66
66
|
|
|
67
67
|
// package.json
|
|
68
68
|
var name2 = "eslint-plugin-react-dom";
|
|
69
|
-
var version = "1.37.1";
|
|
69
|
+
var version = "1.37.2-beta.1";
|
|
70
70
|
var createRule = shared.createRuleForPlugin("dom");
|
|
71
71
|
|
|
72
72
|
// src/utils/find-custom-component.ts
|
|
@@ -264,53 +264,54 @@ var no_hydrate_default = createRule({
|
|
|
264
264
|
schema: []
|
|
265
265
|
},
|
|
266
266
|
name: RULE_NAME5,
|
|
267
|
-
create
|
|
268
|
-
if (!context.sourceCode.text.includes("hydrate")) return {};
|
|
269
|
-
const settings2 = shared.getSettingsFromContext(context);
|
|
270
|
-
if (compareVersions.compare(settings2.version, "18.0.0", "<")) return {};
|
|
271
|
-
const reactDomNames = /* @__PURE__ */ new Set();
|
|
272
|
-
const hydrateNames = /* @__PURE__ */ new Set();
|
|
273
|
-
return {
|
|
274
|
-
CallExpression(node) {
|
|
275
|
-
switch (true) {
|
|
276
|
-
case (node.callee.type === types.AST_NODE_TYPES.Identifier && hydrateNames.has(node.callee.name)):
|
|
277
|
-
context.report({
|
|
278
|
-
messageId: "noHydrate",
|
|
279
|
-
node,
|
|
280
|
-
fix: getFix(context, node)
|
|
281
|
-
});
|
|
282
|
-
return;
|
|
283
|
-
case (node.callee.type === types.AST_NODE_TYPES.MemberExpression && node.callee.object.type === types.AST_NODE_TYPES.Identifier && node.callee.property.type === types.AST_NODE_TYPES.Identifier && node.callee.property.name === "hydrate" && reactDomNames.has(node.callee.object.name)):
|
|
284
|
-
context.report({
|
|
285
|
-
messageId: "noHydrate",
|
|
286
|
-
node,
|
|
287
|
-
fix: getFix(context, node)
|
|
288
|
-
});
|
|
289
|
-
return;
|
|
290
|
-
}
|
|
291
|
-
},
|
|
292
|
-
ImportDeclaration(node) {
|
|
293
|
-
const [baseSource] = node.source.value.split("/");
|
|
294
|
-
if (baseSource !== "react-dom") return;
|
|
295
|
-
for (const specifier of node.specifiers) {
|
|
296
|
-
switch (specifier.type) {
|
|
297
|
-
case types.AST_NODE_TYPES.ImportSpecifier:
|
|
298
|
-
if (specifier.imported.type !== types.AST_NODE_TYPES.Identifier) continue;
|
|
299
|
-
if (specifier.imported.name === "hydrate") {
|
|
300
|
-
hydrateNames.add(specifier.local.name);
|
|
301
|
-
}
|
|
302
|
-
continue;
|
|
303
|
-
case types.AST_NODE_TYPES.ImportDefaultSpecifier:
|
|
304
|
-
case types.AST_NODE_TYPES.ImportNamespaceSpecifier:
|
|
305
|
-
reactDomNames.add(specifier.local.name);
|
|
306
|
-
continue;
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
};
|
|
311
|
-
},
|
|
267
|
+
create: create5,
|
|
312
268
|
defaultOptions: []
|
|
313
269
|
});
|
|
270
|
+
function create5(context) {
|
|
271
|
+
if (!context.sourceCode.text.includes("hydrate")) return {};
|
|
272
|
+
const settings2 = shared.getSettingsFromContext(context);
|
|
273
|
+
if (compareVersions.compare(settings2.version, "18.0.0", "<")) return {};
|
|
274
|
+
const reactDomNames = /* @__PURE__ */ new Set();
|
|
275
|
+
const hydrateNames = /* @__PURE__ */ new Set();
|
|
276
|
+
return {
|
|
277
|
+
CallExpression(node) {
|
|
278
|
+
switch (true) {
|
|
279
|
+
case (node.callee.type === types.AST_NODE_TYPES.Identifier && hydrateNames.has(node.callee.name)):
|
|
280
|
+
context.report({
|
|
281
|
+
messageId: "noHydrate",
|
|
282
|
+
node,
|
|
283
|
+
fix: getFix(context, node)
|
|
284
|
+
});
|
|
285
|
+
return;
|
|
286
|
+
case (node.callee.type === types.AST_NODE_TYPES.MemberExpression && node.callee.object.type === types.AST_NODE_TYPES.Identifier && node.callee.property.type === types.AST_NODE_TYPES.Identifier && node.callee.property.name === "hydrate" && reactDomNames.has(node.callee.object.name)):
|
|
287
|
+
context.report({
|
|
288
|
+
messageId: "noHydrate",
|
|
289
|
+
node,
|
|
290
|
+
fix: getFix(context, node)
|
|
291
|
+
});
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
},
|
|
295
|
+
ImportDeclaration(node) {
|
|
296
|
+
const [baseSource] = node.source.value.split("/");
|
|
297
|
+
if (baseSource !== "react-dom") return;
|
|
298
|
+
for (const specifier of node.specifiers) {
|
|
299
|
+
switch (specifier.type) {
|
|
300
|
+
case types.AST_NODE_TYPES.ImportSpecifier:
|
|
301
|
+
if (specifier.imported.type !== types.AST_NODE_TYPES.Identifier) continue;
|
|
302
|
+
if (specifier.imported.name === "hydrate") {
|
|
303
|
+
hydrateNames.add(specifier.local.name);
|
|
304
|
+
}
|
|
305
|
+
continue;
|
|
306
|
+
case types.AST_NODE_TYPES.ImportDefaultSpecifier:
|
|
307
|
+
case types.AST_NODE_TYPES.ImportNamespaceSpecifier:
|
|
308
|
+
reactDomNames.add(specifier.local.name);
|
|
309
|
+
continue;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
};
|
|
314
|
+
}
|
|
314
315
|
function getFix(context, node) {
|
|
315
316
|
const getText2 = (n) => context.sourceCode.getText(n);
|
|
316
317
|
return (fixer) => {
|
|
@@ -337,10 +338,10 @@ var no_missing_button_type_default = createRule({
|
|
|
337
338
|
schema: []
|
|
338
339
|
},
|
|
339
340
|
name: RULE_NAME6,
|
|
340
|
-
create:
|
|
341
|
+
create: create6,
|
|
341
342
|
defaultOptions: []
|
|
342
343
|
});
|
|
343
|
-
function
|
|
344
|
+
function create6(context) {
|
|
344
345
|
const settings2 = shared.getSettingsFromContext(context);
|
|
345
346
|
const polymorphicPropName = settings2.polymorphicPropName;
|
|
346
347
|
const additionalComponents = settings2.additionalComponents.filter((c) => c.as === "button");
|
|
@@ -418,10 +419,10 @@ var no_missing_iframe_sandbox_default = createRule({
|
|
|
418
419
|
schema: []
|
|
419
420
|
},
|
|
420
421
|
name: RULE_NAME7,
|
|
421
|
-
create:
|
|
422
|
+
create: create7,
|
|
422
423
|
defaultOptions: []
|
|
423
424
|
});
|
|
424
|
-
function
|
|
425
|
+
function create7(context) {
|
|
425
426
|
const settings2 = shared.getSettingsFromContext(context);
|
|
426
427
|
const polymorphicPropName = settings2.polymorphicPropName;
|
|
427
428
|
const additionalComponents = settings2.additionalComponents.filter((c) => c.as === "iframe");
|
|
@@ -477,10 +478,10 @@ var no_namespace_default = createRule({
|
|
|
477
478
|
schema: []
|
|
478
479
|
},
|
|
479
480
|
name: RULE_NAME8,
|
|
480
|
-
create:
|
|
481
|
+
create: create8,
|
|
481
482
|
defaultOptions: []
|
|
482
483
|
});
|
|
483
|
-
function
|
|
484
|
+
function create8(context) {
|
|
484
485
|
return {
|
|
485
486
|
JSXElement(node) {
|
|
486
487
|
const name3 = JSX__namespace.getElementType(node);
|
|
@@ -515,53 +516,54 @@ var no_render_default = createRule({
|
|
|
515
516
|
schema: []
|
|
516
517
|
},
|
|
517
518
|
name: RULE_NAME9,
|
|
518
|
-
create
|
|
519
|
-
if (!context.sourceCode.text.includes("render")) return {};
|
|
520
|
-
const settings2 = shared.getSettingsFromContext(context);
|
|
521
|
-
if (compareVersions.compare(settings2.version, "18.0.0", "<")) return {};
|
|
522
|
-
const reactDomNames = /* @__PURE__ */ new Set();
|
|
523
|
-
const renderNames = /* @__PURE__ */ new Set();
|
|
524
|
-
return {
|
|
525
|
-
CallExpression(node) {
|
|
526
|
-
switch (true) {
|
|
527
|
-
case (node.callee.type === types.AST_NODE_TYPES.Identifier && renderNames.has(node.callee.name)):
|
|
528
|
-
context.report({
|
|
529
|
-
messageId: "noRender",
|
|
530
|
-
node,
|
|
531
|
-
fix: getFix2(context, node)
|
|
532
|
-
});
|
|
533
|
-
return;
|
|
534
|
-
case (node.callee.type === types.AST_NODE_TYPES.MemberExpression && node.callee.object.type === types.AST_NODE_TYPES.Identifier && node.callee.property.type === types.AST_NODE_TYPES.Identifier && node.callee.property.name === "render" && reactDomNames.has(node.callee.object.name)):
|
|
535
|
-
context.report({
|
|
536
|
-
messageId: "noRender",
|
|
537
|
-
node,
|
|
538
|
-
fix: getFix2(context, node)
|
|
539
|
-
});
|
|
540
|
-
return;
|
|
541
|
-
}
|
|
542
|
-
},
|
|
543
|
-
ImportDeclaration(node) {
|
|
544
|
-
const [baseSource] = node.source.value.split("/");
|
|
545
|
-
if (baseSource !== "react-dom") return;
|
|
546
|
-
for (const specifier of node.specifiers) {
|
|
547
|
-
switch (specifier.type) {
|
|
548
|
-
case types.AST_NODE_TYPES.ImportSpecifier:
|
|
549
|
-
if (specifier.imported.type !== types.AST_NODE_TYPES.Identifier) continue;
|
|
550
|
-
if (specifier.imported.name === "render") {
|
|
551
|
-
renderNames.add(specifier.local.name);
|
|
552
|
-
}
|
|
553
|
-
continue;
|
|
554
|
-
case types.AST_NODE_TYPES.ImportDefaultSpecifier:
|
|
555
|
-
case types.AST_NODE_TYPES.ImportNamespaceSpecifier:
|
|
556
|
-
reactDomNames.add(specifier.local.name);
|
|
557
|
-
continue;
|
|
558
|
-
}
|
|
559
|
-
}
|
|
560
|
-
}
|
|
561
|
-
};
|
|
562
|
-
},
|
|
519
|
+
create: create9,
|
|
563
520
|
defaultOptions: []
|
|
564
521
|
});
|
|
522
|
+
function create9(context) {
|
|
523
|
+
if (!context.sourceCode.text.includes("render")) return {};
|
|
524
|
+
const settings2 = shared.getSettingsFromContext(context);
|
|
525
|
+
if (compareVersions.compare(settings2.version, "18.0.0", "<")) return {};
|
|
526
|
+
const reactDomNames = /* @__PURE__ */ new Set();
|
|
527
|
+
const renderNames = /* @__PURE__ */ new Set();
|
|
528
|
+
return {
|
|
529
|
+
CallExpression(node) {
|
|
530
|
+
switch (true) {
|
|
531
|
+
case (node.callee.type === types.AST_NODE_TYPES.Identifier && renderNames.has(node.callee.name)):
|
|
532
|
+
context.report({
|
|
533
|
+
messageId: "noRender",
|
|
534
|
+
node,
|
|
535
|
+
fix: getFix2(context, node)
|
|
536
|
+
});
|
|
537
|
+
return;
|
|
538
|
+
case (node.callee.type === types.AST_NODE_TYPES.MemberExpression && node.callee.object.type === types.AST_NODE_TYPES.Identifier && node.callee.property.type === types.AST_NODE_TYPES.Identifier && node.callee.property.name === "render" && reactDomNames.has(node.callee.object.name)):
|
|
539
|
+
context.report({
|
|
540
|
+
messageId: "noRender",
|
|
541
|
+
node,
|
|
542
|
+
fix: getFix2(context, node)
|
|
543
|
+
});
|
|
544
|
+
return;
|
|
545
|
+
}
|
|
546
|
+
},
|
|
547
|
+
ImportDeclaration(node) {
|
|
548
|
+
const [baseSource] = node.source.value.split("/");
|
|
549
|
+
if (baseSource !== "react-dom") return;
|
|
550
|
+
for (const specifier of node.specifiers) {
|
|
551
|
+
switch (specifier.type) {
|
|
552
|
+
case types.AST_NODE_TYPES.ImportSpecifier:
|
|
553
|
+
if (specifier.imported.type !== types.AST_NODE_TYPES.Identifier) continue;
|
|
554
|
+
if (specifier.imported.name === "render") {
|
|
555
|
+
renderNames.add(specifier.local.name);
|
|
556
|
+
}
|
|
557
|
+
continue;
|
|
558
|
+
case types.AST_NODE_TYPES.ImportDefaultSpecifier:
|
|
559
|
+
case types.AST_NODE_TYPES.ImportNamespaceSpecifier:
|
|
560
|
+
reactDomNames.add(specifier.local.name);
|
|
561
|
+
continue;
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
};
|
|
566
|
+
}
|
|
565
567
|
function getFix2(context, node) {
|
|
566
568
|
const getText2 = (n) => context.sourceCode.getText(n);
|
|
567
569
|
return (fixer) => {
|
|
@@ -595,10 +597,10 @@ var no_render_return_value_default = createRule({
|
|
|
595
597
|
schema: []
|
|
596
598
|
},
|
|
597
599
|
name: RULE_NAME10,
|
|
598
|
-
create:
|
|
600
|
+
create: create10,
|
|
599
601
|
defaultOptions: []
|
|
600
602
|
});
|
|
601
|
-
function
|
|
603
|
+
function create10(context) {
|
|
602
604
|
return {
|
|
603
605
|
CallExpression(node) {
|
|
604
606
|
const { callee, parent } = node;
|
|
@@ -640,10 +642,10 @@ var no_script_url_default = createRule({
|
|
|
640
642
|
schema: []
|
|
641
643
|
},
|
|
642
644
|
name: RULE_NAME11,
|
|
643
|
-
create:
|
|
645
|
+
create: create11,
|
|
644
646
|
defaultOptions: []
|
|
645
647
|
});
|
|
646
|
-
function
|
|
648
|
+
function create11(context) {
|
|
647
649
|
return {
|
|
648
650
|
JSXAttribute(node) {
|
|
649
651
|
if (node.name.type !== types.AST_NODE_TYPES.JSXIdentifier || node.value == null) {
|
|
@@ -1626,10 +1628,10 @@ var no_unknown_property_default = createRule({
|
|
|
1626
1628
|
}]
|
|
1627
1629
|
},
|
|
1628
1630
|
name: RULE_NAME12,
|
|
1629
|
-
create:
|
|
1631
|
+
create: create12,
|
|
1630
1632
|
defaultOptions: []
|
|
1631
1633
|
});
|
|
1632
|
-
function
|
|
1634
|
+
function create12(context) {
|
|
1633
1635
|
const report = shared.createReport(context);
|
|
1634
1636
|
function getIgnoreConfig() {
|
|
1635
1637
|
return context.options[0]?.ignore || DEFAULTS.ignore;
|
|
@@ -1744,10 +1746,10 @@ var no_unsafe_iframe_sandbox_default = createRule({
|
|
|
1744
1746
|
schema: []
|
|
1745
1747
|
},
|
|
1746
1748
|
name: RULE_NAME13,
|
|
1747
|
-
create:
|
|
1749
|
+
create: create13,
|
|
1748
1750
|
defaultOptions: []
|
|
1749
1751
|
});
|
|
1750
|
-
function
|
|
1752
|
+
function create13(context) {
|
|
1751
1753
|
const settings2 = shared.getSettingsFromContext(context);
|
|
1752
1754
|
const polymorphicPropName = settings2.polymorphicPropName;
|
|
1753
1755
|
const additionalComponents = settings2.additionalComponents.filter((c) => c.as === "iframe");
|
|
@@ -1813,10 +1815,10 @@ var no_unsafe_target_blank_default = createRule({
|
|
|
1813
1815
|
schema: []
|
|
1814
1816
|
},
|
|
1815
1817
|
name: RULE_NAME14,
|
|
1816
|
-
create:
|
|
1818
|
+
create: create14,
|
|
1817
1819
|
defaultOptions: []
|
|
1818
1820
|
});
|
|
1819
|
-
function
|
|
1821
|
+
function create14(context) {
|
|
1820
1822
|
const settings2 = shared.getSettingsFromContext(context);
|
|
1821
1823
|
const polymorphicPropName = settings2.polymorphicPropName;
|
|
1822
1824
|
const additionalComponents = settings2.additionalComponents.filter((c) => c.as === "a");
|
|
@@ -1881,53 +1883,54 @@ var no_use_form_state_default = createRule({
|
|
|
1881
1883
|
schema: []
|
|
1882
1884
|
},
|
|
1883
1885
|
name: RULE_NAME15,
|
|
1884
|
-
create
|
|
1885
|
-
if (!context.sourceCode.text.includes("useFormState")) return {};
|
|
1886
|
-
const settings2 = shared.getSettingsFromContext(context);
|
|
1887
|
-
if (compareVersions.compare(settings2.version, "19.0.0", "<")) return {};
|
|
1888
|
-
const reactDomNames = /* @__PURE__ */ new Set();
|
|
1889
|
-
const useFormStateNames = /* @__PURE__ */ new Set();
|
|
1890
|
-
return {
|
|
1891
|
-
CallExpression(node) {
|
|
1892
|
-
switch (true) {
|
|
1893
|
-
case (node.callee.type === types.AST_NODE_TYPES.Identifier && useFormStateNames.has(node.callee.name)):
|
|
1894
|
-
context.report({
|
|
1895
|
-
messageId: "noUseFormState",
|
|
1896
|
-
node,
|
|
1897
|
-
fix: getFix3(context, node)
|
|
1898
|
-
});
|
|
1899
|
-
return;
|
|
1900
|
-
case (node.callee.type === types.AST_NODE_TYPES.MemberExpression && node.callee.object.type === types.AST_NODE_TYPES.Identifier && node.callee.property.type === types.AST_NODE_TYPES.Identifier && node.callee.property.name === "useFormState" && reactDomNames.has(node.callee.object.name)):
|
|
1901
|
-
context.report({
|
|
1902
|
-
messageId: "noUseFormState",
|
|
1903
|
-
node,
|
|
1904
|
-
fix: getFix3(context, node)
|
|
1905
|
-
});
|
|
1906
|
-
return;
|
|
1907
|
-
}
|
|
1908
|
-
},
|
|
1909
|
-
ImportDeclaration(node) {
|
|
1910
|
-
const [baseSource] = node.source.value.split("/");
|
|
1911
|
-
if (baseSource !== "react-dom") return;
|
|
1912
|
-
for (const specifier of node.specifiers) {
|
|
1913
|
-
switch (specifier.type) {
|
|
1914
|
-
case types.AST_NODE_TYPES.ImportSpecifier:
|
|
1915
|
-
if (specifier.imported.type !== types.AST_NODE_TYPES.Identifier) continue;
|
|
1916
|
-
if (specifier.imported.name === "useFormState") {
|
|
1917
|
-
useFormStateNames.add(specifier.local.name);
|
|
1918
|
-
}
|
|
1919
|
-
continue;
|
|
1920
|
-
case types.AST_NODE_TYPES.ImportDefaultSpecifier:
|
|
1921
|
-
case types.AST_NODE_TYPES.ImportNamespaceSpecifier:
|
|
1922
|
-
reactDomNames.add(specifier.local.name);
|
|
1923
|
-
continue;
|
|
1924
|
-
}
|
|
1925
|
-
}
|
|
1926
|
-
}
|
|
1927
|
-
};
|
|
1928
|
-
},
|
|
1886
|
+
create: create15,
|
|
1929
1887
|
defaultOptions: []
|
|
1930
1888
|
});
|
|
1889
|
+
function create15(context) {
|
|
1890
|
+
if (!context.sourceCode.text.includes("useFormState")) return {};
|
|
1891
|
+
const settings2 = shared.getSettingsFromContext(context);
|
|
1892
|
+
if (compareVersions.compare(settings2.version, "19.0.0", "<")) return {};
|
|
1893
|
+
const reactDomNames = /* @__PURE__ */ new Set();
|
|
1894
|
+
const useFormStateNames = /* @__PURE__ */ new Set();
|
|
1895
|
+
return {
|
|
1896
|
+
CallExpression(node) {
|
|
1897
|
+
switch (true) {
|
|
1898
|
+
case (node.callee.type === types.AST_NODE_TYPES.Identifier && useFormStateNames.has(node.callee.name)):
|
|
1899
|
+
context.report({
|
|
1900
|
+
messageId: "noUseFormState",
|
|
1901
|
+
node,
|
|
1902
|
+
fix: getFix3(context, node)
|
|
1903
|
+
});
|
|
1904
|
+
return;
|
|
1905
|
+
case (node.callee.type === types.AST_NODE_TYPES.MemberExpression && node.callee.object.type === types.AST_NODE_TYPES.Identifier && node.callee.property.type === types.AST_NODE_TYPES.Identifier && node.callee.property.name === "useFormState" && reactDomNames.has(node.callee.object.name)):
|
|
1906
|
+
context.report({
|
|
1907
|
+
messageId: "noUseFormState",
|
|
1908
|
+
node,
|
|
1909
|
+
fix: getFix3(context, node)
|
|
1910
|
+
});
|
|
1911
|
+
return;
|
|
1912
|
+
}
|
|
1913
|
+
},
|
|
1914
|
+
ImportDeclaration(node) {
|
|
1915
|
+
const [baseSource] = node.source.value.split("/");
|
|
1916
|
+
if (baseSource !== "react-dom") return;
|
|
1917
|
+
for (const specifier of node.specifiers) {
|
|
1918
|
+
switch (specifier.type) {
|
|
1919
|
+
case types.AST_NODE_TYPES.ImportSpecifier:
|
|
1920
|
+
if (specifier.imported.type !== types.AST_NODE_TYPES.Identifier) continue;
|
|
1921
|
+
if (specifier.imported.name === "useFormState") {
|
|
1922
|
+
useFormStateNames.add(specifier.local.name);
|
|
1923
|
+
}
|
|
1924
|
+
continue;
|
|
1925
|
+
case types.AST_NODE_TYPES.ImportDefaultSpecifier:
|
|
1926
|
+
case types.AST_NODE_TYPES.ImportNamespaceSpecifier:
|
|
1927
|
+
reactDomNames.add(specifier.local.name);
|
|
1928
|
+
continue;
|
|
1929
|
+
}
|
|
1930
|
+
}
|
|
1931
|
+
}
|
|
1932
|
+
};
|
|
1933
|
+
}
|
|
1931
1934
|
function getFix3(context, node) {
|
|
1932
1935
|
const { importSource } = shared.getSettingsFromContext(context);
|
|
1933
1936
|
return (fixer) => {
|
|
@@ -1971,10 +1974,10 @@ var no_void_elements_with_children_default = createRule({
|
|
|
1971
1974
|
schema: []
|
|
1972
1975
|
},
|
|
1973
1976
|
name: RULE_NAME16,
|
|
1974
|
-
create:
|
|
1977
|
+
create: create16,
|
|
1975
1978
|
defaultOptions: []
|
|
1976
1979
|
});
|
|
1977
|
-
function
|
|
1980
|
+
function create16(context) {
|
|
1978
1981
|
return {
|
|
1979
1982
|
JSXElement(node) {
|
|
1980
1983
|
const elementName = JSX__namespace.getElementType(node);
|
package/dist/index.mjs
CHANGED
|
@@ -43,7 +43,7 @@ var settings = {
|
|
|
43
43
|
|
|
44
44
|
// package.json
|
|
45
45
|
var name2 = "eslint-plugin-react-dom";
|
|
46
|
-
var version = "1.37.1";
|
|
46
|
+
var version = "1.37.2-beta.1";
|
|
47
47
|
var createRule = createRuleForPlugin("dom");
|
|
48
48
|
|
|
49
49
|
// src/utils/find-custom-component.ts
|
|
@@ -241,53 +241,54 @@ var no_hydrate_default = createRule({
|
|
|
241
241
|
schema: []
|
|
242
242
|
},
|
|
243
243
|
name: RULE_NAME5,
|
|
244
|
-
create
|
|
245
|
-
if (!context.sourceCode.text.includes("hydrate")) return {};
|
|
246
|
-
const settings2 = getSettingsFromContext(context);
|
|
247
|
-
if (compare(settings2.version, "18.0.0", "<")) return {};
|
|
248
|
-
const reactDomNames = /* @__PURE__ */ new Set();
|
|
249
|
-
const hydrateNames = /* @__PURE__ */ new Set();
|
|
250
|
-
return {
|
|
251
|
-
CallExpression(node) {
|
|
252
|
-
switch (true) {
|
|
253
|
-
case (node.callee.type === AST_NODE_TYPES.Identifier && hydrateNames.has(node.callee.name)):
|
|
254
|
-
context.report({
|
|
255
|
-
messageId: "noHydrate",
|
|
256
|
-
node,
|
|
257
|
-
fix: getFix(context, node)
|
|
258
|
-
});
|
|
259
|
-
return;
|
|
260
|
-
case (node.callee.type === AST_NODE_TYPES.MemberExpression && node.callee.object.type === AST_NODE_TYPES.Identifier && node.callee.property.type === AST_NODE_TYPES.Identifier && node.callee.property.name === "hydrate" && reactDomNames.has(node.callee.object.name)):
|
|
261
|
-
context.report({
|
|
262
|
-
messageId: "noHydrate",
|
|
263
|
-
node,
|
|
264
|
-
fix: getFix(context, node)
|
|
265
|
-
});
|
|
266
|
-
return;
|
|
267
|
-
}
|
|
268
|
-
},
|
|
269
|
-
ImportDeclaration(node) {
|
|
270
|
-
const [baseSource] = node.source.value.split("/");
|
|
271
|
-
if (baseSource !== "react-dom") return;
|
|
272
|
-
for (const specifier of node.specifiers) {
|
|
273
|
-
switch (specifier.type) {
|
|
274
|
-
case AST_NODE_TYPES.ImportSpecifier:
|
|
275
|
-
if (specifier.imported.type !== AST_NODE_TYPES.Identifier) continue;
|
|
276
|
-
if (specifier.imported.name === "hydrate") {
|
|
277
|
-
hydrateNames.add(specifier.local.name);
|
|
278
|
-
}
|
|
279
|
-
continue;
|
|
280
|
-
case AST_NODE_TYPES.ImportDefaultSpecifier:
|
|
281
|
-
case AST_NODE_TYPES.ImportNamespaceSpecifier:
|
|
282
|
-
reactDomNames.add(specifier.local.name);
|
|
283
|
-
continue;
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
}
|
|
287
|
-
};
|
|
288
|
-
},
|
|
244
|
+
create: create5,
|
|
289
245
|
defaultOptions: []
|
|
290
246
|
});
|
|
247
|
+
function create5(context) {
|
|
248
|
+
if (!context.sourceCode.text.includes("hydrate")) return {};
|
|
249
|
+
const settings2 = getSettingsFromContext(context);
|
|
250
|
+
if (compare(settings2.version, "18.0.0", "<")) return {};
|
|
251
|
+
const reactDomNames = /* @__PURE__ */ new Set();
|
|
252
|
+
const hydrateNames = /* @__PURE__ */ new Set();
|
|
253
|
+
return {
|
|
254
|
+
CallExpression(node) {
|
|
255
|
+
switch (true) {
|
|
256
|
+
case (node.callee.type === AST_NODE_TYPES.Identifier && hydrateNames.has(node.callee.name)):
|
|
257
|
+
context.report({
|
|
258
|
+
messageId: "noHydrate",
|
|
259
|
+
node,
|
|
260
|
+
fix: getFix(context, node)
|
|
261
|
+
});
|
|
262
|
+
return;
|
|
263
|
+
case (node.callee.type === AST_NODE_TYPES.MemberExpression && node.callee.object.type === AST_NODE_TYPES.Identifier && node.callee.property.type === AST_NODE_TYPES.Identifier && node.callee.property.name === "hydrate" && reactDomNames.has(node.callee.object.name)):
|
|
264
|
+
context.report({
|
|
265
|
+
messageId: "noHydrate",
|
|
266
|
+
node,
|
|
267
|
+
fix: getFix(context, node)
|
|
268
|
+
});
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
271
|
+
},
|
|
272
|
+
ImportDeclaration(node) {
|
|
273
|
+
const [baseSource] = node.source.value.split("/");
|
|
274
|
+
if (baseSource !== "react-dom") return;
|
|
275
|
+
for (const specifier of node.specifiers) {
|
|
276
|
+
switch (specifier.type) {
|
|
277
|
+
case AST_NODE_TYPES.ImportSpecifier:
|
|
278
|
+
if (specifier.imported.type !== AST_NODE_TYPES.Identifier) continue;
|
|
279
|
+
if (specifier.imported.name === "hydrate") {
|
|
280
|
+
hydrateNames.add(specifier.local.name);
|
|
281
|
+
}
|
|
282
|
+
continue;
|
|
283
|
+
case AST_NODE_TYPES.ImportDefaultSpecifier:
|
|
284
|
+
case AST_NODE_TYPES.ImportNamespaceSpecifier:
|
|
285
|
+
reactDomNames.add(specifier.local.name);
|
|
286
|
+
continue;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
};
|
|
291
|
+
}
|
|
291
292
|
function getFix(context, node) {
|
|
292
293
|
const getText2 = (n) => context.sourceCode.getText(n);
|
|
293
294
|
return (fixer) => {
|
|
@@ -314,10 +315,10 @@ var no_missing_button_type_default = createRule({
|
|
|
314
315
|
schema: []
|
|
315
316
|
},
|
|
316
317
|
name: RULE_NAME6,
|
|
317
|
-
create:
|
|
318
|
+
create: create6,
|
|
318
319
|
defaultOptions: []
|
|
319
320
|
});
|
|
320
|
-
function
|
|
321
|
+
function create6(context) {
|
|
321
322
|
const settings2 = getSettingsFromContext(context);
|
|
322
323
|
const polymorphicPropName = settings2.polymorphicPropName;
|
|
323
324
|
const additionalComponents = settings2.additionalComponents.filter((c) => c.as === "button");
|
|
@@ -395,10 +396,10 @@ var no_missing_iframe_sandbox_default = createRule({
|
|
|
395
396
|
schema: []
|
|
396
397
|
},
|
|
397
398
|
name: RULE_NAME7,
|
|
398
|
-
create:
|
|
399
|
+
create: create7,
|
|
399
400
|
defaultOptions: []
|
|
400
401
|
});
|
|
401
|
-
function
|
|
402
|
+
function create7(context) {
|
|
402
403
|
const settings2 = getSettingsFromContext(context);
|
|
403
404
|
const polymorphicPropName = settings2.polymorphicPropName;
|
|
404
405
|
const additionalComponents = settings2.additionalComponents.filter((c) => c.as === "iframe");
|
|
@@ -454,10 +455,10 @@ var no_namespace_default = createRule({
|
|
|
454
455
|
schema: []
|
|
455
456
|
},
|
|
456
457
|
name: RULE_NAME8,
|
|
457
|
-
create:
|
|
458
|
+
create: create8,
|
|
458
459
|
defaultOptions: []
|
|
459
460
|
});
|
|
460
|
-
function
|
|
461
|
+
function create8(context) {
|
|
461
462
|
return {
|
|
462
463
|
JSXElement(node) {
|
|
463
464
|
const name3 = JSX.getElementType(node);
|
|
@@ -492,53 +493,54 @@ var no_render_default = createRule({
|
|
|
492
493
|
schema: []
|
|
493
494
|
},
|
|
494
495
|
name: RULE_NAME9,
|
|
495
|
-
create
|
|
496
|
-
if (!context.sourceCode.text.includes("render")) return {};
|
|
497
|
-
const settings2 = getSettingsFromContext(context);
|
|
498
|
-
if (compare(settings2.version, "18.0.0", "<")) return {};
|
|
499
|
-
const reactDomNames = /* @__PURE__ */ new Set();
|
|
500
|
-
const renderNames = /* @__PURE__ */ new Set();
|
|
501
|
-
return {
|
|
502
|
-
CallExpression(node) {
|
|
503
|
-
switch (true) {
|
|
504
|
-
case (node.callee.type === AST_NODE_TYPES.Identifier && renderNames.has(node.callee.name)):
|
|
505
|
-
context.report({
|
|
506
|
-
messageId: "noRender",
|
|
507
|
-
node,
|
|
508
|
-
fix: getFix2(context, node)
|
|
509
|
-
});
|
|
510
|
-
return;
|
|
511
|
-
case (node.callee.type === AST_NODE_TYPES.MemberExpression && node.callee.object.type === AST_NODE_TYPES.Identifier && node.callee.property.type === AST_NODE_TYPES.Identifier && node.callee.property.name === "render" && reactDomNames.has(node.callee.object.name)):
|
|
512
|
-
context.report({
|
|
513
|
-
messageId: "noRender",
|
|
514
|
-
node,
|
|
515
|
-
fix: getFix2(context, node)
|
|
516
|
-
});
|
|
517
|
-
return;
|
|
518
|
-
}
|
|
519
|
-
},
|
|
520
|
-
ImportDeclaration(node) {
|
|
521
|
-
const [baseSource] = node.source.value.split("/");
|
|
522
|
-
if (baseSource !== "react-dom") return;
|
|
523
|
-
for (const specifier of node.specifiers) {
|
|
524
|
-
switch (specifier.type) {
|
|
525
|
-
case AST_NODE_TYPES.ImportSpecifier:
|
|
526
|
-
if (specifier.imported.type !== AST_NODE_TYPES.Identifier) continue;
|
|
527
|
-
if (specifier.imported.name === "render") {
|
|
528
|
-
renderNames.add(specifier.local.name);
|
|
529
|
-
}
|
|
530
|
-
continue;
|
|
531
|
-
case AST_NODE_TYPES.ImportDefaultSpecifier:
|
|
532
|
-
case AST_NODE_TYPES.ImportNamespaceSpecifier:
|
|
533
|
-
reactDomNames.add(specifier.local.name);
|
|
534
|
-
continue;
|
|
535
|
-
}
|
|
536
|
-
}
|
|
537
|
-
}
|
|
538
|
-
};
|
|
539
|
-
},
|
|
496
|
+
create: create9,
|
|
540
497
|
defaultOptions: []
|
|
541
498
|
});
|
|
499
|
+
function create9(context) {
|
|
500
|
+
if (!context.sourceCode.text.includes("render")) return {};
|
|
501
|
+
const settings2 = getSettingsFromContext(context);
|
|
502
|
+
if (compare(settings2.version, "18.0.0", "<")) return {};
|
|
503
|
+
const reactDomNames = /* @__PURE__ */ new Set();
|
|
504
|
+
const renderNames = /* @__PURE__ */ new Set();
|
|
505
|
+
return {
|
|
506
|
+
CallExpression(node) {
|
|
507
|
+
switch (true) {
|
|
508
|
+
case (node.callee.type === AST_NODE_TYPES.Identifier && renderNames.has(node.callee.name)):
|
|
509
|
+
context.report({
|
|
510
|
+
messageId: "noRender",
|
|
511
|
+
node,
|
|
512
|
+
fix: getFix2(context, node)
|
|
513
|
+
});
|
|
514
|
+
return;
|
|
515
|
+
case (node.callee.type === AST_NODE_TYPES.MemberExpression && node.callee.object.type === AST_NODE_TYPES.Identifier && node.callee.property.type === AST_NODE_TYPES.Identifier && node.callee.property.name === "render" && reactDomNames.has(node.callee.object.name)):
|
|
516
|
+
context.report({
|
|
517
|
+
messageId: "noRender",
|
|
518
|
+
node,
|
|
519
|
+
fix: getFix2(context, node)
|
|
520
|
+
});
|
|
521
|
+
return;
|
|
522
|
+
}
|
|
523
|
+
},
|
|
524
|
+
ImportDeclaration(node) {
|
|
525
|
+
const [baseSource] = node.source.value.split("/");
|
|
526
|
+
if (baseSource !== "react-dom") return;
|
|
527
|
+
for (const specifier of node.specifiers) {
|
|
528
|
+
switch (specifier.type) {
|
|
529
|
+
case AST_NODE_TYPES.ImportSpecifier:
|
|
530
|
+
if (specifier.imported.type !== AST_NODE_TYPES.Identifier) continue;
|
|
531
|
+
if (specifier.imported.name === "render") {
|
|
532
|
+
renderNames.add(specifier.local.name);
|
|
533
|
+
}
|
|
534
|
+
continue;
|
|
535
|
+
case AST_NODE_TYPES.ImportDefaultSpecifier:
|
|
536
|
+
case AST_NODE_TYPES.ImportNamespaceSpecifier:
|
|
537
|
+
reactDomNames.add(specifier.local.name);
|
|
538
|
+
continue;
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
};
|
|
543
|
+
}
|
|
542
544
|
function getFix2(context, node) {
|
|
543
545
|
const getText2 = (n) => context.sourceCode.getText(n);
|
|
544
546
|
return (fixer) => {
|
|
@@ -572,10 +574,10 @@ var no_render_return_value_default = createRule({
|
|
|
572
574
|
schema: []
|
|
573
575
|
},
|
|
574
576
|
name: RULE_NAME10,
|
|
575
|
-
create:
|
|
577
|
+
create: create10,
|
|
576
578
|
defaultOptions: []
|
|
577
579
|
});
|
|
578
|
-
function
|
|
580
|
+
function create10(context) {
|
|
579
581
|
return {
|
|
580
582
|
CallExpression(node) {
|
|
581
583
|
const { callee, parent } = node;
|
|
@@ -617,10 +619,10 @@ var no_script_url_default = createRule({
|
|
|
617
619
|
schema: []
|
|
618
620
|
},
|
|
619
621
|
name: RULE_NAME11,
|
|
620
|
-
create:
|
|
622
|
+
create: create11,
|
|
621
623
|
defaultOptions: []
|
|
622
624
|
});
|
|
623
|
-
function
|
|
625
|
+
function create11(context) {
|
|
624
626
|
return {
|
|
625
627
|
JSXAttribute(node) {
|
|
626
628
|
if (node.name.type !== AST_NODE_TYPES.JSXIdentifier || node.value == null) {
|
|
@@ -1603,10 +1605,10 @@ var no_unknown_property_default = createRule({
|
|
|
1603
1605
|
}]
|
|
1604
1606
|
},
|
|
1605
1607
|
name: RULE_NAME12,
|
|
1606
|
-
create:
|
|
1608
|
+
create: create12,
|
|
1607
1609
|
defaultOptions: []
|
|
1608
1610
|
});
|
|
1609
|
-
function
|
|
1611
|
+
function create12(context) {
|
|
1610
1612
|
const report = createReport(context);
|
|
1611
1613
|
function getIgnoreConfig() {
|
|
1612
1614
|
return context.options[0]?.ignore || DEFAULTS.ignore;
|
|
@@ -1721,10 +1723,10 @@ var no_unsafe_iframe_sandbox_default = createRule({
|
|
|
1721
1723
|
schema: []
|
|
1722
1724
|
},
|
|
1723
1725
|
name: RULE_NAME13,
|
|
1724
|
-
create:
|
|
1726
|
+
create: create13,
|
|
1725
1727
|
defaultOptions: []
|
|
1726
1728
|
});
|
|
1727
|
-
function
|
|
1729
|
+
function create13(context) {
|
|
1728
1730
|
const settings2 = getSettingsFromContext(context);
|
|
1729
1731
|
const polymorphicPropName = settings2.polymorphicPropName;
|
|
1730
1732
|
const additionalComponents = settings2.additionalComponents.filter((c) => c.as === "iframe");
|
|
@@ -1790,10 +1792,10 @@ var no_unsafe_target_blank_default = createRule({
|
|
|
1790
1792
|
schema: []
|
|
1791
1793
|
},
|
|
1792
1794
|
name: RULE_NAME14,
|
|
1793
|
-
create:
|
|
1795
|
+
create: create14,
|
|
1794
1796
|
defaultOptions: []
|
|
1795
1797
|
});
|
|
1796
|
-
function
|
|
1798
|
+
function create14(context) {
|
|
1797
1799
|
const settings2 = getSettingsFromContext(context);
|
|
1798
1800
|
const polymorphicPropName = settings2.polymorphicPropName;
|
|
1799
1801
|
const additionalComponents = settings2.additionalComponents.filter((c) => c.as === "a");
|
|
@@ -1858,53 +1860,54 @@ var no_use_form_state_default = createRule({
|
|
|
1858
1860
|
schema: []
|
|
1859
1861
|
},
|
|
1860
1862
|
name: RULE_NAME15,
|
|
1861
|
-
create
|
|
1862
|
-
if (!context.sourceCode.text.includes("useFormState")) return {};
|
|
1863
|
-
const settings2 = getSettingsFromContext(context);
|
|
1864
|
-
if (compare(settings2.version, "19.0.0", "<")) return {};
|
|
1865
|
-
const reactDomNames = /* @__PURE__ */ new Set();
|
|
1866
|
-
const useFormStateNames = /* @__PURE__ */ new Set();
|
|
1867
|
-
return {
|
|
1868
|
-
CallExpression(node) {
|
|
1869
|
-
switch (true) {
|
|
1870
|
-
case (node.callee.type === AST_NODE_TYPES.Identifier && useFormStateNames.has(node.callee.name)):
|
|
1871
|
-
context.report({
|
|
1872
|
-
messageId: "noUseFormState",
|
|
1873
|
-
node,
|
|
1874
|
-
fix: getFix3(context, node)
|
|
1875
|
-
});
|
|
1876
|
-
return;
|
|
1877
|
-
case (node.callee.type === AST_NODE_TYPES.MemberExpression && node.callee.object.type === AST_NODE_TYPES.Identifier && node.callee.property.type === AST_NODE_TYPES.Identifier && node.callee.property.name === "useFormState" && reactDomNames.has(node.callee.object.name)):
|
|
1878
|
-
context.report({
|
|
1879
|
-
messageId: "noUseFormState",
|
|
1880
|
-
node,
|
|
1881
|
-
fix: getFix3(context, node)
|
|
1882
|
-
});
|
|
1883
|
-
return;
|
|
1884
|
-
}
|
|
1885
|
-
},
|
|
1886
|
-
ImportDeclaration(node) {
|
|
1887
|
-
const [baseSource] = node.source.value.split("/");
|
|
1888
|
-
if (baseSource !== "react-dom") return;
|
|
1889
|
-
for (const specifier of node.specifiers) {
|
|
1890
|
-
switch (specifier.type) {
|
|
1891
|
-
case AST_NODE_TYPES.ImportSpecifier:
|
|
1892
|
-
if (specifier.imported.type !== AST_NODE_TYPES.Identifier) continue;
|
|
1893
|
-
if (specifier.imported.name === "useFormState") {
|
|
1894
|
-
useFormStateNames.add(specifier.local.name);
|
|
1895
|
-
}
|
|
1896
|
-
continue;
|
|
1897
|
-
case AST_NODE_TYPES.ImportDefaultSpecifier:
|
|
1898
|
-
case AST_NODE_TYPES.ImportNamespaceSpecifier:
|
|
1899
|
-
reactDomNames.add(specifier.local.name);
|
|
1900
|
-
continue;
|
|
1901
|
-
}
|
|
1902
|
-
}
|
|
1903
|
-
}
|
|
1904
|
-
};
|
|
1905
|
-
},
|
|
1863
|
+
create: create15,
|
|
1906
1864
|
defaultOptions: []
|
|
1907
1865
|
});
|
|
1866
|
+
function create15(context) {
|
|
1867
|
+
if (!context.sourceCode.text.includes("useFormState")) return {};
|
|
1868
|
+
const settings2 = getSettingsFromContext(context);
|
|
1869
|
+
if (compare(settings2.version, "19.0.0", "<")) return {};
|
|
1870
|
+
const reactDomNames = /* @__PURE__ */ new Set();
|
|
1871
|
+
const useFormStateNames = /* @__PURE__ */ new Set();
|
|
1872
|
+
return {
|
|
1873
|
+
CallExpression(node) {
|
|
1874
|
+
switch (true) {
|
|
1875
|
+
case (node.callee.type === AST_NODE_TYPES.Identifier && useFormStateNames.has(node.callee.name)):
|
|
1876
|
+
context.report({
|
|
1877
|
+
messageId: "noUseFormState",
|
|
1878
|
+
node,
|
|
1879
|
+
fix: getFix3(context, node)
|
|
1880
|
+
});
|
|
1881
|
+
return;
|
|
1882
|
+
case (node.callee.type === AST_NODE_TYPES.MemberExpression && node.callee.object.type === AST_NODE_TYPES.Identifier && node.callee.property.type === AST_NODE_TYPES.Identifier && node.callee.property.name === "useFormState" && reactDomNames.has(node.callee.object.name)):
|
|
1883
|
+
context.report({
|
|
1884
|
+
messageId: "noUseFormState",
|
|
1885
|
+
node,
|
|
1886
|
+
fix: getFix3(context, node)
|
|
1887
|
+
});
|
|
1888
|
+
return;
|
|
1889
|
+
}
|
|
1890
|
+
},
|
|
1891
|
+
ImportDeclaration(node) {
|
|
1892
|
+
const [baseSource] = node.source.value.split("/");
|
|
1893
|
+
if (baseSource !== "react-dom") return;
|
|
1894
|
+
for (const specifier of node.specifiers) {
|
|
1895
|
+
switch (specifier.type) {
|
|
1896
|
+
case AST_NODE_TYPES.ImportSpecifier:
|
|
1897
|
+
if (specifier.imported.type !== AST_NODE_TYPES.Identifier) continue;
|
|
1898
|
+
if (specifier.imported.name === "useFormState") {
|
|
1899
|
+
useFormStateNames.add(specifier.local.name);
|
|
1900
|
+
}
|
|
1901
|
+
continue;
|
|
1902
|
+
case AST_NODE_TYPES.ImportDefaultSpecifier:
|
|
1903
|
+
case AST_NODE_TYPES.ImportNamespaceSpecifier:
|
|
1904
|
+
reactDomNames.add(specifier.local.name);
|
|
1905
|
+
continue;
|
|
1906
|
+
}
|
|
1907
|
+
}
|
|
1908
|
+
}
|
|
1909
|
+
};
|
|
1910
|
+
}
|
|
1908
1911
|
function getFix3(context, node) {
|
|
1909
1912
|
const { importSource } = getSettingsFromContext(context);
|
|
1910
1913
|
return (fixer) => {
|
|
@@ -1948,10 +1951,10 @@ var no_void_elements_with_children_default = createRule({
|
|
|
1948
1951
|
schema: []
|
|
1949
1952
|
},
|
|
1950
1953
|
name: RULE_NAME16,
|
|
1951
|
-
create:
|
|
1954
|
+
create: create16,
|
|
1952
1955
|
defaultOptions: []
|
|
1953
1956
|
});
|
|
1954
|
-
function
|
|
1957
|
+
function create16(context) {
|
|
1955
1958
|
return {
|
|
1956
1959
|
JSXElement(node) {
|
|
1957
1960
|
const elementName = JSX.getElementType(node);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eslint-plugin-react-dom",
|
|
3
|
-
"version": "1.37.1",
|
|
3
|
+
"version": "1.37.2-beta.1",
|
|
4
4
|
"description": "ESLint React's ESLint plugin for React DOM related rules.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -49,12 +49,12 @@
|
|
|
49
49
|
"compare-versions": "^6.1.1",
|
|
50
50
|
"string-ts": "^2.2.1",
|
|
51
51
|
"ts-pattern": "^5.6.2",
|
|
52
|
-
"@eslint-react/ast": "1.37.1",
|
|
53
|
-
"@eslint-react/
|
|
54
|
-
"@eslint-react/
|
|
55
|
-
"@eslint-react/jsx": "1.37.1",
|
|
56
|
-
"@eslint-react/shared": "1.37.1",
|
|
57
|
-
"@eslint-react/var": "1.37.1"
|
|
52
|
+
"@eslint-react/ast": "1.37.2-beta.1",
|
|
53
|
+
"@eslint-react/eff": "1.37.2-beta.1",
|
|
54
|
+
"@eslint-react/core": "1.37.2-beta.1",
|
|
55
|
+
"@eslint-react/jsx": "1.37.2-beta.1",
|
|
56
|
+
"@eslint-react/shared": "1.37.2-beta.1",
|
|
57
|
+
"@eslint-react/var": "1.37.2-beta.1"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
60
|
"@types/react": "^19.0.12",
|