eslint-plugin-react-dom 1.17.1-beta.2 → 1.17.1-beta.4
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 +24 -12
- package/dist/index.mjs +24 -12
- package/package.json +9 -8
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.
|
|
34
|
+
var version = "1.17.1-beta.4";
|
|
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
|
-
|
|
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,10 @@ 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
|
+
return compareVersions.compare(localVersion, version2, comparator);
|
|
1472
|
+
}
|
|
1461
1473
|
var RULE_NAME11 = "no-unsafe-iframe-sandbox";
|
|
1462
1474
|
var unsafeCombinations = [
|
|
1463
1475
|
["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.
|
|
11
|
+
var version = "1.17.1-beta.4";
|
|
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
|
-
|
|
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,10 @@ 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
|
+
return compare(localVersion, version2, comparator);
|
|
1449
|
+
}
|
|
1438
1450
|
var RULE_NAME11 = "no-unsafe-iframe-sandbox";
|
|
1439
1451
|
var unsafeCombinations = [
|
|
1440
1452
|
["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.
|
|
3
|
+
"version": "1.17.1-beta.4",
|
|
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.
|
|
50
|
-
"@eslint-react/core": "1.17.1-beta.
|
|
51
|
-
"@eslint-react/
|
|
52
|
-
"@eslint-react/
|
|
53
|
-
"@eslint-react/
|
|
54
|
-
"@eslint-react/
|
|
55
|
-
"@eslint-react/var": "1.17.1-beta.
|
|
50
|
+
"@eslint-react/ast": "1.17.1-beta.4",
|
|
51
|
+
"@eslint-react/core": "1.17.1-beta.4",
|
|
52
|
+
"@eslint-react/shared": "1.17.1-beta.4",
|
|
53
|
+
"@eslint-react/jsx": "1.17.1-beta.4",
|
|
54
|
+
"@eslint-react/tools": "1.17.1-beta.4",
|
|
55
|
+
"@eslint-react/types": "1.17.1-beta.4",
|
|
56
|
+
"@eslint-react/var": "1.17.1-beta.4"
|
|
56
57
|
},
|
|
57
58
|
"devDependencies": {
|
|
58
59
|
"@types/react": "^18.3.12",
|