mdzilla 0.1.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +66 -59
- package/dist/_chunks/exporter.mjs +220 -52
- package/dist/_chunks/server.mjs +649 -446
- package/dist/cli/main.mjs +149 -604
- package/dist/index.d.mts +123 -64
- package/dist/index.mjs +2 -2
- package/package.json +8 -8
package/dist/_chunks/server.mjs
CHANGED
|
@@ -1,105 +1,105 @@
|
|
|
1
|
+
import { parseMeta, renderToMarkdown, renderToText } from "md4x";
|
|
1
2
|
import { mkdir, readFile, readdir, stat, writeFile } from "node:fs/promises";
|
|
3
|
+
import { existsSync, watch } from "node:fs";
|
|
2
4
|
import { basename, dirname, extname, join } from "node:path";
|
|
3
|
-
import { parseMeta, renderToMarkdown, renderToText } from "md4x";
|
|
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 y = Object.defineProperty, b = (e, t) => () => (e && (t = e(e = 0)), t), x = (e, t) => {
|
|
11
11
|
let n = {};
|
|
12
|
-
for (var r in e)
|
|
12
|
+
for (var r in e) y(n, r, {
|
|
13
13
|
get: e[r],
|
|
14
14
|
enumerable: !0
|
|
15
15
|
});
|
|
16
|
-
return t ||
|
|
16
|
+
return t || y(n, Symbol.toStringTag, { value: `Module` }), n;
|
|
17
17
|
};
|
|
18
18
|
globalThis.__nitro_vite_envs__ = {};
|
|
19
|
-
var
|
|
20
|
-
|
|
19
|
+
var S, ee = b((() => {
|
|
20
|
+
S = (() => {
|
|
21
21
|
let e = function() {};
|
|
22
22
|
return e.prototype = Object.create(null), Object.freeze(e.prototype), e;
|
|
23
23
|
})();
|
|
24
|
-
})),
|
|
25
|
-
|
|
24
|
+
})), te, C, ne = b((() => {
|
|
25
|
+
te = URL, C = 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(Se, ``);
|
|
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 S) 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 w(e, t, n = {}) {
|
|
46
|
+
if (typeof e?.then == `function`) return (e.catch?.((e) => e) || Promise.resolve(e)).then((e) => w(e, t, n));
|
|
47
|
+
let r = se(e, t, n);
|
|
48
|
+
if (typeof r?.then == `function`) return w(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 ===
|
|
54
|
-
if (e ===
|
|
52
|
+
function se(e, t, n, r) {
|
|
53
|
+
if (e === Ce) return new C(null);
|
|
54
|
+
if (e === I && (e = new F({
|
|
55
55
|
status: 404,
|
|
56
56
|
message: `Cannot find any route matching [${t.req.method}] ${t.url}`
|
|
57
57
|
})), e && e instanceof Error) {
|
|
58
|
-
let i =
|
|
58
|
+
let i = F.isError(e), a = i ? e : new F(e);
|
|
59
59
|
i || (a.unhandled = !0, e?.stack && (a.stack = e.stack)), a.unhandled && !n.silent && console.error(a);
|
|
60
|
-
let { onError: o } = n, s = t[
|
|
61
|
-
return o && !r ? Promise.resolve(o(a, t)).catch((e) => e).then((r) =>
|
|
60
|
+
let { onError: o } = n, s = t[N]?.[be];
|
|
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
|
-
let i = t[
|
|
64
|
-
if (t[
|
|
65
|
-
let r =
|
|
66
|
-
return new
|
|
63
|
+
let i = t[N], a = i?.[ye];
|
|
64
|
+
if (t[N] = void 0, !(e instanceof Response)) {
|
|
65
|
+
let r = ce(e, t, n), o = r.status || i?.status;
|
|
66
|
+
return new C(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 ? T(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 T(e.headers, a, e.headers), e;
|
|
75
75
|
} catch {
|
|
76
|
-
return new
|
|
76
|
+
return new C(le(t.req.method, e.status) ? null : e.body, {
|
|
77
77
|
status: e.status,
|
|
78
78
|
statusText: e.statusText,
|
|
79
|
-
headers:
|
|
79
|
+
headers: T(e.headers, a)
|
|
80
80
|
});
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
|
-
function
|
|
83
|
+
function T(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: Te
|
|
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
|
-
if (e instanceof
|
|
96
|
-
if (
|
|
95
|
+
if (e instanceof L || e?.constructor?.name === `HTTPResponse`) return e;
|
|
96
|
+
if (oe(e, r)) return {
|
|
97
97
|
body: JSON.stringify(e, void 0, n.debug ? 2 : void 0),
|
|
98
|
-
headers:
|
|
98
|
+
headers: z
|
|
99
99
|
};
|
|
100
100
|
if (r === `bigint`) return {
|
|
101
101
|
body: e.toString(),
|
|
102
|
-
headers:
|
|
102
|
+
headers: z
|
|
103
103
|
};
|
|
104
104
|
if (e instanceof Blob) {
|
|
105
105
|
let t = new Headers({
|
|
@@ -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 ? T(z, e.headers) : new Headers(z);
|
|
121
|
+
return n && (r = T(r, n)), new C(JSON.stringify({
|
|
122
122
|
...e.toJSON(),
|
|
123
123
|
stack: t && e.stack ? e.stack.split(`
|
|
124
124
|
`).map((e) => e.trim()) : void 0
|
|
@@ -128,25 +128,25 @@ function fe(e, t, n) {
|
|
|
128
128
|
headers: r
|
|
129
129
|
});
|
|
130
130
|
}
|
|
131
|
-
function
|
|
131
|
+
function E(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 = E(e, t, n, r + 1), o), c = i(e, s);
|
|
134
|
+
return de(c) ? s() : typeof c?.then == `function` ? c.then((e) => de(e) ? s() : e) : c;
|
|
135
135
|
}
|
|
136
|
-
function
|
|
137
|
-
return e === void 0 || e ===
|
|
136
|
+
function de(e) {
|
|
137
|
+
return e === void 0 || e === I;
|
|
138
138
|
}
|
|
139
|
-
function
|
|
140
|
-
let t = new
|
|
139
|
+
function fe(e) {
|
|
140
|
+
let t = new S();
|
|
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) {
|
|
144
144
|
case 38:
|
|
145
145
|
if (d = o > a, d || (o = p), r = e.slice(a + 1, o), d || r.length > 0) {
|
|
146
|
-
if (l && (r = r.replace(
|
|
146
|
+
if (l && (r = r.replace(Ee, ` `)), s) try {
|
|
147
147
|
r = decodeURIComponent(r);
|
|
148
148
|
} catch {}
|
|
149
|
-
if (d && (i = e.slice(o + 1, p), u && (i = i.replace(
|
|
149
|
+
if (d && (i = e.slice(o + 1, p), u && (i = i.replace(Ee, ` `)), c)) try {
|
|
150
150
|
i = decodeURIComponent(i);
|
|
151
151
|
} catch {}
|
|
152
152
|
let n = t[r];
|
|
@@ -166,59 +166,85 @@ function me(e) {
|
|
|
166
166
|
}
|
|
167
167
|
return t;
|
|
168
168
|
}
|
|
169
|
-
function
|
|
170
|
-
return
|
|
169
|
+
function pe(e) {
|
|
170
|
+
return fe((e.url || new URL(e.req.url)).search.slice(1));
|
|
171
171
|
}
|
|
172
|
-
function
|
|
173
|
-
if (typeof e == `function`) return
|
|
172
|
+
function D(e) {
|
|
173
|
+
if (typeof e == `function`) return me(e);
|
|
174
174
|
let t = e.handler || (e.fetch ? function(t) {
|
|
175
175
|
return e.fetch(t.req);
|
|
176
|
-
} :
|
|
177
|
-
return Object.assign(
|
|
178
|
-
return
|
|
176
|
+
} : De);
|
|
177
|
+
return Object.assign(me(e.middleware?.length ? function(n) {
|
|
178
|
+
return E(n, e.middleware, t);
|
|
179
179
|
} : t), e);
|
|
180
180
|
}
|
|
181
|
-
function
|
|
181
|
+
function me(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
|
-
let n = new
|
|
184
|
+
let n = new P(t);
|
|
185
185
|
try {
|
|
186
|
-
return Promise.resolve(
|
|
186
|
+
return Promise.resolve(w(e(n), n));
|
|
187
187
|
} catch (e) {
|
|
188
|
-
return Promise.resolve(
|
|
188
|
+
return Promise.resolve(w(e, n));
|
|
189
189
|
}
|
|
190
190
|
} });
|
|
191
191
|
}
|
|
192
|
-
function
|
|
192
|
+
function O(e) {
|
|
193
193
|
let t, n;
|
|
194
|
-
return
|
|
194
|
+
return D(function(r) {
|
|
195
195
|
return t ? t(r) : (n ??= Promise.resolve(e()).then(function(e) {
|
|
196
|
-
if (t =
|
|
196
|
+
if (t = k(e) || k(e.default), typeof t != `function`) throw TypeError(`Invalid lazy handler`, { cause: { resolved: e } });
|
|
197
197
|
return t;
|
|
198
198
|
})).then((e) => e(r));
|
|
199
199
|
});
|
|
200
200
|
}
|
|
201
|
-
function
|
|
201
|
+
function k(e) {
|
|
202
202
|
if (typeof e == `function`) return e;
|
|
203
203
|
if (typeof e?.handler == `function`) return e.handler;
|
|
204
204
|
if (typeof e?.fetch == `function`) return function(t) {
|
|
205
205
|
return e.fetch(t.req);
|
|
206
206
|
};
|
|
207
207
|
}
|
|
208
|
-
|
|
209
|
-
|
|
208
|
+
function A(e) {
|
|
209
|
+
return e.split(/\r\n|\r|\n/).map((e) => `: ${e}\n`).join(``) + `
|
|
210
|
+
`;
|
|
211
|
+
}
|
|
212
|
+
function j(e) {
|
|
213
|
+
let t = ``;
|
|
214
|
+
e.id && (t += `id: ${he(e.id)}\n`), e.event && (t += `event: ${he(e.event)}\n`), typeof e.retry == `number` && Number.isInteger(e.retry) && (t += `retry: ${e.retry}\n`);
|
|
215
|
+
let n = typeof e.data == `string` ? e.data : ``;
|
|
216
|
+
for (let e of n.split(/\r\n|\r|\n/)) t += `data: ${e}\n`;
|
|
217
|
+
return t += `
|
|
218
|
+
`, t;
|
|
219
|
+
}
|
|
220
|
+
function he(e) {
|
|
221
|
+
return e.replace(/[\n\r]/g, ``);
|
|
222
|
+
}
|
|
223
|
+
function ge(e) {
|
|
224
|
+
let t = ``;
|
|
225
|
+
for (let n of e) t += j(n);
|
|
226
|
+
return t;
|
|
227
|
+
}
|
|
228
|
+
function _e(e) {
|
|
229
|
+
e.res.headers.set(`content-type`, `text/event-stream`), e.res.headers.set(`cache-control`, `private, no-cache, no-store, no-transform, must-revalidate, max-age=0`), e.res.headers.set(`x-accel-buffering`, `no`), e.req.headers.get(`connection`) === `keep-alive` && e.res.headers.set(`connection`, `keep-alive`);
|
|
230
|
+
}
|
|
231
|
+
function ve(e, t) {
|
|
232
|
+
return new Ae(e, t);
|
|
233
|
+
}
|
|
234
|
+
var M, N, ye, be, P, xe, Se, F, I, Ce, L, R, we, Te, z, Ee, De, Oe, ke, Ae, je = b((() => {
|
|
235
|
+
ee(), ne(), M = `h3.internal.event.`, N = Symbol.for(`${M}res`), ye = Symbol.for(`${M}res.headers`), be = Symbol.for(`${M}res.err.headers`), P = class {
|
|
210
236
|
app;
|
|
211
237
|
req;
|
|
212
238
|
url;
|
|
213
239
|
context;
|
|
214
240
|
static __is_event__ = !0;
|
|
215
241
|
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 =
|
|
242
|
+
this.context = t || e.context || new S(), this.req = e, this.app = n;
|
|
243
|
+
let r = e._url, i = r && r instanceof URL ? r : new te(e.url);
|
|
244
|
+
i.pathname.includes(`%`) && (i.pathname = re(i.pathname)), this.url = i;
|
|
219
245
|
}
|
|
220
246
|
get res() {
|
|
221
|
-
return this[
|
|
247
|
+
return this[N] ||= new xe();
|
|
222
248
|
}
|
|
223
249
|
get runtime() {
|
|
224
250
|
return this.req.runtime;
|
|
@@ -244,16 +270,16 @@ var O, k, A, j, M, _e, ve, N, P, ye, F, I, L, be, R, z, B, xe, Se = v((() => {
|
|
|
244
270
|
get method() {
|
|
245
271
|
return this.req.method;
|
|
246
272
|
}
|
|
247
|
-
},
|
|
273
|
+
}, xe = class {
|
|
248
274
|
status;
|
|
249
275
|
statusText;
|
|
250
276
|
get headers() {
|
|
251
|
-
return this[
|
|
277
|
+
return this[ye] ||= new Headers();
|
|
252
278
|
}
|
|
253
279
|
get errHeaders() {
|
|
254
|
-
return this[
|
|
280
|
+
return this[be] ||= new Headers();
|
|
255
281
|
}
|
|
256
|
-
},
|
|
282
|
+
}, Se = /[^\u0009\u0020-\u007E]/g, F = class e extends Error {
|
|
257
283
|
get name() {
|
|
258
284
|
return `HTTPError`;
|
|
259
285
|
}
|
|
@@ -277,7 +303,7 @@ var O, k, A, j, M, _e, ve, N, P, ye, F, I, L, be, R, z, B, xe, Se = v((() => {
|
|
|
277
303
|
constructor(e, t) {
|
|
278
304
|
let n, r;
|
|
279
305
|
typeof e == `string` ? (n = e, r = t) : r = e;
|
|
280
|
-
let i =
|
|
306
|
+
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
307
|
`HTTPError`,
|
|
282
308
|
i,
|
|
283
309
|
a
|
|
@@ -303,7 +329,7 @@ var O, k, A, j, M, _e, ve, N, P, ye, F, I, L, be, R, z, B, xe, Se = v((() => {
|
|
|
303
329
|
...e ? void 0 : this.body
|
|
304
330
|
};
|
|
305
331
|
}
|
|
306
|
-
},
|
|
332
|
+
}, I = Symbol.for(`h3.notFound`), Ce = Symbol.for(`h3.handled`), L = class {
|
|
307
333
|
#e;
|
|
308
334
|
#t;
|
|
309
335
|
body;
|
|
@@ -319,13 +345,13 @@ var O, k, A, j, M, _e, ve, N, P, ye, F, I, L, be, R, z, B, xe, Se = v((() => {
|
|
|
319
345
|
get headers() {
|
|
320
346
|
return this.#e ||= new Headers(this.#t?.headers);
|
|
321
347
|
}
|
|
322
|
-
},
|
|
348
|
+
}, R = (e) => (...t) => {
|
|
323
349
|
throw Error(`Headers are frozen (${e} ${t.join(`, `)})`);
|
|
324
|
-
},
|
|
325
|
-
set =
|
|
326
|
-
append =
|
|
327
|
-
delete =
|
|
328
|
-
},
|
|
350
|
+
}, we = class extends Headers {
|
|
351
|
+
set = R(`set`);
|
|
352
|
+
append = R(`append`);
|
|
353
|
+
delete = R(`delete`);
|
|
354
|
+
}, Te = new we({ "content-length": `0` }), z = new we({ "content-type": `application/json;charset=UTF-8` }), Ee = /\+/g, De = () => I, Oe = class {
|
|
329
355
|
config;
|
|
330
356
|
"~middleware";
|
|
331
357
|
"~routes" = [];
|
|
@@ -338,11 +364,11 @@ var O, k, A, j, M, _e, ve, N, P, ye, F, I, L, be, R, z, B, xe, Se = v((() => {
|
|
|
338
364
|
handler(e) {
|
|
339
365
|
let t = this[`~findRoute`](e);
|
|
340
366
|
t && (e.context.params = t.params, e.context.matchedRoute = t.data);
|
|
341
|
-
let n = t?.data.handler ||
|
|
342
|
-
return r.length > 0 ?
|
|
367
|
+
let n = t?.data.handler || De, r = this[`~getMiddleware`](e, t);
|
|
368
|
+
return r.length > 0 ? E(e, r, n) : n(e);
|
|
343
369
|
}
|
|
344
370
|
"~request"(e, t) {
|
|
345
|
-
let n = new
|
|
371
|
+
let n = new P(e, t, this), r;
|
|
346
372
|
try {
|
|
347
373
|
if (this.config.onRequest) {
|
|
348
374
|
let e = this.config.onRequest(n);
|
|
@@ -351,7 +377,7 @@ var O, k, A, j, M, _e, ve, N, P, ye, F, I, L, be, R, z, B, xe, Se = v((() => {
|
|
|
351
377
|
} catch (e) {
|
|
352
378
|
r = Promise.reject(e);
|
|
353
379
|
}
|
|
354
|
-
return
|
|
380
|
+
return w(r, n, this.config);
|
|
355
381
|
}
|
|
356
382
|
"~findRoute"(e) {}
|
|
357
383
|
"~addRoute"(e) {
|
|
@@ -361,17 +387,123 @@ var O, k, A, j, M, _e, ve, N, P, ye, F, I, L, be, R, z, B, xe, Se = v((() => {
|
|
|
361
387
|
let n = t?.data.middleware, r = this[`~middleware`];
|
|
362
388
|
return n ? [...r, ...n] : r;
|
|
363
389
|
}
|
|
390
|
+
}, ke = () => {}, Ae = class {
|
|
391
|
+
_event;
|
|
392
|
+
_transformStream = new TransformStream();
|
|
393
|
+
_writer;
|
|
394
|
+
_encoder = new TextEncoder();
|
|
395
|
+
_writerIsClosed = !1;
|
|
396
|
+
_paused = !1;
|
|
397
|
+
_unsentData;
|
|
398
|
+
_disposed = !1;
|
|
399
|
+
_handled = !1;
|
|
400
|
+
constructor(e, t = {}) {
|
|
401
|
+
this._event = e, this._writer = this._transformStream.writable.getWriter(), this._writer.closed.then(() => {
|
|
402
|
+
this._writerIsClosed = !0;
|
|
403
|
+
}), t.autoclose !== !1 && this._event.runtime?.node?.res?.once(`close`, () => this.close());
|
|
404
|
+
}
|
|
405
|
+
async push(e) {
|
|
406
|
+
if (typeof e == `string`) {
|
|
407
|
+
await this._sendEvent({ data: e });
|
|
408
|
+
return;
|
|
409
|
+
}
|
|
410
|
+
if (Array.isArray(e)) {
|
|
411
|
+
if (e.length === 0) return;
|
|
412
|
+
if (typeof e[0] == `string`) {
|
|
413
|
+
let t = [];
|
|
414
|
+
for (let n of e) t.push({ data: n });
|
|
415
|
+
await this._sendEvents(t);
|
|
416
|
+
return;
|
|
417
|
+
}
|
|
418
|
+
await this._sendEvents(e);
|
|
419
|
+
return;
|
|
420
|
+
}
|
|
421
|
+
await this._sendEvent(e);
|
|
422
|
+
}
|
|
423
|
+
async pushComment(e) {
|
|
424
|
+
if (!this._writerIsClosed) {
|
|
425
|
+
if (this._paused && !this._unsentData) {
|
|
426
|
+
this._unsentData = A(e);
|
|
427
|
+
return;
|
|
428
|
+
}
|
|
429
|
+
if (this._paused) {
|
|
430
|
+
this._unsentData += A(e);
|
|
431
|
+
return;
|
|
432
|
+
}
|
|
433
|
+
await this._writer.write(this._encoder.encode(A(e))).catch(() => {
|
|
434
|
+
this._writerIsClosed = !0;
|
|
435
|
+
});
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
async _sendEvent(e) {
|
|
439
|
+
if (!this._writerIsClosed) {
|
|
440
|
+
if (this._paused && !this._unsentData) {
|
|
441
|
+
this._unsentData = j(e);
|
|
442
|
+
return;
|
|
443
|
+
}
|
|
444
|
+
if (this._paused) {
|
|
445
|
+
this._unsentData += j(e);
|
|
446
|
+
return;
|
|
447
|
+
}
|
|
448
|
+
await this._writer.write(this._encoder.encode(j(e))).catch(() => {
|
|
449
|
+
this._writerIsClosed = !0;
|
|
450
|
+
});
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
async _sendEvents(e) {
|
|
454
|
+
if (this._writerIsClosed) return;
|
|
455
|
+
let t = ge(e);
|
|
456
|
+
if (this._paused && !this._unsentData) {
|
|
457
|
+
this._unsentData = t;
|
|
458
|
+
return;
|
|
459
|
+
}
|
|
460
|
+
if (this._paused) {
|
|
461
|
+
this._unsentData += t;
|
|
462
|
+
return;
|
|
463
|
+
}
|
|
464
|
+
await this._writer.write(this._encoder.encode(t)).catch(() => {
|
|
465
|
+
this._writerIsClosed = !0;
|
|
466
|
+
});
|
|
467
|
+
}
|
|
468
|
+
pause() {
|
|
469
|
+
this._paused = !0;
|
|
470
|
+
}
|
|
471
|
+
get isPaused() {
|
|
472
|
+
return this._paused;
|
|
473
|
+
}
|
|
474
|
+
async resume() {
|
|
475
|
+
this._paused = !1, await this.flush();
|
|
476
|
+
}
|
|
477
|
+
async flush() {
|
|
478
|
+
this._writerIsClosed || this._unsentData?.length && (await this._writer.write(this._encoder.encode(this._unsentData)).catch(() => {
|
|
479
|
+
this._writerIsClosed = !0;
|
|
480
|
+
}), this._unsentData = void 0);
|
|
481
|
+
}
|
|
482
|
+
async close() {
|
|
483
|
+
if (!this._disposed) {
|
|
484
|
+
if (!this._writerIsClosed) try {
|
|
485
|
+
await this._writer.close();
|
|
486
|
+
} catch {}
|
|
487
|
+
this._disposed = !0;
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
onClosed(e) {
|
|
491
|
+
this._writer.closed.then(e).catch(ke);
|
|
492
|
+
}
|
|
493
|
+
async send() {
|
|
494
|
+
return _e(this._event), this._event.res.status = 200, this._handled = !0, this._transformStream.readable;
|
|
495
|
+
}
|
|
364
496
|
}, new TextEncoder();
|
|
365
|
-
})),
|
|
366
|
-
|
|
497
|
+
})), B = b((() => {
|
|
498
|
+
je();
|
|
367
499
|
}));
|
|
368
|
-
|
|
369
|
-
var
|
|
370
|
-
let n =
|
|
371
|
-
return new
|
|
500
|
+
B(), ne();
|
|
501
|
+
var Ne = (e, t) => {
|
|
502
|
+
let n = Pe(e, t);
|
|
503
|
+
return new C(typeof n.body == `string` ? n.body : JSON.stringify(n.body, null, 2), n);
|
|
372
504
|
};
|
|
373
|
-
function
|
|
374
|
-
let n = e.unhandled ?? !
|
|
505
|
+
function Pe(e, t) {
|
|
506
|
+
let n = e.unhandled ?? !F.isError(e), { status: r = 500, statusText: i = `` } = n ? {} : e;
|
|
375
507
|
if (r === 404) {
|
|
376
508
|
let e = t.url || new URL(t.req.url);
|
|
377
509
|
if (/^\/[^/]/.test(`/`) && !e.pathname.startsWith(`/`)) return {
|
|
@@ -397,131 +529,131 @@ function Te(e, t) {
|
|
|
397
529
|
}
|
|
398
530
|
};
|
|
399
531
|
}
|
|
400
|
-
var
|
|
401
|
-
async function
|
|
402
|
-
for (let n of
|
|
403
|
-
let r = await n(e, t, { defaultHandler:
|
|
532
|
+
var Fe = [Ne];
|
|
533
|
+
async function Ie(e, t) {
|
|
534
|
+
for (let n of Fe) try {
|
|
535
|
+
let r = await n(e, t, { defaultHandler: Pe });
|
|
404
536
|
if (r) return r;
|
|
405
537
|
} catch (e) {
|
|
406
538
|
console.error(e);
|
|
407
539
|
}
|
|
408
540
|
}
|
|
409
541
|
String.fromCharCode;
|
|
410
|
-
var
|
|
411
|
-
function
|
|
542
|
+
var Le = /%2f/gi;
|
|
543
|
+
function Re(e = ``) {
|
|
412
544
|
try {
|
|
413
545
|
return decodeURIComponent(`` + e);
|
|
414
546
|
} catch {
|
|
415
547
|
return `` + e;
|
|
416
548
|
}
|
|
417
549
|
}
|
|
418
|
-
function
|
|
419
|
-
return
|
|
550
|
+
function ze(e) {
|
|
551
|
+
return Re(e.replace(Le, `%252F`));
|
|
420
552
|
}
|
|
421
|
-
var
|
|
422
|
-
function
|
|
423
|
-
return t ?
|
|
553
|
+
var Be = /\/$|\/\?|\/#/, Ve = /^\.?\//;
|
|
554
|
+
function V(e = ``, t) {
|
|
555
|
+
return t ? Be.test(e) : e.endsWith(`/`);
|
|
424
556
|
}
|
|
425
|
-
function
|
|
426
|
-
if (!t) return (
|
|
427
|
-
if (!
|
|
557
|
+
function He(e = ``, t) {
|
|
558
|
+
if (!t) return (V(e) ? e.slice(0, -1) : e) || `/`;
|
|
559
|
+
if (!V(e, !0)) return e || `/`;
|
|
428
560
|
let n = e, r = ``, i = e.indexOf(`#`);
|
|
429
561
|
i !== -1 && (n = e.slice(0, i), r = e.slice(i));
|
|
430
562
|
let [a, ...o] = n.split(`?`);
|
|
431
563
|
return ((a.endsWith(`/`) ? a.slice(0, -1) : a) || `/`) + (o.length > 0 ? `?${o.join(`?`)}` : ``) + r;
|
|
432
564
|
}
|
|
433
|
-
function
|
|
565
|
+
function Ue(e = ``, t) {
|
|
434
566
|
if (!t) return e.endsWith(`/`) ? e : e + `/`;
|
|
435
|
-
if (
|
|
567
|
+
if (V(e, !0)) return e || `/`;
|
|
436
568
|
let n = e, r = ``, i = e.indexOf(`#`);
|
|
437
569
|
if (i !== -1 && (n = e.slice(0, i), r = e.slice(i), !n)) return r;
|
|
438
570
|
let [a, ...o] = n.split(`?`);
|
|
439
571
|
return a + `/` + (o.length > 0 ? `?${o.join(`?`)}` : ``) + r;
|
|
440
572
|
}
|
|
441
|
-
function
|
|
573
|
+
function We(e = ``) {
|
|
442
574
|
return e.startsWith(`/`);
|
|
443
575
|
}
|
|
444
|
-
function
|
|
445
|
-
return
|
|
576
|
+
function Ge(e = ``) {
|
|
577
|
+
return We(e) ? e : `/` + e;
|
|
446
578
|
}
|
|
447
|
-
function
|
|
579
|
+
function Ke(e) {
|
|
448
580
|
return e && e !== `/`;
|
|
449
581
|
}
|
|
450
|
-
function
|
|
582
|
+
function qe(e, ...t) {
|
|
451
583
|
let n = e || ``;
|
|
452
|
-
for (let e of t.filter((e) =>
|
|
453
|
-
let t = e.replace(
|
|
454
|
-
n =
|
|
584
|
+
for (let e of t.filter((e) => Ke(e))) if (n) {
|
|
585
|
+
let t = e.replace(Ve, ``);
|
|
586
|
+
n = Ue(n) + t;
|
|
455
587
|
} else n = e;
|
|
456
588
|
return n;
|
|
457
589
|
}
|
|
458
|
-
var
|
|
590
|
+
var Je = ((e) => function(t) {
|
|
459
591
|
for (let [n, r] of Object.entries(e.options || {})) t.res.headers.set(n, r);
|
|
460
|
-
}),
|
|
461
|
-
"/assets/index-
|
|
592
|
+
}), H = {
|
|
593
|
+
"/assets/index-CIhhqrBM.js": {
|
|
462
594
|
type: `text/javascript; charset=utf-8`,
|
|
463
|
-
etag: `"
|
|
464
|
-
mtime: `2026-03-
|
|
465
|
-
size:
|
|
466
|
-
path: `../public/assets/index-
|
|
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==`
|
|
595
|
+
etag: `"2d2f-pscmo5HNdcDiWLYskz489hC/rWg"`,
|
|
596
|
+
mtime: `2026-03-27T14:37:40.339Z`,
|
|
597
|
+
size: 11567,
|
|
598
|
+
path: `../public/assets/index-CIhhqrBM.js`,
|
|
599
|
+
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+YCk7cmV0dXJufWQoeSxlKSxhd2FpdCBwKGIsZSl9YXN5bmMgZnVuY3Rpb24gQygpe2xldCBlPShhd2FpdChhd2FpdCBmZXRjaChgL2FwaS9tZXRhYCkpLmpzb24oKSkudG9jO3JldHVybiBsKHksZSksaChlKSxkKHksbG9jYXRpb24ucGF0aG5hbWUpLGV9YXN5bmMgZnVuY3Rpb24gdygpe2YoYixgPHAgY2xhc3M9InRleHQtZ3JheS00MDAiPkxvYWRpbmcuLi48L3A+YCk7bGV0IGU9YXdhaXQgQygpO2lmKHkuYWRkRXZlbnRMaXN0ZW5lcihgY2xpY2tgLGU9PntsZXQgdD1lLnRhcmdldC5jbG9zZXN0KGBhLm5hdi1saW5rYCk7dCYmKGUucHJldmVudERlZmF1bHQoKSx4KHQuZ2V0QXR0cmlidXRlKGBkYXRhLXBhdGhgKSkpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoYHBvcHN0YXRlYCxTKSxsb2NhdGlvbi5wYXRobmFtZT09PWAvYCl7bGV0IHQ9cyhlKTtpZih0KXt4KHQpO3JldHVybn19UygpLFQoKX1mdW5jdGlvbiBUKCl7bGV0IGU9bmV3IEV2ZW50U291cmNlKGAvYXBpL3dhdGNoYCk7ZS5vbm1lc3NhZ2U9YXN5bmMoKT0+e2F3YWl0IEMoKTtsZXQgZT1sb2NhdGlvbi5wYXRobmFtZTtlIT09YC9gJiZhd2FpdCBwKGIsZSl9LHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKGBiZWZvcmV1bmxvYWRgLCgpPT5lLmNsb3NlKCkpfXcoKTs=`
|
|
468
600
|
},
|
|
469
601
|
"/assets/logo-BLkVGWak.svg": {
|
|
470
602
|
type: `image/svg+xml`,
|
|
471
603
|
etag: `"557-HYXN/qI1kFu3DGsCSw4J8HIDoeU"`,
|
|
472
|
-
mtime: `2026-03-
|
|
604
|
+
mtime: `2026-03-27T14:37:40.339Z`,
|
|
473
605
|
size: 1367,
|
|
474
606
|
path: `../public/assets/logo-BLkVGWak.svg`,
|
|
475
607
|
data: `PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMDAgMjAwIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+CiAgPCEtLSBCb2R5OiByb3VuZGVkIHJlY3RhbmdsZSAoZG9jdW1lbnQgc2hhcGUpIC0tPgogIDxyZWN0IHg9IjQwIiB5PSIzMCIgd2lkdGg9IjEyMCIgaGVpZ2h0PSIxNTAiIHJ4PSIxOCIgcnk9IjE4IiBmaWxsPSIjMkIyRDQyIi8+CgogIDwhLS0gRG9jdW1lbnQgbGluZXMgKG1hcmtkb3duIGZlZWwpIC0tPgogIDxyZWN0IHg9IjYyIiB5PSI3MCIgd2lkdGg9IjUwIiBoZWlnaHQ9IjYiIHJ4PSIzIiBmaWxsPSIjOEQ5OUFFIi8+CiAgPHJlY3QgeD0iNjIiIHk9Ijg2IiB3aWR0aD0iNzYiIGhlaWdodD0iNiIgcng9IjMiIGZpbGw9IiM4RDk5QUUiLz4KICA8cmVjdCB4PSI2MiIgeT0iMTAyIiB3aWR0aD0iNjIiIGhlaWdodD0iNiIgcng9IjMiIGZpbGw9IiM4RDk5QUUiLz4KICA8cmVjdCB4PSI2MiIgeT0iMTE4IiB3aWR0aD0iNzAiIGhlaWdodD0iNiIgcng9IjMiIGZpbGw9IiM4RDk5QUUiLz4KICA8cmVjdCB4PSI2MiIgeT0iMTM0IiB3aWR0aD0iNDAiIGhlaWdodD0iNiIgcng9IjMiIGZpbGw9IiM4RDk5QUUiLz4KCiAgPCEtLSBIZWFkaW5nIGhhc2ggbWFyayAobWFya2Rvd24gIykgLS0+CiAgPHRleHQgeD0iNjIiIHk9IjYwIiBmb250LWZhbWlseT0ibW9ub3NwYWNlIiBmb250LXdlaWdodD0iYm9sZCIgZm9udC1zaXplPSIxOCIgZmlsbD0iI0VERjJGNCI+IzwvdGV4dD4KCiAgPCEtLSBFeWVzIC0tPgogIDxjaXJjbGUgY3g9Ijc4IiBjeT0iMTcyIiByPSI1IiBmaWxsPSIjRUYyMzNDIi8+CiAgPGNpcmNsZSBjeD0iMTIyIiBjeT0iMTcyIiByPSI1IiBmaWxsPSIjRUYyMzNDIi8+CgogIDwhLS0gVGVldGggKHppbGxhIGJpdGUgb24gYm90dG9tKSAtLT4KICA8cG9seWdvbiBwb2ludHM9IjY4LDE4MCA3NCwxOTIgODAsMTgwIiBmaWxsPSIjRURGMkY0Ii8+CiAgPHBvbHlnb24gcG9pbnRzPSI4OCwxODAgOTQsMTkyIDEwMCwxODAiIGZpbGw9IiNFREYyRjQiLz4KICA8cG9seWdvbiBwb2ludHM9IjEwOCwxODAgMTE0LDE5MiAxMjAsMTgwIiBmaWxsPSIjRURGMkY0Ii8+CiAgPHBvbHlnb24gcG9pbnRzPSIxMjgsMTgwIDEzNCwxOTIgMTQwLDE4MCIgZmlsbD0iI0VERjJGNCIvPgoKICA8IS0tIFNwaWtlcyBvbiB0b3AgKHppbGxhIGhvcm5zKSAtLT4KICA8cG9seWdvbiBwb2ludHM9IjcwLDMwIDc4LDEwIDg2LDMwIiBmaWxsPSIjMkIyRDQyIi8+CiAgPHBvbHlnb24gcG9pbnRzPSI5MiwzMCAxMDAsNiAxMDgsMzAiIGZpbGw9IiMyQjJENDIiLz4KICA8cG9seWdvbiBwb2ludHM9IjExNCwzMCAxMjIsMTAgMTMwLDMwIiBmaWxsPSIjMkIyRDQyIi8+Cjwvc3ZnPgo=`
|
|
476
608
|
}
|
|
477
609
|
};
|
|
478
|
-
function
|
|
479
|
-
if (
|
|
610
|
+
function Ye(e) {
|
|
611
|
+
if (H[e]) return H[e]._data ? H[e]._data : H[e].data ? (H[e]._data = Uint8Array.from(atob(H[e].data), (e) => e.charCodeAt(0)), H[e]._data) : H[e].data;
|
|
480
612
|
}
|
|
481
|
-
var
|
|
482
|
-
function
|
|
483
|
-
if (
|
|
484
|
-
for (let t in
|
|
613
|
+
var Xe = {};
|
|
614
|
+
function Ze(e = ``) {
|
|
615
|
+
if (H[e]) return !0;
|
|
616
|
+
for (let t in Xe) if (e.startsWith(t)) return !0;
|
|
485
617
|
return !1;
|
|
486
618
|
}
|
|
487
|
-
function
|
|
488
|
-
return
|
|
619
|
+
function Qe(e) {
|
|
620
|
+
return H[e];
|
|
489
621
|
}
|
|
490
|
-
|
|
491
|
-
var
|
|
622
|
+
B();
|
|
623
|
+
var $e = new Set([`HEAD`, `GET`]), et = {
|
|
492
624
|
gzip: `.gz`,
|
|
493
625
|
br: `.br`,
|
|
494
626
|
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 =
|
|
627
|
+
}, tt = D((e) => {
|
|
628
|
+
if (e.req.method && !$e.has(e.req.method)) return;
|
|
629
|
+
let t = ze(Ge(He(e.url.pathname))), n, r = [...(e.req.headers.get(`accept-encoding`) || ``).split(`,`).map((e) => et[e.trim()]).filter(Boolean).sort(), ``];
|
|
630
|
+
for (let e of r) for (let r of [t + e, qe(t, `index.html` + e)]) {
|
|
631
|
+
let e = Qe(r);
|
|
500
632
|
if (e) {
|
|
501
633
|
n = e, t = r;
|
|
502
634
|
break;
|
|
503
635
|
}
|
|
504
636
|
}
|
|
505
637
|
if (!n) {
|
|
506
|
-
if (
|
|
638
|
+
if (Ze(t)) throw e.res.headers.delete(`Cache-Control`), new F({ status: 404 });
|
|
507
639
|
return;
|
|
508
640
|
}
|
|
509
641
|
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
642
|
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
|
-
}),
|
|
513
|
-
|
|
643
|
+
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()), Ye(t));
|
|
644
|
+
}), U = b((() => {
|
|
645
|
+
B();
|
|
514
646
|
}));
|
|
515
|
-
function
|
|
647
|
+
function nt(e, t, n) {
|
|
516
648
|
let r = [];
|
|
517
649
|
for (let i of e) r.push({
|
|
518
650
|
entry: i,
|
|
519
651
|
depth: t,
|
|
520
652
|
filePath: n.get(i.path)
|
|
521
|
-
}), i.children && r.push(...
|
|
653
|
+
}), i.children && r.push(...nt(i.children, t + 1, n));
|
|
522
654
|
return r;
|
|
523
655
|
}
|
|
524
|
-
function
|
|
656
|
+
function rt(e, t) {
|
|
525
657
|
let n = e.toLowerCase(), r = t.toLowerCase();
|
|
526
658
|
if (n.length === 0) return 0;
|
|
527
659
|
if (n.length > r.length) return -1;
|
|
@@ -529,14 +661,14 @@ function qe(e, t) {
|
|
|
529
661
|
for (let e = 0; e < r.length && a < n.length; e++) r[e] === n[a] && (o === e - 1 && (i -= 5), (e === 0 || `/\\-_. `.includes(r[e - 1])) && (i -= 10), o >= 0 && (i += e - o - 1), o = e, a++);
|
|
530
662
|
return a < n.length ? -1 : (i += r.length * .1, i);
|
|
531
663
|
}
|
|
532
|
-
function
|
|
664
|
+
function it(e, t, n) {
|
|
533
665
|
if (!t) return e;
|
|
534
666
|
let r = [];
|
|
535
667
|
for (let i of e) {
|
|
536
668
|
let e = Infinity;
|
|
537
669
|
for (let r of n(i)) {
|
|
538
|
-
let n =
|
|
539
|
-
n
|
|
670
|
+
let n = rt(t, r);
|
|
671
|
+
n !== -1 && n < e && (e = n);
|
|
540
672
|
}
|
|
541
673
|
e < Infinity && r.push({
|
|
542
674
|
item: i,
|
|
@@ -545,23 +677,54 @@ function Je(e, t, n) {
|
|
|
545
677
|
}
|
|
546
678
|
return r.sort((e, t) => e.score - t.score), r.map((e) => e.item);
|
|
547
679
|
}
|
|
548
|
-
|
|
549
|
-
|
|
680
|
+
function at(e, t, n = 1) {
|
|
681
|
+
let r = [], i = e.split(`
|
|
682
|
+
`);
|
|
683
|
+
for (let e = 0; e < i.length; e++) if (i[e].toLowerCase().includes(t)) {
|
|
684
|
+
let t = [];
|
|
685
|
+
for (let r = Math.max(0, e - n); r <= Math.min(i.length - 1, e + n); r++) r !== e && t.push(i[r].trim());
|
|
686
|
+
r.push({
|
|
687
|
+
line: e + 1,
|
|
688
|
+
text: i[e].trim(),
|
|
689
|
+
context: t
|
|
690
|
+
});
|
|
691
|
+
}
|
|
692
|
+
return r;
|
|
693
|
+
}
|
|
694
|
+
var W, ot = b((() => {
|
|
695
|
+
W = class {
|
|
550
696
|
source;
|
|
551
697
|
tree = [];
|
|
552
698
|
flat = [];
|
|
553
699
|
_fileMap = /* @__PURE__ */ new Map();
|
|
554
700
|
_contentCache = /* @__PURE__ */ new Map();
|
|
701
|
+
_changeListeners = /* @__PURE__ */ new Set();
|
|
702
|
+
_reloadTimer;
|
|
555
703
|
constructor(e) {
|
|
556
704
|
this.source = e;
|
|
557
705
|
}
|
|
558
706
|
async load() {
|
|
559
707
|
let { tree: e, fileMap: t } = await this.source.load();
|
|
560
|
-
this.tree = e, this._fileMap = t, this.flat =
|
|
708
|
+
this.tree = e, this._fileMap = t, this.flat = nt(this.tree, 0, this._fileMap), this._contentCache.clear();
|
|
561
709
|
}
|
|
562
710
|
async reload() {
|
|
563
711
|
return this.load();
|
|
564
712
|
}
|
|
713
|
+
watch() {
|
|
714
|
+
this.source.watch(({ path: e }) => {
|
|
715
|
+
clearTimeout(this._reloadTimer), this._reloadTimer = setTimeout(() => {
|
|
716
|
+
this.reload().then(() => {
|
|
717
|
+
for (let t of this._changeListeners) t(e);
|
|
718
|
+
});
|
|
719
|
+
}, 100);
|
|
720
|
+
});
|
|
721
|
+
}
|
|
722
|
+
unwatch() {
|
|
723
|
+
clearTimeout(this._reloadTimer), this.source.unwatch(), this._changeListeners.clear();
|
|
724
|
+
}
|
|
725
|
+
onChange(e) {
|
|
726
|
+
return this._changeListeners.add(e), () => this._changeListeners.delete(e);
|
|
727
|
+
}
|
|
565
728
|
async getContent(e) {
|
|
566
729
|
if (!e.filePath || e.entry.page === !1) return;
|
|
567
730
|
let t = this._contentCache.get(e.filePath);
|
|
@@ -573,7 +736,37 @@ var Ye, Xe = v((() => {
|
|
|
573
736
|
this._contentCache.delete(e);
|
|
574
737
|
}
|
|
575
738
|
filter(e) {
|
|
576
|
-
return
|
|
739
|
+
return it(this.flat, e, ({ entry: e }) => [e.title, e.path]);
|
|
740
|
+
}
|
|
741
|
+
async *search(t) {
|
|
742
|
+
if (!t) return;
|
|
743
|
+
let n = t.toLowerCase(), r = n.split(/\s+/).filter(Boolean), i = (e) => r.every((t) => e.includes(t)), a = /* @__PURE__ */ new Set();
|
|
744
|
+
for (let t of this.flat) {
|
|
745
|
+
if (t.entry.page === !1 || a.has(t.entry.path)) continue;
|
|
746
|
+
a.add(t.entry.path);
|
|
747
|
+
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;
|
|
748
|
+
if (!o && !l) continue;
|
|
749
|
+
let u = 300, d;
|
|
750
|
+
if (o) u = r === n ? 0 : 100;
|
|
751
|
+
else if (s) {
|
|
752
|
+
let t = parseMeta(s);
|
|
753
|
+
for (let e of t.headings || []) {
|
|
754
|
+
let t = e.text.toLowerCase();
|
|
755
|
+
if (i(t)) {
|
|
756
|
+
u = t === n ? 150 : 200, d = e.text;
|
|
757
|
+
break;
|
|
758
|
+
}
|
|
759
|
+
}
|
|
760
|
+
}
|
|
761
|
+
let f = s ? at(s, n) : [];
|
|
762
|
+
yield {
|
|
763
|
+
flat: t,
|
|
764
|
+
score: u,
|
|
765
|
+
titleMatch: o,
|
|
766
|
+
heading: d,
|
|
767
|
+
contentMatches: f
|
|
768
|
+
};
|
|
769
|
+
}
|
|
577
770
|
}
|
|
578
771
|
get pages() {
|
|
579
772
|
return this.flat.filter((e) => e.entry.page !== !1);
|
|
@@ -604,24 +797,36 @@ var Ye, Xe = v((() => {
|
|
|
604
797
|
let i = await this.source.readContent(t).catch(() => void 0);
|
|
605
798
|
return i ? { raw: i } : {};
|
|
606
799
|
}
|
|
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);
|
|
800
|
+
suggest(e, t = 5) {
|
|
801
|
+
let n = this.filter(e);
|
|
802
|
+
if (n.length > 0) return n.slice(0, t);
|
|
803
|
+
let r = e.replace(/^\/+/, ``).split(`/`).filter(Boolean), i = r.at(-1);
|
|
804
|
+
if (i && i !== e && (n = this.filter(i), n.length > 0)) return n.slice(0, t);
|
|
805
|
+
let a = r.flatMap((e) => e.split(`-`)).filter(Boolean);
|
|
806
|
+
return this.pages.filter((e) => a.some((t) => e.entry.title.toLowerCase().includes(t) || e.entry.path.toLowerCase().includes(t))).slice(0, t);
|
|
619
807
|
}
|
|
620
808
|
};
|
|
621
|
-
})), K, q = v((() => {
|
|
622
|
-
K = class {};
|
|
623
809
|
}));
|
|
624
|
-
function
|
|
810
|
+
function st(e, t, n = {}) {
|
|
811
|
+
let { maxSnippets: r = 3, radius: i = 80 } = n, a = e.toLowerCase(), o = [];
|
|
812
|
+
for (let e of t) {
|
|
813
|
+
let t = a.indexOf(e);
|
|
814
|
+
for (; t !== -1 && o.length < r * 2;) o.push(t), t = a.indexOf(e, t + e.length);
|
|
815
|
+
}
|
|
816
|
+
o.sort((e, t) => e - t);
|
|
817
|
+
let s = [], c = -1;
|
|
818
|
+
for (let t of o) {
|
|
819
|
+
if (s.length >= r) break;
|
|
820
|
+
let n = Math.max(0, t - i), a = Math.min(e.length, t + i);
|
|
821
|
+
if (n <= c) continue;
|
|
822
|
+
c = a;
|
|
823
|
+
let o = e.slice(n, a).trim().replaceAll(/\s+/g, ` `);
|
|
824
|
+
n > 0 && (o = `…` + o), a < e.length && (o += `…`), s.push(o);
|
|
825
|
+
}
|
|
826
|
+
return s;
|
|
827
|
+
}
|
|
828
|
+
var ct = b((() => {}));
|
|
829
|
+
function lt(e) {
|
|
625
830
|
let t = e.endsWith(`.md`) ? e.slice(0, -3) : e, n = t.endsWith(`.draft`);
|
|
626
831
|
n && (t = t.slice(0, -6));
|
|
627
832
|
let r = t.match(/^(\d+)\.(.+)$/);
|
|
@@ -635,18 +840,18 @@ function Ze(e) {
|
|
|
635
840
|
draft: n
|
|
636
841
|
};
|
|
637
842
|
}
|
|
638
|
-
function
|
|
843
|
+
function ut(e) {
|
|
639
844
|
return e.split(`-`).map((e) => e.charAt(0).toUpperCase() + e.slice(1)).join(` `);
|
|
640
845
|
}
|
|
641
|
-
async function
|
|
846
|
+
async function dt(t) {
|
|
642
847
|
try {
|
|
643
|
-
let { headings: n, ...r } = parseMeta(`---\n${await readFile(join(
|
|
848
|
+
let { headings: n, ...r } = parseMeta(`---\n${await readFile(join(t, `.navigation.yml`), `utf8`)}\n---\n`);
|
|
644
849
|
return r;
|
|
645
850
|
} catch {
|
|
646
851
|
return {};
|
|
647
852
|
}
|
|
648
853
|
}
|
|
649
|
-
function
|
|
854
|
+
function ft(e) {
|
|
650
855
|
let t = e.navigation;
|
|
651
856
|
if (t === !1) return {
|
|
652
857
|
...e,
|
|
@@ -661,60 +866,61 @@ function et(e) {
|
|
|
661
866
|
}
|
|
662
867
|
return e;
|
|
663
868
|
}
|
|
664
|
-
function
|
|
869
|
+
function pt(e) {
|
|
665
870
|
let t = {}, n = !1;
|
|
666
|
-
for (let [r, i] of Object.entries(e)) !
|
|
871
|
+
for (let [r, i] of Object.entries(e)) !gt.has(r) && r !== `navigation` && (t[r] = i, n = !0);
|
|
667
872
|
return n ? t : void 0;
|
|
668
873
|
}
|
|
669
|
-
async function
|
|
670
|
-
return
|
|
874
|
+
async function mt(e, t) {
|
|
875
|
+
return ht(e, `/`, t || {});
|
|
671
876
|
}
|
|
672
|
-
async function
|
|
673
|
-
let
|
|
674
|
-
for (let
|
|
675
|
-
if (
|
|
676
|
-
let
|
|
877
|
+
async function ht(t, n, r) {
|
|
878
|
+
let s = await readdir(t), c = [];
|
|
879
|
+
for (let a of s) {
|
|
880
|
+
if (a.startsWith(`.`) || a.startsWith(`_`) || a === `node_modules` || a === `dist` || a === `package.json` || a === `pnpm-lock.yaml` || a === `pnpm-workspace.yaml`) continue;
|
|
881
|
+
let s = join(t, a), l;
|
|
677
882
|
try {
|
|
678
|
-
|
|
883
|
+
l = await stat(s);
|
|
679
884
|
} catch {
|
|
680
885
|
continue;
|
|
681
886
|
}
|
|
682
|
-
if (
|
|
683
|
-
let { order: e, slug: t } =
|
|
684
|
-
if (
|
|
685
|
-
let
|
|
887
|
+
if (l.isDirectory()) {
|
|
888
|
+
let { order: e, slug: t } = lt(a), i = await dt(s);
|
|
889
|
+
if (i.navigation === !1) continue;
|
|
890
|
+
let o = await ht(s, n === `/` ? `/${t}` : `${n}/${t}`, r), l = o.some((e) => e.slug === ``), u = {
|
|
686
891
|
slug: t,
|
|
687
|
-
path:
|
|
688
|
-
title:
|
|
892
|
+
path: n === `/` ? `/${t}` : `${n}/${t}`,
|
|
893
|
+
title: i.title || ut(t),
|
|
689
894
|
order: e,
|
|
690
|
-
...
|
|
691
|
-
...
|
|
692
|
-
...
|
|
693
|
-
...
|
|
895
|
+
...i.icon ? { icon: i.icon } : {},
|
|
896
|
+
...i.description ? { description: i.description } : {},
|
|
897
|
+
...l ? {} : { page: !1 },
|
|
898
|
+
...o.length > 0 ? { children: o } : {}
|
|
694
899
|
};
|
|
695
|
-
|
|
696
|
-
} else if (extname(
|
|
697
|
-
let { order:
|
|
698
|
-
if (
|
|
699
|
-
let
|
|
700
|
-
if (
|
|
701
|
-
let
|
|
702
|
-
slug:
|
|
703
|
-
path:
|
|
704
|
-
title:
|
|
705
|
-
order:
|
|
706
|
-
...
|
|
707
|
-
...
|
|
708
|
-
...
|
|
709
|
-
...
|
|
900
|
+
c.push(u);
|
|
901
|
+
} else if (extname(a) === `.md`) {
|
|
902
|
+
let { order: t, slug: o, draft: l } = lt(basename(a));
|
|
903
|
+
if (l && !r.drafts) continue;
|
|
904
|
+
let d = parseMeta(await readFile(s, `utf8`)), f = ft(d);
|
|
905
|
+
if (f.navigation === !1) continue;
|
|
906
|
+
let p = typeof f.order == `number` ? f.order : t, m = o === `index` ? `` : o, h = d.headings?.find((e) => e.level === 1)?.text, g = f.title || h || ut(o) || `index`, _ = m === `` ? n === `/` ? `/` : n : n === `/` ? `/${m}` : `${n}/${m}`, v = pt(f), y = {
|
|
907
|
+
slug: m,
|
|
908
|
+
path: _,
|
|
909
|
+
title: g,
|
|
910
|
+
order: p,
|
|
911
|
+
...h && h !== g ? { heading: h } : {},
|
|
912
|
+
...f.icon ? { icon: f.icon } : {},
|
|
913
|
+
...f.description ? { description: f.description } : {},
|
|
914
|
+
...l ? { draft: !0 } : {},
|
|
915
|
+
...v
|
|
710
916
|
};
|
|
711
|
-
|
|
917
|
+
c.push(y);
|
|
712
918
|
}
|
|
713
919
|
}
|
|
714
|
-
return
|
|
920
|
+
return c.sort((e, t) => e.order - t.order || e.slug.localeCompare(t.slug)), c;
|
|
715
921
|
}
|
|
716
|
-
var
|
|
717
|
-
|
|
922
|
+
var gt, _t = b((() => {
|
|
923
|
+
gt = new Set([
|
|
718
924
|
`slug`,
|
|
719
925
|
`path`,
|
|
720
926
|
`title`,
|
|
@@ -725,62 +931,76 @@ var it, at = v((() => {
|
|
|
725
931
|
`children`,
|
|
726
932
|
`headings`
|
|
727
933
|
]);
|
|
934
|
+
})), G, K = b((() => {
|
|
935
|
+
G = class {
|
|
936
|
+
watch(e) {}
|
|
937
|
+
unwatch() {}
|
|
938
|
+
};
|
|
728
939
|
}));
|
|
729
|
-
function
|
|
940
|
+
function vt(e) {
|
|
730
941
|
let t = e.endsWith(`.draft`) ? e.slice(0, -6) : e, n = t.match(/^(\d+)\.(.+)$/);
|
|
731
942
|
return n ? n[2] : t;
|
|
732
943
|
}
|
|
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
|
-
|
|
944
|
+
async function yt(e, t) {
|
|
945
|
+
let n = /* @__PURE__ */ new Map(), r = await readdir(t, { withFileTypes: !0 });
|
|
946
|
+
for (let i of r) {
|
|
947
|
+
if (i.name.startsWith(`.`) || i.name.startsWith(`_`) || i.name === `node_modules` || i.name === `dist`) continue;
|
|
948
|
+
let r = join(t, i.name);
|
|
949
|
+
if (i.isDirectory()) {
|
|
950
|
+
let t = vt(i.name), a = await yt(e === `/` ? `/${t}` : `${e}/${t}`, r);
|
|
951
|
+
for (let [e, t] of a) n.set(e, t);
|
|
952
|
+
} else if (extname(i.name) === `.md`) {
|
|
953
|
+
let t = vt(i.name.replace(/\.md$/, ``)), a = t === `index` ? `` : t, o = a === `` ? e === `/` ? `/` : e : e === `/` ? `/${a}` : `${e}/${a}`;
|
|
954
|
+
n.set(o, r);
|
|
744
955
|
}
|
|
745
956
|
}
|
|
746
|
-
return
|
|
957
|
+
return n;
|
|
747
958
|
}
|
|
748
|
-
async function
|
|
749
|
-
let
|
|
959
|
+
async function bt(e, t) {
|
|
960
|
+
let n;
|
|
750
961
|
try {
|
|
751
|
-
|
|
962
|
+
n = JSON.parse(await readFile(join(t, `_navigation.json`), `utf8`));
|
|
752
963
|
} catch {
|
|
753
964
|
return;
|
|
754
965
|
}
|
|
755
|
-
|
|
966
|
+
xt(e, n);
|
|
756
967
|
}
|
|
757
|
-
function
|
|
968
|
+
function xt(e, t) {
|
|
758
969
|
let n = new Map(t.map((e, t) => [e.path, t]));
|
|
759
970
|
e.sort((e, t) => (n.get(e.path) ?? Infinity) - (n.get(t.path) ?? Infinity));
|
|
760
971
|
for (let n of e) if (n.children?.length) {
|
|
761
972
|
let e = t.find((e) => e.path === n.path);
|
|
762
|
-
e?.children &&
|
|
973
|
+
e?.children && xt(n.children, e.children);
|
|
763
974
|
}
|
|
764
975
|
}
|
|
765
|
-
var
|
|
766
|
-
|
|
976
|
+
var q, J = b((() => {
|
|
977
|
+
_t(), K(), q = class extends G {
|
|
767
978
|
dir;
|
|
979
|
+
_watcher;
|
|
768
980
|
constructor(e) {
|
|
769
981
|
super(), this.dir = e;
|
|
770
982
|
}
|
|
771
983
|
async load() {
|
|
772
|
-
let e = await
|
|
773
|
-
return await
|
|
984
|
+
let e = await mt(this.dir);
|
|
985
|
+
return await bt(e, this.dir), {
|
|
774
986
|
tree: e,
|
|
775
|
-
fileMap: await
|
|
987
|
+
fileMap: await yt(`/`, this.dir)
|
|
776
988
|
};
|
|
777
989
|
}
|
|
778
990
|
async readContent(e) {
|
|
779
991
|
return readFile(e, `utf8`);
|
|
780
992
|
}
|
|
993
|
+
watch(e) {
|
|
994
|
+
this.unwatch(), this._watcher = watch(this.dir, { recursive: !0 }, (t, n) => {
|
|
995
|
+
!n || n.startsWith(`.`) || n.startsWith(`_`) || e({ path: `/` + n });
|
|
996
|
+
});
|
|
997
|
+
}
|
|
998
|
+
unwatch() {
|
|
999
|
+
this._watcher?.close(), this._watcher = void 0;
|
|
1000
|
+
}
|
|
781
1001
|
};
|
|
782
|
-
})),
|
|
783
|
-
|
|
1002
|
+
})), Y, St = b((() => {
|
|
1003
|
+
K(), J(), Y = class extends G {
|
|
784
1004
|
src;
|
|
785
1005
|
options;
|
|
786
1006
|
_fs;
|
|
@@ -803,15 +1023,15 @@ var J, Y = v((() => {
|
|
|
803
1023
|
break;
|
|
804
1024
|
}
|
|
805
1025
|
}
|
|
806
|
-
return this._fs = new
|
|
1026
|
+
return this._fs = new q(i), this._fs.load();
|
|
807
1027
|
}
|
|
808
1028
|
async readContent(e) {
|
|
809
|
-
if (!this._fs) throw Error(`
|
|
1029
|
+
if (!this._fs) throw Error(`GitSource: call load() before readContent()`);
|
|
810
1030
|
return this._fs.readContent(e);
|
|
811
1031
|
}
|
|
812
1032
|
};
|
|
813
1033
|
}));
|
|
814
|
-
function
|
|
1034
|
+
function Ct(e) {
|
|
815
1035
|
let t = e, n = ``;
|
|
816
1036
|
if (t.startsWith(`@`)) {
|
|
817
1037
|
let e = t.indexOf(`/`, t.indexOf(`/`) + 1);
|
|
@@ -827,12 +1047,12 @@ function ft(e) {
|
|
|
827
1047
|
subdir: n
|
|
828
1048
|
};
|
|
829
1049
|
}
|
|
830
|
-
async function
|
|
1050
|
+
async function wt(e, t) {
|
|
831
1051
|
let n = t ? `https://registry.npmjs.org/${e}/${t}` : `https://registry.npmjs.org/${e}`, r = await fetch(n);
|
|
832
1052
|
if (!r.ok) throw Error(`Failed to fetch package info for ${e}${t ? `@${t}` : ``}: ${r.status} ${r.statusText}`);
|
|
833
1053
|
return r.json();
|
|
834
1054
|
}
|
|
835
|
-
function
|
|
1055
|
+
function Tt(e) {
|
|
836
1056
|
let t;
|
|
837
1057
|
try {
|
|
838
1058
|
t = new URL(e);
|
|
@@ -845,15 +1065,15 @@ function mt(e) {
|
|
|
845
1065
|
let r = t.pathname.match(/^\/((?:@[^/]+\/)?[^/]+)\/?$/);
|
|
846
1066
|
if (r && !/^(package|settings|signup|login|org|search)$/.test(r[1])) return r[1];
|
|
847
1067
|
}
|
|
848
|
-
var
|
|
849
|
-
function
|
|
1068
|
+
var Et = b((() => {}));
|
|
1069
|
+
function Dt(e) {
|
|
850
1070
|
try {
|
|
851
1071
|
return new URL(e).hostname;
|
|
852
1072
|
} catch {
|
|
853
1073
|
return e;
|
|
854
1074
|
}
|
|
855
1075
|
}
|
|
856
|
-
function
|
|
1076
|
+
function Ot(e, t, n, r) {
|
|
857
1077
|
let i = e.split(`
|
|
858
1078
|
`), a = [], o = ``, s = ``, c, l = 0, u = 0;
|
|
859
1079
|
for (let e of i) {
|
|
@@ -868,7 +1088,7 @@ function _t(e, t, n, r) {
|
|
|
868
1088
|
}
|
|
869
1089
|
if (r.startsWith(`## `)) {
|
|
870
1090
|
c = {
|
|
871
|
-
slug:
|
|
1091
|
+
slug: kt(r.slice(3).trim()),
|
|
872
1092
|
path: `/_section/${l}`,
|
|
873
1093
|
title: r.slice(3).trim(),
|
|
874
1094
|
order: l++,
|
|
@@ -900,20 +1120,20 @@ function _t(e, t, n, r) {
|
|
|
900
1120
|
let d = {
|
|
901
1121
|
slug: ``,
|
|
902
1122
|
path: `/`,
|
|
903
|
-
title: o ||
|
|
1123
|
+
title: o || Dt(t),
|
|
904
1124
|
order: 0,
|
|
905
1125
|
...s ? { description: s } : {},
|
|
906
1126
|
...a.length > 0 ? { children: a } : {}
|
|
907
1127
|
};
|
|
908
1128
|
return n.set(`/`, `/`), r.set(`/`, e), [d];
|
|
909
1129
|
}
|
|
910
|
-
function
|
|
1130
|
+
function kt(e) {
|
|
911
1131
|
return e.toLowerCase().replace(/[^a-z\d]+/g, `-`).replace(/^-|-$/g, ``);
|
|
912
1132
|
}
|
|
913
|
-
function
|
|
1133
|
+
function At(e, t) {
|
|
914
1134
|
let n = /* @__PURE__ */ new Set(), r = [], i = /* @__PURE__ */ new Set(), a = 0, o = /\[([^\]]+)]\(([^)]+)\)/g, s;
|
|
915
1135
|
for (; (s = o.exec(e)) !== null;) {
|
|
916
|
-
let e = s[1], o = s[2], c =
|
|
1136
|
+
let e = s[1], o = s[2], c = jt(o, t);
|
|
917
1137
|
if (!c) continue;
|
|
918
1138
|
let l = c.pathname.replace(/\/+$/, ``) || `/`, u = /\/index\.md$/i.test(l) || l.endsWith(`/index`);
|
|
919
1139
|
if (l = l.replace(/\/index\.md$/i, ``).replace(/\/index$/, ``).replace(/\.md$/i, ``), l ||= `/`, l === `/` || n.has(l)) continue;
|
|
@@ -931,7 +1151,7 @@ function yt(e, t) {
|
|
|
931
1151
|
tocPaths: i
|
|
932
1152
|
};
|
|
933
1153
|
}
|
|
934
|
-
function
|
|
1154
|
+
function jt(e, t) {
|
|
935
1155
|
try {
|
|
936
1156
|
let n = new URL(t), r = new URL(e, t);
|
|
937
1157
|
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 +1159,8 @@ function bt(e, t) {
|
|
|
939
1159
|
return;
|
|
940
1160
|
}
|
|
941
1161
|
}
|
|
942
|
-
var
|
|
943
|
-
|
|
1162
|
+
var Mt, Nt = b((() => {
|
|
1163
|
+
K(), Et(), Mt = class extends G {
|
|
944
1164
|
url;
|
|
945
1165
|
options;
|
|
946
1166
|
_contentCache = /* @__PURE__ */ new Map();
|
|
@@ -948,28 +1168,28 @@ var xt, St = v((() => {
|
|
|
948
1168
|
_fileMap = /* @__PURE__ */ new Map();
|
|
949
1169
|
_npmPackage;
|
|
950
1170
|
constructor(e, t = {}) {
|
|
951
|
-
super(), this.url = e.replace(/\/+$/, ``), this._npmPackage =
|
|
1171
|
+
super(), this.url = e.replace(/\/+$/, ``), this._npmPackage = Tt(this.url), this.options = t;
|
|
952
1172
|
}
|
|
953
1173
|
async load() {
|
|
954
1174
|
if (this._npmPackage) return this._loadNpm(this._npmPackage);
|
|
955
|
-
let
|
|
956
|
-
if (
|
|
1175
|
+
let t = await this._tryLlmsTxt();
|
|
1176
|
+
if (t) return this._tree = t, {
|
|
957
1177
|
tree: this._tree,
|
|
958
1178
|
fileMap: this._fileMap
|
|
959
1179
|
};
|
|
960
|
-
let
|
|
961
|
-
this._contentCache.set(`/`,
|
|
962
|
-
let
|
|
1180
|
+
let n = await this._fetch(this.url);
|
|
1181
|
+
this._contentCache.set(`/`, n);
|
|
1182
|
+
let r = {
|
|
963
1183
|
slug: ``,
|
|
964
1184
|
path: `/`,
|
|
965
|
-
title: parseMeta(
|
|
1185
|
+
title: parseMeta(n).title || Dt(this.url),
|
|
966
1186
|
order: 0
|
|
967
|
-
}, { entries:
|
|
968
|
-
if (
|
|
969
|
-
|
|
970
|
-
for (let e of
|
|
1187
|
+
}, { entries: i, tocPaths: a } = At(n, this.url);
|
|
1188
|
+
if (i.length > 0) {
|
|
1189
|
+
r.children = i;
|
|
1190
|
+
for (let e of i) this._fileMap.set(e.path, e.path);
|
|
971
1191
|
}
|
|
972
|
-
return this._tree = [
|
|
1192
|
+
return this._tree = [r], this._fileMap.set(`/`, `/`), a.size > 0 && await this._crawlTocPages(i, a), {
|
|
973
1193
|
tree: this._tree,
|
|
974
1194
|
fileMap: this._fileMap
|
|
975
1195
|
};
|
|
@@ -992,7 +1212,7 @@ var xt, St = v((() => {
|
|
|
992
1212
|
} catch {
|
|
993
1213
|
return;
|
|
994
1214
|
}
|
|
995
|
-
if (t.trimStart().startsWith(`#`)) return
|
|
1215
|
+
if (t.trimStart().startsWith(`#`)) return Ot(t, e, this._fileMap, this._contentCache);
|
|
996
1216
|
}
|
|
997
1217
|
async readContent(e) {
|
|
998
1218
|
let t = this._contentCache.get(e);
|
|
@@ -1007,7 +1227,7 @@ var xt, St = v((() => {
|
|
|
1007
1227
|
if (!t.has(e.path)) return;
|
|
1008
1228
|
let i = `${r}${e.path}`, a = await this._fetch(i);
|
|
1009
1229
|
this._contentCache.set(e.path, a);
|
|
1010
|
-
let { entries: o, tocPaths: s } =
|
|
1230
|
+
let { entries: o, tocPaths: s } = At(a, i);
|
|
1011
1231
|
if (o.length > 0) {
|
|
1012
1232
|
e.children = o;
|
|
1013
1233
|
for (let e of o) this._fileMap.set(e.path, e.path);
|
|
@@ -1015,18 +1235,18 @@ var xt, St = v((() => {
|
|
|
1015
1235
|
}
|
|
1016
1236
|
}));
|
|
1017
1237
|
}
|
|
1018
|
-
async _loadNpm(
|
|
1019
|
-
let
|
|
1238
|
+
async _loadNpm(t) {
|
|
1239
|
+
let n;
|
|
1020
1240
|
try {
|
|
1021
|
-
let
|
|
1022
|
-
|
|
1023
|
-
} catch (
|
|
1024
|
-
|
|
1241
|
+
let e = await wt(t);
|
|
1242
|
+
n = e.readme || `# ${e.name || t}\n\n${e.description || `No README available.`}`;
|
|
1243
|
+
} catch (e) {
|
|
1244
|
+
n = `# Fetch Error\n\nFailed to fetch package \`${t}\`\n\n> ${e instanceof Error ? e.message : String(e)}`;
|
|
1025
1245
|
}
|
|
1026
|
-
return this._contentCache.set(`/`,
|
|
1246
|
+
return this._contentCache.set(`/`, n), this._fileMap.set(`/`, `/`), this._tree = [{
|
|
1027
1247
|
slug: ``,
|
|
1028
1248
|
path: `/`,
|
|
1029
|
-
title: parseMeta(
|
|
1249
|
+
title: parseMeta(n).title || t,
|
|
1030
1250
|
order: 0
|
|
1031
1251
|
}], {
|
|
1032
1252
|
tree: this._tree,
|
|
@@ -1047,8 +1267,8 @@ var xt, St = v((() => {
|
|
|
1047
1267
|
}
|
|
1048
1268
|
};
|
|
1049
1269
|
}));
|
|
1050
|
-
async function
|
|
1051
|
-
let { name: t, version: n, subdir: r } =
|
|
1270
|
+
async function Pt(e) {
|
|
1271
|
+
let { name: t, version: n, subdir: r } = Ct(e), i = await wt(t, n);
|
|
1052
1272
|
return {
|
|
1053
1273
|
name: i.name,
|
|
1054
1274
|
version: i.version,
|
|
@@ -1056,8 +1276,8 @@ async function Ct(e) {
|
|
|
1056
1276
|
tar: i.dist.tarball
|
|
1057
1277
|
};
|
|
1058
1278
|
}
|
|
1059
|
-
var
|
|
1060
|
-
|
|
1279
|
+
var X, Ft = b((() => {
|
|
1280
|
+
K(), J(), Et(), X = class extends G {
|
|
1061
1281
|
src;
|
|
1062
1282
|
options;
|
|
1063
1283
|
_fs;
|
|
@@ -1070,7 +1290,7 @@ var wt, Tt = v((() => {
|
|
|
1070
1290
|
dir: r,
|
|
1071
1291
|
force: !0,
|
|
1072
1292
|
install: !1,
|
|
1073
|
-
providers: { npm:
|
|
1293
|
+
providers: { npm: Pt },
|
|
1074
1294
|
registry: !1
|
|
1075
1295
|
});
|
|
1076
1296
|
let a = r;
|
|
@@ -1081,68 +1301,86 @@ var wt, Tt = v((() => {
|
|
|
1081
1301
|
break;
|
|
1082
1302
|
}
|
|
1083
1303
|
}
|
|
1084
|
-
return this._fs = new
|
|
1304
|
+
return this._fs = new q(a), this._fs.load();
|
|
1085
1305
|
}
|
|
1086
1306
|
async readContent(e) {
|
|
1087
|
-
if (!this._fs) throw Error(`
|
|
1307
|
+
if (!this._fs) throw Error(`NpmSource: call load() before readContent()`);
|
|
1088
1308
|
return this._fs.readContent(e);
|
|
1089
1309
|
}
|
|
1090
1310
|
};
|
|
1091
|
-
})), Et = v((() => {
|
|
1092
|
-
q(), Y(), dt(), St(), Tt();
|
|
1093
1311
|
}));
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1312
|
+
function It(e) {
|
|
1313
|
+
return e.startsWith(`http://`) || e.startsWith(`https://`) ? new Mt(e) : e.startsWith(`gh:`) ? new Y(e) : e.startsWith(`npm:`) ? new X(e) : new q(e);
|
|
1314
|
+
}
|
|
1315
|
+
var Lt = b((() => {
|
|
1316
|
+
J(), St(), Nt(), Ft(), K();
|
|
1317
|
+
}));
|
|
1318
|
+
async function Rt(e, t, n = {}) {
|
|
1319
|
+
let i = new W(typeof e == `string` ? It(e) : e);
|
|
1320
|
+
return await i.load(), await mkdir(t, { recursive: !0 }), await zt(i, t, n), i;
|
|
1321
|
+
}
|
|
1322
|
+
async function zt(e, i, a = {}) {
|
|
1323
|
+
let o = e.flat.find((e) => e.entry.path === `/`), c = [`# ${a.title ?? o?.entry.title ?? `Table of Contents`}`, ``], l = /* @__PURE__ */ new Set(), u = /* @__PURE__ */ new Map();
|
|
1324
|
+
Vt(e.tree, ``, u);
|
|
1325
|
+
let f = /* @__PURE__ */ new Set();
|
|
1326
|
+
Bt(e.tree, f);
|
|
1327
|
+
for (let o of e.flat) {
|
|
1328
|
+
if ((a.filter ? !a.filter(o) : o.entry.page === !1) || Ht.has(o.entry.path)) continue;
|
|
1329
|
+
let m = await e.getContent(o);
|
|
1330
|
+
if (m === void 0) continue;
|
|
1331
|
+
let h = a.plainText ? renderToText(m) : renderToMarkdown(m), g = u.get(o.entry.path) ?? o.entry.path, _ = o.entry.path === `/` || f.has(o.entry.path) ? o.entry.path === `/` ? `/index.md` : `${g}/index.md` : g.endsWith(`.md`) ? g : `${g}.md`, v = join(i, _);
|
|
1332
|
+
await mkdir(dirname(v), { recursive: !0 }), await writeFile(v, h, `utf8`), l.add(_.slice(1));
|
|
1333
|
+
let y = ` `.repeat(o.depth), b = o.entry.description ? `: ${o.entry.description}` : ``;
|
|
1334
|
+
c.push(`${y}- [${o.entry.title}](.${_})${b}`);
|
|
1105
1335
|
}
|
|
1106
|
-
let
|
|
1107
|
-
l.has(
|
|
1336
|
+
let m = a.tocFile ?? `README.md`;
|
|
1337
|
+
l.has(m) && (m = `_${m}`), await writeFile(join(i, m), c.join(`
|
|
1108
1338
|
`) + `
|
|
1109
|
-
`, `utf8`), await writeFile(join(n, `_navigation.json`), JSON.stringify(t.tree, null, 2) + `
|
|
1110
1339
|
`, `utf8`);
|
|
1111
1340
|
}
|
|
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
|
-
|
|
1341
|
+
function Bt(e, t) {
|
|
1342
|
+
for (let n of e) n.children?.length && (t.add(n.path), Bt(n.children, t));
|
|
1343
|
+
}
|
|
1344
|
+
function Vt(e, t, n) {
|
|
1345
|
+
for (let [r, i] of e.entries()) {
|
|
1346
|
+
let e = `${t}/${r}.${i.slug || `index`}`;
|
|
1347
|
+
n.set(i.path, e), i.children?.length && Vt(i.children, e, n);
|
|
1348
|
+
}
|
|
1349
|
+
}
|
|
1350
|
+
var Ht, Ut = b((() => {
|
|
1351
|
+
ot(), Lt(), Ht = new Set([`/llms.txt`, `/llms-full.txt`]);
|
|
1352
|
+
})), Wt = x({
|
|
1353
|
+
Collection: () => W,
|
|
1354
|
+
FSSource: () => q,
|
|
1355
|
+
GitSource: () => Y,
|
|
1356
|
+
HTTPSource: () => Mt,
|
|
1357
|
+
NpmSource: () => X,
|
|
1358
|
+
Source: () => G,
|
|
1359
|
+
exportSource: () => Rt,
|
|
1360
|
+
extractSnippets: () => st,
|
|
1361
|
+
resolveSource: () => It,
|
|
1362
|
+
writeCollection: () => zt
|
|
1363
|
+
}), Gt = b((() => {
|
|
1364
|
+
ot(), ct(), Lt(), Ut();
|
|
1127
1365
|
}));
|
|
1128
|
-
async function
|
|
1129
|
-
if (
|
|
1130
|
-
if (!
|
|
1131
|
-
let {
|
|
1132
|
-
|
|
1366
|
+
async function Z(e) {
|
|
1367
|
+
if (Q) return Q;
|
|
1368
|
+
if (!Q) {
|
|
1369
|
+
let { Collection: t, resolveSource: n } = await Promise.resolve().then(() => (Gt(), Wt));
|
|
1370
|
+
Q = new t(e?.source || n(process.env.DOCS_SOURCE || `gh:nitrojs/nitro/docs`)), await Q.load(), Q.watch();
|
|
1133
1371
|
}
|
|
1134
|
-
return
|
|
1372
|
+
return Q;
|
|
1135
1373
|
}
|
|
1136
|
-
var
|
|
1137
|
-
|
|
1374
|
+
var Q, $ = b((() => {})), Kt = x({ default: () => qt }), qt, Jt = b((() => {
|
|
1375
|
+
U(), $(), qt = D(async () => ({
|
|
1138
1376
|
title: `Nitro`,
|
|
1139
|
-
toc: (await
|
|
1377
|
+
toc: (await Z()).tree
|
|
1140
1378
|
}));
|
|
1141
|
-
})),
|
|
1142
|
-
async function
|
|
1379
|
+
})), Yt = x({ default: () => $t });
|
|
1380
|
+
async function Xt(e) {
|
|
1143
1381
|
let t = /<pre><code class="language-(\w+)">([\s\S]*?)<\/code><\/pre>/g, n = [];
|
|
1144
1382
|
for (let r of e.matchAll(t)) {
|
|
1145
|
-
let [e, t, i] = r, a =
|
|
1383
|
+
let [e, t, i] = r, a = Qt(i);
|
|
1146
1384
|
n.push(highlightText(a, t, !1).then((n) => ({
|
|
1147
1385
|
match: e,
|
|
1148
1386
|
result: `<pre><code class="language-${t}">${n}</code></pre>`
|
|
@@ -1155,95 +1393,56 @@ async function Lt(e) {
|
|
|
1155
1393
|
for (let { match: e, result: t } of await Promise.all(n)) r = r.replace(e, t);
|
|
1156
1394
|
return r;
|
|
1157
1395
|
}
|
|
1158
|
-
function
|
|
1396
|
+
function Zt(e) {
|
|
1159
1397
|
return e.replace(/<(h[1-6])>(.*?)<\/\1>/g, (e, t, n) => {
|
|
1160
1398
|
let r = n.replace(/<[^>]+>/g, ``).trim().toLowerCase().replace(/[^\w\s-]/g, ``).replace(/\s+/g, `-`);
|
|
1161
1399
|
return `<${t} id="${r}"><a href="#${r}">#</a>${n}</${t}>`;
|
|
1162
1400
|
});
|
|
1163
1401
|
}
|
|
1164
|
-
function
|
|
1402
|
+
function Qt(e) {
|
|
1165
1403
|
return e.replace(/&/g, `&`).replace(/</g, `<`).replace(/>/g, `>`).replace(/"/g, `"`).replace(/'/g, `'`);
|
|
1166
1404
|
}
|
|
1167
|
-
var
|
|
1168
|
-
|
|
1169
|
-
let { path: t } =
|
|
1405
|
+
var $t, en = b((async () => {
|
|
1406
|
+
U(), $(), await init(), $t = D(async (e) => {
|
|
1407
|
+
let { path: t } = pe(e);
|
|
1170
1408
|
if (!t) return { error: `Missing ?path= query parameter` };
|
|
1171
|
-
let n = await (await
|
|
1409
|
+
let n = await (await Z()).resolvePage(t);
|
|
1172
1410
|
return n.raw ? {
|
|
1173
1411
|
path: t,
|
|
1174
|
-
html:
|
|
1412
|
+
html: Zt(await Xt(renderToHtml(n.raw)))
|
|
1175
1413
|
} : {
|
|
1176
1414
|
error: `Page not found`,
|
|
1177
1415
|
path: t
|
|
1178
1416
|
};
|
|
1179
1417
|
});
|
|
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);
|
|
1418
|
+
})), tn = x({ default: () => nn }), nn, rn = b((() => {
|
|
1419
|
+
U(), $(), Gt(), nn = D(async (e) => {
|
|
1420
|
+
let { q: t, limit: n } = pe(e);
|
|
1202
1421
|
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
|
|
1422
|
+
let r = await Z(), i = Math.min(Number(n) || 20, 50), a = t.toLowerCase().split(/\s+/).filter(Boolean), o = [];
|
|
1423
|
+
for await (let e of r.search(t)) {
|
|
1424
|
+
let t = await r.getContent(e.flat), n = t ? renderToText$1(t) : ``, i = n ? st(n, a) : [];
|
|
1425
|
+
o.push({
|
|
1426
|
+
path: e.flat.entry.path,
|
|
1427
|
+
title: e.flat.entry.title,
|
|
1428
|
+
heading: e.heading,
|
|
1429
|
+
snippets: i,
|
|
1430
|
+
score: e.score
|
|
1234
1431
|
});
|
|
1235
1432
|
}
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
n
|
|
1242
|
-
}
|
|
1243
|
-
return
|
|
1433
|
+
return o.sort((e, t) => e.score - t.score), { results: o.slice(0, i).map(({ score: e, ...t }) => t) };
|
|
1434
|
+
});
|
|
1435
|
+
})), an = x({ default: () => on }), on, sn = b((() => {
|
|
1436
|
+
U(), $(), on = D(async (e) => {
|
|
1437
|
+
let t = await Z(), n = ve(e), r = t.onChange((e) => {
|
|
1438
|
+
n.push(JSON.stringify({ path: e }));
|
|
1439
|
+
});
|
|
1440
|
+
return n.onClosed(() => {
|
|
1441
|
+
r();
|
|
1442
|
+
}), n.send();
|
|
1244
1443
|
});
|
|
1245
|
-
})),
|
|
1246
|
-
|
|
1444
|
+
})), cn, ln = b((() => {
|
|
1445
|
+
B(), cn = () => new L(`<!doctype html>
|
|
1247
1446
|
<html lang="en">
|
|
1248
1447
|
<head>
|
|
1249
1448
|
<meta charset="UTF-8" />
|
|
@@ -1251,8 +1450,8 @@ var Wt, Gt = v((() => {
|
|
|
1251
1450
|
<link rel="icon" type="image/svg+xml" href="/assets/logo-BLkVGWak.svg" />
|
|
1252
1451
|
<title></title>
|
|
1253
1452
|
<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>
|
|
1255
|
-
<script type="module" crossorigin src="/assets/index-
|
|
1453
|
+
@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>
|
|
1454
|
+
<script type="module" crossorigin src="/assets/index-CIhhqrBM.js"><\/script>
|
|
1256
1455
|
</head>
|
|
1257
1456
|
<body class="h-screen flex flex-col bg-white text-gray-900 dark:bg-gray-950 dark:text-gray-200">
|
|
1258
1457
|
<!-- Header -->
|
|
@@ -1379,19 +1578,19 @@ var Wt, Gt = v((() => {
|
|
|
1379
1578
|
</body>
|
|
1380
1579
|
</html>
|
|
1381
1580
|
`, { headers: { "content-type": `text/html; charset=utf-8` } });
|
|
1382
|
-
})),
|
|
1383
|
-
function
|
|
1384
|
-
return
|
|
1581
|
+
})), un = x({ default: () => dn });
|
|
1582
|
+
function dn(e) {
|
|
1583
|
+
return cn(e.req);
|
|
1385
1584
|
}
|
|
1386
|
-
var
|
|
1387
|
-
|
|
1585
|
+
var fn = b((() => {
|
|
1586
|
+
ln();
|
|
1388
1587
|
}));
|
|
1389
|
-
|
|
1390
|
-
var
|
|
1588
|
+
B();
|
|
1589
|
+
var pn = (() => {
|
|
1391
1590
|
let e = [{
|
|
1392
1591
|
name: `headers`,
|
|
1393
1592
|
route: `/assets/**`,
|
|
1394
|
-
handler:
|
|
1593
|
+
handler: Je,
|
|
1395
1594
|
options: { "cache-control": `public, max-age=31536000, immutable` }
|
|
1396
1595
|
}];
|
|
1397
1596
|
return (t, n) => {
|
|
@@ -1403,38 +1602,42 @@ var Zt = (() => {
|
|
|
1403
1602
|
params: { _: i.slice(2).join(`/`) }
|
|
1404
1603
|
}), r;
|
|
1405
1604
|
};
|
|
1406
|
-
})(),
|
|
1605
|
+
})(), mn = O(() => Promise.resolve().then(() => (Jt(), Kt))), hn = O(() => en().then(() => Yt)), gn = O(() => Promise.resolve().then(() => (rn(), tn))), _n = O(() => Promise.resolve().then(() => (sn(), an))), vn = O(() => Promise.resolve().then(() => (fn(), un))), yn = (() => {
|
|
1407
1606
|
let e = {
|
|
1408
1607
|
route: `/api/meta`,
|
|
1409
|
-
handler:
|
|
1608
|
+
handler: mn
|
|
1410
1609
|
}, t = {
|
|
1411
1610
|
route: `/api/page`,
|
|
1412
|
-
handler:
|
|
1611
|
+
handler: hn
|
|
1413
1612
|
}, n = {
|
|
1414
1613
|
route: `/api/search`,
|
|
1415
|
-
handler:
|
|
1614
|
+
handler: gn
|
|
1416
1615
|
}, r = {
|
|
1616
|
+
route: `/api/watch`,
|
|
1617
|
+
handler: _n
|
|
1618
|
+
}, i = {
|
|
1417
1619
|
route: `/**`,
|
|
1418
|
-
handler:
|
|
1620
|
+
handler: vn
|
|
1419
1621
|
};
|
|
1420
|
-
return (
|
|
1421
|
-
if (
|
|
1422
|
-
if (
|
|
1423
|
-
if (
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1622
|
+
return (a, o) => {
|
|
1623
|
+
if (o.charCodeAt(o.length - 1) === 47 && (o = o.slice(0, -1) || `/`), o === `/api/meta`) return { data: e };
|
|
1624
|
+
if (o === `/api/page`) return { data: t };
|
|
1625
|
+
if (o === `/api/search`) return { data: n };
|
|
1626
|
+
if (o === `/api/watch`) return { data: r };
|
|
1627
|
+
let s = o.split(`/`);
|
|
1628
|
+
return s.length, {
|
|
1629
|
+
data: i,
|
|
1630
|
+
params: { _: s.slice(1).join(`/`) }
|
|
1428
1631
|
};
|
|
1429
1632
|
};
|
|
1430
|
-
})(),
|
|
1431
|
-
|
|
1432
|
-
var
|
|
1433
|
-
function
|
|
1434
|
-
let e =
|
|
1435
|
-
return e || (e =
|
|
1436
|
-
}
|
|
1437
|
-
function
|
|
1633
|
+
})(), bn = [k(tt)].filter(Boolean);
|
|
1634
|
+
B();
|
|
1635
|
+
var xn = `default`;
|
|
1636
|
+
function Sn() {
|
|
1637
|
+
let e = Sn._instance;
|
|
1638
|
+
return e || (e = Sn._instance = Cn(), globalThis.__nitro__ = globalThis.__nitro__ || {}, globalThis.__nitro__[xn] = e, e);
|
|
1639
|
+
}
|
|
1640
|
+
function Cn() {
|
|
1438
1641
|
let e = (e, t) => {
|
|
1439
1642
|
if (t?.event) {
|
|
1440
1643
|
let n = t.event.req.context?.nitro?.errors;
|
|
@@ -1443,8 +1646,8 @@ function on() {
|
|
|
1443
1646
|
context: t
|
|
1444
1647
|
});
|
|
1445
1648
|
}
|
|
1446
|
-
}, t =
|
|
1447
|
-
return
|
|
1649
|
+
}, t = wn({ onError(e, t) {
|
|
1650
|
+
return Ie(e, t);
|
|
1448
1651
|
} });
|
|
1449
1652
|
return {
|
|
1450
1653
|
fetch: (e) => (e.context ||= {}, e.context.nitro = e.context.nitro || { errors: [] }, t.fetch(e)),
|
|
@@ -1453,19 +1656,19 @@ function on() {
|
|
|
1453
1656
|
captureError: e
|
|
1454
1657
|
};
|
|
1455
1658
|
}
|
|
1456
|
-
function
|
|
1457
|
-
let t = new
|
|
1458
|
-
return t[`~findRoute`] = (e) =>
|
|
1659
|
+
function wn(e) {
|
|
1660
|
+
let t = new Oe(e);
|
|
1661
|
+
return t[`~findRoute`] = (e) => yn(e.req.method, e.url.pathname), t[`~middleware`].push(...bn), t[`~getMiddleware`] = (e, n) => {
|
|
1459
1662
|
let r = e.url.pathname, i = e.req.method, a = [];
|
|
1460
1663
|
{
|
|
1461
|
-
let t =
|
|
1664
|
+
let t = Tn(i, r);
|
|
1462
1665
|
e.context.routeRules = t?.routeRules, t?.routeRuleMiddleware.length && a.push(...t.routeRuleMiddleware);
|
|
1463
1666
|
}
|
|
1464
1667
|
return a.push(...t[`~middleware`]), n?.data?.middleware?.length && a.push(...n.data.middleware), a;
|
|
1465
1668
|
}, t;
|
|
1466
1669
|
}
|
|
1467
|
-
function
|
|
1468
|
-
let n =
|
|
1670
|
+
function Tn(e, t) {
|
|
1671
|
+
let n = pn(e, t);
|
|
1469
1672
|
if (!n?.length) return { routeRuleMiddleware: [] };
|
|
1470
1673
|
let r = {};
|
|
1471
1674
|
for (let e of n) for (let t of e.data) {
|
|
@@ -1494,13 +1697,13 @@ function cn(e, t) {
|
|
|
1494
1697
|
routeRuleMiddleware: i
|
|
1495
1698
|
};
|
|
1496
1699
|
}
|
|
1497
|
-
|
|
1498
|
-
async function
|
|
1499
|
-
let t =
|
|
1700
|
+
$();
|
|
1701
|
+
async function En(e) {
|
|
1702
|
+
let t = Sn(), n = await Z(e);
|
|
1500
1703
|
return {
|
|
1501
1704
|
fetch: t.fetch,
|
|
1502
1705
|
docs: n
|
|
1503
1706
|
};
|
|
1504
1707
|
}
|
|
1505
1708
|
//#endregion
|
|
1506
|
-
export {
|
|
1709
|
+
export { En as createDocsServer };
|