astro-md-editor 0.0.1
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/.output/nitro.json +17 -0
- package/.output/public/assets/index-Cc7yKB0o.js +19 -0
- package/.output/public/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
- package/.output/public/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
- package/.output/public/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
- package/.output/public/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
- package/.output/public/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
- package/.output/public/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
- package/.output/public/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
- package/.output/public/assets/main-DDBjVFnt.js +17 -0
- package/.output/public/assets/styles-ggfdUHMo.css +1 -0
- package/.output/public/favicon.ico +0 -0
- package/.output/public/logo192.png +0 -0
- package/.output/public/logo512.png +0 -0
- package/.output/public/manifest.json +25 -0
- package/.output/public/robots.txt +3 -0
- package/.output/server/__root-C09LBXMv.mjs +40 -0
- package/.output/server/_chunks/ssr-renderer.mjs +21 -0
- package/.output/server/_libs/ajv-formats.mjs +330 -0
- package/.output/server/_libs/ajv.mjs +5484 -0
- package/.output/server/_libs/base-ui__react.mjs +8712 -0
- package/.output/server/_libs/base-ui__utils.mjs +980 -0
- package/.output/server/_libs/class-variance-authority.mjs +44 -0
- package/.output/server/_libs/clsx.mjs +16 -0
- package/.output/server/_libs/cookie-es.mjs +58 -0
- package/.output/server/_libs/croner.mjs +1 -0
- package/.output/server/_libs/crossws.mjs +1 -0
- package/.output/server/_libs/date-fns.mjs +1716 -0
- package/.output/server/_libs/date-fns__tz.mjs +217 -0
- package/.output/server/_libs/extend-shallow.mjs +35 -0
- package/.output/server/_libs/fast-deep-equal.mjs +38 -0
- package/.output/server/_libs/fast-uri.mjs +725 -0
- package/.output/server/_libs/floating-ui__core.mjs +663 -0
- package/.output/server/_libs/floating-ui__dom.mjs +624 -0
- package/.output/server/_libs/floating-ui__react-dom.mjs +279 -0
- package/.output/server/_libs/floating-ui__utils.mjs +322 -0
- package/.output/server/_libs/gray-matter.mjs +393 -0
- package/.output/server/_libs/h3-v2.mjs +276 -0
- package/.output/server/_libs/h3.mjs +400 -0
- package/.output/server/_libs/hookable.mjs +1 -0
- package/.output/server/_libs/is-extendable.mjs +13 -0
- package/.output/server/_libs/isbot.mjs +20 -0
- package/.output/server/_libs/js-yaml.mjs +2822 -0
- package/.output/server/_libs/json-schema-traverse.mjs +91 -0
- package/.output/server/_libs/kind-of.mjs +125 -0
- package/.output/server/_libs/lucide-react.mjs +177 -0
- package/.output/server/_libs/ohash.mjs +1 -0
- package/.output/server/_libs/react-day-picker.mjs +2216 -0
- package/.output/server/_libs/react-dom.mjs +10779 -0
- package/.output/server/_libs/react-resizable-panels.mjs +2024 -0
- package/.output/server/_libs/react.mjs +513 -0
- package/.output/server/_libs/reselect.mjs +326 -0
- package/.output/server/_libs/rou3.mjs +8 -0
- package/.output/server/_libs/section-matter.mjs +112 -0
- package/.output/server/_libs/seroval-plugins.mjs +58 -0
- package/.output/server/_libs/seroval.mjs +1765 -0
- package/.output/server/_libs/srvx.mjs +736 -0
- package/.output/server/_libs/strip-bom-string.mjs +16 -0
- package/.output/server/_libs/tabbable.mjs +342 -0
- package/.output/server/_libs/tailwind-merge.mjs +3175 -0
- package/.output/server/_libs/tanstack__history.mjs +217 -0
- package/.output/server/_libs/tanstack__react-router.mjs +1464 -0
- package/.output/server/_libs/tanstack__react-store.mjs +1 -0
- package/.output/server/_libs/tanstack__router-core.mjs +4912 -0
- package/.output/server/_libs/tanstack__store.mjs +1 -0
- package/.output/server/_libs/tiny-invariant.mjs +12 -0
- package/.output/server/_libs/tiny-warning.mjs +5 -0
- package/.output/server/_libs/ufo.mjs +54 -0
- package/.output/server/_libs/unctx.mjs +1 -0
- package/.output/server/_libs/unstorage.mjs +1 -0
- package/.output/server/_libs/use-sync-external-store.mjs +139 -0
- package/.output/server/_libs/zod.mjs +3634 -0
- package/.output/server/_libs/zustand.mjs +43 -0
- package/.output/server/_ssr/RightSidebar-RSY9M7XF.mjs +218 -0
- package/.output/server/_ssr/collections.server-D6U2tEsT.mjs +120 -0
- package/.output/server/_ssr/createServerRpc-29xaFZcb.mjs +12 -0
- package/.output/server/_ssr/index-BaqV4cZC.mjs +2083 -0
- package/.output/server/_ssr/index-sQBM6rwN.mjs +115 -0
- package/.output/server/_ssr/index.mjs +1448 -0
- package/.output/server/_ssr/router-D4G1DGr3.mjs +155 -0
- package/.output/server/_ssr/start-HYkvq4Ni.mjs +4 -0
- package/.output/server/_tanstack-start-manifest_v-CYEHh_qB.mjs +4 -0
- package/.output/server/index.mjs +451 -0
- package/README.md +118 -0
- package/index.mjs +21 -0
- package/package.json +86 -0
- package/scripts/bootstrap-collections.mjs +1201 -0
|
@@ -0,0 +1,393 @@
|
|
|
1
|
+
import { g as getDefaultExportFromCjs } from "./react.mjs";
|
|
2
|
+
import require$$0 from "fs";
|
|
3
|
+
import { r as requireSectionMatter } from "./section-matter.mjs";
|
|
4
|
+
import { r as requireJsYaml } from "./js-yaml.mjs";
|
|
5
|
+
import { r as requireStripBomString } from "./strip-bom-string.mjs";
|
|
6
|
+
import { r as requireKindOf } from "./kind-of.mjs";
|
|
7
|
+
var engines = { exports: {} };
|
|
8
|
+
var hasRequiredEngines;
|
|
9
|
+
function requireEngines() {
|
|
10
|
+
if (hasRequiredEngines) return engines.exports;
|
|
11
|
+
hasRequiredEngines = 1;
|
|
12
|
+
(function(module, exports$1) {
|
|
13
|
+
const yaml = /* @__PURE__ */ requireJsYaml();
|
|
14
|
+
const engines = module.exports;
|
|
15
|
+
engines.yaml = {
|
|
16
|
+
parse: yaml.safeLoad.bind(yaml),
|
|
17
|
+
stringify: yaml.safeDump.bind(yaml)
|
|
18
|
+
};
|
|
19
|
+
engines.json = {
|
|
20
|
+
parse: JSON.parse.bind(JSON),
|
|
21
|
+
stringify: function(obj, options2) {
|
|
22
|
+
const opts = Object.assign({ replacer: null, space: 2 }, options2);
|
|
23
|
+
return JSON.stringify(obj, opts.replacer, opts.space);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
engines.javascript = {
|
|
27
|
+
parse: function parse(str, options, wrap) {
|
|
28
|
+
try {
|
|
29
|
+
if (wrap !== false) {
|
|
30
|
+
str = "(function() {\nreturn " + str.trim() + ";\n}());";
|
|
31
|
+
}
|
|
32
|
+
return eval(str) || {};
|
|
33
|
+
} catch (err) {
|
|
34
|
+
if (wrap !== false && /(unexpected|identifier)/i.test(err.message)) {
|
|
35
|
+
return parse(str, options, false);
|
|
36
|
+
}
|
|
37
|
+
throw new SyntaxError(err);
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
stringify: function() {
|
|
41
|
+
throw new Error("stringifying JavaScript is not supported");
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
})(engines);
|
|
45
|
+
return engines.exports;
|
|
46
|
+
}
|
|
47
|
+
var utils = {};
|
|
48
|
+
var hasRequiredUtils;
|
|
49
|
+
function requireUtils() {
|
|
50
|
+
if (hasRequiredUtils) return utils;
|
|
51
|
+
hasRequiredUtils = 1;
|
|
52
|
+
(function(exports$12) {
|
|
53
|
+
const stripBom = /* @__PURE__ */ requireStripBomString();
|
|
54
|
+
const typeOf = /* @__PURE__ */ requireKindOf();
|
|
55
|
+
exports$12.define = function(obj, key, val) {
|
|
56
|
+
Reflect.defineProperty(obj, key, {
|
|
57
|
+
enumerable: false,
|
|
58
|
+
configurable: true,
|
|
59
|
+
writable: true,
|
|
60
|
+
value: val
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
exports$12.isBuffer = function(val) {
|
|
64
|
+
return typeOf(val) === "buffer";
|
|
65
|
+
};
|
|
66
|
+
exports$12.isObject = function(val) {
|
|
67
|
+
return typeOf(val) === "object";
|
|
68
|
+
};
|
|
69
|
+
exports$12.toBuffer = function(input) {
|
|
70
|
+
return typeof input === "string" ? Buffer.from(input) : input;
|
|
71
|
+
};
|
|
72
|
+
exports$12.toString = function(input) {
|
|
73
|
+
if (exports$12.isBuffer(input)) return stripBom(String(input));
|
|
74
|
+
if (typeof input !== "string") {
|
|
75
|
+
throw new TypeError("expected input to be a string or buffer");
|
|
76
|
+
}
|
|
77
|
+
return stripBom(input);
|
|
78
|
+
};
|
|
79
|
+
exports$12.arrayify = function(val) {
|
|
80
|
+
return val ? Array.isArray(val) ? val : [val] : [];
|
|
81
|
+
};
|
|
82
|
+
exports$12.startsWith = function(str2, substr, len) {
|
|
83
|
+
if (typeof len !== "number") len = substr.length;
|
|
84
|
+
return str2.slice(0, len) === substr;
|
|
85
|
+
};
|
|
86
|
+
})(utils);
|
|
87
|
+
return utils;
|
|
88
|
+
}
|
|
89
|
+
var defaults;
|
|
90
|
+
var hasRequiredDefaults;
|
|
91
|
+
function requireDefaults() {
|
|
92
|
+
if (hasRequiredDefaults) return defaults;
|
|
93
|
+
hasRequiredDefaults = 1;
|
|
94
|
+
const engines2 = /* @__PURE__ */ requireEngines();
|
|
95
|
+
const utils2 = /* @__PURE__ */ requireUtils();
|
|
96
|
+
defaults = function(options2) {
|
|
97
|
+
const opts = Object.assign({}, options2);
|
|
98
|
+
opts.delimiters = utils2.arrayify(opts.delims || opts.delimiters || "---");
|
|
99
|
+
if (opts.delimiters.length === 1) {
|
|
100
|
+
opts.delimiters.push(opts.delimiters[0]);
|
|
101
|
+
}
|
|
102
|
+
opts.language = (opts.language || opts.lang || "yaml").toLowerCase();
|
|
103
|
+
opts.engines = Object.assign({}, engines2, opts.parsers, opts.engines);
|
|
104
|
+
return opts;
|
|
105
|
+
};
|
|
106
|
+
return defaults;
|
|
107
|
+
}
|
|
108
|
+
var engine;
|
|
109
|
+
var hasRequiredEngine;
|
|
110
|
+
function requireEngine() {
|
|
111
|
+
if (hasRequiredEngine) return engine;
|
|
112
|
+
hasRequiredEngine = 1;
|
|
113
|
+
engine = function(name, options2) {
|
|
114
|
+
let engine2 = options2.engines[name] || options2.engines[aliase(name)];
|
|
115
|
+
if (typeof engine2 === "undefined") {
|
|
116
|
+
throw new Error('gray-matter engine "' + name + '" is not registered');
|
|
117
|
+
}
|
|
118
|
+
if (typeof engine2 === "function") {
|
|
119
|
+
engine2 = { parse: engine2 };
|
|
120
|
+
}
|
|
121
|
+
return engine2;
|
|
122
|
+
};
|
|
123
|
+
function aliase(name) {
|
|
124
|
+
switch (name.toLowerCase()) {
|
|
125
|
+
case "js":
|
|
126
|
+
case "javascript":
|
|
127
|
+
return "javascript";
|
|
128
|
+
case "coffee":
|
|
129
|
+
case "coffeescript":
|
|
130
|
+
case "cson":
|
|
131
|
+
return "coffee";
|
|
132
|
+
case "yaml":
|
|
133
|
+
case "yml":
|
|
134
|
+
return "yaml";
|
|
135
|
+
default: {
|
|
136
|
+
return name;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return engine;
|
|
141
|
+
}
|
|
142
|
+
var stringify;
|
|
143
|
+
var hasRequiredStringify;
|
|
144
|
+
function requireStringify() {
|
|
145
|
+
if (hasRequiredStringify) return stringify;
|
|
146
|
+
hasRequiredStringify = 1;
|
|
147
|
+
const typeOf = /* @__PURE__ */ requireKindOf();
|
|
148
|
+
const getEngine = /* @__PURE__ */ requireEngine();
|
|
149
|
+
const defaults2 = /* @__PURE__ */ requireDefaults();
|
|
150
|
+
stringify = function(file, data, options2) {
|
|
151
|
+
if (data == null && options2 == null) {
|
|
152
|
+
switch (typeOf(file)) {
|
|
153
|
+
case "object":
|
|
154
|
+
data = file.data;
|
|
155
|
+
options2 = {};
|
|
156
|
+
break;
|
|
157
|
+
case "string":
|
|
158
|
+
return file;
|
|
159
|
+
default: {
|
|
160
|
+
throw new TypeError("expected file to be a string or object");
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
const str2 = file.content;
|
|
165
|
+
const opts = defaults2(options2);
|
|
166
|
+
if (data == null) {
|
|
167
|
+
if (!opts.data) return file;
|
|
168
|
+
data = opts.data;
|
|
169
|
+
}
|
|
170
|
+
const language = file.language || opts.language;
|
|
171
|
+
const engine2 = getEngine(language, opts);
|
|
172
|
+
if (typeof engine2.stringify !== "function") {
|
|
173
|
+
throw new TypeError('expected "' + language + '.stringify" to be a function');
|
|
174
|
+
}
|
|
175
|
+
data = Object.assign({}, file.data, data);
|
|
176
|
+
const open = opts.delimiters[0];
|
|
177
|
+
const close = opts.delimiters[1];
|
|
178
|
+
const matter2 = engine2.stringify(data, options2).trim();
|
|
179
|
+
let buf = "";
|
|
180
|
+
if (matter2 !== "{}") {
|
|
181
|
+
buf = newline(open) + newline(matter2) + newline(close);
|
|
182
|
+
}
|
|
183
|
+
if (typeof file.excerpt === "string" && file.excerpt !== "") {
|
|
184
|
+
if (str2.indexOf(file.excerpt.trim()) === -1) {
|
|
185
|
+
buf += newline(file.excerpt) + newline(close);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
return buf + newline(str2);
|
|
189
|
+
};
|
|
190
|
+
function newline(str2) {
|
|
191
|
+
return str2.slice(-1) !== "\n" ? str2 + "\n" : str2;
|
|
192
|
+
}
|
|
193
|
+
return stringify;
|
|
194
|
+
}
|
|
195
|
+
var excerpt;
|
|
196
|
+
var hasRequiredExcerpt;
|
|
197
|
+
function requireExcerpt() {
|
|
198
|
+
if (hasRequiredExcerpt) return excerpt;
|
|
199
|
+
hasRequiredExcerpt = 1;
|
|
200
|
+
const defaults2 = /* @__PURE__ */ requireDefaults();
|
|
201
|
+
excerpt = function(file, options2) {
|
|
202
|
+
const opts = defaults2(options2);
|
|
203
|
+
if (file.data == null) {
|
|
204
|
+
file.data = {};
|
|
205
|
+
}
|
|
206
|
+
if (typeof opts.excerpt === "function") {
|
|
207
|
+
return opts.excerpt(file, opts);
|
|
208
|
+
}
|
|
209
|
+
const sep = file.data.excerpt_separator || opts.excerpt_separator;
|
|
210
|
+
if (sep == null && (opts.excerpt === false || opts.excerpt == null)) {
|
|
211
|
+
return file;
|
|
212
|
+
}
|
|
213
|
+
const delimiter = typeof opts.excerpt === "string" ? opts.excerpt : sep || opts.delimiters[0];
|
|
214
|
+
const idx = file.content.indexOf(delimiter);
|
|
215
|
+
if (idx !== -1) {
|
|
216
|
+
file.excerpt = file.content.slice(0, idx);
|
|
217
|
+
}
|
|
218
|
+
return file;
|
|
219
|
+
};
|
|
220
|
+
return excerpt;
|
|
221
|
+
}
|
|
222
|
+
var toFile;
|
|
223
|
+
var hasRequiredToFile;
|
|
224
|
+
function requireToFile() {
|
|
225
|
+
if (hasRequiredToFile) return toFile;
|
|
226
|
+
hasRequiredToFile = 1;
|
|
227
|
+
const typeOf = /* @__PURE__ */ requireKindOf();
|
|
228
|
+
const stringify2 = /* @__PURE__ */ requireStringify();
|
|
229
|
+
const utils2 = /* @__PURE__ */ requireUtils();
|
|
230
|
+
toFile = function(file) {
|
|
231
|
+
if (typeOf(file) !== "object") {
|
|
232
|
+
file = { content: file };
|
|
233
|
+
}
|
|
234
|
+
if (typeOf(file.data) !== "object") {
|
|
235
|
+
file.data = {};
|
|
236
|
+
}
|
|
237
|
+
if (file.contents && file.content == null) {
|
|
238
|
+
file.content = file.contents;
|
|
239
|
+
}
|
|
240
|
+
utils2.define(file, "orig", utils2.toBuffer(file.content));
|
|
241
|
+
utils2.define(file, "language", file.language || "");
|
|
242
|
+
utils2.define(file, "matter", file.matter || "");
|
|
243
|
+
utils2.define(file, "stringify", function(data, options2) {
|
|
244
|
+
if (options2 && options2.language) {
|
|
245
|
+
file.language = options2.language;
|
|
246
|
+
}
|
|
247
|
+
return stringify2(file, data, options2);
|
|
248
|
+
});
|
|
249
|
+
file.content = utils2.toString(file.content);
|
|
250
|
+
file.isEmpty = false;
|
|
251
|
+
file.excerpt = "";
|
|
252
|
+
return file;
|
|
253
|
+
};
|
|
254
|
+
return toFile;
|
|
255
|
+
}
|
|
256
|
+
var parse;
|
|
257
|
+
var hasRequiredParse;
|
|
258
|
+
function requireParse() {
|
|
259
|
+
if (hasRequiredParse) return parse;
|
|
260
|
+
hasRequiredParse = 1;
|
|
261
|
+
const getEngine = /* @__PURE__ */ requireEngine();
|
|
262
|
+
const defaults2 = /* @__PURE__ */ requireDefaults();
|
|
263
|
+
parse = function(language, str2, options2) {
|
|
264
|
+
const opts = defaults2(options2);
|
|
265
|
+
const engine2 = getEngine(language, opts);
|
|
266
|
+
if (typeof engine2.parse !== "function") {
|
|
267
|
+
throw new TypeError('expected "' + language + '.parse" to be a function');
|
|
268
|
+
}
|
|
269
|
+
return engine2.parse(str2, opts);
|
|
270
|
+
};
|
|
271
|
+
return parse;
|
|
272
|
+
}
|
|
273
|
+
var grayMatter;
|
|
274
|
+
var hasRequiredGrayMatter;
|
|
275
|
+
function requireGrayMatter() {
|
|
276
|
+
if (hasRequiredGrayMatter) return grayMatter;
|
|
277
|
+
hasRequiredGrayMatter = 1;
|
|
278
|
+
const fs = require$$0;
|
|
279
|
+
const sections = /* @__PURE__ */ requireSectionMatter();
|
|
280
|
+
const defaults2 = /* @__PURE__ */ requireDefaults();
|
|
281
|
+
const stringify2 = /* @__PURE__ */ requireStringify();
|
|
282
|
+
const excerpt2 = /* @__PURE__ */ requireExcerpt();
|
|
283
|
+
const engines2 = /* @__PURE__ */ requireEngines();
|
|
284
|
+
const toFile2 = /* @__PURE__ */ requireToFile();
|
|
285
|
+
const parse2 = /* @__PURE__ */ requireParse();
|
|
286
|
+
const utils2 = /* @__PURE__ */ requireUtils();
|
|
287
|
+
function matter2(input, options2) {
|
|
288
|
+
if (input === "") {
|
|
289
|
+
return { data: {}, content: input, excerpt: "", orig: input };
|
|
290
|
+
}
|
|
291
|
+
let file = toFile2(input);
|
|
292
|
+
const cached = matter2.cache[file.content];
|
|
293
|
+
if (!options2) {
|
|
294
|
+
if (cached) {
|
|
295
|
+
file = Object.assign({}, cached);
|
|
296
|
+
file.orig = cached.orig;
|
|
297
|
+
return file;
|
|
298
|
+
}
|
|
299
|
+
matter2.cache[file.content] = file;
|
|
300
|
+
}
|
|
301
|
+
return parseMatter(file, options2);
|
|
302
|
+
}
|
|
303
|
+
function parseMatter(file, options2) {
|
|
304
|
+
const opts = defaults2(options2);
|
|
305
|
+
const open = opts.delimiters[0];
|
|
306
|
+
const close = "\n" + opts.delimiters[1];
|
|
307
|
+
let str2 = file.content;
|
|
308
|
+
if (opts.language) {
|
|
309
|
+
file.language = opts.language;
|
|
310
|
+
}
|
|
311
|
+
const openLen = open.length;
|
|
312
|
+
if (!utils2.startsWith(str2, open, openLen)) {
|
|
313
|
+
excerpt2(file, opts);
|
|
314
|
+
return file;
|
|
315
|
+
}
|
|
316
|
+
if (str2.charAt(openLen) === open.slice(-1)) {
|
|
317
|
+
return file;
|
|
318
|
+
}
|
|
319
|
+
str2 = str2.slice(openLen);
|
|
320
|
+
const len = str2.length;
|
|
321
|
+
const language = matter2.language(str2, opts);
|
|
322
|
+
if (language.name) {
|
|
323
|
+
file.language = language.name;
|
|
324
|
+
str2 = str2.slice(language.raw.length);
|
|
325
|
+
}
|
|
326
|
+
let closeIndex = str2.indexOf(close);
|
|
327
|
+
if (closeIndex === -1) {
|
|
328
|
+
closeIndex = len;
|
|
329
|
+
}
|
|
330
|
+
file.matter = str2.slice(0, closeIndex);
|
|
331
|
+
const block = file.matter.replace(/^\s*#[^\n]+/gm, "").trim();
|
|
332
|
+
if (block === "") {
|
|
333
|
+
file.isEmpty = true;
|
|
334
|
+
file.empty = file.content;
|
|
335
|
+
file.data = {};
|
|
336
|
+
} else {
|
|
337
|
+
file.data = parse2(file.language, file.matter, opts);
|
|
338
|
+
}
|
|
339
|
+
if (closeIndex === len) {
|
|
340
|
+
file.content = "";
|
|
341
|
+
} else {
|
|
342
|
+
file.content = str2.slice(closeIndex + close.length);
|
|
343
|
+
if (file.content[0] === "\r") {
|
|
344
|
+
file.content = file.content.slice(1);
|
|
345
|
+
}
|
|
346
|
+
if (file.content[0] === "\n") {
|
|
347
|
+
file.content = file.content.slice(1);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
excerpt2(file, opts);
|
|
351
|
+
if (opts.sections === true || typeof opts.section === "function") {
|
|
352
|
+
sections(file, opts.section);
|
|
353
|
+
}
|
|
354
|
+
return file;
|
|
355
|
+
}
|
|
356
|
+
matter2.engines = engines2;
|
|
357
|
+
matter2.stringify = function(file, data, options2) {
|
|
358
|
+
if (typeof file === "string") file = matter2(file, options2);
|
|
359
|
+
return stringify2(file, data, options2);
|
|
360
|
+
};
|
|
361
|
+
matter2.read = function(filepath, options2) {
|
|
362
|
+
const str2 = fs.readFileSync(filepath, "utf8");
|
|
363
|
+
const file = matter2(str2, options2);
|
|
364
|
+
file.path = filepath;
|
|
365
|
+
return file;
|
|
366
|
+
};
|
|
367
|
+
matter2.test = function(str2, options2) {
|
|
368
|
+
return utils2.startsWith(str2, defaults2(options2).delimiters[0]);
|
|
369
|
+
};
|
|
370
|
+
matter2.language = function(str2, options2) {
|
|
371
|
+
const opts = defaults2(options2);
|
|
372
|
+
const open = opts.delimiters[0];
|
|
373
|
+
if (matter2.test(str2)) {
|
|
374
|
+
str2 = str2.slice(open.length);
|
|
375
|
+
}
|
|
376
|
+
const language = str2.slice(0, str2.search(/\r?\n/));
|
|
377
|
+
return {
|
|
378
|
+
raw: language,
|
|
379
|
+
name: language ? language.trim() : ""
|
|
380
|
+
};
|
|
381
|
+
};
|
|
382
|
+
matter2.cache = {};
|
|
383
|
+
matter2.clearCache = function() {
|
|
384
|
+
matter2.cache = {};
|
|
385
|
+
};
|
|
386
|
+
grayMatter = matter2;
|
|
387
|
+
return grayMatter;
|
|
388
|
+
}
|
|
389
|
+
var grayMatterExports = /* @__PURE__ */ requireGrayMatter();
|
|
390
|
+
const matter = /* @__PURE__ */ getDefaultExportFromCjs(grayMatterExports);
|
|
391
|
+
export {
|
|
392
|
+
matter as m
|
|
393
|
+
};
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
import { N as NullProtoObj } from "./rou3.mjs";
|
|
2
|
+
import { F as FastURL, N as NodeResponse } from "./srvx.mjs";
|
|
3
|
+
const kEventNS = "h3.internal.event.";
|
|
4
|
+
const kEventRes = /* @__PURE__ */ Symbol.for(`${kEventNS}res`);
|
|
5
|
+
const kEventResHeaders = /* @__PURE__ */ Symbol.for(`${kEventNS}res.headers`);
|
|
6
|
+
var H3Event = class {
|
|
7
|
+
app;
|
|
8
|
+
req;
|
|
9
|
+
url;
|
|
10
|
+
context;
|
|
11
|
+
static __is_event__ = true;
|
|
12
|
+
constructor(req, context, app) {
|
|
13
|
+
this.context = context || req.context || new NullProtoObj();
|
|
14
|
+
this.req = req;
|
|
15
|
+
this.app = app;
|
|
16
|
+
const _url = req._url;
|
|
17
|
+
this.url = _url && _url instanceof URL ? _url : new FastURL(req.url);
|
|
18
|
+
}
|
|
19
|
+
get res() {
|
|
20
|
+
return this[kEventRes] ||= new H3EventResponse();
|
|
21
|
+
}
|
|
22
|
+
get runtime() {
|
|
23
|
+
return this.req.runtime;
|
|
24
|
+
}
|
|
25
|
+
waitUntil(promise) {
|
|
26
|
+
this.req.waitUntil?.(promise);
|
|
27
|
+
}
|
|
28
|
+
toString() {
|
|
29
|
+
return `[${this.req.method}] ${this.req.url}`;
|
|
30
|
+
}
|
|
31
|
+
toJSON() {
|
|
32
|
+
return this.toString();
|
|
33
|
+
}
|
|
34
|
+
get node() {
|
|
35
|
+
return this.req.runtime?.node;
|
|
36
|
+
}
|
|
37
|
+
get headers() {
|
|
38
|
+
return this.req.headers;
|
|
39
|
+
}
|
|
40
|
+
get path() {
|
|
41
|
+
return this.url.pathname + this.url.search;
|
|
42
|
+
}
|
|
43
|
+
get method() {
|
|
44
|
+
return this.req.method;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
var H3EventResponse = class {
|
|
48
|
+
status;
|
|
49
|
+
statusText;
|
|
50
|
+
get headers() {
|
|
51
|
+
return this[kEventResHeaders] ||= new Headers();
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
const DISALLOWED_STATUS_CHARS = /[^\u0009\u0020-\u007E]/g;
|
|
55
|
+
function sanitizeStatusMessage(statusMessage = "") {
|
|
56
|
+
return statusMessage.replace(DISALLOWED_STATUS_CHARS, "");
|
|
57
|
+
}
|
|
58
|
+
function sanitizeStatusCode(statusCode, defaultStatusCode = 200) {
|
|
59
|
+
if (!statusCode) return defaultStatusCode;
|
|
60
|
+
if (typeof statusCode === "string") statusCode = +statusCode;
|
|
61
|
+
if (statusCode < 100 || statusCode > 599) return defaultStatusCode;
|
|
62
|
+
return statusCode;
|
|
63
|
+
}
|
|
64
|
+
var HTTPError = class HTTPError2 extends Error {
|
|
65
|
+
get name() {
|
|
66
|
+
return "HTTPError";
|
|
67
|
+
}
|
|
68
|
+
status;
|
|
69
|
+
statusText;
|
|
70
|
+
headers;
|
|
71
|
+
cause;
|
|
72
|
+
data;
|
|
73
|
+
body;
|
|
74
|
+
unhandled;
|
|
75
|
+
static isError(input) {
|
|
76
|
+
return input instanceof Error && input?.name === "HTTPError";
|
|
77
|
+
}
|
|
78
|
+
static status(status, statusText, details) {
|
|
79
|
+
return new HTTPError2({
|
|
80
|
+
...details,
|
|
81
|
+
statusText,
|
|
82
|
+
status
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
constructor(arg1, arg2) {
|
|
86
|
+
let messageInput;
|
|
87
|
+
let details;
|
|
88
|
+
if (typeof arg1 === "string") {
|
|
89
|
+
messageInput = arg1;
|
|
90
|
+
details = arg2;
|
|
91
|
+
} else details = arg1;
|
|
92
|
+
const status = sanitizeStatusCode(details?.status || details?.cause?.status || details?.status || details?.statusCode, 500);
|
|
93
|
+
const statusText = sanitizeStatusMessage(details?.statusText || details?.cause?.statusText || details?.statusText || details?.statusMessage);
|
|
94
|
+
const message = messageInput || details?.message || details?.cause?.message || details?.statusText || details?.statusMessage || [
|
|
95
|
+
"HTTPError",
|
|
96
|
+
status,
|
|
97
|
+
statusText
|
|
98
|
+
].filter(Boolean).join(" ");
|
|
99
|
+
super(message, { cause: details });
|
|
100
|
+
this.cause = details;
|
|
101
|
+
this.status = status;
|
|
102
|
+
this.statusText = statusText || void 0;
|
|
103
|
+
const rawHeaders = details?.headers || details?.cause?.headers;
|
|
104
|
+
this.headers = rawHeaders ? new Headers(rawHeaders) : void 0;
|
|
105
|
+
this.unhandled = details?.unhandled ?? details?.cause?.unhandled ?? void 0;
|
|
106
|
+
this.data = details?.data;
|
|
107
|
+
this.body = details?.body;
|
|
108
|
+
}
|
|
109
|
+
get statusCode() {
|
|
110
|
+
return this.status;
|
|
111
|
+
}
|
|
112
|
+
get statusMessage() {
|
|
113
|
+
return this.statusText;
|
|
114
|
+
}
|
|
115
|
+
toJSON() {
|
|
116
|
+
const unhandled = this.unhandled;
|
|
117
|
+
return {
|
|
118
|
+
status: this.status,
|
|
119
|
+
statusText: this.statusText,
|
|
120
|
+
unhandled,
|
|
121
|
+
message: unhandled ? "HTTPError" : this.message,
|
|
122
|
+
data: unhandled ? void 0 : this.data,
|
|
123
|
+
...unhandled ? void 0 : this.body
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
function isJSONSerializable(value, _type) {
|
|
128
|
+
if (value === null || value === void 0) return true;
|
|
129
|
+
if (_type !== "object") return _type === "boolean" || _type === "number" || _type === "string";
|
|
130
|
+
if (typeof value.toJSON === "function") return true;
|
|
131
|
+
if (Array.isArray(value)) return true;
|
|
132
|
+
if (typeof value.pipe === "function" || typeof value.pipeTo === "function") return false;
|
|
133
|
+
if (value instanceof NullProtoObj) return true;
|
|
134
|
+
const proto = Object.getPrototypeOf(value);
|
|
135
|
+
return proto === Object.prototype || proto === null;
|
|
136
|
+
}
|
|
137
|
+
const kNotFound = /* @__PURE__ */ Symbol.for("h3.notFound");
|
|
138
|
+
const kHandled = /* @__PURE__ */ Symbol.for("h3.handled");
|
|
139
|
+
function toResponse(val, event, config = {}) {
|
|
140
|
+
if (typeof val?.then === "function") return (val.catch?.((error) => error) || Promise.resolve(val)).then((resolvedVal) => toResponse(resolvedVal, event, config));
|
|
141
|
+
const response = prepareResponse(val, event, config);
|
|
142
|
+
if (typeof response?.then === "function") return toResponse(response, event, config);
|
|
143
|
+
const { onResponse } = config;
|
|
144
|
+
return onResponse ? Promise.resolve(onResponse(response, event)).then(() => response) : response;
|
|
145
|
+
}
|
|
146
|
+
var HTTPResponse = class {
|
|
147
|
+
#headers;
|
|
148
|
+
#init;
|
|
149
|
+
body;
|
|
150
|
+
constructor(body, init) {
|
|
151
|
+
this.body = body;
|
|
152
|
+
this.#init = init;
|
|
153
|
+
}
|
|
154
|
+
get status() {
|
|
155
|
+
return this.#init?.status || 200;
|
|
156
|
+
}
|
|
157
|
+
get statusText() {
|
|
158
|
+
return this.#init?.statusText || "OK";
|
|
159
|
+
}
|
|
160
|
+
get headers() {
|
|
161
|
+
return this.#headers ||= new Headers(this.#init?.headers);
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
function prepareResponse(val, event, config, nested) {
|
|
165
|
+
if (val === kHandled) return new NodeResponse(null);
|
|
166
|
+
if (val === kNotFound) val = new HTTPError({
|
|
167
|
+
status: 404,
|
|
168
|
+
message: `Cannot find any route matching [${event.req.method}] ${event.url}`
|
|
169
|
+
});
|
|
170
|
+
if (val && val instanceof Error) {
|
|
171
|
+
const isHTTPError = HTTPError.isError(val);
|
|
172
|
+
const error = isHTTPError ? val : new HTTPError(val);
|
|
173
|
+
if (!isHTTPError) {
|
|
174
|
+
error.unhandled = true;
|
|
175
|
+
if (val?.stack) error.stack = val.stack;
|
|
176
|
+
}
|
|
177
|
+
if (error.unhandled && !config.silent) console.error(error);
|
|
178
|
+
const { onError } = config;
|
|
179
|
+
return onError && !nested ? Promise.resolve(onError(error, event)).catch((error2) => error2).then((newVal) => prepareResponse(newVal ?? val, event, config, true)) : errorResponse(error, config.debug);
|
|
180
|
+
}
|
|
181
|
+
const preparedRes = event[kEventRes];
|
|
182
|
+
const preparedHeaders = preparedRes?.[kEventResHeaders];
|
|
183
|
+
event[kEventRes] = void 0;
|
|
184
|
+
if (!(val instanceof Response)) {
|
|
185
|
+
const res = prepareResponseBody(val, event, config);
|
|
186
|
+
const status = res.status || preparedRes?.status;
|
|
187
|
+
return new NodeResponse(nullBody(event.req.method, status) ? null : res.body, {
|
|
188
|
+
status,
|
|
189
|
+
statusText: res.statusText || preparedRes?.statusText,
|
|
190
|
+
headers: res.headers && preparedHeaders ? mergeHeaders$1(res.headers, preparedHeaders) : res.headers || preparedHeaders
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
if (!preparedHeaders || nested || !val.ok) return val;
|
|
194
|
+
try {
|
|
195
|
+
mergeHeaders$1(val.headers, preparedHeaders, val.headers);
|
|
196
|
+
return val;
|
|
197
|
+
} catch {
|
|
198
|
+
return new NodeResponse(nullBody(event.req.method, val.status) ? null : val.body, {
|
|
199
|
+
status: val.status,
|
|
200
|
+
statusText: val.statusText,
|
|
201
|
+
headers: mergeHeaders$1(val.headers, preparedHeaders)
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
function mergeHeaders$1(base, overrides, target = new Headers(base)) {
|
|
206
|
+
for (const [name, value] of overrides) if (name === "set-cookie") target.append(name, value);
|
|
207
|
+
else target.set(name, value);
|
|
208
|
+
return target;
|
|
209
|
+
}
|
|
210
|
+
const frozen = (name) => (...args) => {
|
|
211
|
+
throw new Error(`Headers are frozen (${name} ${args.join(", ")})`);
|
|
212
|
+
};
|
|
213
|
+
var FrozenHeaders = class extends Headers {
|
|
214
|
+
set = frozen("set");
|
|
215
|
+
append = frozen("append");
|
|
216
|
+
delete = frozen("delete");
|
|
217
|
+
};
|
|
218
|
+
const emptyHeaders = /* @__PURE__ */ new FrozenHeaders({ "content-length": "0" });
|
|
219
|
+
const jsonHeaders = /* @__PURE__ */ new FrozenHeaders({ "content-type": "application/json;charset=UTF-8" });
|
|
220
|
+
function prepareResponseBody(val, event, config) {
|
|
221
|
+
if (val === null || val === void 0) return {
|
|
222
|
+
body: "",
|
|
223
|
+
headers: emptyHeaders
|
|
224
|
+
};
|
|
225
|
+
const valType = typeof val;
|
|
226
|
+
if (valType === "string") return { body: val };
|
|
227
|
+
if (val instanceof Uint8Array) {
|
|
228
|
+
event.res.headers.set("content-length", val.byteLength.toString());
|
|
229
|
+
return { body: val };
|
|
230
|
+
}
|
|
231
|
+
if (val instanceof HTTPResponse || val?.constructor?.name === "HTTPResponse") return val;
|
|
232
|
+
if (isJSONSerializable(val, valType)) return {
|
|
233
|
+
body: JSON.stringify(val, void 0, config.debug ? 2 : void 0),
|
|
234
|
+
headers: jsonHeaders
|
|
235
|
+
};
|
|
236
|
+
if (valType === "bigint") return {
|
|
237
|
+
body: val.toString(),
|
|
238
|
+
headers: jsonHeaders
|
|
239
|
+
};
|
|
240
|
+
if (val instanceof Blob) {
|
|
241
|
+
const headers = new Headers({
|
|
242
|
+
"content-type": val.type,
|
|
243
|
+
"content-length": val.size.toString()
|
|
244
|
+
});
|
|
245
|
+
let filename = val.name;
|
|
246
|
+
if (filename) {
|
|
247
|
+
filename = encodeURIComponent(filename);
|
|
248
|
+
headers.set("content-disposition", `filename="${filename}"; filename*=UTF-8''${filename}`);
|
|
249
|
+
}
|
|
250
|
+
return {
|
|
251
|
+
body: val.stream(),
|
|
252
|
+
headers
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
if (valType === "symbol") return { body: val.toString() };
|
|
256
|
+
if (valType === "function") return { body: `${val.name}()` };
|
|
257
|
+
return { body: val };
|
|
258
|
+
}
|
|
259
|
+
function nullBody(method, status) {
|
|
260
|
+
return method === "HEAD" || status === 100 || status === 101 || status === 102 || status === 204 || status === 205 || status === 304;
|
|
261
|
+
}
|
|
262
|
+
function errorResponse(error, debug) {
|
|
263
|
+
return new NodeResponse(JSON.stringify({
|
|
264
|
+
...error.toJSON(),
|
|
265
|
+
stack: debug && error.stack ? error.stack.split("\n").map((l) => l.trim()) : void 0
|
|
266
|
+
}, void 0, debug ? 2 : void 0), {
|
|
267
|
+
status: error.status,
|
|
268
|
+
statusText: error.statusText,
|
|
269
|
+
headers: error.headers ? mergeHeaders$1(jsonHeaders, error.headers) : new Headers(jsonHeaders)
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
new TextEncoder();
|
|
273
|
+
export {
|
|
274
|
+
H3Event as H,
|
|
275
|
+
toResponse as t
|
|
276
|
+
};
|