mdzilla 0.1.0 → 0.2.0

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