hermium 0.1.10 → 0.2.0

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 (212) hide show
  1. package/README.md +56 -0
  2. package/bin/hermium.mjs +185 -164
  3. package/dist/api.mjs +3513 -0
  4. package/dist/public/assets/css/index-Dfs9RUU9.css +1 -0
  5. package/dist/public/assets/css/styles-B8p6jk5Z.css +1 -0
  6. package/dist/public/assets/js/ChatInputBlock-Bw7AL70H.js +1 -0
  7. package/dist/public/assets/js/MarkdownMessage-8d7Y6VL-.js +1 -0
  8. package/dist/public/assets/js/base-ui-BvQbAt_1.js +1 -0
  9. package/dist/public/assets/js/chat._sessionId-BG6lVraH.js +1 -0
  10. package/dist/public/assets/js/chat.index-D2zdMPTT.js +1 -0
  11. package/dist/public/assets/js/index-C0AK45FU.js +60 -0
  12. package/dist/public/assets/js/index-Cx5En4FK.js +1 -0
  13. package/dist/public/assets/js/memory-CeSRdTkW.js +3 -0
  14. package/dist/public/assets/js/router-8uDKazL-.js +1 -0
  15. package/dist/public/assets/js/settings-Bc3Y5zXO.js +1 -0
  16. package/dist/public/assets/js/skills-DZv7sA_5.js +1 -0
  17. package/dist/public/assets/js/theme-CPkdkpaj.js +1 -0
  18. package/dist/public/assets/js/usage-DXQsT9_b.js +1 -0
  19. package/dist/public/assets/woff2/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2 +0 -0
  20. package/dist/public/assets/woff2/geist-cyrillic-wght-normal-BEAKL7Jp.woff2 +0 -0
  21. package/dist/public/assets/woff2/geist-latin-ext-wght-normal-DC-KSUi6.woff2 +0 -0
  22. package/dist/public/assets/woff2/geist-latin-wght-normal-BgDaEnEv.woff2 +0 -0
  23. package/dist/public/assets/woff2/geist-vietnamese-wght-normal-6IgcOCM7.woff2 +0 -0
  24. package/dist/public/favicon.ico +0 -0
  25. package/dist/public/logo.png +0 -0
  26. package/package.json +1 -1
  27. package/dist/public/assets/IconAlertCircle-BW147gsG.js +0 -1
  28. package/dist/public/assets/IconAlertTriangle-DCoTLVSd.js +0 -1
  29. package/dist/public/assets/IconCheck-DAO7Fpl9.js +0 -1
  30. package/dist/public/assets/IconCode-BqfTl5wU.js +0 -1
  31. package/dist/public/assets/IconLoader2-B_pehSXN.js +0 -1
  32. package/dist/public/assets/IconRefresh-BbMGoMV8.js +0 -1
  33. package/dist/public/assets/geist-cyrillic-wght-normal-CHSlOQsW.woff2 +0 -0
  34. package/dist/public/assets/geist-latin-ext-wght-normal-DMtmJ5ZE.woff2 +0 -0
  35. package/dist/public/assets/geist-latin-wght-normal-Dm3htQBi.woff2 +0 -0
  36. package/dist/public/assets/index-BL9a2Xg9.js +0 -1
  37. package/dist/public/assets/index-BSwXjgjr.js +0 -1
  38. package/dist/public/assets/index-BWl8tn18.js +0 -1
  39. package/dist/public/assets/index-CQh8SXb2.js +0 -94
  40. package/dist/public/assets/index-Cxd-kSUY.js +0 -1
  41. package/dist/public/assets/index-DA5SH--7.js +0 -2
  42. package/dist/public/assets/index-DCHbvtBS.js +0 -1
  43. package/dist/public/assets/index-DCYXJZEe.js +0 -1
  44. package/dist/public/assets/index-DFDfp0ca.js +0 -1
  45. package/dist/public/assets/index-GuAAqSCJ.js +0 -14
  46. package/dist/public/assets/index-WIDirTHx.js +0 -29
  47. package/dist/public/assets/index-X3XZcAzy.js +0 -1
  48. package/dist/public/assets/input-7TQEEJq6.js +0 -1
  49. package/dist/public/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
  50. package/dist/public/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
  51. package/dist/public/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
  52. package/dist/public/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
  53. package/dist/public/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
  54. package/dist/public/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
  55. package/dist/public/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
  56. package/dist/public/assets/models-BlUb1eaf.js +0 -1
  57. package/dist/public/assets/styles-PHtUFHUr.css +0 -1
  58. package/dist/public/assets/switch-B_iYUUM3.js +0 -1
  59. package/dist/public/assets/syntax-highlighter-DcBYfnEK.js +0 -6
  60. package/dist/public/assets/textarea-Dm4aaRqS.js +0 -1
  61. package/dist/public/favicon.png +0 -0
  62. package/dist/public/nous-logo.png +0 -0
  63. package/dist/server/index.mjs +0 -244
  64. package/dist/web-server/__23tanstack-start-plugin-adapters-Cwee5PKy.mjs +0 -6
  65. package/dist/web-server/_chunks/ssr-renderer.mjs +0 -22
  66. package/dist/web-server/_libs/babel__runtime.mjs +0 -237
  67. package/dist/web-server/_libs/bail.mjs +0 -8
  68. package/dist/web-server/_libs/base-ui__react.mjs +0 -9554
  69. package/dist/web-server/_libs/base-ui__utils.mjs +0 -1101
  70. package/dist/web-server/_libs/ccount.mjs +0 -16
  71. package/dist/web-server/_libs/character-entities-legacy.mjs +0 -111
  72. package/dist/web-server/_libs/character-entities.mjs +0 -2130
  73. package/dist/web-server/_libs/character-reference-invalid.mjs +0 -33
  74. package/dist/web-server/_libs/class-variance-authority.mjs +0 -44
  75. package/dist/web-server/_libs/clsx.mjs +0 -16
  76. package/dist/web-server/_libs/comma-separated-tokens.mjs +0 -31
  77. package/dist/web-server/_libs/cookie-es.mjs +0 -44
  78. package/dist/web-server/_libs/croner.mjs +0 -1
  79. package/dist/web-server/_libs/crossws.mjs +0 -1
  80. package/dist/web-server/_libs/decode-named-character-reference+[...].mjs +0 -8
  81. package/dist/web-server/_libs/devlop.mjs +0 -8
  82. package/dist/web-server/_libs/escape-string-regexp.mjs +0 -9
  83. package/dist/web-server/_libs/estree-util-is-identifier-name.mjs +0 -11
  84. package/dist/web-server/_libs/extend.mjs +0 -97
  85. package/dist/web-server/_libs/fault.mjs +0 -1
  86. package/dist/web-server/_libs/floating-ui__core.mjs +0 -663
  87. package/dist/web-server/_libs/floating-ui__dom.mjs +0 -624
  88. package/dist/web-server/_libs/floating-ui__react-dom.mjs +0 -279
  89. package/dist/web-server/_libs/floating-ui__utils.mjs +0 -322
  90. package/dist/web-server/_libs/format.mjs +0 -1
  91. package/dist/web-server/_libs/h3.mjs +0 -408
  92. package/dist/web-server/_libs/hast-util-parse-selector.mjs +0 -39
  93. package/dist/web-server/_libs/hast-util-to-jsx-runtime.mjs +0 -388
  94. package/dist/web-server/_libs/hast-util-whitespace.mjs +0 -10
  95. package/dist/web-server/_libs/hastscript.mjs +0 -200
  96. package/dist/web-server/_libs/highlight.js.mjs +0 -1
  97. package/dist/web-server/_libs/hookable.mjs +0 -1
  98. package/dist/web-server/_libs/html-url-attributes.mjs +0 -26
  99. package/dist/web-server/_libs/inline-style-parser.mjs +0 -142
  100. package/dist/web-server/_libs/is-alphabetical.mjs +0 -7
  101. package/dist/web-server/_libs/is-alphanumerical.mjs +0 -8
  102. package/dist/web-server/_libs/is-decimal.mjs +0 -7
  103. package/dist/web-server/_libs/is-hexadecimal.mjs +0 -7
  104. package/dist/web-server/_libs/is-plain-obj.mjs +0 -10
  105. package/dist/web-server/_libs/isbot.mjs +0 -21
  106. package/dist/web-server/_libs/longest-streak.mjs +0 -25
  107. package/dist/web-server/_libs/lowlight.mjs +0 -1
  108. package/dist/web-server/_libs/markdown-table.mjs +0 -142
  109. package/dist/web-server/_libs/mdast-util-find-and-replace.mjs +0 -109
  110. package/dist/web-server/_libs/mdast-util-from-markdown.mjs +0 -717
  111. package/dist/web-server/_libs/mdast-util-gfm-autolink-literal+[...].mjs +0 -156
  112. package/dist/web-server/_libs/mdast-util-gfm-footnote.mjs +0 -117
  113. package/dist/web-server/_libs/mdast-util-gfm-strikethrough.mjs +0 -54
  114. package/dist/web-server/_libs/mdast-util-gfm-table.mjs +0 -157
  115. package/dist/web-server/_libs/mdast-util-gfm-task-list-item.mjs +0 -77
  116. package/dist/web-server/_libs/mdast-util-gfm.mjs +0 -29
  117. package/dist/web-server/_libs/mdast-util-phrasing.mjs +0 -30
  118. package/dist/web-server/_libs/mdast-util-to-hast.mjs +0 -710
  119. package/dist/web-server/_libs/mdast-util-to-markdown.mjs +0 -798
  120. package/dist/web-server/_libs/mdast-util-to-string.mjs +0 -38
  121. package/dist/web-server/_libs/micromark-core-commonmark.mjs +0 -2259
  122. package/dist/web-server/_libs/micromark-extension-gfm-autolink-literal+[...].mjs +0 -344
  123. package/dist/web-server/_libs/micromark-extension-gfm-footnote+[...].mjs +0 -279
  124. package/dist/web-server/_libs/micromark-extension-gfm-strikethrough+[...].mjs +0 -98
  125. package/dist/web-server/_libs/micromark-extension-gfm-table.mjs +0 -491
  126. package/dist/web-server/_libs/micromark-extension-gfm-tagfilter+[...].mjs +0 -1
  127. package/dist/web-server/_libs/micromark-extension-gfm-task-list-item+[...].mjs +0 -77
  128. package/dist/web-server/_libs/micromark-extension-gfm.mjs +0 -18
  129. package/dist/web-server/_libs/micromark-factory-destination.mjs +0 -94
  130. package/dist/web-server/_libs/micromark-factory-label.mjs +0 -63
  131. package/dist/web-server/_libs/micromark-factory-space.mjs +0 -24
  132. package/dist/web-server/_libs/micromark-factory-title.mjs +0 -65
  133. package/dist/web-server/_libs/micromark-factory-whitespace.mjs +0 -22
  134. package/dist/web-server/_libs/micromark-util-character.mjs +0 -44
  135. package/dist/web-server/_libs/micromark-util-chunked.mjs +0 -36
  136. package/dist/web-server/_libs/micromark-util-classify-character+[...].mjs +0 -12
  137. package/dist/web-server/_libs/micromark-util-combine-extensions+[...].mjs +0 -41
  138. package/dist/web-server/_libs/micromark-util-decode-numeric-character-reference+[...].mjs +0 -19
  139. package/dist/web-server/_libs/micromark-util-decode-string.mjs +0 -21
  140. package/dist/web-server/_libs/micromark-util-encode.mjs +0 -1
  141. package/dist/web-server/_libs/micromark-util-html-tag-name.mjs +0 -69
  142. package/dist/web-server/_libs/micromark-util-normalize-identifier+[...].mjs +0 -6
  143. package/dist/web-server/_libs/micromark-util-resolve-all.mjs +0 -15
  144. package/dist/web-server/_libs/micromark-util-sanitize-uri.mjs +0 -41
  145. package/dist/web-server/_libs/micromark-util-subtokenize.mjs +0 -346
  146. package/dist/web-server/_libs/micromark.mjs +0 -906
  147. package/dist/web-server/_libs/ocache.mjs +0 -1
  148. package/dist/web-server/_libs/ohash.mjs +0 -1
  149. package/dist/web-server/_libs/parse-entities.mjs +0 -245
  150. package/dist/web-server/_libs/property-information.mjs +0 -1210
  151. package/dist/web-server/_libs/react-dom.mjs +0 -10779
  152. package/dist/web-server/_libs/react-markdown.mjs +0 -147
  153. package/dist/web-server/_libs/react-syntax-highlighter.mjs +0 -941
  154. package/dist/web-server/_libs/react.mjs +0 -513
  155. package/dist/web-server/_libs/refractor.mjs +0 -2425
  156. package/dist/web-server/_libs/remark-gfm.mjs +0 -20
  157. package/dist/web-server/_libs/remark-parse.mjs +0 -19
  158. package/dist/web-server/_libs/remark-rehype.mjs +0 -21
  159. package/dist/web-server/_libs/reselect.mjs +0 -1
  160. package/dist/web-server/_libs/rou3.mjs +0 -8
  161. package/dist/web-server/_libs/seroval-plugins.mjs +0 -58
  162. package/dist/web-server/_libs/seroval.mjs +0 -1775
  163. package/dist/web-server/_libs/space-separated-tokens.mjs +0 -11
  164. package/dist/web-server/_libs/srvx.mjs +0 -781
  165. package/dist/web-server/_libs/style-to-js.mjs +0 -72
  166. package/dist/web-server/_libs/style-to-object.mjs +0 -38
  167. package/dist/web-server/_libs/tabler__icons-react.mjs +0 -233
  168. package/dist/web-server/_libs/tanstack__history.mjs +0 -204
  169. package/dist/web-server/_libs/tanstack__query-core.mjs +0 -2552
  170. package/dist/web-server/_libs/tanstack__react-query.mjs +0 -190
  171. package/dist/web-server/_libs/tanstack__react-router.mjs +0 -1120
  172. package/dist/web-server/_libs/tanstack__react-store.mjs +0 -2
  173. package/dist/web-server/_libs/tanstack__router-core.mjs +0 -4288
  174. package/dist/web-server/_libs/tanstack__store.mjs +0 -1
  175. package/dist/web-server/_libs/trim-lines.mjs +0 -41
  176. package/dist/web-server/_libs/trough.mjs +0 -85
  177. package/dist/web-server/_libs/ufo.mjs +0 -54
  178. package/dist/web-server/_libs/unctx.mjs +0 -1
  179. package/dist/web-server/_libs/ungap__structured-clone.mjs +0 -224
  180. package/dist/web-server/_libs/unified.mjs +0 -661
  181. package/dist/web-server/_libs/unist-util-is.mjs +0 -100
  182. package/dist/web-server/_libs/unist-util-position.mjs +0 -27
  183. package/dist/web-server/_libs/unist-util-stringify-position.mjs +0 -27
  184. package/dist/web-server/_libs/unist-util-visit-parents.mjs +0 -83
  185. package/dist/web-server/_libs/unist-util-visit.mjs +0 -24
  186. package/dist/web-server/_libs/unstorage.mjs +0 -1
  187. package/dist/web-server/_libs/use-sync-external-store.mjs +0 -139
  188. package/dist/web-server/_libs/vfile-message.mjs +0 -138
  189. package/dist/web-server/_libs/vfile.mjs +0 -467
  190. package/dist/web-server/_libs/zod.mjs +0 -3915
  191. package/dist/web-server/_libs/zustand.mjs +0 -343
  192. package/dist/web-server/_libs/zwitch.mjs +0 -1
  193. package/dist/web-server/_ssr/index--Bo2_ipW.mjs +0 -277
  194. package/dist/web-server/_ssr/index-BEvygh5x.mjs +0 -612
  195. package/dist/web-server/_ssr/index-BFaKxYfN.mjs +0 -40
  196. package/dist/web-server/_ssr/index-BdrMzRTd.mjs +0 -513
  197. package/dist/web-server/_ssr/index-CoDfv1vI.mjs +0 -66
  198. package/dist/web-server/_ssr/index-Cwp8Gyl1.mjs +0 -1812
  199. package/dist/web-server/_ssr/index-DQsfKYjV.mjs +0 -449
  200. package/dist/web-server/_ssr/index-Dbs9k8Ea.mjs +0 -251
  201. package/dist/web-server/_ssr/index-Dk93oyZD.mjs +0 -213
  202. package/dist/web-server/_ssr/index-KNJ7huw_.mjs +0 -369
  203. package/dist/web-server/_ssr/index.mjs +0 -1558
  204. package/dist/web-server/_ssr/input-BV1DMASc.mjs +0 -20
  205. package/dist/web-server/_ssr/models-MzrvbL2i.mjs +0 -43
  206. package/dist/web-server/_ssr/router-CS6Zq3md.mjs +0 -2134
  207. package/dist/web-server/_ssr/start-HYkvq4Ni.mjs +0 -4
  208. package/dist/web-server/_ssr/switch-Bd-Sg0HG.mjs +0 -33
  209. package/dist/web-server/_ssr/syntax-highlighter-5vezNTce.mjs +0 -62
  210. package/dist/web-server/_ssr/textarea-CB4kQp9w.mjs +0 -18
  211. package/dist/web-server/_tanstack-start-manifest_v-m5lY48LR.mjs +0 -4
  212. package/dist/web-server/index.mjs +0 -611
