hermium 0.2.0 → 0.3.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 (157) hide show
  1. package/bin/hermium.mjs +102 -58
  2. package/dist/server/__23tanstack-start-plugin-adapters-Cwee5PKy.mjs +6 -0
  3. package/dist/server/_chunks/ssr-renderer.mjs +22 -0
  4. package/dist/server/_libs/bail.mjs +8 -0
  5. package/dist/server/_libs/base-ui__react.mjs +9858 -0
  6. package/dist/server/_libs/base-ui__utils.mjs +1106 -0
  7. package/dist/server/_libs/ccount.mjs +16 -0
  8. package/dist/server/_libs/character-entities.mjs +2130 -0
  9. package/dist/server/_libs/class-variance-authority.mjs +44 -0
  10. package/dist/server/_libs/clsx.mjs +16 -0
  11. package/dist/server/_libs/comma-separated-tokens.mjs +10 -0
  12. package/dist/server/_libs/cookie-es.mjs +1 -0
  13. package/dist/server/_libs/croner.mjs +1 -0
  14. package/dist/server/_libs/crossws.mjs +1 -0
  15. package/dist/server/_libs/decode-named-character-reference+[...].mjs +8 -0
  16. package/dist/server/_libs/devlop.mjs +8 -0
  17. package/dist/server/_libs/escape-string-regexp.mjs +9 -0
  18. package/dist/server/_libs/estree-util-is-identifier-name.mjs +11 -0
  19. package/dist/server/_libs/extend.mjs +97 -0
  20. package/dist/server/_libs/floating-ui__core.mjs +663 -0
  21. package/dist/server/_libs/floating-ui__dom.mjs +624 -0
  22. package/dist/server/_libs/floating-ui__react-dom.mjs +279 -0
  23. package/dist/server/_libs/floating-ui__utils.mjs +322 -0
  24. package/dist/server/_libs/h3.mjs +408 -0
  25. package/dist/server/_libs/hast-util-is-element.mjs +75 -0
  26. package/dist/server/_libs/hast-util-to-jsx-runtime.mjs +388 -0
  27. package/dist/server/_libs/hast-util-to-text.mjs +305 -0
  28. package/dist/server/_libs/hast-util-whitespace.mjs +10 -0
  29. package/dist/server/_libs/highlight.js.mjs +14756 -0
  30. package/dist/server/_libs/hookable.mjs +1 -0
  31. package/dist/server/_libs/html-url-attributes.mjs +26 -0
  32. package/dist/server/_libs/inline-style-parser.mjs +142 -0
  33. package/dist/server/_libs/is-plain-obj.mjs +10 -0
  34. package/dist/server/_libs/isbot.mjs +21 -0
  35. package/dist/server/_libs/longest-streak.mjs +25 -0
  36. package/dist/server/_libs/lowlight.mjs +262 -0
  37. package/dist/server/_libs/markdown-table.mjs +142 -0
  38. package/dist/server/_libs/mdast-util-find-and-replace.mjs +109 -0
  39. package/dist/server/_libs/mdast-util-from-markdown.mjs +717 -0
  40. package/dist/server/_libs/mdast-util-gfm-autolink-literal+[...].mjs +156 -0
  41. package/dist/server/_libs/mdast-util-gfm-footnote.mjs +117 -0
  42. package/dist/server/_libs/mdast-util-gfm-strikethrough.mjs +54 -0
  43. package/dist/server/_libs/mdast-util-gfm-table.mjs +157 -0
  44. package/dist/server/_libs/mdast-util-gfm-task-list-item.mjs +77 -0
  45. package/dist/server/_libs/mdast-util-gfm.mjs +29 -0
  46. package/dist/server/_libs/mdast-util-phrasing.mjs +30 -0
  47. package/dist/server/_libs/mdast-util-to-hast.mjs +710 -0
  48. package/dist/server/_libs/mdast-util-to-markdown.mjs +798 -0
  49. package/dist/server/_libs/mdast-util-to-string.mjs +38 -0
  50. package/dist/server/_libs/micromark-core-commonmark.mjs +2259 -0
  51. package/dist/server/_libs/micromark-extension-gfm-autolink-literal+[...].mjs +344 -0
  52. package/dist/server/_libs/micromark-extension-gfm-footnote+[...].mjs +279 -0
  53. package/dist/server/_libs/micromark-extension-gfm-strikethrough+[...].mjs +98 -0
  54. package/dist/server/_libs/micromark-extension-gfm-table.mjs +491 -0
  55. package/dist/server/_libs/micromark-extension-gfm-tagfilter+[...].mjs +1 -0
  56. package/dist/server/_libs/micromark-extension-gfm-task-list-item+[...].mjs +77 -0
  57. package/dist/server/_libs/micromark-extension-gfm.mjs +18 -0
  58. package/dist/server/_libs/micromark-factory-destination.mjs +94 -0
  59. package/dist/server/_libs/micromark-factory-label.mjs +63 -0
  60. package/dist/server/_libs/micromark-factory-space.mjs +24 -0
  61. package/dist/server/_libs/micromark-factory-title.mjs +65 -0
  62. package/dist/server/_libs/micromark-factory-whitespace.mjs +22 -0
  63. package/dist/server/_libs/micromark-util-character.mjs +44 -0
  64. package/dist/server/_libs/micromark-util-chunked.mjs +36 -0
  65. package/dist/server/_libs/micromark-util-classify-character+[...].mjs +12 -0
  66. package/dist/server/_libs/micromark-util-combine-extensions+[...].mjs +41 -0
  67. package/dist/server/_libs/micromark-util-decode-numeric-character-reference+[...].mjs +19 -0
  68. package/dist/server/_libs/micromark-util-decode-string.mjs +21 -0
  69. package/dist/server/_libs/micromark-util-encode.mjs +1 -0
  70. package/dist/server/_libs/micromark-util-html-tag-name.mjs +69 -0
  71. package/dist/server/_libs/micromark-util-normalize-identifier+[...].mjs +6 -0
  72. package/dist/server/_libs/micromark-util-resolve-all.mjs +15 -0
  73. package/dist/server/_libs/micromark-util-sanitize-uri.mjs +41 -0
  74. package/dist/server/_libs/micromark-util-subtokenize.mjs +346 -0
  75. package/dist/server/_libs/micromark.mjs +906 -0
  76. package/dist/server/_libs/ocache.mjs +1 -0
  77. package/dist/server/_libs/ohash.mjs +1 -0
  78. package/dist/server/_libs/property-information.mjs +1209 -0
  79. package/dist/server/_libs/react-dom.mjs +10779 -0
  80. package/dist/server/_libs/react-markdown.mjs +147 -0
  81. package/dist/server/_libs/react.mjs +513 -0
  82. package/dist/server/_libs/rehype-highlight.mjs +94 -0
  83. package/dist/server/_libs/remark-gfm.mjs +20 -0
  84. package/dist/server/_libs/remark-parse.mjs +19 -0
  85. package/dist/server/_libs/remark-rehype.mjs +21 -0
  86. package/dist/server/_libs/reselect.mjs +1 -0
  87. package/dist/server/_libs/rou3.mjs +8 -0
  88. package/dist/server/_libs/seroval-plugins.mjs +1 -0
  89. package/dist/server/_libs/seroval.mjs +1 -0
  90. package/dist/server/_libs/space-separated-tokens.mjs +6 -0
  91. package/dist/server/_libs/srvx.mjs +781 -0
  92. package/dist/server/_libs/style-to-js.mjs +72 -0
  93. package/dist/server/_libs/style-to-object.mjs +38 -0
  94. package/dist/server/_libs/tabler__icons-react.mjs +140 -0
  95. package/dist/server/_libs/tailwind-merge.mjs +3255 -0
  96. package/dist/server/_libs/tanstack__history.mjs +29 -0
  97. package/dist/server/_libs/tanstack__react-router.mjs +1120 -0
  98. package/dist/server/_libs/tanstack__react-store.mjs +2 -0
  99. package/dist/server/_libs/tanstack__router-core.mjs +3594 -0
  100. package/dist/server/_libs/tanstack__store.mjs +1 -0
  101. package/dist/server/_libs/trim-lines.mjs +41 -0
  102. package/dist/server/_libs/trough.mjs +85 -0
  103. package/dist/server/_libs/ufo.mjs +54 -0
  104. package/dist/server/_libs/unctx.mjs +1 -0
  105. package/dist/server/_libs/ungap__structured-clone.mjs +224 -0
  106. package/dist/server/_libs/unified.mjs +661 -0
  107. package/dist/server/_libs/unist-util-find-after.mjs +41 -0
  108. package/dist/server/_libs/unist-util-is.mjs +100 -0
  109. package/dist/server/_libs/unist-util-position.mjs +27 -0
  110. package/dist/server/_libs/unist-util-stringify-position.mjs +27 -0
  111. package/dist/server/_libs/unist-util-visit-parents.mjs +83 -0
  112. package/dist/server/_libs/unist-util-visit.mjs +24 -0
  113. package/dist/server/_libs/unstorage.mjs +1 -0
  114. package/dist/server/_libs/use-sync-external-store.mjs +139 -0
  115. package/dist/server/_libs/vfile-message.mjs +138 -0
  116. package/dist/server/_libs/vfile.mjs +467 -0
  117. package/dist/server/_libs/zustand.mjs +43 -0
  118. package/dist/server/_libs/zwitch.mjs +1 -0
  119. package/dist/server/_ssr/ChatInputBlock-Bu2-iop_.mjs +220 -0
  120. package/dist/server/_ssr/MarkdownMessage-CNS7OSKN.mjs +68 -0
  121. package/dist/server/_ssr/chat._sessionId-P02iSfut.mjs +477 -0
  122. package/dist/server/_ssr/chat.index-BYB_48NC.mjs +64 -0
  123. package/dist/server/_ssr/index-C1mT_2d8.mjs +4890 -0
  124. package/dist/server/_ssr/index-DFV9_oCk.mjs +43 -0
  125. package/dist/server/_ssr/memory-CW_fSOG9.mjs +257 -0
  126. package/dist/server/_ssr/router-CUAfx91O.mjs +2035 -0
  127. package/dist/server/_ssr/settings-DoXurzvn.mjs +10 -0
  128. package/dist/server/_ssr/skills-Cs7A5ZwO.mjs +422 -0
  129. package/dist/server/_ssr/theme-BK4-7E2h.mjs +42 -0
  130. package/dist/server/_ssr/usage-Bs2-LXGz.mjs +298 -0
  131. package/dist/server/_tanstack-start-manifest_v-C7Upe2TI.mjs +4 -0
  132. package/dist/server/index.mjs +506 -0
  133. package/package.json +4 -3
  134. package/dist/public/assets/css/index-Dfs9RUU9.css +0 -1
  135. package/dist/public/assets/css/styles-B8p6jk5Z.css +0 -1
  136. package/dist/public/assets/js/ChatInputBlock-Bw7AL70H.js +0 -1
  137. package/dist/public/assets/js/MarkdownMessage-8d7Y6VL-.js +0 -1
  138. package/dist/public/assets/js/base-ui-BvQbAt_1.js +0 -1
  139. package/dist/public/assets/js/chat._sessionId-BG6lVraH.js +0 -1
  140. package/dist/public/assets/js/chat.index-D2zdMPTT.js +0 -1
  141. package/dist/public/assets/js/index-C0AK45FU.js +0 -60
  142. package/dist/public/assets/js/index-Cx5En4FK.js +0 -1
  143. package/dist/public/assets/js/memory-CeSRdTkW.js +0 -3
  144. package/dist/public/assets/js/router-8uDKazL-.js +0 -1
  145. package/dist/public/assets/js/settings-Bc3Y5zXO.js +0 -1
  146. package/dist/public/assets/js/skills-DZv7sA_5.js +0 -1
  147. package/dist/public/assets/js/theme-CPkdkpaj.js +0 -1
  148. package/dist/public/assets/js/usage-DXQsT9_b.js +0 -1
  149. package/dist/public/assets/woff2/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2 +0 -0
  150. package/dist/public/assets/woff2/geist-cyrillic-wght-normal-BEAKL7Jp.woff2 +0 -0
  151. package/dist/public/assets/woff2/geist-latin-ext-wght-normal-DC-KSUi6.woff2 +0 -0
  152. package/dist/public/assets/woff2/geist-latin-wght-normal-BgDaEnEv.woff2 +0 -0
  153. package/dist/public/assets/woff2/geist-vietnamese-wght-normal-6IgcOCM7.woff2 +0 -0
  154. package/dist/public/favicon.ico +0 -0
  155. package/dist/public/logo.png +0 -0
  156. package/dist/public/manifest.json +0 -25
  157. package/dist/public/robots.txt +0 -3
@@ -0,0 +1,717 @@
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 { a as postprocess, p 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
+ };