mdzilla 0.0.6 → 0.2.0

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