marked 15.0.7 → 15.0.9

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/lib/marked.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * marked v15.0.7 - a markdown parser
2
+ * marked v15.0.9 - a markdown parser
3
3
  * Copyright (c) 2011-2025, Christopher Jeffrey. (MIT Licensed)
4
4
  * https://github.com/markedjs/marked
5
5
  */
@@ -545,6 +545,9 @@ function findClosingBracket(str, b) {
545
545
  }
546
546
  }
547
547
  }
548
+ if (level > 0) {
549
+ return -2;
550
+ }
548
551
  return -1;
549
552
  }
550
553
 
@@ -1111,6 +1114,10 @@ class _Tokenizer {
1111
1114
  else {
1112
1115
  // find closing parenthesis
1113
1116
  const lastParenIndex = findClosingBracket(cap[2], '()');
1117
+ if (lastParenIndex === -2) {
1118
+ // more open parens than closed
1119
+ return;
1120
+ }
1114
1121
  if (lastParenIndex > -1) {
1115
1122
  const start = cap[0].indexOf('!') === 0 ? 5 : 4;
1116
1123
  const linkLen = start + cap[1].length + lastParenIndex;
@@ -1615,14 +1622,14 @@ class _Lexer {
1615
1622
  }
1616
1623
  }
1617
1624
  }
1618
- // Mask out other blocks
1619
- while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {
1620
- maskedSrc = maskedSrc.slice(0, match.index) + '[' + 'a'.repeat(match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);
1621
- }
1622
1625
  // Mask out escaped characters
1623
1626
  while ((match = this.tokenizer.rules.inline.anyPunctuation.exec(maskedSrc)) != null) {
1624
1627
  maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);
1625
1628
  }
1629
+ // Mask out other blocks
1630
+ while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {
1631
+ maskedSrc = maskedSrc.slice(0, match.index) + '[' + 'a'.repeat(match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);
1632
+ }
1626
1633
  let keepPrevChar = false;
1627
1634
  let prevChar = '';
1628
1635
  while (src) {