htmljs-parser 5.3.0 → 5.4.0
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 +13 -6
- package/dist/index.mjs +13 -6
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -272,6 +272,8 @@ var Parser = class {
|
|
|
272
272
|
cur++;
|
|
273
273
|
if (this.lookAheadFor(str, cur)) {
|
|
274
274
|
this.pos = cur;
|
|
275
|
+
if (this.forward > 1)
|
|
276
|
+
this.forward = 1;
|
|
275
277
|
return true;
|
|
276
278
|
}
|
|
277
279
|
return false;
|
|
@@ -458,7 +460,7 @@ var OPEN_TAG = {
|
|
|
458
460
|
}
|
|
459
461
|
},
|
|
460
462
|
eol(_, tag) {
|
|
461
|
-
if (this.isConcise && tag.stage !== 5 /* ATTR_GROUP */) {
|
|
463
|
+
if (this.isConcise && tag.stage !== 5 /* ATTR_GROUP */ && !this.consumeWhitespaceIfBefore(",")) {
|
|
462
464
|
this.exitState();
|
|
463
465
|
}
|
|
464
466
|
},
|
|
@@ -1781,11 +1783,14 @@ function lookBehindForOperator(data, pos) {
|
|
|
1781
1783
|
case 60 /* OPEN_ANGLE_BRACKET */:
|
|
1782
1784
|
case 62 /* CLOSE_ANGLE_BRACKET */:
|
|
1783
1785
|
case 37 /* PERCENT */:
|
|
1784
|
-
case 46 /* PERIOD */:
|
|
1785
1786
|
case 124 /* PIPE */:
|
|
1786
1787
|
case 63 /* QUESTION */:
|
|
1787
1788
|
case 126 /* TILDE */:
|
|
1788
1789
|
return curPos;
|
|
1790
|
+
case 46 /* PERIOD */: {
|
|
1791
|
+
const nextPos = lookAheadWhile(isWhitespaceCode, data, pos);
|
|
1792
|
+
return isWordCode(data.charCodeAt(nextPos)) ? nextPos : -1;
|
|
1793
|
+
}
|
|
1789
1794
|
case 43 /* PLUS */:
|
|
1790
1795
|
case 45 /* HYPHEN */: {
|
|
1791
1796
|
if (data.charCodeAt(curPos - 1) === code) {
|
|
@@ -1828,8 +1833,10 @@ function lookAheadForOperator(data, pos) {
|
|
|
1828
1833
|
case 123 /* OPEN_CURLY_BRACE */:
|
|
1829
1834
|
case 40 /* OPEN_PAREN */:
|
|
1830
1835
|
return pos;
|
|
1831
|
-
case 46 /* PERIOD */:
|
|
1832
|
-
|
|
1836
|
+
case 46 /* PERIOD */: {
|
|
1837
|
+
const nextPos = lookAheadWhile(isWhitespaceCode, data, pos + 1);
|
|
1838
|
+
return isWordCode(data.charCodeAt(nextPos)) ? nextPos : -1;
|
|
1839
|
+
}
|
|
1833
1840
|
default: {
|
|
1834
1841
|
for (const keyword of binaryKeywords) {
|
|
1835
1842
|
let nextPos = lookAheadFor(data, pos, keyword);
|
|
@@ -1867,7 +1874,7 @@ function canFollowDivision(code) {
|
|
|
1867
1874
|
return isWordCode(code) || code === 37 /* PERCENT */ || code === 41 /* CLOSE_PAREN */ || code === 46 /* PERIOD */ || code === 60 /* OPEN_ANGLE_BRACKET */ || code === 93 /* CLOSE_SQUARE_BRACKET */ || code === 125 /* CLOSE_CURLY_BRACE */;
|
|
1868
1875
|
}
|
|
1869
1876
|
function isWordCode(code) {
|
|
1870
|
-
return code >= 65 /* UPPER_A */ && code <= 90 /* UPPER_Z */ || code >= 97 /* LOWER_A */ && code <= 122 /* LOWER_Z */ || code >= 48 /* NUMBER_0 */ && code <= 57 /* NUMBER_9 */ || code === 95 /* UNDERSCORE */;
|
|
1877
|
+
return code >= 65 /* UPPER_A */ && code <= 90 /* UPPER_Z */ || code >= 97 /* LOWER_A */ && code <= 122 /* LOWER_Z */ || code >= 48 /* NUMBER_0 */ && code <= 57 /* NUMBER_9 */ || code == 36 /* DOLLAR */ || code === 95 /* UNDERSCORE */;
|
|
1871
1878
|
}
|
|
1872
1879
|
function isIndentCode(code) {
|
|
1873
1880
|
return code === 9 /* TAB */ || code === 32 /* SPACE */;
|
|
@@ -2521,7 +2528,7 @@ var TAG_NAME = {
|
|
|
2521
2528
|
this.pos += 2;
|
|
2522
2529
|
this.forward = 0;
|
|
2523
2530
|
this.enterState(states_exports.EXPRESSION).shouldTerminate = matchesCloseCurlyBrace;
|
|
2524
|
-
} else if (isWhitespaceCode(code) || code === 61 /* EQUAL */ || code === 58 /* COLON */ && this.lookAtCharCodeAhead(1) === 61 /* EQUAL */ || code === 40 /* OPEN_PAREN */ || code === 47 /* FORWARD_SLASH */ || code === 124 /* PIPE */ || code === 60 /* OPEN_ANGLE_BRACKET */ || (this.isConcise ? code === 59 /* SEMICOLON */ : code === 62 /* CLOSE_ANGLE_BRACKET */)) {
|
|
2531
|
+
} else if (isWhitespaceCode(code) || code === 61 /* EQUAL */ || code === 58 /* COLON */ && this.lookAtCharCodeAhead(1) === 61 /* EQUAL */ || code === 40 /* OPEN_PAREN */ || code === 47 /* FORWARD_SLASH */ || code === 124 /* PIPE */ || code === 60 /* OPEN_ANGLE_BRACKET */ || code === 44 /* COMMA */ || (this.isConcise ? code === 59 /* SEMICOLON */ : code === 62 /* CLOSE_ANGLE_BRACKET */)) {
|
|
2525
2532
|
this.activeTag.shorthandEnd = this.pos;
|
|
2526
2533
|
this.exitState();
|
|
2527
2534
|
} else if (code === 46 /* PERIOD */ || code === 35 /* NUMBER_SIGN */) {
|
package/dist/index.mjs
CHANGED
|
@@ -247,6 +247,8 @@ var Parser = class {
|
|
|
247
247
|
cur++;
|
|
248
248
|
if (this.lookAheadFor(str, cur)) {
|
|
249
249
|
this.pos = cur;
|
|
250
|
+
if (this.forward > 1)
|
|
251
|
+
this.forward = 1;
|
|
250
252
|
return true;
|
|
251
253
|
}
|
|
252
254
|
return false;
|
|
@@ -433,7 +435,7 @@ var OPEN_TAG = {
|
|
|
433
435
|
}
|
|
434
436
|
},
|
|
435
437
|
eol(_, tag) {
|
|
436
|
-
if (this.isConcise && tag.stage !== 5 /* ATTR_GROUP */) {
|
|
438
|
+
if (this.isConcise && tag.stage !== 5 /* ATTR_GROUP */ && !this.consumeWhitespaceIfBefore(",")) {
|
|
437
439
|
this.exitState();
|
|
438
440
|
}
|
|
439
441
|
},
|
|
@@ -1756,11 +1758,14 @@ function lookBehindForOperator(data, pos) {
|
|
|
1756
1758
|
case 60 /* OPEN_ANGLE_BRACKET */:
|
|
1757
1759
|
case 62 /* CLOSE_ANGLE_BRACKET */:
|
|
1758
1760
|
case 37 /* PERCENT */:
|
|
1759
|
-
case 46 /* PERIOD */:
|
|
1760
1761
|
case 124 /* PIPE */:
|
|
1761
1762
|
case 63 /* QUESTION */:
|
|
1762
1763
|
case 126 /* TILDE */:
|
|
1763
1764
|
return curPos;
|
|
1765
|
+
case 46 /* PERIOD */: {
|
|
1766
|
+
const nextPos = lookAheadWhile(isWhitespaceCode, data, pos);
|
|
1767
|
+
return isWordCode(data.charCodeAt(nextPos)) ? nextPos : -1;
|
|
1768
|
+
}
|
|
1764
1769
|
case 43 /* PLUS */:
|
|
1765
1770
|
case 45 /* HYPHEN */: {
|
|
1766
1771
|
if (data.charCodeAt(curPos - 1) === code) {
|
|
@@ -1803,8 +1808,10 @@ function lookAheadForOperator(data, pos) {
|
|
|
1803
1808
|
case 123 /* OPEN_CURLY_BRACE */:
|
|
1804
1809
|
case 40 /* OPEN_PAREN */:
|
|
1805
1810
|
return pos;
|
|
1806
|
-
case 46 /* PERIOD */:
|
|
1807
|
-
|
|
1811
|
+
case 46 /* PERIOD */: {
|
|
1812
|
+
const nextPos = lookAheadWhile(isWhitespaceCode, data, pos + 1);
|
|
1813
|
+
return isWordCode(data.charCodeAt(nextPos)) ? nextPos : -1;
|
|
1814
|
+
}
|
|
1808
1815
|
default: {
|
|
1809
1816
|
for (const keyword of binaryKeywords) {
|
|
1810
1817
|
let nextPos = lookAheadFor(data, pos, keyword);
|
|
@@ -1842,7 +1849,7 @@ function canFollowDivision(code) {
|
|
|
1842
1849
|
return isWordCode(code) || code === 37 /* PERCENT */ || code === 41 /* CLOSE_PAREN */ || code === 46 /* PERIOD */ || code === 60 /* OPEN_ANGLE_BRACKET */ || code === 93 /* CLOSE_SQUARE_BRACKET */ || code === 125 /* CLOSE_CURLY_BRACE */;
|
|
1843
1850
|
}
|
|
1844
1851
|
function isWordCode(code) {
|
|
1845
|
-
return code >= 65 /* UPPER_A */ && code <= 90 /* UPPER_Z */ || code >= 97 /* LOWER_A */ && code <= 122 /* LOWER_Z */ || code >= 48 /* NUMBER_0 */ && code <= 57 /* NUMBER_9 */ || code === 95 /* UNDERSCORE */;
|
|
1852
|
+
return code >= 65 /* UPPER_A */ && code <= 90 /* UPPER_Z */ || code >= 97 /* LOWER_A */ && code <= 122 /* LOWER_Z */ || code >= 48 /* NUMBER_0 */ && code <= 57 /* NUMBER_9 */ || code == 36 /* DOLLAR */ || code === 95 /* UNDERSCORE */;
|
|
1846
1853
|
}
|
|
1847
1854
|
function isIndentCode(code) {
|
|
1848
1855
|
return code === 9 /* TAB */ || code === 32 /* SPACE */;
|
|
@@ -2496,7 +2503,7 @@ var TAG_NAME = {
|
|
|
2496
2503
|
this.pos += 2;
|
|
2497
2504
|
this.forward = 0;
|
|
2498
2505
|
this.enterState(states_exports.EXPRESSION).shouldTerminate = matchesCloseCurlyBrace;
|
|
2499
|
-
} else if (isWhitespaceCode(code) || code === 61 /* EQUAL */ || code === 58 /* COLON */ && this.lookAtCharCodeAhead(1) === 61 /* EQUAL */ || code === 40 /* OPEN_PAREN */ || code === 47 /* FORWARD_SLASH */ || code === 124 /* PIPE */ || code === 60 /* OPEN_ANGLE_BRACKET */ || (this.isConcise ? code === 59 /* SEMICOLON */ : code === 62 /* CLOSE_ANGLE_BRACKET */)) {
|
|
2506
|
+
} else if (isWhitespaceCode(code) || code === 61 /* EQUAL */ || code === 58 /* COLON */ && this.lookAtCharCodeAhead(1) === 61 /* EQUAL */ || code === 40 /* OPEN_PAREN */ || code === 47 /* FORWARD_SLASH */ || code === 124 /* PIPE */ || code === 60 /* OPEN_ANGLE_BRACKET */ || code === 44 /* COMMA */ || (this.isConcise ? code === 59 /* SEMICOLON */ : code === 62 /* CLOSE_ANGLE_BRACKET */)) {
|
|
2500
2507
|
this.activeTag.shorthandEnd = this.pos;
|
|
2501
2508
|
this.exitState();
|
|
2502
2509
|
} else if (code === 46 /* PERIOD */ || code === 35 /* NUMBER_SIGN */) {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "htmljs-parser",
|
|
3
3
|
"description": "An HTML parser recognizes content and string placeholders and allows JavaScript expressions as attribute values",
|
|
4
|
-
"version": "5.
|
|
4
|
+
"version": "5.4.0",
|
|
5
5
|
"devDependencies": {
|
|
6
6
|
"@changesets/changelog-github": "^0.4.7",
|
|
7
7
|
"@changesets/cli": "^2.25.2",
|