stream-markdown-parser 0.0.85 → 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 +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +192 -28
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;
|
|
@@ -15300,7 +15300,7 @@ function normalizeIndentedSourceForLookup(value) {
|
|
|
15300
15300
|
}
|
|
15301
15301
|
function canFindNodeRawAfterSourceIndex(source, startIndex, nodeRaw) {
|
|
15302
15302
|
if (!nodeRaw) return false;
|
|
15303
|
-
if (source.
|
|
15303
|
+
if (source.includes(nodeRaw, startIndex)) return true;
|
|
15304
15304
|
return normalizeIndentedSourceForLookup(source.slice(Math.max(0, startIndex))).includes(normalizeIndentedSourceForLookup(nodeRaw));
|
|
15305
15305
|
}
|
|
15306
15306
|
function extendHtmlBlockCloseToLineEnding(source, startIndex) {
|
|
@@ -15352,7 +15352,7 @@ const STRUCTURED_HTML_WRAPPER_BLOCK_TYPES = new Set([
|
|
|
15352
15352
|
"table",
|
|
15353
15353
|
"thematic_break"
|
|
15354
15354
|
]);
|
|
15355
|
-
const STRUCTURED_HTML_WRAPPER_MARKER_RE = /(?:^|\n)
|
|
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;
|
|
15356
15356
|
function hasStructuredHtmlWrapperMarkers(fragment) {
|
|
15357
15357
|
return /\n\s*\n/.test(fragment) || STRUCTURED_HTML_WRAPPER_MARKER_RE.test(fragment);
|
|
15358
15358
|
}
|
|
@@ -16501,6 +16501,38 @@ const CUSTOM_TAG_REGEX = /<([a-z][a-z0-9-]*)\b[^>]*>/gi;
|
|
|
16501
16501
|
function hasOwn(obj, key) {
|
|
16502
16502
|
return Object.prototype.hasOwnProperty.call(obj, key);
|
|
16503
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, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
|
16512
|
+
}
|
|
16513
|
+
function escapeAttr(value) {
|
|
16514
|
+
return escapeHtml(value).replace(/`/g, "`");
|
|
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
|
+
}
|
|
16504
16536
|
function isCustomHtmlComponentTag(tagName, customComponents) {
|
|
16505
16537
|
const lowerTag = tagName.toLowerCase();
|
|
16506
16538
|
if (EXTENDED_STANDARD_HTML_TAGS.has(lowerTag)) return false;
|
|
@@ -16654,6 +16686,95 @@ function tokenizeHtml(html) {
|
|
|
16654
16686
|
}
|
|
16655
16687
|
return tokens;
|
|
16656
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
|
+
}
|
|
16657
16778
|
function hasCustomHtmlComponents(content, customComponents) {
|
|
16658
16779
|
if (!content || !content.includes("<")) return false;
|
|
16659
16780
|
if (!customComponents || Object.keys(customComponents).length === 0) return false;
|
|
@@ -16662,6 +16783,49 @@ function hasCustomHtmlComponents(content, customComponents) {
|
|
|
16662
16783
|
while ((match = CUSTOM_TAG_REGEX.exec(content)) !== null) if (isCustomHtmlComponentTag(match[1], customComponents)) return true;
|
|
16663
16784
|
return false;
|
|
16664
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
|
+
}
|
|
16665
16829
|
|
|
16666
16830
|
//#endregion
|
|
16667
16831
|
//#region src/index.ts
|
|
@@ -16804,5 +16968,5 @@ function getMarkdown(msgId = `editor-${Date.now()}`, options = {}) {
|
|
|
16804
16968
|
}
|
|
16805
16969
|
|
|
16806
16970
|
//#endregion
|
|
16807
|
-
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 };
|
|
16808
16972
|
//# sourceMappingURL=index.js.map
|