stream-markdown-parser 0.0.90 → 0.0.91

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
@@ -405,21 +405,25 @@ declare function stripCustomHtmlWrapper(html: unknown, tag: string): string;
405
405
  declare function findMatchingClose(src: string, startIdx: number, open: string, close: string): number;
406
406
  //#endregion
407
407
  //#region src/htmlRenderUtils.d.ts
408
+ type HtmlPolicy = 'escape' | 'safe' | 'trusted';
408
409
  interface HtmlToken {
409
410
  type: 'text' | 'tag_open' | 'tag_close' | 'self_closing';
410
411
  tagName?: string;
411
412
  attrs?: Record<string, string>;
412
413
  content?: string;
413
414
  }
415
+ declare const SAFE_ALLOWED_HTML_TAGS: Set<string>;
416
+ declare function isHtmlTagBlocked(tagName: string | undefined, policy?: HtmlPolicy): boolean;
417
+ declare function isHtmlTagHardBlocked(tagName: string | undefined, policy?: HtmlPolicy): boolean;
414
418
  declare function isCustomHtmlComponentTag(tagName: string, customComponents: Record<string, unknown>): boolean;
415
- declare function sanitizeHtmlAttrs(attrs: Record<string, string>): Record<string, string>;
419
+ declare function sanitizeHtmlAttrs(attrs: Record<string, string>, policy?: HtmlPolicy, tagName?: string): Record<string, string>;
416
420
  declare function tokenAttrsToRecord(attrs?: Array<[string, string | null]> | null): Record<string, string>;
417
- declare function sanitizeHtmlTokenAttrs(attrs?: Array<[string, string | null]> | null): [string, string][] | undefined;
421
+ declare function sanitizeHtmlTokenAttrs(attrs?: Array<[string, string | null]> | null, policy?: HtmlPolicy, tagName?: string): [string, string][] | undefined;
418
422
  declare function convertHtmlPropValue(value: string, key: string): any;
419
423
  declare function convertHtmlAttrsToProps(attrs: Record<string, string>): Record<string, any>;
420
424
  declare function tokenizeHtml(html: string): HtmlToken[];
421
425
  declare function hasCustomHtmlComponents(content: string, customComponents: Record<string, unknown>): boolean;
422
- declare function sanitizeHtmlContent(content: string): string;
426
+ declare function sanitizeHtmlContent(content: string, policy?: HtmlPolicy): string;
423
427
  //#endregion
424
428
  //#region src/htmlTags.d.ts
425
429
  declare const VOID_HTML_TAG_NAMES: readonly ["area", "base", "br", "col", "embed", "hr", "img", "input", "link", "meta", "param", "source", "track", "wbr"];
@@ -472,5 +476,5 @@ interface GetMarkdownOptions extends FactoryOptions {
472
476
  }
473
477
  declare function getMarkdown(msgId?: string, options?: GetMarkdownOptions): MarkdownIt;
474
478
  //#endregion
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 };
479
+ 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, HtmlPolicy, 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, SAFE_ALLOWED_HTML_TAGS, 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, isHtmlTagBlocked, isHtmlTagHardBlocked, isMathLike, isUnsafeHtmlUrl, mergeCustomHtmlTags, normalizeCustomHtmlTagName, normalizeCustomHtmlTags, normalizeStandaloneBackslashT, parseFenceToken, parseInlineTokens, parseMarkdownToStructure, processTokens, registerMarkdownPlugin, resolveCustomHtmlTags, sanitizeHtmlAttrs, sanitizeHtmlContent, sanitizeHtmlTokenAttrs, setDefaultMathOptions, shouldRenderUnknownHtmlTagAsText, stripCustomHtmlWrapper, stripHtmlControlAndWhitespace, tokenAttrsToRecord, tokenizeHtml };
476
480
  //# 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
@@ -10503,6 +10503,124 @@ function applyFixIndentedCodeBlock(md, options = {}) {
10503
10503
  });
10504
10504
  }
10505
10505
 
