stream-markdown-parser 0.0.37 → 0.0.39

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
@@ -73,6 +73,11 @@ interface HtmlInlineNode extends BaseNode {
73
73
  tag?: string;
74
74
  content: string;
75
75
  children: ParsedNode[];
76
+ /**
77
+ * True when the parser auto-appended a closing tag for streaming stability.
78
+ * The original source is still incomplete (no explicit close typed yet).
79
+ */
80
+ autoClosed?: boolean;
76
81
  }
77
82
  interface InlineCodeNode extends BaseNode {
78
83
  type: 'inline_code';
@@ -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/findMatchingClose.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/findMatchingClose.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
@@ -6820,7 +6820,260 @@ const VOID_TAGS$2 = new Set([
6820
6820
  "track",
6821
6821
  "wbr"
6822
6822
  ]);
6823
+ const COMMON_HTML_TAGS = new Set([
6824
+ ...Array.from(VOID_TAGS$2),
6825
+ "a",
6826
+ "abbr",
6827
+ "b",
6828
+ "bdi",
6829
+ "bdo",
6830
+ "button",
6831
+ "cite",
6832
+ "code",
6833
+ "data",
6834
+ "del",
6835
+ "dfn",
6836
+ "em",
6837
+ "i",
6838
+ "img",
6839
+ "input",
6840
+ "ins",
6841
+ "kbd",
6842
+ "label",
6843
+ "mark",
6844
+ "q",
6845
+ "s",
6846
+ "samp",
6847
+ "small",
6848
+ "span",
6849
+ "strong",
6850
+ "sub",
6851
+ "sup",
6852
+ "time",
6853
+ "u",
6854
+ "var",
6855
+ "article",
6856
+ "aside",
6857
+ "blockquote",
6858
+ "div",
6859
+ "details",
6860
+ "figcaption",
6861
+ "figure",
6862
+ "footer",
6863
+ "header",
6864
+ "h1",
6865
+ "h2",
6866
+ "h3",
6867
+ "h4",
6868
+ "h5",
6869
+ "h6",
6870
+ "li",
6871
+ "main",
6872
+ "nav",
6873
+ "ol",
6874
+ "p",
6875
+ "pre",
6876
+ "section",
6877
+ "summary",
6878
+ "table",
6879
+ "tbody",
6880
+ "td",
6881
+ "th",
6882
+ "thead",
6883
+ "tr",
6884
+ "ul",
6885
+ "svg",
6886
+ "g",
6887
+ "path"
6888
+ ]);
6889
+ const OPEN_TAG_RE = /<([A-Z][\w-]*)(?=[\s/>]|$)/gi;
6890
+ const CLOSE_TAG_RE = /<\/\s*([A-Z][\w-]*)(?=[\s/>]|$)/gi;
6891
+ const FULL_TAG_RE = /^<\s*(?:\/\s*)?([A-Z][\w-]*)(?:\s[^>]*?)?\/?>/i;
6892
+ function tokenToRaw$1(token) {
6893
+ const shape = token;
6894
+ return String(shape.raw ?? shape.content ?? shape.markup ?? "");
6895
+ }
6896
+ function isCommonHtmlTagOrPrefix(tag) {
6897
+ if (COMMON_HTML_TAGS.has(tag)) return true;
6898
+ for (const common of COMMON_HTML_TAGS) if (common.startsWith(tag)) return true;
6899
+ return false;
6900
+ }
6901
+ function findFirstIncompleteTag(content) {
6902
+ let first = null;
6903
+ for (const m of content.matchAll(OPEN_TAG_RE)) {
6904
+ const idx = m.index ?? -1;
6905
+ if (idx < 0) continue;
6906
+ const tag = (m[1] ?? "").toLowerCase();
6907
+ if (!COMMON_HTML_TAGS.has(tag)) continue;
6908
+ if (content.slice(idx).includes(">")) continue;
6909
+ if (!first || idx < first.index) first = {
6910
+ index: idx,
6911
+ tag,
6912
+ closing: false
6913
+ };
6914
+ }
6915
+ for (const m of content.matchAll(CLOSE_TAG_RE)) {
6916
+ const idx = m.index ?? -1;
6917
+ if (idx < 0) continue;
6918
+ const tag = (m[1] ?? "").toLowerCase();
6919
+ if (!isCommonHtmlTagOrPrefix(tag)) continue;
6920
+ if (content.slice(idx).includes(">")) continue;
6921
+ if (!first || idx < first.index) first = {
6922
+ index: idx,
6923
+ tag,
6924
+ closing: true
6925
+ };
6926
+ }
6927
+ const bareClose = /<\/\s*$/.exec(content);
6928
+ if (bareClose && typeof bareClose.index === "number") {
6929
+ const idx = bareClose.index;
6930
+ if (!content.slice(idx).includes(">") && (!first || idx < first.index)) first = {
6931
+ index: idx,
6932
+ tag: "",
6933
+ closing: true
6934
+ };
6935
+ }
6936
+ const bareOpen = /<\s*$/.exec(content);
6937
+ if (bareOpen && typeof bareOpen.index === "number") {
6938
+ const idx = bareOpen.index;
6939
+ const rest = content.slice(idx);
6940
+ if (!rest.startsWith("</") && !rest.includes(">") && (!first || idx < first.index)) first = {
6941
+ index: idx,
6942
+ tag: "",
6943
+ closing: false
6944
+ };
6945
+ }
6946
+ return first;
6947
+ }
6948
+ function splitTextToken(token, content) {
6949
+ const t = token;
6950
+ return Object.assign(Object.create(Object.getPrototypeOf(t)), t, {
6951
+ type: "text",
6952
+ content,
6953
+ raw: content
6954
+ });
6955
+ }
6956
+ function fixStreamingHtmlInlineChildren(children) {
6957
+ if (!children.length) return { children };
6958
+ const out = [];
6959
+ let pending = null;
6960
+ let pendingAtEnd = null;
6961
+ function pushTextPart(text$1, baseToken) {
6962
+ if (!text$1) return;
6963
+ if (baseToken) out.push(splitTextToken(baseToken, text$1));
6964
+ else out.push({
6965
+ type: "text",
6966
+ content: text$1,
6967
+ raw: text$1
6968
+ });
6969
+ }
6970
+ function splitCompleteHtmlFromText(chunk, baseToken) {
6971
+ let cursor = 0;
6972
+ while (cursor < chunk.length) {
6973
+ const lt = chunk.indexOf("<", cursor);
6974
+ if (lt === -1) {
6975
+ pushTextPart(chunk.slice(cursor), baseToken);
6976
+ break;
6977
+ }
6978
+ pushTextPart(chunk.slice(cursor, lt), baseToken);
6979
+ const fullMatch = chunk.slice(lt).match(FULL_TAG_RE);
6980
+ if (!fullMatch) {
6981
+ pushTextPart("<", baseToken);
6982
+ cursor = lt + 1;
6983
+ continue;
6984
+ }
6985
+ const tagText = fullMatch[0];
6986
+ const tagName = (fullMatch[1] ?? "").toLowerCase();
6987
+ if (COMMON_HTML_TAGS.has(tagName)) out.push({
6988
+ type: "html_inline",
6989
+ tag: "",
6990
+ content: tagText,
6991
+ raw: tagText
6992
+ });
6993
+ else pushTextPart(tagText, baseToken);
6994
+ cursor = lt + tagText.length;
6995
+ }
6996
+ }
6997
+ function processTextChunk(chunk, baseToken) {
6998
+ if (!chunk) return;
6999
+ const match = findFirstIncompleteTag(chunk);
7000
+ if (!match) {
7001
+ splitCompleteHtmlFromText(chunk, baseToken);
7002
+ return;
7003
+ }
7004
+ const before = chunk.slice(0, match.index);
7005
+ if (before) splitCompleteHtmlFromText(before, baseToken);
7006
+ pending = {
7007
+ tag: match.tag,
7008
+ buffer: chunk.slice(match.index),
7009
+ closing: match.closing
7010
+ };
7011
+ pendingAtEnd = pending.buffer;
7012
+ }
7013
+ for (const child of children) {
7014
+ if (pending) {
7015
+ pending.buffer += tokenToRaw$1(child);
7016
+ pendingAtEnd = pending.buffer;
7017
+ const closeIdx = pending.buffer.indexOf(">");
7018
+ if (closeIdx === -1) continue;
7019
+ const tagChunk = pending.buffer.slice(0, closeIdx + 1);
7020
+ const afterChunk = pending.buffer.slice(closeIdx + 1);
7021
+ out.push({
7022
+ type: "html_inline",
7023
+ tag: "",
7024
+ content: tagChunk,
7025
+ raw: tagChunk
7026
+ });
7027
+ pending = null;
7028
+ pendingAtEnd = null;
7029
+ if (afterChunk) processTextChunk(afterChunk);
7030
+ continue;
7031
+ }
7032
+ if (child.type === "text") {
7033
+ const content = String(child.content ?? "");
7034
+ if (!content.includes("<")) {
7035
+ out.push(child);
7036
+ continue;
7037
+ }
7038
+ processTextChunk(content, child);
7039
+ continue;
7040
+ }
7041
+ out.push(child);
7042
+ }
7043
+ return {
7044
+ children: out,
7045
+ pendingBuffer: pendingAtEnd ?? void 0
7046
+ };
7047
+ }
6823
7048
  function applyFixHtmlInlineTokens(md) {
7049
+ md.core.ruler.after("inline", "fix_html_inline_streaming", (state) => {
7050
+ const toks = state.tokens ?? [];
7051
+ for (const t of toks) {
7052
+ const tok = t;
7053
+ if (tok.type !== "inline" || !Array.isArray(tok.children)) continue;
7054
+ const originalContent = String(tok.content ?? "");
7055
+ const sourceChildren = tok.children.length ? tok.children : originalContent.includes("<") ? [{
7056
+ type: "text",
7057
+ content: originalContent,
7058
+ raw: originalContent
7059
+ }] : null;
7060
+ if (!sourceChildren) continue;
7061
+ try {
7062
+ const fixed = fixStreamingHtmlInlineChildren(sourceChildren);
7063
+ tok.children = fixed.children;
7064
+ if (fixed.pendingBuffer) {
7065
+ const idx = originalContent.lastIndexOf(fixed.pendingBuffer);
7066
+ if (idx !== -1) {
7067
+ const trimmed = originalContent.slice(0, idx);
7068
+ tok.content = trimmed;
7069
+ if (typeof tok.raw === "string") tok.raw = trimmed;
7070
+ }
7071
+ }
7072
+ } catch (e) {
7073
+ console.error("[applyFixHtmlInlineTokens] failed to fix streaming html inline", e);
7074
+ }
7075
+ }
7076
+ });
6824
7077
  md.core.ruler.push("fix_html_inline_tokens", (state) => {
6825
7078
  const toks = state.tokens ?? [];
6826
7079
  const tagStack = [];
@@ -7167,10 +7420,9 @@ function fixLinkToken(tokens) {
7167
7420
  }
7168
7421
  }
7169
7422
  if (curToken.type === "link_close" && curToken.nesting === -1 && tokens[i + 1]?.type === "text" && tokens[i - 1]?.type === "text") {
7170
- let loading = true;
7171
7423
  const text$1 = tokens[i - 1].content || "";
7172
7424
  const attrs = tokens[i - 2].attrs || [];
7173
- let href = attrs.find((a) => a[0] === "href")?.[1] || "";
7425
+ const href = attrs.find((a) => a[0] === "href")?.[1] || "";
7174
7426
  const title = attrs.find((a) => a[0] === "title")?.[1] || "";
7175
7427
  let count = 3;
7176
7428
  let deleteCount = 2;
@@ -7181,37 +7433,22 @@ function fixLinkToken(tokens) {
7181
7433
  const type = emphasisMatch[1].length;
7182
7434
  pushEmOpen(replacerTokens, type);
7183
7435
  }
7184
- if (curToken.markup === "" || tokens[i + 1].type === "text" && (tokens[i + 1].content === "." || tokens[i + 1].content === "?")) loading = false;
7185
- if (curToken.markup === "linkify" && tokens[i + 1]?.type === "text" && !tokens[i + 1]?.content?.startsWith(" ")) {
7186
- const m = (tokens[i + 1]?.content ?? "").indexOf(")");
7187
- if (m === -1) {
7188
- href += tokens[i + 1]?.content?.slice(0, m) || "";
7189
- tokens[i + 1].content = "";
7190
- count += 1;
7191
- } else loading = false;
7192
- } else if (tokens[i + 1].type === "text" && tokens[i + 1]?.content?.startsWith("](")) {
7436
+ if (curToken.markup !== "linkify" && tokens[i + 1].type === "text" && tokens[i + 1]?.content?.startsWith("](")) {
7193
7437
  count += 1;
7194
7438
  for (let j = i + 1; j < tokens.length; j++) {
7195
7439
  const type = emphasisMatch ? emphasisMatch[1].length : tokens[i - 3].markup.length;
7196
7440
  const t = tokens[j];
7197
- if (type === 1 && t.type === "em_close") {
7198
- loading = false;
7199
- break;
7200
- } else if (type === 2 && t.type === "strong_close") {
7201
- loading = false;
7202
- break;
7203
- } else if (type === 3) {
7204
- if (t.type === "em_close" || t.type === "strong_close") {
7205
- loading = false;
7206
- break;
7207
- }
7441
+ if (type === 1 && t.type === "em_close") break;
7442
+ else if (type === 2 && t.type === "strong_close") break;
7443
+ else if (type === 3) {
7444
+ if (t.type === "em_close" || t.type === "strong_close") break;
7208
7445
  }
7209
7446
  count += 1;
7210
7447
  }
7211
- } else loading = false;
7448
+ }
7212
7449
  replacerTokens.push({
7213
7450
  type: "link",
7214
- loading,
7451
+ loading: false,
7215
7452
  href,
7216
7453
  title,
7217
7454
  text: text$1,
@@ -7934,6 +8171,12 @@ function normalizeStandaloneBackslashT(s, opts) {
7934
8171
  result = result.replace(ESCAPED_MKATWX_COMMANDS, "$1\\$2");
7935
8172
  return result;
7936
8173
  }
8174
+ function isPlainBracketMathLike(content) {
8175
+ const stripped = content.trim();
8176
+ if (!isMathLike(stripped)) return false;
8177
+ if (!(/\\[a-z]+/i.test(stripped) || /\d/.test(stripped) || /[=+*/^<>]|\\times|\\pm|\\cdot|\\le|\\ge|\\neq/.test(stripped) || /[_^]/.test(stripped)) && /\s-\s/.test(stripped)) return false;
8178
+ return true;
8179
+ }
7937
8180
  function applyMath(md, mathOpts) {
7938
8181
  const mathInline = (state, silent) => {
7939
8182
  const s = state;
@@ -8125,7 +8368,8 @@ function applyMath(md, mathOpts) {
8125
8368
  if (lineText.replace("\\", "").startsWith("[") && !lineText.includes("](")) {
8126
8369
  const closeIndex = lineText.indexOf("]");
8127
8370
  if (lineText.slice(closeIndex).trim() !== "]") continue;
8128
- if (isMathLike(lineText.slice(open.length, closeIndex))) {
8371
+ const inner = lineText.slice(open.length, closeIndex);
8372
+ if (open === "[" ? isPlainBracketMathLike(inner) : isMathLike(inner)) {
8129
8373
  matched = true;
8130
8374
  openDelim = open;
8131
8375
  closeDelim = close;
@@ -8196,7 +8440,7 @@ function applyMath(md, mathOpts) {
8196
8440
  }
8197
8441
  }
8198
8442
  if (strict && !found) return false;
8199
- if (!isMathLike(content)) return false;
8443
+ if (!(openDelim === "[" ? isPlainBracketMathLike(content) : isMathLike(content))) return false;
8200
8444
  const token = s.push("math_block", "math", 0);
8201
8445
  token.content = normalizeStandaloneBackslashT(content);
8202
8446
  token.markup = openDelim === "$$" ? "$$" : openDelim === "[" ? "[]" : "\\[\\]";
@@ -8491,10 +8735,10 @@ function collectHtmlFragment(tokens, startIndex, tag) {
8491
8735
  fragmentTokens.push(...innerTokens, tokens[closingIndex]);
8492
8736
  nextIndex = closingIndex + 1;
8493
8737
  closed = true;
8494
- } else if (tokens[startIndex + 1]?.type === "text") {
8495
- innerTokens = [tokens[startIndex + 1]];
8496
- fragmentTokens.push(tokens[startIndex + 1]);
8497
- nextIndex = startIndex + 2;
8738
+ } else {
8739
+ innerTokens = tokens.slice(startIndex + 1);
8740
+ if (innerTokens.length) fragmentTokens.push(...innerTokens);
8741
+ nextIndex = tokens.length;
8498
8742
  }
8499
8743
  return {
8500
8744
  closed,
@@ -8562,13 +8806,23 @@ function parseHtmlInlineCodeToken(token, tokens, i, parseInlineTokens$1, raw, pP
8562
8806
  raw: fragment.html
8563
8807
  }, fragment.nextIndex];
8564
8808
  const children = fragment.innerTokens.length ? parseInlineTokens$1(fragment.innerTokens, raw, pPreToken, options) : [];
8809
+ let content = fragment.html || code$1;
8810
+ let loading = !fragment.closed;
8811
+ let autoClosed = false;
8812
+ if (!fragment.closed) {
8813
+ const closeTag = `</${tag}>`;
8814
+ if (!content.toLowerCase().includes(closeTag.toLowerCase())) content += closeTag;
8815
+ autoClosed = true;
8816
+ loading = true;
8817
+ }
8565
8818
  return [{
8566
8819
  type: "html_inline",
8567
8820
  tag,
8568
- content: fragment.html || code$1,
8821
+ content,
8569
8822
  children,
8570
- raw: fragment.html || code$1,
8571
- loading: !fragment.closed
8823
+ raw: content,
8824
+ loading,
8825
+ autoClosed
8572
8826
  }, fragment.nextIndex];
8573
8827
  }
8574
8828