@@ -1,717 +0,0 @@
1
- import { d as decodeNumericCharacterReference } from "./micromark-util-decode-numeric-character-reference+[...].mjs";
2
- import { d as decodeString } from "./micromark-util-decode-string.mjs";
3
- import { n as normalizeIdentifier } from "./micromark-util-normalize-identifier+[...].mjs";
4
- import { d as decodeNamedCharacterReference } from "./decode-named-character-reference+[...].mjs";
5
- import { p as postprocess, a as parse, b as preprocess } from "./micromark.mjs";
6
- import { s as stringifyPosition } from "./unist-util-stringify-position.mjs";
7
- import { t as toString } from "./mdast-util-to-string.mjs";
8
- const own = {}.hasOwnProperty;
9
- function fromMarkdown(value, encoding, options) {
10
- if (encoding && typeof encoding === "object") {
11
- options = encoding;
12
- encoding = void 0;
13
- }
14
- return compiler(options)(postprocess(parse(options).document().write(preprocess()(value, encoding, true))));
15
- }
16
- function compiler(options) {
17
- const config = {
18
- transforms: [],
19
- canContainEols: ["emphasis", "fragment", "heading", "paragraph", "strong"],
20
- enter: {
21
- autolink: opener(link),
22
- autolinkProtocol: onenterdata,
23
- autolinkEmail: onenterdata,
24
- atxHeading: opener(heading),
25
- blockQuote: opener(blockQuote),
26
- characterEscape: onenterdata,
27
- characterReference: onenterdata,
28
- codeFenced: opener(codeFlow),
29
- codeFencedFenceInfo: buffer,
30
- codeFencedFenceMeta: buffer,
31
- codeIndented: opener(codeFlow, buffer),
32
- codeText: opener(codeText, buffer),
33
- codeTextData: onenterdata,
34
- data: onenterdata,
35
- codeFlowValue: onenterdata,
36
- definition: opener(definition),
37
- definitionDestinationString: buffer,
38
- definitionLabelString: buffer,
39
- definitionTitleString: buffer,
40
- emphasis: opener(emphasis),
41
- hardBreakEscape: opener(hardBreak),
42
- hardBreakTrailing: opener(hardBreak),
43
- htmlFlow: opener(html, buffer),
44
- htmlFlowData: onenterdata,
45
- htmlText: opener(html, buffer),
46
- htmlTextData: onenterdata,
47
- image: opener(image),
48
- label: buffer,
49
- link: opener(link),
50
- listItem: opener(listItem),
51
- listItemValue: onenterlistitemvalue,
52
- listOrdered: opener(list, onenterlistordered),
53
- listUnordered: opener(list),
54
- paragraph: opener(paragraph),
55
- reference: onenterreference,
56
- referenceString: buffer,
57
- resourceDestinationString: buffer,
58
- resourceTitleString: buffer,
59
- setextHeading: opener(heading),
60
- strong: opener(strong),
61
- thematicBreak: opener(thematicBreak)
62
- },
63
- exit: {
64
- atxHeading: closer(),
65
- atxHeadingSequence: onexitatxheadingsequence,
66
- autolink: closer(),
67
- autolinkEmail: onexitautolinkemail,
68
- autolinkProtocol: onexitautolinkprotocol,
69
- blockQuote: closer(),
70
- characterEscapeValue: onexitdata,
71
- characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,
72
- characterReferenceMarkerNumeric: onexitcharacterreferencemarker,
73
- characterReferenceValue: onexitcharacterreferencevalue,
74
- characterReference: onexitcharacterreference,
75
- codeFenced: closer(onexitcodefenced),
76
- codeFencedFence: onexitcodefencedfence,
77
- codeFencedFenceInfo: onexitcodefencedfenceinfo,
78
- codeFencedFenceMeta: onexitcodefencedfencemeta,
79
- codeFlowValue: onexitdata,
80
- codeIndented: closer(onexitcodeindented),
81
- codeText: closer(onexitcodetext),
82
- codeTextData: onexitdata,
83
- data: onexitdata,
84
- definition: closer(),
85
- definitionDestinationString: onexitdefinitiondestinationstring,
86
- definitionLabelString: onexitdefinitionlabelstring,
87
- definitionTitleString: onexitdefinitiontitlestring,
88
- emphasis: closer(),
89
- hardBreakEscape: closer(onexithardbreak),
90
- hardBreakTrailing: closer(onexithardbreak),
91
- htmlFlow: closer(onexithtmlflow),
92
- htmlFlowData: onexitdata,
93
- htmlText: closer(onexithtmltext),
94
- htmlTextData: onexitdata,
95
- image: closer(onexitimage),
96
- label: onexitlabel,
97
- labelText: onexitlabeltext,
98
- lineEnding: onexitlineending,
99
- link: closer(onexitlink),
100
- listItem: closer(),
101
- listOrdered: closer(),
102
- listUnordered: closer(),
103
- paragraph: closer(),
104
- referenceString: onexitreferencestring,
105
- resourceDestinationString: onexitresourcedestinationstring,
106
- resourceTitleString: onexitresourcetitlestring,
107
- resource: onexitresource,
108
- setextHeading: closer(onexitsetextheading),
109
- setextHeadingLineSequence: onexitsetextheadinglinesequence,
110
- setextHeadingText: onexitsetextheadingtext,
111
- strong: closer(),
112
- thematicBreak: closer()
113
- }
114
- };
115
- configure(config, (options || {}).mdastExtensions || []);
116
- const data = {};
117
- return compile;
118
- function compile(events) {
119
- let tree = {
120
- type: "root",
121
- children: []
122
- };
123
- const context = {
124
- stack: [tree],
125
- tokenStack: [],
126
- config,
127
- enter,
128
- exit,
129
- buffer,
130
- resume,
131
- data
132
- };
133
- const listStack = [];
134
- let index = -1;
135
- while (++index < events.length) {
136
- if (events[index][1].type === "listOrdered" || events[index][1].type === "listUnordered") {
137
- if (events[index][0] === "enter") {
138
- listStack.push(index);
139
- } else {
140
- const tail = listStack.pop();
141
- index = prepareList(events, tail, index);
142
- }
143
- }
144
- }
145
- index = -1;
146
- while (++index < events.length) {
147
- const handler = config[events[index][0]];
148
- if (own.call(handler, events[index][1].type)) {
149
- handler[events[index][1].type].call(Object.assign({
150
- sliceSerialize: events[index][2].sliceSerialize
151
- }, context), events[index][1]);
152
- }
153
- }
154
- if (context.tokenStack.length > 0) {
155
- const tail = context.tokenStack[context.tokenStack.length - 1];
156
- const handler = tail[1] || defaultOnError;
157
- handler.call(context, void 0, tail[0]);
158
- }
159
- tree.position = {
160
- start: point(events.length > 0 ? events[0][1].start : {
161
- line: 1,
162
- column: 1,
163
- offset: 0
164
- }),
165
- end: point(events.length > 0 ? events[events.length - 2][1].end : {
166
- line: 1,
167
- column: 1,
168
- offset: 0
169
- })
170
- };
171
- index = -1;
172
- while (++index < config.transforms.length) {
173
- tree = config.transforms[index](tree) || tree;
174
- }
175
- return tree;
176
- }
177
- function prepareList(events, start, length) {
178
- let index = start - 1;
179
- let containerBalance = -1;
180
- let listSpread = false;
181
- let listItem2;
182
- let lineIndex;
183
- let firstBlankLineIndex;
184
- let atMarker;
185
- while (++index <= length) {
186
- const event = events[index];
187
- switch (event[1].type) {
188
- case "listUnordered":
189
- case "listOrdered":
190
- case "blockQuote": {
191
- if (event[0] === "enter") {
192
- containerBalance++;
193
- } else {
194
- containerBalance--;
195
- }
196
- atMarker = void 0;
197
- break;
198
- }
199
- case "lineEndingBlank": {
200
- if (event[0] === "enter") {
201
- if (listItem2 && !atMarker && !containerBalance && !firstBlankLineIndex) {
202
- firstBlankLineIndex = index;
203
- }
204
- atMarker = void 0;
205
- }
206
- break;
207
- }
208
- case "linePrefix":
209
- case "listItemValue":
210
- case "listItemMarker":
211
- case "listItemPrefix":
212
- case "listItemPrefixWhitespace": {
213
- break;
214
- }
215
- default: {
216
- atMarker = void 0;
217
- }
218
- }
219
- if (!containerBalance && event[0] === "enter" && event[1].type === "listItemPrefix" || containerBalance === -1 && event[0] === "exit" && (event[1].type === "listUnordered" || event[1].type === "listOrdered")) {
220
- if (listItem2) {
221
- let tailIndex = index;
222
- lineIndex = void 0;
223
- while (tailIndex--) {
224
- const tailEvent = events[tailIndex];
225
- if (tailEvent[1].type === "lineEnding" || tailEvent[1].type === "lineEndingBlank") {
226
- if (tailEvent[0] === "exit") continue;
227
- if (lineIndex) {
228
- events[lineIndex][1].type = "lineEndingBlank";
229
- listSpread = true;
230
- }
231
- tailEvent[1].type = "lineEnding";
232
- lineIndex = tailIndex;
233
- } else if (tailEvent[1].type === "linePrefix" || tailEvent[1].type === "blockQuotePrefix" || tailEvent[1].type === "blockQuotePrefixWhitespace" || tailEvent[1].type === "blockQuoteMarker" || tailEvent[1].type === "listItemIndent") ;
234
- else {
235
- break;
236
- }
237
- }
238
- if (firstBlankLineIndex && (!lineIndex || firstBlankLineIndex < lineIndex)) {
239
- listItem2._spread = true;
240
- }
241
- listItem2.end = Object.assign({}, lineIndex ? events[lineIndex][1].start : event[1].end);
242
- events.splice(lineIndex || index, 0, ["exit", listItem2, event[2]]);
243
- index++;
244
- length++;
245
- }
246
- if (event[1].type === "listItemPrefix") {
247
- const item = {
248
- type: "listItem",
249
- _spread: false,
250
- start: Object.assign({}, event[1].start),
251
- // @ts-expect-error: we’ll add `end` in a second.
252
- end: void 0
253
- };
254
- listItem2 = item;
255
- events.splice(index, 0, ["enter", item, event[2]]);
256
- index++;
257
- length++;
258
- firstBlankLineIndex = void 0;
259
- atMarker = true;
260
- }
261
- }
262
- }
263
- events[start][1]._spread = listSpread;
264
- return length;
265
- }
266
- function opener(create, and) {
267
- return open;
268
- function open(token) {
269
- enter.call(this, create(token), token);
270
- if (and) and.call(this, token);
271
- }
272
- }
273
- function buffer() {
274
- this.stack.push({
275
- type: "fragment",
276
- children: []
277
- });
278
- }
279
- function enter(node, token, errorHandler) {
280
- const parent = this.stack[this.stack.length - 1];
281
- const siblings = parent.children;
282
- siblings.push(node);
283
- this.stack.push(node);
284
- this.tokenStack.push([token, errorHandler || void 0]);
285
- node.position = {
286
- start: point(token.start),
287
- // @ts-expect-error: `end` will be patched later.
288
- end: void 0
289
- };
290
- }
291
- function closer(and) {
292
- return close;
293
- function close(token) {
294
- if (and) and.call(this, token);
295
- exit.call(this, token);
296
- }
297
- }
298
- function exit(token, onExitError) {
299
- const node = this.stack.pop();
300
- const open = this.tokenStack.pop();
301
- if (!open) {
302
- throw new Error("Cannot close `" + token.type + "` (" + stringifyPosition({
303
- start: token.start,
304
- end: token.end
305
- }) + "): it’s not open");
306
- } else if (open[0].type !== token.type) {
307
- if (onExitError) {
308
- onExitError.call(this, token, open[0]);
309
- } else {
310
- const handler = open[1] || defaultOnError;
311
- handler.call(this, token, open[0]);
312
- }
313
- }
314
- node.position.end = point(token.end);
315
- }
316
- function resume() {
317
- return toString(this.stack.pop());
318
- }
319
- function onenterlistordered() {
320
- this.data.expectingFirstListItemValue = true;
321
- }
322
- function onenterlistitemvalue(token) {
323
- if (this.data.expectingFirstListItemValue) {
324
- const ancestor = this.stack[this.stack.length - 2];
325
- ancestor.start = Number.parseInt(this.sliceSerialize(token), 10);
326
- this.data.expectingFirstListItemValue = void 0;
327
- }
328
- }
329
- function onexitcodefencedfenceinfo() {
330
- const data2 = this.resume();
331
- const node = this.stack[this.stack.length - 1];
332
- node.lang = data2;
333
- }
334
- function onexitcodefencedfencemeta() {
335
- const data2 = this.resume();
336
- const node = this.stack[this.stack.length - 1];
337
- node.meta = data2;
338
- }
339
- function onexitcodefencedfence() {
340
- if (this.data.flowCodeInside) return;
341
- this.buffer();
342
- this.data.flowCodeInside = true;
343
- }
344
- function onexitcodefenced() {
345
- const data2 = this.resume();
346
- const node = this.stack[this.stack.length - 1];
347
- node.value = data2.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g, "");
348
- this.data.flowCodeInside = void 0;
349
- }
350
- function onexitcodeindented() {
351
- const data2 = this.resume();
352
- const node = this.stack[this.stack.length - 1];
353
- node.value = data2.replace(/(\r?\n|\r)$/g, "");
354
- }
355
- function onexitdefinitionlabelstring(token) {
356
- const label = this.resume();
357
- const node = this.stack[this.stack.length - 1];
358
- node.label = label;
359
- node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();
360
- }
361
- function onexitdefinitiontitlestring() {
362
- const data2 = this.resume();
363
- const node = this.stack[this.stack.length - 1];
364
- node.title = data2;
365
- }
366
- function onexitdefinitiondestinationstring() {
367
- const data2 = this.resume();
368
- const node = this.stack[this.stack.length - 1];
369
- node.url = data2;
370
- }
371
- function onexitatxheadingsequence(token) {
372
- const node = this.stack[this.stack.length - 1];
373
- if (!node.depth) {
374
- const depth = this.sliceSerialize(token).length;
375
- node.depth = depth;
376
- }
377
- }
378
- function onexitsetextheadingtext() {
379
- this.data.setextHeadingSlurpLineEnding = true;
380
- }
381
- function onexitsetextheadinglinesequence(token) {
382
- const node = this.stack[this.stack.length - 1];
383
- node.depth = this.sliceSerialize(token).codePointAt(0) === 61 ? 1 : 2;
384
- }
385
- function onexitsetextheading() {
386
- this.data.setextHeadingSlurpLineEnding = void 0;
387
- }
388
- function onenterdata(token) {
389
- const node = this.stack[this.stack.length - 1];
390
- const siblings = node.children;
391
- let tail = siblings[siblings.length - 1];
392
- if (!tail || tail.type !== "text") {
393
- tail = text();
394
- tail.position = {
395
- start: point(token.start),
396
- // @ts-expect-error: we’ll add `end` later.
397
- end: void 0
398
- };
399
- siblings.push(tail);
400
- }
401
- this.stack.push(tail);
402
- }
403
- function onexitdata(token) {
404
- const tail = this.stack.pop();
405
- tail.value += this.sliceSerialize(token);
406
- tail.position.end = point(token.end);
407
- }
408
- function onexitlineending(token) {
409
- const context = this.stack[this.stack.length - 1];
410
- if (this.data.atHardBreak) {
411
- const tail = context.children[context.children.length - 1];
412
- tail.position.end = point(token.end);
413
- this.data.atHardBreak = void 0;
414
- return;
415
- }
416
- if (!this.data.setextHeadingSlurpLineEnding && config.canContainEols.includes(context.type)) {
417
- onenterdata.call(this, token);
418
- onexitdata.call(this, token);
419
- }
420
- }
421
- function onexithardbreak() {
422
- this.data.atHardBreak = true;
423
- }
424
- function onexithtmlflow() {
425
- const data2 = this.resume();
426
- const node = this.stack[this.stack.length - 1];
427
- node.value = data2;
428
- }
429
- function onexithtmltext() {
430
- const data2 = this.resume();
431
- const node = this.stack[this.stack.length - 1];
432
- node.value = data2;
433
- }
434
- function onexitcodetext() {
435
- const data2 = this.resume();
436
- const node = this.stack[this.stack.length - 1];
437
- node.value = data2;
438
- }
439
- function onexitlink() {
440
- const node = this.stack[this.stack.length - 1];
441
- if (this.data.inReference) {
442
- const referenceType = this.data.referenceType || "shortcut";
443
- node.type += "Reference";
444
- node.referenceType = referenceType;
445
- delete node.url;
446
- delete node.title;
447
- } else {
448
- delete node.identifier;
449
- delete node.label;
450
- }
451
- this.data.referenceType = void 0;
452
- }
453
- function onexitimage() {
454
- const node = this.stack[this.stack.length - 1];
455
- if (this.data.inReference) {
456
- const referenceType = this.data.referenceType || "shortcut";
457
- node.type += "Reference";
458
- node.referenceType = referenceType;
459
- delete node.url;
460
- delete node.title;
461
- } else {
462
- delete node.identifier;
463
- delete node.label;
464
- }
465
- this.data.referenceType = void 0;
466
- }
467
- function onexitlabeltext(token) {
468
- const string = this.sliceSerialize(token);
469
- const ancestor = this.stack[this.stack.length - 2];
470
- ancestor.label = decodeString(string);
471
- ancestor.identifier = normalizeIdentifier(string).toLowerCase();
472
- }
473
- function onexitlabel() {
474
- const fragment = this.stack[this.stack.length - 1];
475
- const value = this.resume();
476
- const node = this.stack[this.stack.length - 1];
477
- this.data.inReference = true;
478
- if (node.type === "link") {
479
- const children = fragment.children;
480
- node.children = children;
481
- } else {
482
- node.alt = value;
483
- }
484
- }
485
- function onexitresourcedestinationstring() {
486
- const data2 = this.resume();
487
- const node = this.stack[this.stack.length - 1];
488
- node.url = data2;
489
- }
490
- function onexitresourcetitlestring() {
491
- const data2 = this.resume();
492
- const node = this.stack[this.stack.length - 1];
493
- node.title = data2;
494
- }
495
- function onexitresource() {
496
- this.data.inReference = void 0;
497
- }
498
- function onenterreference() {
499
- this.data.referenceType = "collapsed";
500
- }
501
- function onexitreferencestring(token) {
502
- const label = this.resume();
503
- const node = this.stack[this.stack.length - 1];
504
- node.label = label;
505
- node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();
506
- this.data.referenceType = "full";
507
- }
508
- function onexitcharacterreferencemarker(token) {
509
- this.data.characterReferenceType = token.type;
510
- }
511
- function onexitcharacterreferencevalue(token) {
512
- const data2 = this.sliceSerialize(token);
513
- const type = this.data.characterReferenceType;
514
- let value;
515
- if (type) {
516
- value = decodeNumericCharacterReference(data2, type === "characterReferenceMarkerNumeric" ? 10 : 16);
517
- this.data.characterReferenceType = void 0;
518
- } else {
519
- const result = decodeNamedCharacterReference(data2);
520
- value = result;
521
- }
522
- const tail = this.stack[this.stack.length - 1];
523
- tail.value += value;
524
- }
525
- function onexitcharacterreference(token) {
526
- const tail = this.stack.pop();
527
- tail.position.end = point(token.end);
528
- }
529
- function onexitautolinkprotocol(token) {
530
- onexitdata.call(this, token);
531
- const node = this.stack[this.stack.length - 1];
532
- node.url = this.sliceSerialize(token);
533
- }
534
- function onexitautolinkemail(token) {
535
- onexitdata.call(this, token);
536
- const node = this.stack[this.stack.length - 1];
537
- node.url = "mailto:" + this.sliceSerialize(token);
538
- }
539
- function blockQuote() {
540
- return {
541
- type: "blockquote",
542
- children: []
543
- };
544
- }
545
- function codeFlow() {
546
- return {
547
- type: "code",
548
- lang: null,
549
- meta: null,
550
- value: ""
551
- };
552
- }
553
- function codeText() {
554
- return {
555
- type: "inlineCode",
556
- value: ""
557
- };
558
- }
559
- function definition() {
560
- return {
561
- type: "definition",
562
- identifier: "",
563
- label: null,
564
- title: null,
565
- url: ""
566
- };
567
- }
568
- function emphasis() {
569
- return {
570
- type: "emphasis",
571
- children: []
572
- };
573
- }
574
- function heading() {
575
- return {
576
- type: "heading",
577
- // @ts-expect-error `depth` will be set later.
578
- depth: 0,
579
- children: []
580
- };
581
- }
582
- function hardBreak() {
583
- return {
584
- type: "break"
585
- };
586
- }
587
- function html() {
588
- return {
589
- type: "html",
590
- value: ""
591
- };
592
- }
593
- function image() {
594
- return {
595
- type: "image",
596
- title: null,
597
- url: "",
598
- alt: null
599
- };
600
- }
601
- function link() {
602
- return {
603
- type: "link",
604
- title: null,
605
- url: "",
606
- children: []
607
- };
608
- }
609
- function list(token) {
610
- return {
611
- type: "list",
612
- ordered: token.type === "listOrdered",
613
- start: null,
614
- spread: token._spread,
615
- children: []
616
- };
617
- }
618
- function listItem(token) {
619
- return {
620
- type: "listItem",
621
- spread: token._spread,
622
- checked: null,
623
- children: []
624
- };
625
- }
626
- function paragraph() {
627
- return {
628
- type: "paragraph",
629
- children: []
630
- };
631
- }
632
- function strong() {
633
- return {
634
- type: "strong",
635
- children: []
636
- };
637
- }
638
- function text() {
639
- return {
640
- type: "text",
641
- value: ""
642
- };
643
- }
644
- function thematicBreak() {
645
- return {
646
- type: "thematicBreak"
647
- };
648
- }
649
- }
650
- function point(d) {
651
- return {
652
- line: d.line,
653
- column: d.column,
654
- offset: d.offset
655
- };
656
- }
657
- function configure(combined, extensions) {
658
- let index = -1;
659
- while (++index < extensions.length) {
660
- const value = extensions[index];
661
- if (Array.isArray(value)) {
662
- configure(combined, value);
663
- } else {
664
- extension(combined, value);
665
- }
666
- }
667
- }
668
- function extension(combined, extension2) {
669
- let key;
670
- for (key in extension2) {
671
- if (own.call(extension2, key)) {
672
- switch (key) {
673
- case "canContainEols": {
674
- const right = extension2[key];
675
- if (right) {
676
- combined[key].push(...right);
677
- }
678
- break;
679
- }
680
- case "transforms": {
681
- const right = extension2[key];
682
- if (right) {
683
- combined[key].push(...right);
684
- }
685
- break;
686
- }
687
- case "enter":
688
- case "exit": {
689
- const right = extension2[key];
690
- if (right) {
691
- Object.assign(combined[key], right);
692
- }
693
- break;
694
- }
695
- }
696
- }
697
- }
698
- }
699
- function defaultOnError(left, right) {
700
- if (left) {
701
- throw new Error("Cannot close `" + left.type + "` (" + stringifyPosition({
702
- start: left.start,
703
- end: left.end
704
- }) + "): a different token (`" + right.type + "`, " + stringifyPosition({
705
- start: right.start,
706
- end: right.end
707
- }) + ") is open");
708
- } else {
709
- throw new Error("Cannot close document, a token (`" + right.type + "`, " + stringifyPosition({
710
- start: right.start,
711
- end: right.end
712
- }) + ") is still open");
713
- }
714
- }
715
- export {
716
- fromMarkdown as f
717
- };