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,467 +0,0 @@
1
- import { V as VFileMessage } from "./vfile-message.mjs";
2
- import minproc from "node:process";
3
- import minpath from "node:path";
4
- import { fileURLToPath } from "node:url";
5
- function isUrl(fileUrlOrPath) {
6
- return Boolean(
7
- fileUrlOrPath !== null && typeof fileUrlOrPath === "object" && "href" in fileUrlOrPath && fileUrlOrPath.href && "protocol" in fileUrlOrPath && fileUrlOrPath.protocol && // @ts-expect-error: indexing is fine.
8
- fileUrlOrPath.auth === void 0
9
- );
10
- }
11
- const order = (
12
- /** @type {const} */
13
- [
14
- "history",
15
- "path",
16
- "basename",
17
- "stem",
18
- "extname",
19
- "dirname"
20
- ]
21
- );
22
- class VFile {
23
- /**
24
- * Create a new virtual file.
25
- *
26
- * `options` is treated as:
27
- *
28
- * * `string` or `Uint8Array` — `{value: options}`
29
- * * `URL` — `{path: options}`
30
- * * `VFile` — shallow copies its data over to the new file
31
- * * `object` — all fields are shallow copied over to the new file
32
- *
33
- * Path related fields are set in the following order (least specific to
34
- * most specific): `history`, `path`, `basename`, `stem`, `extname`,
35
- * `dirname`.
36
- *
37
- * You cannot set `dirname` or `extname` without setting either `history`,
38
- * `path`, `basename`, or `stem` too.
39
- *
40
- * @param {Compatible | null | undefined} [value]
41
- * File value.
42
- * @returns
43
- * New instance.
44
- */
45
- constructor(value) {
46
- let options;
47
- if (!value) {
48
- options = {};
49
- } else if (isUrl(value)) {
50
- options = { path: value };
51
- } else if (typeof value === "string" || isUint8Array(value)) {
52
- options = { value };
53
- } else {
54
- options = value;
55
- }
56
- this.cwd = "cwd" in options ? "" : minproc.cwd();
57
- this.data = {};
58
- this.history = [];
59
- this.messages = [];
60
- this.value;
61
- this.map;
62
- this.result;
63
- this.stored;
64
- let index = -1;
65
- while (++index < order.length) {
66
- const field2 = order[index];
67
- if (field2 in options && options[field2] !== void 0 && options[field2] !== null) {
68
- this[field2] = field2 === "history" ? [...options[field2]] : options[field2];
69
- }
70
- }
71
- let field;
72
- for (field in options) {
73
- if (!order.includes(field)) {
74
- this[field] = options[field];
75
- }
76
- }
77
- }
78
- /**
79
- * Get the basename (including extname) (example: `'index.min.js'`).
80
- *
81
- * @returns {string | undefined}
82
- * Basename.
83
- */
84
- get basename() {
85
- return typeof this.path === "string" ? minpath.basename(this.path) : void 0;
86
- }
87
- /**
88
- * Set basename (including extname) (`'index.min.js'`).
89
- *
90
- * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\'`
91
- * on windows).
92
- * Cannot be nullified (use `file.path = file.dirname` instead).
93
- *
94
- * @param {string} basename
95
- * Basename.
96
- * @returns {undefined}
97
- * Nothing.
98
- */
99
- set basename(basename) {
100
- assertNonEmpty(basename, "basename");
101
- assertPart(basename, "basename");
102
- this.path = minpath.join(this.dirname || "", basename);
103
- }
104
- /**
105
- * Get the parent path (example: `'~'`).
106
- *
107
- * @returns {string | undefined}
108
- * Dirname.
109
- */
110
- get dirname() {
111
- return typeof this.path === "string" ? minpath.dirname(this.path) : void 0;
112
- }
113
- /**
114
- * Set the parent path (example: `'~'`).
115
- *
116
- * Cannot be set if there’s no `path` yet.
117
- *
118
- * @param {string | undefined} dirname
119
- * Dirname.
120
- * @returns {undefined}
121
- * Nothing.
122
- */
123
- set dirname(dirname) {
124
- assertPath(this.basename, "dirname");
125
- this.path = minpath.join(dirname || "", this.basename);
126
- }
127
- /**
128
- * Get the extname (including dot) (example: `'.js'`).
129
- *
130
- * @returns {string | undefined}
131
- * Extname.
132
- */
133
- get extname() {
134
- return typeof this.path === "string" ? minpath.extname(this.path) : void 0;
135
- }
136
- /**
137
- * Set the extname (including dot) (example: `'.js'`).
138
- *
139
- * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\'`
140
- * on windows).
141
- * Cannot be set if there’s no `path` yet.
142
- *
143
- * @param {string | undefined} extname
144
- * Extname.
145
- * @returns {undefined}
146
- * Nothing.
147
- */
148
- set extname(extname) {
149
- assertPart(extname, "extname");
150
- assertPath(this.dirname, "extname");
151
- if (extname) {
152
- if (extname.codePointAt(0) !== 46) {
153
- throw new Error("`extname` must start with `.`");
154
- }
155
- if (extname.includes(".", 1)) {
156
- throw new Error("`extname` cannot contain multiple dots");
157
- }
158
- }
159
- this.path = minpath.join(this.dirname, this.stem + (extname || ""));
160
- }
161
- /**
162
- * Get the full path (example: `'~/index.min.js'`).
163
- *
164
- * @returns {string}
165
- * Path.
166
- */
167
- get path() {
168
- return this.history[this.history.length - 1];
169
- }
170
- /**
171
- * Set the full path (example: `'~/index.min.js'`).
172
- *
173
- * Cannot be nullified.
174
- * You can set a file URL (a `URL` object with a `file:` protocol) which will
175
- * be turned into a path with `url.fileURLToPath`.
176
- *
177
- * @param {URL | string} path
178
- * Path.
179
- * @returns {undefined}
180
- * Nothing.
181
- */
182
- set path(path) {
183
- if (isUrl(path)) {
184
- path = fileURLToPath(path);
185
- }
186
- assertNonEmpty(path, "path");
187
- if (this.path !== path) {
188
- this.history.push(path);
189
- }
190
- }
191
- /**
192
- * Get the stem (basename w/o extname) (example: `'index.min'`).
193
- *
194
- * @returns {string | undefined}
195
- * Stem.
196
- */
197
- get stem() {
198
- return typeof this.path === "string" ? minpath.basename(this.path, this.extname) : void 0;
199
- }
200
- /**
201
- * Set the stem (basename w/o extname) (example: `'index.min'`).
202
- *
203
- * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\'`
204
- * on windows).
205
- * Cannot be nullified (use `file.path = file.dirname` instead).
206
- *
207
- * @param {string} stem
208
- * Stem.
209
- * @returns {undefined}
210
- * Nothing.
211
- */
212
- set stem(stem) {
213
- assertNonEmpty(stem, "stem");
214
- assertPart(stem, "stem");
215
- this.path = minpath.join(this.dirname || "", stem + (this.extname || ""));
216
- }
217
- // Normal prototypal methods.
218
- /**
219
- * Create a fatal message for `reason` associated with the file.
220
- *
221
- * The `fatal` field of the message is set to `true` (error; file not usable)
222
- * and the `file` field is set to the current file path.
223
- * The message is added to the `messages` field on `file`.
224
- *
225
- * > 🪦 **Note**: also has obsolete signatures.
226
- *
227
- * @overload
228
- * @param {string} reason
229
- * @param {MessageOptions | null | undefined} [options]
230
- * @returns {never}
231
- *
232
- * @overload
233
- * @param {string} reason
234
- * @param {Node | NodeLike | null | undefined} parent
235
- * @param {string | null | undefined} [origin]
236
- * @returns {never}
237
- *
238
- * @overload
239
- * @param {string} reason
240
- * @param {Point | Position | null | undefined} place
241
- * @param {string | null | undefined} [origin]
242
- * @returns {never}
243
- *
244
- * @overload
245
- * @param {string} reason
246
- * @param {string | null | undefined} [origin]
247
- * @returns {never}
248
- *
249
- * @overload
250
- * @param {Error | VFileMessage} cause
251
- * @param {Node | NodeLike | null | undefined} parent
252
- * @param {string | null | undefined} [origin]
253
- * @returns {never}
254
- *
255
- * @overload
256
- * @param {Error | VFileMessage} cause
257
- * @param {Point | Position | null | undefined} place
258
- * @param {string | null | undefined} [origin]
259
- * @returns {never}
260
- *
261
- * @overload
262
- * @param {Error | VFileMessage} cause
263
- * @param {string | null | undefined} [origin]
264
- * @returns {never}
265
- *
266
- * @param {Error | VFileMessage | string} causeOrReason
267
- * Reason for message, should use markdown.
268
- * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]
269
- * Configuration (optional).
270
- * @param {string | null | undefined} [origin]
271
- * Place in code where the message originates (example:
272
- * `'my-package:my-rule'` or `'my-rule'`).
273
- * @returns {never}
274
- * Never.
275
- * @throws {VFileMessage}
276
- * Message.
277
- */
278
- fail(causeOrReason, optionsOrParentOrPlace, origin) {
279
- const message = this.message(causeOrReason, optionsOrParentOrPlace, origin);
280
- message.fatal = true;
281
- throw message;
282
- }
283
- /**
284
- * Create an info message for `reason` associated with the file.
285
- *
286
- * The `fatal` field of the message is set to `undefined` (info; change
287
- * likely not needed) and the `file` field is set to the current file path.
288
- * The message is added to the `messages` field on `file`.
289
- *
290
- * > 🪦 **Note**: also has obsolete signatures.
291
- *
292
- * @overload
293
- * @param {string} reason
294
- * @param {MessageOptions | null | undefined} [options]
295
- * @returns {VFileMessage}
296
- *
297
- * @overload
298
- * @param {string} reason
299
- * @param {Node | NodeLike | null | undefined} parent
300
- * @param {string | null | undefined} [origin]
301
- * @returns {VFileMessage}
302
- *
303
- * @overload
304
- * @param {string} reason
305
- * @param {Point | Position | null | undefined} place
306
- * @param {string | null | undefined} [origin]
307
- * @returns {VFileMessage}
308
- *
309
- * @overload
310
- * @param {string} reason
311
- * @param {string | null | undefined} [origin]
312
- * @returns {VFileMessage}
313
- *
314
- * @overload
315
- * @param {Error | VFileMessage} cause
316
- * @param {Node | NodeLike | null | undefined} parent
317
- * @param {string | null | undefined} [origin]
318
- * @returns {VFileMessage}
319
- *
320
- * @overload
321
- * @param {Error | VFileMessage} cause
322
- * @param {Point | Position | null | undefined} place
323
- * @param {string | null | undefined} [origin]
324
- * @returns {VFileMessage}
325
- *
326
- * @overload
327
- * @param {Error | VFileMessage} cause
328
- * @param {string | null | undefined} [origin]
329
- * @returns {VFileMessage}
330
- *
331
- * @param {Error | VFileMessage | string} causeOrReason
332
- * Reason for message, should use markdown.
333
- * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]
334
- * Configuration (optional).
335
- * @param {string | null | undefined} [origin]
336
- * Place in code where the message originates (example:
337
- * `'my-package:my-rule'` or `'my-rule'`).
338
- * @returns {VFileMessage}
339
- * Message.
340
- */
341
- info(causeOrReason, optionsOrParentOrPlace, origin) {
342
- const message = this.message(causeOrReason, optionsOrParentOrPlace, origin);
343
- message.fatal = void 0;
344
- return message;
345
- }
346
- /**
347
- * Create a message for `reason` associated with the file.
348
- *
349
- * The `fatal` field of the message is set to `false` (warning; change may be
350
- * needed) and the `file` field is set to the current file path.
351
- * The message is added to the `messages` field on `file`.
352
- *
353
- * > 🪦 **Note**: also has obsolete signatures.
354
- *
355
- * @overload
356
- * @param {string} reason
357
- * @param {MessageOptions | null | undefined} [options]
358
- * @returns {VFileMessage}
359
- *
360
- * @overload
361
- * @param {string} reason
362
- * @param {Node | NodeLike | null | undefined} parent
363
- * @param {string | null | undefined} [origin]
364
- * @returns {VFileMessage}
365
- *
366
- * @overload
367
- * @param {string} reason
368
- * @param {Point | Position | null | undefined} place
369
- * @param {string | null | undefined} [origin]
370
- * @returns {VFileMessage}
371
- *
372
- * @overload
373
- * @param {string} reason
374
- * @param {string | null | undefined} [origin]
375
- * @returns {VFileMessage}
376
- *
377
- * @overload
378
- * @param {Error | VFileMessage} cause
379
- * @param {Node | NodeLike | null | undefined} parent
380
- * @param {string | null | undefined} [origin]
381
- * @returns {VFileMessage}
382
- *
383
- * @overload
384
- * @param {Error | VFileMessage} cause
385
- * @param {Point | Position | null | undefined} place
386
- * @param {string | null | undefined} [origin]
387
- * @returns {VFileMessage}
388
- *
389
- * @overload
390
- * @param {Error | VFileMessage} cause
391
- * @param {string | null | undefined} [origin]
392
- * @returns {VFileMessage}
393
- *
394
- * @param {Error | VFileMessage | string} causeOrReason
395
- * Reason for message, should use markdown.
396
- * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]
397
- * Configuration (optional).
398
- * @param {string | null | undefined} [origin]
399
- * Place in code where the message originates (example:
400
- * `'my-package:my-rule'` or `'my-rule'`).
401
- * @returns {VFileMessage}
402
- * Message.
403
- */
404
- message(causeOrReason, optionsOrParentOrPlace, origin) {
405
- const message = new VFileMessage(
406
- // @ts-expect-error: the overloads are fine.
407
- causeOrReason,
408
- optionsOrParentOrPlace,
409
- origin
410
- );
411
- if (this.path) {
412
- message.name = this.path + ":" + message.name;
413
- message.file = this.path;
414
- }
415
- message.fatal = false;
416
- this.messages.push(message);
417
- return message;
418
- }
419
- /**
420
- * Serialize the file.
421
- *
422
- * > **Note**: which encodings are supported depends on the engine.
423
- * > For info on Node.js, see:
424
- * > <https://nodejs.org/api/util.html#whatwg-supported-encodings>.
425
- *
426
- * @param {string | null | undefined} [encoding='utf8']
427
- * Character encoding to understand `value` as when it’s a `Uint8Array`
428
- * (default: `'utf-8'`).
429
- * @returns {string}
430
- * Serialized file.
431
- */
432
- toString(encoding) {
433
- if (this.value === void 0) {
434
- return "";
435
- }
436
- if (typeof this.value === "string") {
437
- return this.value;
438
- }
439
- const decoder = new TextDecoder(encoding || void 0);
440
- return decoder.decode(this.value);
441
- }
442
- }
443
- function assertPart(part, name) {
444
- if (part && part.includes(minpath.sep)) {
445
- throw new Error(
446
- "`" + name + "` cannot be a path: did not expect `" + minpath.sep + "`"
447
- );
448
- }
449
- }
450
- function assertNonEmpty(part, name) {
451
- if (!part) {
452
- throw new Error("`" + name + "` cannot be empty");
453
- }
454
- }
455
- function assertPath(path, name) {
456
- if (!path) {
457
- throw new Error("Setting `" + name + "` requires `path` to be set too");
458
- }
459
- }
460
- function isUint8Array(value) {
461
- return Boolean(
462
- value && typeof value === "object" && "byteLength" in value && "byteOffset" in value
463
- );
464
- }
465
- export {
466
- VFile as V
467
- };