typerighter 0.57.1 → 0.57.3

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,31 +1,31 @@
1
- import { B as e, D as t, F as n, H as r, I as i, O as a, R as o, T as s, U as c, Z as l, _ as u, b as d, c as f, d as p, et as m, g as h, h as g, i as _, nt as v, p as y, q as b, rt as x, v as S, x as ee, y as C, z as w } from "./shared-dB08amQA.js";
2
- import { n as T, t as E } from "./page-BbSO0VG8.js";
1
+ import { B as e, D as t, F as n, H as r, I as i, O as a, R as o, T as s, U as c, Z as l, _ as u, b as d, c as f, d as p, et as m, g as h, h as g, i as _, nt as v, p as y, q as b, rt as x, v as ee, x as S, y as C, z as w } from "./shared-dB08amQA.js";
2
+ import { n as T, t as E } from "./page-ChF2owpa.js";
3
3
  import { t as D } from "./temml-CjI4drVW.js";
4
- import { a as O, i as te, n as ne, r as re } from "./context-CPrHBM3S.js";
5
- import { t as ie } from "./es-B_QJMowB.js";
6
- import k, { resolve as A } from "node:path";
7
- import j from "picocolors";
8
- import ae from "@tailwindcss/vite";
9
- import oe from "@vitejs/plugin-vue";
10
- import { build as se, normalizePath as M } from "vite";
11
- import N, { readdir as ce } from "node:fs/promises";
12
- import { fileURLToPath as le } from "node:url";
13
- import ue from "node:os";
14
- import { Worker as de } from "node:worker_threads";
15
- import P, { createReadStream as fe, existsSync as pe, globSync as me, readFileSync as he, statSync as ge } from "node:fs";
16
- import { createRequire as _e } from "node:module";
17
- import { createChecker as ve, createCheckerByJson as ye } from "vue-component-meta";
18
- import { createHighlighter as be, guessEmbeddedLanguages as xe, isSpecialLang as Se } from "shiki";
4
+ import { a as O, i as k, n as A, r as te } from "./context-CLKZYp4U.js";
5
+ import { t as ne } from "./es-B_QJMowB.js";
6
+ import j, { resolve as M } from "node:path";
7
+ import N from "picocolors";
8
+ import re from "@tailwindcss/vite";
9
+ import ie from "@vitejs/plugin-vue";
10
+ import { build as ae, normalizePath as P } from "vite";
11
+ import F, { readdir as oe } from "node:fs/promises";
12
+ import { fileURLToPath as se } from "node:url";
13
+ import ce from "node:os";
14
+ import { Worker as le } from "node:worker_threads";
15
+ import I, { createReadStream as ue, existsSync as de, globSync as fe, readFileSync as pe, statSync as me } from "node:fs";
16
+ import { createRequire as he } from "node:module";
17
+ import { createChecker as ge, createCheckerByJson as _e } from "vue-component-meta";
18
+ import { createHighlighter as ve, guessEmbeddedLanguages as ye, isSpecialLang as be } from "shiki";
19
19
  // src/node/lib/worker-pool/index.ts
