react-native-nitro-markdown 0.5.2 → 0.5.4

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.
Files changed (178) hide show
  1. package/README.md +311 -669
  2. package/android/CMakeLists.txt +8 -1
  3. package/android/build.gradle +9 -2
  4. package/android/consumer-rules.pro +31 -0
  5. package/android/gradle.properties +2 -0
  6. package/android/src/main/java/com/margelo/nitro/com/nitromarkdown/HybridMarkdownSession.kt +68 -22
  7. package/android/src/main/java/com/nitromarkdown/NitroMarkdownPackage.kt +6 -18
  8. package/cpp/bindings/HybridMarkdownParser.cpp +40 -12
  9. package/cpp/bindings/HybridMarkdownParser.hpp +4 -4
  10. package/cpp/bindings/HybridMarkdownSession.cpp +2 -0
  11. package/cpp/core/MD4CParser.cpp +147 -86
  12. package/cpp/core/MarkdownSessionCore.cpp +2 -0
  13. package/cpp/core/MarkdownTypes.hpp +1 -1
  14. package/ios/HybridMarkdownSession.swift +89 -46
  15. package/lib/commonjs/headless.js +34 -8
  16. package/lib/commonjs/headless.js.map +1 -1
  17. package/lib/commonjs/index.js +48 -38
  18. package/lib/commonjs/index.js.map +1 -1
  19. package/lib/commonjs/markdown-stream.js +1 -1
  20. package/lib/commonjs/markdown-stream.js.map +1 -1
  21. package/lib/commonjs/markdown.js +57 -16
  22. package/lib/commonjs/markdown.js.map +1 -1
  23. package/lib/commonjs/renderers/blockquote.js +15 -13
  24. package/lib/commonjs/renderers/blockquote.js.map +1 -1
  25. package/lib/commonjs/renderers/code.js +58 -54
  26. package/lib/commonjs/renderers/code.js.map +1 -1
  27. package/lib/commonjs/renderers/heading.js +48 -46
  28. package/lib/commonjs/renderers/heading.js.map +1 -1
  29. package/lib/commonjs/renderers/horizontal-rule.js +10 -8
  30. package/lib/commonjs/renderers/horizontal-rule.js.map +1 -1
  31. package/lib/commonjs/renderers/image.js +18 -4
  32. package/lib/commonjs/renderers/image.js.map +1 -1
  33. package/lib/commonjs/renderers/link.js +7 -2
  34. package/lib/commonjs/renderers/link.js.map +1 -1
  35. package/lib/commonjs/renderers/list.js +75 -68
  36. package/lib/commonjs/renderers/list.js.map +1 -1
  37. package/lib/commonjs/renderers/math.js +8 -5
  38. package/lib/commonjs/renderers/math.js.map +1 -1
  39. package/lib/commonjs/renderers/paragraph.js +15 -13
  40. package/lib/commonjs/renderers/paragraph.js.map +1 -1
  41. package/lib/commonjs/renderers/style-cache.js +14 -0
  42. package/lib/commonjs/renderers/style-cache.js.map +1 -0
  43. package/lib/commonjs/renderers/table/cell-content.js +1 -1
  44. package/lib/commonjs/renderers/table/cell-content.js.map +1 -1
  45. package/lib/commonjs/renderers/table/index.js +17 -6
  46. package/lib/commonjs/renderers/table/index.js.map +1 -1
  47. package/lib/commonjs/theme.js +7 -7
  48. package/lib/commonjs/theme.js.map +1 -1
  49. package/lib/commonjs/utils/code-highlight.js +24 -25
  50. package/lib/commonjs/utils/code-highlight.js.map +1 -1
  51. package/lib/module/headless.js +35 -7
  52. package/lib/module/headless.js.map +1 -1
  53. package/lib/module/index.js +1 -1
  54. package/lib/module/index.js.map +1 -1
  55. package/lib/module/markdown-stream.js +1 -1
  56. package/lib/module/markdown-stream.js.map +1 -1
  57. package/lib/module/markdown.js +58 -17
  58. package/lib/module/markdown.js.map +1 -1
  59. package/lib/module/renderers/blockquote.js +15 -13
  60. package/lib/module/renderers/blockquote.js.map +1 -1
  61. package/lib/module/renderers/code.js +58 -54
  62. package/lib/module/renderers/code.js.map +1 -1
  63. package/lib/module/renderers/heading.js +48 -46
  64. package/lib/module/renderers/heading.js.map +1 -1
  65. package/lib/module/renderers/horizontal-rule.js +10 -8
  66. package/lib/module/renderers/horizontal-rule.js.map +1 -1
  67. package/lib/module/renderers/image.js +19 -5
  68. package/lib/module/renderers/image.js.map +1 -1
  69. package/lib/module/renderers/link.js +7 -2
  70. package/lib/module/renderers/link.js.map +1 -1
  71. package/lib/module/renderers/list.js +75 -68
  72. package/lib/module/renderers/list.js.map +1 -1
  73. package/lib/module/renderers/math.js +8 -5
  74. package/lib/module/renderers/math.js.map +1 -1
  75. package/lib/module/renderers/paragraph.js +15 -13
  76. package/lib/module/renderers/paragraph.js.map +1 -1
  77. package/lib/module/renderers/style-cache.js +10 -0
  78. package/lib/module/renderers/style-cache.js.map +1 -0
  79. package/lib/module/renderers/table/cell-content.js +1 -1
  80. package/lib/module/renderers/table/cell-content.js.map +1 -1
  81. package/lib/module/renderers/table/index.js +17 -6
  82. package/lib/module/renderers/table/index.js.map +1 -1
  83. package/lib/module/theme.js +7 -7
  84. package/lib/module/theme.js.map +1 -1
  85. package/lib/module/utils/code-highlight.js +24 -25
  86. package/lib/module/utils/code-highlight.js.map +1 -1
  87. package/lib/typescript/commonjs/Markdown.nitro.d.ts +1 -0
  88. package/lib/typescript/commonjs/Markdown.nitro.d.ts.map +1 -1
  89. package/lib/typescript/commonjs/headless.d.ts +10 -2
  90. package/lib/typescript/commonjs/headless.d.ts.map +1 -1
  91. package/lib/typescript/commonjs/index.d.ts +3 -2
  92. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  93. package/lib/typescript/commonjs/markdown-stream.d.ts.map +1 -1
  94. package/lib/typescript/commonjs/markdown.d.ts +8 -3
  95. package/lib/typescript/commonjs/markdown.d.ts.map +1 -1
  96. package/lib/typescript/commonjs/renderers/blockquote.d.ts +1 -1
  97. package/lib/typescript/commonjs/renderers/blockquote.d.ts.map +1 -1
  98. package/lib/typescript/commonjs/renderers/code.d.ts.map +1 -1
  99. package/lib/typescript/commonjs/renderers/heading.d.ts +1 -1
  100. package/lib/typescript/commonjs/renderers/heading.d.ts.map +1 -1
  101. package/lib/typescript/commonjs/renderers/horizontal-rule.d.ts +1 -1
  102. package/lib/typescript/commonjs/renderers/horizontal-rule.d.ts.map +1 -1
  103. package/lib/typescript/commonjs/renderers/image.d.ts.map +1 -1
  104. package/lib/typescript/commonjs/renderers/link.d.ts.map +1 -1
  105. package/lib/typescript/commonjs/renderers/list.d.ts +1 -1
  106. package/lib/typescript/commonjs/renderers/list.d.ts.map +1 -1
  107. package/lib/typescript/commonjs/renderers/math.d.ts +1 -1
  108. package/lib/typescript/commonjs/renderers/math.d.ts.map +1 -1
  109. package/lib/typescript/commonjs/renderers/paragraph.d.ts +1 -1
  110. package/lib/typescript/commonjs/renderers/paragraph.d.ts.map +1 -1
  111. package/lib/typescript/commonjs/renderers/style-cache.d.ts +3 -0
  112. package/lib/typescript/commonjs/renderers/style-cache.d.ts.map +1 -0
  113. package/lib/typescript/commonjs/renderers/table/cell-content.d.ts +4 -3
  114. package/lib/typescript/commonjs/renderers/table/cell-content.d.ts.map +1 -1
  115. package/lib/typescript/commonjs/renderers/table/index.d.ts.map +1 -1
  116. package/lib/typescript/commonjs/theme.d.ts.map +1 -1
  117. package/lib/typescript/commonjs/utils/code-highlight.d.ts +1 -1
  118. package/lib/typescript/commonjs/utils/code-highlight.d.ts.map +1 -1
  119. package/lib/typescript/module/Markdown.nitro.d.ts +1 -0
  120. package/lib/typescript/module/Markdown.nitro.d.ts.map +1 -1
  121. package/lib/typescript/module/headless.d.ts +10 -2
  122. package/lib/typescript/module/headless.d.ts.map +1 -1
  123. package/lib/typescript/module/index.d.ts +3 -2
  124. package/lib/typescript/module/index.d.ts.map +1 -1
  125. package/lib/typescript/module/markdown-stream.d.ts.map +1 -1
  126. package/lib/typescript/module/markdown.d.ts +8 -3
  127. package/lib/typescript/module/markdown.d.ts.map +1 -1
  128. package/lib/typescript/module/renderers/blockquote.d.ts +1 -1
  129. package/lib/typescript/module/renderers/blockquote.d.ts.map +1 -1
  130. package/lib/typescript/module/renderers/code.d.ts.map +1 -1
  131. package/lib/typescript/module/renderers/heading.d.ts +1 -1
  132. package/lib/typescript/module/renderers/heading.d.ts.map +1 -1
  133. package/lib/typescript/module/renderers/horizontal-rule.d.ts +1 -1
  134. package/lib/typescript/module/renderers/horizontal-rule.d.ts.map +1 -1
  135. package/lib/typescript/module/renderers/image.d.ts.map +1 -1
  136. package/lib/typescript/module/renderers/link.d.ts.map +1 -1
  137. package/lib/typescript/module/renderers/list.d.ts +1 -1
  138. package/lib/typescript/module/renderers/list.d.ts.map +1 -1
  139. package/lib/typescript/module/renderers/math.d.ts +1 -1
  140. package/lib/typescript/module/renderers/math.d.ts.map +1 -1
  141. package/lib/typescript/module/renderers/paragraph.d.ts +1 -1
  142. package/lib/typescript/module/renderers/paragraph.d.ts.map +1 -1
  143. package/lib/typescript/module/renderers/style-cache.d.ts +3 -0
  144. package/lib/typescript/module/renderers/style-cache.d.ts.map +1 -0
  145. package/lib/typescript/module/renderers/table/cell-content.d.ts +4 -3
  146. package/lib/typescript/module/renderers/table/cell-content.d.ts.map +1 -1
  147. package/lib/typescript/module/renderers/table/index.d.ts.map +1 -1
  148. package/lib/typescript/module/theme.d.ts.map +1 -1
  149. package/lib/typescript/module/utils/code-highlight.d.ts +1 -1
  150. package/lib/typescript/module/utils/code-highlight.d.ts.map +1 -1
  151. package/nitro.json +12 -3
  152. package/nitrogen/generated/android/NitroMarkdownOnLoad.cpp +2 -2
  153. package/nitrogen/generated/android/c++/JFunc_void.hpp +2 -2
  154. package/nitrogen/generated/android/c++/JFunc_void_double_double.hpp +2 -2
  155. package/nitrogen/generated/android/c++/JHybridMarkdownSessionSpec.hpp +2 -2
  156. package/nitrogen/generated/ios/NitroMarkdown+autolinking.rb +2 -0
  157. package/nitrogen/generated/shared/c++/ParserOptions.hpp +6 -2
  158. package/package.json +8 -6
  159. package/react-native-nitro-markdown.podspec +3 -0
  160. package/src/Markdown.nitro.ts +1 -0
  161. package/src/headless.ts +58 -8
  162. package/src/index.ts +16 -2
  163. package/src/markdown-stream.tsx +1 -0
  164. package/src/markdown.tsx +108 -23
  165. package/src/renderers/blockquote.tsx +22 -17
  166. package/src/renderers/code.tsx +76 -57
  167. package/src/renderers/heading.tsx +60 -54
  168. package/src/renderers/horizontal-rule.tsx +17 -12
  169. package/src/renderers/image.tsx +24 -5
  170. package/src/renderers/link.tsx +8 -2
  171. package/src/renderers/list.tsx +93 -74
  172. package/src/renderers/math.tsx +14 -5
  173. package/src/renderers/paragraph.tsx +22 -17
  174. package/src/renderers/style-cache.ts +14 -0
  175. package/src/renderers/table/cell-content.tsx +15 -4
  176. package/src/renderers/table/index.tsx +30 -13
  177. package/src/theme.ts +34 -14
  178. package/src/utils/code-highlight.ts +133 -44
