mdzilla 0.1.0 → 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.
- package/README.md +46 -59
- package/dist/_chunks/exporter.mjs +173 -49
- package/dist/_chunks/server.mjs +406 -378
- package/dist/cli/main.mjs +149 -604
- package/dist/index.d.mts +105 -64
- package/dist/index.mjs +2 -2
- package/package.json +5 -5
package/dist/_chunks/server.mjs
CHANGED
|
@@ -1,56 +1,56 @@
|
|
|
1
|
+
import { parseMeta, renderToMarkdown, renderToText } from "md4x";
|
|
1
2
|
import { mkdir, readFile, readdir, stat, writeFile } from "node:fs/promises";
|
|
2
3
|
import { basename, dirname, extname, join } from "node:path";
|
|
3
|
-
import { parseMeta, renderToMarkdown, renderToText } from "md4x";
|
|
4
4
|
import { existsSync } from "node:fs";
|
|
5
5
|
import { tmpdir } from "node:os";
|
|
6
|
-
import { init,
|
|
6
|
+
import { init, renderToHtml, renderToText as renderToText$1 } from "md4x/napi";
|
|
7
7
|
import { highlightText } from "@speed-highlight/core";
|
|
8
8
|
//#region web/.output/server/index.mjs
|
|
9
9
|
globalThis.__nitro_main__ = import.meta.url;
|
|
10
|
-
var
|
|
10
|
+
var v = Object.defineProperty, y = (e, t) => () => (e && (t = e(e = 0)), t), b = (e, t) => {
|
|
11
11
|
let n = {};
|
|
12
|
-
for (var r in e)
|
|
12
|
+
for (var r in e) v(n, r, {
|
|
13
13
|
get: e[r],
|
|
14
14
|
enumerable: !0
|
|
15
15
|
});
|
|
16
|
-
return t ||
|
|
16
|
+
return t || v(n, Symbol.toStringTag, { value: `Module` }), n;
|
|
17
17
|
};
|
|
18
18
|
globalThis.__nitro_vite_envs__ = {};
|
|
19
|
-
var
|
|
20
|
-
|
|
19
|
+
var x, ee = y((() => {
|
|
20
|
+
x = (() => {
|
|
21
21
|
let e = function() {};
|
|
22
22
|
return e.prototype = Object.create(null), Object.freeze(e.prototype), e;
|
|
23
23
|
})();
|
|
24
|
-
})),
|
|
25
|
-
|
|
24
|
+
})), te, S, ne = y((() => {
|
|
25
|
+
te = URL, S = Response;
|
|
26
26
|
}));
|
|
27
|
-
function
|
|
27
|
+
function re(e) {
|
|
28
28
|
return decodeURI(e.includes(`%25`) ? e.replace(/%25/g, `%2525`) : e);
|
|
29
29
|
}
|
|
30
|
-
function
|
|
31
|
-
return e.replace(
|
|
30
|
+
function ie(e = ``) {
|
|
31
|
+
return e.replace(_e, ``);
|
|
32
32
|
}
|
|
33
|
-
function
|
|
33
|
+
function ae(e, t = 200) {
|
|
34
34
|
return !e || (typeof e == `string` && (e = +e), e < 100 || e > 599) ? t : e;
|
|
35
35
|
}
|
|
36
|
-
function
|
|
36
|
+
function oe(e, t) {
|
|
37
37
|
if (e == null) return !0;
|
|
38
38
|
if (t !== `object`) return t === `boolean` || t === `number` || t === `string`;
|
|
39
39
|
if (typeof e.toJSON == `function` || Array.isArray(e)) return !0;
|
|
40
40
|
if (typeof e.pipe == `function` || typeof e.pipeTo == `function`) return !1;
|
|
41
|
-
if (e instanceof
|
|
41
|
+
if (e instanceof x) return !0;
|
|
42
42
|
let n = Object.getPrototypeOf(e);
|
|
43
43
|
return n === Object.prototype || n === null;
|
|
44
44
|
}
|
|
45
|
-
function
|
|
46
|
-
if (typeof e?.then == `function`) return (e.catch?.((e) => e) || Promise.resolve(e)).then((e) =>
|
|
47
|
-
let r =
|
|
48
|
-
if (typeof r?.then == `function`) return
|
|
45
|
+
function C(e, t, n = {}) {
|
|
46
|
+
if (typeof e?.then == `function`) return (e.catch?.((e) => e) || Promise.resolve(e)).then((e) => C(e, t, n));
|
|
47
|
+
let r = se(e, t, n);
|
|
48
|
+
if (typeof r?.then == `function`) return C(r, t, n);
|
|
49
49
|
let { onResponse: i } = n;
|
|
50
50
|
return i ? Promise.resolve(i(r, t)).then(() => r) : r;
|
|
51
51
|
}
|
|
52
|
-
function
|
|
53
|
-
if (e ===
|
|
52
|
+
function se(e, t, n, r) {
|
|
53
|
+
if (e === ve) return new S(null);
|
|
54
54
|
if (e === P && (e = new N({
|
|
55
55
|
status: 404,
|
|
56
56
|
message: `Cannot find any route matching [${t.req.method}] ${t.url}`
|
|
@@ -58,42 +58,42 @@ function le(e, t, n, r) {
|
|
|
58
58
|
let i = N.isError(e), a = i ? e : new N(e);
|
|
59
59
|
i || (a.unhandled = !0, e?.stack && (a.stack = e.stack)), a.unhandled && !n.silent && console.error(a);
|
|
60
60
|
let { onError: o } = n, s = t[k]?.[j];
|
|
61
|
-
return o && !r ? Promise.resolve(o(a, t)).catch((e) => e).then((r) =>
|
|
61
|
+
return o && !r ? Promise.resolve(o(a, t)).catch((e) => e).then((r) => se(r ?? e, t, n, !0)) : ue(a, n.debug, s);
|
|
62
62
|
}
|
|
63
63
|
let i = t[k], a = i?.[A];
|
|
64
64
|
if (t[k] = void 0, !(e instanceof Response)) {
|
|
65
|
-
let r =
|
|
66
|
-
return new
|
|
65
|
+
let r = ce(e, t, n), o = r.status || i?.status;
|
|
66
|
+
return new S(le(t.req.method, o) ? null : r.body, {
|
|
67
67
|
status: o,
|
|
68
68
|
statusText: r.statusText || i?.statusText,
|
|
69
|
-
headers: r.headers && a ?
|
|
69
|
+
headers: r.headers && a ? w(r.headers, a) : r.headers || a
|
|
70
70
|
});
|
|
71
71
|
}
|
|
72
72
|
if (!a || r || !e.ok) return e;
|
|
73
73
|
try {
|
|
74
|
-
return
|
|
74
|
+
return w(e.headers, a, e.headers), e;
|
|
75
75
|
} catch {
|
|
76
|
-
return new
|
|
76
|
+
return new S(le(t.req.method, e.status) ? null : e.body, {
|
|
77
77
|
status: e.status,
|
|
78
78
|
statusText: e.statusText,
|
|
79
|
-
headers:
|
|
79
|
+
headers: w(e.headers, a)
|
|
80
80
|
});
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
|
-
function
|
|
83
|
+
function w(e, t, n = new Headers(e)) {
|
|
84
84
|
for (let [e, r] of t) e === `set-cookie` ? n.append(e, r) : n.set(e, r);
|
|
85
85
|
return n;
|
|
86
86
|
}
|
|
87
|
-
function
|
|
87
|
+
function ce(e, t, n) {
|
|
88
88
|
if (e == null) return {
|
|
89
89
|
body: ``,
|
|
90
|
-
headers:
|
|
90
|
+
headers: ye
|
|
91
91
|
};
|
|
92
92
|
let r = typeof e;
|
|
93
93
|
if (r === `string`) return { body: e };
|
|
94
94
|
if (e instanceof Uint8Array) return t.res.headers.set(`content-length`, e.byteLength.toString()), { body: e };
|
|
95
95
|
if (e instanceof F || e?.constructor?.name === `HTTPResponse`) return e;
|
|
96
|
-
if (
|
|
96
|
+
if (oe(e, r)) return {
|
|
97
97
|
body: JSON.stringify(e, void 0, n.debug ? 2 : void 0),
|
|
98
98
|
headers: R
|
|
99
99
|
};
|
|
@@ -113,12 +113,12 @@ function ue(e, t, n) {
|
|
|
113
113
|
}
|
|
114
114
|
return r === `symbol` ? { body: e.toString() } : r === `function` ? { body: `${e.name}()` } : { body: e };
|
|
115
115
|
}
|
|
116
|
-
function
|
|
116
|
+
function le(e, t) {
|
|
117
117
|
return e === `HEAD` || t === 100 || t === 101 || t === 102 || t === 204 || t === 205 || t === 304;
|
|
118
118
|
}
|
|
119
|
-
function
|
|
120
|
-
let r = e.headers ?
|
|
121
|
-
return n && (r =
|
|
119
|
+
function ue(e, t, n) {
|
|
120
|
+
let r = e.headers ? w(R, e.headers) : new Headers(R);
|
|
121
|
+
return n && (r = w(r, n)), new S(JSON.stringify({
|
|
122
122
|
...e.toJSON(),
|
|
123
123
|
stack: t && e.stack ? e.stack.split(`
|
|
124
124
|
`).map((e) => e.trim()) : void 0
|
|
@@ -128,16 +128,16 @@ function fe(e, t, n) {
|
|
|
128
128
|
headers: r
|
|
129
129
|
});
|
|
130
130
|
}
|
|
131
|
-
function
|
|
131
|
+
function de(e, t, n, r = 0) {
|
|
132
132
|
if (r === t.length) return n(e);
|
|
133
|
-
let i = t[r], a, o, s = () => a ? o : (a = !0, o =
|
|
134
|
-
return
|
|
133
|
+
let i = t[r], a, o, s = () => a ? o : (a = !0, o = de(e, t, n, r + 1), o), c = i(e, s);
|
|
134
|
+
return fe(c) ? s() : typeof c?.then == `function` ? c.then((e) => fe(e) ? s() : e) : c;
|
|
135
135
|
}
|
|
136
|
-
function
|
|
136
|
+
function fe(e) {
|
|
137
137
|
return e === void 0 || e === P;
|
|
138
138
|
}
|
|
139
|
-
function
|
|
140
|
-
let t = new
|
|
139
|
+
function pe(e) {
|
|
140
|
+
let t = new x();
|
|
141
141
|
if (!e || e === `?`) return t;
|
|
142
142
|
let n = e.length, r = ``, i = ``, a = -1, o = -1, s = !1, c = !1, l = !1, u = !1, d = !1, f = 0;
|
|
143
143
|
for (let p = 0; p < n + 1; p++) switch (f = p === n ? 38 : e.charCodeAt(p), f) {
|
|
@@ -166,26 +166,26 @@ function me(e) {
|
|
|
166
166
|
}
|
|
167
167
|
return t;
|
|
168
168
|
}
|
|
169
|
-
function
|
|
170
|
-
return
|
|
169
|
+
function me(e) {
|
|
170
|
+
return pe((e.url || new URL(e.req.url)).search.slice(1));
|
|
171
171
|
}
|
|
172
172
|
function T(e) {
|
|
173
|
-
if (typeof e == `function`) return
|
|
173
|
+
if (typeof e == `function`) return he(e);
|
|
174
174
|
let t = e.handler || (e.fetch ? function(t) {
|
|
175
175
|
return e.fetch(t.req);
|
|
176
176
|
} : B);
|
|
177
|
-
return Object.assign(
|
|
178
|
-
return
|
|
177
|
+
return Object.assign(he(e.middleware?.length ? function(n) {
|
|
178
|
+
return de(n, e.middleware, t);
|
|
179
179
|
} : t), e);
|
|
180
180
|
}
|
|
181
|
-
function
|
|
181
|
+
function he(e) {
|
|
182
182
|
return `fetch` in e ? e : Object.assign(e, { fetch: (t) => {
|
|
183
183
|
typeof t == `string` && (t = new URL(t, `http://_`)), t instanceof URL && (t = new Request(t));
|
|
184
184
|
let n = new M(t);
|
|
185
185
|
try {
|
|
186
|
-
return Promise.resolve(
|
|
186
|
+
return Promise.resolve(C(e(n), n));
|
|
187
187
|
} catch (e) {
|
|
188
|
-
return Promise.resolve(
|
|
188
|
+
return Promise.resolve(C(e, n));
|
|
189
189
|
}
|
|
190
190
|
} });
|
|
191
191
|
}
|
|
@@ -205,20 +205,20 @@ function D(e) {
|
|
|
205
205
|
return e.fetch(t.req);
|
|
206
206
|
};
|
|
207
207
|
}
|
|
208
|
-
var O, k, A, j, M,
|
|
209
|
-
|
|
208
|
+
var O, k, A, j, M, ge, _e, N, P, ve, F, I, L, ye, R, z, B, be, xe = y((() => {
|
|
209
|
+
ee(), ne(), O = `h3.internal.event.`, k = Symbol.for(`${O}res`), A = Symbol.for(`${O}res.headers`), j = Symbol.for(`${O}res.err.headers`), M = class {
|
|
210
210
|
app;
|
|
211
211
|
req;
|
|
212
212
|
url;
|
|
213
213
|
context;
|
|
214
214
|
static __is_event__ = !0;
|
|
215
215
|
constructor(e, t, n) {
|
|
216
|
-
this.context = t || e.context || new
|
|
217
|
-
let r = e._url, i = r && r instanceof URL ? r : new
|
|
218
|
-
i.pathname.includes(`%`) && (i.pathname =
|
|
216
|
+
this.context = t || e.context || new x(), this.req = e, this.app = n;
|
|
217
|
+
let r = e._url, i = r && r instanceof URL ? r : new te(e.url);
|
|
218
|
+
i.pathname.includes(`%`) && (i.pathname = re(i.pathname)), this.url = i;
|
|
219
219
|
}
|
|
220
220
|
get res() {
|
|
221
|
-
return this[k] ||= new
|
|
221
|
+
return this[k] ||= new ge();
|
|
222
222
|
}
|
|
223
223
|
get runtime() {
|
|
224
224
|
return this.req.runtime;
|
|
@@ -244,7 +244,7 @@ var O, k, A, j, M, _e, ve, N, P, ye, F, I, L, be, R, z, B, xe, Se = v((() => {
|
|
|
244
244
|
get method() {
|
|
245
245
|
return this.req.method;
|
|
246
246
|
}
|
|
247
|
-
},
|
|
247
|
+
}, ge = class {
|
|
248
248
|
status;
|
|
249
249
|
statusText;
|
|
250
250
|
get headers() {
|
|
@@ -253,7 +253,7 @@ var O, k, A, j, M, _e, ve, N, P, ye, F, I, L, be, R, z, B, xe, Se = v((() => {
|
|
|
253
253
|
get errHeaders() {
|
|
254
254
|
return this[j] ||= new Headers();
|
|
255
255
|
}
|
|
256
|
-
},
|
|
256
|
+
}, _e = /[^\u0009\u0020-\u007E]/g, N = class e extends Error {
|
|
257
257
|
get name() {
|
|
258
258
|
return `HTTPError`;
|
|
259
259
|
}
|
|
@@ -277,7 +277,7 @@ var O, k, A, j, M, _e, ve, N, P, ye, F, I, L, be, R, z, B, xe, Se = v((() => {
|
|
|
277
277
|
constructor(e, t) {
|
|
278
278
|
let n, r;
|
|
279
279
|
typeof e == `string` ? (n = e, r = t) : r = e;
|
|
280
|
-
let i =
|
|
280
|
+
let i = ae(r?.status || r?.statusCode || r?.cause?.status || r?.cause?.statusCode, 500), a = ie(r?.statusText || r?.statusMessage || r?.cause?.statusText || r?.cause?.statusMessage), o = n || r?.message || r?.cause?.message || r?.statusText || r?.statusMessage || [
|
|
281
281
|
`HTTPError`,
|
|
282
282
|
i,
|
|
283
283
|
a
|
|
@@ -303,7 +303,7 @@ var O, k, A, j, M, _e, ve, N, P, ye, F, I, L, be, R, z, B, xe, Se = v((() => {
|
|
|
303
303
|
...e ? void 0 : this.body
|
|
304
304
|
};
|
|
305
305
|
}
|
|
306
|
-
}, P = Symbol.for(`h3.notFound`),
|
|
306
|
+
}, P = Symbol.for(`h3.notFound`), ve = Symbol.for(`h3.handled`), F = class {
|
|
307
307
|
#e;
|
|
308
308
|
#t;
|
|
309
309
|
body;
|
|
@@ -325,7 +325,7 @@ var O, k, A, j, M, _e, ve, N, P, ye, F, I, L, be, R, z, B, xe, Se = v((() => {
|
|
|
325
325
|
set = I(`set`);
|
|
326
326
|
append = I(`append`);
|
|
327
327
|
delete = I(`delete`);
|
|
328
|
-
},
|
|
328
|
+
}, ye = new L({ "content-length": `0` }), R = new L({ "content-type": `application/json;charset=UTF-8` }), z = /\+/g, B = () => P, be = class {
|
|
329
329
|
config;
|
|
330
330
|
"~middleware";
|
|
331
331
|
"~routes" = [];
|
|
@@ -339,7 +339,7 @@ var O, k, A, j, M, _e, ve, N, P, ye, F, I, L, be, R, z, B, xe, Se = v((() => {
|
|
|
339
339
|
let t = this[`~findRoute`](e);
|
|
340
340
|
t && (e.context.params = t.params, e.context.matchedRoute = t.data);
|
|
341
341
|
let n = t?.data.handler || B, r = this[`~getMiddleware`](e, t);
|
|
342
|
-
return r.length > 0 ?
|
|
342
|
+
return r.length > 0 ? de(e, r, n) : n(e);
|
|
343
343
|
}
|
|
344
344
|
"~request"(e, t) {
|
|
345
345
|
let n = new M(e, t, this), r;
|
|
@@ -351,7 +351,7 @@ var O, k, A, j, M, _e, ve, N, P, ye, F, I, L, be, R, z, B, xe, Se = v((() => {
|
|
|
351
351
|
} catch (e) {
|
|
352
352
|
r = Promise.reject(e);
|
|
353
353
|
}
|
|
354
|
-
return
|
|
354
|
+
return C(r, n, this.config);
|
|
355
355
|
}
|
|
356
356
|
"~findRoute"(e) {}
|
|
357
357
|
"~addRoute"(e) {
|
|
@@ -362,15 +362,15 @@ var O, k, A, j, M, _e, ve, N, P, ye, F, I, L, be, R, z, B, xe, Se = v((() => {
|
|
|
362
362
|
return n ? [...r, ...n] : r;
|
|
363
363
|
}
|
|
364
364
|
}, new TextEncoder();
|
|
365
|
-
})), V =
|
|
366
|
-
|
|
365
|
+
})), V = y((() => {
|
|
366
|
+
xe();
|
|
367
367
|
}));
|
|
368
|
-
V(),
|
|
369
|
-
var
|
|
370
|
-
let n =
|
|
371
|
-
return new
|
|
368
|
+
V(), ne();
|
|
369
|
+
var Ce = (e, t) => {
|
|
370
|
+
let n = we(e, t);
|
|
371
|
+
return new S(typeof n.body == `string` ? n.body : JSON.stringify(n.body, null, 2), n);
|
|
372
372
|
};
|
|
373
|
-
function
|
|
373
|
+
function we(e, t) {
|
|
374
374
|
let n = e.unhandled ?? !N.isError(e), { status: r = 500, statusText: i = `` } = n ? {} : e;
|
|
375
375
|
if (r === 404) {
|
|
376
376
|
let e = t.url || new URL(t.req.url);
|
|
@@ -397,32 +397,32 @@ function Te(e, t) {
|
|
|
397
397
|
}
|
|
398
398
|
};
|
|
399
399
|
}
|
|
400
|
-
var
|
|
401
|
-
async function
|
|
402
|
-
for (let n of
|
|
403
|
-
let r = await n(e, t, { defaultHandler:
|
|
400
|
+
var Te = [Ce];
|
|
401
|
+
async function Ee(e, t) {
|
|
402
|
+
for (let n of Te) try {
|
|
403
|
+
let r = await n(e, t, { defaultHandler: we });
|
|
404
404
|
if (r) return r;
|
|
405
405
|
} catch (e) {
|
|
406
406
|
console.error(e);
|
|
407
407
|
}
|
|
408
408
|
}
|
|
409
409
|
String.fromCharCode;
|
|
410
|
-
var
|
|
411
|
-
function
|
|
410
|
+
var De = /%2f/gi;
|
|
411
|
+
function Oe(e = ``) {
|
|
412
412
|
try {
|
|
413
413
|
return decodeURIComponent(`` + e);
|
|
414
414
|
} catch {
|
|
415
415
|
return `` + e;
|
|
416
416
|
}
|
|
417
417
|
}
|
|
418
|
-
function
|
|
419
|
-
return
|
|
418
|
+
function ke(e) {
|
|
419
|
+
return Oe(e.replace(De, `%252F`));
|
|
420
420
|
}
|
|
421
|
-
var
|
|
421
|
+
var Ae = /\/$|\/\?|\/#/, je = /^\.?\//;
|
|
422
422
|
function H(e = ``, t) {
|
|
423
|
-
return t ?
|
|
423
|
+
return t ? Ae.test(e) : e.endsWith(`/`);
|
|
424
424
|
}
|
|
425
|
-
function
|
|
425
|
+
function Me(e = ``, t) {
|
|
426
426
|
if (!t) return (H(e) ? e.slice(0, -1) : e) || `/`;
|
|
427
427
|
if (!H(e, !0)) return e || `/`;
|
|
428
428
|
let n = e, r = ``, i = e.indexOf(`#`);
|
|
@@ -430,7 +430,7 @@ function Ne(e = ``, t) {
|
|
|
430
430
|
let [a, ...o] = n.split(`?`);
|
|
431
431
|
return ((a.endsWith(`/`) ? a.slice(0, -1) : a) || `/`) + (o.length > 0 ? `?${o.join(`?`)}` : ``) + r;
|
|
432
432
|
}
|
|
433
|
-
function
|
|
433
|
+
function Ne(e = ``, t) {
|
|
434
434
|
if (!t) return e.endsWith(`/`) ? e : e + `/`;
|
|
435
435
|
if (H(e, !0)) return e || `/`;
|
|
436
436
|
let n = e, r = ``, i = e.indexOf(`#`);
|
|
@@ -438,30 +438,30 @@ function Pe(e = ``, t) {
|
|
|
438
438
|
let [a, ...o] = n.split(`?`);
|
|
439
439
|
return a + `/` + (o.length > 0 ? `?${o.join(`?`)}` : ``) + r;
|
|
440
440
|
}
|
|
441
|
-
function
|
|
441
|
+
function Pe(e = ``) {
|
|
442
442
|
return e.startsWith(`/`);
|
|
443
443
|
}
|
|
444
|
-
function
|
|
445
|
-
return
|
|
444
|
+
function Fe(e = ``) {
|
|
445
|
+
return Pe(e) ? e : `/` + e;
|
|
446
446
|
}
|
|
447
|
-
function
|
|
447
|
+
function Ie(e) {
|
|
448
448
|
return e && e !== `/`;
|
|
449
449
|
}
|
|
450
|
-
function
|
|
450
|
+
function Le(e, ...t) {
|
|
451
451
|
let n = e || ``;
|
|
452
|
-
for (let e of t.filter((e) =>
|
|
453
|
-
let t = e.replace(
|
|
454
|
-
n =
|
|
452
|
+
for (let e of t.filter((e) => Ie(e))) if (n) {
|
|
453
|
+
let t = e.replace(je, ``);
|
|
454
|
+
n = Ne(n) + t;
|
|
455
455
|
} else n = e;
|
|
456
456
|
return n;
|
|
457
457
|
}
|
|
458
|
-
var
|
|
458
|
+
var Re = ((e) => function(t) {
|
|
459
459
|
for (let [n, r] of Object.entries(e.options || {})) t.res.headers.set(n, r);
|
|
460
460
|
}), U = {
|
|
461
461
|
"/assets/index-BC9qhYL0.js": {
|
|
462
462
|
type: `text/javascript; charset=utf-8`,
|
|
463
463
|
etag: `"2c32-P9M3yJbjRmzrrPeoaEqQI2KbS4E"`,
|
|
464
|
-
mtime: `2026-03-
|
|
464
|
+
mtime: `2026-03-25T21:41:35.759Z`,
|
|
465
465
|
size: 11314,
|
|
466
466
|
path: `../public/assets/index-BC9qhYL0.js`,
|
|
467
467
|
data: `KGZ1bmN0aW9uKCl7bGV0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChgbGlua2ApLnJlbExpc3Q7aWYoZSYmZS5zdXBwb3J0cyYmZS5zdXBwb3J0cyhgbW9kdWxlcHJlbG9hZGApKXJldHVybjtmb3IobGV0IGUgb2YgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgbGlua1tyZWw9Im1vZHVsZXByZWxvYWQiXWApKW4oZSk7bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZT0+e2ZvcihsZXQgdCBvZiBlKWlmKHQudHlwZT09PWBjaGlsZExpc3RgKWZvcihsZXQgZSBvZiB0LmFkZGVkTm9kZXMpZS50YWdOYW1lPT09YExJTktgJiZlLnJlbD09PWBtb2R1bGVwcmVsb2FkYCYmbihlKX0pLm9ic2VydmUoZG9jdW1lbnQse2NoaWxkTGlzdDohMCxzdWJ0cmVlOiEwfSk7ZnVuY3Rpb24gdChlKXtsZXQgdD17fTtyZXR1cm4gZS5pbnRlZ3JpdHkmJih0LmludGVncml0eT1lLmludGVncml0eSksZS5yZWZlcnJlclBvbGljeSYmKHQucmVmZXJyZXJQb2xpY3k9ZS5yZWZlcnJlclBvbGljeSksZS5jcm9zc09yaWdpbj09PWB1c2UtY3JlZGVudGlhbHNgP3QuY3JlZGVudGlhbHM9YGluY2x1ZGVgOmUuY3Jvc3NPcmlnaW49PT1gYW5vbnltb3VzYD90LmNyZWRlbnRpYWxzPWBvbWl0YDp0LmNyZWRlbnRpYWxzPWBzYW1lLW9yaWdpbmAsdH1mdW5jdGlvbiBuKGUpe2lmKGUuZXApcmV0dXJuO2UuZXA9ITA7bGV0IG49dChlKTtmZXRjaChlLmhyZWYsbil9fSkoKTt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChgaWNvbi1zdW5gKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBpY29uLW1vb25gKTtmdW5jdGlvbiBuKCl7bGV0IG49bG9jYWxTdG9yYWdlLmdldEl0ZW0oYHRoZW1lYCkscj1uPT09YGRhcmtgfHwhbiYmd2luZG93Lm1hdGNoTWVkaWEoYChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaylgKS5tYXRjaGVzO2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKGBkYXJrYCxyKSxlLmNsYXNzTGlzdC50b2dnbGUoYGhpZGRlbmAsIXIpLHQuY2xhc3NMaXN0LnRvZ2dsZShgaGlkZGVuYCxyKX1mdW5jdGlvbiByKCl7bigpLHdpbmRvdy5tYXRjaE1lZGlhKGAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspYCkuYWRkRXZlbnRMaXN0ZW5lcihgY2hhbmdlYCwoKT0+e2xvY2FsU3RvcmFnZS5nZXRJdGVtKGB0aGVtZWApfHxuKCl9KSxkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgdGhlbWUtdG9nZ2xlYCkuYWRkRXZlbnRMaXN0ZW5lcihgY2xpY2tgLCgpPT57bGV0IGU9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhgZGFya2ApO2xvY2FsU3RvcmFnZS5zZXRJdGVtKGB0aGVtZWAsZT9gbGlnaHRgOmBkYXJrYCksbigpfSl9ZnVuY3Rpb24gaShlLHQpe3JldHVybiBlLnBhdGg9PT10PyEwOmUuY2hpbGRyZW4/LnNvbWUoZT0+aShlLHQpKT8/ITF9ZnVuY3Rpb24gYShlLHQpe3JldHVybiBlLm1hcChlPT57bGV0IG49ZS5jaGlsZHJlbiYmZS5jaGlsZHJlbi5sZW5ndGg+MCxyPW4/YShlLmNoaWxkcmVuLHQrMSk6YGAsaT0xMit0KjEyO3JldHVybmAKICAgICAgICA8bGk+CiAgICAgICAgICAke2UucGFnZSE9PSExJiYhKG4mJmUuY2hpbGRyZW4/LlswXT8ucGF0aD09PWUucGF0aCk/YDxhIGhyZWY9IiR7ZS5wYXRofSIKICAgICAgICAgICAgY2xhc3M9Im5hdi1saW5rIGJsb2NrIHB5LTEuNSB0ZXh0LXNtICR7bj9gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMCBkYXJrOnRleHQtZ3JheS0xMDBgOmB0ZXh0LWdyYXktNjAwIGRhcms6dGV4dC1ncmF5LTQwMGB9IGhvdmVyOmJnLWdyYXktMTAwIGhvdmVyOnRleHQtZ3JheS05MDAgZGFyazpob3ZlcjpiZy1ncmF5LTgwMCBkYXJrOmhvdmVyOnRleHQtZ3JheS0xMDAgcm91bmRlZC1tZCB0cmFuc2l0aW9uLWNvbG9ycyIKICAgICAgICAgICAgc3R5bGU9InBhZGRpbmctbGVmdDogJHtpfXB4OyBwYWRkaW5nLXJpZ2h0OiAxMnB4IgogICAgICAgICAgICBkYXRhLXBhdGg9IiR7ZS5wYXRofSI+CiAgICAgICAgICAgICR7ZS50aXRsZX0KICAgICAgICAgIDwvYT5gOmA8c3BhbgogICAgICAgICAgICBjbGFzcz0iYmxvY2sgcHktMS41IHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMCBkYXJrOnRleHQtZ3JheS0xMDAgY3Vyc29yLWRlZmF1bHQiCiAgICAgICAgICAgIHN0eWxlPSJwYWRkaW5nLWxlZnQ6ICR7aX1weDsgcGFkZGluZy1yaWdodDogMTJweCI+CiAgICAgICAgICAgICR7ZS50aXRsZX0KICAgICAgICAgIDwvc3Bhbj5gfQogICAgICAgICAgJHtyP2A8dWwgY2xhc3M9Im10LTAuNSI+JHtyfTwvdWw+YDpgYH0KICAgICAgICA8L2xpPmB9KS5qb2luKGBgKX1mdW5jdGlvbiBvKGUsdCl7bGV0IG49ZS5zb21lKGU9PmkoZSx0KSkscj0hMDtyZXR1cm4gZS5tYXAoZT0+e2lmKCEoZS5jaGlsZHJlbiYmZS5jaGlsZHJlbi5sZW5ndGg+MCkpcmV0dXJuYDxsaT4ke2UucGFnZT09PSExP2A8c3BhbiBjbGFzcz0iYmxvY2sgcHktMS41IHB4LTMgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWdyYXktOTAwIGRhcms6dGV4dC1ncmF5LTEwMCBjdXJzb3ItZGVmYXVsdCI+CiAgICAgICAgICAgICAgICAke2UudGl0bGV9CiAgICAgICAgICAgICAgPC9zcGFuPmA6YDxhIGhyZWY9IiR7ZS5wYXRofSIKICAgICAgICAgICAgICAgIGNsYXNzPSJuYXYtbGluayBibG9jayBweS0xLjUgcHgtMyB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS05MDAgZGFyazp0ZXh0LWdyYXktMTAwIGhvdmVyOmJnLWdyYXktMTAwIGRhcms6aG92ZXI6YmctZ3JheS04MDAgcm91bmRlZC1tZCB0cmFuc2l0aW9uLWNvbG9ycyIKICAgICAgICAgICAgICAgIGRhdGEtcGF0aD0iJHtlLnBhdGh9Ij4KICAgICAgICAgICAgICAgICR7ZS50aXRsZX0KICAgICAgICAgICAgICA8L2E+YH08L2xpPmA7bGV0IG89aShlLHQpfHwhbiYmcjtyPSExO2xldCBzPWUucGFnZSE9PSExJiZlLmNoaWxkcmVuPy5bMF0/LnBhdGghPT1lLnBhdGgsYz1gPHN2ZyBjbGFzcz0ibmF2LWNoZXZyb24gdy00IGgtNCB0ZXh0LWdyYXktNDAwIHRyYW5zaXRpb24tdHJhbnNmb3JtICR7bz9gcm90YXRlLTkwYDpgYH0iIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0iY3VycmVudENvbG9yIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik03LjIxIDE0Ljc3YS43NS43NSAwIDAxLjAyLTEuMDZMMTEuMTY4IDEwIDcuMjMgNi4yOWEuNzUuNzUgMCAxMTEuMDQtMS4wOGw0LjUgNC4yNWEuNzUuNzUgMCAwMTAgMS4wOGwtNC41IDQuMjVhLjc1Ljc1IDAgMDEtMS4wNi0uMDJ6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz5gLGw9cz9gPGEgaHJlZj0iJHtlLnBhdGh9IgogICAgICAgICAgICBjbGFzcz0ibmF2LWxpbmsgZmxleC0xIHB5LTEuNSB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS05MDAgZGFyazp0ZXh0LWdyYXktMTAwIGhvdmVyOnRleHQtZ3JheS02MDAgZGFyazpob3Zlcjp0ZXh0LWdyYXktMzAwIHRyYW5zaXRpb24tY29sb3JzIgogICAgICAgICAgICBkYXRhLXBhdGg9IiR7ZS5wYXRofSI+CiAgICAgICAgICAgICR7ZS50aXRsZX0KICAgICAgICAgIDwvYT5gOmA8c3BhbiBjbGFzcz0iZmxleC0xIHB5LTEuNSB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS05MDAgZGFyazp0ZXh0LWdyYXktMTAwIj4KICAgICAgICAgICAgJHtlLnRpdGxlfQogICAgICAgICAgPC9zcGFuPmAsdT1hKGUuY2hpbGRyZW4sMSk7cmV0dXJuYAogICAgICAgIDxsaSBkYXRhLXNlY3Rpb249IiR7ZS5wYXRofSI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBweC0zIHJvdW5kZWQtbWQgaG92ZXI6YmctZ3JheS0xMDAgZGFyazpob3ZlcjpiZy1ncmF5LTgwMCB0cmFuc2l0aW9uLWNvbG9ycyBjdXJzb3ItcG9pbnRlciI+CiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9Im5hdi10b2dnbGUgcC0wLjUgLW1sLTEgbXItMSIgZGF0YS1zZWN0aW9uPSIke2UucGF0aH0iIGFyaWEtbGFiZWw9IlRvZ2dsZSBzZWN0aW9uIj4KICAgICAgICAgICAgICAke2N9CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAke2x9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDx1bCBjbGFzcz0ibmF2LXNlY3Rpb24gbXQtMC41ICR7bz9gYDpgaGlkZGVuYH0iIGRhdGEtc2VjdGlvbj0iJHtlLnBhdGh9Ij4KICAgICAgICAgICAgJHt1fQogICAgICAgICAgPC91bD4KICAgICAgICA8L2xpPmB9KS5qb2luKGBgKX1mdW5jdGlvbiBzKGUpe2ZvcihsZXQgdCBvZiBlKXtpZih0LnBhZ2UhPT0hMSlyZXR1cm4gdC5wYXRoO2lmKHQuY2hpbGRyZW4pe2xldCBlPXModC5jaGlsZHJlbik7aWYoZSlyZXR1cm4gZX19fXZhciBjPVtdO2Z1bmN0aW9uIGwoZSx0KXtjPXQ7bGV0IG49bG9jYXRpb24ucGF0aG5hbWU7ZS5pbm5lckhUTUw9dC5sZW5ndGg/YDx1bCBjbGFzcz0ic3BhY2UteS0wLjUiPiR7byh0LG4pfTwvdWw+YDpgPHAgY2xhc3M9InB4LTMgcHktMiB0ZXh0LXNtIHRleHQtZ3JheS00MDAiPk5vIHBhZ2VzIGxvYWRlZDwvcD5gLGUuYWRkRXZlbnRMaXN0ZW5lcihgY2xpY2tgLHQ9PntsZXQgbj10LnRhcmdldCxyPW4uY2xvc2VzdChgLm5hdi10b2dnbGVgKTtpZihyKXt1KGUsci5kYXRhc2V0LnNlY3Rpb24pO3JldHVybn1sZXQgaT1uLmNsb3Nlc3QoYGxpW2RhdGEtc2VjdGlvbl1gKTtpJiYhbi5jbG9zZXN0KGAubmF2LWxpbmtgKSYmdShlLGkuZGF0YXNldC5zZWN0aW9uKX0pfWZ1bmN0aW9uIHUoZSx0KXtsZXQgbj1lLnF1ZXJ5U2VsZWN0b3IoYHVsLm5hdi1zZWN0aW9uW2RhdGEtc2VjdGlvbj0iJHt0fSJdYCk7biYmKG4uY2xhc3NMaXN0LmNvbnRhaW5zKGBoaWRkZW5gKT8oZS5xdWVyeVNlbGVjdG9yQWxsKGB1bC5uYXYtc2VjdGlvbmApLmZvckVhY2goZT0+e2UuY2xhc3NMaXN0LmFkZChgaGlkZGVuYCl9KSxlLnF1ZXJ5U2VsZWN0b3JBbGwoYC5uYXYtY2hldnJvbmApLmZvckVhY2goZT0+e2UuY2xhc3NMaXN0LnJlbW92ZShgcm90YXRlLTkwYCl9KSxuLmNsYXNzTGlzdC5yZW1vdmUoYGhpZGRlbmApLGUucXVlcnlTZWxlY3RvcihgLm5hdi10b2dnbGVbZGF0YS1zZWN0aW9uPSIke3R9Il0gLm5hdi1jaGV2cm9uYCk/LmNsYXNzTGlzdC5hZGQoYHJvdGF0ZS05MGApKToobi5jbGFzc0xpc3QuYWRkKGBoaWRkZW5gKSxlLnF1ZXJ5U2VsZWN0b3IoYC5uYXYtdG9nZ2xlW2RhdGEtc2VjdGlvbj0iJHt0fSJdIC5uYXYtY2hldnJvbmApPy5jbGFzc0xpc3QucmVtb3ZlKGByb3RhdGUtOTBgKSkpfWZ1bmN0aW9uIGQoZSx0KXtlLnF1ZXJ5U2VsZWN0b3JBbGwoYC5uYXYtbGlua2ApLmZvckVhY2goZT0+e2xldCBuPWUuZ2V0QXR0cmlidXRlKGBkYXRhLXBhdGhgKT09PXQ7ZS5jbGFzc0xpc3QudG9nZ2xlKGBuYXYtYWN0aXZlYCxuKSxlLmNsYXNzTGlzdC50b2dnbGUoYGZvbnQtbWVkaXVtYCxuKX0pO2xldCBuPWMuZmluZChlPT5pKGUsdCkpO24/LmNoaWxkcmVuPy5sZW5ndGgmJihlLnF1ZXJ5U2VsZWN0b3JBbGwoYHVsLm5hdi1zZWN0aW9uYCkuZm9yRWFjaChlPT57ZS5jbGFzc0xpc3QuYWRkKGBoaWRkZW5gKX0pLGUucXVlcnlTZWxlY3RvckFsbChgLm5hdi1jaGV2cm9uYCkuZm9yRWFjaChlPT57ZS5jbGFzc0xpc3QucmVtb3ZlKGByb3RhdGUtOTBgKX0pLGUucXVlcnlTZWxlY3RvcihgdWwubmF2LXNlY3Rpb25bZGF0YS1zZWN0aW9uPSIke24ucGF0aH0iXWApPy5jbGFzc0xpc3QucmVtb3ZlKGBoaWRkZW5gKSxlLnF1ZXJ5U2VsZWN0b3IoYC5uYXYtdG9nZ2xlW2RhdGEtc2VjdGlvbj0iJHtuLnBhdGh9Il0gLm5hdi1jaGV2cm9uYCk/LmNsYXNzTGlzdC5hZGQoYHJvdGF0ZS05MGApKX1mdW5jdGlvbiBmKGUsdCl7ZS5pbm5lckhUTUw9YDxhcnRpY2xlIGNsYXNzPSJwcm9zZSBwcm9zZS1ncmF5IG1heC13LW5vbmUiPiR7dH08L2FydGljbGU+YDtmb3IobGV0IHQgb2YgZS5xdWVyeVNlbGVjdG9yQWxsKGBhW2hyZWZdYCkpe2xldCBuPXQuZ2V0QXR0cmlidXRlKGBocmVmYCk7bi5zdGFydHNXaXRoKGAvYCk/dC5hZGRFdmVudExpc3RlbmVyKGBjbGlja2AsZT0+e2UucHJldmVudERlZmF1bHQoKSxoaXN0b3J5LnB1c2hTdGF0ZShudWxsLGBgLG4pLHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBQb3BTdGF0ZUV2ZW50KGBwb3BzdGF0ZWApKX0pOm4uc3RhcnRzV2l0aChgI2ApP3QuYWRkRXZlbnRMaXN0ZW5lcihgY2xpY2tgLHQ9Pnt0LnByZXZlbnREZWZhdWx0KCk7bGV0IHI9bi5zbGljZSgxKSxpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHIpfHxlLnF1ZXJ5U2VsZWN0b3IoYFtpZD0iJHtDU1MuZXNjYXBlKHIpfSJdYCk7aSYmKGkuc2Nyb2xsSW50b1ZpZXcoe2JlaGF2aW9yOmBzbW9vdGhgfSksaGlzdG9yeS5yZXBsYWNlU3RhdGUobnVsbCxgYCxuKSl9KTovXmh0dHBzPzpcL1wvLy50ZXN0KG4pJiYodC50YXJnZXQ9YF9ibGFua2AsdC5yZWw9YG5vb3BlbmVyIG5vcmVmZXJyZXJgKX19YXN5bmMgZnVuY3Rpb24gcChlLHQpe2YoZSxgPHAgY2xhc3M9InRleHQtZ3JheS00MDAiPkxvYWRpbmcuLi48L3A+YCk7bGV0IG49YXdhaXQoYXdhaXQgZmV0Y2goYC9hcGkvcGFnZT9wYXRoPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHQpfWApKS5qc29uKCk7aWYobi5lcnJvcilmKGUsYDxwIGNsYXNzPSJ0ZXh0LXJlZC01MDAiPiR7bi5lcnJvcn08L3A+YCk7ZWxzZXtmKGUsbi5odG1sKTtsZXQgdD1sb2NhdGlvbi5oYXNoLnNsaWNlKDEpO2lmKHQpe2xldCBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHQpfHxlLnF1ZXJ5U2VsZWN0b3IoYFtpZD0iJHtDU1MuZXNjYXBlKHQpfSJdYCk7biYmbi5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6YHNtb290aGB9KX19fXZhciBtPVtdO2Z1bmN0aW9uIGgoZSl7bT1lfWZ1bmN0aW9uIGcoKXtsZXQgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChgc2VhcmNoLXRyaWdnZXJgKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBzZWFyY2gtbW9kYWxgKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBzZWFyY2gtYmFja2Ryb3BgKSxyPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBzZWFyY2gtaW5wdXRgKSxpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBzZWFyY2gtcmVzdWx0c2ApLGEsbz0tMSxzPVtdO2UuYWRkRXZlbnRMaXN0ZW5lcihgY2xpY2tgLGMpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoYGtleWRvd25gLGU9PnsoZS5tZXRhS2V5fHxlLmN0cmxLZXkpJiZlLmtleT09PWBrYCYmKGUucHJldmVudERlZmF1bHQoKSxjKCkpfSksbi5hZGRFdmVudExpc3RlbmVyKGBjbGlja2AsbCksci5hZGRFdmVudExpc3RlbmVyKGBpbnB1dGAsKCk9PntjbGVhclRpbWVvdXQoYSk7bGV0IGU9ci52YWx1ZS50cmltKCk7aWYoZS5sZW5ndGg8Mil7bz0tMSxzPVtdLHAoKTtyZXR1cm59YT1zZXRUaW1lb3V0KCgpPT51KGUpLDIwMCl9KSxyLmFkZEV2ZW50TGlzdGVuZXIoYGtleWRvd25gLGU9PntlLmtleT09PWBBcnJvd0Rvd25gPyhlLnByZXZlbnREZWZhdWx0KCksZihvKzEpKTplLmtleT09PWBBcnJvd1VwYD8oZS5wcmV2ZW50RGVmYXVsdCgpLGYoby0xKSk6ZS5rZXk9PT1gRW50ZXJgJiZvPj0wPyhlLnByZXZlbnREZWZhdWx0KCksaChzW29dLnBhdGgpKTplLmtleT09PWBFc2NhcGVgJiZsKCl9KTtmdW5jdGlvbiBjKCl7dC5jbGFzc0xpc3QucmVtb3ZlKGBoaWRkZW5gKSxyLnZhbHVlPWBgLG89LTEscz1bXSxwKCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT5yLmZvY3VzKCkpfWZ1bmN0aW9uIGwoKXt0LmNsYXNzTGlzdC5hZGQoYGhpZGRlbmApLHIudmFsdWU9YGAscz1bXSxvPS0xfWFzeW5jIGZ1bmN0aW9uIHUoZSl7cz0oYXdhaXQoYXdhaXQgZmV0Y2goYC9hcGkvc2VhcmNoP3E9JHtlbmNvZGVVUklDb21wb25lbnQoZSl9YCkpLmpzb24oKSkucmVzdWx0cyxvPXMubGVuZ3RoPjA/MDotMSxkKCl9ZnVuY3Rpb24gZCgpe2lmKHMubGVuZ3RoPT09MCl7aS5pbm5lckhUTUw9YDxwIGNsYXNzPSJweC00IHB5LTggdGV4dC1zbSB0ZXh0LWdyYXktNDAwIHRleHQtY2VudGVyIj5ObyByZXN1bHRzIGZvdW5kPC9wPmA7cmV0dXJufWkuaW5uZXJIVE1MPXMubWFwKChlLHQpPT5gCiAgICAgIDxhIGhyZWY9IiR7ZS5wYXRofSIgY2xhc3M9InNlYXJjaC1pdGVtIGZsZXggaXRlbXMtc3RhcnQgZ2FwLTMgcHgtNCBweS0zIGJvcmRlci1iIGJvcmRlci1ncmF5LTEwMCBkYXJrOmJvcmRlci1ncmF5LTgwMCBob3ZlcjpiZy1ncmF5LTUwIGRhcms6aG92ZXI6YmctZ3JheS04MDAgdHJhbnNpdGlvbi1jb2xvcnMgJHt0PT09bz9gYmctZ3JheS01MCBkYXJrOmJnLWdyYXktODAwYDpgYH0iIGRhdGEtaW5kZXg9IiR7dH0iPgogICAgICAgIDxzdmcgY2xhc3M9InNpemUtNCBtdC0wLjUgc2hyaW5rLTAgdGV4dC1ncmF5LTQwMCIgZmlsbD0ibm9uZSIgdmlld0JveD0iMCAwIDI0IDI0IiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiPgogICAgICAgICAgPHBhdGggc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBkPSJNMTkuNSAxNC4yNXYtMi42MjVhMy4zNzUgMy4zNzUgMCAwIDAtMy4zNzUtMy4zNzVoLTEuNUExLjEyNSAxLjEyNSAwIDAgMSAxMy41IDcuMTI1di0xLjVhMy4zNzUgMy4zNzUgMCAwIDAtMy4zNzUtMy4zNzVIOC4yNW0yLjI1IDBINS42MjVjLS42MjEgMC0xLjEyNS41MDQtMS4xMjUgMS4xMjV2MTcuMjVjMCAuNjIxLjUwNCAxLjEyNSAxLjEyNSAxLjEyNWgxMi43NWMuNjIxIDAgMS4xMjUtLjUwNCAxLjEyNS0xLjEyNVYxMS4yNWE5IDkgMCAwIDAtOS05WiIgLz4KICAgICAgICA8L3N2Zz4KICAgICAgICA8ZGl2IGNsYXNzPSJtaW4tdy0wIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMCBkYXJrOnRleHQtZ3JheS0xMDAiPiR7dihlLnRpdGxlKX08L2Rpdj4KICAgICAgICAgICR7ZS5zbmlwcGV0c1swXT9gPGRpdiBjbGFzcz0idGV4dC14cyB0ZXh0LWdyYXktNTAwIGRhcms6dGV4dC1ncmF5LTQwMCBtdC0wLjUgbGluZS1jbGFtcC0yIj4ke3YoZS5zbmlwcGV0c1swXSl9PC9kaXY+YDpgYH0KICAgICAgICA8L2Rpdj4KICAgICAgPC9hPmApLmpvaW4oYGApLGkucXVlcnlTZWxlY3RvckFsbChgLnNlYXJjaC1pdGVtYCkuZm9yRWFjaChlPT57ZS5hZGRFdmVudExpc3RlbmVyKGBjbGlja2AsKCk9PmwoKSl9KX1mdW5jdGlvbiBmKGUpe3MubGVuZ3RoIT09MCYmKG89TWF0aC5tYXgoMCxNYXRoLm1pbihlLHMubGVuZ3RoLTEpKSxkKCksaS5xdWVyeVNlbGVjdG9yKGBbZGF0YS1pbmRleD0iJHtvfSJdYCk/LnNjcm9sbEludG9WaWV3KHtibG9jazpgbmVhcmVzdGB9KSl9ZnVuY3Rpb24gcCgpe2xldCBlPV8obSk7aWYoZS5sZW5ndGg9PT0wKXtpLmlubmVySFRNTD1gPHAgY2xhc3M9InB4LTQgcHktOCB0ZXh0LXNtIHRleHQtZ3JheS00MDAgdGV4dC1jZW50ZXIiPlR5cGUgdG8gc2VhcmNo4oCmPC9wPmA7cmV0dXJufXM9ZS5tYXAoZT0+KHtwYXRoOmUucGF0aCx0aXRsZTplLnRpdGxlLHNuaXBwZXRzOltdfSkpLG89LTEsaS5pbm5lckhUTUw9cy5tYXAoKGUsdCk9PmAKICAgICAgPGEgaHJlZj0iJHtlLnBhdGh9IiBjbGFzcz0ic2VhcmNoLWl0ZW0gZmxleCBpdGVtcy1zdGFydCBnYXAtMyBweC00IHB5LTMgYm9yZGVyLWIgYm9yZGVyLWdyYXktMTAwIGRhcms6Ym9yZGVyLWdyYXktODAwIGhvdmVyOmJnLWdyYXktNTAgZGFyazpob3ZlcjpiZy1ncmF5LTgwMCB0cmFuc2l0aW9uLWNvbG9ycyIgZGF0YS1pbmRleD0iJHt0fSI+CiAgICAgICAgPHN2ZyBjbGFzcz0ic2l6ZS00IG10LTAuNSBzaHJpbmstMCB0ZXh0LWdyYXktNDAwIiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2U9ImN1cnJlbnRDb2xvciI+CiAgICAgICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGQ9Ik0xOS41IDE0LjI1di0yLjYyNWEzLjM3NSAzLjM3NSAwIDAgMC0zLjM3NS0zLjM3NWgtMS41QTEuMTI1IDEuMTI1IDAgMCAxIDEzLjUgNy4xMjV2LTEuNWEzLjM3NSAzLjM3NSAwIDAgMC0zLjM3NS0zLjM3NUg4LjI1bTIuMjUgMEg1LjYyNWMtLjYyMSAwLTEuMTI1LjUwNC0xLjEyNSAxLjEyNXYxNy4yNWMwIC42MjEuNTA0IDEuMTI1IDEuMTI1IDEuMTI1aDEyLjc1Yy42MjEgMCAxLjEyNS0uNTA0IDEuMTI1LTEuMTI1VjExLjI1YTkgOSAwIDAgMC05LTlaIiAvPgogICAgICAgIDwvc3ZnPgogICAgICAgIDxkaXYgY2xhc3M9Im1pbi13LTAiPgogICAgICAgICAgPGRpdiBjbGFzcz0idGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWdyYXktOTAwIGRhcms6dGV4dC1ncmF5LTEwMCI+JHt2KGUudGl0bGUpfTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2E+YCkuam9pbihgYCksaS5xdWVyeVNlbGVjdG9yQWxsKGAuc2VhcmNoLWl0ZW1gKS5mb3JFYWNoKGU9PntlLmFkZEV2ZW50TGlzdGVuZXIoYGNsaWNrYCx0PT57dC5wcmV2ZW50RGVmYXVsdCgpO2xldCBuPU51bWJlcihlLmRhdGFzZXQuaW5kZXgpO2goc1tuXS5wYXRoKX0pfSl9ZnVuY3Rpb24gaChlKXtsb2NhdGlvbi5oYXNoPWUsbCgpfX1mdW5jdGlvbiBfKGUpe2xldCB0PVtdO2ZvcihsZXQgbiBvZiBlKW4ucGFnZSE9PSExJiZ0LnB1c2goe3BhdGg6bi5wYXRoLHRpdGxlOm4udGl0bGV9KSxuLmNoaWxkcmVuJiZ0LnB1c2goLi4uXyhuLmNoaWxkcmVuKSk7cmV0dXJuIHR9ZnVuY3Rpb24gdihlKXtyZXR1cm4gZS5yZXBsYWNlKC8mL2csYCZhbXA7YCkucmVwbGFjZSgvPC9nLGAmbHQ7YCkucmVwbGFjZSgvPi9nLGAmZ3Q7YCkucmVwbGFjZSgvIi9nLGAmcXVvdDtgKX12YXIgeT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChgc2lkZWJhcmApLGI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYGNvbnRlbnRgKTtyKCksZygpO2Z1bmN0aW9uIHgoZSl7aGlzdG9yeS5wdXNoU3RhdGUobnVsbCxgYCxlKSxTKCl9YXN5bmMgZnVuY3Rpb24gUygpe2xldCBlPWxvY2F0aW9uLnBhdGhuYW1lO2lmKGU9PT1gL2Ape2YoYixgPHAgY2xhc3M9InRleHQtZ3JheS00MDAiPlNlbGVjdCBhIHBhZ2UgZnJvbSB0aGUgc2lkZWJhci48L3A+YCk7cmV0dXJufWQoeSxlKSxhd2FpdCBwKGIsZSl9YXN5bmMgZnVuY3Rpb24gQygpe2YoYixgPHAgY2xhc3M9InRleHQtZ3JheS00MDAiPkxvYWRpbmcuLi48L3A+YCk7bGV0IGU9KGF3YWl0KGF3YWl0IGZldGNoKGAvYXBpL21ldGFgKSkuanNvbigpKS50b2M7aWYobCh5LGUpLGgoZSkseS5hZGRFdmVudExpc3RlbmVyKGBjbGlja2AsZT0+e2xldCB0PWUudGFyZ2V0LmNsb3Nlc3QoYGEubmF2LWxpbmtgKTt0JiYoZS5wcmV2ZW50RGVmYXVsdCgpLHgodC5nZXRBdHRyaWJ1dGUoYGRhdGEtcGF0aGApKSl9KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihgcG9wc3RhdGVgLFMpLGxvY2F0aW9uLnBhdGhuYW1lPT09YC9gKXtsZXQgdD1zKGUpO2lmKHQpe3godCk7cmV0dXJufX1TKCl9QygpOw==`
|
|
@@ -469,56 +469,56 @@ var ze = ((e) => function(t) {
|
|
|
469
469
|
"/assets/logo-BLkVGWak.svg": {
|
|
470
470
|
type: `image/svg+xml`,
|
|
471
471
|
etag: `"557-HYXN/qI1kFu3DGsCSw4J8HIDoeU"`,
|
|
472
|
-
mtime: `2026-03-
|
|
472
|
+
mtime: `2026-03-25T21:41:35.760Z`,
|
|
473
473
|
size: 1367,
|
|
474
474
|
path: `../public/assets/logo-BLkVGWak.svg`,
|
|
475
475
|
data: `PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMDAgMjAwIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+CiAgPCEtLSBCb2R5OiByb3VuZGVkIHJlY3RhbmdsZSAoZG9jdW1lbnQgc2hhcGUpIC0tPgogIDxyZWN0IHg9IjQwIiB5PSIzMCIgd2lkdGg9IjEyMCIgaGVpZ2h0PSIxNTAiIHJ4PSIxOCIgcnk9IjE4IiBmaWxsPSIjMkIyRDQyIi8+CgogIDwhLS0gRG9jdW1lbnQgbGluZXMgKG1hcmtkb3duIGZlZWwpIC0tPgogIDxyZWN0IHg9IjYyIiB5PSI3MCIgd2lkdGg9IjUwIiBoZWlnaHQ9IjYiIHJ4PSIzIiBmaWxsPSIjOEQ5OUFFIi8+CiAgPHJlY3QgeD0iNjIiIHk9Ijg2IiB3aWR0aD0iNzYiIGhlaWdodD0iNiIgcng9IjMiIGZpbGw9IiM4RDk5QUUiLz4KICA8cmVjdCB4PSI2MiIgeT0iMTAyIiB3aWR0aD0iNjIiIGhlaWdodD0iNiIgcng9IjMiIGZpbGw9IiM4RDk5QUUiLz4KICA8cmVjdCB4PSI2MiIgeT0iMTE4IiB3aWR0aD0iNzAiIGhlaWdodD0iNiIgcng9IjMiIGZpbGw9IiM4RDk5QUUiLz4KICA8cmVjdCB4PSI2MiIgeT0iMTM0IiB3aWR0aD0iNDAiIGhlaWdodD0iNiIgcng9IjMiIGZpbGw9IiM4RDk5QUUiLz4KCiAgPCEtLSBIZWFkaW5nIGhhc2ggbWFyayAobWFya2Rvd24gIykgLS0+CiAgPHRleHQgeD0iNjIiIHk9IjYwIiBmb250LWZhbWlseT0ibW9ub3NwYWNlIiBmb250LXdlaWdodD0iYm9sZCIgZm9udC1zaXplPSIxOCIgZmlsbD0iI0VERjJGNCI+IzwvdGV4dD4KCiAgPCEtLSBFeWVzIC0tPgogIDxjaXJjbGUgY3g9Ijc4IiBjeT0iMTcyIiByPSI1IiBmaWxsPSIjRUYyMzNDIi8+CiAgPGNpcmNsZSBjeD0iMTIyIiBjeT0iMTcyIiByPSI1IiBmaWxsPSIjRUYyMzNDIi8+CgogIDwhLS0gVGVldGggKHppbGxhIGJpdGUgb24gYm90dG9tKSAtLT4KICA8cG9seWdvbiBwb2ludHM9IjY4LDE4MCA3NCwxOTIgODAsMTgwIiBmaWxsPSIjRURGMkY0Ii8+CiAgPHBvbHlnb24gcG9pbnRzPSI4OCwxODAgOTQsMTkyIDEwMCwxODAiIGZpbGw9IiNFREYyRjQiLz4KICA8cG9seWdvbiBwb2ludHM9IjEwOCwxODAgMTE0LDE5MiAxMjAsMTgwIiBmaWxsPSIjRURGMkY0Ii8+CiAgPHBvbHlnb24gcG9pbnRzPSIxMjgsMTgwIDEzNCwxOTIgMTQwLDE4MCIgZmlsbD0iI0VERjJGNCIvPgoKICA8IS0tIFNwaWtlcyBvbiB0b3AgKHppbGxhIGhvcm5zKSAtLT4KICA8cG9seWdvbiBwb2ludHM9IjcwLDMwIDc4LDEwIDg2LDMwIiBmaWxsPSIjMkIyRDQyIi8+CiAgPHBvbHlnb24gcG9pbnRzPSI5MiwzMCAxMDAsNiAxMDgsMzAiIGZpbGw9IiMyQjJENDIiLz4KICA8cG9seWdvbiBwb2ludHM9IjExNCwzMCAxMjIsMTAgMTMwLDMwIiBmaWxsPSIjMkIyRDQyIi8+Cjwvc3ZnPgo=`
|
|
476
476
|
}
|
|
477
477
|
};
|
|
478
|
-
function
|
|
478
|
+
function ze(e) {
|
|
479
479
|
if (U[e]) return U[e]._data ? U[e]._data : U[e].data ? (U[e]._data = Uint8Array.from(atob(U[e].data), (e) => e.charCodeAt(0)), U[e]._data) : U[e].data;
|
|
480
480
|
}
|
|
481
|
-
var
|
|
482
|
-
function
|
|
481
|
+
var Be = {};
|
|
482
|
+
function Ve(e = ``) {
|
|
483
483
|
if (U[e]) return !0;
|
|
484
|
-
for (let t in
|
|
484
|
+
for (let t in Be) if (e.startsWith(t)) return !0;
|
|
485
485
|
return !1;
|
|
486
486
|
}
|
|
487
|
-
function
|
|
487
|
+
function He(e) {
|
|
488
488
|
return U[e];
|
|
489
489
|
}
|
|
490
490
|
V();
|
|
491
|
-
var
|
|
491
|
+
var Ue = new Set([`HEAD`, `GET`]), We = {
|
|
492
492
|
gzip: `.gz`,
|
|
493
493
|
br: `.br`,
|
|
494
494
|
zstd: `.zst`
|
|
495
|
-
},
|
|
496
|
-
if (e.req.method && !
|
|
497
|
-
let t =
|
|
498
|
-
for (let e of r) for (let r of [t + e,
|
|
499
|
-
let e =
|
|
495
|
+
}, Ge = T((e) => {
|
|
496
|
+
if (e.req.method && !Ue.has(e.req.method)) return;
|
|
497
|
+
let t = ke(Fe(Me(e.url.pathname))), n, r = [...(e.req.headers.get(`accept-encoding`) || ``).split(`,`).map((e) => We[e.trim()]).filter(Boolean).sort(), ``];
|
|
498
|
+
for (let e of r) for (let r of [t + e, Le(t, `index.html` + e)]) {
|
|
499
|
+
let e = He(r);
|
|
500
500
|
if (e) {
|
|
501
501
|
n = e, t = r;
|
|
502
502
|
break;
|
|
503
503
|
}
|
|
504
504
|
}
|
|
505
505
|
if (!n) {
|
|
506
|
-
if (
|
|
506
|
+
if (Ve(t)) throw e.res.headers.delete(`Cache-Control`), new N({ status: 404 });
|
|
507
507
|
return;
|
|
508
508
|
}
|
|
509
509
|
if (r.length > 1 && e.res.headers.append(`Vary`, `Accept-Encoding`), e.req.headers.get(`if-none-match`) === n.etag) return e.res.status = 304, e.res.statusText = `Not Modified`, ``;
|
|
510
510
|
let i = e.req.headers.get(`if-modified-since`), a = new Date(n.mtime);
|
|
511
|
-
return i && n.mtime && new Date(i) >= a ? (e.res.status = 304, e.res.statusText = `Not Modified`, ``) : (n.type && e.res.headers.set(`Content-Type`, n.type), n.etag && !e.res.headers.has(`ETag`) && e.res.headers.set(`ETag`, n.etag), n.mtime && !e.res.headers.has(`Last-Modified`) && e.res.headers.set(`Last-Modified`, a.toUTCString()), n.encoding && !e.res.headers.has(`Content-Encoding`) && e.res.headers.set(`Content-Encoding`, n.encoding), n.size > 0 && !e.res.headers.has(`Content-Length`) && e.res.headers.set(`Content-Length`, n.size.toString()),
|
|
512
|
-
}), W =
|
|
511
|
+
return i && n.mtime && new Date(i) >= a ? (e.res.status = 304, e.res.statusText = `Not Modified`, ``) : (n.type && e.res.headers.set(`Content-Type`, n.type), n.etag && !e.res.headers.has(`ETag`) && e.res.headers.set(`ETag`, n.etag), n.mtime && !e.res.headers.has(`Last-Modified`) && e.res.headers.set(`Last-Modified`, a.toUTCString()), n.encoding && !e.res.headers.has(`Content-Encoding`) && e.res.headers.set(`Content-Encoding`, n.encoding), n.size > 0 && !e.res.headers.has(`Content-Length`) && e.res.headers.set(`Content-Length`, n.size.toString()), ze(t));
|
|
512
|
+
}), W = y((() => {
|
|
513
513
|
V();
|
|
514
514
|
}));
|
|
515
|
-
function
|
|
515
|
+
function Ke(e, t, n) {
|
|
516
516
|
let r = [];
|
|
517
517
|
for (let i of e) r.push({
|
|
518
518
|
entry: i,
|
|
519
519
|
depth: t,
|
|
520
520
|
filePath: n.get(i.path)
|
|
521
|
-
}), i.children && r.push(...
|
|
521
|
+
}), i.children && r.push(...Ke(i.children, t + 1, n));
|
|
522
522
|
return r;
|
|
523
523
|
}
|
|
524
524
|
function qe(e, t) {
|
|
@@ -536,7 +536,7 @@ function Je(e, t, n) {
|
|
|
536
536
|
let e = Infinity;
|
|
537
537
|
for (let r of n(i)) {
|
|
538
538
|
let n = qe(t, r);
|
|
539
|
-
n
|
|
539
|
+
n !== -1 && n < e && (e = n);
|
|
540
540
|
}
|
|
541
541
|
e < Infinity && r.push({
|
|
542
542
|
item: i,
|
|
@@ -545,8 +545,22 @@ function Je(e, t, n) {
|
|
|
545
545
|
}
|
|
546
546
|
return r.sort((e, t) => e.score - t.score), r.map((e) => e.item);
|
|
547
547
|
}
|
|
548
|
-
|
|
549
|
-
|
|
548
|
+
function Ye(e, t, n = 1) {
|
|
549
|
+
let r = [], i = e.split(`
|
|
550
|
+
`);
|
|
551
|
+
for (let e = 0; e < i.length; e++) if (i[e].toLowerCase().includes(t)) {
|
|
552
|
+
let t = [];
|
|
553
|
+
for (let r = Math.max(0, e - n); r <= Math.min(i.length - 1, e + n); r++) r !== e && t.push(i[r].trim());
|
|
554
|
+
r.push({
|
|
555
|
+
line: e + 1,
|
|
556
|
+
text: i[e].trim(),
|
|
557
|
+
context: t
|
|
558
|
+
});
|
|
559
|
+
}
|
|
560
|
+
return r;
|
|
561
|
+
}
|
|
562
|
+
var G, Xe = y((() => {
|
|
563
|
+
G = class {
|
|
550
564
|
source;
|
|
551
565
|
tree = [];
|
|
552
566
|
flat = [];
|
|
@@ -557,7 +571,7 @@ var Ye, Xe = v((() => {
|
|
|
557
571
|
}
|
|
558
572
|
async load() {
|
|
559
573
|
let { tree: e, fileMap: t } = await this.source.load();
|
|
560
|
-
this.tree = e, this._fileMap = t, this.flat =
|
|
574
|
+
this.tree = e, this._fileMap = t, this.flat = Ke(this.tree, 0, this._fileMap), this._contentCache.clear();
|
|
561
575
|
}
|
|
562
576
|
async reload() {
|
|
563
577
|
return this.load();
|
|
@@ -575,6 +589,36 @@ var Ye, Xe = v((() => {
|
|
|
575
589
|
filter(e) {
|
|
576
590
|
return Je(this.flat, e, ({ entry: e }) => [e.title, e.path]);
|
|
577
591
|
}
|
|
592
|
+
async *search(t) {
|
|
593
|
+
if (!t) return;
|
|
594
|
+
let n = t.toLowerCase(), r = n.split(/\s+/).filter(Boolean), i = (e) => r.every((t) => e.includes(t)), a = /* @__PURE__ */ new Set();
|
|
595
|
+
for (let t of this.flat) {
|
|
596
|
+
if (t.entry.page === !1 || a.has(t.entry.path)) continue;
|
|
597
|
+
a.add(t.entry.path);
|
|
598
|
+
let r = t.entry.title.toLowerCase(), o = i(r) || i(t.entry.path.toLowerCase()), s = await this.getContent(t), c = s?.toLowerCase(), l = c ? i(c) : !1;
|
|
599
|
+
if (!o && !l) continue;
|
|
600
|
+
let u = 300, d;
|
|
601
|
+
if (o) u = r === n ? 0 : 100;
|
|
602
|
+
else if (s) {
|
|
603
|
+
let t = parseMeta(s);
|
|
604
|
+
for (let e of t.headings || []) {
|
|
605
|
+
let t = e.text.toLowerCase();
|
|
606
|
+
if (i(t)) {
|
|
607
|
+
u = t === n ? 150 : 200, d = e.text;
|
|
608
|
+
break;
|
|
609
|
+
}
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
let f = s ? Ye(s, n) : [];
|
|
613
|
+
yield {
|
|
614
|
+
flat: t,
|
|
615
|
+
score: u,
|
|
616
|
+
titleMatch: o,
|
|
617
|
+
heading: d,
|
|
618
|
+
contentMatches: f
|
|
619
|
+
};
|
|
620
|
+
}
|
|
621
|
+
}
|
|
578
622
|
get pages() {
|
|
579
623
|
return this.flat.filter((e) => e.entry.page !== !1);
|
|
580
624
|
}
|
|
@@ -604,24 +648,36 @@ var Ye, Xe = v((() => {
|
|
|
604
648
|
let i = await this.source.readContent(t).catch(() => void 0);
|
|
605
649
|
return i ? { raw: i } : {};
|
|
606
650
|
}
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
let t = this.flat[e].depth;
|
|
615
|
-
for (let r = e + 1; r < this.flat.length && !(this.flat[r].depth <= t); r++) n.add(r);
|
|
616
|
-
}
|
|
617
|
-
}
|
|
618
|
-
return [...n].sort((e, t) => e - t);
|
|
651
|
+
suggest(e, t = 5) {
|
|
652
|
+
let n = this.filter(e);
|
|
653
|
+
if (n.length > 0) return n.slice(0, t);
|
|
654
|
+
let r = e.replace(/^\/+/, ``).split(`/`).filter(Boolean), i = r.at(-1);
|
|
655
|
+
if (i && i !== e && (n = this.filter(i), n.length > 0)) return n.slice(0, t);
|
|
656
|
+
let a = r.flatMap((e) => e.split(`-`)).filter(Boolean);
|
|
657
|
+
return this.pages.filter((e) => a.some((t) => e.entry.title.toLowerCase().includes(t) || e.entry.path.toLowerCase().includes(t))).slice(0, t);
|
|
619
658
|
}
|
|
620
659
|
};
|
|
621
|
-
})), K, q = v((() => {
|
|
622
|
-
K = class {};
|
|
623
660
|
}));
|
|
624
|
-
function Ze(e) {
|
|
661
|
+
function Ze(e, t, n = {}) {
|
|
662
|
+
let { maxSnippets: r = 3, radius: i = 80 } = n, a = e.toLowerCase(), o = [];
|
|
663
|
+
for (let e of t) {
|
|
664
|
+
let t = a.indexOf(e);
|
|
665
|
+
for (; t !== -1 && o.length < r * 2;) o.push(t), t = a.indexOf(e, t + e.length);
|
|
666
|
+
}
|
|
667
|
+
o.sort((e, t) => e - t);
|
|
668
|
+
let s = [], c = -1;
|
|
669
|
+
for (let t of o) {
|
|
670
|
+
if (s.length >= r) break;
|
|
671
|
+
let n = Math.max(0, t - i), a = Math.min(e.length, t + i);
|
|
672
|
+
if (n <= c) continue;
|
|
673
|
+
c = a;
|
|
674
|
+
let o = e.slice(n, a).trim().replaceAll(/\s+/g, ` `);
|
|
675
|
+
n > 0 && (o = `…` + o), a < e.length && (o += `…`), s.push(o);
|
|
676
|
+
}
|
|
677
|
+
return s;
|
|
678
|
+
}
|
|
679
|
+
var Qe = y((() => {}));
|
|
680
|
+
function $e(e) {
|
|
625
681
|
let t = e.endsWith(`.md`) ? e.slice(0, -3) : e, n = t.endsWith(`.draft`);
|
|
626
682
|
n && (t = t.slice(0, -6));
|
|
627
683
|
let r = t.match(/^(\d+)\.(.+)$/);
|
|
@@ -635,18 +691,18 @@ function Ze(e) {
|
|
|
635
691
|
draft: n
|
|
636
692
|
};
|
|
637
693
|
}
|
|
638
|
-
function
|
|
694
|
+
function et(e) {
|
|
639
695
|
return e.split(`-`).map((e) => e.charAt(0).toUpperCase() + e.slice(1)).join(` `);
|
|
640
696
|
}
|
|
641
|
-
async function
|
|
697
|
+
async function tt(t) {
|
|
642
698
|
try {
|
|
643
|
-
let { headings: n, ...r } = parseMeta(`---\n${await readFile(join(
|
|
699
|
+
let { headings: n, ...r } = parseMeta(`---\n${await readFile(join(t, `.navigation.yml`), `utf8`)}\n---\n`);
|
|
644
700
|
return r;
|
|
645
701
|
} catch {
|
|
646
702
|
return {};
|
|
647
703
|
}
|
|
648
704
|
}
|
|
649
|
-
function
|
|
705
|
+
function nt(e) {
|
|
650
706
|
let t = e.navigation;
|
|
651
707
|
if (t === !1) return {
|
|
652
708
|
...e,
|
|
@@ -661,60 +717,60 @@ function et(e) {
|
|
|
661
717
|
}
|
|
662
718
|
return e;
|
|
663
719
|
}
|
|
664
|
-
function
|
|
720
|
+
function rt(e) {
|
|
665
721
|
let t = {}, n = !1;
|
|
666
|
-
for (let [r, i] of Object.entries(e)) !
|
|
722
|
+
for (let [r, i] of Object.entries(e)) !ot.has(r) && r !== `navigation` && (t[r] = i, n = !0);
|
|
667
723
|
return n ? t : void 0;
|
|
668
724
|
}
|
|
669
|
-
async function
|
|
670
|
-
return
|
|
725
|
+
async function it(e, t) {
|
|
726
|
+
return at(e, `/`, t || {});
|
|
671
727
|
}
|
|
672
|
-
async function
|
|
673
|
-
let
|
|
674
|
-
for (let
|
|
675
|
-
if (
|
|
676
|
-
let
|
|
728
|
+
async function at(t, n, r) {
|
|
729
|
+
let s = await readdir(t), l = [];
|
|
730
|
+
for (let a of s) {
|
|
731
|
+
if (a.startsWith(`.`) || a.startsWith(`_`) || a === `node_modules` || a === `dist` || a === `package.json` || a === `pnpm-lock.yaml` || a === `pnpm-workspace.yaml`) continue;
|
|
732
|
+
let s = join(t, a), f;
|
|
677
733
|
try {
|
|
678
|
-
f = await stat(
|
|
734
|
+
f = await stat(s);
|
|
679
735
|
} catch {
|
|
680
736
|
continue;
|
|
681
737
|
}
|
|
682
738
|
if (f.isDirectory()) {
|
|
683
|
-
let { order: e, slug: t } =
|
|
684
|
-
if (
|
|
685
|
-
let
|
|
739
|
+
let { order: e, slug: t } = $e(a), i = await tt(s);
|
|
740
|
+
if (i.navigation === !1) continue;
|
|
741
|
+
let o = await at(s, n === `/` ? `/${t}` : `${n}/${t}`, r), c = o.some((e) => e.slug === ``), u = {
|
|
686
742
|
slug: t,
|
|
687
|
-
path:
|
|
688
|
-
title:
|
|
743
|
+
path: n === `/` ? `/${t}` : `${n}/${t}`,
|
|
744
|
+
title: i.title || et(t),
|
|
689
745
|
order: e,
|
|
690
|
-
...
|
|
691
|
-
...
|
|
692
|
-
...
|
|
693
|
-
...
|
|
746
|
+
...i.icon ? { icon: i.icon } : {},
|
|
747
|
+
...i.description ? { description: i.description } : {},
|
|
748
|
+
...c ? {} : { page: !1 },
|
|
749
|
+
...o.length > 0 ? { children: o } : {}
|
|
694
750
|
};
|
|
695
|
-
|
|
696
|
-
} else if (extname(
|
|
697
|
-
let { order:
|
|
698
|
-
if (
|
|
699
|
-
let
|
|
700
|
-
if (
|
|
701
|
-
let f = typeof
|
|
751
|
+
l.push(u);
|
|
752
|
+
} else if (extname(a) === `.md`) {
|
|
753
|
+
let { order: t, slug: o, draft: u } = $e(basename(a));
|
|
754
|
+
if (u && !r.drafts) continue;
|
|
755
|
+
let d = nt(parseMeta(await readFile(s, `utf8`)));
|
|
756
|
+
if (d.navigation === !1) continue;
|
|
757
|
+
let f = typeof d.order == `number` ? d.order : t, p = o === `index` ? `` : o, m = d.title || et(o) || `index`, h = p === `` ? n === `/` ? `/` : n : n === `/` ? `/${p}` : `${n}/${p}`, g = rt(d), _ = {
|
|
702
758
|
slug: p,
|
|
703
759
|
path: h,
|
|
704
760
|
title: m,
|
|
705
761
|
order: f,
|
|
706
|
-
...
|
|
707
|
-
...
|
|
708
|
-
...
|
|
762
|
+
...d.icon ? { icon: d.icon } : {},
|
|
763
|
+
...d.description ? { description: d.description } : {},
|
|
764
|
+
...u ? { draft: !0 } : {},
|
|
709
765
|
...g
|
|
710
766
|
};
|
|
711
|
-
|
|
767
|
+
l.push(_);
|
|
712
768
|
}
|
|
713
769
|
}
|
|
714
|
-
return
|
|
770
|
+
return l.sort((e, t) => e.order - t.order || e.slug.localeCompare(t.slug)), l;
|
|
715
771
|
}
|
|
716
|
-
var
|
|
717
|
-
|
|
772
|
+
var ot, st = y((() => {
|
|
773
|
+
ot = new Set([
|
|
718
774
|
`slug`,
|
|
719
775
|
`path`,
|
|
720
776
|
`title`,
|
|
@@ -725,62 +781,64 @@ var it, at = v((() => {
|
|
|
725
781
|
`children`,
|
|
726
782
|
`headings`
|
|
727
783
|
]);
|
|
784
|
+
})), K, q = y((() => {
|
|
785
|
+
K = class {};
|
|
728
786
|
}));
|
|
729
|
-
function
|
|
787
|
+
function ct(e) {
|
|
730
788
|
let t = e.endsWith(`.draft`) ? e.slice(0, -6) : e, n = t.match(/^(\d+)\.(.+)$/);
|
|
731
789
|
return n ? n[2] : t;
|
|
732
790
|
}
|
|
733
|
-
async function
|
|
734
|
-
let
|
|
735
|
-
for (let
|
|
736
|
-
if (
|
|
737
|
-
let
|
|
738
|
-
if (
|
|
739
|
-
let t =
|
|
740
|
-
for (let [e, t] of a)
|
|
741
|
-
} else if (extname(
|
|
742
|
-
let t =
|
|
743
|
-
|
|
791
|
+
async function lt(e, t) {
|
|
792
|
+
let n = /* @__PURE__ */ new Map(), r = await readdir(t, { withFileTypes: !0 });
|
|
793
|
+
for (let i of r) {
|
|
794
|
+
if (i.name.startsWith(`.`) || i.name.startsWith(`_`) || i.name === `node_modules` || i.name === `dist`) continue;
|
|
795
|
+
let r = join(t, i.name);
|
|
796
|
+
if (i.isDirectory()) {
|
|
797
|
+
let t = ct(i.name), a = await lt(e === `/` ? `/${t}` : `${e}/${t}`, r);
|
|
798
|
+
for (let [e, t] of a) n.set(e, t);
|
|
799
|
+
} else if (extname(i.name) === `.md`) {
|
|
800
|
+
let t = ct(i.name.replace(/\.md$/, ``)), a = t === `index` ? `` : t, o = a === `` ? e === `/` ? `/` : e : e === `/` ? `/${a}` : `${e}/${a}`;
|
|
801
|
+
n.set(o, r);
|
|
744
802
|
}
|
|
745
803
|
}
|
|
746
|
-
return
|
|
804
|
+
return n;
|
|
747
805
|
}
|
|
748
|
-
async function
|
|
749
|
-
let
|
|
806
|
+
async function ut(e, t) {
|
|
807
|
+
let n;
|
|
750
808
|
try {
|
|
751
|
-
|
|
809
|
+
n = JSON.parse(await readFile(join(t, `_navigation.json`), `utf8`));
|
|
752
810
|
} catch {
|
|
753
811
|
return;
|
|
754
812
|
}
|
|
755
|
-
|
|
813
|
+
dt(e, n);
|
|
756
814
|
}
|
|
757
|
-
function
|
|
815
|
+
function dt(e, t) {
|
|
758
816
|
let n = new Map(t.map((e, t) => [e.path, t]));
|
|
759
817
|
e.sort((e, t) => (n.get(e.path) ?? Infinity) - (n.get(t.path) ?? Infinity));
|
|
760
818
|
for (let n of e) if (n.children?.length) {
|
|
761
819
|
let e = t.find((e) => e.path === n.path);
|
|
762
|
-
e?.children &&
|
|
820
|
+
e?.children && dt(n.children, e.children);
|
|
763
821
|
}
|
|
764
822
|
}
|
|
765
|
-
var J, Y =
|
|
766
|
-
|
|
823
|
+
var J, Y = y((() => {
|
|
824
|
+
st(), q(), J = class extends K {
|
|
767
825
|
dir;
|
|
768
826
|
constructor(e) {
|
|
769
827
|
super(), this.dir = e;
|
|
770
828
|
}
|
|
771
829
|
async load() {
|
|
772
|
-
let e = await
|
|
773
|
-
return await
|
|
830
|
+
let e = await it(this.dir);
|
|
831
|
+
return await ut(e, this.dir), {
|
|
774
832
|
tree: e,
|
|
775
|
-
fileMap: await
|
|
833
|
+
fileMap: await lt(`/`, this.dir)
|
|
776
834
|
};
|
|
777
835
|
}
|
|
778
836
|
async readContent(e) {
|
|
779
837
|
return readFile(e, `utf8`);
|
|
780
838
|
}
|
|
781
839
|
};
|
|
782
|
-
})),
|
|
783
|
-
q(), Y(),
|
|
840
|
+
})), X, ft = y((() => {
|
|
841
|
+
q(), Y(), X = class extends K {
|
|
784
842
|
src;
|
|
785
843
|
options;
|
|
786
844
|
_fs;
|
|
@@ -806,12 +864,12 @@ var J, Y = v((() => {
|
|
|
806
864
|
return this._fs = new J(i), this._fs.load();
|
|
807
865
|
}
|
|
808
866
|
async readContent(e) {
|
|
809
|
-
if (!this._fs) throw Error(`
|
|
867
|
+
if (!this._fs) throw Error(`GitSource: call load() before readContent()`);
|
|
810
868
|
return this._fs.readContent(e);
|
|
811
869
|
}
|
|
812
870
|
};
|
|
813
871
|
}));
|
|
814
|
-
function
|
|
872
|
+
function pt(e) {
|
|
815
873
|
let t = e, n = ``;
|
|
816
874
|
if (t.startsWith(`@`)) {
|
|
817
875
|
let e = t.indexOf(`/`, t.indexOf(`/`) + 1);
|
|
@@ -827,12 +885,12 @@ function ft(e) {
|
|
|
827
885
|
subdir: n
|
|
828
886
|
};
|
|
829
887
|
}
|
|
830
|
-
async function
|
|
888
|
+
async function mt(e, t) {
|
|
831
889
|
let n = t ? `https://registry.npmjs.org/${e}/${t}` : `https://registry.npmjs.org/${e}`, r = await fetch(n);
|
|
832
890
|
if (!r.ok) throw Error(`Failed to fetch package info for ${e}${t ? `@${t}` : ``}: ${r.status} ${r.statusText}`);
|
|
833
891
|
return r.json();
|
|
834
892
|
}
|
|
835
|
-
function
|
|
893
|
+
function ht(e) {
|
|
836
894
|
let t;
|
|
837
895
|
try {
|
|
838
896
|
t = new URL(e);
|
|
@@ -845,15 +903,15 @@ function mt(e) {
|
|
|
845
903
|
let r = t.pathname.match(/^\/((?:@[^/]+\/)?[^/]+)\/?$/);
|
|
846
904
|
if (r && !/^(package|settings|signup|login|org|search)$/.test(r[1])) return r[1];
|
|
847
905
|
}
|
|
848
|
-
var
|
|
849
|
-
function
|
|
906
|
+
var gt = y((() => {}));
|
|
907
|
+
function _t(e) {
|
|
850
908
|
try {
|
|
851
909
|
return new URL(e).hostname;
|
|
852
910
|
} catch {
|
|
853
911
|
return e;
|
|
854
912
|
}
|
|
855
913
|
}
|
|
856
|
-
function
|
|
914
|
+
function vt(e, t, n, r) {
|
|
857
915
|
let i = e.split(`
|
|
858
916
|
`), a = [], o = ``, s = ``, c, l = 0, u = 0;
|
|
859
917
|
for (let e of i) {
|
|
@@ -868,7 +926,7 @@ function _t(e, t, n, r) {
|
|
|
868
926
|
}
|
|
869
927
|
if (r.startsWith(`## `)) {
|
|
870
928
|
c = {
|
|
871
|
-
slug:
|
|
929
|
+
slug: yt(r.slice(3).trim()),
|
|
872
930
|
path: `/_section/${l}`,
|
|
873
931
|
title: r.slice(3).trim(),
|
|
874
932
|
order: l++,
|
|
@@ -900,20 +958,20 @@ function _t(e, t, n, r) {
|
|
|
900
958
|
let d = {
|
|
901
959
|
slug: ``,
|
|
902
960
|
path: `/`,
|
|
903
|
-
title: o ||
|
|
961
|
+
title: o || _t(t),
|
|
904
962
|
order: 0,
|
|
905
963
|
...s ? { description: s } : {},
|
|
906
964
|
...a.length > 0 ? { children: a } : {}
|
|
907
965
|
};
|
|
908
966
|
return n.set(`/`, `/`), r.set(`/`, e), [d];
|
|
909
967
|
}
|
|
910
|
-
function
|
|
968
|
+
function yt(e) {
|
|
911
969
|
return e.toLowerCase().replace(/[^a-z\d]+/g, `-`).replace(/^-|-$/g, ``);
|
|
912
970
|
}
|
|
913
|
-
function
|
|
971
|
+
function bt(e, t) {
|
|
914
972
|
let n = /* @__PURE__ */ new Set(), r = [], i = /* @__PURE__ */ new Set(), a = 0, o = /\[([^\]]+)]\(([^)]+)\)/g, s;
|
|
915
973
|
for (; (s = o.exec(e)) !== null;) {
|
|
916
|
-
let e = s[1], o = s[2], c =
|
|
974
|
+
let e = s[1], o = s[2], c = xt(o, t);
|
|
917
975
|
if (!c) continue;
|
|
918
976
|
let l = c.pathname.replace(/\/+$/, ``) || `/`, u = /\/index\.md$/i.test(l) || l.endsWith(`/index`);
|
|
919
977
|
if (l = l.replace(/\/index\.md$/i, ``).replace(/\/index$/, ``).replace(/\.md$/i, ``), l ||= `/`, l === `/` || n.has(l)) continue;
|
|
@@ -931,7 +989,7 @@ function yt(e, t) {
|
|
|
931
989
|
tocPaths: i
|
|
932
990
|
};
|
|
933
991
|
}
|
|
934
|
-
function
|
|
992
|
+
function xt(e, t) {
|
|
935
993
|
try {
|
|
936
994
|
let n = new URL(t), r = new URL(e, t);
|
|
937
995
|
return r.origin !== n.origin || e.startsWith(`#`) || /\.(png|jpg|jpeg|gif|svg|css|js|ico|woff2?)$/i.test(r.pathname) ? void 0 : r;
|
|
@@ -939,8 +997,8 @@ function bt(e, t) {
|
|
|
939
997
|
return;
|
|
940
998
|
}
|
|
941
999
|
}
|
|
942
|
-
var
|
|
943
|
-
q(),
|
|
1000
|
+
var St, Ct = y((() => {
|
|
1001
|
+
q(), gt(), St = class extends K {
|
|
944
1002
|
url;
|
|
945
1003
|
options;
|
|
946
1004
|
_contentCache = /* @__PURE__ */ new Map();
|
|
@@ -948,28 +1006,28 @@ var xt, St = v((() => {
|
|
|
948
1006
|
_fileMap = /* @__PURE__ */ new Map();
|
|
949
1007
|
_npmPackage;
|
|
950
1008
|
constructor(e, t = {}) {
|
|
951
|
-
super(), this.url = e.replace(/\/+$/, ``), this._npmPackage =
|
|
1009
|
+
super(), this.url = e.replace(/\/+$/, ``), this._npmPackage = ht(this.url), this.options = t;
|
|
952
1010
|
}
|
|
953
1011
|
async load() {
|
|
954
1012
|
if (this._npmPackage) return this._loadNpm(this._npmPackage);
|
|
955
|
-
let
|
|
956
|
-
if (
|
|
1013
|
+
let t = await this._tryLlmsTxt();
|
|
1014
|
+
if (t) return this._tree = t, {
|
|
957
1015
|
tree: this._tree,
|
|
958
1016
|
fileMap: this._fileMap
|
|
959
1017
|
};
|
|
960
|
-
let
|
|
961
|
-
this._contentCache.set(`/`,
|
|
962
|
-
let
|
|
1018
|
+
let n = await this._fetch(this.url);
|
|
1019
|
+
this._contentCache.set(`/`, n);
|
|
1020
|
+
let r = {
|
|
963
1021
|
slug: ``,
|
|
964
1022
|
path: `/`,
|
|
965
|
-
title: parseMeta(
|
|
1023
|
+
title: parseMeta(n).title || _t(this.url),
|
|
966
1024
|
order: 0
|
|
967
|
-
}, { entries:
|
|
968
|
-
if (
|
|
969
|
-
|
|
970
|
-
for (let e of
|
|
1025
|
+
}, { entries: i, tocPaths: a } = bt(n, this.url);
|
|
1026
|
+
if (i.length > 0) {
|
|
1027
|
+
r.children = i;
|
|
1028
|
+
for (let e of i) this._fileMap.set(e.path, e.path);
|
|
971
1029
|
}
|
|
972
|
-
return this._tree = [
|
|
1030
|
+
return this._tree = [r], this._fileMap.set(`/`, `/`), a.size > 0 && await this._crawlTocPages(i, a), {
|
|
973
1031
|
tree: this._tree,
|
|
974
1032
|
fileMap: this._fileMap
|
|
975
1033
|
};
|
|
@@ -992,7 +1050,7 @@ var xt, St = v((() => {
|
|
|
992
1050
|
} catch {
|
|
993
1051
|
return;
|
|
994
1052
|
}
|
|
995
|
-
if (t.trimStart().startsWith(`#`)) return
|
|
1053
|
+
if (t.trimStart().startsWith(`#`)) return vt(t, e, this._fileMap, this._contentCache);
|
|
996
1054
|
}
|
|
997
1055
|
async readContent(e) {
|
|
998
1056
|
let t = this._contentCache.get(e);
|
|
@@ -1007,7 +1065,7 @@ var xt, St = v((() => {
|
|
|
1007
1065
|
if (!t.has(e.path)) return;
|
|
1008
1066
|
let i = `${r}${e.path}`, a = await this._fetch(i);
|
|
1009
1067
|
this._contentCache.set(e.path, a);
|
|
1010
|
-
let { entries: o, tocPaths: s } =
|
|
1068
|
+
let { entries: o, tocPaths: s } = bt(a, i);
|
|
1011
1069
|
if (o.length > 0) {
|
|
1012
1070
|
e.children = o;
|
|
1013
1071
|
for (let e of o) this._fileMap.set(e.path, e.path);
|
|
@@ -1015,18 +1073,18 @@ var xt, St = v((() => {
|
|
|
1015
1073
|
}
|
|
1016
1074
|
}));
|
|
1017
1075
|
}
|
|
1018
|
-
async _loadNpm(
|
|
1019
|
-
let
|
|
1076
|
+
async _loadNpm(t) {
|
|
1077
|
+
let n;
|
|
1020
1078
|
try {
|
|
1021
|
-
let
|
|
1022
|
-
|
|
1023
|
-
} catch (
|
|
1024
|
-
|
|
1079
|
+
let e = await mt(t);
|
|
1080
|
+
n = e.readme || `# ${e.name || t}\n\n${e.description || `No README available.`}`;
|
|
1081
|
+
} catch (e) {
|
|
1082
|
+
n = `# Fetch Error\n\nFailed to fetch package \`${t}\`\n\n> ${e instanceof Error ? e.message : String(e)}`;
|
|
1025
1083
|
}
|
|
1026
|
-
return this._contentCache.set(`/`,
|
|
1084
|
+
return this._contentCache.set(`/`, n), this._fileMap.set(`/`, `/`), this._tree = [{
|
|
1027
1085
|
slug: ``,
|
|
1028
1086
|
path: `/`,
|
|
1029
|
-
title: parseMeta(
|
|
1087
|
+
title: parseMeta(n).title || t,
|
|
1030
1088
|
order: 0
|
|
1031
1089
|
}], {
|
|
1032
1090
|
tree: this._tree,
|
|
@@ -1047,8 +1105,8 @@ var xt, St = v((() => {
|
|
|
1047
1105
|
}
|
|
1048
1106
|
};
|
|
1049
1107
|
}));
|
|
1050
|
-
async function
|
|
1051
|
-
let { name: t, version: n, subdir: r } =
|
|
1108
|
+
async function wt(e) {
|
|
1109
|
+
let { name: t, version: n, subdir: r } = pt(e), i = await mt(t, n);
|
|
1052
1110
|
return {
|
|
1053
1111
|
name: i.name,
|
|
1054
1112
|
version: i.version,
|
|
@@ -1056,8 +1114,8 @@ async function Ct(e) {
|
|
|
1056
1114
|
tar: i.dist.tarball
|
|
1057
1115
|
};
|
|
1058
1116
|
}
|
|
1059
|
-
var
|
|
1060
|
-
q(), Y(),
|
|
1117
|
+
var Tt, Et = y((() => {
|
|
1118
|
+
q(), Y(), gt(), Tt = class extends K {
|
|
1061
1119
|
src;
|
|
1062
1120
|
options;
|
|
1063
1121
|
_fs;
|
|
@@ -1070,7 +1128,7 @@ var wt, Tt = v((() => {
|
|
|
1070
1128
|
dir: r,
|
|
1071
1129
|
force: !0,
|
|
1072
1130
|
install: !1,
|
|
1073
|
-
providers: { npm:
|
|
1131
|
+
providers: { npm: wt },
|
|
1074
1132
|
registry: !1
|
|
1075
1133
|
});
|
|
1076
1134
|
let a = r;
|
|
@@ -1084,65 +1142,83 @@ var wt, Tt = v((() => {
|
|
|
1084
1142
|
return this._fs = new J(a), this._fs.load();
|
|
1085
1143
|
}
|
|
1086
1144
|
async readContent(e) {
|
|
1087
|
-
if (!this._fs) throw Error(`
|
|
1145
|
+
if (!this._fs) throw Error(`NpmSource: call load() before readContent()`);
|
|
1088
1146
|
return this._fs.readContent(e);
|
|
1089
1147
|
}
|
|
1090
1148
|
};
|
|
1091
|
-
})), Et = v((() => {
|
|
1092
|
-
q(), Y(), dt(), St(), Tt();
|
|
1093
1149
|
}));
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1150
|
+
function Dt(e) {
|
|
1151
|
+
return e.startsWith(`http://`) || e.startsWith(`https://`) ? new St(e) : e.startsWith(`gh:`) ? new X(e) : e.startsWith(`npm:`) ? new Tt(e) : new J(e);
|
|
1152
|
+
}
|
|
1153
|
+
var Ot = y((() => {
|
|
1154
|
+
Y(), ft(), Ct(), Et(), q();
|
|
1155
|
+
}));
|
|
1156
|
+
async function kt(e, t, n = {}) {
|
|
1157
|
+
let i = new G(typeof e == `string` ? Dt(e) : e);
|
|
1158
|
+
return await i.load(), await mkdir(t, { recursive: !0 }), await At(i, t, n), i;
|
|
1159
|
+
}
|
|
1160
|
+
async function At(e, i, a = {}) {
|
|
1161
|
+
let o = e.flat.find((e) => e.entry.path === `/`), c = [`# ${a.title ?? o?.entry.title ?? `Table of Contents`}`, ``], u = /* @__PURE__ */ new Set(), f = /* @__PURE__ */ new Map();
|
|
1162
|
+
Mt(e.tree, ``, f);
|
|
1163
|
+
let p = /* @__PURE__ */ new Set();
|
|
1164
|
+
jt(e.tree, p);
|
|
1165
|
+
for (let o of e.flat) {
|
|
1166
|
+
if ((a.filter ? !a.filter(o) : o.entry.page === !1) || Nt.has(o.entry.path)) continue;
|
|
1167
|
+
let m = await e.getContent(o);
|
|
1168
|
+
if (m === void 0) continue;
|
|
1169
|
+
let h = a.plainText ? renderToText(m) : renderToMarkdown(m), g = f.get(o.entry.path) ?? o.entry.path, _ = o.entry.path === `/` || p.has(o.entry.path) ? o.entry.path === `/` ? `/index.md` : `${g}/index.md` : g.endsWith(`.md`) ? g : `${g}.md`, v = join(i, _);
|
|
1170
|
+
await mkdir(dirname(v), { recursive: !0 }), await writeFile(v, h, `utf8`), u.add(_.slice(1));
|
|
1171
|
+
let y = ` `.repeat(o.depth), b = o.entry.description ? `: ${o.entry.description}` : ``;
|
|
1172
|
+
c.push(`${y}- [${o.entry.title}](.${_})${b}`);
|
|
1105
1173
|
}
|
|
1106
|
-
let
|
|
1107
|
-
|
|
1174
|
+
let m = a.tocFile ?? `README.md`;
|
|
1175
|
+
u.has(m) && (m = `_${m}`), await writeFile(join(i, m), c.join(`
|
|
1108
1176
|
`) + `
|
|
1109
|
-
`, `utf8`), await writeFile(join(n, `_navigation.json`), JSON.stringify(t.tree, null, 2) + `
|
|
1110
1177
|
`, `utf8`);
|
|
1111
1178
|
}
|
|
1112
|
-
function
|
|
1113
|
-
for (let n of e) n.children?.length && (t.add(n.path),
|
|
1114
|
-
}
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1179
|
+
function jt(e, t) {
|
|
1180
|
+
for (let n of e) n.children?.length && (t.add(n.path), jt(n.children, t));
|
|
1181
|
+
}
|
|
1182
|
+
function Mt(e, t, n) {
|
|
1183
|
+
for (let [r, i] of e.entries()) {
|
|
1184
|
+
let e = `${t}/${r}.${i.slug || `index`}`;
|
|
1185
|
+
n.set(i.path, e), i.children?.length && Mt(i.children, e, n);
|
|
1186
|
+
}
|
|
1187
|
+
}
|
|
1188
|
+
var Nt, Pt = y((() => {
|
|
1189
|
+
Xe(), Ot(), Nt = new Set([`/llms.txt`, `/llms-full.txt`]);
|
|
1190
|
+
})), Ft = b({
|
|
1191
|
+
Collection: () => G,
|
|
1192
|
+
FSSource: () => J,
|
|
1193
|
+
GitSource: () => X,
|
|
1194
|
+
HTTPSource: () => St,
|
|
1195
|
+
NpmSource: () => Tt,
|
|
1196
|
+
Source: () => K,
|
|
1197
|
+
exportSource: () => kt,
|
|
1198
|
+
extractSnippets: () => Ze,
|
|
1199
|
+
resolveSource: () => Dt,
|
|
1200
|
+
writeCollection: () => At
|
|
1201
|
+
}), It = y((() => {
|
|
1202
|
+
Xe(), Qe(), Ot(), Pt();
|
|
1127
1203
|
}));
|
|
1128
|
-
async function
|
|
1129
|
-
if (
|
|
1130
|
-
if (!
|
|
1131
|
-
let {
|
|
1132
|
-
|
|
1204
|
+
async function Z(e) {
|
|
1205
|
+
if (Q) return Q;
|
|
1206
|
+
if (!Q) {
|
|
1207
|
+
let { Collection: t, GitSource: n } = await Promise.resolve().then(() => (It(), Ft));
|
|
1208
|
+
Q = new t(e?.source || new n(`gh:nitrojs/nitro/docs`, { subdir: `docs` })), await Q.load();
|
|
1133
1209
|
}
|
|
1134
|
-
return
|
|
1210
|
+
return Q;
|
|
1135
1211
|
}
|
|
1136
|
-
var
|
|
1137
|
-
W(),
|
|
1212
|
+
var Q, $ = y((() => {})), Lt = b({ default: () => Rt }), Rt, zt = y((() => {
|
|
1213
|
+
W(), $(), Rt = T(async () => ({
|
|
1138
1214
|
title: `Nitro`,
|
|
1139
|
-
toc: (await
|
|
1215
|
+
toc: (await Z()).tree
|
|
1140
1216
|
}));
|
|
1141
|
-
})),
|
|
1142
|
-
async function
|
|
1217
|
+
})), Bt = b({ default: () => Wt });
|
|
1218
|
+
async function Vt(e) {
|
|
1143
1219
|
let t = /<pre><code class="language-(\w+)">([\s\S]*?)<\/code><\/pre>/g, n = [];
|
|
1144
1220
|
for (let r of e.matchAll(t)) {
|
|
1145
|
-
let [e, t, i] = r, a =
|
|
1221
|
+
let [e, t, i] = r, a = Ut(i);
|
|
1146
1222
|
n.push(highlightText(a, t, !1).then((n) => ({
|
|
1147
1223
|
match: e,
|
|
1148
1224
|
result: `<pre><code class="language-${t}">${n}</code></pre>`
|
|
@@ -1155,95 +1231,47 @@ async function Lt(e) {
|
|
|
1155
1231
|
for (let { match: e, result: t } of await Promise.all(n)) r = r.replace(e, t);
|
|
1156
1232
|
return r;
|
|
1157
1233
|
}
|
|
1158
|
-
function
|
|
1234
|
+
function Ht(e) {
|
|
1159
1235
|
return e.replace(/<(h[1-6])>(.*?)<\/\1>/g, (e, t, n) => {
|
|
1160
1236
|
let r = n.replace(/<[^>]+>/g, ``).trim().toLowerCase().replace(/[^\w\s-]/g, ``).replace(/\s+/g, `-`);
|
|
1161
1237
|
return `<${t} id="${r}"><a href="#${r}">#</a>${n}</${t}>`;
|
|
1162
1238
|
});
|
|
1163
1239
|
}
|
|
1164
|
-
function
|
|
1240
|
+
function Ut(e) {
|
|
1165
1241
|
return e.replace(/&/g, `&`).replace(/</g, `<`).replace(/>/g, `>`).replace(/"/g, `"`).replace(/'/g, `'`);
|
|
1166
1242
|
}
|
|
1167
|
-
var
|
|
1168
|
-
W(),
|
|
1169
|
-
let { path: t } =
|
|
1243
|
+
var Wt, Gt = y((async () => {
|
|
1244
|
+
W(), $(), await init(), Wt = T(async (e) => {
|
|
1245
|
+
let { path: t } = me(e);
|
|
1170
1246
|
if (!t) return { error: `Missing ?path= query parameter` };
|
|
1171
|
-
let n = await (await
|
|
1247
|
+
let n = await (await Z()).resolvePage(t);
|
|
1172
1248
|
return n.raw ? {
|
|
1173
1249
|
path: t,
|
|
1174
|
-
html:
|
|
1250
|
+
html: Ht(await Vt(renderToHtml(n.raw)))
|
|
1175
1251
|
} : {
|
|
1176
1252
|
error: `Page not found`,
|
|
1177
1253
|
path: t
|
|
1178
1254
|
};
|
|
1179
1255
|
});
|
|
1180
|
-
})),
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
for (let e of t) {
|
|
1184
|
-
let t = a.indexOf(e);
|
|
1185
|
-
for (; t !== -1 && o.length < r * 2;) o.push(t), t = a.indexOf(e, t + e.length);
|
|
1186
|
-
}
|
|
1187
|
-
o.sort((e, t) => e - t);
|
|
1188
|
-
let s = [], c = -1;
|
|
1189
|
-
for (let t of o) {
|
|
1190
|
-
if (s.length >= r) break;
|
|
1191
|
-
let n = Math.max(0, t - i), a = Math.min(e.length, t + i);
|
|
1192
|
-
if (n <= c) continue;
|
|
1193
|
-
c = a;
|
|
1194
|
-
let o = e.slice(n, a).trim().replaceAll(/\s+/g, ` `);
|
|
1195
|
-
n > 0 && (o = `…` + o), a < e.length && (o += `…`), s.push(o);
|
|
1196
|
-
}
|
|
1197
|
-
return s;
|
|
1198
|
-
}
|
|
1199
|
-
var Wt, Gt = v((() => {
|
|
1200
|
-
W(), Q(), Wt = T(async (e) => {
|
|
1201
|
-
let { q: t, limit: n } = he(e);
|
|
1256
|
+
})), Kt = b({ default: () => qt }), qt, Jt = y((() => {
|
|
1257
|
+
W(), $(), It(), qt = T(async (e) => {
|
|
1258
|
+
let { q: t, limit: n } = me(e);
|
|
1202
1259
|
if (!t || t.length < 2) return { results: [] };
|
|
1203
|
-
let r = await
|
|
1204
|
-
for (let e of r.
|
|
1205
|
-
let t = e.
|
|
1206
|
-
o.
|
|
1207
|
-
path: e.entry.path,
|
|
1208
|
-
title:
|
|
1209
|
-
|
|
1210
|
-
snippets:
|
|
1211
|
-
|
|
1212
|
-
}
|
|
1213
|
-
for (let e of r.pages) {
|
|
1214
|
-
if (c.has(e.entry.path)) continue;
|
|
1215
|
-
let t = await r.getContent(e);
|
|
1216
|
-
if (!t) continue;
|
|
1217
|
-
let n = t.toLowerCase();
|
|
1218
|
-
if (!o.every((e) => n.includes(e))) continue;
|
|
1219
|
-
let i = 300, l, u = parseMeta$1(t);
|
|
1220
|
-
for (let e of u.headings || []) {
|
|
1221
|
-
let t = e.text.toLowerCase();
|
|
1222
|
-
if (o.every((e) => t.includes(e))) {
|
|
1223
|
-
i = t === a ? 150 : 200, l = e.text;
|
|
1224
|
-
break;
|
|
1225
|
-
}
|
|
1226
|
-
}
|
|
1227
|
-
let d = Ut(renderToText$1(t), o);
|
|
1228
|
-
s.push({
|
|
1229
|
-
path: e.entry.path,
|
|
1230
|
-
title: e.entry.title,
|
|
1231
|
-
heading: l,
|
|
1232
|
-
snippets: d,
|
|
1233
|
-
score: i
|
|
1260
|
+
let r = await Z(), i = Math.min(Number(n) || 20, 50), a = t.toLowerCase().split(/\s+/).filter(Boolean), o = [];
|
|
1261
|
+
for await (let e of r.search(t)) {
|
|
1262
|
+
let t = await r.getContent(e.flat), n = t ? renderToText$1(t) : ``, i = n ? Ze(n, a) : [];
|
|
1263
|
+
o.push({
|
|
1264
|
+
path: e.flat.entry.path,
|
|
1265
|
+
title: e.flat.entry.title,
|
|
1266
|
+
heading: e.heading,
|
|
1267
|
+
snippets: i,
|
|
1268
|
+
score: e.score
|
|
1234
1269
|
});
|
|
1235
1270
|
}
|
|
1236
|
-
|
|
1237
|
-
if (e.snippets.length > 0) continue;
|
|
1238
|
-
let t = r.pages.find((t) => t.entry.path === e.path);
|
|
1239
|
-
if (!t) continue;
|
|
1240
|
-
let n = await r.getContent(t);
|
|
1241
|
-
n && (e.snippets = Ut(renderToText$1(n), o));
|
|
1242
|
-
}
|
|
1243
|
-
return s.sort((e, t) => e.score - t.score), { results: s.slice(0, i).map(({ score: e, ...t }) => t) };
|
|
1271
|
+
return o.sort((e, t) => e.score - t.score), { results: o.slice(0, i).map(({ score: e, ...t }) => t) };
|
|
1244
1272
|
});
|
|
1245
|
-
})),
|
|
1246
|
-
V(),
|
|
1273
|
+
})), Yt, Xt = y((() => {
|
|
1274
|
+
V(), Yt = () => new F(`<!doctype html>
|
|
1247
1275
|
<html lang="en">
|
|
1248
1276
|
<head>
|
|
1249
1277
|
<meta charset="UTF-8" />
|
|
@@ -1251,7 +1279,7 @@ var Wt, Gt = v((() => {
|
|
|
1251
1279
|
<link rel="icon" type="image/svg+xml" href="/assets/logo-BLkVGWak.svg" />
|
|
1252
1280
|
<title></title>
|
|
1253
1281
|
<style>/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */
|
|
1254
|
-
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-300:oklch(80.8% .114 19.571);--color-red-500:oklch(63.7% .237 25.331);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-800:oklch(47.6% .114 61.907);--color-yellow-900:oklch(42.1% .095 57.708);--color-green-50:oklch(98.2% .018 155.826);--color-green-300:oklch(87.1% .15 154.449);--color-green-500:oklch(72.3% .219 149.579);--color-green-800:oklch(44.8% .119 151.328);--color-green-900:oklch(39.3% .095 152.535);--color-blue-50:oklch(97% .014 254.604);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-800:oklch(43.8% .218 303.724);--color-purple-900:oklch(38.1% .176 304.987);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-gray-950:oklch(13% .028 261.692);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-lg:32rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-medium:500;--radius-md:.375rem;--radius-xl:.75rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.z-50{z-index:50}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mr-1{margin-right:calc(var(--spacing) * 1)}.-ml-1{margin-left:calc(var(--spacing) * -1)}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.hidden{display:none}.inline{display:inline}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.h-4{height:calc(var(--spacing) * 4)}.h-8{height:calc(var(--spacing) * 8)}.h-screen{height:100vh}.max-h-80{max-height:calc(var(--spacing) * 80)}.w-4{width:calc(var(--spacing) * 4)}.w-56{width:calc(var(--spacing) * 56)}.w-64{width:calc(var(--spacing) * 64)}.w-full{width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-none{max-width:none}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.rotate-90{rotate:90deg}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}:where(.space-y-0\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-200{border-color:var(--color-gray-200)}.bg-black\\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-gray-50{background-color:var(--color-gray-50)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.p-0\\.5{padding:calc(var(--spacing) * .5)}.p-1\\.5{padding:calc(var(--spacing) * 1.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-8{padding:calc(var(--spacing) * 8)}.px-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-\\[15vh\\]{padding-top:15vh}.text-center{text-align:center}.text-left{text-align:left}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-900{color:var(--color-gray-900)}.text-red-500{color:var(--color-red-500)}.placeholder-gray-400::placeholder{color:var(--color-gray-400)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.hover\\:border-gray-300:hover{border-color:var(--color-gray-300)}.hover\\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\\:text-gray-500:hover{color:var(--color-gray-500)}.hover\\:text-gray-600:hover{color:var(--color-gray-600)}.hover\\:text-gray-900:hover{color:var(--color-gray-900)}}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}@media (min-width:40rem){.sm\\:inline{display:inline}}.dark\\:border-gray-700:where(.dark,.dark *){border-color:var(--color-gray-700)}.dark\\:border-gray-800:where(.dark,.dark *){border-color:var(--color-gray-800)}.dark\\:bg-gray-800:where(.dark,.dark *){background-color:var(--color-gray-800)}.dark\\:bg-gray-900:where(.dark,.dark *){background-color:var(--color-gray-900)}.dark\\:bg-gray-950:where(.dark,.dark *){background-color:var(--color-gray-950)}.dark\\:text-gray-100:where(.dark,.dark *){color:var(--color-gray-100)}.dark\\:text-gray-200:where(.dark,.dark *){color:var(--color-gray-200)}.dark\\:text-gray-400:where(.dark,.dark *){color:var(--color-gray-400)}.dark\\:text-gray-500:where(.dark,.dark *),.dark\\:placeholder-gray-500:where(.dark,.dark *)::placeholder{color:var(--color-gray-500)}@media (hover:hover){.dark\\:hover\\:border-gray-600:where(.dark,.dark *):hover{border-color:var(--color-gray-600)}.dark\\:hover\\:bg-gray-800:where(.dark,.dark *):hover{background-color:var(--color-gray-800)}.dark\\:hover\\:text-gray-100:where(.dark,.dark *):hover{color:var(--color-gray-100)}.dark\\:hover\\:text-gray-300:where(.dark,.dark *):hover{color:var(--color-gray-300)}.dark\\:hover\\:text-gray-400:where(.dark,.dark *):hover{color:var(--color-gray-400)}}}#search-results::-webkit-scrollbar{width:6px}#search-results::-webkit-scrollbar-thumb{background:var(--color-gray-300);border-radius:3px}.dark #search-results::-webkit-scrollbar-thumb{background:var(--color-gray-600)}.line-clamp-2{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.nav-active{background:var(--color-gray-100)}.dark .nav-active{background:var(--color-gray-800)}.prose{color:var(--color-gray-700);line-height:1.75}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{color:var(--color-gray-900);margin-top:2em;margin-bottom:.75em;font-weight:700;line-height:1.3;position:relative}:is(.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6)>a[href^=\\#]{color:var(--color-gray-300);opacity:0;padding-right:.25em;font-weight:400;text-decoration:none;transition:opacity .15s;position:absolute;right:100%}:is(.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6):hover>a[href^=\\#]{opacity:1}.prose h1{margin-top:0;font-size:2.25em}.prose h2{border-bottom:1px solid var(--color-gray-200);padding-bottom:.3em;font-size:1.5em}.prose h3{font-size:1.25em}.prose h4{font-size:1.1em}.prose p{margin-top:1.25em;margin-bottom:1.25em}.prose a{color:var(--color-blue-600);text-underline-offset:2px;text-decoration:underline}.prose a:hover{color:var(--color-blue-500)}.prose strong{color:var(--color-gray-900);font-weight:600}.prose code{color:var(--color-gray-800);background:var(--color-gray-100);border-radius:.25em;padding:.2em .4em;font-size:.875em}.prose pre{border:1px solid var(--color-gray-200);background:#f6f8fa;border-radius:.5em;margin-top:1.5em;margin-bottom:1.5em;padding:1em;overflow-x:auto}.prose pre code{background:0 0;border-radius:0;padding:0;font-size:.875em}.prose blockquote{border-left:3px solid var(--color-gray-300);color:var(--color-gray-500);margin-top:1.5em;margin-bottom:1.5em;padding-left:1em;font-style:italic}.prose blockquote.alert{border-left-width:4px;border-radius:.5em;padding:.75em 1em;font-style:normal}.prose blockquote.alert>p:first-child{margin-top:0}.prose blockquote.alert>p:last-child{margin-bottom:0}.prose blockquote.alert-tip{border-left-color:var(--color-green-500);background:#f0fdf499}@supports (color:color-mix(in lab, red, red)){.prose blockquote.alert-tip{background:color-mix(in srgb, var(--color-green-50) 60%, transparent)}}.prose blockquote.alert-tip{color:var(--color-green-800)}.prose blockquote.alert-note{border-left-color:var(--color-blue-500);background:#eff6ff99}@supports (color:color-mix(in lab, red, red)){.prose blockquote.alert-note{background:color-mix(in srgb, var(--color-blue-50) 60%, transparent)}}.prose blockquote.alert-note{color:var(--color-blue-800)}.prose blockquote.alert-important{border-left-color:var(--color-purple-500);background:#faf5ff99}@supports (color:color-mix(in lab, red, red)){.prose blockquote.alert-important{background:color-mix(in srgb, var(--color-purple-50) 60%, transparent)}}.prose blockquote.alert-important{color:var(--color-purple-800)}.prose blockquote.alert-warning{border-left-color:var(--color-yellow-500);background:#fefce899}@supports (color:color-mix(in lab, red, red)){.prose blockquote.alert-warning{background:color-mix(in srgb, var(--color-yellow-50) 60%, transparent)}}.prose blockquote.alert-warning{color:var(--color-yellow-800)}.prose blockquote.alert-caution{border-left-color:var(--color-red-500);background:#fef2f299}@supports (color:color-mix(in lab, red, red)){.prose blockquote.alert-caution{background:color-mix(in srgb, var(--color-red-50) 60%, transparent)}}.prose blockquote.alert-caution{color:var(--color-red-800)}.prose ul{margin-top:1.25em;margin-bottom:1.25em;padding-left:1.5em;list-style:outside}.prose ol{margin-top:1.25em;margin-bottom:1.25em;padding-left:1.5em;list-style:decimal}.prose li{margin-top:.5em;margin-bottom:.5em}.prose li>ul,.prose li>ol{margin-top:.25em;margin-bottom:.25em}.prose hr{border:none;border-top:1px solid var(--color-gray-200);margin-top:2em;margin-bottom:2em}.prose table{border-collapse:collapse;width:100%;margin-top:1.5em;margin-bottom:1.5em;font-size:.875em}.prose th,.prose td{border:1px solid var(--color-gray-200);text-align:left;padding:.5em .75em}.prose th{background:var(--color-gray-50);color:var(--color-gray-900);font-weight:600}.prose img,.prose video{border-radius:.5em;max-width:100%;margin-top:1.5em;margin-bottom:1.5em}.dark .prose{color:var(--color-gray-200)}.dark .prose h1,.dark .prose h2,.dark .prose h3,.dark .prose h4,.dark .prose h5,.dark .prose h6{color:var(--color-gray-50)}:is(.dark .prose h1,.dark .prose h2,.dark .prose h3,.dark .prose h4,.dark .prose h5,.dark .prose h6)>a[href^=\\#]{color:var(--color-gray-600)}.dark .prose h2{border-bottom-color:var(--color-gray-700)}.dark .prose a{color:var(--color-blue-400)}.dark .prose a:hover{color:var(--color-blue-300)}.dark .prose strong{color:var(--color-gray-50)}.dark .prose code{color:var(--color-gray-100);background:var(--color-gray-800)}.dark .prose pre{border-color:var(--color-gray-700);background:#161b22}.dark .prose pre code{color:var(--color-gray-100);background:0 0}.dark .prose blockquote{border-left-color:var(--color-gray-600);color:var(--color-gray-400)}.dark .prose blockquote.alert-tip{background:#0d542b4d}@supports (color:color-mix(in lab, red, red)){.dark .prose blockquote.alert-tip{background:color-mix(in srgb, var(--color-green-900) 30%, transparent)}}.dark .prose blockquote.alert-tip{color:var(--color-green-300);border-left-color:var(--color-green-500)}.dark .prose blockquote.alert-note{background:#1c398e4d}@supports (color:color-mix(in lab, red, red)){.dark .prose blockquote.alert-note{background:color-mix(in srgb, var(--color-blue-900) 30%, transparent)}}.dark .prose blockquote.alert-note{color:var(--color-blue-300);border-left-color:var(--color-blue-500)}.dark .prose blockquote.alert-important{background:#59168b4d}@supports (color:color-mix(in lab, red, red)){.dark .prose blockquote.alert-important{background:color-mix(in srgb, var(--color-purple-900) 30%, transparent)}}.dark .prose blockquote.alert-important{color:var(--color-purple-300);border-left-color:var(--color-purple-500)}.dark .prose blockquote.alert-warning{background:#733e0a4d}@supports (color:color-mix(in lab, red, red)){.dark .prose blockquote.alert-warning{background:color-mix(in srgb, var(--color-yellow-900) 30%, transparent)}}.dark .prose blockquote.alert-warning{color:var(--color-yellow-300);border-left-color:var(--color-yellow-500)}.dark .prose blockquote.alert-caution{background:#82181a4d}@supports (color:color-mix(in lab, red, red)){.dark .prose blockquote.alert-caution{background:color-mix(in srgb, var(--color-red-900) 30%, transparent)}}.dark .prose blockquote.alert-caution{color:var(--color-red-300);border-left-color:var(--color-red-500)}.dark .prose hr{border-top-color:var(--color-gray-700)}.dark .prose th,.dark .prose td{border-color:var(--color-gray-700)}.dark .prose th{background:var(--color-gray-800);color:var(--color-gray-50)}.shj-syn-cmnt{color:#6e7781;font-style:italic}.shj-syn-err,.shj-syn-kwd{color:#cf222e}.shj-syn-class{color:#953800}.shj-syn-type,.shj-syn-oper,.shj-syn-num,.shj-syn-section,.shj-syn-var,.shj-syn-bool{color:#0550ae}.shj-syn-str{color:#0a3069}.shj-syn-func{color:#8250df}.shj-syn-insert{color:#116329}.shj-syn-deleted{color:#cf222e}.shj-syn-esc{color:#0550ae}.dark .shj-syn-cmnt{color:#8b949e}.dark .shj-syn-err,.dark .shj-syn-kwd{color:#ff7b72}.dark .shj-syn-class{color:#ffa657}.dark .shj-syn-type,.dark .shj-syn-oper,.dark .shj-syn-num,.dark .shj-syn-section,.dark .shj-syn-var,.dark .shj-syn-bool{color:#79c0ff}.dark .shj-syn-str{color:#a5d6ff}.dark .shj-syn-func{color:#d2a8ff}.dark .shj-syn-insert{color:#98c379}.dark .shj-syn-deleted{color:#ff7b72}.dark .shj-syn-esc{color:#79c0ff}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}</style>
|
|
1282
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-300:oklch(80.8% .114 19.571);--color-red-500:oklch(63.7% .237 25.331);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-800:oklch(47.6% .114 61.907);--color-yellow-900:oklch(42.1% .095 57.708);--color-green-50:oklch(98.2% .018 155.826);--color-green-300:oklch(87.1% .15 154.449);--color-green-500:oklch(72.3% .219 149.579);--color-green-800:oklch(44.8% .119 151.328);--color-green-900:oklch(39.3% .095 152.535);--color-blue-50:oklch(97% .014 254.604);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-800:oklch(43.8% .218 303.724);--color-purple-900:oklch(38.1% .176 304.987);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-gray-950:oklch(13% .028 261.692);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-lg:32rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-medium:500;--radius-md:.375rem;--radius-xl:.75rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing) * 0)}.z-50{z-index:50}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mr-1{margin-right:calc(var(--spacing) * 1)}.-ml-1{margin-left:calc(var(--spacing) * -1)}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.hidden{display:none}.inline{display:inline}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.h-4{height:calc(var(--spacing) * 4)}.h-8{height:calc(var(--spacing) * 8)}.h-screen{height:100vh}.max-h-80{max-height:calc(var(--spacing) * 80)}.w-4{width:calc(var(--spacing) * 4)}.w-56{width:calc(var(--spacing) * 56)}.w-64{width:calc(var(--spacing) * 64)}.w-full{width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-none{max-width:none}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.rotate-90{rotate:90deg}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}:where(.space-y-0\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-200{border-color:var(--color-gray-200)}.bg-black\\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-gray-50{background-color:var(--color-gray-50)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.p-0\\.5{padding:calc(var(--spacing) * .5)}.p-1\\.5{padding:calc(var(--spacing) * 1.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-8{padding:calc(var(--spacing) * 8)}.px-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-\\[15vh\\]{padding-top:15vh}.text-center{text-align:center}.text-left{text-align:left}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-900{color:var(--color-gray-900)}.text-red-500{color:var(--color-red-500)}.placeholder-gray-400::placeholder{color:var(--color-gray-400)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.hover\\:border-gray-300:hover{border-color:var(--color-gray-300)}.hover\\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\\:text-gray-500:hover{color:var(--color-gray-500)}.hover\\:text-gray-600:hover{color:var(--color-gray-600)}.hover\\:text-gray-900:hover{color:var(--color-gray-900)}}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}@media (min-width:40rem){.sm\\:inline{display:inline}}.dark\\:border-gray-700:where(.dark,.dark *){border-color:var(--color-gray-700)}.dark\\:border-gray-800:where(.dark,.dark *){border-color:var(--color-gray-800)}.dark\\:bg-gray-800:where(.dark,.dark *){background-color:var(--color-gray-800)}.dark\\:bg-gray-900:where(.dark,.dark *){background-color:var(--color-gray-900)}.dark\\:bg-gray-950:where(.dark,.dark *){background-color:var(--color-gray-950)}.dark\\:text-gray-100:where(.dark,.dark *){color:var(--color-gray-100)}.dark\\:text-gray-200:where(.dark,.dark *){color:var(--color-gray-200)}.dark\\:text-gray-400:where(.dark,.dark *){color:var(--color-gray-400)}.dark\\:text-gray-500:where(.dark,.dark *),.dark\\:placeholder-gray-500:where(.dark,.dark *)::placeholder{color:var(--color-gray-500)}@media (hover:hover){.dark\\:hover\\:border-gray-600:where(.dark,.dark *):hover{border-color:var(--color-gray-600)}.dark\\:hover\\:bg-gray-800:where(.dark,.dark *):hover{background-color:var(--color-gray-800)}.dark\\:hover\\:text-gray-100:where(.dark,.dark *):hover{color:var(--color-gray-100)}.dark\\:hover\\:text-gray-300:where(.dark,.dark *):hover{color:var(--color-gray-300)}.dark\\:hover\\:text-gray-400:where(.dark,.dark *):hover{color:var(--color-gray-400)}}}#search-results::-webkit-scrollbar{width:6px}#search-results::-webkit-scrollbar-thumb{background:var(--color-gray-300);border-radius:3px}.dark #search-results::-webkit-scrollbar-thumb{background:var(--color-gray-600)}.line-clamp-2{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.nav-active{background:var(--color-gray-100)}.dark .nav-active{background:var(--color-gray-800)}.prose{color:var(--color-gray-700);line-height:1.75}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{color:var(--color-gray-900);margin-top:2em;margin-bottom:.75em;font-weight:700;line-height:1.3;position:relative}:is(.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6)>a[href^=\\#]{color:var(--color-gray-300);opacity:0;padding-right:.25em;font-weight:400;text-decoration:none;transition:opacity .15s;position:absolute;right:100%}:is(.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6):hover>a[href^=\\#]{opacity:1}.prose h1{margin-top:0;font-size:2.25em}.prose h2{border-bottom:1px solid var(--color-gray-200);padding-bottom:.3em;font-size:1.5em}.prose h3{font-size:1.25em}.prose h4{font-size:1.1em}.prose p{margin-top:1.25em;margin-bottom:1.25em}.prose a{color:var(--color-blue-600);text-underline-offset:2px;text-decoration:underline}.prose a:hover{color:var(--color-blue-500)}.prose strong{color:var(--color-gray-900);font-weight:600}.prose code{color:var(--color-gray-800);background:var(--color-gray-100);border-radius:.25em;padding:.2em .4em;font-size:.875em}.prose pre{border:1px solid var(--color-gray-200);background:#f6f8fa;border-radius:.5em;margin-top:1.5em;margin-bottom:1.5em;padding:1em;overflow-x:auto}.prose pre code{background:0 0;border-radius:0;padding:0;font-size:.875em}.prose blockquote{border-left:3px solid var(--color-gray-300);color:var(--color-gray-500);margin-top:1.5em;margin-bottom:1.5em;padding-left:1em;font-style:italic}.prose blockquote.alert{border-left-width:4px;border-radius:.5em;padding:.75em 1em;font-style:normal}.prose blockquote.alert>p:first-child{margin-top:0}.prose blockquote.alert>p:last-child{margin-bottom:0}.prose blockquote.alert-tip{border-left-color:var(--color-green-500);background:#f0fdf499}@supports (color:color-mix(in lab, red, red)){.prose blockquote.alert-tip{background:color-mix(in srgb, var(--color-green-50) 60%, transparent)}}.prose blockquote.alert-tip{color:var(--color-green-800)}.prose blockquote.alert-note{border-left-color:var(--color-blue-500);background:#eff6ff99}@supports (color:color-mix(in lab, red, red)){.prose blockquote.alert-note{background:color-mix(in srgb, var(--color-blue-50) 60%, transparent)}}.prose blockquote.alert-note{color:var(--color-blue-800)}.prose blockquote.alert-important{border-left-color:var(--color-purple-500);background:#faf5ff99}@supports (color:color-mix(in lab, red, red)){.prose blockquote.alert-important{background:color-mix(in srgb, var(--color-purple-50) 60%, transparent)}}.prose blockquote.alert-important{color:var(--color-purple-800)}.prose blockquote.alert-warning{border-left-color:var(--color-yellow-500);background:#fefce899}@supports (color:color-mix(in lab, red, red)){.prose blockquote.alert-warning{background:color-mix(in srgb, var(--color-yellow-50) 60%, transparent)}}.prose blockquote.alert-warning{color:var(--color-yellow-800)}.prose blockquote.alert-caution{border-left-color:var(--color-red-500);background:#fef2f299}@supports (color:color-mix(in lab, red, red)){.prose blockquote.alert-caution{background:color-mix(in srgb, var(--color-red-50) 60%, transparent)}}.prose blockquote.alert-caution{color:var(--color-red-800)}.prose ul{margin-top:1.25em;margin-bottom:1.25em;padding-left:1.5em;list-style:outside}.prose ol{margin-top:1.25em;margin-bottom:1.25em;padding-left:1.5em;list-style:decimal}.prose li{margin-top:.5em;margin-bottom:.5em}.prose li>ul,.prose li>ol{margin-top:.25em;margin-bottom:.25em}.prose hr{border:none;border-top:1px solid var(--color-gray-200);margin-top:2em;margin-bottom:2em}.prose table{border-collapse:collapse;width:100%;margin-top:1.5em;margin-bottom:1.5em;font-size:.875em}.prose th,.prose td{border:1px solid var(--color-gray-200);text-align:left;padding:.5em .75em}.prose th{background:var(--color-gray-50);color:var(--color-gray-900);font-weight:600}.prose img,.prose video{border-radius:.5em;max-width:100%;margin-top:1.5em;margin-bottom:1.5em}.dark .prose{color:var(--color-gray-200)}.dark .prose h1,.dark .prose h2,.dark .prose h3,.dark .prose h4,.dark .prose h5,.dark .prose h6{color:var(--color-gray-50)}:is(.dark .prose h1,.dark .prose h2,.dark .prose h3,.dark .prose h4,.dark .prose h5,.dark .prose h6)>a[href^=\\#]{color:var(--color-gray-600)}.dark .prose h2{border-bottom-color:var(--color-gray-700)}.dark .prose a{color:var(--color-blue-400)}.dark .prose a:hover{color:var(--color-blue-300)}.dark .prose strong{color:var(--color-gray-50)}.dark .prose code{color:var(--color-gray-100);background:var(--color-gray-800)}.dark .prose pre{border-color:var(--color-gray-700);background:#161b22}.dark .prose pre code{color:var(--color-gray-100);background:0 0}.dark .prose blockquote{border-left-color:var(--color-gray-600);color:var(--color-gray-400)}.dark .prose blockquote.alert-tip{background:#0d542b4d}@supports (color:color-mix(in lab, red, red)){.dark .prose blockquote.alert-tip{background:color-mix(in srgb, var(--color-green-900) 30%, transparent)}}.dark .prose blockquote.alert-tip{color:var(--color-green-300);border-left-color:var(--color-green-500)}.dark .prose blockquote.alert-note{background:#1c398e4d}@supports (color:color-mix(in lab, red, red)){.dark .prose blockquote.alert-note{background:color-mix(in srgb, var(--color-blue-900) 30%, transparent)}}.dark .prose blockquote.alert-note{color:var(--color-blue-300);border-left-color:var(--color-blue-500)}.dark .prose blockquote.alert-important{background:#59168b4d}@supports (color:color-mix(in lab, red, red)){.dark .prose blockquote.alert-important{background:color-mix(in srgb, var(--color-purple-900) 30%, transparent)}}.dark .prose blockquote.alert-important{color:var(--color-purple-300);border-left-color:var(--color-purple-500)}.dark .prose blockquote.alert-warning{background:#733e0a4d}@supports (color:color-mix(in lab, red, red)){.dark .prose blockquote.alert-warning{background:color-mix(in srgb, var(--color-yellow-900) 30%, transparent)}}.dark .prose blockquote.alert-warning{color:var(--color-yellow-300);border-left-color:var(--color-yellow-500)}.dark .prose blockquote.alert-caution{background:#82181a4d}@supports (color:color-mix(in lab, red, red)){.dark .prose blockquote.alert-caution{background:color-mix(in srgb, var(--color-red-900) 30%, transparent)}}.dark .prose blockquote.alert-caution{color:var(--color-red-300);border-left-color:var(--color-red-500)}.dark .prose hr{border-top-color:var(--color-gray-700)}.dark .prose th,.dark .prose td{border-color:var(--color-gray-700)}.dark .prose th{background:var(--color-gray-800);color:var(--color-gray-50)}.shj-syn-cmnt{color:#6e7781;font-style:italic}.shj-syn-err,.shj-syn-kwd{color:#cf222e}.shj-syn-class{color:#953800}.shj-syn-type,.shj-syn-oper,.shj-syn-num,.shj-syn-section,.shj-syn-var,.shj-syn-bool{color:#0550ae}.shj-syn-str{color:#0a3069}.shj-syn-func{color:#8250df}.shj-syn-insert{color:#116329}.shj-syn-deleted{color:#cf222e}.shj-syn-esc{color:#0550ae}.dark .shj-syn-cmnt{color:#8b949e}.dark .shj-syn-err,.dark .shj-syn-kwd{color:#ff7b72}.dark .shj-syn-class{color:#ffa657}.dark .shj-syn-type,.dark .shj-syn-oper,.dark .shj-syn-num,.dark .shj-syn-section,.dark .shj-syn-var,.dark .shj-syn-bool{color:#79c0ff}.dark .shj-syn-str{color:#a5d6ff}.dark .shj-syn-func{color:#d2a8ff}.dark .shj-syn-insert{color:#98c379}.dark .shj-syn-deleted{color:#ff7b72}.dark .shj-syn-esc{color:#79c0ff}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}</style>
|
|
1255
1283
|
<script type="module" crossorigin src="/assets/index-BC9qhYL0.js"><\/script>
|
|
1256
1284
|
</head>
|
|
1257
1285
|
<body class="h-screen flex flex-col bg-white text-gray-900 dark:bg-gray-950 dark:text-gray-200">
|
|
@@ -1379,19 +1407,19 @@ var Wt, Gt = v((() => {
|
|
|
1379
1407
|
</body>
|
|
1380
1408
|
</html>
|
|
1381
1409
|
`, { headers: { "content-type": `text/html; charset=utf-8` } });
|
|
1382
|
-
})),
|
|
1383
|
-
function
|
|
1384
|
-
return
|
|
1410
|
+
})), Zt = b({ default: () => Qt });
|
|
1411
|
+
function Qt(e) {
|
|
1412
|
+
return Yt(e.req);
|
|
1385
1413
|
}
|
|
1386
|
-
var
|
|
1387
|
-
|
|
1414
|
+
var $t = y((() => {
|
|
1415
|
+
Xt();
|
|
1388
1416
|
}));
|
|
1389
1417
|
V();
|
|
1390
|
-
var
|
|
1418
|
+
var en = (() => {
|
|
1391
1419
|
let e = [{
|
|
1392
1420
|
name: `headers`,
|
|
1393
1421
|
route: `/assets/**`,
|
|
1394
|
-
handler:
|
|
1422
|
+
handler: Re,
|
|
1395
1423
|
options: { "cache-control": `public, max-age=31536000, immutable` }
|
|
1396
1424
|
}];
|
|
1397
1425
|
return (t, n) => {
|
|
@@ -1403,19 +1431,19 @@ var Zt = (() => {
|
|
|
1403
1431
|
params: { _: i.slice(2).join(`/`) }
|
|
1404
1432
|
}), r;
|
|
1405
1433
|
};
|
|
1406
|
-
})(),
|
|
1434
|
+
})(), tn = E(() => Promise.resolve().then(() => (zt(), Lt))), nn = E(() => Gt().then(() => Bt)), rn = E(() => Promise.resolve().then(() => (Jt(), Kt))), an = E(() => Promise.resolve().then(() => ($t(), Zt))), on = (() => {
|
|
1407
1435
|
let e = {
|
|
1408
1436
|
route: `/api/meta`,
|
|
1409
|
-
handler:
|
|
1437
|
+
handler: tn
|
|
1410
1438
|
}, t = {
|
|
1411
1439
|
route: `/api/page`,
|
|
1412
|
-
handler:
|
|
1440
|
+
handler: nn
|
|
1413
1441
|
}, n = {
|
|
1414
1442
|
route: `/api/search`,
|
|
1415
|
-
handler:
|
|
1443
|
+
handler: rn
|
|
1416
1444
|
}, r = {
|
|
1417
1445
|
route: `/**`,
|
|
1418
|
-
handler:
|
|
1446
|
+
handler: an
|
|
1419
1447
|
};
|
|
1420
1448
|
return (i, a) => {
|
|
1421
1449
|
if (a.charCodeAt(a.length - 1) === 47 && (a = a.slice(0, -1) || `/`), a === `/api/meta`) return { data: e };
|
|
@@ -1427,14 +1455,14 @@ var Zt = (() => {
|
|
|
1427
1455
|
params: { _: o.slice(1).join(`/`) }
|
|
1428
1456
|
};
|
|
1429
1457
|
};
|
|
1430
|
-
})(),
|
|
1458
|
+
})(), sn = [D(Ge)].filter(Boolean);
|
|
1431
1459
|
V();
|
|
1432
|
-
var
|
|
1433
|
-
function
|
|
1434
|
-
let e =
|
|
1435
|
-
return e || (e =
|
|
1460
|
+
var cn = `default`;
|
|
1461
|
+
function ln() {
|
|
1462
|
+
let e = ln._instance;
|
|
1463
|
+
return e || (e = ln._instance = un(), globalThis.__nitro__ = globalThis.__nitro__ || {}, globalThis.__nitro__[cn] = e, e);
|
|
1436
1464
|
}
|
|
1437
|
-
function
|
|
1465
|
+
function un() {
|
|
1438
1466
|
let e = (e, t) => {
|
|
1439
1467
|
if (t?.event) {
|
|
1440
1468
|
let n = t.event.req.context?.nitro?.errors;
|
|
@@ -1443,8 +1471,8 @@ function on() {
|
|
|
1443
1471
|
context: t
|
|
1444
1472
|
});
|
|
1445
1473
|
}
|
|
1446
|
-
}, t =
|
|
1447
|
-
return
|
|
1474
|
+
}, t = dn({ onError(e, t) {
|
|
1475
|
+
return Ee(e, t);
|
|
1448
1476
|
} });
|
|
1449
1477
|
return {
|
|
1450
1478
|
fetch: (e) => (e.context ||= {}, e.context.nitro = e.context.nitro || { errors: [] }, t.fetch(e)),
|
|
@@ -1453,19 +1481,19 @@ function on() {
|
|
|
1453
1481
|
captureError: e
|
|
1454
1482
|
};
|
|
1455
1483
|
}
|
|
1456
|
-
function
|
|
1457
|
-
let t = new
|
|
1458
|
-
return t[`~findRoute`] = (e) =>
|
|
1484
|
+
function dn(e) {
|
|
1485
|
+
let t = new be(e);
|
|
1486
|
+
return t[`~findRoute`] = (e) => on(e.req.method, e.url.pathname), t[`~middleware`].push(...sn), t[`~getMiddleware`] = (e, n) => {
|
|
1459
1487
|
let r = e.url.pathname, i = e.req.method, a = [];
|
|
1460
1488
|
{
|
|
1461
|
-
let t =
|
|
1489
|
+
let t = fn(i, r);
|
|
1462
1490
|
e.context.routeRules = t?.routeRules, t?.routeRuleMiddleware.length && a.push(...t.routeRuleMiddleware);
|
|
1463
1491
|
}
|
|
1464
1492
|
return a.push(...t[`~middleware`]), n?.data?.middleware?.length && a.push(...n.data.middleware), a;
|
|
1465
1493
|
}, t;
|
|
1466
1494
|
}
|
|
1467
|
-
function
|
|
1468
|
-
let n =
|
|
1495
|
+
function fn(e, t) {
|
|
1496
|
+
let n = en(e, t);
|
|
1469
1497
|
if (!n?.length) return { routeRuleMiddleware: [] };
|
|
1470
1498
|
let r = {};
|
|
1471
1499
|
for (let e of n) for (let t of e.data) {
|
|
@@ -1494,13 +1522,13 @@ function cn(e, t) {
|
|
|
1494
1522
|
routeRuleMiddleware: i
|
|
1495
1523
|
};
|
|
1496
1524
|
}
|
|
1497
|
-
|
|
1498
|
-
async function
|
|
1499
|
-
let t =
|
|
1525
|
+
$();
|
|
1526
|
+
async function pn(e) {
|
|
1527
|
+
let t = ln(), n = await Z(e);
|
|
1500
1528
|
return {
|
|
1501
1529
|
fetch: t.fetch,
|
|
1502
1530
|
docs: n
|
|
1503
1531
|
};
|
|
1504
1532
|
}
|
|
1505
1533
|
//#endregion
|
|
1506
|
-
export {
|
|
1534
|
+
export { pn as createDocsServer };
|