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.
- package/bin/hermium.mjs +102 -58
- package/dist/server/__23tanstack-start-plugin-adapters-Cwee5PKy.mjs +6 -0
- package/dist/server/_chunks/ssr-renderer.mjs +22 -0
- package/dist/server/_libs/bail.mjs +8 -0
- package/dist/server/_libs/base-ui__react.mjs +9858 -0
- package/dist/server/_libs/base-ui__utils.mjs +1106 -0
- package/dist/server/_libs/ccount.mjs +16 -0
- package/dist/server/_libs/character-entities.mjs +2130 -0
- package/dist/server/_libs/class-variance-authority.mjs +44 -0
- package/dist/server/_libs/clsx.mjs +16 -0
- package/dist/server/_libs/comma-separated-tokens.mjs +10 -0
- package/dist/server/_libs/cookie-es.mjs +1 -0
- package/dist/server/_libs/croner.mjs +1 -0
- package/dist/server/_libs/crossws.mjs +1 -0
- package/dist/server/_libs/decode-named-character-reference+[...].mjs +8 -0
- package/dist/server/_libs/devlop.mjs +8 -0
- package/dist/server/_libs/escape-string-regexp.mjs +9 -0
- package/dist/server/_libs/estree-util-is-identifier-name.mjs +11 -0
- package/dist/server/_libs/extend.mjs +97 -0
- package/dist/server/_libs/floating-ui__core.mjs +663 -0
- package/dist/server/_libs/floating-ui__dom.mjs +624 -0
- package/dist/server/_libs/floating-ui__react-dom.mjs +279 -0
- package/dist/server/_libs/floating-ui__utils.mjs +322 -0
- package/dist/server/_libs/h3.mjs +408 -0
- package/dist/server/_libs/hast-util-is-element.mjs +75 -0
- package/dist/server/_libs/hast-util-to-jsx-runtime.mjs +388 -0
- package/dist/server/_libs/hast-util-to-text.mjs +305 -0
- package/dist/server/_libs/hast-util-whitespace.mjs +10 -0
- package/dist/server/_libs/highlight.js.mjs +14756 -0
- package/dist/server/_libs/hookable.mjs +1 -0
- package/dist/server/_libs/html-url-attributes.mjs +26 -0
- package/dist/server/_libs/inline-style-parser.mjs +142 -0
- package/dist/server/_libs/is-plain-obj.mjs +10 -0
- package/dist/server/_libs/isbot.mjs +21 -0
- package/dist/server/_libs/longest-streak.mjs +25 -0
- package/dist/server/_libs/lowlight.mjs +262 -0
- package/dist/server/_libs/markdown-table.mjs +142 -0
- package/dist/server/_libs/mdast-util-find-and-replace.mjs +109 -0
- package/dist/server/_libs/mdast-util-from-markdown.mjs +717 -0
- package/dist/server/_libs/mdast-util-gfm-autolink-literal+[...].mjs +156 -0
- package/dist/server/_libs/mdast-util-gfm-footnote.mjs +117 -0
- package/dist/server/_libs/mdast-util-gfm-strikethrough.mjs +54 -0
- package/dist/server/_libs/mdast-util-gfm-table.mjs +157 -0
- package/dist/server/_libs/mdast-util-gfm-task-list-item.mjs +77 -0
- package/dist/server/_libs/mdast-util-gfm.mjs +29 -0
- package/dist/server/_libs/mdast-util-phrasing.mjs +30 -0
- package/dist/server/_libs/mdast-util-to-hast.mjs +710 -0
- package/dist/server/_libs/mdast-util-to-markdown.mjs +798 -0
- package/dist/server/_libs/mdast-util-to-string.mjs +38 -0
- package/dist/server/_libs/micromark-core-commonmark.mjs +2259 -0
- package/dist/server/_libs/micromark-extension-gfm-autolink-literal+[...].mjs +344 -0
- package/dist/server/_libs/micromark-extension-gfm-footnote+[...].mjs +279 -0
- package/dist/server/_libs/micromark-extension-gfm-strikethrough+[...].mjs +98 -0
- package/dist/server/_libs/micromark-extension-gfm-table.mjs +491 -0
- package/dist/server/_libs/micromark-extension-gfm-tagfilter+[...].mjs +1 -0
- package/dist/server/_libs/micromark-extension-gfm-task-list-item+[...].mjs +77 -0
- package/dist/server/_libs/micromark-extension-gfm.mjs +18 -0
- package/dist/server/_libs/micromark-factory-destination.mjs +94 -0
- package/dist/server/_libs/micromark-factory-label.mjs +63 -0
- package/dist/server/_libs/micromark-factory-space.mjs +24 -0
- package/dist/server/_libs/micromark-factory-title.mjs +65 -0
- package/dist/server/_libs/micromark-factory-whitespace.mjs +22 -0
- package/dist/server/_libs/micromark-util-character.mjs +44 -0
- package/dist/server/_libs/micromark-util-chunked.mjs +36 -0
- package/dist/server/_libs/micromark-util-classify-character+[...].mjs +12 -0
- package/dist/server/_libs/micromark-util-combine-extensions+[...].mjs +41 -0
- package/dist/server/_libs/micromark-util-decode-numeric-character-reference+[...].mjs +19 -0
- package/dist/server/_libs/micromark-util-decode-string.mjs +21 -0
- package/dist/server/_libs/micromark-util-encode.mjs +1 -0
- package/dist/server/_libs/micromark-util-html-tag-name.mjs +69 -0
- package/dist/server/_libs/micromark-util-normalize-identifier+[...].mjs +6 -0
- package/dist/server/_libs/micromark-util-resolve-all.mjs +15 -0
- package/dist/server/_libs/micromark-util-sanitize-uri.mjs +41 -0
- package/dist/server/_libs/micromark-util-subtokenize.mjs +346 -0
- package/dist/server/_libs/micromark.mjs +906 -0
- package/dist/server/_libs/ocache.mjs +1 -0
- package/dist/server/_libs/ohash.mjs +1 -0
- package/dist/server/_libs/property-information.mjs +1209 -0
- package/dist/server/_libs/react-dom.mjs +10779 -0
- package/dist/server/_libs/react-markdown.mjs +147 -0
- package/dist/server/_libs/react.mjs +513 -0
- package/dist/server/_libs/rehype-highlight.mjs +94 -0
- package/dist/server/_libs/remark-gfm.mjs +20 -0
- package/dist/server/_libs/remark-parse.mjs +19 -0
- package/dist/server/_libs/remark-rehype.mjs +21 -0
- package/dist/server/_libs/reselect.mjs +1 -0
- package/dist/server/_libs/rou3.mjs +8 -0
- package/dist/server/_libs/seroval-plugins.mjs +1 -0
- package/dist/server/_libs/seroval.mjs +1 -0
- package/dist/server/_libs/space-separated-tokens.mjs +6 -0
- package/dist/server/_libs/srvx.mjs +781 -0
- package/dist/server/_libs/style-to-js.mjs +72 -0
- package/dist/server/_libs/style-to-object.mjs +38 -0
- package/dist/server/_libs/tabler__icons-react.mjs +140 -0
- package/dist/server/_libs/tailwind-merge.mjs +3255 -0
- package/dist/server/_libs/tanstack__history.mjs +29 -0
- package/dist/server/_libs/tanstack__react-router.mjs +1120 -0
- package/dist/server/_libs/tanstack__react-store.mjs +2 -0
- package/dist/server/_libs/tanstack__router-core.mjs +3594 -0
- package/dist/server/_libs/tanstack__store.mjs +1 -0
- package/dist/server/_libs/trim-lines.mjs +41 -0
- package/dist/server/_libs/trough.mjs +85 -0
- package/dist/server/_libs/ufo.mjs +54 -0
- package/dist/server/_libs/unctx.mjs +1 -0
- package/dist/server/_libs/ungap__structured-clone.mjs +224 -0
- package/dist/server/_libs/unified.mjs +661 -0
- package/dist/server/_libs/unist-util-find-after.mjs +41 -0
- package/dist/server/_libs/unist-util-is.mjs +100 -0
- package/dist/server/_libs/unist-util-position.mjs +27 -0
- package/dist/server/_libs/unist-util-stringify-position.mjs +27 -0
- package/dist/server/_libs/unist-util-visit-parents.mjs +83 -0
- package/dist/server/_libs/unist-util-visit.mjs +24 -0
- package/dist/server/_libs/unstorage.mjs +1 -0
- package/dist/server/_libs/use-sync-external-store.mjs +139 -0
- package/dist/server/_libs/vfile-message.mjs +138 -0
- package/dist/server/_libs/vfile.mjs +467 -0
- package/dist/server/_libs/zustand.mjs +43 -0
- package/dist/server/_libs/zwitch.mjs +1 -0
- package/dist/server/_ssr/ChatInputBlock-Bu2-iop_.mjs +220 -0
- package/dist/server/_ssr/MarkdownMessage-CNS7OSKN.mjs +68 -0
- package/dist/server/_ssr/chat._sessionId-P02iSfut.mjs +477 -0
- package/dist/server/_ssr/chat.index-BYB_48NC.mjs +64 -0
- package/dist/server/_ssr/index-C1mT_2d8.mjs +4890 -0
- package/dist/server/_ssr/index-DFV9_oCk.mjs +43 -0
- package/dist/server/_ssr/memory-CW_fSOG9.mjs +257 -0
- package/dist/server/_ssr/router-CUAfx91O.mjs +2035 -0
- package/dist/server/_ssr/settings-DoXurzvn.mjs +10 -0
- package/dist/server/_ssr/skills-Cs7A5ZwO.mjs +422 -0
- package/dist/server/_ssr/theme-BK4-7E2h.mjs +42 -0
- package/dist/server/_ssr/usage-Bs2-LXGz.mjs +298 -0
- package/dist/server/_tanstack-start-manifest_v-C7Upe2TI.mjs +4 -0
- package/dist/server/index.mjs +506 -0
- package/package.json +4 -3
- package/dist/public/assets/css/index-Dfs9RUU9.css +0 -1
- package/dist/public/assets/css/styles-B8p6jk5Z.css +0 -1
- package/dist/public/assets/js/ChatInputBlock-Bw7AL70H.js +0 -1
- package/dist/public/assets/js/MarkdownMessage-8d7Y6VL-.js +0 -1
- package/dist/public/assets/js/base-ui-BvQbAt_1.js +0 -1
- package/dist/public/assets/js/chat._sessionId-BG6lVraH.js +0 -1
- package/dist/public/assets/js/chat.index-D2zdMPTT.js +0 -1
- package/dist/public/assets/js/index-C0AK45FU.js +0 -60
- package/dist/public/assets/js/index-Cx5En4FK.js +0 -1
- package/dist/public/assets/js/memory-CeSRdTkW.js +0 -3
- package/dist/public/assets/js/router-8uDKazL-.js +0 -1
- package/dist/public/assets/js/settings-Bc3Y5zXO.js +0 -1
- package/dist/public/assets/js/skills-DZv7sA_5.js +0 -1
- package/dist/public/assets/js/theme-CPkdkpaj.js +0 -1
- package/dist/public/assets/js/usage-DXQsT9_b.js +0 -1
- package/dist/public/assets/woff2/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2 +0 -0
- package/dist/public/assets/woff2/geist-cyrillic-wght-normal-BEAKL7Jp.woff2 +0 -0
- package/dist/public/assets/woff2/geist-latin-ext-wght-normal-DC-KSUi6.woff2 +0 -0
- package/dist/public/assets/woff2/geist-latin-wght-normal-BgDaEnEv.woff2 +0 -0
- package/dist/public/assets/woff2/geist-vietnamese-wght-normal-6IgcOCM7.woff2 +0 -0
- package/dist/public/favicon.ico +0 -0
- package/dist/public/logo.png +0 -0
- package/dist/public/manifest.json +0 -25
- package/dist/public/robots.txt +0 -3
|
@@ -0,0 +1,467 @@
|
|
|
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
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { R as React } from "./react.mjs";
|
|
2
|
+
const createStoreImpl = (createState) => {
|
|
3
|
+
let state;
|
|
4
|
+
const listeners = /* @__PURE__ */ new Set();
|
|
5
|
+
const setState = (partial, replace) => {
|
|
6
|
+
const nextState = typeof partial === "function" ? partial(state) : partial;
|
|
7
|
+
if (!Object.is(nextState, state)) {
|
|
8
|
+
const previousState = state;
|
|
9
|
+
state = (replace != null ? replace : typeof nextState !== "object" || nextState === null) ? nextState : Object.assign({}, state, nextState);
|
|
10
|
+
listeners.forEach((listener) => listener(state, previousState));
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
const getState = () => state;
|
|
14
|
+
const getInitialState = () => initialState;
|
|
15
|
+
const subscribe = (listener) => {
|
|
16
|
+
listeners.add(listener);
|
|
17
|
+
return () => listeners.delete(listener);
|
|
18
|
+
};
|
|
19
|
+
const api = { setState, getState, getInitialState, subscribe };
|
|
20
|
+
const initialState = state = createState(setState, getState, api);
|
|
21
|
+
return api;
|
|
22
|
+
};
|
|
23
|
+
const createStore = ((createState) => createState ? createStoreImpl(createState) : createStoreImpl);
|
|
24
|
+
const identity = (arg) => arg;
|
|
25
|
+
function useStore(api, selector = identity) {
|
|
26
|
+
const slice = React.useSyncExternalStore(
|
|
27
|
+
api.subscribe,
|
|
28
|
+
React.useCallback(() => selector(api.getState()), [api, selector]),
|
|
29
|
+
React.useCallback(() => selector(api.getInitialState()), [api, selector])
|
|
30
|
+
);
|
|
31
|
+
React.useDebugValue(slice);
|
|
32
|
+
return slice;
|
|
33
|
+
}
|
|
34
|
+
const createImpl = (createState) => {
|
|
35
|
+
const api = createStore(createState);
|
|
36
|
+
const useBoundStore = (selector) => useStore(api, selector);
|
|
37
|
+
Object.assign(useBoundStore, api);
|
|
38
|
+
return useBoundStore;
|
|
39
|
+
};
|
|
40
|
+
const create = ((createState) => createState ? createImpl(createState) : createImpl);
|
|
41
|
+
export {
|
|
42
|
+
create as c
|
|
43
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|