@@ -25,13 +25,13 @@ const defaultMarkdownTheme = exports.defaultMarkdownTheme = {
25
25
  tableRowEven: "transparent",
26
26
  tableRowOdd: "#f8fafc",
27
27
  codeTokenColors: {
28
- keyword: '#c792ea',
29
- string: '#c3e88d',
30
- comment: '#546e7a',
31
- number: '#f78c6c',
32
- operator: '#89ddff',
33
- punctuation: '#89ddff',
34
- type: '#ffcb6b'
28
+ keyword: "#c792ea",
29
+ string: "#c3e88d",
30
+ comment: "#546e7a",
31
+ number: "#f78c6c",
32
+ operator: "#89ddff",
33
+ punctuation: "#89ddff",
34
+ type: "#ffcb6b"
35
35
  }
36
36
  },
37
37
  spacing: {
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","defaultMarkdownTheme","exports","colors","text","textMuted","heading","link","code","codeBackground","codeLanguage","blockquote","border","surface","surfaceLight","accent","tableBorder","tableHeader","tableHeaderText","tableRowEven","tableRowOdd","codeTokenColors","keyword","string","comment","number","operator","punctuation","type","spacing","xs","s","m","l","xl","fontSizes","h1","h2","h3","h4","h5","h6","fontFamilies","regular","Platform","select","ios","android","default","undefined","mono","headingWeight","borderRadius","showCodeLanguage","minimalMarkdownTheme","mergeThemes","base","partial"],"sourceRoot":"../../src","sources":["theme.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","defaultMarkdownTheme","exports","colors","text","textMuted","heading","link","code","codeBackground","codeLanguage","blockquote","border","surface","surfaceLight","accent","tableBorder","tableHeader","tableHeaderText","tableRowEven","tableRowOdd","codeTokenColors","keyword","string","comment","number","operator","punctuation","type","spacing","xs","s","m","l","xl","fontSizes","h1","h2","h3","h4","h5","h6","fontFamilies","regular","Platform","select","ios","android","default","undefined","mono","headingWeight","borderRadius","showCodeLanguage","minimalMarkdownTheme","mergeThemes","base","partial"],"sourceRoot":"../../src","sources":["theme.ts"],"mappings":"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","ignoreList":[]}
@@ -4,17 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.defaultHighlighter = defaultHighlighter;
7
- const JS_KEYWORDS = new Set(['const', 'let', 'var', 'function', 'return', 'if', 'else', 'for', 'while', 'class', 'extends', 'import', 'export', 'from', 'default', 'new', 'this', 'typeof', 'instanceof', 'null', 'undefined', 'true', 'false', 'async', 'await', 'try', 'catch', 'throw', 'switch', 'case', 'break', 'continue', 'type', 'interface', 'enum', 'as', 'in', 'of', 'void']);
8
- const PYTHON_KEYWORDS = new Set(['def', 'class', 'import', 'from', 'return', 'if', 'elif', 'else', 'for', 'while', 'try', 'except', 'finally', 'with', 'as', 'pass', 'break', 'continue', 'and', 'or', 'not', 'in', 'is', 'None', 'True', 'False', 'lambda', 'yield', 'async', 'await']);
9
- const SHELL_KEYWORDS = new Set(['if', 'then', 'else', 'elif', 'fi', 'for', 'do', 'done', 'while', 'case', 'esac', 'function', 'return', 'exit', 'echo', 'export']);
7
+ const JS_KEYWORDS = new Set(["const", "let", "var", "function", "return", "if", "else", "for", "while", "class", "extends", "import", "export", "from", "default", "new", "this", "typeof", "instanceof", "null", "undefined", "true", "false", "async", "await", "try", "catch", "throw", "switch", "case", "break", "continue", "type", "interface", "enum", "as", "in", "of", "void"]);
8
+ const PYTHON_KEYWORDS = new Set(["def", "class", "import", "from", "return", "if", "elif", "else", "for", "while", "try", "except", "finally", "with", "as", "pass", "break", "continue", "and", "or", "not", "in", "is", "None", "True", "False", "lambda", "yield", "async", "await"]);
9
+ const SHELL_KEYWORDS = new Set(["if", "then", "else", "elif", "fi", "for", "do", "done", "while", "case", "esac", "function", "return", "exit", "echo", "export"]);
10
10
  function getKeywords(language) {
11
11
  const lang = language.toLowerCase();
12
- if (lang === 'python' || lang === 'py') return PYTHON_KEYWORDS;
13
- if (lang === 'bash' || lang === 'sh' || lang === 'shell' || lang === 'zsh') return SHELL_KEYWORDS;
12
+ if (lang === "python" || lang === "py") return PYTHON_KEYWORDS;
13
+ if (lang === "bash" || lang === "sh" || lang === "shell" || lang === "zsh") return SHELL_KEYWORDS;
14
14
  return JS_KEYWORDS; // default for js/ts/jsx/tsx/java/c/cpp etc.
15
15
  }
16
-
17
- // Tokenize a single line into tokens
18
16
  function tokenizeLine(line, language) {
19
17
  const keywords = getKeywords(language);
20
18
  const tokens = [];
@@ -22,37 +20,38 @@ function tokenizeLine(line, language) {
22
20
  // Full-line comment detection
23
21
  const trimmed = line.trimStart();
24
22
  const lang = language.toLowerCase();
25
- const isPythonLike = lang === 'python' || lang === 'py';
26
- const isShellLike = lang === 'bash' || lang === 'sh' || lang === 'shell' || lang === 'zsh';
27
- if (trimmed.startsWith('//') || trimmed.startsWith('#') && (isShellLike || isPythonLike)) {
23
+ const isPythonLike = lang === "python" || lang === "py";
24
+ const isShellLike = lang === "bash" || lang === "sh" || lang === "shell" || lang === "zsh";
25
+ if (trimmed.startsWith("//") || trimmed.startsWith("#") && (isShellLike || isPythonLike)) {
28
26
  return [{
29
27
  text: line,
30
- type: 'comment'
28
+ type: "comment"
31
29
  }];
32
30
  }
33
31
 
34
- // Simple token regex: strings, numbers, operators, identifiers, punctuation
35
- const tokenRegex = /("(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|`(?:[^`\\]|\\.)*`)|(\b\d+(?:\.\d+)?\b)|(\/\/[^\n]*|#[^\n]*)|([a-zA-Z_$][a-zA-Z0-9_$]*)|([+\-*/%=<>!&|^~?:]+)|([()\[\]{},;.])|(\s+)|(.)/g;
32
+ // Only include # as comment for shell/python languages
33
+ const commentPattern = isShellLike || isPythonLike ? "\/\/[^\\n]*|#[^\\n]*" : "\/\/[^\\n]*";
34
+ const tokenRegex = new RegExp(`("(?:[^"\\\\]|\\\\.)*"|'(?:[^'\\\\]|\\\\.)*'|\`(?:[^\`\\\\]|\\\\.)*\`)|(\\b\\d+(?:\\.\\d+)?\\b)|(${commentPattern})|([a-zA-Z_$][a-zA-Z0-9_$]*)|([+\\-*/%=<>!&|^~?:]+)|([(\\)\\[\\]{},;.])|(\\s+)|(.)`, "g");
36
35
  let match;
37
36
  while ((match = tokenRegex.exec(line)) !== null) {
38
37
  const [full, str, num, comment, ident, op, punct] = match;
39
38
  if (str) {
40
39
  tokens.push({
41
40
  text: full,
42
- type: 'string'
41
+ type: "string"
43
42
  });
44
43
  } else if (num) {
45
44
  tokens.push({
46
45
  text: full,
47
- type: 'number'
46
+ type: "number"
48
47
  });
49
48
  } else if (comment) {
50
49
  tokens.push({
51
50
  text: full,
52
- type: 'comment'
51
+ type: "comment"
53
52
  });
54
53
  } else if (ident) {
55
- const type = keywords.has(ident) ? 'keyword' : /^[A-Z][A-Za-z0-9]*$/.test(ident) ? 'type' : 'default';
54
+ const type = keywords.has(ident) ? "keyword" : /^[A-Z][A-Za-z0-9]*$/.test(ident) ? "type" : "default";
56
55
  tokens.push({
57
56
  text: full,
58
57
  type
@@ -60,39 +59,39 @@ function tokenizeLine(line, language) {
60
59
  } else if (op) {
61
60
  tokens.push({
62
61
  text: full,
63
- type: 'operator'
62
+ type: "operator"
64
63
  });
65
64
  } else if (punct) {
66
65
  tokens.push({
67
66
  text: full,
68
- type: 'punctuation'
67
+ type: "punctuation"
69
68
  });
70
69
  } else {
71
70
  tokens.push({
72
71
  text: full,
73
- type: 'default'
72
+ type: "default"
74
73
  });
75
74
  }
76
75
  }
77
76
  return tokens;
78
77
  }
79
78
  function defaultHighlighter(language, code) {
80
- if (!language || language === 'text' || language === 'plain') {
79
+ if (!language || language === "text" || language === "plain") {
81
80
  return [{
82
81
  text: code,
83
- type: 'default'
82
+ type: "default"
84
83
  }];
85
84
  }
86
85
 
87
86
  // Process line by line, re-inserting newlines as default tokens
88
- const lines = code.split('\n');
87
+ const lines = code.split("\n");
89
88
  const result = [];
90
89
  for (let i = 0; i < lines.length; i++) {
91
90
  result.push(...tokenizeLine(lines[i], language));
92
91
  if (i < lines.length - 1) {
93
92
  result.push({
94
- text: '\n',
95
- type: 'default'
93
+ text: "\n",
94
+ type: "default"
96
95
  });
97
96
  }
98
97
  }
@@ -1 +1 @@
1
- {"version":3,"names":["JS_KEYWORDS","Set","PYTHON_KEYWORDS","SHELL_KEYWORDS","getKeywords","language","lang","toLowerCase","tokenizeLine","line","keywords","tokens","trimmed","trimStart","isPythonLike","isShellLike","startsWith","text","type","tokenRegex","match","exec","full","str","num","comment","ident","op","punct","push","has","test","defaultHighlighter","code","lines","split","result","i","length"],"sourceRoot":"../../../src","sources":["utils/code-highlight.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["JS_KEYWORDS","Set","PYTHON_KEYWORDS","SHELL_KEYWORDS","getKeywords","language","lang","toLowerCase","tokenizeLine","line","keywords","tokens","trimmed","trimStart","isPythonLike","isShellLike","startsWith","text","type","commentPattern","tokenRegex","RegExp","match","exec","full","str","num","comment","ident","op","punct","push","has","test","defaultHighlighter","code","lines","split","result","i","length"],"sourceRoot":"../../../src","sources":["utils/code-highlight.ts"],"mappings":"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","ignoreList":[]}
@@ -19,18 +19,42 @@ import { NitroModules } from "react-native-nitro-modules";
19
19
  * Each node has a type and optional properties depending on the node type.
20
20
  */
21
21
 
22
- export const MarkdownParserModule = NitroModules.createHybridObject("MarkdownParser");
22
+ let MarkdownParserModule = null;
23
+ try {
24
+ MarkdownParserModule = NitroModules.createHybridObject("MarkdownParser");
25
+ } catch (e) {
26
+ if (__DEV__) {
27
+ // eslint-disable-next-line no-console
28
+ console.error("[NitroMarkdown] Failed to create native MarkdownParser:", e);
29
+ }
30
+ }
31
+ export { MarkdownParserModule };
23
32
 
24
33
  /**
25
34
  * Parse markdown text into an AST.
26
35
  * @param text - The markdown text to parse
27
36
  * @returns The root node of the parsed AST
28
37
  */
29
- export function parseMarkdown(text) {
30
- if (typeof MarkdownParserModule.parse === "function") {
38
+
39
+ /**
40
+ * Parse markdown text with custom options.
41
+ * @param text - The markdown text to parse
42
+ * @param options - Parser options (gfm, math, html)
43
+ * @returns The root node of the parsed AST
44
+ */
45
+
46
+ export function parseMarkdown(text, options) {
47
+ if (options != null) {
48
+ return parseMarkdownWithOptions(text, options);
49
+ }
50
+ if (MarkdownParserModule != null && typeof MarkdownParserModule.parse === "function") {
31
51
  const jsonStr = MarkdownParserModule.parse(text);
32
52
  return JSON.parse(jsonStr);
33
53
  }
54
+ if (__DEV__) {
55
+ // eslint-disable-next-line no-console
56
+ console.error("[NitroMarkdown] parseMarkdown: native parser unavailable — check installation.");
57
+ }
34
58
  return {
35
59
  type: "document",
36
60
  children: []
@@ -40,14 +64,18 @@ export function parseMarkdown(text) {
40
64
  /**
41
65
  * Parse markdown text with custom options.
42
66
  * @param text - The markdown text to parse
43
- * @param options - Parser options (gfm, math)
67
+ * @param options - Parser options (gfm, math, html)
44
68
  * @returns The root node of the parsed AST
45
69
  */
46
70
  export function parseMarkdownWithOptions(text, options) {
47
- if (typeof MarkdownParserModule.parseWithOptions === "function") {
71
+ if (MarkdownParserModule != null && typeof MarkdownParserModule.parseWithOptions === "function") {
48
72
  const jsonStr = MarkdownParserModule.parseWithOptions(text, options);
49
73
  return JSON.parse(jsonStr);
50
74
  }
75
+ if (__DEV__) {
76
+ // eslint-disable-next-line no-console
77
+ console.error("[NitroMarkdown] parseMarkdownWithOptions: native parser unavailable — check installation.");
78
+ }
51
79
  return {
52
80
  type: "document",
53
81
  children: []
@@ -59,7 +87,7 @@ export function parseMarkdownWithOptions(text, options) {
59
87
  * Useful for search/indexing flows that don't need full AST rendering.
60
88
  */
61
89
  export function extractPlainText(text) {
62
- if (typeof MarkdownParserModule.extractPlainText === "function") {
90
+ if (MarkdownParserModule != null && typeof MarkdownParserModule.extractPlainText === "function") {
63
91
  return MarkdownParserModule.extractPlainText(text);
64
92
  }
65
93
  return getFlattenedText(parseMarkdown(text));
@@ -69,7 +97,7 @@ export function extractPlainText(text) {
69
97
  * Parse markdown with options and return flattened plain text from native parser.
70
98
  */
71
99
  export function extractPlainTextWithOptions(text, options) {
72
- if (typeof MarkdownParserModule.extractPlainTextWithOptions === "function") {
100
+ if (MarkdownParserModule != null && typeof MarkdownParserModule.extractPlainTextWithOptions === "function") {
73
101
  return MarkdownParserModule.extractPlainTextWithOptions(text, options);
74
102
  }
75
103
  return getFlattenedText(parseMarkdownWithOptions(text, options));
@@ -1 +1 @@
1
- {"version":3,"names":["NitroModules","MarkdownParserModule","createHybridObject","parseMarkdown","text","parse","jsonStr","JSON","type","children","parseMarkdownWithOptions","options","parseWithOptions","extractPlainText","getFlattenedText","extractPlainTextWithOptions","getTextContent","node","content","map","join","trim","alt","title","childrenText","stripSourceOffsets","beg","_beg","end","_end","rest"],"sourceRoot":"../../src","sources":["headless.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["NitroModules","MarkdownParserModule","createHybridObject","e","__DEV__","console","error","parseMarkdown","text","options","parseMarkdownWithOptions","parse","jsonStr","JSON","type","children","parseWithOptions","extractPlainText","getFlattenedText","extractPlainTextWithOptions","getTextContent","node","content","map","join","trim","alt","title","childrenText","stripSourceOffsets","beg","_beg","end","_end","rest"],"sourceRoot":"../../src","sources":["headless.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,YAAY,QAAQ,4BAA4B;;AAKzD;AACA;AACA;AACA;;AA6DA,IAAIC,oBAA2C,GAAG,IAAI;AACtD,IAAI;EACFA,oBAAoB,GAClBD,YAAY,CAACE,kBAAkB,CAAiB,gBAAgB,CAAC;AACrE,CAAC,CAAC,OAAOC,CAAC,EAAE;EACV,IAAIC,OAAO,EAAE;IACX;IACAC,OAAO,CAACC,KAAK,CAAC,yDAAyD,EAAEH,CAAC,CAAC;EAC7E;AACF;AACA,SAASF,oBAAoB;;AAE7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAKA,OAAO,SAASM,aAAaA,CAC3BC,IAAY,EACZC,OAAuB,EACT;EACd,IAAIA,OAAO,IAAI,IAAI,EAAE;IACnB,OAAOC,wBAAwB,CAACF,IAAI,EAAEC,OAAO,CAAC;EAChD;EACA,IACER,oBAAoB,IAAI,IAAI,IAC5B,OAAOA,oBAAoB,CAACU,KAAK,KAAK,UAAU,EAChD;IACA,MAAMC,OAAO,GAAGX,oBAAoB,CAACU,KAAK,CAACH,IAAI,CAAC;IAChD,OAAOK,IAAI,CAACF,KAAK,CAACC,OAAO,CAAC;EAC5B;EAEA,IAAIR,OAAO,EAAE;IACX;IACAC,OAAO,CAACC,KAAK,CACX,gFACF,CAAC;EACH;EACA,OAAO;IAAEQ,IAAI,EAAE,UAAU;IAAEC,QAAQ,EAAE;EAAG,CAAC;AAC3C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASL,wBAAwBA,CACtCF,IAAY,EACZC,OAAsB,EACR;EACd,IACER,oBAAoB,IAAI,IAAI,IAC5B,OAAOA,oBAAoB,CAACe,gBAAgB,KAAK,UAAU,EAC3D;IACA,MAAMJ,OAAO,GAAGX,oBAAoB,CAACe,gBAAgB,CAACR,IAAI,EAAEC,OAAO,CAAC;IACpE,OAAOI,IAAI,CAACF,KAAK,CAACC,OAAO,CAAC;EAC5B;EAEA,IAAIR,OAAO,EAAE;IACX;IACAC,OAAO,CAACC,KAAK,CACX,2FACF,CAAC;EACH;EACA,OAAO;IAAEQ,IAAI,EAAE,UAAU;IAAEC,QAAQ,EAAE;EAAG,CAAC;AAC3C;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASE,gBAAgBA,CAACT,IAAY,EAAU;EACrD,IACEP,oBAAoB,IAAI,IAAI,IAC5B,OAAOA,oBAAoB,CAACgB,gBAAgB,KAAK,UAAU,EAC3D;IACA,OAAOhB,oBAAoB,CAACgB,gBAAgB,CAACT,IAAI,CAAC;EACpD;EAEA,OAAOU,gBAAgB,CAACX,aAAa,CAACC,IAAI,CAAC,CAAC;AAC9C;;AAEA;AACA;AACA;AACA,OAAO,SAASW,2BAA2BA,CACzCX,IAAY,EACZC,OAAsB,EACd;EACR,IACER,oBAAoB,IAAI,IAAI,IAC5B,OAAOA,oBAAoB,CAACkB,2BAA2B,KAAK,UAAU,EACtE;IACA,OAAOlB,oBAAoB,CAACkB,2BAA2B,CAACX,IAAI,EAAEC,OAAO,CAAC;EACxE;EAEA,OAAOS,gBAAgB,CAACR,wBAAwB,CAACF,IAAI,EAAEC,OAAO,CAAC,CAAC;AAClE;AAIA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMW,cAAc,GAAIC,IAAkB,IAAa;EAC5D,IAAIA,IAAI,CAACC,OAAO,EAAE,OAAOD,IAAI,CAACC,OAAO;EACrC,OAAOD,IAAI,CAACN,QAAQ,EAAEQ,GAAG,CAACH,cAAc,CAAC,CAACI,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE;AAC1D,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMN,gBAAgB,GAAIG,IAAkB,IAAa;EAC9D,IACEA,IAAI,CAACP,IAAI,KAAK,MAAM,IACpBO,IAAI,CAACP,IAAI,KAAK,aAAa,IAC3BO,IAAI,CAACP,IAAI,KAAK,aAAa,IAC3BO,IAAI,CAACP,IAAI,KAAK,aAAa,EAC3B;IACA,OAAOO,IAAI,CAACC,OAAO,IAAI,EAAE;EAC3B;EAEA,IACED,IAAI,CAACP,IAAI,KAAK,YAAY,IAC1BO,IAAI,CAACP,IAAI,KAAK,YAAY,IAC1BO,IAAI,CAACP,IAAI,KAAK,YAAY,EAC1B;IACA,OAAO,CAACO,IAAI,CAACC,OAAO,IAAI,EAAE,EAAEG,IAAI,CAAC,CAAC,GAAG,MAAM;EAC7C;EAEA,IAAIJ,IAAI,CAACP,IAAI,KAAK,YAAY,EAAE,OAAO,IAAI;EAC3C,IAAIO,IAAI,CAACP,IAAI,KAAK,YAAY,EAAE,OAAO,GAAG;EAC1C,IAAIO,IAAI,CAACP,IAAI,KAAK,iBAAiB,EAAE,OAAO,SAAS;EAErD,IAAIO,IAAI,CAACP,IAAI,KAAK,OAAO,EAAE;IACzB,OAAOO,IAAI,CAACK,GAAG,IAAIL,IAAI,CAACM,KAAK,IAAI,EAAE;EACrC;EAEA,MAAMC,YAAY,GAAGP,IAAI,CAACN,QAAQ,EAAEQ,GAAG,CAACL,gBAAgB,CAAC,CAACM,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE;EAExE,QAAQH,IAAI,CAACP,IAAI;IACf,KAAK,WAAW;IAChB,KAAK,SAAS;IACd,KAAK,YAAY;MACf,OAAOc,YAAY,CAACH,IAAI,CAAC,CAAC,GAAG,MAAM;IAErC,KAAK,WAAW;IAChB,KAAK,gBAAgB;MACnB,OAAOG,YAAY,CAACH,IAAI,CAAC,CAAC,GAAG,IAAI;IAEnC,KAAK,MAAM;MACT,OAAOG,YAAY,GAAG,IAAI;IAE5B,KAAK,WAAW;MACd,OAAOA,YAAY,GAAG,IAAI;IAE5B,KAAK,YAAY;MACf,OAAOA,YAAY,GAAG,KAAK;IAE7B;MACE,OAAOA,YAAY;EACvB;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAACR,IAAkB,EAAgB;EACnE,MAAM;IAAES,GAAG,EAAEC,IAAI;IAAEC,GAAG,EAAEC,IAAI;IAAElB,QAAQ;IAAE,GAAGmB;EAAK,CAAC,GAAGb,IAAI;EACxD,OAAO;IACL,GAAGa,IAAI;IACP,IAAInB,QAAQ,GAAG;MAAEA,QAAQ,EAAEA,QAAQ,CAACQ,GAAG,CAACM,kBAAkB;IAAE,CAAC,GAAG,CAAC,CAAC;EACpE,CAAC;AACH","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- export * from "./headless.js";
3
+ export { MarkdownParserModule, parseMarkdown, parseMarkdownWithOptions, extractPlainText, extractPlainTextWithOptions, getTextContent, getFlattenedText, stripSourceOffsets } from "./headless.js";
4
4
  export { Markdown } from "./markdown.js";
5
5
  export { MarkdownStream } from "./markdown-stream.js";
6
6
  export { useMarkdownContext, MarkdownContext } from "./MarkdownContext.js";
@@ -1 +1 @@
1
- {"version":3,"names":["Markdown","MarkdownStream","useMarkdownContext","MarkdownContext","defaultMarkdownTheme","minimalMarkdownTheme","mergeThemes","Heading","Paragraph","Link","Blockquote","HorizontalRule","CodeBlock","InlineCode","List","ListItem","TaskListItem","TableRenderer","Image","MathInline","MathBlock","createMarkdownSession","useMarkdownSession","useStream","defaultHighlighter"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,cAAc,eAAY;AAE1B,SAASA,QAAQ,QAAQ,eAAY;AAOrC,SAASC,cAAc,QAAQ,sBAAmB;AAGlD,SAASC,kBAAkB,EAAEC,eAAe,QAAQ,sBAAmB;AAmBvE,SACEC,oBAAoB,EACpBC,oBAAoB,EACpBC,WAAW,QACN,YAAS;AAQhB,SAASC,OAAO,QAAQ,wBAAqB;AAC7C,SAASC,SAAS,QAAQ,0BAAuB;AACjD,SAASC,IAAI,QAAQ,qBAAkB;AACvC,SAASC,UAAU,QAAQ,2BAAwB;AACnD,SAASC,cAAc,QAAQ,gCAA6B;AAC5D,SAASC,SAAS,EAAEC,UAAU,QAAQ,qBAAkB;AACxD,SAASC,IAAI,EAAEC,QAAQ,EAAEC,YAAY,QAAQ,qBAAkB;AAC/D,SAASC,aAAa,QAAQ,sBAAmB;AACjD,SAASC,KAAK,QAAQ,sBAAmB;AACzC,SAASC,UAAU,EAAEC,SAAS,QAAQ,qBAAkB;AAExD,SAASC,qBAAqB,QAAQ,sBAAmB;AAEzD,SAASC,kBAAkB,EAAEC,SAAS,QAAQ,0BAAuB;AAGrE,SAASC,kBAAkB,QAAQ,2BAAwB","ignoreList":[]}
1
+ {"version":3,"names":["MarkdownParserModule","parseMarkdown","parseMarkdownWithOptions","extractPlainText","extractPlainTextWithOptions","getTextContent","getFlattenedText","stripSourceOffsets","Markdown","MarkdownStream","useMarkdownContext","MarkdownContext","defaultMarkdownTheme","minimalMarkdownTheme","mergeThemes","Heading","Paragraph","Link","Blockquote","HorizontalRule","CodeBlock","InlineCode","List","ListItem","TaskListItem","TableRenderer","Image","MathInline","MathBlock","createMarkdownSession","useMarkdownSession","useStream","defaultHighlighter"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SACEA,oBAAoB,EACpBC,aAAa,EACbC,wBAAwB,EACxBC,gBAAgB,EAChBC,2BAA2B,EAC3BC,cAAc,EACdC,gBAAgB,EAChBC,kBAAkB,QACb,eAAY;AAGnB,SAASC,QAAQ,QAAQ,eAAY;AAOrC,SAASC,cAAc,QAAQ,sBAAmB;AAGlD,SAASC,kBAAkB,EAAEC,eAAe,QAAQ,sBAAmB;AAmBvE,SACEC,oBAAoB,EACpBC,oBAAoB,EACpBC,WAAW,QACN,YAAS;AAQhB,SAASC,OAAO,QAAQ,wBAAqB;AAC7C,SAASC,SAAS,QAAQ,0BAAuB;AACjD,SAASC,IAAI,QAAQ,qBAAkB;AACvC,SAASC,UAAU,QAAQ,2BAAwB;AACnD,SAASC,cAAc,QAAQ,gCAA6B;AAC5D,SAASC,SAAS,EAAEC,UAAU,QAAQ,qBAAkB;AACxD,SAASC,IAAI,EAAEC,QAAQ,EAAEC,YAAY,QAAQ,qBAAkB;AAC/D,SAASC,aAAa,QAAQ,sBAAmB;AACjD,SAASC,KAAK,QAAQ,sBAAmB;AACzC,SAASC,UAAU,EAAEC,SAAS,QAAQ,qBAAkB;AAExD,SAASC,qBAAqB,QAAQ,sBAAmB;AAEzD,SAASC,kBAAkB,EAAEC,SAAS,QAAQ,0BAAuB;AAOrE,SAASC,kBAAkB,QAAQ,2BAAwB","ignoreList":[]}
@@ -160,7 +160,7 @@ export const MarkdownStream = ({
160
160
  rafRef.current = null;
161
161
  }
162
162
  };
163
- }, [allowIncremental, hasBeforeParsePlugins, options, session, updateIntervalMs, updateStrategy, useTransitionUpdates]);
163
+ }, [allowIncremental, hasBeforeParsePlugins, options, plugins, session, updateIntervalMs, updateStrategy, useTransitionUpdates]);
164
164
  return /*#__PURE__*/_jsx(Markdown, {
165
165
  ...props,
166
166
  options: options,
@@ -1 +1 @@
1
- {"version":3,"names":["useState","useEffect","useRef","useCallback","startTransition","Markdown","getNextStreamAst","parseMarkdownAst","jsx","_jsx","normalizeOffset","value","Number","isFinite","Math","floor","resolveStreamText","forceFullSync","pendingFrom","pendingTo","previousText","session","getAllText","length","appendedChunk","getTextRange","MarkdownStream","updateIntervalMs","updateStrategy","useTransitionUpdates","incrementalParsing","options","plugins","props","parseText","text","createEmptyAst","type","children","initialText","hasBeforeParsePlugins","some","plugin","beforeParse","renderState","setRenderState","ast","renderStateRef","pendingUpdateRef","pendingFromRef","pendingToRef","forceFullSyncRef","updateTimerRef","rafRef","allowIncremental","current","initialState","flushUpdate","cancelAnimationFrame","previousState","latest","nextAst","nextText","previousAst","nextState","scheduleFlush","requestAnimationFrame","setTimeout","unsubscribe","addListener","from","to","nextFrom","nextTo","currentFrom","currentTo","min","max","clearTimeout","sourceAst","undefined"],"sourceRoot":"../../src","sources":["markdown-stream.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useState","useEffect","useRef","useCallback","startTransition","Markdown","getNextStreamAst","parseMarkdownAst","jsx","_jsx","normalizeOffset","value","Number","isFinite","Math","floor","resolveStreamText","forceFullSync","pendingFrom","pendingTo","previousText","session","getAllText","length","appendedChunk","getTextRange","MarkdownStream","updateIntervalMs","updateStrategy","useTransitionUpdates","incrementalParsing","options","plugins","props","parseText","text","createEmptyAst","type","children","initialText","hasBeforeParsePlugins","some","plugin","beforeParse","renderState","setRenderState","ast","renderStateRef","pendingUpdateRef","pendingFromRef","pendingToRef","forceFullSyncRef","updateTimerRef","rafRef","allowIncremental","current","initialState","flushUpdate","cancelAnimationFrame","previousState","latest","nextAst","nextText","previousAst","nextState","scheduleFlush","requestAnimationFrame","setTimeout","unsubscribe","addListener","from","to","nextFrom","nextTo","currentFrom","currentTo","min","max","clearTimeout","sourceAst","undefined"],"sourceRoot":"../../src","sources":["markdown-stream.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import { memo, useCallback, useEffect, useMemo, Fragment } from "react";
3
+ import { memo, useCallback, useEffect, useMemo, useRef, Fragment } from "react";
4
4
  import { StyleSheet, View, Text, FlatList, Platform } from "react-native";
5
5
  import { parseMarkdown, parseMarkdownWithOptions, getFlattenedText, getTextContent } from "./headless.js";
6
6
  import { MarkdownContext, useMarkdownContext } from "./MarkdownContext.js";
@@ -16,10 +16,40 @@ import { Paragraph } from "./renderers/paragraph.js";
16
16
  import { TableRenderer } from "./renderers/table.js";
17
17
  import { defaultMarkdownTheme, minimalMarkdownTheme, mergeThemes } from "./theme.js";
18
18
  import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
19
+ function hashString(str) {
20
+ let hash = 0;
21
+ for (let i = 0; i < str.length; i++) {
22
+ const char = str.charCodeAt(i);
23
+ hash = (hash << 5) - hash + char;
24
+ hash = hash & hash; // Convert to 32bit int
25
+ }
26
+ return hash;
27
+ }
28
+ const ERROR_PHASE = {
29
+ PARSE: "parse",
30
+ BEFORE_PLUGIN: "before-plugin",
31
+ AFTER_PLUGIN: "after-plugin"
32
+ };
33
+
34
+ /**
35
+ * Safely invoke the onError callback, preventing callback exceptions from
36
+ * propagating and breaking the render cycle.
37
+ */
38
+ function safeOnError(onError, error, phase, pluginName) {
39
+ try {
40
+ onError?.(error instanceof Error ? error : new Error(String(error)), phase, pluginName);
41
+ } catch (callbackError) {
42
+ if (__DEV__) {
43
+ // eslint-disable-next-line no-console
44
+ console.warn("[NitroMarkdown] onError callback threw an exception:", callbackError);
45
+ }
46
+ }
47
+ }
19
48
  const baseStylesCache = new WeakMap();
20
49
  const parseAstCache = new Map();
21
50
  const MAX_PARSE_CACHE_ENTRIES = 32;
22
51
  const MAX_CACHEABLE_TEXT_LENGTH = 24_000;
52
+ const EMPTY_RENDERERS = {};
23
53
  const isMarkdownNode = value => {
24
54
  if (typeof value !== "object" || value === null) return false;
25
55
  return typeof Reflect.get(value, "type") === "string";
@@ -38,21 +68,24 @@ const cloneMarkdownNode = node => {
38
68
  };
39
69
  };
40
70
  const getParserOptionsKey = options => {
41
- if (!options) return "gfm:default|math:default";
71
+ if (!options) return "gfm:default|math:default|html:default";
42
72
  const gfm = options.gfm === undefined ? "default" : options.gfm ? "1" : "0";
43
73
  const math = options.math === undefined ? "default" : options.math ? "1" : "0";
44
- return `gfm:${gfm}|math:${math}`;
74
+ const html = options.html === undefined ? "default" : options.html ? "1" : "0";
75
+ return `gfm:${gfm}|math:${math}|html:${html}`;
45
76
  };
46
77
  const normalizeParserOptions = options => {
47
78
  if (!options) return undefined;
48
79
  const gfm = options.gfm;
49
80
  const math = options.math;
50
- if (gfm === undefined && math === undefined) {
81
+ const html = options.html;
82
+ if (gfm === undefined && math === undefined && html === undefined) {
51
83
  return undefined;
52
84
  }
53
85
  return {
54
86
  gfm,
55
- math
87
+ math,
88
+ html
56
89
  };
57
90
  };
58
91
  const parseWithNativeParser = (text, options) => {
@@ -65,7 +98,7 @@ const getCachedParsedAst = (text, options) => {
65
98
  if (text.length > MAX_CACHEABLE_TEXT_LENGTH) {
66
99
  return parseWithNativeParser(text, options);
67
100
  }
68
- const cacheKey = `${getParserOptionsKey(options)}|${text}`;
101
+ const cacheKey = `${getParserOptionsKey(options)}|${text.length}|${hashString(text)}`;
69
102
  const cachedNode = parseAstCache.get(cacheKey);
70
103
  if (cachedNode) {
71
104
  parseAstCache.delete(cacheKey);
@@ -98,7 +131,7 @@ const applyBeforeParsePlugins = (markdown, plugins, onError) => {
98
131
  } catch (error) {
99
132
  const pluginLabel = plugin.name ? ` (${plugin.name})` : "";
100
133
  warnInDev(`[react-native-nitro-markdown] plugin beforeParse${pluginLabel} threw; using previous markdown.`, error);
101
- onError?.(error instanceof Error ? error : new Error(String(error)), 'before-plugin', plugin.name);
134
+ safeOnError(onError, error, ERROR_PHASE.BEFORE_PLUGIN, plugin.name);
102
135
  }
103
136
  }
104
137
  return nextMarkdown;
@@ -119,7 +152,7 @@ const applyAfterParsePlugins = (ast, plugins, onError) => {
119
152
  } catch (error) {
120
153
  const pluginLabel = plugin.name ? ` (${plugin.name})` : "";
121
154
  warnInDev(`[react-native-nitro-markdown] plugin afterParse${pluginLabel} threw; using previous AST.`, error);
122
- onError?.(error instanceof Error ? error : new Error(String(error)), 'after-plugin', plugin.name);
155
+ safeOnError(onError, error, ERROR_PHASE.AFTER_PLUGIN, plugin.name);
123
156
  }
124
157
  }
125
158
  return nextAst;
@@ -130,7 +163,7 @@ export const Markdown = ({
130
163
  plugins,
131
164
  sourceAst,
132
165
  astTransform,
133
- renderers = {},
166
+ renderers = EMPTY_RENDERERS,
134
167
  theme: userTheme,
135
168
  styles: nodeStyles,
136
169
  stylingStrategy = "opinionated",
@@ -147,15 +180,21 @@ export const Markdown = ({
147
180
  }) => {
148
181
  const parserOptionGfm = options?.gfm;
149
182
  const parserOptionMath = options?.math;
183
+ const parserOptionHtml = options?.html;
184
+
185
+ /* eslint-disable react-hooks/refs -- Refs updated/read intentionally to avoid re-parsing on callback identity changes */
186
+ const onErrorRef = useRef(onError);
187
+ onErrorRef.current = onError;
150
188
  const parseResult = useMemo(() => {
151
189
  try {
152
- const markdownToParse = applyBeforeParsePlugins(children, plugins, onError ? (e, phase, name) => onError(e, phase, name) : undefined);
190
+ const markdownToParse = applyBeforeParsePlugins(children, plugins, onErrorRef.current);
153
191
  const parserOptions = normalizeParserOptions({
154
192
  gfm: parserOptionGfm,
155
- math: parserOptionMath
193
+ math: parserOptionMath,
194
+ html: parserOptionHtml
156
195
  });
157
196
  let parsedAst = sourceAst ? cloneMarkdownNode(sourceAst) : getCachedParsedAst(markdownToParse, parserOptions);
158
- parsedAst = applyAfterParsePlugins(parsedAst, plugins, onError ? (e, phase, name) => onError(e, phase, name) : undefined);
197
+ parsedAst = applyAfterParsePlugins(parsedAst, plugins, onErrorRef.current);
159
198
  let ast = parsedAst;
160
199
  if (astTransform) {
161
200
  try {
@@ -172,15 +211,17 @@ export const Markdown = ({
172
211
  ast
173
212
  };
174
213
  } catch (parseError) {
175
- onError?.(parseError instanceof Error ? parseError : new Error(String(parseError)), 'parse');
214
+ safeOnError(onErrorRef.current, parseError, ERROR_PHASE.PARSE);
176
215
  return {
177
216
  ast: null
178
217
  };
179
218
  }
180
- }, [children, parserOptionGfm, parserOptionMath, plugins, sourceAst, astTransform, onError]);
219
+ }, [children, parserOptionGfm, parserOptionMath, parserOptionHtml, sourceAst, astTransform, plugins]);
220
+ /* eslint-enable react-hooks/refs */
221
+
181
222
  useEffect(() => {
182
223
  onParsingInProgress?.();
183
- }, [children, parserOptionGfm, parserOptionMath, plugins, onParsingInProgress]);
224
+ }, [children, parserOptionGfm, parserOptionMath, parserOptionHtml, onParsingInProgress]);
184
225
  useEffect(() => {
185
226
  if (!parseResult.ast || !onParseComplete) return;
186
227
  onParseComplete({
@@ -529,13 +570,13 @@ const getBaseStyles = theme => {
529
570
  };
530
571
  const createBaseStyles = theme => StyleSheet.create({
531
572
  container: {
532
- flex: 1
573
+ flexShrink: 1
533
574
  },
534
575
  virtualizedList: {
535
576
  flex: 1
536
577
  },
537
578
  document: {
538
- flex: 1
579
+ flexShrink: 1
539
580
  },
540
581
  errorText: {
541
582
  color: "#f87171",