stream-markdown-parser 0.0.84 → 0.0.86

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.d.ts CHANGED
@@ -419,6 +419,7 @@ declare function convertHtmlPropValue(value: string, key: string): any;
419
419
  declare function convertHtmlAttrsToProps(attrs: Record<string, string>): Record<string, any>;
420
420
  declare function tokenizeHtml(html: string): HtmlToken[];
421
421
  declare function hasCustomHtmlComponents(content: string, customComponents: Record<string, unknown>): boolean;
422
+ declare function sanitizeHtmlContent(content: string): string;
422
423
  //#endregion
423
424
  //#region src/htmlTags.d.ts
424
425
  declare const VOID_HTML_TAG_NAMES: readonly ["area", "base", "br", "col", "embed", "hr", "img", "input", "link", "meta", "param", "source", "track", "wbr"];
@@ -471,5 +472,5 @@ interface GetMarkdownOptions extends FactoryOptions {
471
472
  }
472
473
  declare function getMarkdown(msgId?: string, options?: GetMarkdownOptions): MarkdownIt;
473
474
  //#endregion
474
- export { AdmonitionNode, BLOCKED_HTML_TAGS, BLOCKED_HTML_TAG_NAMES, BLOCK_HTML_TAG_NAMES, BaseNode, BlockquoteNode, CheckboxInputNode, CheckboxNode, CodeBlockNode, CustomComponentAttrs, CustomComponentNode, CustomComponents, DANGEROUS_HTML_ATTRS, DANGEROUS_HTML_ATTR_NAMES, DefinitionItemNode, DefinitionListNode, ESCAPED_TEX_BRACE_COMMANDS, EXTENDED_STANDARD_HTML_TAGS, EXTENDED_STANDARD_HTML_TAG_NAMES, EmojiNode, EmphasisNode, FootnoteAnchorNode, FootnoteNode, FootnoteReferenceNode, GetMarkdownOptions, HardBreakNode, HeadingNode, HighlightNode, HtmlBlockNode, HtmlInlineNode, HtmlToken, INLINE_HTML_TAG_NAMES, ImageNode, InlineCodeNode, InlineNode, InsertNode, KATEX_COMMANDS, LinkNode, ListItemNode, ListNode, type MarkdownIt, MarkdownRender, MarkdownToken, MarkdownTokenLite, MathBlockNode, MathInlineNode, type MathOptions, MermaidBlockNode, NON_STRUCTURING_HTML_TAGS, NON_STRUCTURING_HTML_TAG_NAMES, ParagraphNode, ParseOptions, ParsedNode, PostTransformNodesHook, ReferenceNode, STANDARD_BLOCK_HTML_TAGS, STANDARD_HTML_TAGS, SVG_HTML_TAG_NAMES, StrikethroughNode, StrongNode, SubscriptNode, SuperscriptNode, TEX_BRACE_COMMANDS, TableCellNode, TableNode, TableRowNode, TextNode, ThematicBreakNode, TransformTokensHook, URL_HTML_ATTRS, URL_HTML_ATTR_NAMES, UnknownNode, VOID_HTML_TAGS, VOID_HTML_TAG_NAMES, VmrContainerNode, applyContainers, applyMath, clearRegisteredMarkdownPlugins, convertHtmlAttrsToProps, convertHtmlPropValue, findMatchingClose, getHtmlTagFromContent, getMarkdown, hasCompleteHtmlTagContent, hasCustomHtmlComponents, isCustomHtmlComponentTag, isHtmlLikeTagName, isMathLike, isUnsafeHtmlUrl, mergeCustomHtmlTags, normalizeCustomHtmlTagName, normalizeCustomHtmlTags, normalizeStandaloneBackslashT, parseFenceToken, parseInlineTokens, parseMarkdownToStructure, processTokens, registerMarkdownPlugin, resolveCustomHtmlTags, sanitizeHtmlAttrs, sanitizeHtmlTokenAttrs, setDefaultMathOptions, shouldRenderUnknownHtmlTagAsText, stripCustomHtmlWrapper, stripHtmlControlAndWhitespace, tokenAttrsToRecord, tokenizeHtml };
475
+ export { AdmonitionNode, BLOCKED_HTML_TAGS, BLOCKED_HTML_TAG_NAMES, BLOCK_HTML_TAG_NAMES, BaseNode, BlockquoteNode, CheckboxInputNode, CheckboxNode, CodeBlockNode, CustomComponentAttrs, CustomComponentNode, CustomComponents, DANGEROUS_HTML_ATTRS, DANGEROUS_HTML_ATTR_NAMES, DefinitionItemNode, DefinitionListNode, ESCAPED_TEX_BRACE_COMMANDS, EXTENDED_STANDARD_HTML_TAGS, EXTENDED_STANDARD_HTML_TAG_NAMES, EmojiNode, EmphasisNode, FootnoteAnchorNode, FootnoteNode, FootnoteReferenceNode, GetMarkdownOptions, HardBreakNode, HeadingNode, HighlightNode, HtmlBlockNode, HtmlInlineNode, HtmlToken, INLINE_HTML_TAG_NAMES, ImageNode, InlineCodeNode, InlineNode, InsertNode, KATEX_COMMANDS, LinkNode, ListItemNode, ListNode, type MarkdownIt, MarkdownRender, MarkdownToken, MarkdownTokenLite, MathBlockNode, MathInlineNode, type MathOptions, MermaidBlockNode, NON_STRUCTURING_HTML_TAGS, NON_STRUCTURING_HTML_TAG_NAMES, ParagraphNode, ParseOptions, ParsedNode, PostTransformNodesHook, ReferenceNode, STANDARD_BLOCK_HTML_TAGS, STANDARD_HTML_TAGS, SVG_HTML_TAG_NAMES, StrikethroughNode, StrongNode, SubscriptNode, SuperscriptNode, TEX_BRACE_COMMANDS, TableCellNode, TableNode, TableRowNode, TextNode, ThematicBreakNode, TransformTokensHook, URL_HTML_ATTRS, URL_HTML_ATTR_NAMES, UnknownNode, VOID_HTML_TAGS, VOID_HTML_TAG_NAMES, VmrContainerNode, applyContainers, applyMath, clearRegisteredMarkdownPlugins, convertHtmlAttrsToProps, convertHtmlPropValue, findMatchingClose, getHtmlTagFromContent, getMarkdown, hasCompleteHtmlTagContent, hasCustomHtmlComponents, isCustomHtmlComponentTag, isHtmlLikeTagName, isMathLike, isUnsafeHtmlUrl, mergeCustomHtmlTags, normalizeCustomHtmlTagName, normalizeCustomHtmlTags, normalizeStandaloneBackslashT, parseFenceToken, parseInlineTokens, parseMarkdownToStructure, processTokens, registerMarkdownPlugin, resolveCustomHtmlTags, sanitizeHtmlAttrs, sanitizeHtmlContent, sanitizeHtmlTokenAttrs, setDefaultMathOptions, shouldRenderUnknownHtmlTagAsText, stripCustomHtmlWrapper, stripHtmlControlAndWhitespace, tokenAttrsToRecord, tokenizeHtml };
475
476
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/factory.ts","../src/types.ts","../src/parser/inline-parsers/index.ts","../src/parser/index.ts","../src/config.ts","../src/customHtmlTags.ts","../src/findMatchingClose.ts","../src/htmlRenderUtils.ts","../src/htmlTags.ts","../src/parser/inline-parsers/fence-parser.ts","../src/plugins/containers.ts","../src/plugins/isMathLike.ts","../src/plugins/math.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/factory.ts","../src/types.ts","../src/parser/inline-parsers/index.ts","../src/parser/index.ts","../src/config.ts","../src/customHtmlTags.ts","../src/findMatchingClose.ts","../src/htmlRenderUtils.ts","../src/htmlTags.ts","../src/parser/inline-parsers/fence-parser.ts","../src/plugins/containers.ts","../src/plugins/isMathLike.ts","../src/plugins/math.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -6308,7 +6308,7 @@ function replaceUnsafeChar(ch) {
6308
6308
  /**
6309
6309
  * Escape HTML characters to prevent XSS
6310
6310
  */
6311
- function escapeHtml(str) {
6311
+ function escapeHtml$2(str) {
6312
6312
  if (str.length === 0) return "";
6313
6313
  if (str.length < 32) {
6314
6314
  if (HTML_ESCAPE_TEST_RE.test(str)) return str.replace(HTML_ESCAPE_REPLACE_RE, replaceUnsafeChar);
@@ -6362,16 +6362,16 @@ function renderAttrName(name) {
6362
6362
  case "style":
6363
6363
  case "target":
6364
6364
  case "title": return name;
6365
- default: return escapeHtml(name);
6365
+ default: return escapeHtml$2(name);
6366
6366
  }
6367
6367
  }
6368
6368
  function renderAttrsFromList(attrs) {
6369
6369
  if (!attrs || attrs.length === 0) return "";
6370
6370
  const firstAttr = attrs[0];
6371
- let result = ` ${renderAttrName(firstAttr[0])}="${escapeHtml(firstAttr[1])}"`;
6371
+ let result = ` ${renderAttrName(firstAttr[0])}="${escapeHtml$2(firstAttr[1])}"`;
6372
6372
  for (let i = 1; i < attrs.length; i++) {
6373
6373
  const attr = attrs[i];
6374
- result += ` ${renderAttrName(attr[0])}="${escapeHtml(attr[1])}"`;
6374
+ result += ` ${renderAttrName(attr[0])}="${escapeHtml$2(attr[1])}"`;
6375
6375
  }
6376
6376
  return result;
6377
6377
  }
@@ -6404,7 +6404,7 @@ function parseFenceInfo(info) {
6404
6404
  function renderFence(token, highlighted, info, langName, options) {
6405
6405
  if (highlighted.indexOf("<pre") === 0) return `${highlighted}\n`;
6406
6406
  if (info) {
6407
- if (!token.attrs || token.attrs.length === 0) return `<pre><code class="${escapeHtml(`${options.langPrefix ?? "language-"}${langName}`)}">${highlighted}</code></pre>\n`;
6407
+ if (!token.attrs || token.attrs.length === 0) return `<pre><code class="${escapeHtml$2(`${options.langPrefix ?? "language-"}${langName}`)}">${highlighted}</code></pre>\n`;
6408
6408
  const classIndex = token.attrIndex("class");
6409
6409
  const tmpAttrs = token.attrs ? token.attrs.slice() : [];
6410
6410
  const langClass = `${options.langPrefix ?? "language-"}${langName}`;
@@ -6418,11 +6418,11 @@ function renderFence(token, highlighted, info, langName, options) {
6418
6418
  return `<pre><code${renderAttrsFromList(token.attrs)}>${highlighted}</code></pre>\n`;
6419
6419
  }
6420
6420
  function renderCodeInlineToken(token) {
6421
- if (!token.attrs || token.attrs.length === 0) return `<code>${escapeHtml(token.content)}</code>`;
6422
- return `<code${renderAttrsFromList(token.attrs)}>${escapeHtml(token.content)}</code>`;
6421
+ if (!token.attrs || token.attrs.length === 0) return `<code>${escapeHtml$2(token.content)}</code>`;
6422
+ return `<code${renderAttrsFromList(token.attrs)}>${escapeHtml$2(token.content)}</code>`;
6423
6423
  }
6424
6424
  function renderCodeBlockToken(token) {
6425
- const content = escapeHtml(token.content);
6425
+ const content = escapeHtml$2(token.content);
6426
6426
  if (!token.attrs) return `<pre><code>${content}</code></pre>\n`;
6427
6427
  return `<pre${renderAttrsFromList(token.attrs)}><code>${content}</code></pre>\n`;
6428
6428
  }
@@ -6436,16 +6436,16 @@ function renderFastBlockOpenWithInline(token, prefix) {
6436
6436
  default: return null;
6437
6437
  }
6438
6438
  if (attrs.length === 1 && attrs[0][0] === "style") {
6439
- if (token.type === "td_open") return `${prefix}<td style="${escapeHtml(attrs[0][1])}">`;
6440
- if (token.type === "th_open") return `${prefix}<th style="${escapeHtml(attrs[0][1])}">`;
6439
+ if (token.type === "td_open") return `${prefix}<td style="${escapeHtml$2(attrs[0][1])}">`;
6440
+ if (token.type === "th_open") return `${prefix}<th style="${escapeHtml$2(attrs[0][1])}">`;
6441
6441
  }
6442
6442
  return null;
6443
6443
  }
6444
6444
  function renderLinkOpenToken(token) {
6445
6445
  const attrs = token.attrs;
6446
6446
  if (!attrs || attrs.length === 0) return "<a>";
6447
- if (attrs.length === 1) return `<a ${renderAttrName(attrs[0][0])}="${escapeHtml(attrs[0][1])}">`;
6448
- if (attrs.length === 2) return `<a ${renderAttrName(attrs[0][0])}="${escapeHtml(attrs[0][1])}" ${renderAttrName(attrs[1][0])}="${escapeHtml(attrs[1][1])}">`;
6447
+ if (attrs.length === 1) return `<a ${renderAttrName(attrs[0][0])}="${escapeHtml$2(attrs[0][1])}">`;
6448
+ if (attrs.length === 2) return `<a ${renderAttrName(attrs[0][0])}="${escapeHtml$2(attrs[0][1])}" ${renderAttrName(attrs[1][0])}="${escapeHtml$2(attrs[1][1])}">`;
6449
6449
  return `<a${renderAttrsFromList(attrs)}>`;
6450
6450
  }
6451
6451
  function canUseLinkInlineFastPath(token) {
@@ -6502,7 +6502,7 @@ const defaultRules = {
6502
6502
  const info = token.info ? unescapeAll(token.info).trim() : "";
6503
6503
  const { langName, langAttrs } = parseFenceInfo(info);
6504
6504
  const highlight = options.highlight;
6505
- const fallback = escapeHtml(token.content);
6505
+ const fallback = escapeHtml$2(token.content);
6506
6506
  if (!highlight) return renderFence(token, fallback, info, langName, options);
6507
6507
  const highlighted = highlight(token.content, langName, langAttrs);
6508
6508
  if (isPromiseLike(highlighted)) return highlighted.then((res) => renderFence(token, res || fallback, info, langName, options));
@@ -6524,10 +6524,10 @@ const defaultRules = {
6524
6524
  return options.breaks ? options.xhtmlOut ? "<br />\n" : "<br>\n" : "\n";
6525
6525
  },
6526
6526
  text(tokens, idx) {
6527
- return escapeHtml(tokens[idx].content);
6527
+ return escapeHtml$2(tokens[idx].content);
6528
6528
  },
6529
6529
  text_special(tokens, idx) {
6530
- return escapeHtml(tokens[idx].content);
6530
+ return escapeHtml$2(tokens[idx].content);
6531
6531
  },
6532
6532
  html_block(tokens, idx) {
6533
6533
  return tokens[idx].content;
@@ -6540,7 +6540,7 @@ function renderFenceSyncToken(token, options, _self) {
6540
6540
  const info = token.info ? unescapeAll(token.info).trim() : "";
6541
6541
  const { langName, langAttrs } = parseFenceInfo(info);
6542
6542
  const highlight = options.highlight;
6543
- const fallback = escapeHtml(token.content);
6543
+ const fallback = escapeHtml$2(token.content);
6544
6544
  if (!highlight) return renderFence(token, fallback, info, langName, options);
6545
6545
  const highlighted = highlight(token.content, langName, langAttrs);
6546
6546
  if (isPromiseLike(highlighted)) throw new TypeError("Renderer rule \"fence\" returned a Promise. Use renderAsync() instead.");
@@ -6550,10 +6550,10 @@ function renderSingleInlineTokenSync(tokens, options, env, self, rules, inlineBr
6550
6550
  const token = tokens[0];
6551
6551
  switch (token.type) {
6552
6552
  case "text":
6553
- if (rules.text === defaultRules.text) return token.content.length === 0 ? "" : escapeHtml(token.content);
6553
+ if (rules.text === defaultRules.text) return token.content.length === 0 ? "" : escapeHtml$2(token.content);
6554
6554
  break;
6555
6555
  case "text_special":
6556
- if (rules.text_special === defaultRules.text_special) return token.content.length === 0 ? "" : escapeHtml(token.content);
6556
+ if (rules.text_special === defaultRules.text_special) return token.content.length === 0 ? "" : escapeHtml$2(token.content);
6557
6557
  break;
6558
6558
  case "softbreak":
6559
6559
  if (rules.softbreak === defaultRules.softbreak) return softbreak;
@@ -6653,13 +6653,13 @@ var Renderer = class {
6653
6653
  switch (child.type) {
6654
6654
  case "text":
6655
6655
  if (textRule === defaultRules.text) {
6656
- result += escapeHtml(child.content);
6656
+ result += escapeHtml$2(child.content);
6657
6657
  continue;
6658
6658
  }
6659
6659
  break;
6660
6660
  case "text_special":
6661
6661
  if (textSpecialRule === defaultRules.text_special) {
6662
- result += escapeHtml(child.content);
6662
+ result += escapeHtml$2(child.content);
6663
6663
  continue;
6664
6664
  }
6665
6665
  break;
@@ -6780,15 +6780,15 @@ var Renderer = class {
6780
6780
  else if (attrs.length === 1) {
6781
6781
  const attr = attrs[0];
6782
6782
  if (type === "ordered_list_open" && attr[0] === "start") {
6783
- result += `${prefix}<ol start="${escapeHtml(attr[1])}">\n`;
6783
+ result += `${prefix}<ol start="${escapeHtml$2(attr[1])}">\n`;
6784
6784
  continue;
6785
6785
  }
6786
6786
  if (type === "td_open" && attr[0] === "style") {
6787
- result += `${prefix}<td style="${escapeHtml(attr[1])}">`;
6787
+ result += `${prefix}<td style="${escapeHtml$2(attr[1])}">`;
6788
6788
  continue;
6789
6789
  }
6790
6790
  if (type === "th_open" && attr[0] === "style") {
6791
- result += `${prefix}<th style="${escapeHtml(attr[1])}">`;
6791
+ result += `${prefix}<th style="${escapeHtml$2(attr[1])}">`;
6792
6792
  continue;
6793
6793
  }
6794
6794
  }
@@ -6987,7 +6987,7 @@ var Renderer = class {
6987
6987
  switch (token.type) {
6988
6988
  case "text":
6989
6989
  if (textRule === defaultRules.text) {
6990
- const escaped = token.content.length === 0 ? "" : escapeHtml(token.content);
6990
+ const escaped = token.content.length === 0 ? "" : escapeHtml$2(token.content);
6991
6991
  if (htmlInlineRule === defaultRules.html_inline && i + 1 < tokens.length && tokens[i + 1].type === "html_inline") {
6992
6992
  result += escaped + tokens[++i].content;
6993
6993
  while (i + 1 < tokens.length && tokens[i + 1].type === "html_inline") result += tokens[++i].content;
@@ -6999,7 +6999,7 @@ var Renderer = class {
6999
6999
  break;
7000
7000
  case "text_special":
7001
7001
  if (textSpecialRule === defaultRules.text_special) {
7002
- if (token.content.length !== 0) result += escapeHtml(token.content);
7002
+ if (token.content.length !== 0) result += escapeHtml$2(token.content);
7003
7003
  continue;
7004
7004
  }
7005
7005
  break;
@@ -11780,6 +11780,16 @@ function applyMath(md, mathOpts) {
11780
11780
  const s = state;
11781
11781
  const strict = !!mathOpts?.strictDelimiters;
11782
11782
  const allowLoading = !s?.env?.__markstreamFinal;
11783
+ const preserveSpacesBeforeLineBreak = (src, start) => {
11784
+ let end = start;
11785
+ while (end < src.length && (src[end] === " " || src[end] === " ")) end++;
11786
+ if (end === start) return start;
11787
+ if (!(src[end] === "\n" || src[end] === "\r" && src[end + 1] === "\n")) return start;
11788
+ const text$1 = src.slice(start, end);
11789
+ const token = s.push("text", "", 0);
11790
+ token.content = text$1;
11791
+ return end;
11792
+ };
11783
11793
  if (/^\*[^*]+/.test(s.src)) return false;
11784
11794
  const delimiters = [
11785
11795
  ["$$", "$$"],
@@ -12062,11 +12072,11 @@ function applyMath(md, mathOpts) {
12062
12072
  token.loading = false;
12063
12073
  const isBeforeClose = src.slice(endIdx + close.length).startsWith(strongMarker);
12064
12074
  if (isBeforeClose) s.push("strong_close", "", 0);
12065
- s.pos = endIdx + close.length;
12075
+ s.pos = preserveSpacesBeforeLineBreak(src, endIdx + close.length);
12066
12076
  searchPos = s.pos;
12067
12077
  preMathPos = searchPos;
12068
12078
  if (!isBeforeClose) s.push("strong_close", "", 0);
12069
- continue;
12079
+ return true;
12070
12080
  } else {
12071
12081
  const token = s.push("math_inline", "math", 0);
12072
12082
  token.content = normalizeStandaloneBackslashT(content, mathOpts);
@@ -12075,9 +12085,10 @@ function applyMath(md, mathOpts) {
12075
12085
  token.loading = false;
12076
12086
  }
12077
12087
  }
12078
- searchPos = endIdx + close.length;
12088
+ searchPos = preserveSpacesBeforeLineBreak(src, endIdx + close.length);
12079
12089
  preMathPos = searchPos;
12080
12090
  s.pos = searchPos;
12091
+ return true;
12081
12092
  }
12082
12093
  if (foundAny) {
12083
12094
  if (!silent) {
@@ -12539,6 +12550,40 @@ function normalizeLinkAttrs$1(attrs, href, title) {
12539
12550
  function stringifyTokens(tokens) {
12540
12551
  return tokens.map(tokenToRaw).join("");
12541
12552
  }
12553
+ function normalizeStandardHtmlChildren(children) {
12554
+ const normalized = [];
12555
+ const pushText = (rawText) => {
12556
+ const text$1 = String(rawText ?? "");
12557
+ if (!text$1) return;
12558
+ const last = normalized[normalized.length - 1];
12559
+ if (last?.type === "text") {
12560
+ last.content = String(last.content ?? "") + text$1;
12561
+ last.raw = String(last.raw ?? "") + text$1;
12562
+ return;
12563
+ }
12564
+ normalized.push({
12565
+ type: "text",
12566
+ content: text$1,
12567
+ raw: text$1
12568
+ });
12569
+ };
12570
+ for (const child of children) {
12571
+ if (!child) continue;
12572
+ if (child.type === "reference" || child.type === "footnote_reference") {
12573
+ pushText(String(child.raw ?? ""));
12574
+ continue;
12575
+ }
12576
+ if (Array.isArray(child.children)) {
12577
+ normalized.push({
12578
+ ...child,
12579
+ children: normalizeStandardHtmlChildren(child.children ?? [])
12580
+ });
12581
+ continue;
12582
+ }
12583
+ normalized.push(child);
12584
+ }
12585
+ return normalized;
12586
+ }
12542
12587
  function findMatchingClosing(tokens, startIndex, tag) {
12543
12588
  let depth = 0;
12544
12589
  for (let idx = startIndex; idx < tokens.length; idx++) {
@@ -12623,9 +12668,9 @@ function parseHtmlInlineCodeToken(token, tokens, i, parseInlineTokens$1, raw, pP
12623
12668
  const titleAttr = getAttrValue$1(attrs$1, "title");
12624
12669
  const title = titleAttr == null ? null : String(titleAttr);
12625
12670
  const normalizedAttrs = normalizeLinkAttrs$1(attrs$1, href, title);
12626
- const children$1 = innerTokens.length ? parseInlineTokens$1(innerTokens, raw, pPreToken, options) : [];
12671
+ const normalizedChildren$1 = normalizeStandardHtmlChildren(innerTokens.length ? parseInlineTokens$1(innerTokens, raw, pPreToken, options) : []);
12627
12672
  const textContent = innerTokens.length ? stringifyTokens(innerTokens) : href || "";
12628
- if (!children$1.length && textContent) children$1.push({
12673
+ if (!normalizedChildren$1.length && textContent) normalizedChildren$1.push({
12629
12674
  type: "text",
12630
12675
  content: textContent,
12631
12676
  raw: textContent
@@ -12636,7 +12681,7 @@ function parseHtmlInlineCodeToken(token, tokens, i, parseInlineTokens$1, raw, pP
12636
12681
  title,
12637
12682
  text: textContent,
12638
12683
  attrs: normalizedAttrs,
12639
- children: children$1,
12684
+ children: normalizedChildren$1,
12640
12685
  loading: !fragment$1.closed,
12641
12686
  raw: fragment$1.html || code$1
12642
12687
  }, fragment$1.nextIndex];
@@ -12652,10 +12697,10 @@ function parseHtmlInlineCodeToken(token, tokens, i, parseInlineTokens$1, raw, pP
12652
12697
  const fragment = collectHtmlFragment(tokens, i, tag);
12653
12698
  if (tag === "p" || tag === "div") return [{
12654
12699
  type: "paragraph",
12655
- children: fragment.innerTokens.length ? parseInlineTokens$1(fragment.innerTokens, raw, pPreToken, options) : [],
12700
+ children: normalizeStandardHtmlChildren(fragment.innerTokens.length ? parseInlineTokens$1(fragment.innerTokens, raw, pPreToken, options) : []),
12656
12701
  raw: fragment.html
12657
12702
  }, fragment.nextIndex];
12658
- const children = fragment.innerTokens.length ? parseInlineTokens$1(fragment.innerTokens, raw, pPreToken, options) : [];
12703
+ const normalizedChildren = normalizeStandardHtmlChildren(fragment.innerTokens.length ? parseInlineTokens$1(fragment.innerTokens, raw, pPreToken, options) : []);
12659
12704
  let content = fragment.html || code$1;
12660
12705
  let loading = !fragment.closed;
12661
12706
  let autoClosed = false;
@@ -12688,7 +12733,7 @@ function parseHtmlInlineCodeToken(token, tokens, i, parseInlineTokens$1, raw, pP
12688
12733
  tag,
12689
12734
  attrs,
12690
12735
  content,
12691
- children,
12736
+ children: normalizedChildren,
12692
12737
  raw: content,
12693
12738
  loading,
12694
12739
  autoClosed
@@ -12980,7 +13025,7 @@ function parseTextToken(token) {
12980
13025
  const STRONG_PAIR_RE = /\*\*([\s\S]*?)\*\*/;
12981
13026
  const STRIKETHROUGH_RE = /[^~]*~{2,}[^~]+/;
12982
13027
  const HAS_STRONG_RE = /\*\*/;
12983
- const INLINE_REPARSE_MARKER_RE = /\*\*\*|___|\*\*|__|\*|_|~~/;
13028
+ const INLINE_REPARSE_MARKER_RE = /[[_*^~]/;
12984
13029
  const ESCAPED_PUNCTUATION_RE = /\\([\\()[\]`$|*_\-!])/g;
12985
13030
  const ESCAPABLE_PUNCTUATION = new Set([
12986
13031
  "\\",
@@ -13442,10 +13487,10 @@ function parseInlineTokens(tokens, raw, pPreToken, options) {
13442
13487
  }
13443
13488
  function tryReparseCollapsedInlineText(rawContent) {
13444
13489
  const md = options?.__markdownIt;
13445
- if (!md || !options?.final) return null;
13490
+ if (!md) return null;
13446
13491
  if (tokens.length <= 1 || !tokens.some((token) => token?.type === "math_inline")) return null;
13447
13492
  if (!INLINE_REPARSE_MARKER_RE.test(rawContent)) return null;
13448
- const reparsed = md.parseInline(rawContent, { __markstreamFinal: true });
13493
+ const reparsed = md.parseInline(rawContent, { __markstreamFinal: !!options?.final });
13449
13494
  if (!Array.isArray(reparsed) || reparsed.length === 0) return null;
13450
13495
  const children = (reparsed.find((token) => token?.type === "inline")?.children ?? []).filter((child) => !(child?.type === "text" && String(child.content ?? "") === ""));
13451
13496
  if (!children.length) return null;
@@ -15255,7 +15300,7 @@ function normalizeIndentedSourceForLookup(value) {
15255
15300
  }
15256
15301
  function canFindNodeRawAfterSourceIndex(source, startIndex, nodeRaw) {
15257
15302
  if (!nodeRaw) return false;
15258
- if (source.indexOf(nodeRaw, startIndex) !== -1) return true;
15303
+ if (source.includes(nodeRaw, startIndex)) return true;
15259
15304
  return normalizeIndentedSourceForLookup(source.slice(Math.max(0, startIndex))).includes(normalizeIndentedSourceForLookup(nodeRaw));
15260
15305
  }
15261
15306
  function extendHtmlBlockCloseToLineEnding(source, startIndex) {
@@ -15307,7 +15352,7 @@ const STRUCTURED_HTML_WRAPPER_BLOCK_TYPES = new Set([
15307
15352
  "table",
15308
15353
  "thematic_break"
15309
15354
  ]);
15310
- const STRUCTURED_HTML_WRAPPER_MARKER_RE = /(?:^|\n)(?:\s{0,3}(?:#{1,6}\s+\S|[-+*]\s+\S|\d+[.)]\s+\S|>\s*\S|(?:`{3,}|~{3,})|(?:\*{3,}|-{3,}|_{3,})(?:\s|$)|\|.*\|))/m;
15355
+ const STRUCTURED_HTML_WRAPPER_MARKER_RE = /(?:^|\n)\s{0,3}(?:#{1,6}\s+\S|[-+*]\s+\S|\d+[.)]\s+\S|>\s*\S|`{3,}|~{3,}|(?:\*{3,}|-{3,}|_{3,})(?:\s|$)|\|.*\|)/m;
15311
15356
  function hasStructuredHtmlWrapperMarkers(fragment) {
15312
15357
  return /\n\s*\n/.test(fragment) || STRUCTURED_HTML_WRAPPER_MARKER_RE.test(fragment);
15313
15358
  }
@@ -16456,6 +16501,38 @@ const CUSTOM_TAG_REGEX = /<([a-z][a-z0-9-]*)\b[^>]*>/gi;
16456
16501
  function hasOwn(obj, key) {
16457
16502
  return Object.prototype.hasOwnProperty.call(obj, key);
16458
16503
  }
16504
+ function getString(value) {
16505
+ return typeof value === "string" ? value : value == null ? "" : String(value);
16506
+ }
16507
+ function isSafeAttrName(value) {
16508
+ return /^[^\s"'<>`=]+$/.test(value) && !/^on/i.test(value);
16509
+ }
16510
+ function escapeHtml(value) {
16511
+ return getString(value).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
16512
+ }
16513
+ function escapeAttr(value) {
16514
+ return escapeHtml(value).replace(/`/g, "&#96;");
16515
+ }
16516
+ function normalizeTagName(tagName) {
16517
+ return String(tagName ?? "").trim().toLowerCase();
16518
+ }
16519
+ function serializeAttrs(attrs) {
16520
+ const pairs = Object.entries(attrs);
16521
+ if (pairs.length === 0) return "";
16522
+ return pairs.map(([name, value]) => value === "" ? ` ${name}` : ` ${name}="${escapeAttr(value)}"`).join("");
16523
+ }
16524
+ function sanitizeHtmlContentAttrs(attrs) {
16525
+ const clean = {};
16526
+ for (const [key, value] of Object.entries(attrs)) {
16527
+ const safeName = key.trim();
16528
+ const lowerKey = safeName.toLowerCase();
16529
+ if (!safeName || !isSafeAttrName(safeName)) continue;
16530
+ if (DANGEROUS_HTML_ATTRS.has(lowerKey)) continue;
16531
+ if (URL_HTML_ATTRS.has(lowerKey) && value && isUnsafeHtmlUrl(value)) continue;
16532
+ clean[safeName] = value;
16533
+ }
16534
+ return clean;
16535
+ }
16459
16536
  function isCustomHtmlComponentTag(tagName, customComponents) {
16460
16537
  const lowerTag = tagName.toLowerCase();
16461
16538
  if (EXTENDED_STANDARD_HTML_TAGS.has(lowerTag)) return false;
@@ -16609,6 +16686,95 @@ function tokenizeHtml(html) {
16609
16686
  }
16610
16687
  return tokens;
16611
16688
  }
16689
+ function tokenizeHtmlPreservingText(html) {
16690
+ const tokens = [];
16691
+ let pos = 0;
16692
+ while (pos < html.length) {
16693
+ if (html.startsWith("<!--", pos)) {
16694
+ const commentEnd = html.indexOf("-->", pos);
16695
+ if (commentEnd !== -1) {
16696
+ pos = commentEnd + 3;
16697
+ continue;
16698
+ }
16699
+ break;
16700
+ }
16701
+ const tagStart = html.indexOf("<", pos);
16702
+ if (tagStart === -1) {
16703
+ if (pos < html.length) tokens.push({
16704
+ type: "text",
16705
+ content: html.slice(pos)
16706
+ });
16707
+ break;
16708
+ }
16709
+ if (tagStart > pos) tokens.push({
16710
+ type: "text",
16711
+ content: html.slice(pos, tagStart)
16712
+ });
16713
+ if (html.startsWith("![CDATA[", tagStart + 1)) {
16714
+ const cdataEnd = html.indexOf("]]>", tagStart);
16715
+ if (cdataEnd !== -1) {
16716
+ tokens.push({
16717
+ type: "text",
16718
+ content: html.slice(tagStart, cdataEnd + 3)
16719
+ });
16720
+ pos = cdataEnd + 3;
16721
+ continue;
16722
+ }
16723
+ break;
16724
+ }
16725
+ if (html.startsWith("!", tagStart + 1)) {
16726
+ const specialEnd = html.indexOf(">", tagStart);
16727
+ if (specialEnd !== -1) {
16728
+ pos = specialEnd + 1;
16729
+ continue;
16730
+ }
16731
+ break;
16732
+ }
16733
+ const tagEnd = html.indexOf(">", tagStart);
16734
+ if (tagEnd === -1) break;
16735
+ const tagContent = html.slice(tagStart + 1, tagEnd).trim();
16736
+ if (!tagContent) {
16737
+ pos = tagEnd + 1;
16738
+ continue;
16739
+ }
16740
+ const isClosingTag$1 = tagContent.startsWith("/");
16741
+ const isSelfClosing$1 = tagContent.endsWith("/");
16742
+ if (isClosingTag$1) {
16743
+ const tagName$1 = tagContent.slice(1).trim();
16744
+ tokens.push({
16745
+ type: "tag_close",
16746
+ tagName: tagName$1
16747
+ });
16748
+ pos = tagEnd + 1;
16749
+ continue;
16750
+ }
16751
+ const spaceIndex = tagContent.indexOf(" ");
16752
+ let tagName = "";
16753
+ let attrsStr = "";
16754
+ if (spaceIndex === -1) tagName = isSelfClosing$1 ? tagContent.slice(0, -1).trim() : tagContent.trim();
16755
+ else {
16756
+ tagName = tagContent.slice(0, spaceIndex).trim();
16757
+ attrsStr = tagContent.slice(spaceIndex + 1);
16758
+ }
16759
+ const attrs = {};
16760
+ if (attrsStr) {
16761
+ const attrRegex = /([^\s=]+)(?:=(?:"([^"]*)"|'([^']*)'|(\S*)))?/g;
16762
+ let attrMatch;
16763
+ while ((attrMatch = attrRegex.exec(attrsStr)) !== null) {
16764
+ const name = attrMatch[1];
16765
+ const value = attrMatch[2] ?? attrMatch[3] ?? attrMatch[4] ?? "";
16766
+ if (name && !name.endsWith("/")) attrs[name] = value;
16767
+ }
16768
+ }
16769
+ tokens.push({
16770
+ type: isSelfClosing$1 || VOID_HTML_TAGS.has(tagName.toLowerCase()) ? "self_closing" : "tag_open",
16771
+ tagName,
16772
+ attrs
16773
+ });
16774
+ pos = tagEnd + 1;
16775
+ }
16776
+ return tokens;
16777
+ }
16612
16778
  function hasCustomHtmlComponents(content, customComponents) {
16613
16779
  if (!content || !content.includes("<")) return false;
16614
16780
  if (!customComponents || Object.keys(customComponents).length === 0) return false;
@@ -16617,6 +16783,49 @@ function hasCustomHtmlComponents(content, customComponents) {
16617
16783
  while ((match = CUSTOM_TAG_REGEX.exec(content)) !== null) if (isCustomHtmlComponentTag(match[1], customComponents)) return true;
16618
16784
  return false;
16619
16785
  }
16786
+ function sanitizeHtmlContent(content) {
16787
+ if (!content) return "";
16788
+ const tokens = tokenizeHtmlPreservingText(content);
16789
+ const stack = [];
16790
+ const output = [];
16791
+ let blockedDepth = 0;
16792
+ for (const token of tokens) {
16793
+ if (token.type === "text") {
16794
+ if (blockedDepth === 0) output.push(escapeHtml(token.content ?? ""));
16795
+ continue;
16796
+ }
16797
+ const tagName = normalizeTagName(token.tagName);
16798
+ if (!tagName) continue;
16799
+ if (BLOCKED_HTML_TAGS.has(tagName)) {
16800
+ if (token.type === "tag_open") blockedDepth += 1;
16801
+ else if (token.type === "tag_close" && blockedDepth > 0) blockedDepth -= 1;
16802
+ continue;
16803
+ }
16804
+ if (blockedDepth > 0) continue;
16805
+ if (token.type === "self_closing") {
16806
+ output.push(`<${tagName}${serializeAttrs(sanitizeHtmlContentAttrs(token.attrs ?? {}))}>`);
16807
+ continue;
16808
+ }
16809
+ if (token.type === "tag_open") {
16810
+ output.push(`<${tagName}${serializeAttrs(sanitizeHtmlContentAttrs(token.attrs ?? {}))}>`);
16811
+ if (!VOID_HTML_TAGS.has(tagName)) stack.push(tagName);
16812
+ continue;
16813
+ }
16814
+ const matchedIndex = stack.lastIndexOf(tagName);
16815
+ if (matchedIndex === -1) continue;
16816
+ while (stack.length > matchedIndex + 1) {
16817
+ const danglingTag = stack.pop();
16818
+ if (danglingTag) output.push(`</${danglingTag}>`);
16819
+ }
16820
+ const closingTag = stack.pop();
16821
+ if (closingTag) output.push(`</${closingTag}>`);
16822
+ }
16823
+ while (stack.length > 0) {
16824
+ const danglingTag = stack.pop();
16825
+ if (danglingTag) output.push(`</${danglingTag}>`);
16826
+ }
16827
+ return output.join("");
16828
+ }
16620
16829
 
16621
16830
  //#endregion
16622
16831
  //#region src/index.ts
@@ -16744,6 +16953,7 @@ function getMarkdown(msgId = `editor-${Date.now()}`, options = {}) {
16744
16953
  const token = s.push("reference", "span", 0);
16745
16954
  token.content = id;
16746
16955
  token.markup = match[0];
16956
+ token.raw = match[0];
16747
16957
  }
16748
16958
  s.pos += match[0].length;
16749
16959
  return true;
@@ -16758,5 +16968,5 @@ function getMarkdown(msgId = `editor-${Date.now()}`, options = {}) {
16758
16968
  }
16759
16969
 
16760
16970
  //#endregion
16761
- export { BLOCKED_HTML_TAGS, BLOCKED_HTML_TAG_NAMES, BLOCK_HTML_TAG_NAMES, DANGEROUS_HTML_ATTRS, DANGEROUS_HTML_ATTR_NAMES, ESCAPED_TEX_BRACE_COMMANDS, EXTENDED_STANDARD_HTML_TAGS, EXTENDED_STANDARD_HTML_TAG_NAMES, INLINE_HTML_TAG_NAMES, KATEX_COMMANDS, NON_STRUCTURING_HTML_TAGS, NON_STRUCTURING_HTML_TAG_NAMES, STANDARD_BLOCK_HTML_TAGS, STANDARD_HTML_TAGS, SVG_HTML_TAG_NAMES, TEX_BRACE_COMMANDS, URL_HTML_ATTRS, URL_HTML_ATTR_NAMES, VOID_HTML_TAGS, VOID_HTML_TAG_NAMES, applyContainers, applyMath, clearRegisteredMarkdownPlugins, convertHtmlAttrsToProps, convertHtmlPropValue, findMatchingClose, getHtmlTagFromContent, getMarkdown, hasCompleteHtmlTagContent, hasCustomHtmlComponents, isCustomHtmlComponentTag, isHtmlLikeTagName, isMathLike, isUnsafeHtmlUrl, mergeCustomHtmlTags, normalizeCustomHtmlTagName, normalizeCustomHtmlTags, normalizeStandaloneBackslashT, parseFenceToken, parseInlineTokens, parseMarkdownToStructure, processTokens, registerMarkdownPlugin, resolveCustomHtmlTags, sanitizeHtmlAttrs, sanitizeHtmlTokenAttrs, setDefaultMathOptions, shouldRenderUnknownHtmlTagAsText, stripCustomHtmlWrapper, stripHtmlControlAndWhitespace, tokenAttrsToRecord, tokenizeHtml };
16971
+ export { BLOCKED_HTML_TAGS, BLOCKED_HTML_TAG_NAMES, BLOCK_HTML_TAG_NAMES, DANGEROUS_HTML_ATTRS, DANGEROUS_HTML_ATTR_NAMES, ESCAPED_TEX_BRACE_COMMANDS, EXTENDED_STANDARD_HTML_TAGS, EXTENDED_STANDARD_HTML_TAG_NAMES, INLINE_HTML_TAG_NAMES, KATEX_COMMANDS, NON_STRUCTURING_HTML_TAGS, NON_STRUCTURING_HTML_TAG_NAMES, STANDARD_BLOCK_HTML_TAGS, STANDARD_HTML_TAGS, SVG_HTML_TAG_NAMES, TEX_BRACE_COMMANDS, URL_HTML_ATTRS, URL_HTML_ATTR_NAMES, VOID_HTML_TAGS, VOID_HTML_TAG_NAMES, applyContainers, applyMath, clearRegisteredMarkdownPlugins, convertHtmlAttrsToProps, convertHtmlPropValue, findMatchingClose, getHtmlTagFromContent, getMarkdown, hasCompleteHtmlTagContent, hasCustomHtmlComponents, isCustomHtmlComponentTag, isHtmlLikeTagName, isMathLike, isUnsafeHtmlUrl, mergeCustomHtmlTags, normalizeCustomHtmlTagName, normalizeCustomHtmlTags, normalizeStandaloneBackslashT, parseFenceToken, parseInlineTokens, parseMarkdownToStructure, processTokens, registerMarkdownPlugin, resolveCustomHtmlTags, sanitizeHtmlAttrs, sanitizeHtmlContent, sanitizeHtmlTokenAttrs, setDefaultMathOptions, shouldRenderUnknownHtmlTagAsText, stripCustomHtmlWrapper, stripHtmlControlAndWhitespace, tokenAttrsToRecord, tokenizeHtml };
16762
16972
  //# sourceMappingURL=index.js.map