10506
+ //#endregion
10507
+ //#region src/parser/linkifyHeuristics.ts
10508
+ const FILENAMEISH_EXTENSION_RE = /\.([a-z0-9]{1,10})$/i;
10509
+ const FILENAMEISH_SEGMENT_RE = /[_()[\]{}<>]/u;
10510
+ const URL_PREFIX_HINT_RE = /^(?:https?:\/\/|ftp:\/\/|mailto:|www\.)/i;
10511
+ const URL_QUERY_OR_AUTH_HINT_RE = /[?#@]/u;
10512
+ const PATH_SEPARATOR_RE = /[\\/]/u;
10513
+ const DOMAINISH_TEXT_RE = /^[\p{L}\p{N}./\\-]+$/u;
10514
+ const DOMAIN_LABEL_RE = /^[A-Za-z0-9-]{1,63}$/u;
10515
+ const PUNYCODE_TLD_RE = /^xn--[a-z0-9-]{2,59}$/i;
10516
+ const AMBIGUOUS_BARE_DOMAIN_EXTENSIONS = new Set([
10517
+ "ai",
10518
+ "md",
10519
+ "py",
10520
+ "rs",
10521
+ "sh",
10522
+ "zip"
10523
+ ]);
10524
+ const FILENAMEISH_LINK_EXTENSIONS = new Set([
10525
+ "7z",
10526
+ "ai",
10527
+ "astro",
10528
+ "avi",
10529
+ "bash",
10530
+ "bz2",
10531
+ "c",
10532
+ "cjs",
10533
+ "cpp",
10534
+ "cs",
10535
+ "csv",
10536
+ "doc",
10537
+ "docx",
10538
+ "fish",
10539
+ "flac",
10540
+ "gif",
10541
+ "go",
10542
+ "gz",
10543
+ "h",
10544
+ "hpp",
10545
+ "html",
10546
+ "java",
10547
+ "jpeg",
10548
+ "jpg",
10549
+ "js",
10550
+ "json",
10551
+ "jsx",
10552
+ "kt",
10553
+ "md",
10554
+ "mdx",
10555
+ "mjs",
10556
+ "mov",
10557
+ "mp3",
10558
+ "mp4",
10559
+ "pdf",
10560
+ "php",
10561
+ "png",
10562
+ "ppt",
10563
+ "pptx",
10564
+ "ps1",
10565
+ "py",
10566
+ "rar",
10567
+ "rb",
10568
+ "rs",
10569
+ "sh",
10570
+ "sql",
10571
+ "svg",
10572
+ "swift",
10573
+ "svelte",
10574
+ "tar",
10575
+ "tgz",
10576
+ "toml",
10577
+ "ts",
10578
+ "tsx",
10579
+ "txt",
10580
+ "vue",
10581
+ "wav",
10582
+ "webp",
10583
+ "xls",
10584
+ "xlsx",
10585
+ "xml",
10586
+ "yaml",
10587
+ "yml",
10588
+ "zip",
10589
+ "zsh"
10590
+ ]);
10591
+ function isValidDomainLabel(label) {
10592
+ return DOMAIN_LABEL_RE.test(label) && !label.startsWith("-") && !label.endsWith("-");
10593
+ }
10594
+ function isPlausibleBareDomain(text$1) {
10595
+ const labels = text$1.split(".");
10596
+ if (labels.length < 2) return false;
10597
+ const tld = labels[labels.length - 1]?.toLowerCase() ?? "";
10598
+ if (!(isValidDomainLabel(tld) || PUNYCODE_TLD_RE.test(tld))) return false;
10599
+ return labels.every(isValidDomainLabel);
10600
+ }
10601
+ function hasDomainAuthorityPrefix(text$1) {
10602
+ return isPlausibleBareDomain(text$1.split(/[\\/]/)[0] ?? "");
10603
+ }
10604
+ function isUppercaseFilenameSegment(segment) {
10605
+ const lettersOnly = segment.replace(/[^a-z]/gi, "");
10606
+ return lettersOnly.length >= 2 && lettersOnly === lettersOnly.toUpperCase();
10607
+ }
10608
+ function hasStrongFilenameSignals(linkText) {
10609
+ if (FILENAMEISH_SEGMENT_RE.test(linkText)) return true;
10610
+ if (!DOMAINISH_TEXT_RE.test(linkText)) return true;
10611
+ if (PATH_SEPARATOR_RE.test(linkText)) return !hasDomainAuthorityPrefix(linkText);
10612
+ return linkText.replace(FILENAMEISH_EXTENSION_RE, "").split(".").filter(Boolean).some(isUppercaseFilenameSegment);
10613
+ }
10614
+ function shouldDemoteFilenameLikeLinkify(linkText) {
10615
+ if (!linkText || URL_PREFIX_HINT_RE.test(linkText) || URL_QUERY_OR_AUTH_HINT_RE.test(linkText)) return false;
10616
+ const extensionMatch = linkText.match(FILENAMEISH_EXTENSION_RE);
10617
+ if (!extensionMatch) return false;
10618
+ const extension = String(extensionMatch[1] ?? "").toLowerCase();
10619
+ if (!FILENAMEISH_LINK_EXTENSIONS.has(extension)) return false;
10620
+ if (!AMBIGUOUS_BARE_DOMAIN_EXTENSIONS.has(extension)) return true;
10621
+ return hasStrongFilenameSignals(linkText);
10622
+ }
10623
+
10506
10624
  //#endregion
10507
10625
  //#region src/plugins/fixLinkTokens.ts
10508
10626
  const LINKIFY_HARD_STOP_CHARS = ["!"];
@@ -10614,6 +10732,15 @@ function setHrefOnLinkOpen(token, href) {
10614
10732
  if (idx >= 0) token.attrs[idx][1] = href;
10615
10733
  else token.attrs.push(["href", href]);
10616
10734
  }
10735
+ function collectLinkifyText(tokens, openIndex, closeIndex) {
10736
+ let text$1 = "";
10737
+ for (let index = openIndex + 1; index < closeIndex; index++) {
10738
+ const token = tokens[index];
10739
+ if (token?.type !== "text" || typeof token.content !== "string") return null;
10740
+ text$1 += token.content;
10741
+ }
10742
+ return text$1 || null;
10743
+ }
10617
10744
  function applyFixLinkTokens(md) {
10618
10745
  md.core.ruler.after("inline", "fix_link_tokens", (state) => {
10619
10746
  const toks = state.tokens ?? [];
@@ -10641,6 +10768,11 @@ function fixLinkToken(tokens) {
10641
10768
  break;
10642
10769
  }
10643
10770
  if (closeIdx !== -1) {
10771
+ const linkText = collectLinkifyText(tokens, i, closeIdx);
10772
+ if (curToken.markup === "linkify" && linkText && shouldDemoteFilenameLikeLinkify(linkText)) {
10773
+ tokens.splice(i, closeIdx - i + 1, textToken(linkText));
10774
+ continue;
10775
+ }
10644
10776
  const href = getHrefFromLinkOpen(curToken);
10645
10777
  const hrefStop = firstIndexOfAny(href, LINKIFY_HARD_STOP_CHARS);
10646
10778
  for (let j = i + 1; j < closeIdx; j++) {
@@ -14067,6 +14199,10 @@ function parseInlineTokens(tokens, raw, pPreToken, options) {
14067
14199
  resetCurrentTextNode();
14068
14200
  const { node, nextIndex } = parseLinkToken(tokens, i, options);
14069
14201
  i = nextIndex;
14202
+ if (token.markup === "linkify" && shouldDemoteFilenameLikeLinkify(node.text || node.href || "")) {
14203
+ pushText(node.text || node.href || "", node.text || node.href || "");
14204
+ return;
14205
+ }
14070
14206
  const hasSingleTextChild = node.children.length === 1 && node.children[0]?.type === "text";
14071
14207
  if (node.loading && raw && node.text === node.href && hasSingleTextChild) {
14072
14208
  const recoveredLabel = recoverTrailingMarkdownLinkLabel(raw, node.href);
@@ -16743,6 +16879,79 @@ function processTokens(tokens, options) {
16743
16879
 
16744
16880
  //#endregion
16745
16881
  //#region src/htmlRenderUtils.ts
16882
+ const SAFE_BLOCKED_HTML_TAGS = new Set([
16883
+ ...BLOCKED_HTML_TAGS,
16884
+ "base",
16885
+ "button",
16886
+ "datalist",
16887
+ "dialog",
16888
+ "embed",
16889
+ "fieldset",
16890
+ "form",
16891
+ "iframe",
16892
+ "input",
16893
+ "legend",
16894
+ "link",
16895
+ "meta",
16896
+ "object",
16897
+ "optgroup",
16898
+ "option",
16899
+ "output",
16900
+ "param",
16901
+ "select",
16902
+ "style",
16903
+ "template",
16904
+ "textarea",
16905
+ "title"
16906
+ ]);
16907
+ const SAFE_ALLOWED_HTML_TAGS = new Set([
16908
+ "a",
16909
+ "abbr",
16910
+ "b",
16911
+ "blockquote",
16912
+ "br",
16913
+ "caption",
16914
+ "code",
16915
+ "col",
16916
+ "colgroup",
16917
+ "dd",
16918
+ "details",
16919
+ "div",
16920
+ "dl",
16921
+ "dt",
16922
+ "em",
16923
+ "h1",
16924
+ "h2",
16925
+ "h3",
16926
+ "h4",
16927
+ "h5",
16928
+ "h6",
16929
+ "hr",
16930
+ "i",
16931
+ "img",
16932
+ "ins",
16933
+ "kbd",
16934
+ "li",
16935
+ "mark",
16936
+ "ol",
16937
+ "p",
16938
+ "pre",
16939
+ "s",
16940
+ "small",
16941
+ "span",
16942
+ "strong",
16943
+ "sub",
16944
+ "summary",
16945
+ "sup",
16946
+ "table",
16947
+ "tbody",
16948
+ "td",
16949
+ "tfoot",
16950
+ "th",
16951
+ "thead",
16952
+ "tr",
16953
+ "ul"
16954
+ ]);
16746
16955
  const CUSTOM_TAG_REGEX = /<([a-z][a-z0-9-]*)\b[^>]*>/gi;
16747
16956
  function hasOwn(obj, key) {
16748
16957
  return Object.prototype.hasOwnProperty.call(obj, key);
@@ -16762,37 +16971,75 @@ function escapeAttr(value) {
16762
16971
  function normalizeTagName(tagName) {
16763
16972
  return String(tagName ?? "").trim().toLowerCase();
16764
16973
  }
16974
+ function isHtmlTagBlocked(tagName, policy = "safe") {
16975
+ const normalized = normalizeTagName(tagName);
16976
+ if (!normalized) return false;
16977
+ if (policy === "escape") return true;
16978
+ if (policy === "trusted") return BLOCKED_HTML_TAGS.has(normalized);
16979
+ return !SAFE_ALLOWED_HTML_TAGS.has(normalized);
16980
+ }
16981
+ function isHtmlTagHardBlocked(tagName, policy = "safe") {
16982
+ const normalized = normalizeTagName(tagName);
16983
+ if (!normalized) return false;
16984
+ if (policy === "escape") return true;
16985
+ if (policy === "trusted") return BLOCKED_HTML_TAGS.has(normalized);
16986
+ return SAFE_BLOCKED_HTML_TAGS.has(normalized);
16987
+ }
16765
16988
  function serializeAttrs(attrs) {
16766
16989
  const pairs = Object.entries(attrs);
16767
16990
  if (pairs.length === 0) return "";
16768
16991
  return pairs.map(([name, value]) => value === "" ? ` ${name}` : ` ${name}="${escapeAttr(value)}"`).join("");
16769
16992
  }
16770
- function sanitizeHtmlContentAttrs(attrs) {
16993
+ function isUnsafeSrcset(value) {
16994
+ const candidates = value.split(",").map((candidate) => candidate.trim()).filter(Boolean);
16995
+ if (candidates.length === 0) return false;
16996
+ return candidates.some((candidate) => {
16997
+ const url = candidate.split(/\s+/, 1)[0] ?? "";
16998
+ return !url || isUnsafeHtmlUrl(url);
16999
+ });
17000
+ }
17001
+ function shouldDropHtmlAttr(lowerKey, value, policy) {
17002
+ if (DANGEROUS_HTML_ATTRS.has(lowerKey)) return true;
17003
+ if (policy === "safe" && lowerKey === "style") return true;
17004
+ if (lowerKey === "srcset") return isUnsafeSrcset(value);
17005
+ if (URL_HTML_ATTRS.has(lowerKey) && value && isUnsafeHtmlUrl(value)) return true;
17006
+ return false;
17007
+ }
17008
+ function hardenAnchorAttrs(clean, policy, tagName) {
17009
+ if (policy !== "safe" || normalizeTagName(tagName) !== "a") return clean;
17010
+ if (String(clean.target ?? "").trim().toLowerCase() !== "_blank") return clean;
17011
+ const relTokens = new Set(String(clean.rel ?? "").split(/\s+/).map((token) => token.trim()).filter(Boolean).filter((token) => token.toLowerCase() !== "opener"));
17012
+ relTokens.add("noopener");
17013
+ relTokens.add("noreferrer");
17014
+ clean.rel = Array.from(relTokens).join(" ");
17015
+ return clean;
17016
+ }
17017
+ function sanitizeHtmlContentAttrs(attrs, policy = "safe", tagName) {
16771
17018
  const clean = {};
16772
17019
  for (const [key, value] of Object.entries(attrs)) {
16773
17020
  const safeName = key.trim();
16774
17021
  const lowerKey = safeName.toLowerCase();
16775
17022
  if (!safeName || !isSafeAttrName(safeName)) continue;
16776
- if (DANGEROUS_HTML_ATTRS.has(lowerKey)) continue;
16777
- if (URL_HTML_ATTRS.has(lowerKey) && value && isUnsafeHtmlUrl(value)) continue;
17023
+ if (shouldDropHtmlAttr(lowerKey, value, policy)) continue;
16778
17024
  clean[safeName] = value;
16779
17025
  }
16780
- return clean;
17026
+ return hardenAnchorAttrs(clean, policy, tagName);
16781
17027
  }
16782
17028
  function isCustomHtmlComponentTag(tagName, customComponents) {
16783
17029
  const lowerTag = tagName.toLowerCase();
16784
17030
  if (EXTENDED_STANDARD_HTML_TAGS.has(lowerTag)) return false;
16785
17031
  return hasOwn(customComponents, lowerTag) || hasOwn(customComponents, tagName);
16786
17032
  }
16787
- function sanitizeHtmlAttrs(attrs) {
17033
+ function sanitizeHtmlAttrs(attrs, policy = "safe", tagName) {
16788
17034
  const clean = {};
16789
17035
  for (const [key, value] of Object.entries(attrs)) {
16790
- const lowerKey = key.toLowerCase();
16791
- if (DANGEROUS_HTML_ATTRS.has(lowerKey)) continue;
16792
- if (URL_HTML_ATTRS.has(lowerKey) && value && isUnsafeHtmlUrl(value)) continue;
16793
- clean[key] = value;
17036
+ const safeName = key.trim();
17037
+ const lowerKey = safeName.toLowerCase();
17038
+ if (!safeName || !isSafeAttrName(safeName)) continue;
17039
+ if (shouldDropHtmlAttr(lowerKey, value, policy)) continue;
17040
+ clean[safeName] = value;
16794
17041
  }
16795
- return clean;
17042
+ return hardenAnchorAttrs(clean, policy, tagName);
16796
17043
  }
16797
17044
  function tokenAttrsToRecord(attrs) {
16798
17045
  const record = {};
@@ -16803,8 +17050,8 @@ function tokenAttrsToRecord(attrs) {
16803
17050
  }
16804
17051
  return record;
16805
17052
  }
16806
- function sanitizeHtmlTokenAttrs(attrs) {
16807
- const sanitized = sanitizeHtmlAttrs(tokenAttrsToRecord(attrs));
17053
+ function sanitizeHtmlTokenAttrs(attrs, policy = "safe", tagName) {
17054
+ const sanitized = sanitizeHtmlAttrs(tokenAttrsToRecord(attrs), policy, tagName);
16808
17055
  const pairs = Object.entries(sanitized).map(([key, value]) => [key, value]);
16809
17056
  return pairs.length > 0 ? pairs : void 0;
16810
17057
  }
@@ -17021,6 +17268,13 @@ function tokenizeHtmlPreservingText(html) {
17021
17268
  }
17022
17269
  return tokens;
17023
17270
  }
17271
+ function serializeLiteralHtmlTag(token) {
17272
+ const tagName = String(token.tagName ?? "").trim();
17273
+ if (!tagName) return "";
17274
+ if (token.type === "tag_close") return `&lt;/${escapeHtml(tagName)}&gt;`;
17275
+ const attrs = Object.entries(token.attrs ?? {}).map(([name, value]) => value === "" ? ` ${escapeHtml(name)}` : ` ${escapeHtml(name)}="${escapeAttr(value)}"`).join("");
17276
+ return token.type === "self_closing" ? `&lt;${escapeHtml(tagName)}${attrs} /&gt;` : `&lt;${escapeHtml(tagName)}${attrs}&gt;`;
17277
+ }
17024
17278
  function hasCustomHtmlComponents(content, customComponents) {
17025
17279
  if (!content || !content.includes("<")) return false;
17026
17280
  if (!customComponents || Object.keys(customComponents).length === 0) return false;
@@ -17029,8 +17283,9 @@ function hasCustomHtmlComponents(content, customComponents) {
17029
17283
  while ((match = CUSTOM_TAG_REGEX.exec(content)) !== null) if (isCustomHtmlComponentTag(match[1], customComponents)) return true;
17030
17284
  return false;
17031
17285
  }
17032
- function sanitizeHtmlContent(content) {
17286
+ function sanitizeHtmlContent(content, policy = "safe") {
17033
17287
  if (!content) return "";
17288
+ if (policy === "escape") return escapeHtml(content);
17034
17289
  const tokens = tokenizeHtmlPreservingText(content);
17035
17290
  const stack = [];
17036
17291
  const output = [];
@@ -17042,18 +17297,22 @@ function sanitizeHtmlContent(content) {
17042
17297
  }
17043
17298
  const tagName = normalizeTagName(token.tagName);
17044
17299
  if (!tagName) continue;
17045
- if (BLOCKED_HTML_TAGS.has(tagName)) {
17300
+ if (isHtmlTagHardBlocked(tagName, policy)) {
17046
17301
  if (token.type === "tag_open") blockedDepth += 1;
17047
17302
  else if (token.type === "tag_close" && blockedDepth > 0) blockedDepth -= 1;
17048
17303
  continue;
17049
17304
  }
17050
17305
  if (blockedDepth > 0) continue;
17306
+ if (policy === "safe" && isHtmlTagBlocked(tagName, policy)) {
17307
+ output.push(serializeLiteralHtmlTag(token));
17308
+ continue;
17309
+ }
17051
17310
  if (token.type === "self_closing") {
17052
- output.push(`<${tagName}${serializeAttrs(sanitizeHtmlContentAttrs(token.attrs ?? {}))}>`);
17311
+ output.push(`<${tagName}${serializeAttrs(sanitizeHtmlContentAttrs(token.attrs ?? {}, policy, tagName))}>`);
17053
17312
  continue;
17054
17313
  }
17055
17314
  if (token.type === "tag_open") {
17056
- output.push(`<${tagName}${serializeAttrs(sanitizeHtmlContentAttrs(token.attrs ?? {}))}>`);
17315
+ output.push(`<${tagName}${serializeAttrs(sanitizeHtmlContentAttrs(token.attrs ?? {}, policy, tagName))}>`);
17057
17316
  if (!VOID_HTML_TAGS.has(tagName)) stack.push(tagName);
17058
17317
  continue;
17059
17318
  }
@@ -17214,5 +17473,5 @@ function getMarkdown(msgId = `editor-${Date.now()}`, options = {}) {
17214
17473
  }
17215
17474
 
17216
17475
  //#endregion
17217
- 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 };
17476
+ 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, SAFE_ALLOWED_HTML_TAGS, 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, isHtmlTagBlocked, isHtmlTagHardBlocked, isMathLike, isUnsafeHtmlUrl, mergeCustomHtmlTags, normalizeCustomHtmlTagName, normalizeCustomHtmlTags, normalizeStandaloneBackslashT, parseFenceToken, parseInlineTokens, parseMarkdownToStructure, processTokens, registerMarkdownPlugin, resolveCustomHtmlTags, sanitizeHtmlAttrs, sanitizeHtmlContent, sanitizeHtmlTokenAttrs, setDefaultMathOptions, shouldRenderUnknownHtmlTagAsText, stripCustomHtmlWrapper, stripHtmlControlAndWhitespace, tokenAttrsToRecord, tokenizeHtml };
17218
17477
  //# sourceMappingURL=index.js.map