hermium 0.1.9 → 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 (209) 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-BHkmI3j7.js +0 -1
  28. package/dist/public/assets/IconAlertTriangle-wCJudlVg.js +0 -1
  29. package/dist/public/assets/IconCheck-CFuEh_p7.js +0 -1
  30. package/dist/public/assets/IconLoader2-BIx3OuF9.js +0 -1
  31. package/dist/public/assets/IconRefresh-Dgm93w3T.js +0 -1
  32. package/dist/public/assets/geist-cyrillic-wght-normal-CHSlOQsW.woff2 +0 -0
  33. package/dist/public/assets/geist-latin-ext-wght-normal-DMtmJ5ZE.woff2 +0 -0
  34. package/dist/public/assets/geist-latin-wght-normal-Dm3htQBi.woff2 +0 -0
  35. package/dist/public/assets/index-Bbz3abmO.js +0 -14
  36. package/dist/public/assets/index-CWUaRwcE.js +0 -1
  37. package/dist/public/assets/index-CinLq3cd.js +0 -1
  38. package/dist/public/assets/index-CrQs9n6q.js +0 -29
  39. package/dist/public/assets/index-CtacpN3I.js +0 -1
  40. package/dist/public/assets/index-DY7aE-9s.js +0 -2
  41. package/dist/public/assets/index-DkYGodJj.js +0 -94
  42. package/dist/public/assets/index-DvDLadUx.js +0 -1
  43. package/dist/public/assets/index-U6RcWedt.js +0 -1
  44. package/dist/public/assets/index-_6iFZ0fh.js +0 -1
  45. package/dist/public/assets/index-enFS26SU.js +0 -1
  46. package/dist/public/assets/input-eNcwlDHp.js +0 -1
  47. package/dist/public/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
  48. package/dist/public/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
  49. package/dist/public/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
  50. package/dist/public/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
  51. package/dist/public/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
  52. package/dist/public/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
  53. package/dist/public/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
  54. package/dist/public/assets/queries-iHRgZzw2.js +0 -1
  55. package/dist/public/assets/styles-KcflDlA_.css +0 -1
  56. package/dist/public/assets/switch-B1DcZLwL.js +0 -1
  57. package/dist/public/assets/syntax-highlighter-DWPF-A_h.js +0 -6
  58. package/dist/public/assets/textarea-Di_syYTS.js +0 -1
  59. package/dist/public/favicon.png +0 -0
  60. package/dist/public/nous-logo.png +0 -0
  61. package/dist/server/index.mjs +0 -244
  62. package/dist/web-server/__23tanstack-start-plugin-adapters-Cwee5PKy.mjs +0 -6
  63. package/dist/web-server/_chunks/ssr-renderer.mjs +0 -22
  64. package/dist/web-server/_libs/babel__runtime.mjs +0 -237
  65. package/dist/web-server/_libs/bail.mjs +0 -8
  66. package/dist/web-server/_libs/base-ui__react.mjs +0 -9554
  67. package/dist/web-server/_libs/base-ui__utils.mjs +0 -1101
  68. package/dist/web-server/_libs/ccount.mjs +0 -16
  69. package/dist/web-server/_libs/character-entities-legacy.mjs +0 -111
  70. package/dist/web-server/_libs/character-entities.mjs +0 -2130
  71. package/dist/web-server/_libs/character-reference-invalid.mjs +0 -33
  72. package/dist/web-server/_libs/class-variance-authority.mjs +0 -44
  73. package/dist/web-server/_libs/clsx.mjs +0 -16
  74. package/dist/web-server/_libs/comma-separated-tokens.mjs +0 -31
  75. package/dist/web-server/_libs/cookie-es.mjs +0 -44
  76. package/dist/web-server/_libs/croner.mjs +0 -1
  77. package/dist/web-server/_libs/crossws.mjs +0 -1
  78. package/dist/web-server/_libs/decode-named-character-reference+[...].mjs +0 -8
  79. package/dist/web-server/_libs/devlop.mjs +0 -8
  80. package/dist/web-server/_libs/escape-string-regexp.mjs +0 -9
  81. package/dist/web-server/_libs/estree-util-is-identifier-name.mjs +0 -11
  82. package/dist/web-server/_libs/extend.mjs +0 -97
  83. package/dist/web-server/_libs/fault.mjs +0 -1
  84. package/dist/web-server/_libs/floating-ui__core.mjs +0 -663
  85. package/dist/web-server/_libs/floating-ui__dom.mjs +0 -624
  86. package/dist/web-server/_libs/floating-ui__react-dom.mjs +0 -279
  87. package/dist/web-server/_libs/floating-ui__utils.mjs +0 -322
  88. package/dist/web-server/_libs/format.mjs +0 -1
  89. package/dist/web-server/_libs/h3.mjs +0 -408
  90. package/dist/web-server/_libs/hast-util-parse-selector.mjs +0 -39
  91. package/dist/web-server/_libs/hast-util-to-jsx-runtime.mjs +0 -388
  92. package/dist/web-server/_libs/hast-util-whitespace.mjs +0 -10
  93. package/dist/web-server/_libs/hastscript.mjs +0 -200
  94. package/dist/web-server/_libs/highlight.js.mjs +0 -1
  95. package/dist/web-server/_libs/hookable.mjs +0 -1
  96. package/dist/web-server/_libs/html-url-attributes.mjs +0 -26
  97. package/dist/web-server/_libs/inline-style-parser.mjs +0 -142
  98. package/dist/web-server/_libs/is-alphabetical.mjs +0 -7
  99. package/dist/web-server/_libs/is-alphanumerical.mjs +0 -8
  100. package/dist/web-server/_libs/is-decimal.mjs +0 -7
  101. package/dist/web-server/_libs/is-hexadecimal.mjs +0 -7
  102. package/dist/web-server/_libs/is-plain-obj.mjs +0 -10
  103. package/dist/web-server/_libs/isbot.mjs +0 -21
  104. package/dist/web-server/_libs/longest-streak.mjs +0 -25
  105. package/dist/web-server/_libs/lowlight.mjs +0 -1
  106. package/dist/web-server/_libs/markdown-table.mjs +0 -142
  107. package/dist/web-server/_libs/mdast-util-find-and-replace.mjs +0 -109
  108. package/dist/web-server/_libs/mdast-util-from-markdown.mjs +0 -717
  109. package/dist/web-server/_libs/mdast-util-gfm-autolink-literal+[...].mjs +0 -156
  110. package/dist/web-server/_libs/mdast-util-gfm-footnote.mjs +0 -117
  111. package/dist/web-server/_libs/mdast-util-gfm-strikethrough.mjs +0 -54
  112. package/dist/web-server/_libs/mdast-util-gfm-table.mjs +0 -157
  113. package/dist/web-server/_libs/mdast-util-gfm-task-list-item.mjs +0 -77
  114. package/dist/web-server/_libs/mdast-util-gfm.mjs +0 -29
  115. package/dist/web-server/_libs/mdast-util-phrasing.mjs +0 -30
  116. package/dist/web-server/_libs/mdast-util-to-hast.mjs +0 -710
  117. package/dist/web-server/_libs/mdast-util-to-markdown.mjs +0 -798
  118. package/dist/web-server/_libs/mdast-util-to-string.mjs +0 -38
  119. package/dist/web-server/_libs/micromark-core-commonmark.mjs +0 -2259
  120. package/dist/web-server/_libs/micromark-extension-gfm-autolink-literal+[...].mjs +0 -344
  121. package/dist/web-server/_libs/micromark-extension-gfm-footnote+[...].mjs +0 -279
  122. package/dist/web-server/_libs/micromark-extension-gfm-strikethrough+[...].mjs +0 -98
  123. package/dist/web-server/_libs/micromark-extension-gfm-table.mjs +0 -491
  124. package/dist/web-server/_libs/micromark-extension-gfm-tagfilter+[...].mjs +0 -1
  125. package/dist/web-server/_libs/micromark-extension-gfm-task-list-item+[...].mjs +0 -77
  126. package/dist/web-server/_libs/micromark-extension-gfm.mjs +0 -18
  127. package/dist/web-server/_libs/micromark-factory-destination.mjs +0 -94
  128. package/dist/web-server/_libs/micromark-factory-label.mjs +0 -63
  129. package/dist/web-server/_libs/micromark-factory-space.mjs +0 -24
  130. package/dist/web-server/_libs/micromark-factory-title.mjs +0 -65
  131. package/dist/web-server/_libs/micromark-factory-whitespace.mjs +0 -22
  132. package/dist/web-server/_libs/micromark-util-character.mjs +0 -44
  133. package/dist/web-server/_libs/micromark-util-chunked.mjs +0 -36
  134. package/dist/web-server/_libs/micromark-util-classify-character+[...].mjs +0 -12
  135. package/dist/web-server/_libs/micromark-util-combine-extensions+[...].mjs +0 -41
  136. package/dist/web-server/_libs/micromark-util-decode-numeric-character-reference+[...].mjs +0 -19
  137. package/dist/web-server/_libs/micromark-util-decode-string.mjs +0 -21
  138. package/dist/web-server/_libs/micromark-util-encode.mjs +0 -1
  139. package/dist/web-server/_libs/micromark-util-html-tag-name.mjs +0 -69
  140. package/dist/web-server/_libs/micromark-util-normalize-identifier+[...].mjs +0 -6
  141. package/dist/web-server/_libs/micromark-util-resolve-all.mjs +0 -15
  142. package/dist/web-server/_libs/micromark-util-sanitize-uri.mjs +0 -41
  143. package/dist/web-server/_libs/micromark-util-subtokenize.mjs +0 -346
  144. package/dist/web-server/_libs/micromark.mjs +0 -906
  145. package/dist/web-server/_libs/ocache.mjs +0 -1
  146. package/dist/web-server/_libs/ohash.mjs +0 -1
  147. package/dist/web-server/_libs/parse-entities.mjs +0 -245
  148. package/dist/web-server/_libs/property-information.mjs +0 -1210
  149. package/dist/web-server/_libs/react-dom.mjs +0 -10779
  150. package/dist/web-server/_libs/react-markdown.mjs +0 -147
  151. package/dist/web-server/_libs/react-syntax-highlighter.mjs +0 -941
  152. package/dist/web-server/_libs/react.mjs +0 -513
  153. package/dist/web-server/_libs/refractor.mjs +0 -2425
  154. package/dist/web-server/_libs/remark-gfm.mjs +0 -20
  155. package/dist/web-server/_libs/remark-parse.mjs +0 -19
  156. package/dist/web-server/_libs/remark-rehype.mjs +0 -21
  157. package/dist/web-server/_libs/reselect.mjs +0 -1
  158. package/dist/web-server/_libs/rou3.mjs +0 -8
  159. package/dist/web-server/_libs/seroval-plugins.mjs +0 -58
  160. package/dist/web-server/_libs/seroval.mjs +0 -1775
  161. package/dist/web-server/_libs/space-separated-tokens.mjs +0 -11
  162. package/dist/web-server/_libs/srvx.mjs +0 -781
  163. package/dist/web-server/_libs/style-to-js.mjs +0 -72
  164. package/dist/web-server/_libs/style-to-object.mjs +0 -38
  165. package/dist/web-server/_libs/tabler__icons-react.mjs +0 -230
  166. package/dist/web-server/_libs/tanstack__history.mjs +0 -204
  167. package/dist/web-server/_libs/tanstack__query-core.mjs +0 -2552
  168. package/dist/web-server/_libs/tanstack__react-query.mjs +0 -190
  169. package/dist/web-server/_libs/tanstack__react-router.mjs +0 -1120
  170. package/dist/web-server/_libs/tanstack__react-store.mjs +0 -2
  171. package/dist/web-server/_libs/tanstack__router-core.mjs +0 -4288
  172. package/dist/web-server/_libs/tanstack__store.mjs +0 -1
  173. package/dist/web-server/_libs/trim-lines.mjs +0 -41
  174. package/dist/web-server/_libs/trough.mjs +0 -85
  175. package/dist/web-server/_libs/ufo.mjs +0 -54
  176. package/dist/web-server/_libs/unctx.mjs +0 -1
  177. package/dist/web-server/_libs/ungap__structured-clone.mjs +0 -224
  178. package/dist/web-server/_libs/unified.mjs +0 -661
  179. package/dist/web-server/_libs/unist-util-is.mjs +0 -100
  180. package/dist/web-server/_libs/unist-util-position.mjs +0 -27
  181. package/dist/web-server/_libs/unist-util-stringify-position.mjs +0 -27
  182. package/dist/web-server/_libs/unist-util-visit-parents.mjs +0 -83
  183. package/dist/web-server/_libs/unist-util-visit.mjs +0 -24
  184. package/dist/web-server/_libs/unstorage.mjs +0 -1
  185. package/dist/web-server/_libs/use-sync-external-store.mjs +0 -139
  186. package/dist/web-server/_libs/vfile-message.mjs +0 -138
  187. package/dist/web-server/_libs/vfile.mjs +0 -467
  188. package/dist/web-server/_libs/zod.mjs +0 -3915
  189. package/dist/web-server/_libs/zustand.mjs +0 -343
  190. package/dist/web-server/_libs/zwitch.mjs +0 -1
  191. package/dist/web-server/_ssr/index-0n2Z3BPQ.mjs +0 -369
  192. package/dist/web-server/_ssr/index-6itDALOw.mjs +0 -339
  193. package/dist/web-server/_ssr/index-BIRTrOmp.mjs +0 -449
  194. package/dist/web-server/_ssr/index-BPzfADac.mjs +0 -66
  195. package/dist/web-server/_ssr/index-BQE3bF14.mjs +0 -1870
  196. package/dist/web-server/_ssr/index-C5HpvlUP.mjs +0 -190
  197. package/dist/web-server/_ssr/index-C_ZxnypN.mjs +0 -213
  198. package/dist/web-server/_ssr/index-Ca8JFH8f.mjs +0 -612
  199. package/dist/web-server/_ssr/index-DNVESZiA.mjs +0 -513
  200. package/dist/web-server/_ssr/index.mjs +0 -1558
  201. package/dist/web-server/_ssr/input-CqXjTRQg.mjs +0 -20
  202. package/dist/web-server/_ssr/queries-3H_19mUt.mjs +0 -16
  203. package/dist/web-server/_ssr/router-sbsNus0Y.mjs +0 -2093
  204. package/dist/web-server/_ssr/start-HYkvq4Ni.mjs +0 -4
  205. package/dist/web-server/_ssr/switch-usf2F1UM.mjs +0 -33
  206. package/dist/web-server/_ssr/syntax-highlighter-5vezNTce.mjs +0 -62
  207. package/dist/web-server/_ssr/textarea-DfRheWY0.mjs +0 -18
  208. package/dist/web-server/_tanstack-start-manifest_v-DqW-pKEH.mjs +0 -4
  209. package/dist/web-server/index.mjs +0 -597
@@ -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
- };