20
- var Ce = class {
20
+ var xe = class {
21
21
  workers = [];
22
22
  queue = [];
23
23
  destroyed = !1;
24
24
  startupError;
25
25
  constructor(e) {
26
- let t = e.concurrency ?? Math.max(1, Math.floor(ue.cpus().length / 2));
26
+ let t = e.concurrency ?? Math.max(1, Math.floor(ce.cpus().length / 2));
27
27
  for (let n = 0; n < t; n++) {
28
- let t = new de(e.filename, { workerData: e.workerData }), n = { worker: t };
28
+ let t = new le(e.filename, { workerData: e.workerData }), n = { worker: t };
29
29
  this.workers.push(n), t.on("message", (e) => {
30
30
  let t = n.pending;
31
31
  n.pending = void 0, e.error === void 0 ? t?.resolve(e.result) : t?.reject(Error(e.error)), this.dispatch(n);
@@ -62,7 +62,7 @@ var Ce = class {
62
62
  }
63
63
  };
64
64
  // src/node/build/seo/sitemap.ts
65
- function we(e, t, r, i) {
65
+ function Se(e, t, r, i) {
66
66
  let a = r ?? "";
67
67
  return `<?xml version="1.0" encoding="UTF-8"?>
68
68
  <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
@@ -73,7 +73,7 @@ ${e.map((e) => {
73
73
  </urlset>
74
74
  `;
75
75
  }
76
- function Te(e, t) {
76
+ function Ce(e, t) {
77
77
  return `User-agent: *
78
78
  Allow: /
79
79
 
@@ -81,7 +81,7 @@ Sitemap: ${e}${t}sitemap.xml
81
81
  `;
82
82
  }
83
83
  // src/node/build/seo/feed.ts
84
- function Ee(e, t, n, i, a, o) {
84
+ function we(e, t, n, i, a, o) {
85
85
  let s = [...e].filter((e) => e.fileMetadata.mtimeSecs > 0).sort((e, t) => t.fileMetadata.mtimeSecs - e.fileMetadata.mtimeSecs).slice(0, 50).map((e) => {
86
86
  let i = r(e.filepath), a = `${n}${t}${i}`, o = (/* @__PURE__ */ new Date(e.fileMetadata.mtimeSecs * 1e3)).toUTCString(), s = f(e.label ?? i), c = e.excerpt === void 0 ? "" : `<![CDATA[${e.excerpt}]]>`;
87
87
  return ` <item>
@@ -106,19 +106,19 @@ ${s}
106
106
  `;
107
107
  }
108
108
  // src/node/build/fonts.ts
109
- function De(e) {
110
- let t = k.basename(e);
109
+ function Te(e) {
110
+ let t = j.basename(e);
111
111
  return t.endsWith(".woff2") && t.includes("-latin-") && !t.includes("-latin-ext-");
112
112
  }
113
113
  // src/node/build/prerender.ts
114
- var Oe = 64;
115
- async function ke(e) {
116
- let { clientEntry: t, cssFiles: n, fontFiles: r } = await Me(e.clientOutDir), i = [n.map((t) => ` <link rel="stylesheet" href="${e.base}${t}">`).join("\n"), r.map((t) => ` <link rel="preload" as="font" type="font/woff2" crossorigin href="${e.base}${t}">`).join("\n")].filter(Boolean).join("\n") || void 0;
117
- e.pageRoutes.length >= Oe ? await Ae(e, t, i) : await je(e, t, i);
118
- }
119
- async function Ae(e, t, n) {
120
- let r = new Ce({
121
- filename: k.resolve(le(import.meta.url), "../prerenderWorker.js"),
114
+ var Ee = 64;
115
+ async function De(e) {
116
+ let { clientEntry: t, cssFiles: n, fontFiles: r } = await Ae(e.clientOutDir), i = [n.map((t) => ` <link rel="stylesheet" href="${e.base}${t}">`).join("\n"), r.map((t) => ` <link rel="preload" as="font" type="font/woff2" crossorigin href="${e.base}${t}">`).join("\n")].filter(Boolean).join("\n") || void 0;
117
+ e.pageRoutes.length >= Ee ? await Oe(e, t, i) : await ke(e, t, i);
118
+ }
119
+ async function Oe(e, t, n) {
120
+ let r = new xe({
121
+ filename: j.resolve(se(import.meta.url), "../prerenderWorker.js"),
122
122
  workerData: {
123
123
  ssrEntryPath: e.ssrEntryPath,
124
124
  base: e.base,
@@ -132,14 +132,14 @@ async function Ae(e, t, n) {
132
132
  }), i = 0, a = e.pageRoutes.length;
133
133
  try {
134
134
  await Promise.all(e.pageRoutes.map(async (t) => {
135
- let n = await r.run(t), o = k.join(e.outDir, n.fileName);
136
- await N.mkdir(k.dirname(o), { recursive: !0 }), await N.writeFile(o, n.html), i++, e.progress?.update(i, a);
135
+ let n = await r.run(t), o = j.join(e.outDir, n.fileName);
136
+ await F.mkdir(j.dirname(o), { recursive: !0 }), await F.writeFile(o, n.html), i++, e.progress?.update(i, a);
137
137
  }));
138
138
  } finally {
139
139
  await r.destroy();
140
140
  }
141
141
  }
142
- async function je(e, t, r) {
142
+ async function ke(e, t, r) {
143
143
  let i = await (await import(e.ssrEntryPath)).createRenderer(), a = e.pageRoutes.length, o = 0;
144
144
  for (let s of e.pageRoutes) {
145
145
  let c = await i(s), l = E(c.pageData, s, {
@@ -161,13 +161,13 @@ async function je(e, t, r) {
161
161
  jsonLdBlocks: l.jsonLdBlocks,
162
162
  headExtra: r,
163
163
  appContent: c.html
164
- }), d = l.isHomepage ? "index.html" : `${n(s)}.html`, f = k.join(e.outDir, d);
165
- await N.mkdir(k.dirname(f), { recursive: !0 }), await N.writeFile(f, u), o++, e.progress?.update(o, a);
164
+ }), d = l.isHomepage ? "index.html" : `${n(s)}.html`, f = j.join(e.outDir, d);
165
+ await F.mkdir(j.dirname(f), { recursive: !0 }), await F.writeFile(f, u), o++, e.progress?.update(o, a);
166
166
  }
167
167
  }
168
- async function Me(e) {
169
- let t = k.join(e, ".vite", "manifest.json"), n = await N.readFile(t, "utf-8"), r = JSON.parse(n), i = "", a = [], o = [];
170
- for (let e of Object.values(r)) e.isEntry ? (i = e.file, e.css && a.push(...e.css)) : De(e.file) && o.push(e.file);
168
+ async function Ae(e) {
169
+ let t = j.join(e, ".vite", "manifest.json"), n = await F.readFile(t, "utf-8"), r = JSON.parse(n), i = "", a = [], o = [];
170
+ for (let e of Object.values(r)) e.isEntry ? (i = e.file, e.css && a.push(...e.css)) : Te(e.file) && o.push(e.file);
171
171
  return {
172
172
  clientEntry: i,
173
173
  cssFiles: a,
@@ -175,7 +175,7 @@ async function Me(e) {
175
175
  };
176
176
  }
177
177
  // src/node/lib/codegen/app-entry.ts
178
- function Ne(e, t) {
178
+ function je(e, t) {
179
179
  let { rootDir: n = ".", mountPath: r = "", userComponents: i = [] } = e, a = [r, n === "." ? "" : n].filter(Boolean).join("/"), o = i.map((e) => `import ${e.name} from ${JSON.stringify(e.absolutePath)};`).join("\n"), s = i.map((e) => `app.component(${JSON.stringify(e.name)}, ${e.name});`).join("\n"), c = JSON.stringify({
180
180
  title: e.siteTitle,
181
181
  description: e.siteDescription,
@@ -233,11 +233,11 @@ if (import.meta.hot) {
233
233
  `;
234
234
  }
235
235
  // src/node/lib/codegen/theme.ts
236
- var F = "typerighter/client/theme-default";
237
- function Pe(e, t) {
238
- let n = e?.notFound ? `import CustomNotFound from ${JSON.stringify(t ? k.resolve(t, e.notFound) : e.notFound)};` : "", r = e?.notFound ? ", NotFound: CustomNotFound" : "";
236
+ var Me = "typerighter/client/theme-default";
237
+ function Ne(e, t) {
238
+ let n = e?.notFound ? `import CustomNotFound from ${JSON.stringify(t ? j.resolve(t, e.notFound) : e.notFound)};` : "", r = e?.notFound ? ", NotFound: CustomNotFound" : "";
239
239
  if (e?.component) {
240
- let i = t ? k.resolve(t, e.component) : e.component;
240
+ let i = t ? j.resolve(t, e.component) : e.component;
241
241
  return [
242
242
  `import CustomLayout from ${JSON.stringify(i)};`,
243
243
  n,
@@ -248,74 +248,74 @@ function Pe(e, t) {
248
248
  if (0 < i.length) {
249
249
  let e = i.map(([e, t]) => `${JSON.stringify(b(e))}: () => h(resolveComponent(${JSON.stringify(t)}))`).join(", ");
250
250
  return [
251
- `import DefaultTheme from ${JSON.stringify(F)};`,
251
+ `import DefaultTheme from ${JSON.stringify(Me)};`,
252
252
  "import { h, resolveComponent } from 'vue';",
253
253
  n,
254
254
  `export default { Layout: { render() { return h(DefaultTheme.Layout, null, { ${e} }); } }${r} };`
255
255
  ].filter(Boolean).join("\n");
256
256
  }
257
257
  return n ? [
258
- `import DefaultTheme from ${JSON.stringify(F)};`,
258
+ `import DefaultTheme from ${JSON.stringify(Me)};`,
259
259
  n,
260
260
  `export default { ...DefaultTheme${r} };`
261
- ].join("\n") : `export { default } from ${JSON.stringify(F)};`;
261
+ ].join("\n") : `export { default } from ${JSON.stringify(Me)};`;
262
262
  }
263
263
  // src/node/lib/components.ts
264
- function Fe(e) {
265
- let t = k.join(e, "tsconfig.json");
266
- if (P.existsSync(t)) return ve(t);
267
- let n = Ie(e);
268
- return ye(e, { compilerOptions: {
264
+ function Pe(e) {
265
+ let t = j.join(e, "tsconfig.json");
266
+ if (I.existsSync(t)) return ge(t);
267
+ let n = Fe(e);
268
+ return _e(e, { compilerOptions: {
269
269
  strict: !1,
270
270
  jsx: "preserve",
271
271
  jsxImportSource: "vue",
272
272
  ...n && { paths: n }
273
273
  } });
274
274
  }
275
- async function I(e, t) {
275
+ async function L(e, t) {
276
276
  let n = [];
277
277
  for (let r of e) if (r.kind === "dir") {
278
- let e = k.resolve(t, r.path), i;
278
+ let e = j.resolve(t, r.path), i;
279
279
  try {
280
- i = await ce(e, { withFileTypes: !0 });
280
+ i = await oe(e, { withFileTypes: !0 });
281
281
  } catch {
282
282
  continue;
283
283
  }
284
284
  for (let t of i) if (t.isFile() && t.name.endsWith(".vue")) n.push({
285
285
  name: t.name.slice(0, -4),
286
- absolutePath: k.join(e, t.name)
286
+ absolutePath: j.join(e, t.name)
287
287
  });
288
288
  else if (t.isDirectory()) {
289
- let r = k.join(e, t.name, "index.vue");
290
- P.existsSync(r) && n.push({
289
+ let r = j.join(e, t.name, "index.vue");
290
+ I.existsSync(r) && n.push({
291
291
  name: t.name,
292
292
  absolutePath: r
293
293
  });
294
294
  }
295
295
  } else n.push({
296
296
  name: r.name,
297
- absolutePath: k.resolve(t, r.source)
297
+ absolutePath: j.resolve(t, r.source)
298
298
  });
299
299
  return n;
300
300
  }
301
- function Ie(e) {
301
+ function Fe(e) {
302
302
  try {
303
- let t = _e(k.join(e, "package.json")), n = k.dirname(t.resolve("vue/package.json"));
303
+ let t = he(j.join(e, "package.json")), n = j.dirname(t.resolve("vue/package.json"));
304
304
  return {
305
305
  vue: [n],
306
- "vue/*": [k.join(n, "*")]
306
+ "vue/*": [j.join(n, "*")]
307
307
  };
308
308
  } catch {
309
309
  return;
310
310
  }
311
311
  }
312
312
  // src/node/lib/progress.ts
313
- var L = [
313
+ var R = [
314
314
  "◐",
315
315
  "◓",
316
316
  "◑",
317
317
  "◒"
318
- ], R = class {
318
+ ], Ie = class {
319
319
  logger;
320
320
  label;
321
321
  start;
@@ -323,8 +323,8 @@ var L = [
323
323
  constructor(e, t) {
324
324
  if (this.logger = e, this.label = t, this.start = performance.now(), process.stdout.isTTY) {
325
325
  let e = 0;
326
- process.stdout.write(j.cyan(`${L[0]} ${t}`)), this.spinnerInterval = setInterval(() => {
327
- e = (e + 1) % L.length, process.stdout.write(`\r${j.cyan(`${L[e]} ${this.label}`)}`);
326
+ process.stdout.write(N.cyan(`${R[0]} ${t}`)), this.spinnerInterval = setInterval(() => {
327
+ e = (e + 1) % R.length, process.stdout.write(`\r${N.cyan(`${R[e]} ${this.label}`)}`);
328
328
  }, 120).unref();
329
329
  } else this.logger.start(t);
330
330
  }
@@ -347,48 +347,50 @@ function Le(e) {
347
347
  }
348
348
  // src/node/build/index.ts
349
349
  async function Re(e, t = {}) {
350
- let { root: n, logger: i } = e, a = k.resolve(n, t.outDir ?? "dist"), o = k.join(a, ".client"), s = k.join(a, ".server");
351
- await N.rm(a, {
350
+ let { root: n, logger: i } = e, a = j.resolve(n, t.outDir ?? "dist"), o = j.join(a, ".client"), s = j.join(a, ".server");
351
+ await F.rm(a, {
352
352
  recursive: !0,
353
353
  force: !0
354
354
  });
355
- let c = await e.getTdContext(), [l, u, d] = await Promise.all([
355
+ let c = await e.getTdContext(), [l, u, d, f] = await Promise.all([
356
356
  c.getConfig(),
357
357
  c.listFiles(),
358
- c.listSidebar()
359
- ]), f = l.origin ?? void 0, p = l.author ?? void 0, m = l.license ?? void 0, h = l.repo ?? void 0, _ = t.base ?? l.basePath ?? "/", v = ee(_), y = d.map((e) => ({
358
+ c.listSidebar(),
359
+ c.listSchemas()
360
+ ]), p = await Promise.all(f.map(async (e) => [e, (await c.getSchema(e)).properties])), m = Object.fromEntries(p), h = l.origin ?? void 0, _ = l.author ?? void 0, v = l.license ?? void 0, y = l.repo ?? void 0, b = t.base ?? l.basePath ?? "/", x = S(b), ee = d.map((e) => ({
360
361
  ...e,
361
362
  header: {}
362
- })), b = g(y), x = JSON.stringify({
363
+ })), C = g(ee), w = JSON.stringify({
363
364
  title: l.siteTitle,
364
365
  description: l.siteDescription,
365
- basePath: v,
366
- origin: f,
366
+ basePath: x,
367
+ origin: h,
367
368
  lang: l.lang,
368
369
  rootDir: l.rootDir,
369
- repo: h,
370
- author: p,
371
- license: m,
370
+ repo: y,
371
+ author: _,
372
+ license: v,
372
373
  nav: l.nav
373
- }), S = JSON.stringify({
374
+ }), T = JSON.stringify({
374
375
  ready: !0,
375
- contentTree: b
376
- }), C = k.join(n, "node_modules", ".typerighter");
377
- await N.mkdir(C, { recursive: !0 });
378
- let w = k.join(C, "client-entry.js"), T = k.join(C, "ssr-entry.js"), E = k.join(C, "theme.js"), D = await I(l.components, n), O = Pe(l.layout ?? void 0, n);
376
+ contentTree: C,
377
+ schemas: m
378
+ }), E = j.join(n, "node_modules", ".typerighter");
379
+ await F.mkdir(E, { recursive: !0 });
380
+ let D = j.join(E, "client-entry.js"), O = j.join(E, "ssr-entry.js"), k = j.join(E, "theme.js"), A = await L(l.components, n), te = Ne(l.layout ?? void 0, n);
379
381
  await Promise.all([
380
- N.writeFile(w, Ne({
382
+ F.writeFile(D, je({
381
383
  rootDir: l.rootDir,
382
- basePath: v,
383
- origin: f,
384
+ basePath: x,
385
+ origin: h,
384
386
  lang: l.lang,
385
387
  siteTitle: l.siteTitle,
386
388
  siteDescription: l.siteDescription,
387
- repo: h,
388
- author: p,
389
- license: m,
389
+ repo: y,
390
+ author: _,
391
+ license: v,
390
392
  nav: l.nav,
391
- userComponents: D
393
+ userComponents: A
392
394
  }, {
393
395
  theme: J,
394
396
  pages: W,
@@ -396,23 +398,23 @@ async function Re(e, t = {}) {
396
398
  searchIndex: q,
397
399
  pageDataEvent: Y
398
400
  })),
399
- N.writeFile(T, ze({
401
+ F.writeFile(O, ze({
400
402
  rootDir: l.rootDir,
401
- siteConfig: x,
402
- siteData: S,
403
- themeModulePath: E,
404
- userComponents: D
403
+ siteConfig: w,
404
+ siteData: T,
405
+ themeModulePath: k,
406
+ userComponents: A
405
407
  })),
406
- N.writeFile(E, O)
408
+ F.writeFile(k, te)
407
409
  ]);
408
410
  try {
409
- let c = _n({ context: e }), m = e.createViteLogger(), h = new R(i, "Building client bundle...");
410
- await se({
411
+ let c = e.createViteLogger(), f = new Ie(i, "Building bundles..."), p = performance.now();
412
+ await Promise.all([ae({
411
413
  ...t.viteConfig,
412
414
  root: n,
413
- base: v,
414
- plugins: c,
415
- customLogger: m,
415
+ base: x,
416
+ plugins: $({ context: e }),
417
+ customLogger: c,
416
418
  logLevel: "silent",
417
419
  build: {
418
420
  ...t.viteConfig?.build,
@@ -421,67 +423,65 @@ async function Re(e, t = {}) {
421
423
  emptyOutDir: !0,
422
424
  rollupOptions: {
423
425
  ...t.viteConfig?.build?.rollupOptions,
424
- input: w
426
+ input: D
425
427
  }
426
428
  }
427
- });
428
- let g = await N.readdir(k.join(o, "assets")).catch(() => []);
429
- h.done(`Client bundle (${g.length} chunks)`);
430
- let _ = new R(i, "Building SSR bundle...");
431
- await se({
429
+ }), ae({
432
430
  ...t.viteConfig,
433
431
  root: n,
434
- base: v,
435
- plugins: c,
436
- customLogger: m,
432
+ base: x,
433
+ plugins: $({ context: e }),
434
+ customLogger: c,
437
435
  logLevel: "silent",
438
436
  build: {
439
437
  ...t.viteConfig?.build,
440
438
  outDir: s,
441
- ssr: T,
439
+ ssr: O,
442
440
  emptyOutDir: !0
443
441
  }
444
- }), _.done("SSR bundle");
445
- let y = u.map((e) => {
442
+ })]);
443
+ let m = await F.readdir(j.join(o, "assets")).catch(() => []), g = performance.now() - p;
444
+ f.done(`Client (${m.length} chunks) + SSR`), process.env.TYPEDOWN_VERBOSE === "1" && process.stderr.write(`[timing:phase] bundles ${g.toFixed(0)}ms\n`);
445
+ let v = u.map((e) => {
446
446
  let t = r(e);
447
447
  return t === "index" ? "/" : `/${t}`;
448
448
  });
449
- y.push("/"), Ve(b.entries, y);
450
- let x = new R(i, "Pre-rendering pages...");
451
- await ke({
452
- ssrEntryPath: k.join(s, "ssr-entry.js"),
449
+ v.push("/"), Ve(C.entries, v);
450
+ let y = new Ie(i, "Pre-rendering pages...");
451
+ await De({
452
+ ssrEntryPath: j.join(s, "ssr-entry.js"),
453
453
  clientOutDir: o,
454
454
  outDir: a,
455
- base: v,
456
- origin: f,
455
+ base: x,
456
+ origin: h,
457
457
  lang: l.lang,
458
- pageRoutes: y,
458
+ pageRoutes: v,
459
459
  siteTitle: l.siteTitle,
460
- author: p,
461
- progress: x
462
- }), x.done(`Pre-rendered ${y.length} pages`);
463
- let S = /* @__PURE__ */ new Map();
460
+ author: _,
461
+ progress: y
462
+ }), y.done(`Pre-rendered ${v.length} pages`);
463
+ let b = /* @__PURE__ */ new Map();
464
464
  for (let e of d) {
465
465
  let t = r(e.filepath), n = t === "index" ? "/" : `/${t}`;
466
- S.set(n, e.fileMetadata.mtimeSecs);
466
+ b.set(n, e.fileMetadata.mtimeSecs);
467
467
  }
468
- let ee = we(y, v, f, S), C = [N.writeFile(k.join(a, "sitemap.xml"), ee)];
469
- f !== void 0 && (C.push(N.writeFile(k.join(a, "robots.txt"), Te(f, v))), C.push(N.writeFile(k.join(a, "feed.xml"), Ee(d, v, f, l.siteTitle, l.siteDescription, l.lang)))), await Promise.all(C);
470
- let E = k.join(o, "assets"), D = k.join(a, "assets");
471
- await N.cp(E, D, { recursive: !0 }).catch(() => {}), await Be(k.join(n, l.rootDir), a);
472
- let O = k.join(n, l.publicDir);
473
- await N.cp(O, a, { recursive: !0 }).catch(() => {});
468
+ let ee = Se(v, x, h, b), S = [F.writeFile(j.join(a, "sitemap.xml"), ee)];
469
+ h !== void 0 && (S.push(F.writeFile(j.join(a, "robots.txt"), Ce(h, x))), S.push(F.writeFile(j.join(a, "feed.xml"), we(d, x, h, l.siteTitle, l.siteDescription, l.lang)))), await Promise.all(S);
470
+ let w = j.join(o, "assets"), T = j.join(a, "assets");
471
+ await F.cp(w, T, { recursive: !0 }).catch(() => {}), await Be(j.join(n, l.rootDir), a);
472
+ let E = j.join(n, l.publicDir);
473
+ await F.cp(E, a, { recursive: !0 }).catch(() => {});
474
474
  } finally {
475
475
  await Promise.all([
476
- N.rm(C, {
476
+ F.rm(E, {
477
477
  recursive: !0,
478
478
  force: !0
479
479
  }),
480
- N.rm(o, {
480
+ F.rm(o, {
481
481
  recursive: !0,
482
482
  force: !0
483
483
  }),
484
- N.rm(s, {
484
+ F.rm(s, {
485
485
  recursive: !0,
486
486
  force: !0
487
487
  })
@@ -516,12 +516,12 @@ export async function createRenderer() {
516
516
  `;
517
517
  }
518
518
  async function Be(e, t) {
519
- let n = (await N.readdir(e, {
519
+ let n = (await F.readdir(e, {
520
520
  recursive: !0,
521
521
  withFileTypes: !0
522
522
  })).filter((e) => e.isFile() && !w(e.name)).map(async (n) => {
523
- let r = k.join(n.parentPath, n.name), i = k.relative(e, r), a = k.join(t, i);
524
- return N.mkdir(k.dirname(a), { recursive: !0 }).then(() => N.copyFile(r, a));
523
+ let r = j.join(n.parentPath, n.name), i = j.relative(e, r), a = j.join(t, i);
524
+ return F.mkdir(j.dirname(a), { recursive: !0 }).then(() => F.copyFile(r, a));
525
525
  });
526
526
  await Promise.all(n);
527
527
  }
@@ -786,7 +786,7 @@ var dt = new FinalizationRegistry((e) => {
786
786
  dark: "github-dark"
787
787
  };
788
788
  async function ft() {
789
- let e = await be({
789
+ let e = await ve({
790
790
  themes: [V.light, V.dark],
791
791
  langs: []
792
792
  }), t = [
@@ -814,12 +814,12 @@ async function ft() {
814
814
  }
815
815
  i ||= "txt";
816
816
  try {
817
- !Se(i) && !n.has(i) && (await e.loadLanguage(i), n.add(i));
817
+ !be(i) && !n.has(i) && (await e.loadLanguage(i), n.add(i));
818
818
  } catch {
819
819
  O.warn(`\nThe language '${i}' is not loaded, falling back to 'txt' for syntax highlighting.`), i = "txt";
820
820
  }
821
821
  r = r.trimEnd();
822
- let c = xe(r, i, e);
822
+ let c = ye(r, i, e);
823
823
  return await e.loadLanguage(...c), e.codeToHtml(r, {
824
824
  lang: i,
825
825
  transformers: [
@@ -1030,7 +1030,7 @@ function Ot(e, t) {
1030
1030
  }
1031
1031
  // src/node/lib/render/vue.ts
1032
1032
  async function U(e, t, n) {
1033
- let r = t.title || t.label || (d(n) ? S(n, (await e.getConfig()).siteTitle) : C(n));
1033
+ let r = t.title || t.label || (d(n) ? ee(n, (await e.getConfig()).siteTitle) : C(n));
1034
1034
  return {
1035
1035
  schema: t.schema,
1036
1036
  schemaLabel: t.schemaLabel,
@@ -1110,8 +1110,8 @@ var Rt = class {
1110
1110
  this.mountPath = e;
1111
1111
  }
1112
1112
  async load(e) {
1113
- let t = await (await e.getTdContext()).getConfig(), n = await I(t.components, e.root);
1114
- return Ne({
1113
+ let t = await (await e.getTdContext()).getConfig(), n = await L(t.components, e.root);
1114
+ return je({
1115
1115
  rootDir: t.rootDir,
1116
1116
  mountPath: this.mountPath,
1117
1117
  basePath: t.basePath,
@@ -1177,7 +1177,7 @@ var Rt = class {
1177
1177
  }
1178
1178
  }, Bt = class {
1179
1179
  async load(e) {
1180
- return Pe((await (await e.getTdContext()).getConfig()).layout ?? void 0, e.root);
1180
+ return Ne((await (await e.getTdContext()).getConfig()).layout ?? void 0, e.root);
1181
1181
  }
1182
1182
  invalidate(e) {
1183
1183
  X(e, Lt);
@@ -1190,7 +1190,7 @@ var Rt = class {
1190
1190
  }, Ut = class {
1191
1191
  data;
1192
1192
  scan(e) {
1193
- let t = me("**/*.td", {
1193
+ let t = fe("**/*.td", {
1194
1194
  cwd: e,
1195
1195
  exclude: (e) => e.startsWith("_")
1196
1196
  }).map((e) => ({
@@ -1247,7 +1247,7 @@ async function Wt(e) {
1247
1247
  var Gt = class {
1248
1248
  index;
1249
1249
  constructor() {
1250
- this.index = new ie({
1250
+ this.index = new ne({
1251
1251
  fields: v,
1252
1252
  storeFields: x
1253
1253
  });
@@ -1276,7 +1276,7 @@ function Kt(e, t) {
1276
1276
  t.addAll(r);
1277
1277
  }
1278
1278
  function qt(e, n, r) {
1279
- let i = Yt(e, A(e, n));
1279
+ let i = Yt(e, M(e, n));
1280
1280
  i ? r.addPage(i) : r.discardPage(t(n));
1281
1281
  }
1282
1282
  function Jt(e, t) {
@@ -1299,7 +1299,7 @@ function Jt(e, t) {
1299
1299
  function Yt(e, n) {
1300
1300
  let r;
1301
1301
  try {
1302
- r = he(n, "utf-8");
1302
+ r = pe(n, "utf-8");
1303
1303
  } catch {
1304
1304
  return;
1305
1305
  }
@@ -1312,10 +1312,10 @@ function Yt(e, n) {
1312
1312
  };
1313
1313
  }
1314
1314
  function Xt(e) {
1315
- return me("**/*.td", {
1315
+ return fe("**/*.td", {
1316
1316
  cwd: e,
1317
1317
  exclude: (e) => e.startsWith("_")
1318
- }).map((t) => A(e, t));
1318
+ }).map((t) => M(e, t));
1319
1319
  }
1320
1320
  // src/node/plugin/vite/virtual/search-index.ts
1321
1321
  var Zt = "\0@typedown/search-index", Qt = class {
@@ -1332,7 +1332,7 @@ var Zt = "\0@typedown/search-index", Qt = class {
1332
1332
  invalidate(e) {
1333
1333
  X(e, Zt);
1334
1334
  }
1335
- }, $t = _e(import.meta.url);
1335
+ }, $t = he(import.meta.url);
1336
1336
  function en() {
1337
1337
  return [{
1338
1338
  find: "vue/server-renderer",
@@ -1366,12 +1366,12 @@ function nn(e, t) {
1366
1366
  if (!n.url || n.method !== "GET" || r.writableEnded) return s();
1367
1367
  let c = a(n.url);
1368
1368
  if (c.startsWith("/@") || c.startsWith("/node_modules")) return s();
1369
- let l = i(t.basePath), u = (l && c.startsWith(l) ? c.slice(l.length) : c).replace(/^\//, ""), d = A(e.config.root, t.rootDirectory, u);
1370
- if (pe(d)) try {
1371
- let e = ge(d);
1369
+ let l = i(t.basePath), u = (l && c.startsWith(l) ? c.slice(l.length) : c).replace(/^\//, ""), d = M(e.config.root, t.rootDirectory, u);
1370
+ if (de(d)) try {
1371
+ let e = me(d);
1372
1372
  if (e.isFile()) {
1373
1373
  let t = tn[o(d).slice(1).toLowerCase()] ?? "application/octet-stream";
1374
- r.setHeader("Content-Type", t), r.setHeader("Content-Length", e.size), fe(d).pipe(r);
1374
+ r.setHeader("Content-Type", t), r.setHeader("Content-Length", e.size), ue(d).pipe(r);
1375
1375
  return;
1376
1376
  }
1377
1377
  } catch {}
@@ -1405,12 +1405,12 @@ function an(e, t) {
1405
1405
  function on(e, t, n) {
1406
1406
  let r = {};
1407
1407
  for (let i of e) {
1408
- let e = `./${k.relative(t, i.absolutePath)}`;
1408
+ let e = `./${j.relative(t, i.absolutePath)}`;
1409
1409
  try {
1410
1410
  let t = n.getComponentMeta(i.absolutePath), a = {}, o = !1;
1411
1411
  for (let e of t.props) {
1412
1412
  if (e.global) continue;
1413
- let t = Q(e.schema);
1413
+ let t = Z(e.schema);
1414
1414
  if (t !== void 0) {
1415
1415
  let n = { schema: e.required ? t : l(t) };
1416
1416
  e.description && (n.description = e.description), a[e.name] = n, o = !0;
@@ -1430,23 +1430,23 @@ function on(e, t, n) {
1430
1430
  }
1431
1431
  function sn(e) {
1432
1432
  if (!e || e.length !== 1) return;
1433
- let t = Q(e[0]);
1433
+ let t = Z(e[0]);
1434
1434
  return t === void 0 ? void 0 : {
1435
1435
  type: "array",
1436
1436
  items: t
1437
1437
  };
1438
1438
  }
1439
1439
  function cn(e, t) {
1440
- if (t && 0 < Object.keys(t).length) return ln(t);
1440
+ if (t && 0 < Object.keys(t).length) return un(t);
1441
1441
  let n = /^(?:Record<string,\s*(\w+)>|\{\s*\[key:\s*string\]:\s*(\w+);\s*\})$/.exec(e);
1442
1442
  if (!n) return;
1443
- let r = Z(n[1] ?? n[2]);
1443
+ let r = ln(n[1] ?? n[2]);
1444
1444
  return r === void 0 ? void 0 : {
1445
1445
  type: "object",
1446
1446
  additionalProperties: r
1447
1447
  };
1448
1448
  }
1449
- function Z(e) {
1449
+ function ln(e) {
1450
1450
  switch (e) {
1451
1451
  case "string": return { type: "string" };
1452
1452
  case "number": return { type: "number" };
@@ -1460,7 +1460,7 @@ function Z(e) {
1460
1460
  let t = e.replace(/^["']|["']$/g, "");
1461
1461
  i.push({ const: t });
1462
1462
  } else {
1463
- let t = Z(e);
1463
+ let t = ln(e);
1464
1464
  if (t === void 0) return;
1465
1465
  i.push(t);
1466
1466
  }
@@ -1470,10 +1470,10 @@ function Z(e) {
1470
1470
  return;
1471
1471
  }
1472
1472
  }
1473
- function ln(e) {
1473
+ function un(e) {
1474
1474
  let t = {}, n = [];
1475
1475
  for (let [r, i] of Object.entries(e)) {
1476
- let e = Q(i.schema);
1476
+ let e = Z(i.schema);
1477
1477
  if (e === void 0) return;
1478
1478
  t[r] = e, i.required && n.push(r);
1479
1479
  }
@@ -1484,21 +1484,21 @@ function ln(e) {
1484
1484
  };
1485
1485
  return 0 < n.length && (r.required = n), r;
1486
1486
  }
1487
- function Q(e) {
1488
- if (typeof e == "string") return Z(e);
1487
+ function Z(e) {
1488
+ if (typeof e == "string") return ln(e);
1489
1489
  switch (e.kind) {
1490
- case "enum": return un(e.schema);
1490
+ case "enum": return dn(e.schema);
1491
1491
  case "array": return sn(e.schema);
1492
1492
  case "object": return cn(e.type, e.schema);
1493
1493
  case "literal": return "value" in e ? { const: e.value } : void 0;
1494
1494
  default: return;
1495
1495
  }
1496
1496
  }
1497
- function un(e) {
1497
+ function dn(e) {
1498
1498
  let t = e ?? [], n = t.some((e) => e === "undefined" || e === "null"), r = t.filter((e) => e !== "undefined" && e !== "null");
1499
1499
  if (r.length === 0) return;
1500
1500
  if (r.length === 1) {
1501
- let e = Q(r[0]);
1501
+ let e = Z(r[0]);
1502
1502
  return e === void 0 ? void 0 : n ? l(e) : e;
1503
1503
  }
1504
1504
  if (r.every((e) => typeof e == "object" && e.kind === "literal")) {
@@ -1512,7 +1512,7 @@ function un(e) {
1512
1512
  }
1513
1513
  let i = [];
1514
1514
  for (let e of r) {
1515
- let t = Q(e);
1515
+ let t = Z(e);
1516
1516
  if (t === void 0) return;
1517
1517
  i.push(t);
1518
1518
  }
@@ -1521,43 +1521,43 @@ function un(e) {
1521
1521
  return n ? l(a) : a;
1522
1522
  }
1523
1523
  // src/node/plugin/vite/subplugins/component-contract.ts
1524
- var dn = ".typedown/components.json";
1525
- function fn(e) {
1524
+ var fn = ".typedown/components.json";
1525
+ function pn(e) {
1526
1526
  return {
1527
1527
  name: "vite-plugin-typedown-component-contract",
1528
1528
  async buildStart() {
1529
1529
  let t = e();
1530
1530
  if (!t) return;
1531
- let n = await I((await (await t.getTdContext()).getConfig()).components, t.root);
1532
- $(t.root, n);
1531
+ let n = await L((await (await t.getTdContext()).getConfig()).components, t.root);
1532
+ Q(t.root, n);
1533
1533
  },
1534
1534
  configureServer(t) {
1535
1535
  let n = e();
1536
1536
  n && n.getTdContext().then(async (e) => {
1537
- let r = await e.getConfig(), i = await I(r.components, n.root);
1538
- $(n.root, i), pn(t, r.components, n.root);
1537
+ let r = await e.getConfig(), i = await L(r.components, n.root);
1538
+ Q(n.root, i), mn(t, r.components, n.root);
1539
1539
  }).catch(() => {});
1540
1540
  }
1541
1541
  };
1542
1542
  }
1543
- function pn(e, t, n) {
1544
- let r = new Set(t.filter((e) => e.kind === "explicit").map((e) => M(k.resolve(n, e.source)))), i = new Set(t.filter((e) => e.kind === "dir").map((e) => M(k.resolve(n, e.path))));
1543
+ function mn(e, t, n) {
1544
+ let r = new Set(t.filter((e) => e.kind === "explicit").map((e) => P(j.resolve(n, e.source)))), i = new Set(t.filter((e) => e.kind === "dir").map((e) => P(j.resolve(n, e.path))));
1545
1545
  for (let t of i) e.watcher.add(t);
1546
1546
  let a = (a) => {
1547
- mn(a, r, i) && (e.config.logger.info("[typedown] component changed, rebuilding contract..."), I(t, n).then((e) => $(n, e)).catch(() => {}));
1547
+ hn(a, r, i) && (e.config.logger.info("[typedown] component changed, rebuilding contract..."), L(t, n).then((e) => Q(n, e)).catch(() => {}));
1548
1548
  };
1549
1549
  e.watcher.on("change", a), e.watcher.on("add", a), e.watcher.on("unlink", a);
1550
1550
  }
1551
- function mn(e, t, n) {
1551
+ function hn(e, t, n) {
1552
1552
  if (!e.endsWith(".vue")) return !1;
1553
- let r = M(e);
1553
+ let r = P(e);
1554
1554
  if (t.has(r)) return !0;
1555
1555
  for (let e of n) if (r.startsWith(e + "/")) return !0;
1556
1556
  return !1;
1557
1557
  }
1558
- function hn() {
1558
+ function gn() {
1559
1559
  try {
1560
- let e = k.dirname(le(import.meta.url)), t = k.resolve(e, "builtin-components.json"), n = JSON.parse(P.readFileSync(t, "utf-8"));
1560
+ let e = j.dirname(se(import.meta.url)), t = j.resolve(e, "builtin-components.json"), n = JSON.parse(I.readFileSync(t, "utf-8"));
1561
1561
  for (let e of Object.values(n)) if (typeof e == "object" && e && "source" in e) {
1562
1562
  let t = e;
1563
1563
  typeof t.source == "string" && t.source.startsWith("./") && (t.source = `typerighter/${t.source.slice(2)}`);
@@ -1567,17 +1567,17 @@ function hn() {
1567
1567
  return {};
1568
1568
  }
1569
1569
  }
1570
- var gn = hn();
1571
- function $(e, t) {
1572
- if (!(0 < Object.keys(gn).length) && t.length === 0) return;
1573
- let n = 0 < t.length ? on(t, e, Fe(e)) : {}, r = {
1574
- ...gn,
1570
+ var _n = gn();
1571
+ function Q(e, t) {
1572
+ if (!(0 < Object.keys(_n).length) && t.length === 0) return;
1573
+ let n = 0 < t.length ? on(t, e, Pe(e)) : {}, r = {
1574
+ ..._n,
1575
1575
  ...n
1576
- }, i = k.join(e, dn);
1577
- P.mkdirSync(k.dirname(i), { recursive: !0 }), P.writeFileSync(i, JSON.stringify(r, null, 2));
1576
+ }, i = j.join(e, fn);
1577
+ I.mkdirSync(j.dirname(i), { recursive: !0 }), I.writeFileSync(i, JSON.stringify(r, null, 2));
1578
1578
  }
1579
1579
  // src/node/plugin/vite/index.ts
1580
- function _n(t = {}) {
1580
+ function $(t = {}) {
1581
1581
  let n = t.context, r, i, a, o = new Rt(t.root ?? ""), s = new Bt(), l = new zt(t.root ?? ""), u = new Ut(), d = new Qt(), f = {
1582
1582
  devHtml: void 0,
1583
1583
  basePath: "/",
@@ -1592,8 +1592,8 @@ function _n(t = {}) {
1592
1592
  enforce: "pre",
1593
1593
  async config(e) {
1594
1594
  if (!n) {
1595
- let r = t.root ? A(e.root ?? process.cwd(), t.root) : re(e.root ?? process.cwd());
1596
- n = ne(r);
1595
+ let r = t.root ? M(e.root ?? process.cwd(), t.root) : te(e.root ?? process.cwd());
1596
+ n = A(r);
1597
1597
  }
1598
1598
  a = e.base ?? "/";
1599
1599
  let r = await (await p()).getConfig();
@@ -1609,11 +1609,11 @@ function _n(t = {}) {
1609
1609
  };
1610
1610
  },
1611
1611
  configResolved(e) {
1612
- i = A(e.root, e.build.outDir);
1612
+ i = M(e.root, e.build.outDir);
1613
1613
  },
1614
1614
  async buildStart() {
1615
1615
  if (r) return;
1616
- let e = await p(), t = await e.getConfig(), n = A(t.rootDir);
1616
+ let e = await p(), t = await e.getConfig(), n = M(t.rootDir);
1617
1617
  d.index(n), await u.fetchSync(e);
1618
1618
  let i = await e.checkVault();
1619
1619
  if (Sn(i.diagnostics), 0 < i.errorCount) {
@@ -1641,7 +1641,7 @@ function _n(t = {}) {
1641
1641
  },
1642
1642
  async configureServer(e) {
1643
1643
  r = e;
1644
- let t = await p(), n = await t.getConfig(), i = A(n.rootDir);
1644
+ let t = await p(), n = await t.getConfig(), i = M(n.rootDir);
1645
1645
  d.index(i), u.scan(i), u.fetch(t, r), e.httpServer?.once("listening", async () => {
1646
1646
  let e = await t.checkVault();
1647
1647
  0 < e.diagnostics.length && (console.error(""), Sn(e.diagnostics));
@@ -1655,7 +1655,7 @@ function _n(t = {}) {
1655
1655
  if (!r) return;
1656
1656
  let n = [];
1657
1657
  for (let i of e) {
1658
- let e = M(A(r.config.root, t.rootDir, i)), a = r.moduleGraph.getModulesByFile(e);
1658
+ let e = P(M(r.config.root, t.rootDir, i)), a = r.moduleGraph.getModulesByFile(e);
1659
1659
  if (a?.size) {
1660
1660
  for (let e of a) r.moduleGraph.invalidateModule(e), n.push(xn(e));
1661
1661
  l.invalidatePageData(r, i);
@@ -1696,7 +1696,7 @@ function _n(t = {}) {
1696
1696
  map: null
1697
1697
  };
1698
1698
  } catch (e) {
1699
- if (te(e)) return;
1699
+ if (k(e)) return;
1700
1700
  let t = e instanceof Error ? e.message : String(e);
1701
1701
  this.error(`[typedown] Failed to transform ${o}: ${t}`);
1702
1702
  }
@@ -1708,22 +1708,22 @@ function _n(t = {}) {
1708
1708
  if (!t.context && n) try {
1709
1709
  let e = (await (await n.getTdContext()).getConfig()).basePath, t = e.startsWith(a) ? e.slice(a.length) : e.replace(/^\//, "");
1710
1710
  await Re(n, {
1711
- outDir: A(i, t),
1711
+ outDir: M(i, t),
1712
1712
  base: e
1713
1713
  });
1714
1714
  } finally {
1715
1715
  n.dispose();
1716
1716
  }
1717
1717
  }
1718
- }, h = oe({
1718
+ }, h = ie({
1719
1719
  include: t.root ? RegExp(`${t.root.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}/.*\\.(?:vue|td)$`) : /\.(?:vue|td)$/,
1720
1720
  template: { transformAssetUrls: !1 }
1721
1721
  });
1722
1722
  return [
1723
1723
  m,
1724
- fn(() => n),
1724
+ pn(() => n),
1725
1725
  h,
1726
- ...ae()
1726
+ ...re()
1727
1727
  ];
1728
1728
  }
1729
1729
  function vn(e) {
@@ -1750,8 +1750,8 @@ function xn(e) {
1750
1750
  }
1751
1751
  function Sn(e) {
1752
1752
  for (let t of e) {
1753
- let e = `${t.filepath}:${t.line}:${t.column}`, n = t.severity === "error" ? j.red("error") : j.yellow("warn");
1754
- console.error(` ${n} ${e} ${t.message} ${j.dim(`(${t.code})`)}`);
1753
+ let e = `${t.filepath}:${t.line}:${t.column}`, n = t.severity === "error" ? N.red("error") : N.yellow("warn");
1754
+ console.error(` ${n} ${e} ${t.message} ${N.dim(`(${t.code})`)}`);
1755
1755
  }
1756
1756
  }
1757
- export { K as a, q as i, W as n, J as o, Y as r, Re as s, _n as t };
1757
+ export { K as a, q as i, W as n, J as o, Y as r, Re as s, $ as t };