eslint-plugin-react-dom 1.17.1-beta.2 → 1.17.1-beta.3

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 CHANGED
@@ -5,6 +5,7 @@ var shared = require('@eslint-react/shared');
5
5
  var tools = require('@eslint-react/tools');
6
6
  var types = require('@typescript-eslint/types');
7
7
  var AST = require('@eslint-react/ast');
8
+ var compareVersions = require('compare-versions');
8
9
  var tsPattern = require('ts-pattern');
9
10
 
10
11
  function _interopNamespace(e) {
@@ -30,7 +31,7 @@ var AST__namespace = /*#__PURE__*/_interopNamespace(AST);
30
31
 
31
32
  // package.json
32
33
  var name = "eslint-plugin-react-dom";
33
- var version = "1.17.1-beta.2";
34
+ var version = "1.17.1-beta.3";
34
35
  var createRule = shared.createRuleForPlugin("dom");
35
36
  function findAttrInCustomAttributes(name2, attributes) {
36
37
  return tools.F.pipe(
@@ -412,8 +413,6 @@ var no_script_url_default = createRule({
412
413
  },
413
414
  defaultOptions: []
414
415
  });
415
-
416
- // src/rules/no-unknown-property.ts
417
416
  var RULE_NAME10 = "no-unknown-property";
418
417
  var DEFAULTS = {
419
418
  ignore: [],
@@ -820,11 +819,7 @@ var DOM_PROPERTY_NAMES_ONE_WORD = [
820
819
  "results",
821
820
  "security",
822
821
  // Video specific
823
- "controls",
824
- // popovers
825
- "popover",
826
- "popovertarget",
827
- "popovertargetaction"
822
+ "controls"
828
823
  ];
829
824
  var DOM_PROPERTY_NAMES_TWO_WORDS = [
830
825
  // Global attributes - can be used on any HTML/DOM element
@@ -1289,11 +1284,24 @@ var REACT_ON_PROPS = [
1289
1284
  "onPointerUp",
1290
1285
  "onPointerUpCapture"
1291
1286
  ];
1287
+ var POPOVER_API_PROPS = [
1288
+ "popover",
1289
+ "popoverTarget",
1290
+ "popoverTargetAction",
1291
+ "onToggle",
1292
+ "onBeforeToggle"
1293
+ ];
1292
1294
  function getDOMPropertyNames(context) {
1293
1295
  const ALL_DOM_PROPERTY_NAMES = DOM_PROPERTY_NAMES_TWO_WORDS.concat(DOM_PROPERTY_NAMES_ONE_WORD);
1294
- {
1295
- return ALL_DOM_PROPERTY_NAMES.concat(REACT_ON_PROPS);
1296
+ if (testReactVersion(context, "<=", "16.1.0")) {
1297
+ ALL_DOM_PROPERTY_NAMES.push("allowTransparency");
1298
+ return ALL_DOM_PROPERTY_NAMES;
1299
+ }
1300
+ if (testReactVersion(context, ">=", "16.4.0")) {
1301
+ ALL_DOM_PROPERTY_NAMES.push(...REACT_ON_PROPS);
1296
1302
  }
1303
+ testReactVersion(context, ">=", "19.0.0-rc.0") ? ALL_DOM_PROPERTY_NAMES.push(...POPOVER_API_PROPS) : ALL_DOM_PROPERTY_NAMES.push(...POPOVER_API_PROPS.map((prop) => prop.toLowerCase()));
1304
+ return ALL_DOM_PROPERTY_NAMES;
1297
1305
  }
1298
1306
  function isValidHTMLTagInJSX(childNode) {
1299
1307
  const tagConvention = /^[a-z][^-]*$/;
@@ -1334,7 +1342,7 @@ function getStandardName(name2, context) {
1334
1342
  if (has(SVGDOM_ATTRIBUTE_NAMES, name2)) {
1335
1343
  return SVGDOM_ATTRIBUTE_NAMES[name2];
1336
1344
  }
1337
- const names = getDOMPropertyNames();
1345
+ const names = getDOMPropertyNames(context);
1338
1346
  return names.find((element) => element.toLowerCase() === name2.toLowerCase());
1339
1347
  }
1340
1348
  var messages = {
@@ -1416,7 +1424,7 @@ var no_unknown_property_default = createRule({
1416
1424
  }
1417
1425
  return;
1418
1426
  }
1419
- const standardName = getStandardName(name2);
1427
+ const standardName = getStandardName(name2, context);
1420
1428
  const hasStandardNameButIsNotUsed = standardName && standardName !== name2;
1421
1429
  const usesStandardName = standardName && standardName === name2;
1422
1430
  if (usesStandardName) {
@@ -1458,6 +1466,11 @@ function report(context, message, messageId, data) {
1458
1466
  ...data
1459
1467
  });
1460
1468
  }
1469
+ function testReactVersion(context, comparator, version2) {
1470
+ const { version: localVersion } = shared.normalizeSettings(shared.decodeSettings(context.settings));
1471
+ console.log(localVersion, version2, comparator);
1472
+ return compareVersions.compare(localVersion, version2, comparator);
1473
+ }
1461
1474
  var RULE_NAME11 = "no-unsafe-iframe-sandbox";
1462
1475
  var unsafeCombinations = [
1463
1476
  ["allow-scripts", "allow-same-origin"]
package/dist/index.mjs CHANGED
@@ -3,11 +3,12 @@ import { createRuleForPlugin, normalizeSettings, decodeSettings, RE_JAVASCRIPT_P
3
3
  import { O, F, isString, isNullable } from '@eslint-react/tools';
4
4
  import { AST_NODE_TYPES } from '@typescript-eslint/types';
5
5
  import * as AST from '@eslint-react/ast';
6
+ import { compare } from 'compare-versions';
6
7
  import { match, P } from 'ts-pattern';
7
8
 
8
9
  // package.json
9
10
  var name = "eslint-plugin-react-dom";
10
- var version = "1.17.1-beta.2";
11
+ var version = "1.17.1-beta.3";
11
12
  var createRule = createRuleForPlugin("dom");
12
13
  function findAttrInCustomAttributes(name2, attributes) {
13
14
  return F.pipe(
@@ -389,8 +390,6 @@ var no_script_url_default = createRule({
389
390
  },
390
391
  defaultOptions: []
391
392
  });
392
-
393
- // src/rules/no-unknown-property.ts
394
393
  var RULE_NAME10 = "no-unknown-property";
395
394
  var DEFAULTS = {
396
395
  ignore: [],
@@ -797,11 +796,7 @@ var DOM_PROPERTY_NAMES_ONE_WORD = [
797
796
  "results",
798
797
  "security",
799
798
  // Video specific
800
- "controls",
801
- // popovers
802
- "popover",
803
- "popovertarget",
804
- "popovertargetaction"
799
+ "controls"
805
800
  ];
806
801
  var DOM_PROPERTY_NAMES_TWO_WORDS = [
807
802
  // Global attributes - can be used on any HTML/DOM element
@@ -1266,11 +1261,24 @@ var REACT_ON_PROPS = [
1266
1261
  "onPointerUp",
1267
1262
  "onPointerUpCapture"
1268
1263
  ];
1264
+ var POPOVER_API_PROPS = [
1265
+ "popover",
1266
+ "popoverTarget",
1267
+ "popoverTargetAction",
1268
+ "onToggle",
1269
+ "onBeforeToggle"
1270
+ ];
1269
1271
  function getDOMPropertyNames(context) {
1270
1272
  const ALL_DOM_PROPERTY_NAMES = DOM_PROPERTY_NAMES_TWO_WORDS.concat(DOM_PROPERTY_NAMES_ONE_WORD);
1271
- {
1272
- return ALL_DOM_PROPERTY_NAMES.concat(REACT_ON_PROPS);
1273
+ if (testReactVersion(context, "<=", "16.1.0")) {
1274
+ ALL_DOM_PROPERTY_NAMES.push("allowTransparency");
1275
+ return ALL_DOM_PROPERTY_NAMES;
1276
+ }
1277
+ if (testReactVersion(context, ">=", "16.4.0")) {
1278
+ ALL_DOM_PROPERTY_NAMES.push(...REACT_ON_PROPS);
1273
1279
  }
1280
+ testReactVersion(context, ">=", "19.0.0-rc.0") ? ALL_DOM_PROPERTY_NAMES.push(...POPOVER_API_PROPS) : ALL_DOM_PROPERTY_NAMES.push(...POPOVER_API_PROPS.map((prop) => prop.toLowerCase()));
1281
+ return ALL_DOM_PROPERTY_NAMES;
1274
1282
  }
1275
1283
  function isValidHTMLTagInJSX(childNode) {
1276
1284
  const tagConvention = /^[a-z][^-]*$/;
@@ -1311,7 +1319,7 @@ function getStandardName(name2, context) {
1311
1319
  if (has(SVGDOM_ATTRIBUTE_NAMES, name2)) {
1312
1320
  return SVGDOM_ATTRIBUTE_NAMES[name2];
1313
1321
  }
1314
- const names = getDOMPropertyNames();
1322
+ const names = getDOMPropertyNames(context);
1315
1323
  return names.find((element) => element.toLowerCase() === name2.toLowerCase());
1316
1324
  }
1317
1325
  var messages = {
@@ -1393,7 +1401,7 @@ var no_unknown_property_default = createRule({
1393
1401
  }
1394
1402
  return;
1395
1403
  }
1396
- const standardName = getStandardName(name2);
1404
+ const standardName = getStandardName(name2, context);
1397
1405
  const hasStandardNameButIsNotUsed = standardName && standardName !== name2;
1398
1406
  const usesStandardName = standardName && standardName === name2;
1399
1407
  if (usesStandardName) {
@@ -1435,6 +1443,11 @@ function report(context, message, messageId, data) {
1435
1443
  ...data
1436
1444
  });
1437
1445
  }
1446
+ function testReactVersion(context, comparator, version2) {
1447
+ const { version: localVersion } = normalizeSettings(decodeSettings(context.settings));
1448
+ console.log(localVersion, version2, comparator);
1449
+ return compare(localVersion, version2, comparator);
1450
+ }
1438
1451
  var RULE_NAME11 = "no-unsafe-iframe-sandbox";
1439
1452
  var unsafeCombinations = [
1440
1453
  ["allow-scripts", "allow-same-origin"]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-plugin-react-dom",
3
- "version": "1.17.1-beta.2",
3
+ "version": "1.17.1-beta.3",
4
4
  "description": "ESLint React's ESLint plugin for React DOM related rules.",
5
5
  "keywords": [
6
6
  "eslint",
@@ -45,14 +45,15 @@
45
45
  "@typescript-eslint/scope-manager": "^8.15.0",
46
46
  "@typescript-eslint/types": "^8.15.0",
47
47
  "@typescript-eslint/utils": "^8.15.0",
48
+ "compare-versions": "^6.1.1",
48
49
  "ts-pattern": "^5.5.0",
49
- "@eslint-react/ast": "1.17.1-beta.2",
50
- "@eslint-react/core": "1.17.1-beta.2",
51
- "@eslint-react/jsx": "1.17.1-beta.2",
52
- "@eslint-react/shared": "1.17.1-beta.2",
53
- "@eslint-react/types": "1.17.1-beta.2",
54
- "@eslint-react/tools": "1.17.1-beta.2",
55
- "@eslint-react/var": "1.17.1-beta.2"
50
+ "@eslint-react/ast": "1.17.1-beta.3",
51
+ "@eslint-react/core": "1.17.1-beta.3",
52
+ "@eslint-react/jsx": "1.17.1-beta.3",
53
+ "@eslint-react/shared": "1.17.1-beta.3",
54
+ "@eslint-react/tools": "1.17.1-beta.3",
55
+ "@eslint-react/types": "1.17.1-beta.3",
56
+ "@eslint-react/var": "1.17.1-beta.3"
56
57
  },
57
58
  "devDependencies": {
58
59
  "@types/react": "^18.3.12",