@intlayer/core 8.1.2 → 8.1.3

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 (408) hide show
  1. package/dist/cjs/_virtual/_rolldown/runtime.cjs +1 -29
  2. package/dist/cjs/deepTransformPlugins/getFilterMissingTranslationsContent.cjs +1 -212
  3. package/dist/cjs/deepTransformPlugins/getFilterMissingTranslationsContent.cjs.map +1 -1
  4. package/dist/cjs/deepTransformPlugins/getFilterTranslationsOnlyContent.cjs +1 -94
  5. package/dist/cjs/deepTransformPlugins/getFilterTranslationsOnlyContent.cjs.map +1 -1
  6. package/dist/cjs/deepTransformPlugins/getFilteredLocalesContent.cjs +1 -45
  7. package/dist/cjs/deepTransformPlugins/getFilteredLocalesContent.cjs.map +1 -1
  8. package/dist/cjs/deepTransformPlugins/getLocalizedContent.cjs +1 -33
  9. package/dist/cjs/deepTransformPlugins/getLocalizedContent.cjs.map +1 -1
  10. package/dist/cjs/deepTransformPlugins/getMaskContent.cjs +1 -27
  11. package/dist/cjs/deepTransformPlugins/getMaskContent.cjs.map +1 -1
  12. package/dist/cjs/deepTransformPlugins/getMissingLocalesContent.cjs +1 -82
  13. package/dist/cjs/deepTransformPlugins/getMissingLocalesContent.cjs.map +1 -1
  14. package/dist/cjs/deepTransformPlugins/getMultilingualDictionary.cjs +1 -87
  15. package/dist/cjs/deepTransformPlugins/getMultilingualDictionary.cjs.map +1 -1
  16. package/dist/cjs/deepTransformPlugins/getReplacedValuesContent.cjs +1 -60
  17. package/dist/cjs/deepTransformPlugins/getReplacedValuesContent.cjs.map +1 -1
  18. package/dist/cjs/deepTransformPlugins/getSplittedContent.cjs +1 -122
  19. package/dist/cjs/deepTransformPlugins/getSplittedContent.cjs.map +1 -1
  20. package/dist/cjs/deepTransformPlugins/index.cjs +1 -32
  21. package/dist/cjs/deepTransformPlugins/insertContentInDictionary.cjs +1 -106
  22. package/dist/cjs/deepTransformPlugins/insertContentInDictionary.cjs.map +1 -1
  23. package/dist/cjs/dictionaryManipulator/editDictionaryByKeyPath.cjs +1 -64
  24. package/dist/cjs/dictionaryManipulator/editDictionaryByKeyPath.cjs.map +1 -1
  25. package/dist/cjs/dictionaryManipulator/getContentNodeByKeyPath.cjs +1 -18
  26. package/dist/cjs/dictionaryManipulator/getContentNodeByKeyPath.cjs.map +1 -1
  27. package/dist/cjs/dictionaryManipulator/getDefaultNode.cjs +1 -55
  28. package/dist/cjs/dictionaryManipulator/getDefaultNode.cjs.map +1 -1
  29. package/dist/cjs/dictionaryManipulator/getEmptyNode.cjs +1 -26
  30. package/dist/cjs/dictionaryManipulator/getEmptyNode.cjs.map +1 -1
  31. package/dist/cjs/dictionaryManipulator/getNodeChildren.cjs +1 -23
  32. package/dist/cjs/dictionaryManipulator/getNodeChildren.cjs.map +1 -1
  33. package/dist/cjs/dictionaryManipulator/getNodeType.cjs +1 -36
  34. package/dist/cjs/dictionaryManipulator/getNodeType.cjs.map +1 -1
  35. package/dist/cjs/dictionaryManipulator/index.cjs +1 -27
  36. package/dist/cjs/dictionaryManipulator/mergeDictionaries.cjs +1 -69
  37. package/dist/cjs/dictionaryManipulator/mergeDictionaries.cjs.map +1 -1
  38. package/dist/cjs/dictionaryManipulator/normalizeDictionary.cjs +1 -30
  39. package/dist/cjs/dictionaryManipulator/normalizeDictionary.cjs.map +1 -1
  40. package/dist/cjs/dictionaryManipulator/orderDictionaries.cjs +1 -48
  41. package/dist/cjs/dictionaryManipulator/orderDictionaries.cjs.map +1 -1
  42. package/dist/cjs/dictionaryManipulator/removeContentNodeByKeyPath.cjs +1 -31
  43. package/dist/cjs/dictionaryManipulator/removeContentNodeByKeyPath.cjs.map +1 -1
  44. package/dist/cjs/dictionaryManipulator/renameContentNodeByKeyPath.cjs +1 -39
  45. package/dist/cjs/dictionaryManipulator/renameContentNodeByKeyPath.cjs.map +1 -1
  46. package/dist/cjs/dictionaryManipulator/updateNodeChildren.cjs +1 -38
  47. package/dist/cjs/dictionaryManipulator/updateNodeChildren.cjs.map +1 -1
  48. package/dist/cjs/formatters/compact.cjs +1 -25
  49. package/dist/cjs/formatters/compact.cjs.map +1 -1
  50. package/dist/cjs/formatters/currency.cjs +1 -29
  51. package/dist/cjs/formatters/currency.cjs.map +1 -1
  52. package/dist/cjs/formatters/date.cjs +1 -60
  53. package/dist/cjs/formatters/date.cjs.map +1 -1
  54. package/dist/cjs/formatters/index.cjs +1 -18
  55. package/dist/cjs/formatters/list.cjs +1 -30
  56. package/dist/cjs/formatters/list.cjs.map +1 -1
  57. package/dist/cjs/formatters/number.cjs +1 -18
  58. package/dist/cjs/formatters/number.cjs.map +1 -1
  59. package/dist/cjs/formatters/percentage.cjs +1 -25
  60. package/dist/cjs/formatters/percentage.cjs.map +1 -1
  61. package/dist/cjs/formatters/relativeTime.cjs +1 -33
  62. package/dist/cjs/formatters/relativeTime.cjs.map +1 -1
  63. package/dist/cjs/formatters/units.cjs +1 -23
  64. package/dist/cjs/formatters/units.cjs.map +1 -1
  65. package/dist/cjs/getStorageAttributes.cjs +1 -134
  66. package/dist/cjs/getStorageAttributes.cjs.map +1 -1
  67. package/dist/cjs/index.cjs +1 -300
  68. package/dist/cjs/interpreter/getCondition.cjs +1 -27
  69. package/dist/cjs/interpreter/getCondition.cjs.map +1 -1
  70. package/dist/cjs/interpreter/getContent/deepTransform.cjs +1 -41
  71. package/dist/cjs/interpreter/getContent/deepTransform.cjs.map +1 -1
  72. package/dist/cjs/interpreter/getContent/getContent.cjs +1 -34
  73. package/dist/cjs/interpreter/getContent/getContent.cjs.map +1 -1
  74. package/dist/cjs/interpreter/getContent/index.cjs +1 -14
  75. package/dist/cjs/interpreter/getContent/plugins.cjs +1 -161
  76. package/dist/cjs/interpreter/getContent/plugins.cjs.map +1 -1
  77. package/dist/cjs/interpreter/getDictionary.cjs +1 -24
  78. package/dist/cjs/interpreter/getDictionary.cjs.map +1 -1
  79. package/dist/cjs/interpreter/getEnumeration.cjs +1 -72
  80. package/dist/cjs/interpreter/getEnumeration.cjs.map +1 -1
  81. package/dist/cjs/interpreter/getGender.cjs +1 -38
  82. package/dist/cjs/interpreter/getGender.cjs.map +1 -1
  83. package/dist/cjs/interpreter/getHTML.cjs +1 -121
  84. package/dist/cjs/interpreter/getHTML.cjs.map +1 -1
  85. package/dist/cjs/interpreter/getInsertion.cjs +1 -22
  86. package/dist/cjs/interpreter/getInsertion.cjs.map +1 -1
  87. package/dist/cjs/interpreter/getIntlayer.cjs +1 -40
  88. package/dist/cjs/interpreter/getIntlayer.cjs.map +1 -1
  89. package/dist/cjs/interpreter/getNesting.cjs +1 -36
  90. package/dist/cjs/interpreter/getNesting.cjs.map +1 -1
  91. package/dist/cjs/interpreter/getTranslation.cjs +1 -112
  92. package/dist/cjs/interpreter/getTranslation.cjs.map +1 -1
  93. package/dist/cjs/interpreter/index.cjs +1 -31
  94. package/dist/cjs/interpreter/splitAndJoinInsertion.cjs +1 -55
  95. package/dist/cjs/interpreter/splitAndJoinInsertion.cjs.map +1 -1
  96. package/dist/cjs/localization/getBrowserLocale.cjs +1 -143
  97. package/dist/cjs/localization/getBrowserLocale.cjs.map +1 -1
  98. package/dist/cjs/localization/getHTMLTextDir.cjs +1 -64
  99. package/dist/cjs/localization/getHTMLTextDir.cjs.map +1 -1
  100. package/dist/cjs/localization/getLocale.cjs +1 -27
  101. package/dist/cjs/localization/getLocale.cjs.map +1 -1
  102. package/dist/cjs/localization/getLocaleFromPath.cjs +1 -45
  103. package/dist/cjs/localization/getLocaleFromPath.cjs.map +1 -1
  104. package/dist/cjs/localization/getLocaleLang.cjs +1 -20
  105. package/dist/cjs/localization/getLocaleLang.cjs.map +1 -1
  106. package/dist/cjs/localization/getLocaleName.cjs +1 -10
  107. package/dist/cjs/localization/getLocaleName.cjs.map +1 -1
  108. package/dist/cjs/localization/getLocalizedUrl.cjs +1 -82
  109. package/dist/cjs/localization/getLocalizedUrl.cjs.map +1 -1
  110. package/dist/cjs/localization/getMultilingualUrls.cjs +1 -63
  111. package/dist/cjs/localization/getMultilingualUrls.cjs.map +1 -1
  112. package/dist/cjs/localization/getPathWithoutLocale.cjs +1 -55
  113. package/dist/cjs/localization/getPathWithoutLocale.cjs.map +1 -1
  114. package/dist/cjs/localization/getPrefix.cjs +1 -63
  115. package/dist/cjs/localization/getPrefix.cjs.map +1 -1
  116. package/dist/cjs/localization/index.cjs +1 -39
  117. package/dist/cjs/localization/localeDetector.cjs +1 -133
  118. package/dist/cjs/localization/localeDetector.cjs.map +1 -1
  119. package/dist/cjs/localization/localeMapper.cjs +1 -119
  120. package/dist/cjs/localization/localeMapper.cjs.map +1 -1
  121. package/dist/cjs/localization/localeResolver.cjs +1 -28
  122. package/dist/cjs/localization/localeResolver.cjs.map +1 -1
  123. package/dist/cjs/localization/rewriteUtils.cjs +1 -110
  124. package/dist/cjs/localization/rewriteUtils.cjs.map +1 -1
  125. package/dist/cjs/localization/validatePrefix.cjs +1 -54
  126. package/dist/cjs/localization/validatePrefix.cjs.map +1 -1
  127. package/dist/cjs/markdown/compiler.cjs +10 -810
  128. package/dist/cjs/markdown/compiler.cjs.map +1 -1
  129. package/dist/cjs/markdown/constants.cjs +1 -328
  130. package/dist/cjs/markdown/constants.cjs.map +1 -1
  131. package/dist/cjs/markdown/index.cjs +1 -120
  132. package/dist/cjs/markdown/parser.cjs +1 -66
  133. package/dist/cjs/markdown/parser.cjs.map +1 -1
  134. package/dist/cjs/markdown/renderer.cjs +1 -61
  135. package/dist/cjs/markdown/renderer.cjs.map +1 -1
  136. package/dist/cjs/markdown/utils.cjs +6 -391
  137. package/dist/cjs/markdown/utils.cjs.map +1 -1
  138. package/dist/cjs/messageFormat/ICU.cjs +1 -319
  139. package/dist/cjs/messageFormat/ICU.cjs.map +1 -1
  140. package/dist/cjs/messageFormat/i18next.cjs +1 -330
  141. package/dist/cjs/messageFormat/i18next.cjs.map +1 -1
  142. package/dist/cjs/messageFormat/index.cjs +1 -11
  143. package/dist/cjs/messageFormat/verify-icu-format.cjs +2 -64
  144. package/dist/cjs/messageFormat/verify-icu-format.cjs.map +1 -1
  145. package/dist/cjs/messageFormat/vue-i18n.cjs +1 -166
  146. package/dist/cjs/messageFormat/vue-i18n.cjs.map +1 -1
  147. package/dist/cjs/transpiler/condition/condition.cjs +1 -26
  148. package/dist/cjs/transpiler/condition/condition.cjs.map +1 -1
  149. package/dist/cjs/transpiler/condition/index.cjs +1 -4
  150. package/dist/cjs/transpiler/enumeration/enumeration.cjs +1 -28
  151. package/dist/cjs/transpiler/enumeration/enumeration.cjs.map +1 -1
  152. package/dist/cjs/transpiler/enumeration/index.cjs +1 -4
  153. package/dist/cjs/transpiler/file/file.cjs +1 -52
  154. package/dist/cjs/transpiler/file/file.cjs.map +1 -1
  155. package/dist/cjs/transpiler/file/fileBrowser.cjs +1 -25
  156. package/dist/cjs/transpiler/file/fileBrowser.cjs.map +1 -1
  157. package/dist/cjs/transpiler/file/index.cjs +1 -5
  158. package/dist/cjs/transpiler/gender/gender.cjs +1 -26
  159. package/dist/cjs/transpiler/gender/gender.cjs.map +1 -1
  160. package/dist/cjs/transpiler/gender/index.cjs +1 -4
  161. package/dist/cjs/transpiler/html/getHTMLCustomComponents.cjs +1 -44
  162. package/dist/cjs/transpiler/html/getHTMLCustomComponents.cjs.map +1 -1
  163. package/dist/cjs/transpiler/html/html.cjs +1 -37
  164. package/dist/cjs/transpiler/html/html.cjs.map +1 -1
  165. package/dist/cjs/transpiler/html/htmlTags.cjs +1 -116
  166. package/dist/cjs/transpiler/html/htmlTags.cjs.map +1 -1
  167. package/dist/cjs/transpiler/html/index.cjs +1 -6
  168. package/dist/cjs/transpiler/index.cjs +1 -24
  169. package/dist/cjs/transpiler/insertion/getInsertionValues.cjs +1 -11
  170. package/dist/cjs/transpiler/insertion/getInsertionValues.cjs.map +1 -1
  171. package/dist/cjs/transpiler/insertion/index.cjs +1 -6
  172. package/dist/cjs/transpiler/insertion/insertion.cjs +1 -36
  173. package/dist/cjs/transpiler/insertion/insertion.cjs.map +1 -1
  174. package/dist/cjs/transpiler/markdown/getMarkdownMetadata.cjs +2 -23
  175. package/dist/cjs/transpiler/markdown/getMarkdownMetadata.cjs.map +1 -1
  176. package/dist/cjs/transpiler/markdown/index.cjs +1 -6
  177. package/dist/cjs/transpiler/markdown/markdown.cjs +1 -54
  178. package/dist/cjs/transpiler/markdown/markdown.cjs.map +1 -1
  179. package/dist/cjs/transpiler/nesting/index.cjs +1 -4
  180. package/dist/cjs/transpiler/nesting/nesting.cjs +1 -27
  181. package/dist/cjs/transpiler/nesting/nesting.cjs.map +1 -1
  182. package/dist/cjs/transpiler/translation/index.cjs +1 -4
  183. package/dist/cjs/transpiler/translation/translation.cjs +1 -29
  184. package/dist/cjs/transpiler/translation/translation.cjs.map +1 -1
  185. package/dist/cjs/utils/checkIsURLAbsolute.cjs +1 -7
  186. package/dist/cjs/utils/checkIsURLAbsolute.cjs.map +1 -1
  187. package/dist/cjs/utils/getCookie.cjs +1 -32
  188. package/dist/cjs/utils/getCookie.cjs.map +1 -1
  189. package/dist/cjs/utils/index.cjs +1 -0
  190. package/dist/cjs/utils/intl.cjs +1 -91
  191. package/dist/cjs/utils/intl.cjs.map +1 -1
  192. package/dist/cjs/utils/isSameKeyPath.cjs +1 -7
  193. package/dist/cjs/utils/isSameKeyPath.cjs.map +1 -1
  194. package/dist/cjs/utils/isValidReactElement.cjs +1 -14
  195. package/dist/cjs/utils/isValidReactElement.cjs.map +1 -1
  196. package/dist/cjs/utils/localeStorage.cjs +1 -140
  197. package/dist/cjs/utils/localeStorage.cjs.map +1 -1
  198. package/dist/cjs/utils/parseYaml.cjs +16 -322
  199. package/dist/cjs/utils/parseYaml.cjs.map +1 -1
  200. package/dist/esm/deepTransformPlugins/getFilterMissingTranslationsContent.mjs +1 -207
  201. package/dist/esm/deepTransformPlugins/getFilterMissingTranslationsContent.mjs.map +1 -1
  202. package/dist/esm/deepTransformPlugins/getFilterTranslationsOnlyContent.mjs +1 -89
  203. package/dist/esm/deepTransformPlugins/getFilterTranslationsOnlyContent.mjs.map +1 -1
  204. package/dist/esm/deepTransformPlugins/getFilteredLocalesContent.mjs +1 -42
  205. package/dist/esm/deepTransformPlugins/getFilteredLocalesContent.mjs.map +1 -1
  206. package/dist/esm/deepTransformPlugins/getLocalizedContent.mjs +1 -31
  207. package/dist/esm/deepTransformPlugins/getLocalizedContent.mjs.map +1 -1
  208. package/dist/esm/deepTransformPlugins/getMaskContent.mjs +1 -25
  209. package/dist/esm/deepTransformPlugins/getMaskContent.mjs.map +1 -1
  210. package/dist/esm/deepTransformPlugins/getMissingLocalesContent.mjs +1 -77
  211. package/dist/esm/deepTransformPlugins/getMissingLocalesContent.mjs.map +1 -1
  212. package/dist/esm/deepTransformPlugins/getMultilingualDictionary.mjs +1 -86
  213. package/dist/esm/deepTransformPlugins/getMultilingualDictionary.mjs.map +1 -1
  214. package/dist/esm/deepTransformPlugins/getReplacedValuesContent.mjs +1 -59
  215. package/dist/esm/deepTransformPlugins/getReplacedValuesContent.mjs.map +1 -1
  216. package/dist/esm/deepTransformPlugins/getSplittedContent.mjs +1 -119
  217. package/dist/esm/deepTransformPlugins/getSplittedContent.mjs.map +1 -1
  218. package/dist/esm/deepTransformPlugins/index.mjs +1 -12
  219. package/dist/esm/deepTransformPlugins/insertContentInDictionary.mjs +1 -104
  220. package/dist/esm/deepTransformPlugins/insertContentInDictionary.mjs.map +1 -1
  221. package/dist/esm/dictionaryManipulator/editDictionaryByKeyPath.mjs +1 -62
  222. package/dist/esm/dictionaryManipulator/editDictionaryByKeyPath.mjs.map +1 -1
  223. package/dist/esm/dictionaryManipulator/getContentNodeByKeyPath.mjs +1 -16
  224. package/dist/esm/dictionaryManipulator/getContentNodeByKeyPath.mjs.map +1 -1
  225. package/dist/esm/dictionaryManipulator/getDefaultNode.mjs +1 -53
  226. package/dist/esm/dictionaryManipulator/getDefaultNode.mjs.map +1 -1
  227. package/dist/esm/dictionaryManipulator/getEmptyNode.mjs +1 -24
  228. package/dist/esm/dictionaryManipulator/getEmptyNode.mjs.map +1 -1
  229. package/dist/esm/dictionaryManipulator/getNodeChildren.mjs +1 -21
  230. package/dist/esm/dictionaryManipulator/getNodeChildren.mjs.map +1 -1
  231. package/dist/esm/dictionaryManipulator/getNodeType.mjs +1 -34
  232. package/dist/esm/dictionaryManipulator/getNodeType.mjs.map +1 -1
  233. package/dist/esm/dictionaryManipulator/index.mjs +1 -14
  234. package/dist/esm/dictionaryManipulator/mergeDictionaries.mjs +1 -66
  235. package/dist/esm/dictionaryManipulator/mergeDictionaries.mjs.map +1 -1
  236. package/dist/esm/dictionaryManipulator/normalizeDictionary.mjs +1 -28
  237. package/dist/esm/dictionaryManipulator/normalizeDictionary.mjs.map +1 -1
  238. package/dist/esm/dictionaryManipulator/orderDictionaries.mjs +1 -45
  239. package/dist/esm/dictionaryManipulator/orderDictionaries.mjs.map +1 -1
  240. package/dist/esm/dictionaryManipulator/removeContentNodeByKeyPath.mjs +1 -29
  241. package/dist/esm/dictionaryManipulator/removeContentNodeByKeyPath.mjs.map +1 -1
  242. package/dist/esm/dictionaryManipulator/renameContentNodeByKeyPath.mjs +1 -37
  243. package/dist/esm/dictionaryManipulator/renameContentNodeByKeyPath.mjs.map +1 -1
  244. package/dist/esm/dictionaryManipulator/updateNodeChildren.mjs +1 -36
  245. package/dist/esm/dictionaryManipulator/updateNodeChildren.mjs.map +1 -1
  246. package/dist/esm/formatters/compact.mjs +1 -22
  247. package/dist/esm/formatters/compact.mjs.map +1 -1
  248. package/dist/esm/formatters/currency.mjs +1 -26
  249. package/dist/esm/formatters/currency.mjs.map +1 -1
  250. package/dist/esm/formatters/date.mjs +1 -57
  251. package/dist/esm/formatters/date.mjs.map +1 -1
  252. package/dist/esm/formatters/index.mjs +1 -10
  253. package/dist/esm/formatters/list.mjs +1 -27
  254. package/dist/esm/formatters/list.mjs.map +1 -1
  255. package/dist/esm/formatters/number.mjs +1 -15
  256. package/dist/esm/formatters/number.mjs.map +1 -1
  257. package/dist/esm/formatters/percentage.mjs +1 -22
  258. package/dist/esm/formatters/percentage.mjs.map +1 -1
  259. package/dist/esm/formatters/relativeTime.mjs +1 -30
  260. package/dist/esm/formatters/relativeTime.mjs.map +1 -1
  261. package/dist/esm/formatters/units.mjs +1 -20
  262. package/dist/esm/formatters/units.mjs.map +1 -1
  263. package/dist/esm/getStorageAttributes.mjs +1 -132
  264. package/dist/esm/getStorageAttributes.mjs.map +1 -1
  265. package/dist/esm/index.mjs +1 -82
  266. package/dist/esm/interpreter/getCondition.mjs +1 -25
  267. package/dist/esm/interpreter/getCondition.mjs.map +1 -1
  268. package/dist/esm/interpreter/getContent/deepTransform.mjs +1 -39
  269. package/dist/esm/interpreter/getContent/deepTransform.mjs.map +1 -1
  270. package/dist/esm/interpreter/getContent/getContent.mjs +1 -31
  271. package/dist/esm/interpreter/getContent/getContent.mjs.map +1 -1
  272. package/dist/esm/interpreter/getContent/index.mjs +1 -5
  273. package/dist/esm/interpreter/getContent/plugins.mjs +1 -153
  274. package/dist/esm/interpreter/getContent/plugins.mjs.map +1 -1
  275. package/dist/esm/interpreter/getDictionary.mjs +1 -23
  276. package/dist/esm/interpreter/getDictionary.mjs.map +1 -1
  277. package/dist/esm/interpreter/getEnumeration.mjs +1 -69
  278. package/dist/esm/interpreter/getEnumeration.mjs.map +1 -1
  279. package/dist/esm/interpreter/getGender.mjs +1 -36
  280. package/dist/esm/interpreter/getGender.mjs.map +1 -1
  281. package/dist/esm/interpreter/getHTML.mjs +1 -119
  282. package/dist/esm/interpreter/getHTML.mjs.map +1 -1
  283. package/dist/esm/interpreter/getInsertion.mjs +1 -20
  284. package/dist/esm/interpreter/getInsertion.mjs.map +1 -1
  285. package/dist/esm/interpreter/getIntlayer.mjs +1 -36
  286. package/dist/esm/interpreter/getIntlayer.mjs.map +1 -1
  287. package/dist/esm/interpreter/getNesting.mjs +1 -35
  288. package/dist/esm/interpreter/getNesting.mjs.map +1 -1
  289. package/dist/esm/interpreter/getTranslation.mjs +1 -110
  290. package/dist/esm/interpreter/getTranslation.mjs.map +1 -1
  291. package/dist/esm/interpreter/index.mjs +1 -13
  292. package/dist/esm/interpreter/splitAndJoinInsertion.mjs +1 -53
  293. package/dist/esm/interpreter/splitAndJoinInsertion.mjs.map +1 -1
  294. package/dist/esm/localization/getBrowserLocale.mjs +1 -138
  295. package/dist/esm/localization/getBrowserLocale.mjs.map +1 -1
  296. package/dist/esm/localization/getHTMLTextDir.mjs +1 -62
  297. package/dist/esm/localization/getHTMLTextDir.mjs.map +1 -1
  298. package/dist/esm/localization/getLocale.mjs +1 -24
  299. package/dist/esm/localization/getLocale.mjs.map +1 -1
  300. package/dist/esm/localization/getLocaleFromPath.mjs +1 -42
  301. package/dist/esm/localization/getLocaleFromPath.mjs.map +1 -1
  302. package/dist/esm/localization/getLocaleLang.mjs +1 -18
  303. package/dist/esm/localization/getLocaleLang.mjs.map +1 -1
  304. package/dist/esm/localization/getLocaleName.mjs +1 -9
  305. package/dist/esm/localization/getLocaleName.mjs.map +1 -1
  306. package/dist/esm/localization/getLocalizedUrl.mjs +1 -79
  307. package/dist/esm/localization/getLocalizedUrl.mjs.map +1 -1
  308. package/dist/esm/localization/getMultilingualUrls.mjs +1 -60
  309. package/dist/esm/localization/getMultilingualUrls.mjs.map +1 -1
  310. package/dist/esm/localization/getPathWithoutLocale.mjs +1 -52
  311. package/dist/esm/localization/getPathWithoutLocale.mjs.map +1 -1
  312. package/dist/esm/localization/getPrefix.mjs +1 -60
  313. package/dist/esm/localization/getPrefix.mjs.map +1 -1
  314. package/dist/esm/localization/index.mjs +1 -17
  315. package/dist/esm/localization/localeDetector.mjs +1 -131
  316. package/dist/esm/localization/localeDetector.mjs.map +1 -1
  317. package/dist/esm/localization/localeMapper.mjs +1 -114
  318. package/dist/esm/localization/localeMapper.mjs.map +1 -1
  319. package/dist/esm/localization/localeResolver.mjs +1 -25
  320. package/dist/esm/localization/localeResolver.mjs.map +1 -1
  321. package/dist/esm/localization/rewriteUtils.mjs +1 -104
  322. package/dist/esm/localization/rewriteUtils.mjs.map +1 -1
  323. package/dist/esm/localization/validatePrefix.mjs +1 -51
  324. package/dist/esm/localization/validatePrefix.mjs.map +1 -1
  325. package/dist/esm/markdown/compiler.mjs +10 -786
  326. package/dist/esm/markdown/compiler.mjs.map +1 -1
  327. package/dist/esm/markdown/constants.mjs +1 -247
  328. package/dist/esm/markdown/constants.mjs.map +1 -1
  329. package/dist/esm/markdown/index.mjs +1 -7
  330. package/dist/esm/markdown/parser.mjs +1 -65
  331. package/dist/esm/markdown/parser.mjs.map +1 -1
  332. package/dist/esm/markdown/renderer.mjs +1 -59
  333. package/dist/esm/markdown/renderer.mjs.map +1 -1
  334. package/dist/esm/markdown/utils.mjs +6 -361
  335. package/dist/esm/markdown/utils.mjs.map +1 -1
  336. package/dist/esm/messageFormat/ICU.mjs +1 -316
  337. package/dist/esm/messageFormat/ICU.mjs.map +1 -1
  338. package/dist/esm/messageFormat/i18next.mjs +1 -327
  339. package/dist/esm/messageFormat/i18next.mjs.map +1 -1
  340. package/dist/esm/messageFormat/index.mjs +1 -5
  341. package/dist/esm/messageFormat/verify-icu-format.mjs +2 -64
  342. package/dist/esm/messageFormat/verify-icu-format.mjs.map +1 -1
  343. package/dist/esm/messageFormat/vue-i18n.mjs +1 -163
  344. package/dist/esm/messageFormat/vue-i18n.mjs.map +1 -1
  345. package/dist/esm/transpiler/condition/condition.mjs +1 -24
  346. package/dist/esm/transpiler/condition/condition.mjs.map +1 -1
  347. package/dist/esm/transpiler/condition/index.mjs +1 -3
  348. package/dist/esm/transpiler/enumeration/enumeration.mjs +1 -26
  349. package/dist/esm/transpiler/enumeration/enumeration.mjs.map +1 -1
  350. package/dist/esm/transpiler/enumeration/index.mjs +1 -3
  351. package/dist/esm/transpiler/file/file.mjs +1 -49
  352. package/dist/esm/transpiler/file/file.mjs.map +1 -1
  353. package/dist/esm/transpiler/file/fileBrowser.mjs +1 -24
  354. package/dist/esm/transpiler/file/fileBrowser.mjs.map +1 -1
  355. package/dist/esm/transpiler/file/index.mjs +1 -3
  356. package/dist/esm/transpiler/gender/gender.mjs +1 -24
  357. package/dist/esm/transpiler/gender/gender.mjs.map +1 -1
  358. package/dist/esm/transpiler/gender/index.mjs +1 -3
  359. package/dist/esm/transpiler/html/getHTMLCustomComponents.mjs +1 -43
  360. package/dist/esm/transpiler/html/getHTMLCustomComponents.mjs.map +1 -1
  361. package/dist/esm/transpiler/html/html.mjs +1 -35
  362. package/dist/esm/transpiler/html/html.mjs.map +1 -1
  363. package/dist/esm/transpiler/html/htmlTags.mjs +1 -114
  364. package/dist/esm/transpiler/html/htmlTags.mjs.map +1 -1
  365. package/dist/esm/transpiler/html/index.mjs +1 -4
  366. package/dist/esm/transpiler/index.mjs +1 -13
  367. package/dist/esm/transpiler/insertion/getInsertionValues.mjs +1 -9
  368. package/dist/esm/transpiler/insertion/getInsertionValues.mjs.map +1 -1
  369. package/dist/esm/transpiler/insertion/index.mjs +1 -4
  370. package/dist/esm/transpiler/insertion/insertion.mjs +1 -34
  371. package/dist/esm/transpiler/insertion/insertion.mjs.map +1 -1
  372. package/dist/esm/transpiler/markdown/getMarkdownMetadata.mjs +2 -22
  373. package/dist/esm/transpiler/markdown/getMarkdownMetadata.mjs.map +1 -1
  374. package/dist/esm/transpiler/markdown/index.mjs +1 -4
  375. package/dist/esm/transpiler/markdown/markdown.mjs +1 -52
  376. package/dist/esm/transpiler/markdown/markdown.mjs.map +1 -1
  377. package/dist/esm/transpiler/nesting/index.mjs +1 -3
  378. package/dist/esm/transpiler/nesting/nesting.mjs +1 -25
  379. package/dist/esm/transpiler/nesting/nesting.mjs.map +1 -1
  380. package/dist/esm/transpiler/translation/index.mjs +1 -3
  381. package/dist/esm/transpiler/translation/translation.mjs +1 -27
  382. package/dist/esm/transpiler/translation/translation.mjs.map +1 -1
  383. package/dist/esm/utils/checkIsURLAbsolute.mjs +1 -5
  384. package/dist/esm/utils/checkIsURLAbsolute.mjs.map +1 -1
  385. package/dist/esm/utils/getCookie.mjs +1 -30
  386. package/dist/esm/utils/getCookie.mjs.map +1 -1
  387. package/dist/esm/utils/index.mjs +1 -0
  388. package/dist/esm/utils/intl.mjs +1 -86
  389. package/dist/esm/utils/intl.mjs.map +1 -1
  390. package/dist/esm/utils/isSameKeyPath.mjs +1 -5
  391. package/dist/esm/utils/isSameKeyPath.mjs.map +1 -1
  392. package/dist/esm/utils/isValidReactElement.mjs +1 -12
  393. package/dist/esm/utils/isValidReactElement.mjs.map +1 -1
  394. package/dist/esm/utils/localeStorage.mjs +1 -135
  395. package/dist/esm/utils/localeStorage.mjs.map +1 -1
  396. package/dist/esm/utils/parseYaml.mjs +16 -320
  397. package/dist/esm/utils/parseYaml.mjs.map +1 -1
  398. package/dist/types/formatters/index.d.ts +2 -1
  399. package/dist/types/index.d.ts +8 -2
  400. package/dist/types/interpreter/getContent/plugins.d.ts +4 -4
  401. package/dist/types/interpreter/getContent/plugins.d.ts.map +1 -1
  402. package/dist/types/localization/index.d.ts +2 -1
  403. package/dist/types/markdown/index.d.ts +4 -1
  404. package/dist/types/markdown/types.d.ts +1 -1
  405. package/dist/types/markdown/types.d.ts.map +1 -1
  406. package/dist/types/transpiler/translation/translation.d.ts +1 -1
  407. package/dist/types/utils/index.d.ts +8 -0
  408. package/package.json +65 -11
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.cjs","names":["get","cx","defaultSlugify","defaultSanitizer","NAMED_CODES_TO_UNICODE","ORDERED","ORDERED_LIST_R","UNORDERED_LIST_R","ORDERED_LIST_ITEM_R","UNORDERED_LIST_ITEM_R","ORDERED_LIST_ITEM_PREFIX_R","UNORDERED_LIST_ITEM_PREFIX_R","allowInline","LIST_LOOKBEHIND_R","Priority","BLOCK_END_R","trimEnd","some","RuleType","blockRegex","BLOCKQUOTE_R","BLOCKQUOTE_TRIM_LEFT_MULTILINE_R","BLOCKQUOTE_ALERT_R","parseBlock","parseInline","anyScopeRegex","BREAK_LINE_R","captureNothing","BREAK_THEMATIC_R","CODE_BLOCK_R","unescapeString","CODE_BLOCK_FENCED_R","simpleInlineRegex","CODE_INLINE_R","FOOTNOTE_R","renderNothing","inlineRegex","FOOTNOTE_REFERENCE_R","GFM_TASK_R","HEADING_ATX_COMPLIANT_R","HEADING_R","HEADING_SETEXT_R","HTML_BLOCK_ELEMENT_R","HTML_LEFT_TRIM_AMOUNT_R","trimLeadingWhitespaceOutsideFences","DO_NOT_PROCESS_HTML_ELEMENTS","HTML_COMMENT_R","HTML_SELF_CLOSING_ELEMENT_R","CUSTOM_COMPONENT_R","parseCaptureInline","parseSimpleInline","LINK_AUTOLINK_R","startsWith","LINK_AUTOLINK_BARE_URL_R","CONSECUTIVE_NEWLINE_R","UNORDERED","REFERENCE_IMAGE_OR_LINK","REFERENCE_IMAGE_R","REFERENCE_LINK_R","NP_TABLE_R","parseTableAlign","parseTableCells","parseTableRow","SHORTCODE_R","TEXT_PLAIN_R","HTML_CHAR_CODE_R","TEXT_BOLD_R","TEXT_EMPHASIZED_R","TEXT_ESCAPED_R","TEXT_MARKED_R","TEXT_STRIKETHROUGHED_R","ATTR_EXTRACTOR_R","normalizeAttributeKey","unquote","ATTRIBUTE_TO_NODE_PROP_MAP","attributeValueToNodePropValue","TRIM_STARTING_NEWLINES","PARAGRAPH_R","parserFor","renderFor","createRenderer","FRONT_MATTER_R","SHOULD_RENDER_AS_BLOCK_R"],"sources":["../../../src/markdown/compiler.ts"],"sourcesContent":["import {\n ATTR_EXTRACTOR_R,\n ATTRIBUTE_TO_NODE_PROP_MAP,\n BLOCK_END_R,\n BLOCKQUOTE_ALERT_R,\n BLOCKQUOTE_R,\n BLOCKQUOTE_TRIM_LEFT_MULTILINE_R,\n BREAK_LINE_R,\n BREAK_THEMATIC_R,\n CODE_BLOCK_FENCED_R,\n CODE_BLOCK_R,\n CODE_INLINE_R,\n CONSECUTIVE_NEWLINE_R,\n CUSTOM_COMPONENT_R,\n DO_NOT_PROCESS_HTML_ELEMENTS,\n FOOTNOTE_R,\n FOOTNOTE_REFERENCE_R,\n FRONT_MATTER_R,\n GFM_TASK_R,\n HEADING_ATX_COMPLIANT_R,\n HEADING_R,\n HEADING_SETEXT_R,\n HTML_BLOCK_ELEMENT_R,\n HTML_CHAR_CODE_R,\n HTML_COMMENT_R,\n HTML_LEFT_TRIM_AMOUNT_R,\n HTML_SELF_CLOSING_ELEMENT_R,\n LINK_AUTOLINK_BARE_URL_R,\n LINK_AUTOLINK_R,\n LIST_LOOKBEHIND_R,\n type ListType,\n NAMED_CODES_TO_UNICODE,\n NP_TABLE_R,\n ORDERED,\n ORDERED_LIST_ITEM_PREFIX_R,\n ORDERED_LIST_ITEM_R,\n ORDERED_LIST_R,\n PARAGRAPH_R,\n Priority,\n REFERENCE_IMAGE_OR_LINK,\n REFERENCE_IMAGE_R,\n REFERENCE_LINK_R,\n RuleType,\n SHORTCODE_R,\n SHOULD_RENDER_AS_BLOCK_R,\n TEXT_BOLD_R,\n TEXT_EMPHASIZED_R,\n TEXT_ESCAPED_R,\n TEXT_MARKED_R,\n TEXT_PLAIN_R,\n TEXT_STRIKETHROUGHED_R,\n TRIM_STARTING_NEWLINES,\n UNORDERED,\n UNORDERED_LIST_ITEM_PREFIX_R,\n UNORDERED_LIST_ITEM_R,\n UNORDERED_LIST_R,\n} from './constants';\nimport { parserFor } from './parser';\nimport { createRenderer, renderFor } from './renderer';\nimport type {\n CompileOptions,\n ComponentOverrides as ComponentDefinition,\n HeadingNode,\n HTMLTag,\n MarkdownContext,\n MarkdownOptions,\n MarkdownRuntime,\n OrderedListNode,\n ParseState,\n Rule,\n Rules,\n TableNode,\n UnorderedListNode,\n} from './types';\nimport {\n allowInline,\n anyScopeRegex,\n attributeValueToNodePropValue,\n blockRegex,\n captureNothing,\n cx,\n sanitizer as defaultSanitizer,\n slugify as defaultSlugify,\n get,\n inlineRegex,\n normalizeAttributeKey,\n parseBlock,\n parseCaptureInline,\n parseInline,\n parseSimpleInline,\n parseTableAlign,\n parseTableCells,\n parseTableRow,\n renderNothing,\n simpleInlineRegex,\n some,\n startsWith,\n trimEnd,\n trimLeadingWhitespaceOutsideFences,\n unescapeString,\n unquote,\n} from './utils';\n\ntype CreateElementFunction = (\n tag: any,\n props: Record<string, any> | null,\n ...children: any[]\n) => unknown;\n\ntype FootnoteDef = { footnote: string; identifier: string };\n\nconst IMAGE_R = /^!\\[(.*?)\\]\\( *((?:\\([^)]*\\)|[^() ])*) *\"?([^)\"]*)?\"?\\)/;\nconst LINK_INSIDE =\n '(?:\\\\[[^\\\\[\\\\]]*(?:\\\\[[^\\\\[\\\\]]*\\\\][^\\\\[\\\\]]*)*\\\\]|[^\\\\[\\\\]])*';\nconst LINK_HREF_AND_TITLE =\n '\\\\s*<?((?:\\\\([^)]*\\\\)|[^\\\\s\\\\\\\\]|\\\\\\\\.)*?)>?(?:\\\\s+[\\'\"]([\\\\s\\\\S]*?)[\\'\"])?\\\\s*';\nconst LINK_R = new RegExp(\n `^\\\\[(${LINK_INSIDE})\\\\]\\\\(${LINK_HREF_AND_TITLE}\\\\)`\n);\n\nconst getTag = (tag: any, components: ComponentDefinition<any>): any => {\n if (typeof tag !== 'string') return tag;\n let override = get(components, tag);\n\n if (!override && typeof tag === 'string') {\n const lowercaseTag = tag.toLowerCase();\n // Try case-insensitive lookup\n const key = Object.keys(components).find(\n (k) => k.toLowerCase() === lowercaseTag\n );\n if (key) {\n override = get(components, key);\n }\n }\n\n if (!override) return tag;\n\n return override;\n};\n\nconst createElementFactory = (\n ctx: MarkdownContext<any>,\n options: MarkdownOptions\n): CreateElementFunction => {\n const { runtime, components = {} } = ctx;\n const filteredTags = options.tagfilter\n ? [\n 'title',\n 'textarea',\n 'style',\n 'xmp',\n 'iframe',\n 'noembed',\n 'noframes',\n 'script',\n 'plaintext',\n ]\n : [];\n\n return (\n tag: any,\n props: Record<string, any> | null,\n ...children: any[]\n ): unknown => {\n if (typeof tag === 'string' && filteredTags.includes(tag.toLowerCase())) {\n return null;\n }\n\n const isStringTag = typeof tag === 'string';\n\n const className = cx(props?.className, props?.class);\n\n const mergedProps: Record<string, any> = {};\n let classNameHandled = false;\n\n // Preserve attribute order while merging className\n if (props) {\n for (const key in props) {\n const value = props[key];\n\n if (value === undefined || value === null) continue;\n\n if (key === 'className' || key === 'class') {\n if (!classNameHandled) {\n if (className) mergedProps.className = className;\n classNameHandled = true;\n }\n } else {\n mergedProps[key] = value;\n }\n }\n }\n\n if (!classNameHandled && className) {\n mergedProps.className = className;\n }\n\n let finalProps = mergedProps;\n\n if (runtime.normalizeProps && isStringTag)\n finalProps = runtime.normalizeProps(tag as string, mergedProps);\n const component = getTag(tag, components);\n\n return runtime.createElement(\n component,\n finalProps,\n ...(children.length === 1 ? [children[0]] : children)\n );\n };\n};\n\nconst createRules = (\n createElement: CreateElementFunction,\n ctx: MarkdownContext<any>,\n options: MarkdownOptions,\n footnotes: FootnoteDef[],\n refs: Record<string, { target: string; title?: string }>,\n attrStringToMap: (tag: HTMLTag, str: string) => Record<string, any> | null,\n containsBlockSyntax: (input: string) => boolean,\n nonParagraphBlockSyntaxes: RegExp[]\n): Rules => {\n const slug = (input: string) => {\n if (process.env.NODE_ENV === 'test' && input === '中文') {\n const def = defaultSlugify(input);\n console.log('Slug check:', {\n input,\n ctxSlugify: !!ctx.slugify,\n defaultSlugifyResult: def,\n });\n }\n return ctx.slugify\n ? ctx.slugify(input, defaultSlugify)\n : defaultSlugify(input);\n };\n const sanitize = ctx.sanitizer ?? defaultSanitizer;\n const namedCodesToUnicode = ctx.namedCodesToUnicode\n ? { ...NAMED_CODES_TO_UNICODE, ...ctx.namedCodesToUnicode }\n : NAMED_CODES_TO_UNICODE;\n\n const generateListRule = (\n type: ListType\n ): Rule<OrderedListNode | UnorderedListNode> => {\n const ordered = type === ORDERED;\n const LIST_R = ordered ? ORDERED_LIST_R : UNORDERED_LIST_R;\n const LIST_ITEM_R = ordered ? ORDERED_LIST_ITEM_R : UNORDERED_LIST_ITEM_R;\n const LIST_ITEM_PREFIX_R = ordered\n ? ORDERED_LIST_ITEM_PREFIX_R\n : UNORDERED_LIST_ITEM_PREFIX_R;\n\n return {\n _qualify: (source) => LIST_ITEM_PREFIX_R.test(source),\n _match: allowInline((source, state) => {\n const isStartOfLine = LIST_LOOKBEHIND_R.exec(state.prevCapture ?? '');\n const isListAllowed = state.list ?? (!state.inline && !state.simple);\n\n if (isStartOfLine && isListAllowed) {\n const matchSource = (isStartOfLine[1] || '') + source;\n\n return LIST_R.exec(matchSource);\n }\n\n return null;\n }),\n _order: Priority.HIGH,\n _parse(capture, parse, state) {\n const bullet = capture[2];\n const startValue = ordered ? +bullet.slice(0, -1) : undefined;\n const items = capture[0]\n .replace(BLOCK_END_R, '\\n')\n .match(LIST_ITEM_R) as string[];\n\n if (!items) return { items: [], ordered, start: startValue } as any;\n\n let lastItemWasAParagraph = false;\n\n const result = items.map((item, i) => {\n const prefixCapture = LIST_ITEM_PREFIX_R.exec(item);\n const space = prefixCapture ? prefixCapture[0].length : 0;\n const spaceRegex = new RegExp(`^ {1,${space}}`, 'gm');\n const content = item\n .replace(spaceRegex, '')\n .replace(LIST_ITEM_PREFIX_R, '');\n const isLastItem = i === items.length - 1;\n const containsBlocks = content.indexOf('\\n\\n') !== -1;\n const thisItemIsAParagraph =\n containsBlocks || (isLastItem && lastItemWasAParagraph);\n lastItemWasAParagraph = thisItemIsAParagraph;\n\n const oldStateInline = state.inline;\n const oldStateList = state.list;\n state.list = true;\n\n let adjustedContent: string;\n\n if (thisItemIsAParagraph) {\n state.inline = false;\n adjustedContent = `${trimEnd(content)}\\n\\n`;\n } else {\n state.inline = true;\n adjustedContent = trimEnd(content);\n }\n\n const parsed = parse(adjustedContent, state);\n state.inline = oldStateInline;\n state.list = oldStateList;\n\n return parsed;\n });\n\n return { items: result, ordered, start: startValue } as any;\n },\n _render(node, output, state = {}) {\n const Tag = node.ordered ? 'ol' : 'ul';\n const props: Record<string, any> = { key: state.key };\n\n if (node.ordered && node.start != null) props.start = node.start;\n\n return createElement(\n Tag,\n props,\n ...node.items.map((item, i) =>\n createElement('li', { key: i }, output(item, state))\n )\n );\n },\n };\n };\n\n const matchParagraph = (\n source: string,\n state: ParseState\n ): RegExpMatchArray | null => {\n if (\n state.inline ||\n state.simple ||\n (state.inHTML &&\n source.indexOf('\\n\\n') === -1 &&\n state.prevCapture?.indexOf('\\n\\n') === -1)\n )\n return null;\n let start = 0;\n while (true) {\n const newlineIndex = source.indexOf('\\n', start);\n const line = source.slice(\n start,\n newlineIndex === -1 ? undefined : newlineIndex + 1\n );\n\n if (some(nonParagraphBlockSyntaxes, line)) break;\n\n if (newlineIndex === -1 || !line.trim()) break;\n start = newlineIndex + 1;\n }\n const match = source.slice(0, start);\n // Align with original simple-markdown behavior: capture the whole match including newlines\n\n if (match === '') return null;\n const captured = trimEnd(match);\n\n if (captured === '') return null;\n\n return [match, undefined, captured] as unknown as RegExpMatchArray;\n };\n\n const rules: Rules = {\n [RuleType.blockQuote]: {\n _qualify: ['>'],\n _match: blockRegex(BLOCKQUOTE_R),\n _order: Priority.HIGH,\n _parse(capture, parse, state) {\n const matchAlert = capture[0]\n .replace(BLOCKQUOTE_TRIM_LEFT_MULTILINE_R, '')\n .match(BLOCKQUOTE_ALERT_R);\n const alert = matchAlert?.[1];\n const content = matchAlert?.[2] ?? '';\n const hasNewline = content.indexOf('\\n') !== -1;\n const children = hasNewline\n ? parseBlock(parse, content, state)\n : parseInline(parse, content, state);\n\n return { alert, children };\n },\n _render(node, output, state = {}) {\n const props: Record<string, any> = { key: state.key };\n\n if (node.alert) {\n props.className = `markdown-alert-${slug(node.alert.toLowerCase())}`;\n node.children.unshift({\n attrs: {},\n children: [{ type: RuleType.text, text: node.alert }],\n noInnerParse: true,\n type: RuleType.htmlBlock,\n tag: 'header',\n } as any);\n }\n\n return createElement('blockquote', props, output(node.children, state));\n },\n },\n [RuleType.breakLine]: {\n _qualify: [' '],\n _match: anyScopeRegex(BREAK_LINE_R),\n _order: Priority.HIGH,\n _parse: captureNothing,\n _render(_, __, state = {}) {\n return createElement('br', { key: state.key });\n },\n },\n [RuleType.breakThematic]: {\n _qualify: ['--', '__', '**', '- ', '* ', '_ '],\n _match: blockRegex(BREAK_THEMATIC_R),\n _order: Priority.HIGH,\n _parse: captureNothing,\n _render(_, __, state = {}) {\n return createElement('hr', { key: state.key });\n },\n },\n [RuleType.codeBlock]: {\n _qualify: [' '],\n _match: blockRegex(CODE_BLOCK_R),\n _order: Priority.MAX,\n _parse(capture) {\n return {\n type: RuleType.codeBlock,\n lang: undefined,\n text: unescapeString(trimEnd(capture[0].replace(/^ {4}/gm, ''))),\n };\n },\n _render(node, _, state = {}) {\n const attrs = { ...((node as any).attrs ?? {}) } as Record<string, any>;\n const langClass = node.lang ? `lang-${node.lang}` : 'lang-plaintext';\n attrs.className = attrs.className\n ? `${attrs.className} ${langClass}`\n : langClass;\n\n if (node.lang && !attrs.lang) attrs.lang = node.lang;\n\n return createElement(\n 'pre',\n { key: state.key },\n createElement('code', attrs, node.text)\n );\n },\n },\n [RuleType.codeFenced]: {\n _qualify: ['```', '~~~'],\n _match: blockRegex(CODE_BLOCK_FENCED_R),\n _order: Priority.MAX,\n _parse(capture) {\n return {\n attrs: attrStringToMap('code', capture[3] ?? ''),\n lang: capture[2] || undefined,\n text: capture[4],\n type: RuleType.codeBlock,\n };\n },\n },\n [RuleType.codeInline]: {\n _qualify: ['`'],\n _match: simpleInlineRegex(CODE_INLINE_R),\n _order: Priority.LOW,\n _parse(capture) {\n return { text: unescapeString(capture[2]) };\n },\n _render(node, _, state = {}) {\n return createElement('code', { key: state.key }, node.text);\n },\n },\n [RuleType.footnote]: {\n _qualify: ['[^'],\n _match: blockRegex(FOOTNOTE_R),\n _order: Priority.MAX,\n _parse(capture) {\n footnotes.push({ footnote: capture[2], identifier: capture[1] });\n\n return {};\n },\n _render: renderNothing,\n },\n [RuleType.footnoteReference]: {\n _qualify: ['[^'],\n _match: inlineRegex(FOOTNOTE_REFERENCE_R),\n _order: Priority.HIGH,\n _parse(capture) {\n return { target: `#${slug(capture[1])}`, text: capture[1] };\n },\n _render(node, _, state = {}) {\n return createElement(\n 'a',\n {\n key: state.key,\n href: sanitize(node.target, 'a', 'href') ?? undefined,\n },\n createElement('sup', { key: state.key }, node.text)\n );\n },\n },\n [RuleType.gfmTask]: {\n _qualify: ['[ ]', '[x]'],\n _match: inlineRegex(GFM_TASK_R),\n _order: Priority.HIGH,\n _parse(capture) {\n return { completed: capture[1].toLowerCase() === 'x' };\n },\n _render(node, _, state = {}) {\n return createElement('input', {\n checked: node.completed,\n key: state.key,\n readOnly: true,\n type: 'checkbox',\n });\n },\n },\n [RuleType.heading]: {\n _qualify: ['#'],\n _match: blockRegex(\n options.enforceAtxHeadings ? HEADING_ATX_COMPLIANT_R : HEADING_R\n ),\n _order: Priority.HIGH,\n _parse(capture, parse, state) {\n return {\n children: parseInline(parse, capture[2], state),\n id: slug(capture[2]),\n level: capture[1].length as HeadingNode['level'],\n };\n },\n _render(node, output, state = {}) {\n return createElement(\n `h${node.level}` as HTMLTag,\n { id: node.id, key: state.key },\n output(node.children, state)\n );\n },\n },\n [RuleType.headingSetext]: {\n _qualify: (source) => {\n const nlIndex = source.indexOf('\\n');\n\n return (\n nlIndex > 0 &&\n nlIndex < source.length - 1 &&\n (source[nlIndex + 1] === '=' || source[nlIndex + 1] === '-')\n );\n },\n _match: blockRegex(HEADING_SETEXT_R),\n _order: Priority.MAX,\n _parse(capture, parse, state) {\n return {\n children: parseInline(parse, capture[1], state),\n level: capture[2] === '=' ? 1 : 2,\n type: RuleType.heading,\n };\n },\n },\n [RuleType.htmlBlock]: {\n _qualify: (source) => {\n if (options.disableParsingRawHTML) return false;\n\n const match = source.match(/^ *<([a-z][a-z0-9:-]*)\\b/i);\n if (!match) return false;\n const tag = match[1];\n\n return source.toLowerCase().indexOf(`</${tag.toLowerCase()}>`) !== -1;\n },\n _match: anyScopeRegex(HTML_BLOCK_ELEMENT_R),\n _order: Priority.HIGH,\n _parse(capture, parse, state) {\n const m = capture[3].match(HTML_LEFT_TRIM_AMOUNT_R);\n const whitespace = m?.[1] ?? '';\n const trimmed = trimLeadingWhitespaceOutsideFences(\n capture[3],\n whitespace\n );\n const parseFunc = containsBlockSyntax(trimmed)\n ? parseBlock\n : parseInline;\n const tagName = capture[1].trim();\n const noInnerParse =\n DO_NOT_PROCESS_HTML_ELEMENTS.indexOf(tagName.toLowerCase()) !== -1;\n const tag = (noInnerParse ? tagName.toLowerCase() : tagName) as HTMLTag;\n const ast: any = {\n attrs: attrStringToMap(tag, capture[2] ?? ''),\n noInnerParse,\n tag,\n };\n state.inAnchor = state.inAnchor || tagName.toLowerCase() === 'a';\n\n if (noInnerParse) {\n ast.text = capture[3];\n } else {\n const prevInHTML = state.inHTML;\n state.inHTML = true;\n ast.children = parseFunc(parse, trimmed, state);\n state.inHTML = prevInHTML;\n }\n state.inAnchor = false;\n\n return ast;\n },\n _render(node, output, state = {}) {\n return createElement(\n node.tag,\n { key: state.key, ...(node.attrs ?? {}) },\n node.text ?? (node.children ? output(node.children, state) : '')\n );\n },\n },\n [RuleType.htmlComment]: {\n _qualify: ['<!'],\n _match: anyScopeRegex(HTML_COMMENT_R),\n _order: Priority.HIGH,\n _parse: captureNothing,\n _render: renderNothing,\n },\n [RuleType.htmlSelfClosing]: {\n _qualify: (source) => {\n if (options.disableParsingRawHTML) return false;\n\n return /^ *<([a-zA-Z][a-zA-Z0-9:]*)[\\s>/]/.test(source);\n },\n _match: anyScopeRegex(HTML_SELF_CLOSING_ELEMENT_R),\n _order: Priority.HIGH,\n _parse(capture) {\n const tag = capture[1].trim() as HTMLTag;\n\n return { attrs: attrStringToMap(tag, capture[2] || ''), tag };\n },\n _render(node, _, state = {}) {\n return createElement(node.tag, {\n key: state.key,\n ...(node.attrs ?? {}),\n });\n },\n },\n [RuleType.customComponent]: {\n _qualify: (source) => /^ *<([A-Z][a-zA-Z0-9]*)/.test(source),\n _match: anyScopeRegex(CUSTOM_COMPONENT_R),\n _order: Priority.MAX,\n _parse(capture, parse, state) {\n const m = capture[3].match(HTML_LEFT_TRIM_AMOUNT_R);\n const whitespace = m?.[1] ?? '';\n const trimmed = trimLeadingWhitespaceOutsideFences(\n capture[3],\n whitespace\n );\n const parseFunc = containsBlockSyntax(trimmed)\n ? parseBlock\n : parseInline;\n const tag = capture[1].trim();\n const ast: any = {\n attrs: attrStringToMap(tag as HTMLTag, capture[2] ?? ''),\n noInnerParse: false,\n tag,\n };\n const prevInHTML = state.inHTML;\n state.inHTML = true;\n ast.children = parseFunc(parse, trimmed, state);\n state.inHTML = prevInHTML;\n\n return ast;\n },\n _render(node, output, state = {}) {\n return createElement(\n node.tag as HTMLTag,\n { key: state.key, ...(node.attrs ?? {}) },\n node.text ?? (node.children ? output(node.children, state) : '')\n );\n },\n },\n [RuleType.paragraph]: {\n _match: matchParagraph,\n _order: Priority.LOW,\n _parse: parseCaptureInline,\n _render(node, output, state = {}) {\n return createElement(\n 'p',\n { key: state.key },\n output(node.children, state)\n );\n },\n },\n [RuleType.image]: {\n _qualify: ['!['],\n _match: simpleInlineRegex(IMAGE_R),\n _order: Priority.HIGH,\n _parse(capture) {\n return {\n alt: unescapeString(capture[1]),\n target: unescapeString(capture[2]),\n title: unescapeString(capture[3]),\n };\n },\n _render(node, _, state = {}) {\n return createElement('img', {\n key: state.key,\n alt: node.alt ?? undefined,\n title: node.title ?? undefined,\n src: sanitize(node.target, 'img', 'src') ?? undefined,\n });\n },\n },\n [RuleType.link]: {\n _qualify: ['['],\n _match: inlineRegex(LINK_R),\n _order: Priority.LOW,\n _parse(capture, parse, state) {\n return {\n children: parseSimpleInline(parse, capture[1], state),\n target: unescapeString(capture[2]),\n title: unescapeString(capture[3]),\n };\n },\n _render(node, output, state = {}) {\n const sanitizedHref = sanitize(node.target, 'a', 'href');\n if (\n process.env.NODE_ENV === 'test' &&\n node.target.includes('javascript:')\n ) {\n console.log('Compiler sanitize result:', {\n target: node.target,\n sanitizedHref,\n finalHref: sanitizedHref ?? undefined,\n });\n }\n return createElement(\n 'a',\n {\n key: state.key,\n href: sanitizedHref ?? undefined,\n title: node.title ?? undefined,\n },\n output(node.children, state)\n );\n },\n },\n [RuleType.linkAngleBraceStyleDetector]: {\n _qualify: ['<'],\n _match: inlineRegex(LINK_AUTOLINK_R),\n _order: Priority.MAX,\n _parse(capture) {\n let target = capture[1];\n let isEmail = false;\n\n if (target.indexOf('@') !== -1 && target.indexOf('//') === -1) {\n isEmail = true;\n target = target.replace('mailto:', '');\n }\n\n return {\n children: [{ text: target, type: RuleType.text }],\n target: isEmail ? `mailto:${target}` : target,\n type: RuleType.link,\n };\n },\n },\n [RuleType.linkBareUrlDetector]: {\n _qualify: (source, state) =>\n !!(\n state.inline &&\n !state.inAnchor &&\n !options.disableAutoLink &&\n (startsWith(source, 'http://') || startsWith(source, 'https://'))\n ),\n _match: inlineRegex(LINK_AUTOLINK_BARE_URL_R),\n _order: Priority.MAX,\n _parse(capture) {\n return {\n children: [{ text: capture[1], type: RuleType.text }],\n target: capture[1],\n type: RuleType.link,\n };\n },\n },\n [RuleType.newlineCoalescer]: {\n _match: blockRegex(CONSECUTIVE_NEWLINE_R),\n _order: Priority.LOW,\n _parse: captureNothing,\n _render() {\n return '\\n';\n },\n },\n [RuleType.orderedList]: generateListRule(ORDERED),\n [RuleType.unorderedList]: generateListRule(UNORDERED),\n [RuleType.ref]: {\n _qualify: ['['],\n _match: anyScopeRegex(REFERENCE_IMAGE_OR_LINK),\n _order: Priority.MAX,\n _parse(capture) {\n refs[capture[1]] = { target: capture[2], title: capture[4] };\n\n return {};\n },\n _render: renderNothing,\n },\n [RuleType.refImage]: {\n _qualify: ['!['],\n _match: simpleInlineRegex(REFERENCE_IMAGE_R),\n _order: Priority.MAX,\n _parse(capture) {\n return {\n alt: capture[1] ? unescapeString(capture[1]) : undefined,\n ref: capture[2],\n };\n },\n _render(node, _, state = {}) {\n const ref = refs[node.ref];\n\n if (!ref) return null;\n\n return createElement('img', {\n key: state.key,\n alt: node.alt,\n src: sanitize(ref.target, 'img', 'src') ?? undefined,\n title: ref.title,\n });\n },\n },\n [RuleType.refLink]: {\n _qualify: (source) => source[0] === '[' && source.indexOf('](') === -1,\n _match: inlineRegex(REFERENCE_LINK_R),\n _order: Priority.MAX,\n _parse(capture, parse, state) {\n return {\n children: parseSimpleInline(parse, capture[1], state),\n fallbackChildren: capture[0],\n ref: capture[2],\n };\n },\n _render(node, output, state = {}) {\n const ref = refs[node.ref];\n\n if (!ref)\n return createElement(\n 'span',\n { key: state.key },\n node.fallbackChildren\n );\n\n return createElement(\n 'a',\n {\n key: state.key,\n href: sanitize(ref.target, 'a', 'href') ?? undefined,\n title: ref.title,\n },\n output(node.children, state)\n );\n },\n },\n [RuleType.table]: {\n _qualify: ['|'],\n _match: blockRegex(NP_TABLE_R),\n _order: Priority.HIGH,\n _parse(capture, parse, state) {\n state.inline = true;\n const align = capture[2] ? parseTableAlign(capture[2]) : [];\n const cells = capture[3]\n ? parseTableCells(capture[3], parse, state)\n : [];\n const header = parseTableRow(capture[1], parse, state, !!cells.length);\n state.inline = false;\n\n return cells.length\n ? { align, cells, header, type: RuleType.table }\n : { children: header.flat(), type: RuleType.paragraph };\n },\n _render(node, output, state = {}) {\n const table = node as TableNode;\n const getStyle = (i: number) =>\n table.align[i] ? { textAlign: table.align[i] } : {};\n\n return createElement(\n 'table',\n { key: state.key },\n createElement(\n 'thead',\n null,\n createElement(\n 'tr',\n null,\n ...table.header.map((c, i) =>\n createElement(\n 'th',\n { key: i, style: getStyle(i) },\n output(c, state)\n )\n )\n )\n ),\n createElement(\n 'tbody',\n null,\n ...table.cells.map((row, i) =>\n createElement(\n 'tr',\n { key: i },\n ...row.map((c, j) =>\n createElement(\n 'td',\n { key: j, style: getStyle(j) },\n output(c, state)\n )\n )\n )\n )\n )\n );\n },\n },\n [RuleType.tableSeparator]: {\n _match: (source, state) =>\n state.inTable && source[0] === '|' ? /^\\|/.exec(source) : null,\n _order: Priority.HIGH,\n _parse() {\n return { type: RuleType.tableSeparator };\n },\n _render() {\n return ' | ';\n },\n },\n [RuleType.text]: {\n _match: allowInline((source, _state) => {\n const shortMatch = SHORTCODE_R.exec(source);\n\n if (shortMatch) return shortMatch;\n\n return TEXT_PLAIN_R.exec(source) || /^[\\s\\S]/.exec(source);\n }),\n _order: Priority.MIN,\n _parse(capture) {\n const text = capture[0];\n\n return {\n text:\n text.indexOf('&') === -1\n ? text\n : text.replace(\n HTML_CHAR_CODE_R,\n (f, i) => namedCodesToUnicode[i] || f\n ),\n };\n },\n _render(node) {\n return node.text;\n },\n },\n [RuleType.textBolded]: {\n _qualify: ['**', '__'],\n _match: simpleInlineRegex(TEXT_BOLD_R),\n _order: Priority.MED,\n _parse(capture, parse, state) {\n return { children: parse(capture[2], state) };\n },\n _render(node, output, state = {}) {\n return createElement(\n 'strong',\n { key: state.key },\n output(node.children, state)\n );\n },\n },\n [RuleType.textEmphasized]: {\n _qualify: ['*', '_'],\n _match: simpleInlineRegex(TEXT_EMPHASIZED_R),\n _order: Priority.LOW,\n _parse(capture, parse, state) {\n return { children: parse(capture[2], state) };\n },\n _render(node, output, state = {}) {\n return createElement(\n 'em',\n { key: state.key },\n output(node.children, state)\n );\n },\n },\n [RuleType.textEscaped]: {\n _qualify: ['\\\\'],\n _match: simpleInlineRegex(TEXT_ESCAPED_R),\n _order: Priority.HIGH,\n _parse(capture) {\n return { text: capture[1], type: RuleType.text };\n },\n },\n [RuleType.textMarked]: {\n _qualify: ['=='],\n _match: simpleInlineRegex(TEXT_MARKED_R),\n _order: Priority.LOW,\n _parse: parseCaptureInline,\n _render(node, output, state = {}) {\n return createElement(\n 'mark',\n { key: state.key },\n output(node.children, state)\n );\n },\n },\n [RuleType.textStrikethroughed]: {\n _qualify: ['~~'],\n _match: simpleInlineRegex(TEXT_STRIKETHROUGHED_R),\n _order: Priority.LOW,\n _parse: parseCaptureInline,\n _render(node, output, state = {}) {\n return createElement(\n 'del',\n { key: state.key },\n output(node.children, state)\n );\n },\n },\n };\n\n return rules;\n};\n\n// Removed compilerCache completely to avoid issues with props changes not invalidating cache\n// const compilerCache = new Map<string, unknown>();\n\nexport const compile = (\n markdown: string = '',\n ctx: MarkdownContext<any>,\n options: MarkdownOptions = {}\n): unknown => {\n // const cacheKey = JSON.stringify({\n // markdown,\n // options,\n // components: ctx.components ? Object.keys(ctx.components) : [],\n // });\n\n // if (compilerCache.has(cacheKey)) {\n // return compilerCache.get(cacheKey);\n // }\n\n const components = ctx.components ?? {};\n const slug = (input: string) => {\n if (process.env.NODE_ENV === 'test' && input === '中文') {\n const def = defaultSlugify(input);\n console.log('Slug check:', {\n input,\n ctxSlugify: !!ctx.slugify,\n defaultSlugifyResult: def,\n });\n }\n return ctx.slugify\n ? ctx.slugify(input, defaultSlugify)\n : defaultSlugify(input);\n };\n const createElement = createElementFactory(ctx, options);\n const footnotes: FootnoteDef[] = [];\n const refs: Record<string, { target: string; title?: string }> = {};\n\n const attrStringToMap = (\n tag: HTMLTag,\n str: string\n ): Record<string, any> | null => {\n if (!str || !str.trim()) return null;\n const attributes = str.match(ATTR_EXTRACTOR_R);\n\n if (!attributes) return null;\n\n return attributes.reduce((map: any, raw) => {\n const delimiterIdx = raw.indexOf('=');\n\n if (delimiterIdx !== -1) {\n const key = normalizeAttributeKey(raw.slice(0, delimiterIdx)).trim();\n const value = unquote(raw.slice(delimiterIdx + 1).trim());\n const mappedKey = ATTRIBUTE_TO_NODE_PROP_MAP[key] ?? key;\n\n if (mappedKey === 'ref') return map;\n map[mappedKey] = attributeValueToNodePropValue(\n tag,\n key,\n value,\n ctx.sanitizer ?? defaultSanitizer\n );\n\n if (\n typeof map[mappedKey] === 'string' &&\n (HTML_BLOCK_ELEMENT_R.test(map[mappedKey]) ||\n HTML_SELF_CLOSING_ELEMENT_R.test(map[mappedKey]))\n ) {\n map[mappedKey] = compileInner(map[mappedKey].trim());\n }\n } else if (raw !== 'style') {\n map[ATTRIBUTE_TO_NODE_PROP_MAP[raw] ?? raw] = true;\n }\n\n return map;\n }, {});\n };\n\n const nonParagraphBlockSyntaxes = [\n BLOCKQUOTE_R,\n CODE_BLOCK_FENCED_R,\n CODE_BLOCK_R,\n options.enforceAtxHeadings ? HEADING_ATX_COMPLIANT_R : HEADING_R,\n HEADING_SETEXT_R,\n NP_TABLE_R,\n ORDERED_LIST_R,\n UNORDERED_LIST_R,\n CUSTOM_COMPONENT_R,\n ];\n\n const containsBlockSyntax = (input: string): boolean => {\n const cleaned = input.replace(TRIM_STARTING_NEWLINES, '');\n const slice = cleaned.length > 2048 ? cleaned.slice(0, 2048) : cleaned;\n const syntaxes = options.disableParsingRawHTML\n ? nonParagraphBlockSyntaxes\n : [\n ...nonParagraphBlockSyntaxes,\n PARAGRAPH_R,\n HTML_BLOCK_ELEMENT_R,\n HTML_COMMENT_R,\n HTML_SELF_CLOSING_ELEMENT_R,\n CUSTOM_COMPONENT_R,\n ];\n\n return some(syntaxes as RegExp[], slice);\n };\n\n const baseRules = createRules(\n createElement,\n ctx,\n options,\n footnotes,\n refs,\n attrStringToMap,\n containsBlockSyntax,\n nonParagraphBlockSyntaxes\n );\n\n const rules = options.disableParsingRawHTML\n ? Object.keys(baseRules).reduce((acc, key) => {\n if (key !== RuleType.htmlBlock && key !== RuleType.htmlSelfClosing) {\n acc[key] = baseRules[key];\n }\n\n return acc;\n }, {} as Rules)\n : baseRules;\n\n const parser = parserFor(rules);\n const emitter = renderFor(createRenderer(rules, options.renderRule));\n\n const compileInner = (input: string): unknown => {\n const result = options.preserveFrontmatter\n ? input\n : input.replace(FRONT_MATTER_R, '');\n const inline =\n options.forceInline ||\n (!options.forceBlock &&\n SHOULD_RENDER_AS_BLOCK_R.test(\n result.replace(TRIM_STARTING_NEWLINES, '')\n ) === false);\n const arr = emitter(\n parser(\n inline\n ? result\n : `${trimEnd(result).replace(TRIM_STARTING_NEWLINES, '')}\\n\\n`,\n { inline }\n ),\n { inline }\n ) as unknown as any[];\n while (\n typeof arr[arr.length - 1] === 'string' &&\n !arr[arr.length - 1].trim()\n )\n arr.pop();\n\n if (options.wrapper === null) return arr;\n const wrapper = options.wrapper ?? (inline ? 'span' : 'div');\n\n if (arr.length > 1 || options.forceWrapper)\n return createElement(wrapper, { key: 'outer' }, arr);\n\n if (arr.length === 1) {\n const node = arr[0];\n\n if (typeof node === 'string') {\n const spanProps: Record<string, any> = { key: 'outer' };\n\n if (!inline && components) {\n const pOverrideProps = (get(components, 'p.props', {}) ??\n {}) as Record<string, any>;\n const mergedClassName = cx(\n spanProps.className,\n pOverrideProps.className\n );\n const finalSpanProps: Record<string, any> = {\n ...spanProps,\n ...pOverrideProps,\n };\n\n if (mergedClassName) finalSpanProps.className = mergedClassName;\n\n return createElement('span', finalSpanProps, node);\n }\n\n return createElement('span', spanProps, node);\n }\n\n return node;\n }\n\n return createElement(wrapper, { key: 'outer' }, null);\n };\n\n if (typeof markdown !== 'string') {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n 'intlayer: the first argument must be a string. Received',\n typeof markdown\n );\n }\n throw new Error('intlayer: the first argument must be a string');\n }\n\n const node = compileInner(markdown);\n\n const result = footnotes.length\n ? createElement(\n 'div',\n null,\n node,\n createElement(\n 'footer',\n { key: 'footer' },\n ...footnotes.map((def) =>\n createElement(\n 'div',\n { id: slug(def.identifier), key: def.identifier },\n def.identifier,\n emitter(parser(def.footnote, { inline: true }), { inline: true })\n )\n )\n )\n )\n : node;\n\n // compilerCache.set(cacheKey, result);\n\n return result;\n};\n\nexport const createCompiler =\n (ctx: MarkdownContext<any>) =>\n (markdown: string, options?: MarkdownOptions): unknown =>\n compile(markdown, ctx, options);\n\nexport const compileWithOptions = (\n markdown: string,\n runtime: MarkdownRuntime,\n options: CompileOptions<any> = {}\n): unknown => {\n const {\n components,\n namedCodesToUnicode,\n sanitizer,\n slugify,\n ...compilerOptions\n } = options;\n\n return compile(\n markdown,\n { runtime, components, namedCodesToUnicode, sanitizer, slugify },\n compilerOptions\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"compiler.cjs","names":["get","cx","defaultSlugify","defaultSanitizer","NAMED_CODES_TO_UNICODE","ORDERED","ORDERED_LIST_R","UNORDERED_LIST_R","ORDERED_LIST_ITEM_R","UNORDERED_LIST_ITEM_R","ORDERED_LIST_ITEM_PREFIX_R","UNORDERED_LIST_ITEM_PREFIX_R","allowInline","LIST_LOOKBEHIND_R","Priority","BLOCK_END_R","trimEnd","some","RuleType","blockRegex","BLOCKQUOTE_R","BLOCKQUOTE_TRIM_LEFT_MULTILINE_R","BLOCKQUOTE_ALERT_R","parseBlock","parseInline","anyScopeRegex","BREAK_LINE_R","captureNothing","BREAK_THEMATIC_R","CODE_BLOCK_R","unescapeString","CODE_BLOCK_FENCED_R","simpleInlineRegex","CODE_INLINE_R","FOOTNOTE_R","renderNothing","inlineRegex","FOOTNOTE_REFERENCE_R","GFM_TASK_R","HEADING_ATX_COMPLIANT_R","HEADING_R","HEADING_SETEXT_R","HTML_BLOCK_ELEMENT_R","HTML_LEFT_TRIM_AMOUNT_R","trimLeadingWhitespaceOutsideFences","DO_NOT_PROCESS_HTML_ELEMENTS","HTML_COMMENT_R","HTML_SELF_CLOSING_ELEMENT_R","CUSTOM_COMPONENT_R","parseCaptureInline","parseSimpleInline","LINK_AUTOLINK_R","startsWith","LINK_AUTOLINK_BARE_URL_R","CONSECUTIVE_NEWLINE_R","UNORDERED","REFERENCE_IMAGE_OR_LINK","REFERENCE_IMAGE_R","REFERENCE_LINK_R","NP_TABLE_R","parseTableAlign","parseTableCells","parseTableRow","SHORTCODE_R","TEXT_PLAIN_R","HTML_CHAR_CODE_R","TEXT_BOLD_R","TEXT_EMPHASIZED_R","TEXT_ESCAPED_R","TEXT_MARKED_R","TEXT_STRIKETHROUGHED_R","ATTR_EXTRACTOR_R","normalizeAttributeKey","unquote","ATTRIBUTE_TO_NODE_PROP_MAP","attributeValueToNodePropValue","TRIM_STARTING_NEWLINES","PARAGRAPH_R","parserFor","renderFor","createRenderer","FRONT_MATTER_R","SHOULD_RENDER_AS_BLOCK_R"],"sources":["../../../src/markdown/compiler.ts"],"sourcesContent":["import {\n ATTR_EXTRACTOR_R,\n ATTRIBUTE_TO_NODE_PROP_MAP,\n BLOCK_END_R,\n BLOCKQUOTE_ALERT_R,\n BLOCKQUOTE_R,\n BLOCKQUOTE_TRIM_LEFT_MULTILINE_R,\n BREAK_LINE_R,\n BREAK_THEMATIC_R,\n CODE_BLOCK_FENCED_R,\n CODE_BLOCK_R,\n CODE_INLINE_R,\n CONSECUTIVE_NEWLINE_R,\n CUSTOM_COMPONENT_R,\n DO_NOT_PROCESS_HTML_ELEMENTS,\n FOOTNOTE_R,\n FOOTNOTE_REFERENCE_R,\n FRONT_MATTER_R,\n GFM_TASK_R,\n HEADING_ATX_COMPLIANT_R,\n HEADING_R,\n HEADING_SETEXT_R,\n HTML_BLOCK_ELEMENT_R,\n HTML_CHAR_CODE_R,\n HTML_COMMENT_R,\n HTML_LEFT_TRIM_AMOUNT_R,\n HTML_SELF_CLOSING_ELEMENT_R,\n LINK_AUTOLINK_BARE_URL_R,\n LINK_AUTOLINK_R,\n LIST_LOOKBEHIND_R,\n type ListType,\n NAMED_CODES_TO_UNICODE,\n NP_TABLE_R,\n ORDERED,\n ORDERED_LIST_ITEM_PREFIX_R,\n ORDERED_LIST_ITEM_R,\n ORDERED_LIST_R,\n PARAGRAPH_R,\n Priority,\n REFERENCE_IMAGE_OR_LINK,\n REFERENCE_IMAGE_R,\n REFERENCE_LINK_R,\n RuleType,\n SHORTCODE_R,\n SHOULD_RENDER_AS_BLOCK_R,\n TEXT_BOLD_R,\n TEXT_EMPHASIZED_R,\n TEXT_ESCAPED_R,\n TEXT_MARKED_R,\n TEXT_PLAIN_R,\n TEXT_STRIKETHROUGHED_R,\n TRIM_STARTING_NEWLINES,\n UNORDERED,\n UNORDERED_LIST_ITEM_PREFIX_R,\n UNORDERED_LIST_ITEM_R,\n UNORDERED_LIST_R,\n} from './constants';\nimport { parserFor } from './parser';\nimport { createRenderer, renderFor } from './renderer';\nimport type {\n CompileOptions,\n ComponentOverrides as ComponentDefinition,\n HeadingNode,\n HTMLTag,\n MarkdownContext,\n MarkdownOptions,\n MarkdownRuntime,\n OrderedListNode,\n ParseState,\n Rule,\n Rules,\n TableNode,\n UnorderedListNode,\n} from './types';\nimport {\n allowInline,\n anyScopeRegex,\n attributeValueToNodePropValue,\n blockRegex,\n captureNothing,\n cx,\n sanitizer as defaultSanitizer,\n slugify as defaultSlugify,\n get,\n inlineRegex,\n normalizeAttributeKey,\n parseBlock,\n parseCaptureInline,\n parseInline,\n parseSimpleInline,\n parseTableAlign,\n parseTableCells,\n parseTableRow,\n renderNothing,\n simpleInlineRegex,\n some,\n startsWith,\n trimEnd,\n trimLeadingWhitespaceOutsideFences,\n unescapeString,\n unquote,\n} from './utils';\n\ntype CreateElementFunction = (\n tag: any,\n props: Record<string, any> | null,\n ...children: any[]\n) => unknown;\n\ntype FootnoteDef = { footnote: string; identifier: string };\n\nconst IMAGE_R = /^!\\[(.*?)\\]\\( *((?:\\([^)]*\\)|[^() ])*) *\"?([^)\"]*)?\"?\\)/;\nconst LINK_INSIDE =\n '(?:\\\\[[^\\\\[\\\\]]*(?:\\\\[[^\\\\[\\\\]]*\\\\][^\\\\[\\\\]]*)*\\\\]|[^\\\\[\\\\]])*';\nconst LINK_HREF_AND_TITLE =\n '\\\\s*<?((?:\\\\([^)]*\\\\)|[^\\\\s\\\\\\\\]|\\\\\\\\.)*?)>?(?:\\\\s+[\\'\"]([\\\\s\\\\S]*?)[\\'\"])?\\\\s*';\nconst LINK_R = new RegExp(\n `^\\\\[(${LINK_INSIDE})\\\\]\\\\(${LINK_HREF_AND_TITLE}\\\\)`\n);\n\nconst getTag = (tag: any, components: ComponentDefinition<any>): any => {\n if (typeof tag !== 'string') return tag;\n let override = get(components, tag);\n\n if (!override && typeof tag === 'string') {\n const lowercaseTag = tag.toLowerCase();\n // Try case-insensitive lookup\n const key = Object.keys(components).find(\n (k) => k.toLowerCase() === lowercaseTag\n );\n if (key) {\n override = get(components, key);\n }\n }\n\n if (!override) return tag;\n\n return override;\n};\n\nconst createElementFactory = (\n ctx: MarkdownContext<any>,\n options: MarkdownOptions\n): CreateElementFunction => {\n const { runtime, components = {} } = ctx;\n const filteredTags = options.tagfilter\n ? [\n 'title',\n 'textarea',\n 'style',\n 'xmp',\n 'iframe',\n 'noembed',\n 'noframes',\n 'script',\n 'plaintext',\n ]\n : [];\n\n return (\n tag: any,\n props: Record<string, any> | null,\n ...children: any[]\n ): unknown => {\n if (typeof tag === 'string' && filteredTags.includes(tag.toLowerCase())) {\n return null;\n }\n\n const isStringTag = typeof tag === 'string';\n\n const className = cx(props?.className, props?.class);\n\n const mergedProps: Record<string, any> = {};\n let classNameHandled = false;\n\n // Preserve attribute order while merging className\n if (props) {\n for (const key in props) {\n const value = props[key];\n\n if (value === undefined || value === null) continue;\n\n if (key === 'className' || key === 'class') {\n if (!classNameHandled) {\n if (className) mergedProps.className = className;\n classNameHandled = true;\n }\n } else {\n mergedProps[key] = value;\n }\n }\n }\n\n if (!classNameHandled && className) {\n mergedProps.className = className;\n }\n\n let finalProps = mergedProps;\n\n if (runtime.normalizeProps && isStringTag)\n finalProps = runtime.normalizeProps(tag as string, mergedProps);\n const component = getTag(tag, components);\n\n return runtime.createElement(\n component,\n finalProps,\n ...(children.length === 1 ? [children[0]] : children)\n );\n };\n};\n\nconst createRules = (\n createElement: CreateElementFunction,\n ctx: MarkdownContext<any>,\n options: MarkdownOptions,\n footnotes: FootnoteDef[],\n refs: Record<string, { target: string; title?: string }>,\n attrStringToMap: (tag: HTMLTag, str: string) => Record<string, any> | null,\n containsBlockSyntax: (input: string) => boolean,\n nonParagraphBlockSyntaxes: RegExp[]\n): Rules => {\n const slug = (input: string) => {\n if (process.env.NODE_ENV === 'test' && input === '中文') {\n const def = defaultSlugify(input);\n console.log('Slug check:', {\n input,\n ctxSlugify: !!ctx.slugify,\n defaultSlugifyResult: def,\n });\n }\n return ctx.slugify\n ? ctx.slugify(input, defaultSlugify)\n : defaultSlugify(input);\n };\n const sanitize = ctx.sanitizer ?? defaultSanitizer;\n const namedCodesToUnicode = ctx.namedCodesToUnicode\n ? { ...NAMED_CODES_TO_UNICODE, ...ctx.namedCodesToUnicode }\n : NAMED_CODES_TO_UNICODE;\n\n const generateListRule = (\n type: ListType\n ): Rule<OrderedListNode | UnorderedListNode> => {\n const ordered = type === ORDERED;\n const LIST_R = ordered ? ORDERED_LIST_R : UNORDERED_LIST_R;\n const LIST_ITEM_R = ordered ? ORDERED_LIST_ITEM_R : UNORDERED_LIST_ITEM_R;\n const LIST_ITEM_PREFIX_R = ordered\n ? ORDERED_LIST_ITEM_PREFIX_R\n : UNORDERED_LIST_ITEM_PREFIX_R;\n\n return {\n _qualify: (source) => LIST_ITEM_PREFIX_R.test(source),\n _match: allowInline((source, state) => {\n const isStartOfLine = LIST_LOOKBEHIND_R.exec(state.prevCapture ?? '');\n const isListAllowed = state.list ?? (!state.inline && !state.simple);\n\n if (isStartOfLine && isListAllowed) {\n const matchSource = (isStartOfLine[1] || '') + source;\n\n return LIST_R.exec(matchSource);\n }\n\n return null;\n }),\n _order: Priority.HIGH,\n _parse(capture, parse, state) {\n const bullet = capture[2];\n const startValue = ordered ? +bullet.slice(0, -1) : undefined;\n const items = capture[0]\n .replace(BLOCK_END_R, '\\n')\n .match(LIST_ITEM_R) as string[];\n\n if (!items) return { items: [], ordered, start: startValue } as any;\n\n let lastItemWasAParagraph = false;\n\n const result = items.map((item, i) => {\n const prefixCapture = LIST_ITEM_PREFIX_R.exec(item);\n const space = prefixCapture ? prefixCapture[0].length : 0;\n const spaceRegex = new RegExp(`^ {1,${space}}`, 'gm');\n const content = item\n .replace(spaceRegex, '')\n .replace(LIST_ITEM_PREFIX_R, '');\n const isLastItem = i === items.length - 1;\n const containsBlocks = content.indexOf('\\n\\n') !== -1;\n const thisItemIsAParagraph =\n containsBlocks || (isLastItem && lastItemWasAParagraph);\n lastItemWasAParagraph = thisItemIsAParagraph;\n\n const oldStateInline = state.inline;\n const oldStateList = state.list;\n state.list = true;\n\n let adjustedContent: string;\n\n if (thisItemIsAParagraph) {\n state.inline = false;\n adjustedContent = `${trimEnd(content)}\\n\\n`;\n } else {\n state.inline = true;\n adjustedContent = trimEnd(content);\n }\n\n const parsed = parse(adjustedContent, state);\n state.inline = oldStateInline;\n state.list = oldStateList;\n\n return parsed;\n });\n\n return { items: result, ordered, start: startValue } as any;\n },\n _render(node, output, state = {}) {\n const Tag = node.ordered ? 'ol' : 'ul';\n const props: Record<string, any> = { key: state.key };\n\n if (node.ordered && node.start != null) props.start = node.start;\n\n return createElement(\n Tag,\n props,\n ...node.items.map((item, i) =>\n createElement('li', { key: i }, output(item, state))\n )\n );\n },\n };\n };\n\n const matchParagraph = (\n source: string,\n state: ParseState\n ): RegExpMatchArray | null => {\n if (\n state.inline ||\n state.simple ||\n (state.inHTML &&\n source.indexOf('\\n\\n') === -1 &&\n state.prevCapture?.indexOf('\\n\\n') === -1)\n )\n return null;\n let start = 0;\n while (true) {\n const newlineIndex = source.indexOf('\\n', start);\n const line = source.slice(\n start,\n newlineIndex === -1 ? undefined : newlineIndex + 1\n );\n\n if (some(nonParagraphBlockSyntaxes, line)) break;\n\n if (newlineIndex === -1 || !line.trim()) break;\n start = newlineIndex + 1;\n }\n const match = source.slice(0, start);\n // Align with original simple-markdown behavior: capture the whole match including newlines\n\n if (match === '') return null;\n const captured = trimEnd(match);\n\n if (captured === '') return null;\n\n return [match, undefined, captured] as unknown as RegExpMatchArray;\n };\n\n const rules: Rules = {\n [RuleType.blockQuote]: {\n _qualify: ['>'],\n _match: blockRegex(BLOCKQUOTE_R),\n _order: Priority.HIGH,\n _parse(capture, parse, state) {\n const matchAlert = capture[0]\n .replace(BLOCKQUOTE_TRIM_LEFT_MULTILINE_R, '')\n .match(BLOCKQUOTE_ALERT_R);\n const alert = matchAlert?.[1];\n const content = matchAlert?.[2] ?? '';\n const hasNewline = content.indexOf('\\n') !== -1;\n const children = hasNewline\n ? parseBlock(parse, content, state)\n : parseInline(parse, content, state);\n\n return { alert, children };\n },\n _render(node, output, state = {}) {\n const props: Record<string, any> = { key: state.key };\n\n if (node.alert) {\n props.className = `markdown-alert-${slug(node.alert.toLowerCase())}`;\n node.children.unshift({\n attrs: {},\n children: [{ type: RuleType.text, text: node.alert }],\n noInnerParse: true,\n type: RuleType.htmlBlock,\n tag: 'header',\n } as any);\n }\n\n return createElement('blockquote', props, output(node.children, state));\n },\n },\n [RuleType.breakLine]: {\n _qualify: [' '],\n _match: anyScopeRegex(BREAK_LINE_R),\n _order: Priority.HIGH,\n _parse: captureNothing,\n _render(_, __, state = {}) {\n return createElement('br', { key: state.key });\n },\n },\n [RuleType.breakThematic]: {\n _qualify: ['--', '__', '**', '- ', '* ', '_ '],\n _match: blockRegex(BREAK_THEMATIC_R),\n _order: Priority.HIGH,\n _parse: captureNothing,\n _render(_, __, state = {}) {\n return createElement('hr', { key: state.key });\n },\n },\n [RuleType.codeBlock]: {\n _qualify: [' '],\n _match: blockRegex(CODE_BLOCK_R),\n _order: Priority.MAX,\n _parse(capture) {\n return {\n type: RuleType.codeBlock,\n lang: undefined,\n text: unescapeString(trimEnd(capture[0].replace(/^ {4}/gm, ''))),\n };\n },\n _render(node, _, state = {}) {\n const attrs = { ...((node as any).attrs ?? {}) } as Record<string, any>;\n const langClass = node.lang ? `lang-${node.lang}` : 'lang-plaintext';\n attrs.className = attrs.className\n ? `${attrs.className} ${langClass}`\n : langClass;\n\n if (node.lang && !attrs.lang) attrs.lang = node.lang;\n\n return createElement(\n 'pre',\n { key: state.key },\n createElement('code', attrs, node.text)\n );\n },\n },\n [RuleType.codeFenced]: {\n _qualify: ['```', '~~~'],\n _match: blockRegex(CODE_BLOCK_FENCED_R),\n _order: Priority.MAX,\n _parse(capture) {\n return {\n attrs: attrStringToMap('code', capture[3] ?? ''),\n lang: capture[2] || undefined,\n text: capture[4],\n type: RuleType.codeBlock,\n };\n },\n },\n [RuleType.codeInline]: {\n _qualify: ['`'],\n _match: simpleInlineRegex(CODE_INLINE_R),\n _order: Priority.LOW,\n _parse(capture) {\n return { text: unescapeString(capture[2]) };\n },\n _render(node, _, state = {}) {\n return createElement('code', { key: state.key }, node.text);\n },\n },\n [RuleType.footnote]: {\n _qualify: ['[^'],\n _match: blockRegex(FOOTNOTE_R),\n _order: Priority.MAX,\n _parse(capture) {\n footnotes.push({ footnote: capture[2], identifier: capture[1] });\n\n return {};\n },\n _render: renderNothing,\n },\n [RuleType.footnoteReference]: {\n _qualify: ['[^'],\n _match: inlineRegex(FOOTNOTE_REFERENCE_R),\n _order: Priority.HIGH,\n _parse(capture) {\n return { target: `#${slug(capture[1])}`, text: capture[1] };\n },\n _render(node, _, state = {}) {\n return createElement(\n 'a',\n {\n key: state.key,\n href: sanitize(node.target, 'a', 'href') ?? undefined,\n },\n createElement('sup', { key: state.key }, node.text)\n );\n },\n },\n [RuleType.gfmTask]: {\n _qualify: ['[ ]', '[x]'],\n _match: inlineRegex(GFM_TASK_R),\n _order: Priority.HIGH,\n _parse(capture) {\n return { completed: capture[1].toLowerCase() === 'x' };\n },\n _render(node, _, state = {}) {\n return createElement('input', {\n checked: node.completed,\n key: state.key,\n readOnly: true,\n type: 'checkbox',\n });\n },\n },\n [RuleType.heading]: {\n _qualify: ['#'],\n _match: blockRegex(\n options.enforceAtxHeadings ? HEADING_ATX_COMPLIANT_R : HEADING_R\n ),\n _order: Priority.HIGH,\n _parse(capture, parse, state) {\n return {\n children: parseInline(parse, capture[2], state),\n id: slug(capture[2]),\n level: capture[1].length as HeadingNode['level'],\n };\n },\n _render(node, output, state = {}) {\n return createElement(\n `h${node.level}` as HTMLTag,\n { id: node.id, key: state.key },\n output(node.children, state)\n );\n },\n },\n [RuleType.headingSetext]: {\n _qualify: (source) => {\n const nlIndex = source.indexOf('\\n');\n\n return (\n nlIndex > 0 &&\n nlIndex < source.length - 1 &&\n (source[nlIndex + 1] === '=' || source[nlIndex + 1] === '-')\n );\n },\n _match: blockRegex(HEADING_SETEXT_R),\n _order: Priority.MAX,\n _parse(capture, parse, state) {\n return {\n children: parseInline(parse, capture[1], state),\n level: capture[2] === '=' ? 1 : 2,\n type: RuleType.heading,\n };\n },\n },\n [RuleType.htmlBlock]: {\n _qualify: (source) => {\n if (options.disableParsingRawHTML) return false;\n\n const match = source.match(/^ *<([a-z][a-z0-9:-]*)\\b/i);\n if (!match) return false;\n const tag = match[1];\n\n return source.toLowerCase().indexOf(`</${tag.toLowerCase()}>`) !== -1;\n },\n _match: anyScopeRegex(HTML_BLOCK_ELEMENT_R),\n _order: Priority.HIGH,\n _parse(capture, parse, state) {\n const m = capture[3].match(HTML_LEFT_TRIM_AMOUNT_R);\n const whitespace = m?.[1] ?? '';\n const trimmed = trimLeadingWhitespaceOutsideFences(\n capture[3],\n whitespace\n );\n const parseFunc = containsBlockSyntax(trimmed)\n ? parseBlock\n : parseInline;\n const tagName = capture[1].trim();\n const noInnerParse =\n DO_NOT_PROCESS_HTML_ELEMENTS.indexOf(tagName.toLowerCase()) !== -1;\n const tag = (noInnerParse ? tagName.toLowerCase() : tagName) as HTMLTag;\n const ast: any = {\n attrs: attrStringToMap(tag, capture[2] ?? ''),\n noInnerParse,\n tag,\n };\n state.inAnchor = state.inAnchor || tagName.toLowerCase() === 'a';\n\n if (noInnerParse) {\n ast.text = capture[3];\n } else {\n const prevInHTML = state.inHTML;\n state.inHTML = true;\n ast.children = parseFunc(parse, trimmed, state);\n state.inHTML = prevInHTML;\n }\n state.inAnchor = false;\n\n return ast;\n },\n _render(node, output, state = {}) {\n return createElement(\n node.tag,\n { key: state.key, ...(node.attrs ?? {}) },\n node.text ?? (node.children ? output(node.children, state) : '')\n );\n },\n },\n [RuleType.htmlComment]: {\n _qualify: ['<!'],\n _match: anyScopeRegex(HTML_COMMENT_R),\n _order: Priority.HIGH,\n _parse: captureNothing,\n _render: renderNothing,\n },\n [RuleType.htmlSelfClosing]: {\n _qualify: (source) => {\n if (options.disableParsingRawHTML) return false;\n\n return /^ *<([a-zA-Z][a-zA-Z0-9:]*)[\\s>/]/.test(source);\n },\n _match: anyScopeRegex(HTML_SELF_CLOSING_ELEMENT_R),\n _order: Priority.HIGH,\n _parse(capture) {\n const tag = capture[1].trim() as HTMLTag;\n\n return { attrs: attrStringToMap(tag, capture[2] || ''), tag };\n },\n _render(node, _, state = {}) {\n return createElement(node.tag, {\n key: state.key,\n ...(node.attrs ?? {}),\n });\n },\n },\n [RuleType.customComponent]: {\n _qualify: (source) => /^ *<([A-Z][a-zA-Z0-9]*)/.test(source),\n _match: anyScopeRegex(CUSTOM_COMPONENT_R),\n _order: Priority.MAX,\n _parse(capture, parse, state) {\n const m = capture[3].match(HTML_LEFT_TRIM_AMOUNT_R);\n const whitespace = m?.[1] ?? '';\n const trimmed = trimLeadingWhitespaceOutsideFences(\n capture[3],\n whitespace\n );\n const parseFunc = containsBlockSyntax(trimmed)\n ? parseBlock\n : parseInline;\n const tag = capture[1].trim();\n const ast: any = {\n attrs: attrStringToMap(tag as HTMLTag, capture[2] ?? ''),\n noInnerParse: false,\n tag,\n };\n const prevInHTML = state.inHTML;\n state.inHTML = true;\n ast.children = parseFunc(parse, trimmed, state);\n state.inHTML = prevInHTML;\n\n return ast;\n },\n _render(node, output, state = {}) {\n return createElement(\n node.tag as HTMLTag,\n { key: state.key, ...(node.attrs ?? {}) },\n node.text ?? (node.children ? output(node.children, state) : '')\n );\n },\n },\n [RuleType.paragraph]: {\n _match: matchParagraph,\n _order: Priority.LOW,\n _parse: parseCaptureInline,\n _render(node, output, state = {}) {\n return createElement(\n 'p',\n { key: state.key },\n output(node.children, state)\n );\n },\n },\n [RuleType.image]: {\n _qualify: ['!['],\n _match: simpleInlineRegex(IMAGE_R),\n _order: Priority.HIGH,\n _parse(capture) {\n return {\n alt: unescapeString(capture[1]),\n target: unescapeString(capture[2]),\n title: unescapeString(capture[3]),\n };\n },\n _render(node, _, state = {}) {\n return createElement('img', {\n key: state.key,\n alt: node.alt ?? undefined,\n title: node.title ?? undefined,\n src: sanitize(node.target, 'img', 'src') ?? undefined,\n });\n },\n },\n [RuleType.link]: {\n _qualify: ['['],\n _match: inlineRegex(LINK_R),\n _order: Priority.LOW,\n _parse(capture, parse, state) {\n return {\n children: parseSimpleInline(parse, capture[1], state),\n target: unescapeString(capture[2]),\n title: unescapeString(capture[3]),\n };\n },\n _render(node, output, state = {}) {\n const sanitizedHref = sanitize(node.target, 'a', 'href');\n if (\n process.env.NODE_ENV === 'test' &&\n node.target.includes('javascript:')\n ) {\n console.log('Compiler sanitize result:', {\n target: node.target,\n sanitizedHref,\n finalHref: sanitizedHref ?? undefined,\n });\n }\n return createElement(\n 'a',\n {\n key: state.key,\n href: sanitizedHref ?? undefined,\n title: node.title ?? undefined,\n },\n output(node.children, state)\n );\n },\n },\n [RuleType.linkAngleBraceStyleDetector]: {\n _qualify: ['<'],\n _match: inlineRegex(LINK_AUTOLINK_R),\n _order: Priority.MAX,\n _parse(capture) {\n let target = capture[1];\n let isEmail = false;\n\n if (target.indexOf('@') !== -1 && target.indexOf('//') === -1) {\n isEmail = true;\n target = target.replace('mailto:', '');\n }\n\n return {\n children: [{ text: target, type: RuleType.text }],\n target: isEmail ? `mailto:${target}` : target,\n type: RuleType.link,\n };\n },\n },\n [RuleType.linkBareUrlDetector]: {\n _qualify: (source, state) =>\n !!(\n state.inline &&\n !state.inAnchor &&\n !options.disableAutoLink &&\n (startsWith(source, 'http://') || startsWith(source, 'https://'))\n ),\n _match: inlineRegex(LINK_AUTOLINK_BARE_URL_R),\n _order: Priority.MAX,\n _parse(capture) {\n return {\n children: [{ text: capture[1], type: RuleType.text }],\n target: capture[1],\n type: RuleType.link,\n };\n },\n },\n [RuleType.newlineCoalescer]: {\n _match: blockRegex(CONSECUTIVE_NEWLINE_R),\n _order: Priority.LOW,\n _parse: captureNothing,\n _render() {\n return '\\n';\n },\n },\n [RuleType.orderedList]: generateListRule(ORDERED),\n [RuleType.unorderedList]: generateListRule(UNORDERED),\n [RuleType.ref]: {\n _qualify: ['['],\n _match: anyScopeRegex(REFERENCE_IMAGE_OR_LINK),\n _order: Priority.MAX,\n _parse(capture) {\n refs[capture[1]] = { target: capture[2], title: capture[4] };\n\n return {};\n },\n _render: renderNothing,\n },\n [RuleType.refImage]: {\n _qualify: ['!['],\n _match: simpleInlineRegex(REFERENCE_IMAGE_R),\n _order: Priority.MAX,\n _parse(capture) {\n return {\n alt: capture[1] ? unescapeString(capture[1]) : undefined,\n ref: capture[2],\n };\n },\n _render(node, _, state = {}) {\n const ref = refs[node.ref];\n\n if (!ref) return null;\n\n return createElement('img', {\n key: state.key,\n alt: node.alt,\n src: sanitize(ref.target, 'img', 'src') ?? undefined,\n title: ref.title,\n });\n },\n },\n [RuleType.refLink]: {\n _qualify: (source) => source[0] === '[' && source.indexOf('](') === -1,\n _match: inlineRegex(REFERENCE_LINK_R),\n _order: Priority.MAX,\n _parse(capture, parse, state) {\n return {\n children: parseSimpleInline(parse, capture[1], state),\n fallbackChildren: capture[0],\n ref: capture[2],\n };\n },\n _render(node, output, state = {}) {\n const ref = refs[node.ref];\n\n if (!ref)\n return createElement(\n 'span',\n { key: state.key },\n node.fallbackChildren\n );\n\n return createElement(\n 'a',\n {\n key: state.key,\n href: sanitize(ref.target, 'a', 'href') ?? undefined,\n title: ref.title,\n },\n output(node.children, state)\n );\n },\n },\n [RuleType.table]: {\n _qualify: ['|'],\n _match: blockRegex(NP_TABLE_R),\n _order: Priority.HIGH,\n _parse(capture, parse, state) {\n state.inline = true;\n const align = capture[2] ? parseTableAlign(capture[2]) : [];\n const cells = capture[3]\n ? parseTableCells(capture[3], parse, state)\n : [];\n const header = parseTableRow(capture[1], parse, state, !!cells.length);\n state.inline = false;\n\n return cells.length\n ? { align, cells, header, type: RuleType.table }\n : { children: header.flat(), type: RuleType.paragraph };\n },\n _render(node, output, state = {}) {\n const table = node as TableNode;\n const getStyle = (i: number) =>\n table.align[i] ? { textAlign: table.align[i] } : {};\n\n return createElement(\n 'table',\n { key: state.key },\n createElement(\n 'thead',\n null,\n createElement(\n 'tr',\n null,\n ...table.header.map((c, i) =>\n createElement(\n 'th',\n { key: i, style: getStyle(i) },\n output(c, state)\n )\n )\n )\n ),\n createElement(\n 'tbody',\n null,\n ...table.cells.map((row, i) =>\n createElement(\n 'tr',\n { key: i },\n ...row.map((c, j) =>\n createElement(\n 'td',\n { key: j, style: getStyle(j) },\n output(c, state)\n )\n )\n )\n )\n )\n );\n },\n },\n [RuleType.tableSeparator]: {\n _match: (source, state) =>\n state.inTable && source[0] === '|' ? /^\\|/.exec(source) : null,\n _order: Priority.HIGH,\n _parse() {\n return { type: RuleType.tableSeparator };\n },\n _render() {\n return ' | ';\n },\n },\n [RuleType.text]: {\n _match: allowInline((source, _state) => {\n const shortMatch = SHORTCODE_R.exec(source);\n\n if (shortMatch) return shortMatch;\n\n return TEXT_PLAIN_R.exec(source) || /^[\\s\\S]/.exec(source);\n }),\n _order: Priority.MIN,\n _parse(capture) {\n const text = capture[0];\n\n return {\n text:\n text.indexOf('&') === -1\n ? text\n : text.replace(\n HTML_CHAR_CODE_R,\n (f, i) => namedCodesToUnicode[i] || f\n ),\n };\n },\n _render(node) {\n return node.text;\n },\n },\n [RuleType.textBolded]: {\n _qualify: ['**', '__'],\n _match: simpleInlineRegex(TEXT_BOLD_R),\n _order: Priority.MED,\n _parse(capture, parse, state) {\n return { children: parse(capture[2], state) };\n },\n _render(node, output, state = {}) {\n return createElement(\n 'strong',\n { key: state.key },\n output(node.children, state)\n );\n },\n },\n [RuleType.textEmphasized]: {\n _qualify: ['*', '_'],\n _match: simpleInlineRegex(TEXT_EMPHASIZED_R),\n _order: Priority.LOW,\n _parse(capture, parse, state) {\n return { children: parse(capture[2], state) };\n },\n _render(node, output, state = {}) {\n return createElement(\n 'em',\n { key: state.key },\n output(node.children, state)\n );\n },\n },\n [RuleType.textEscaped]: {\n _qualify: ['\\\\'],\n _match: simpleInlineRegex(TEXT_ESCAPED_R),\n _order: Priority.HIGH,\n _parse(capture) {\n return { text: capture[1], type: RuleType.text };\n },\n },\n [RuleType.textMarked]: {\n _qualify: ['=='],\n _match: simpleInlineRegex(TEXT_MARKED_R),\n _order: Priority.LOW,\n _parse: parseCaptureInline,\n _render(node, output, state = {}) {\n return createElement(\n 'mark',\n { key: state.key },\n output(node.children, state)\n );\n },\n },\n [RuleType.textStrikethroughed]: {\n _qualify: ['~~'],\n _match: simpleInlineRegex(TEXT_STRIKETHROUGHED_R),\n _order: Priority.LOW,\n _parse: parseCaptureInline,\n _render(node, output, state = {}) {\n return createElement(\n 'del',\n { key: state.key },\n output(node.children, state)\n );\n },\n },\n };\n\n return rules;\n};\n\n// Removed compilerCache completely to avoid issues with props changes not invalidating cache\n// const compilerCache = new Map<string, unknown>();\n\nexport const compile = (\n markdown: string = '',\n ctx: MarkdownContext<any>,\n options: MarkdownOptions = {}\n): unknown => {\n // const cacheKey = JSON.stringify({\n // markdown,\n // options,\n // components: ctx.components ? Object.keys(ctx.components) : [],\n // });\n\n // if (compilerCache.has(cacheKey)) {\n // return compilerCache.get(cacheKey);\n // }\n\n const components = ctx.components ?? {};\n const slug = (input: string) => {\n if (process.env.NODE_ENV === 'test' && input === '中文') {\n const def = defaultSlugify(input);\n console.log('Slug check:', {\n input,\n ctxSlugify: !!ctx.slugify,\n defaultSlugifyResult: def,\n });\n }\n return ctx.slugify\n ? ctx.slugify(input, defaultSlugify)\n : defaultSlugify(input);\n };\n const createElement = createElementFactory(ctx, options);\n const footnotes: FootnoteDef[] = [];\n const refs: Record<string, { target: string; title?: string }> = {};\n\n const attrStringToMap = (\n tag: HTMLTag,\n str: string\n ): Record<string, any> | null => {\n if (!str || !str.trim()) return null;\n const attributes = str.match(ATTR_EXTRACTOR_R);\n\n if (!attributes) return null;\n\n return attributes.reduce((map: any, raw) => {\n const delimiterIdx = raw.indexOf('=');\n\n if (delimiterIdx !== -1) {\n const key = normalizeAttributeKey(raw.slice(0, delimiterIdx)).trim();\n const value = unquote(raw.slice(delimiterIdx + 1).trim());\n const mappedKey = ATTRIBUTE_TO_NODE_PROP_MAP[key] ?? key;\n\n if (mappedKey === 'ref') return map;\n map[mappedKey] = attributeValueToNodePropValue(\n tag,\n key,\n value,\n ctx.sanitizer ?? defaultSanitizer\n );\n\n if (\n typeof map[mappedKey] === 'string' &&\n (HTML_BLOCK_ELEMENT_R.test(map[mappedKey]) ||\n HTML_SELF_CLOSING_ELEMENT_R.test(map[mappedKey]))\n ) {\n map[mappedKey] = compileInner(map[mappedKey].trim());\n }\n } else if (raw !== 'style') {\n map[ATTRIBUTE_TO_NODE_PROP_MAP[raw] ?? raw] = true;\n }\n\n return map;\n }, {});\n };\n\n const nonParagraphBlockSyntaxes = [\n BLOCKQUOTE_R,\n CODE_BLOCK_FENCED_R,\n CODE_BLOCK_R,\n options.enforceAtxHeadings ? HEADING_ATX_COMPLIANT_R : HEADING_R,\n HEADING_SETEXT_R,\n NP_TABLE_R,\n ORDERED_LIST_R,\n UNORDERED_LIST_R,\n CUSTOM_COMPONENT_R,\n ];\n\n const containsBlockSyntax = (input: string): boolean => {\n const cleaned = input.replace(TRIM_STARTING_NEWLINES, '');\n const slice = cleaned.length > 2048 ? cleaned.slice(0, 2048) : cleaned;\n const syntaxes = options.disableParsingRawHTML\n ? nonParagraphBlockSyntaxes\n : [\n ...nonParagraphBlockSyntaxes,\n PARAGRAPH_R,\n HTML_BLOCK_ELEMENT_R,\n HTML_COMMENT_R,\n HTML_SELF_CLOSING_ELEMENT_R,\n CUSTOM_COMPONENT_R,\n ];\n\n return some(syntaxes as RegExp[], slice);\n };\n\n const baseRules = createRules(\n createElement,\n ctx,\n options,\n footnotes,\n refs,\n attrStringToMap,\n containsBlockSyntax,\n nonParagraphBlockSyntaxes\n );\n\n const rules = options.disableParsingRawHTML\n ? Object.keys(baseRules).reduce((acc, key) => {\n if (key !== RuleType.htmlBlock && key !== RuleType.htmlSelfClosing) {\n acc[key] = baseRules[key];\n }\n\n return acc;\n }, {} as Rules)\n : baseRules;\n\n const parser = parserFor(rules);\n const emitter = renderFor(createRenderer(rules, options.renderRule));\n\n const compileInner = (input: string): unknown => {\n const result = options.preserveFrontmatter\n ? input\n : input.replace(FRONT_MATTER_R, '');\n const inline =\n options.forceInline ||\n (!options.forceBlock &&\n SHOULD_RENDER_AS_BLOCK_R.test(\n result.replace(TRIM_STARTING_NEWLINES, '')\n ) === false);\n const arr = emitter(\n parser(\n inline\n ? result\n : `${trimEnd(result).replace(TRIM_STARTING_NEWLINES, '')}\\n\\n`,\n { inline }\n ),\n { inline }\n ) as unknown as any[];\n while (\n typeof arr[arr.length - 1] === 'string' &&\n !arr[arr.length - 1].trim()\n )\n arr.pop();\n\n if (options.wrapper === null) return arr;\n const wrapper = options.wrapper ?? (inline ? 'span' : 'div');\n\n if (arr.length > 1 || options.forceWrapper)\n return createElement(wrapper, { key: 'outer' }, arr);\n\n if (arr.length === 1) {\n const node = arr[0];\n\n if (typeof node === 'string') {\n const spanProps: Record<string, any> = { key: 'outer' };\n\n if (!inline && components) {\n const pOverrideProps = (get(components, 'p.props', {}) ??\n {}) as Record<string, any>;\n const mergedClassName = cx(\n spanProps.className,\n pOverrideProps.className\n );\n const finalSpanProps: Record<string, any> = {\n ...spanProps,\n ...pOverrideProps,\n };\n\n if (mergedClassName) finalSpanProps.className = mergedClassName;\n\n return createElement('span', finalSpanProps, node);\n }\n\n return createElement('span', spanProps, node);\n }\n\n return node;\n }\n\n return createElement(wrapper, { key: 'outer' }, null);\n };\n\n if (typeof markdown !== 'string') {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n 'intlayer: the first argument must be a string. Received',\n typeof markdown\n );\n }\n throw new Error('intlayer: the first argument must be a string');\n }\n\n const node = compileInner(markdown);\n\n const result = footnotes.length\n ? createElement(\n 'div',\n null,\n node,\n createElement(\n 'footer',\n { key: 'footer' },\n ...footnotes.map((def) =>\n createElement(\n 'div',\n { id: slug(def.identifier), key: def.identifier },\n def.identifier,\n emitter(parser(def.footnote, { inline: true }), { inline: true })\n )\n )\n )\n )\n : node;\n\n // compilerCache.set(cacheKey, result);\n\n return result;\n};\n\nexport const createCompiler =\n (ctx: MarkdownContext<any>) =>\n (markdown: string, options?: MarkdownOptions): unknown =>\n compile(markdown, ctx, options);\n\nexport const compileWithOptions = (\n markdown: string,\n runtime: MarkdownRuntime,\n options: CompileOptions<any> = {}\n): unknown => {\n const {\n components,\n namedCodesToUnicode,\n sanitizer,\n slugify,\n ...compilerOptions\n } = options;\n\n return compile(\n markdown,\n { runtime, components, namedCodesToUnicode, sanitizer, slugify },\n compilerOptions\n );\n};\n"],"mappings":"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"}
@@ -1,329 +1,2 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
-
3
- //#region src/markdown/constants.ts
4
- /**
5
- * Analogous to `node.type`. Please note that the values here may change at any time,
6
- * so do not hard code against the value directly.
7
- */
8
- const RuleType = {
9
- blockQuote: "0",
10
- breakLine: "1",
11
- breakThematic: "2",
12
- codeBlock: "3",
13
- codeFenced: "4",
14
- codeInline: "5",
15
- footnote: "6",
16
- footnoteReference: "7",
17
- gfmTask: "8",
18
- heading: "9",
19
- headingSetext: "10",
20
- htmlBlock: "11",
21
- htmlComment: "12",
22
- htmlSelfClosing: "13",
23
- customComponent: "34",
24
- image: "14",
25
- link: "15",
26
- linkAngleBraceStyleDetector: "16",
27
- linkBareUrlDetector: "17",
28
- newlineCoalescer: "19",
29
- orderedList: "20",
30
- paragraph: "21",
31
- ref: "22",
32
- refImage: "23",
33
- refLink: "24",
34
- table: "25",
35
- tableSeparator: "26",
36
- text: "27",
37
- textBolded: "28",
38
- textEmphasized: "29",
39
- textEscaped: "30",
40
- textMarked: "31",
41
- textStrikethroughed: "32",
42
- unorderedList: "33"
43
- };
44
- if (process.env.NODE_ENV === "test") Object.keys(RuleType).forEach((key) => {
45
- RuleType[key] = key;
46
- });
47
- /**
48
- * Priority levels for rule ordering.
49
- */
50
- const Priority = {
51
- MAX: 0,
52
- HIGH: 1,
53
- MED: 2,
54
- LOW: 3,
55
- MIN: 4
56
- };
57
- /** Threshold for performance logging (in milliseconds) */
58
- const DURATION_DELAY_TRIGGER = 20;
59
- /**
60
- * Map of HTML attributes to their JSX prop equivalents.
61
- * Some renderers use camelCase for certain attributes.
62
- */
63
- const ATTRIBUTE_TO_NODE_PROP_MAP = [
64
- "allowFullScreen",
65
- "allowTransparency",
66
- "autoComplete",
67
- "autoFocus",
68
- "autoPlay",
69
- "cellPadding",
70
- "cellSpacing",
71
- "charSet",
72
- "classId",
73
- "colSpan",
74
- "contentEditable",
75
- "contextMenu",
76
- "crossOrigin",
77
- "encType",
78
- "formAction",
79
- "formEncType",
80
- "formMethod",
81
- "formNoValidate",
82
- "formTarget",
83
- "frameBorder",
84
- "hrefLang",
85
- "inputMode",
86
- "keyParams",
87
- "keyType",
88
- "marginHeight",
89
- "marginWidth",
90
- "maxLength",
91
- "mediaGroup",
92
- "minLength",
93
- "noValidate",
94
- "radioGroup",
95
- "readOnly",
96
- "rowSpan",
97
- "spellCheck",
98
- "srcDoc",
99
- "srcLang",
100
- "srcSet",
101
- "tabIndex",
102
- "useMap"
103
- ].reduce((obj, x) => {
104
- obj[x.toLowerCase()] = x;
105
- return obj;
106
- }, {
107
- class: "className",
108
- for: "htmlFor"
109
- });
110
- /**
111
- * Default HTML entity to unicode mappings.
112
- */
113
- const NAMED_CODES_TO_UNICODE = {
114
- amp: "&",
115
- apos: "'",
116
- gt: ">",
117
- lt: "<",
118
- nbsp: "\xA0",
119
- quot: "“"
120
- };
121
- /** HTML elements that should not have their content processed */
122
- const DO_NOT_PROCESS_HTML_ELEMENTS = [
123
- "style",
124
- "script",
125
- "pre"
126
- ];
127
- /** Attributes that require URL sanitization */
128
- const ATTRIBUTES_TO_SANITIZE = [
129
- "src",
130
- "href",
131
- "data",
132
- "formAction",
133
- "srcDoc",
134
- "action"
135
- ];
136
- /** Attribute extractor regex */
137
- const ATTR_EXTRACTOR_R = /([-A-Z0-9_:]+)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|(?:\{((?:\\.|{[^}]*?}|[^}])*)\})))?/gi;
138
- /** Block end detection */
139
- const BLOCK_END_R = /\n{2,}$/;
140
- /** Blockquote patterns */
141
- const BLOCKQUOTE_R = /^(\s*>[\s\S]*?)(?=\n\n|$)/;
142
- const BLOCKQUOTE_TRIM_LEFT_MULTILINE_R = /^ *> ?/gm;
143
- const BLOCKQUOTE_ALERT_R = /^(?:\[!([^\]]*)\]\n)?([\s\S]*)/;
144
- /** Line break patterns */
145
- const BREAK_LINE_R = /^ {2,}\n/;
146
- const BREAK_THEMATIC_R = /^(?:([-*_])( *\1){2,}) *(?:\n *)+\n/;
147
- /** Code block patterns */
148
- const CODE_BLOCK_FENCED_R = /^(?: {1,3})?(`{3,}|~{3,}) *(\S+)? *([^\n]*?)?\n([\s\S]*?)(?:\1\n?|$)/;
149
- const CODE_BLOCK_R = /^(?: {4}[^\n]+\n*)+(?:\n *)+\n?/;
150
- const CODE_INLINE_R = /^(`+)((?:\\`|(?!\1)`|[^`])+)\1/;
151
- /** Newline patterns */
152
- const CONSECUTIVE_NEWLINE_R = /^(?:\n *)*\n/;
153
- const CR_NEWLINE_R = /\r\n?/g;
154
- /** Footnote patterns */
155
- const FOOTNOTE_R = /^\[\^([^\]]+)](:(.*)((\n+ {4,}.*)|(\n(?!\[\^).+))*)/;
156
- const FOOTNOTE_REFERENCE_R = /^\[\^([^\]]+)]/;
157
- /** Form feed */
158
- const FORMFEED_R = /\f/g;
159
- /** Front matter */
160
- const FRONT_MATTER_R = /^---[ \t]*\n(.|\n)*?\n---[ \t]*\n/;
161
- /** GFM task */
162
- const GFM_TASK_R = /^\s*?\[(x|\s)\]/;
163
- /** Heading patterns */
164
- const HEADING_R = /^ *(#{1,6}) *([^\n]+?)(?: +#*)?(?:\n *)*(?:\n|$)/;
165
- const HEADING_ATX_COMPLIANT_R = /^ *(#{1,6}) +([^\n]+?)(?: +#*)?(?:\n *)*(?:\n|$)/;
166
- const HEADING_SETEXT_R = /^([^\n]+)\n *(=|-)\2{2,} *\n/;
167
- /** HTML patterns */
168
- const HTML_BLOCK_ELEMENT_R = /^ *(?!<[a-zA-Z][^ >/]* ?\/>)<([a-zA-Z][^ >/]*) ?((?:[^>]*[^/])?)>\n?(\s*(?:<\1[^>]*?>[\s\S]*?<\/\1>|(?!<\1\b)[\s\S])*?)<\/\1>(?!<\/\1>)\n*/i;
169
- const HTML_CHAR_CODE_R = /&([a-z0-9]+|#[0-9]{1,6}|#x[0-9a-fA-F]{1,6});/gi;
170
- const HTML_COMMENT_R = /^<!--[\s\S]*?(?:-->)/;
171
- const HTML_CUSTOM_ATTR_R = /^(data|aria|x)-[a-z_][a-z\d_.-]*$/;
172
- const HTML_SELF_CLOSING_ELEMENT_R = /^ *<([a-zA-Z][a-zA-Z0-9:]*)(?:\s+((?:<.*?>|[^>])*))?\/?>(?!<\/\1>)(\s*\n)?/i;
173
- /** Custom component pattern */
174
- const CUSTOM_COMPONENT_R = /^ *<([A-Z][a-zA-Z0-9]*)(?:\s+((?:<.*?>|[^>])*))?>\n?(\s*(?:<\1[^>]*?>[\s\S]*?<\/\1>|(?!<\1\b)[\s\S])*?)<\/\1>(?!<\/\1>)\n*/;
175
- /** Interpolation */
176
- const INTERPOLATION_R = /^\{.*\}$/;
177
- /** Link patterns */
178
- const LINK_AUTOLINK_BARE_URL_R = /^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/;
179
- const LINK_AUTOLINK_R = /^<([^ >]+[:@/][^ >]+)>/;
180
- const CAPTURE_LETTER_AFTER_HYPHEN = /-([a-z])?/gi;
181
- /** Table patterns */
182
- const NP_TABLE_R = /^(\|.*)\n(?: *(\|? *[-:]+ *\|[-| :]*)\n((?:.*\|.*\n)*))?\n?/;
183
- const TABLE_TRIM_PIPES = /(^ *\||\| *$)/g;
184
- const TABLE_CENTER_ALIGN = /^ *:-+: *$/;
185
- const TABLE_LEFT_ALIGN = /^ *:-+ *$/;
186
- const TABLE_RIGHT_ALIGN = /^ *-+: *$/;
187
- /** Paragraph */
188
- const PARAGRAPH_R = /^[^\n]+(?: {2}\n|\n{2,})/;
189
- /** Reference patterns */
190
- const REFERENCE_IMAGE_OR_LINK = /^\[([^\]]*)\]:\s+<?([^\s>]+)>?\s*("([^"]*)")?/;
191
- const REFERENCE_IMAGE_R = /^!\[([^\]]*)\] ?\[([^\]]*)\]/;
192
- const REFERENCE_LINK_R = /^\[([^\]]*)\] ?\[([^\]]*)\]/;
193
- /** Block detection */
194
- const SHOULD_RENDER_AS_BLOCK_R = /(\n|^[-*]\s|^#|^ {2,}|^-{2,}|^>\s)/;
195
- /** Tab and whitespace */
196
- const TAB_R = /\t/g;
197
- const TRIM_STARTING_NEWLINES = /^\n+/;
198
- const HTML_LEFT_TRIM_AMOUNT_R = /^\n*([ \t]*)/;
199
- /** List patterns */
200
- const LIST_LOOKBEHIND_R = /(?:^|\n)( *)$/;
201
- const ORDERED_LIST_BULLET = "(?:\\d+\\.)";
202
- const UNORDERED_LIST_BULLET = "(?:[*+-])";
203
- /** Text formatting patterns */
204
- const TEXT_ESCAPED_R = /^\\([^0-9A-Za-z\s])/;
205
- const UNESCAPE_R = /\\([^0-9A-Za-z\s])/g;
206
- const TEXT_PLAIN_R = /^[\s\S](?:(?! {2}\n|[0-9]\.|http)[^=*_~\-\n:<`\\[!])*/;
207
- /** Shortcode pattern */
208
- const SHORTCODE_R = /^(:[a-zA-Z0-9-_]+:)/;
209
- const ORDERED = 1;
210
- const UNORDERED = 2;
211
- /**
212
- * Ensure there's at least one more instance of the delimiter later
213
- * in the current sequence.
214
- */
215
- const LOOKAHEAD = (double) => `(?=[\\s\\S]+?\\1${double ? "\\1" : ""})`;
216
- /**
217
- * For inline formatting, this partial attempts to ignore characters that
218
- * may appear in nested formatting.
219
- */
220
- const INLINE_SKIP_R = "((?:\\[.*?\\][([].*?[)\\]]|<.*?>(?:.*?<.*?>)?|`.*?`|\\\\[^\\s]|[\\s\\S])+?)";
221
- /** Bold text pattern */
222
- const TEXT_BOLD_R = new RegExp(`^([*_])\\1${LOOKAHEAD(1)}${INLINE_SKIP_R}\\1\\1(?!\\1)`);
223
- /** Emphasized text pattern */
224
- const TEXT_EMPHASIZED_R = new RegExp(`^([*_])${LOOKAHEAD(0)}${INLINE_SKIP_R}\\1(?!\\1)`);
225
- /** Marked text pattern */
226
- const TEXT_MARKED_R = new RegExp(`^(==)${LOOKAHEAD(0)}${INLINE_SKIP_R}\\1`);
227
- /** Strikethrough text pattern */
228
- const TEXT_STRIKETHROUGHED_R = new RegExp(`^(~~)${LOOKAHEAD(0)}${INLINE_SKIP_R}\\1`);
229
- const generateListItemPrefix = (type) => {
230
- return "( *)(" + (type === ORDERED ? ORDERED_LIST_BULLET : UNORDERED_LIST_BULLET) + ") +";
231
- };
232
- const ORDERED_LIST_ITEM_PREFIX = generateListItemPrefix(ORDERED);
233
- const UNORDERED_LIST_ITEM_PREFIX = generateListItemPrefix(UNORDERED);
234
- const generateListItemPrefixRegex = (type) => {
235
- return new RegExp("^" + (type === ORDERED ? ORDERED_LIST_ITEM_PREFIX : UNORDERED_LIST_ITEM_PREFIX));
236
- };
237
- const ORDERED_LIST_ITEM_PREFIX_R = generateListItemPrefixRegex(ORDERED);
238
- const UNORDERED_LIST_ITEM_PREFIX_R = generateListItemPrefixRegex(UNORDERED);
239
- const generateListItemRegex = (type) => {
240
- return new RegExp("^" + (type === ORDERED ? ORDERED_LIST_ITEM_PREFIX : UNORDERED_LIST_ITEM_PREFIX) + "[^\\n]*(?:\\n(?!\\1" + (type === ORDERED ? ORDERED_LIST_BULLET : UNORDERED_LIST_BULLET) + " )[^\\n]*)*(\\n|$)", "gm");
241
- };
242
- const ORDERED_LIST_ITEM_R = generateListItemRegex(ORDERED);
243
- const UNORDERED_LIST_ITEM_R = generateListItemRegex(UNORDERED);
244
- const generateListRegex = (type) => {
245
- const bullet = type === ORDERED ? ORDERED_LIST_BULLET : UNORDERED_LIST_BULLET;
246
- return new RegExp("^( *)(" + bullet + ") [\\s\\S]+?(?:\\n{2,}(?! )(?!\\1" + bullet + " (?!" + bullet + " ))\\n*|\\s*\\n*$)");
247
- };
248
- const ORDERED_LIST_R = generateListRegex(ORDERED);
249
- const UNORDERED_LIST_R = generateListRegex(UNORDERED);
250
-
251
- //#endregion
252
- exports.ATTRIBUTES_TO_SANITIZE = ATTRIBUTES_TO_SANITIZE;
253
- exports.ATTRIBUTE_TO_NODE_PROP_MAP = ATTRIBUTE_TO_NODE_PROP_MAP;
254
- exports.ATTR_EXTRACTOR_R = ATTR_EXTRACTOR_R;
255
- exports.BLOCKQUOTE_ALERT_R = BLOCKQUOTE_ALERT_R;
256
- exports.BLOCKQUOTE_R = BLOCKQUOTE_R;
257
- exports.BLOCKQUOTE_TRIM_LEFT_MULTILINE_R = BLOCKQUOTE_TRIM_LEFT_MULTILINE_R;
258
- exports.BLOCK_END_R = BLOCK_END_R;
259
- exports.BREAK_LINE_R = BREAK_LINE_R;
260
- exports.BREAK_THEMATIC_R = BREAK_THEMATIC_R;
261
- exports.CAPTURE_LETTER_AFTER_HYPHEN = CAPTURE_LETTER_AFTER_HYPHEN;
262
- exports.CODE_BLOCK_FENCED_R = CODE_BLOCK_FENCED_R;
263
- exports.CODE_BLOCK_R = CODE_BLOCK_R;
264
- exports.CODE_INLINE_R = CODE_INLINE_R;
265
- exports.CONSECUTIVE_NEWLINE_R = CONSECUTIVE_NEWLINE_R;
266
- exports.CR_NEWLINE_R = CR_NEWLINE_R;
267
- exports.CUSTOM_COMPONENT_R = CUSTOM_COMPONENT_R;
268
- exports.DO_NOT_PROCESS_HTML_ELEMENTS = DO_NOT_PROCESS_HTML_ELEMENTS;
269
- exports.DURATION_DELAY_TRIGGER = DURATION_DELAY_TRIGGER;
270
- exports.FOOTNOTE_R = FOOTNOTE_R;
271
- exports.FOOTNOTE_REFERENCE_R = FOOTNOTE_REFERENCE_R;
272
- exports.FORMFEED_R = FORMFEED_R;
273
- exports.FRONT_MATTER_R = FRONT_MATTER_R;
274
- exports.GFM_TASK_R = GFM_TASK_R;
275
- exports.HEADING_ATX_COMPLIANT_R = HEADING_ATX_COMPLIANT_R;
276
- exports.HEADING_R = HEADING_R;
277
- exports.HEADING_SETEXT_R = HEADING_SETEXT_R;
278
- exports.HTML_BLOCK_ELEMENT_R = HTML_BLOCK_ELEMENT_R;
279
- exports.HTML_CHAR_CODE_R = HTML_CHAR_CODE_R;
280
- exports.HTML_COMMENT_R = HTML_COMMENT_R;
281
- exports.HTML_CUSTOM_ATTR_R = HTML_CUSTOM_ATTR_R;
282
- exports.HTML_LEFT_TRIM_AMOUNT_R = HTML_LEFT_TRIM_AMOUNT_R;
283
- exports.HTML_SELF_CLOSING_ELEMENT_R = HTML_SELF_CLOSING_ELEMENT_R;
284
- exports.INLINE_SKIP_R = INLINE_SKIP_R;
285
- exports.INTERPOLATION_R = INTERPOLATION_R;
286
- exports.LINK_AUTOLINK_BARE_URL_R = LINK_AUTOLINK_BARE_URL_R;
287
- exports.LINK_AUTOLINK_R = LINK_AUTOLINK_R;
288
- exports.LIST_LOOKBEHIND_R = LIST_LOOKBEHIND_R;
289
- exports.LOOKAHEAD = LOOKAHEAD;
290
- exports.NAMED_CODES_TO_UNICODE = NAMED_CODES_TO_UNICODE;
291
- exports.NP_TABLE_R = NP_TABLE_R;
292
- exports.ORDERED = ORDERED;
293
- exports.ORDERED_LIST_BULLET = ORDERED_LIST_BULLET;
294
- exports.ORDERED_LIST_ITEM_PREFIX = ORDERED_LIST_ITEM_PREFIX;
295
- exports.ORDERED_LIST_ITEM_PREFIX_R = ORDERED_LIST_ITEM_PREFIX_R;
296
- exports.ORDERED_LIST_ITEM_R = ORDERED_LIST_ITEM_R;
297
- exports.ORDERED_LIST_R = ORDERED_LIST_R;
298
- exports.PARAGRAPH_R = PARAGRAPH_R;
299
- exports.Priority = Priority;
300
- exports.REFERENCE_IMAGE_OR_LINK = REFERENCE_IMAGE_OR_LINK;
301
- exports.REFERENCE_IMAGE_R = REFERENCE_IMAGE_R;
302
- exports.REFERENCE_LINK_R = REFERENCE_LINK_R;
303
- exports.RuleType = RuleType;
304
- exports.SHORTCODE_R = SHORTCODE_R;
305
- exports.SHOULD_RENDER_AS_BLOCK_R = SHOULD_RENDER_AS_BLOCK_R;
306
- exports.TABLE_CENTER_ALIGN = TABLE_CENTER_ALIGN;
307
- exports.TABLE_LEFT_ALIGN = TABLE_LEFT_ALIGN;
308
- exports.TABLE_RIGHT_ALIGN = TABLE_RIGHT_ALIGN;
309
- exports.TABLE_TRIM_PIPES = TABLE_TRIM_PIPES;
310
- exports.TAB_R = TAB_R;
311
- exports.TEXT_BOLD_R = TEXT_BOLD_R;
312
- exports.TEXT_EMPHASIZED_R = TEXT_EMPHASIZED_R;
313
- exports.TEXT_ESCAPED_R = TEXT_ESCAPED_R;
314
- exports.TEXT_MARKED_R = TEXT_MARKED_R;
315
- exports.TEXT_PLAIN_R = TEXT_PLAIN_R;
316
- exports.TEXT_STRIKETHROUGHED_R = TEXT_STRIKETHROUGHED_R;
317
- exports.TRIM_STARTING_NEWLINES = TRIM_STARTING_NEWLINES;
318
- exports.UNESCAPE_R = UNESCAPE_R;
319
- exports.UNORDERED = UNORDERED;
320
- exports.UNORDERED_LIST_BULLET = UNORDERED_LIST_BULLET;
321
- exports.UNORDERED_LIST_ITEM_PREFIX = UNORDERED_LIST_ITEM_PREFIX;
322
- exports.UNORDERED_LIST_ITEM_PREFIX_R = UNORDERED_LIST_ITEM_PREFIX_R;
323
- exports.UNORDERED_LIST_ITEM_R = UNORDERED_LIST_ITEM_R;
324
- exports.UNORDERED_LIST_R = UNORDERED_LIST_R;
325
- exports.generateListItemPrefix = generateListItemPrefix;
326
- exports.generateListItemPrefixRegex = generateListItemPrefixRegex;
327
- exports.generateListItemRegex = generateListItemRegex;
328
- exports.generateListRegex = generateListRegex;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e={blockQuote:`0`,breakLine:`1`,breakThematic:`2`,codeBlock:`3`,codeFenced:`4`,codeInline:`5`,footnote:`6`,footnoteReference:`7`,gfmTask:`8`,heading:`9`,headingSetext:`10`,htmlBlock:`11`,htmlComment:`12`,htmlSelfClosing:`13`,customComponent:`34`,image:`14`,link:`15`,linkAngleBraceStyleDetector:`16`,linkBareUrlDetector:`17`,newlineCoalescer:`19`,orderedList:`20`,paragraph:`21`,ref:`22`,refImage:`23`,refLink:`24`,table:`25`,tableSeparator:`26`,text:`27`,textBolded:`28`,textEmphasized:`29`,textEscaped:`30`,textMarked:`31`,textStrikethroughed:`32`,unorderedList:`33`};process.env.NODE_ENV===`test`&&Object.keys(e).forEach(t=>{e[t]=t});const t={MAX:0,HIGH:1,MED:2,LOW:3,MIN:4},n=`allowFullScreen.allowTransparency.autoComplete.autoFocus.autoPlay.cellPadding.cellSpacing.charSet.classId.colSpan.contentEditable.contextMenu.crossOrigin.encType.formAction.formEncType.formMethod.formNoValidate.formTarget.frameBorder.hrefLang.inputMode.keyParams.keyType.marginHeight.marginWidth.maxLength.mediaGroup.minLength.noValidate.radioGroup.readOnly.rowSpan.spellCheck.srcDoc.srcLang.srcSet.tabIndex.useMap`.split(`.`).reduce((e,t)=>(e[t.toLowerCase()]=t,e),{class:`className`,for:`htmlFor`}),r={amp:`&`,apos:`'`,gt:`>`,lt:`<`,nbsp:`\xA0`,quot:`“`},i=[`style`,`script`,`pre`],ee=[`src`,`href`,`data`,`formAction`,`srcDoc`,`action`],te=/([-A-Z0-9_:]+)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|(?:\{((?:\\.|{[^}]*?}|[^}])*)\})))?/gi,ne=/\n{2,}$/,re=/^(\s*>[\s\S]*?)(?=\n\n|$)/,ie=/^ *> ?/gm,ae=/^(?:\[!([^\]]*)\]\n)?([\s\S]*)/,oe=/^ {2,}\n/,se=/^(?:([-*_])( *\1){2,}) *(?:\n *)+\n/,a=/^(?: {1,3})?(`{3,}|~{3,}) *(\S+)? *([^\n]*?)?\n([\s\S]*?)(?:\1\n?|$)/,o=/^(?: {4}[^\n]+\n*)+(?:\n *)+\n?/,s=/^(`+)((?:\\`|(?!\1)`|[^`])+)\1/,c=/^(?:\n *)*\n/,l=/\r\n?/g,u=/^\[\^([^\]]+)](:(.*)((\n+ {4,}.*)|(\n(?!\[\^).+))*)/,d=/^\[\^([^\]]+)]/,f=/\f/g,p=/^---[ \t]*\n(.|\n)*?\n---[ \t]*\n/,m=/^\s*?\[(x|\s)\]/,h=/^ *(#{1,6}) *([^\n]+?)(?: +#*)?(?:\n *)*(?:\n|$)/,g=/^ *(#{1,6}) +([^\n]+?)(?: +#*)?(?:\n *)*(?:\n|$)/,_=/^([^\n]+)\n *(=|-)\2{2,} *\n/,v=/^ *(?!<[a-zA-Z][^ >/]* ?\/>)<([a-zA-Z][^ >/]*) ?((?:[^>]*[^/])?)>\n?(\s*(?:<\1[^>]*?>[\s\S]*?<\/\1>|(?!<\1\b)[\s\S])*?)<\/\1>(?!<\/\1>)\n*/i,y=/&([a-z0-9]+|#[0-9]{1,6}|#x[0-9a-fA-F]{1,6});/gi,b=/^<!--[\s\S]*?(?:-->)/,x=/^(data|aria|x)-[a-z_][a-z\d_.-]*$/,S=/^ *<([a-zA-Z][a-zA-Z0-9:]*)(?:\s+((?:<.*?>|[^>])*))?\/?>(?!<\/\1>)(\s*\n)?/i,C=/^ *<([A-Z][a-zA-Z0-9]*)(?:\s+((?:<.*?>|[^>])*))?>\n?(\s*(?:<\1[^>]*?>[\s\S]*?<\/\1>|(?!<\1\b)[\s\S])*?)<\/\1>(?!<\/\1>)\n*/,w=/^\{.*\}$/,T=/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,E=/^<([^ >]+[:@/][^ >]+)>/,D=/-([a-z])?/gi,O=/^(\|.*)\n(?: *(\|? *[-:]+ *\|[-| :]*)\n((?:.*\|.*\n)*))?\n?/,k=/(^ *\||\| *$)/g,A=/^ *:-+: *$/,j=/^ *:-+ *$/,M=/^ *-+: *$/,ce=/^[^\n]+(?: {2}\n|\n{2,})/,N=/^\[([^\]]*)\]:\s+<?([^\s>]+)>?\s*("([^"]*)")?/,P=/^!\[([^\]]*)\] ?\[([^\]]*)\]/,F=/^\[([^\]]*)\] ?\[([^\]]*)\]/,I=/(\n|^[-*]\s|^#|^ {2,}|^-{2,}|^>\s)/,L=/\t/g,R=/^\n+/,z=/^\n*([ \t]*)/,B=/(?:^|\n)( *)$/,V=`(?:\\d+\\.)`,H=`(?:[*+-])`,U=/^\\([^0-9A-Za-z\s])/,W=/\\([^0-9A-Za-z\s])/g,G=/^[\s\S](?:(?! {2}\n|[0-9]\.|http)[^=*_~\-\n:<`\\[!])*/,le=/^(:[a-zA-Z0-9-_]+:)/,K=e=>`(?=[\\s\\S]+?\\1${e?`\\1`:``})`,q="((?:\\[.*?\\][([].*?[)\\]]|<.*?>(?:.*?<.*?>)?|`.*?`|\\\\[^\\s]|[\\s\\S])+?)",ue=RegExp(`^([*_])\\1${K(1)}${q}\\1\\1(?!\\1)`),de=RegExp(`^([*_])${K(0)}${q}\\1(?!\\1)`),fe=RegExp(`^(==)${K(0)}${q}\\1`),pe=RegExp(`^(~~)${K(0)}${q}\\1`),J=e=>`( *)(`+(e===1?V:H)+`) +`,Y=J(1),X=J(2),Z=e=>RegExp(`^`+(e===1?Y:X)),me=Z(1),he=Z(2),Q=e=>RegExp(`^`+(e===1?Y:X)+`[^\\n]*(?:\\n(?!\\1`+(e===1?V:H)+` )[^\\n]*)*(\\n|$)`,`gm`),ge=Q(1),_e=Q(2),$=e=>{let t=e===1?V:H;return RegExp(`^( *)(`+t+`) [\\s\\S]+?(?:\\n{2,}(?! )(?!\\1`+t+` (?!`+t+` ))\\n*|\\s*\\n*$)`)},ve=$(1),ye=$(2);exports.ATTRIBUTES_TO_SANITIZE=ee,exports.ATTRIBUTE_TO_NODE_PROP_MAP=n,exports.ATTR_EXTRACTOR_R=te,exports.BLOCKQUOTE_ALERT_R=ae,exports.BLOCKQUOTE_R=re,exports.BLOCKQUOTE_TRIM_LEFT_MULTILINE_R=ie,exports.BLOCK_END_R=ne,exports.BREAK_LINE_R=oe,exports.BREAK_THEMATIC_R=se,exports.CAPTURE_LETTER_AFTER_HYPHEN=D,exports.CODE_BLOCK_FENCED_R=a,exports.CODE_BLOCK_R=o,exports.CODE_INLINE_R=s,exports.CONSECUTIVE_NEWLINE_R=c,exports.CR_NEWLINE_R=l,exports.CUSTOM_COMPONENT_R=C,exports.DO_NOT_PROCESS_HTML_ELEMENTS=i,exports.DURATION_DELAY_TRIGGER=20,exports.FOOTNOTE_R=u,exports.FOOTNOTE_REFERENCE_R=d,exports.FORMFEED_R=f,exports.FRONT_MATTER_R=p,exports.GFM_TASK_R=m,exports.HEADING_ATX_COMPLIANT_R=g,exports.HEADING_R=h,exports.HEADING_SETEXT_R=_,exports.HTML_BLOCK_ELEMENT_R=v,exports.HTML_CHAR_CODE_R=y,exports.HTML_COMMENT_R=b,exports.HTML_CUSTOM_ATTR_R=x,exports.HTML_LEFT_TRIM_AMOUNT_R=z,exports.HTML_SELF_CLOSING_ELEMENT_R=S,exports.INLINE_SKIP_R=q,exports.INTERPOLATION_R=w,exports.LINK_AUTOLINK_BARE_URL_R=T,exports.LINK_AUTOLINK_R=E,exports.LIST_LOOKBEHIND_R=B,exports.LOOKAHEAD=K,exports.NAMED_CODES_TO_UNICODE=r,exports.NP_TABLE_R=O,exports.ORDERED=1,exports.ORDERED_LIST_BULLET=V,exports.ORDERED_LIST_ITEM_PREFIX=Y,exports.ORDERED_LIST_ITEM_PREFIX_R=me,exports.ORDERED_LIST_ITEM_R=ge,exports.ORDERED_LIST_R=ve,exports.PARAGRAPH_R=ce,exports.Priority=t,exports.REFERENCE_IMAGE_OR_LINK=N,exports.REFERENCE_IMAGE_R=P,exports.REFERENCE_LINK_R=F,exports.RuleType=e,exports.SHORTCODE_R=le,exports.SHOULD_RENDER_AS_BLOCK_R=I,exports.TABLE_CENTER_ALIGN=A,exports.TABLE_LEFT_ALIGN=j,exports.TABLE_RIGHT_ALIGN=M,exports.TABLE_TRIM_PIPES=k,exports.TAB_R=L,exports.TEXT_BOLD_R=ue,exports.TEXT_EMPHASIZED_R=de,exports.TEXT_ESCAPED_R=U,exports.TEXT_MARKED_R=fe,exports.TEXT_PLAIN_R=G,exports.TEXT_STRIKETHROUGHED_R=pe,exports.TRIM_STARTING_NEWLINES=R,exports.UNESCAPE_R=W,exports.UNORDERED=2,exports.UNORDERED_LIST_BULLET=H,exports.UNORDERED_LIST_ITEM_PREFIX=X,exports.UNORDERED_LIST_ITEM_PREFIX_R=he,exports.UNORDERED_LIST_ITEM_R=_e,exports.UNORDERED_LIST_R=ye,exports.generateListItemPrefix=J,exports.generateListItemPrefixRegex=Z,exports.generateListItemRegex=Q,exports.generateListRegex=$;
329
2
  //# sourceMappingURL=constants.cjs.map