typerighter 0.44.1 → 0.44.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{app-C-CwtIly.js → app-D0bX_TJ8.js} +1 -1
- package/dist/builtin-components.json +95 -0
- package/dist/{cli-BYbSBUOA.js → cli-DBv4APAX.js} +5 -5
- package/dist/cli.js +1 -1
- package/dist/client/theme-default.js +194 -194
- package/dist/client.js +1 -1
- package/dist/index.js +2 -2
- package/dist/{init-C3xKB6xH.js → init-DKr1vEJD.js} +203 -189
- package/dist/{jsonld-CrXLLdKW.js → jsonld-CRHOaFMj.js} +15 -15
- package/dist/node/build/builtin-contract.d.ts +3 -0
- package/dist/node/build/builtin-contract.d.ts.map +1 -0
- package/dist/node/cli/init.d.ts.map +1 -1
- package/dist/node/lib/components.d.ts +9 -7
- package/dist/node/lib/components.d.ts.map +1 -1
- package/dist/node/lib/prop-schema.d.ts +17 -0
- package/dist/node/lib/prop-schema.d.ts.map +1 -0
- package/dist/node/plugin/vite/subplugins/component-contract.d.ts.map +1 -1
- package/dist/prerenderWorker.js +2 -2
- package/dist/{renderMath-DBw8KV_4.js → renderMath-C59kPnxc.js} +1 -1
- package/dist/shared/types/json-schema.d.ts +12 -3
- package/dist/shared/types/json-schema.d.ts.map +1 -1
- package/dist/shared/utils/format.d.ts +1 -0
- package/dist/shared/utils/format.d.ts.map +1 -1
- package/dist/{shared-B-wDtFX6.js → shared-C5ERr4vS.js} +64 -54
- package/dist/shared.js +1 -1
- package/dist/typerighter.css +1 -1
- package/dist/{vite-B7uvklyW.js → vite-KKwvSM8g.js} +405 -357
- package/dist/vite.js +1 -1
- package/package.json +3 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { a as E, i as D, n as O, o as ee, r as te, s as ne, t as re } from "./jsonld-
|
|
1
|
+
import { D as e, E as t, F as n, H as r, K as i, L as a, P as o, Q as s, R as c, V as l, Y as u, Z as d, _ as f, b as p, c as m, d as h, et as g, g as _, h as v, i as y, p as b, tt as x, v as S, w as C, y as w, z as T } from "./shared-C5ERr4vS.js";
|
|
2
|
+
import { a as E, i as D, n as O, o as ee, r as te, s as ne, t as re } from "./jsonld-CRHOaFMj.js";
|
|
3
3
|
import { t as ie } from "./temml-D47Z4xZ2.js";
|
|
4
4
|
import { a as ae, i as oe, n as se, r as ce } from "./context-CSvoDxVt.js";
|
|
5
5
|
import { t as le } from "./es-ClqUVRJn.js";
|
|
@@ -13,9 +13,9 @@ import { fileURLToPath as me } from "node:url";
|
|
|
13
13
|
import he from "node:os";
|
|
14
14
|
import { Worker as ge } from "node:worker_threads";
|
|
15
15
|
import P, { createReadStream as _e, existsSync as ve, globSync as ye, readFileSync as be, statSync as xe } from "node:fs";
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
16
|
+
import { createRequire as Se } from "node:module";
|
|
17
|
+
import { createChecker as Ce, createCheckerByJson as we } from "vue-component-meta";
|
|
18
|
+
import { createHighlighter as Te, guessEmbeddedLanguages as Ee, isSpecialLang as De } from "shiki";
|
|
19
19
|
//#region src/node/lib/worker-pool/index.ts
|
|
20
20
|
var Oe = class {
|
|
21
21
|
workers = [];
|
|
@@ -68,8 +68,8 @@ function ke(e, t, n, r) {
|
|
|
68
68
|
return `<?xml version="1.0" encoding="UTF-8"?>
|
|
69
69
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
70
70
|
${e.map((e) => {
|
|
71
|
-
let n =
|
|
72
|
-
return ` <url><loc>${n}</loc>${a === void 0 ? "" : `<lastmod>${
|
|
71
|
+
let n = m(i + t + o(e)), a = r?.get(e);
|
|
72
|
+
return ` <url><loc>${n}</loc>${a === void 0 ? "" : `<lastmod>${y(a)}</lastmod>`}</url>`;
|
|
73
73
|
}).join("\n")}
|
|
74
74
|
</urlset>
|
|
75
75
|
`;
|
|
@@ -85,11 +85,11 @@ Sitemap: ${e}${t}sitemap.xml
|
|
|
85
85
|
//#region src/node/build/seo/feed.ts
|
|
86
86
|
function je(e, t, n, r, i, a) {
|
|
87
87
|
let o = [...e].filter((e) => e.fileMetadata.mtime > 0).sort((e, t) => t.fileMetadata.mtime - e.fileMetadata.mtime).slice(0, 50).map((e) => {
|
|
88
|
-
let r =
|
|
88
|
+
let r = l(e.filepath), i = `${n}${t}${r}`, a = new Date(e.fileMetadata.mtime).toUTCString(), o = m(e.label ?? r), s = e.excerpt === void 0 ? "" : `<![CDATA[${e.excerpt}]]>`;
|
|
89
89
|
return ` <item>
|
|
90
90
|
<title>${o}</title>
|
|
91
|
-
<link>${
|
|
92
|
-
<guid>${
|
|
91
|
+
<link>${m(i)}</link>
|
|
92
|
+
<guid>${m(i)}</guid>
|
|
93
93
|
<pubDate>${a}</pubDate>
|
|
94
94
|
<description>${s}</description>
|
|
95
95
|
</item>`;
|
|
@@ -97,11 +97,11 @@ function je(e, t, n, r, i, a) {
|
|
|
97
97
|
return `<?xml version="1.0" encoding="UTF-8"?>
|
|
98
98
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
|
99
99
|
<channel>
|
|
100
|
-
<title>${
|
|
101
|
-
<link>${
|
|
102
|
-
<description>${
|
|
100
|
+
<title>${m(r)}</title>
|
|
101
|
+
<link>${m(n + t)}</link>
|
|
102
|
+
<description>${m(i)}</description>
|
|
103
103
|
<language>${a}</language>
|
|
104
|
-
<atom:link href="${
|
|
104
|
+
<atom:link href="${m(n + t)}feed.xml" rel="self" type="application/rss+xml"/>
|
|
105
105
|
${o}
|
|
106
106
|
</channel>
|
|
107
107
|
</rss>
|
|
@@ -145,14 +145,14 @@ async function Fe(e, t, n) {
|
|
|
145
145
|
}
|
|
146
146
|
async function Ie(e, t, n) {
|
|
147
147
|
let r = await (await import(e.ssrEntryPath)).createRenderer(), i = e.pagePaths.length, a = 0;
|
|
148
|
-
for (let
|
|
149
|
-
let
|
|
148
|
+
for (let s of e.pagePaths) {
|
|
149
|
+
let c = await r(s), l = ee(c.pageData), u = E(c.pageData), d = te(c.pageData), f = e.base + o(s), p = [re({
|
|
150
150
|
title: l,
|
|
151
151
|
description: u,
|
|
152
152
|
canonicalUrl: f,
|
|
153
153
|
author: e.author,
|
|
154
154
|
dateModified: d
|
|
155
|
-
}), O(
|
|
155
|
+
}), O(s, l)].filter((e) => e !== void 0), m = ne({
|
|
156
156
|
title: l,
|
|
157
157
|
description: u,
|
|
158
158
|
siteTitle: e.siteTitle,
|
|
@@ -162,11 +162,11 @@ async function Ie(e, t, n) {
|
|
|
162
162
|
lang: e.lang,
|
|
163
163
|
entryScript: t,
|
|
164
164
|
canonicalUrl: f,
|
|
165
|
-
ogImagePath: D(
|
|
165
|
+
ogImagePath: D(c.pageData),
|
|
166
166
|
jsonLdBlocks: p,
|
|
167
167
|
headExtra: n,
|
|
168
|
-
appContent:
|
|
169
|
-
}), h =
|
|
168
|
+
appContent: c.html
|
|
169
|
+
}), h = s === "/" ? "index.html" : `${o(s)}.html`, g = k.join(e.outDir, h);
|
|
170
170
|
await N.mkdir(k.dirname(g), { recursive: !0 }), await N.writeFile(g, m), a++, e.progress?.update(a, i);
|
|
171
171
|
}
|
|
172
172
|
}
|
|
@@ -302,42 +302,35 @@ function ze(e, t) {
|
|
|
302
302
|
}
|
|
303
303
|
//#endregion
|
|
304
304
|
//#region src/node/lib/components.ts
|
|
305
|
-
function Be(e
|
|
306
|
-
let
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
}
|
|
316
|
-
r[i.name] = {
|
|
317
|
-
source: e,
|
|
318
|
-
props: s ? a : void 0
|
|
319
|
-
};
|
|
320
|
-
} catch {
|
|
321
|
-
r[i.name] = { source: e };
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
return r;
|
|
305
|
+
function Be(e) {
|
|
306
|
+
let t = k.join(e, "tsconfig.json");
|
|
307
|
+
if (P.existsSync(t)) return Ce(t);
|
|
308
|
+
let n = Ve(e);
|
|
309
|
+
return we(e, { compilerOptions: {
|
|
310
|
+
strict: !1,
|
|
311
|
+
jsx: "preserve",
|
|
312
|
+
jsxImportSource: "vue",
|
|
313
|
+
...n && { paths: n }
|
|
314
|
+
} });
|
|
325
315
|
}
|
|
326
316
|
async function I(e, t) {
|
|
327
317
|
let n = [];
|
|
328
318
|
for (let r of e) if (r.kind === "dir") {
|
|
329
319
|
let e = k.resolve(t, r.path), i;
|
|
330
320
|
try {
|
|
331
|
-
i = await pe(e);
|
|
321
|
+
i = await pe(e, { withFileTypes: !0 });
|
|
332
322
|
} catch {
|
|
333
323
|
continue;
|
|
334
324
|
}
|
|
335
|
-
for (let t of i) {
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
325
|
+
for (let t of i) if (t.isFile() && t.name.endsWith(".vue")) n.push({
|
|
326
|
+
name: t.name.slice(0, -4),
|
|
327
|
+
absolutePath: k.join(e, t.name)
|
|
328
|
+
});
|
|
329
|
+
else if (t.isDirectory()) {
|
|
330
|
+
let r = k.join(e, t.name, "index.vue");
|
|
331
|
+
P.existsSync(r) && n.push({
|
|
332
|
+
name: t.name,
|
|
333
|
+
absolutePath: r
|
|
341
334
|
});
|
|
342
335
|
}
|
|
343
336
|
} else n.push({
|
|
@@ -347,76 +340,24 @@ async function I(e, t) {
|
|
|
347
340
|
return n;
|
|
348
341
|
}
|
|
349
342
|
function Ve(e) {
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
if (!e || e.length !== 1) return;
|
|
359
|
-
let t = L(e[0]);
|
|
360
|
-
return t === void 0 ? void 0 : {
|
|
361
|
-
type: "array",
|
|
362
|
-
items: t
|
|
363
|
-
};
|
|
364
|
-
}
|
|
365
|
-
function Ue(e) {
|
|
366
|
-
let t = e ?? [], n = t.some((e) => e === "undefined" || e === "null"), r = t.filter((e) => e !== "undefined" && e !== "null");
|
|
367
|
-
if (r.length !== 1) return;
|
|
368
|
-
let i = L(r[0]);
|
|
369
|
-
if (i !== void 0) return n ? o(i) : i;
|
|
370
|
-
}
|
|
371
|
-
function L(e) {
|
|
372
|
-
if (typeof e == "string") return Ge(e);
|
|
373
|
-
switch (e.kind) {
|
|
374
|
-
case "enum": return Ue(e.schema);
|
|
375
|
-
case "array": return He(e.schema);
|
|
376
|
-
case "object": return We(e.type, e.schema);
|
|
377
|
-
default: return;
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
function We(e, t) {
|
|
381
|
-
if (t && 0 < Object.keys(t).length) return Ke(t);
|
|
382
|
-
let n = /^(?:Record<string,\s*(\w+)>|\{\s*\[key:\s*string\]:\s*(\w+);\s*\})$/.exec(e);
|
|
383
|
-
if (!n) return;
|
|
384
|
-
let r = Ge(n[1] ?? n[2]);
|
|
385
|
-
return r === void 0 ? void 0 : {
|
|
386
|
-
type: "object",
|
|
387
|
-
additionalProperties: r
|
|
388
|
-
};
|
|
389
|
-
}
|
|
390
|
-
function Ge(e) {
|
|
391
|
-
switch (e) {
|
|
392
|
-
case "string": return { type: "string" };
|
|
393
|
-
case "number": return { type: "number" };
|
|
394
|
-
case "boolean": return { type: "boolean" };
|
|
395
|
-
default: return;
|
|
396
|
-
}
|
|
397
|
-
}
|
|
398
|
-
function Ke(e) {
|
|
399
|
-
let t = {}, n = [];
|
|
400
|
-
for (let [r, i] of Object.entries(e)) {
|
|
401
|
-
let e = L(i.schema);
|
|
402
|
-
if (e === void 0) return;
|
|
403
|
-
t[r] = e, i.required && n.push(r);
|
|
343
|
+
try {
|
|
344
|
+
let t = Se(k.join(e, "package.json")), n = k.dirname(t.resolve("vue/package.json"));
|
|
345
|
+
return {
|
|
346
|
+
vue: [n],
|
|
347
|
+
"vue/*": [k.join(n, "*")]
|
|
348
|
+
};
|
|
349
|
+
} catch {
|
|
350
|
+
return;
|
|
404
351
|
}
|
|
405
|
-
let r = {
|
|
406
|
-
type: "object",
|
|
407
|
-
properties: t,
|
|
408
|
-
additionalProperties: !1
|
|
409
|
-
};
|
|
410
|
-
return 0 < n.length && (r.required = n), r;
|
|
411
352
|
}
|
|
412
353
|
//#endregion
|
|
413
354
|
//#region src/node/lib/progress.ts
|
|
414
|
-
var
|
|
355
|
+
var L = [
|
|
415
356
|
"◐",
|
|
416
357
|
"◓",
|
|
417
358
|
"◑",
|
|
418
359
|
"◒"
|
|
419
|
-
],
|
|
360
|
+
], R = class {
|
|
420
361
|
logger;
|
|
421
362
|
label;
|
|
422
363
|
start;
|
|
@@ -424,8 +365,8 @@ var R = [
|
|
|
424
365
|
constructor(e, t) {
|
|
425
366
|
if (this.logger = e, this.label = t, this.start = performance.now(), process.stdout.isTTY) {
|
|
426
367
|
let e = 0;
|
|
427
|
-
process.stdout.write(j.cyan(`${
|
|
428
|
-
e = (e + 1) %
|
|
368
|
+
process.stdout.write(j.cyan(`${L[0]} ${t}`)), this.spinnerInterval = setInterval(() => {
|
|
369
|
+
e = (e + 1) % L.length, process.stdout.write(`\r${j.cyan(`${L[e]} ${this.label}`)}`);
|
|
429
370
|
}, 120).unref();
|
|
430
371
|
} else this.logger.start(t);
|
|
431
372
|
}
|
|
@@ -437,31 +378,31 @@ var R = [
|
|
|
437
378
|
done(e) {
|
|
438
379
|
this.stopSpinner(), process.stdout.isTTY && process.stdout.write("\r\x1B[K");
|
|
439
380
|
let t = Math.round(performance.now() - this.start);
|
|
440
|
-
this.logger.success(`${e} (${
|
|
381
|
+
this.logger.success(`${e} (${He(t)})`);
|
|
441
382
|
}
|
|
442
383
|
stopSpinner() {
|
|
443
384
|
this.spinnerInterval &&= (clearInterval(this.spinnerInterval), void 0);
|
|
444
385
|
}
|
|
445
386
|
};
|
|
446
|
-
function
|
|
387
|
+
function He(e) {
|
|
447
388
|
return e < 1e3 ? `${Math.round(e)}ms` : `${(e / 1e3).toFixed(1)}s`;
|
|
448
389
|
}
|
|
449
390
|
//#endregion
|
|
450
391
|
//#region src/node/build/index.ts
|
|
451
|
-
async function
|
|
392
|
+
async function Ue(e, t = {}) {
|
|
452
393
|
let { root: n, logger: r } = e, i = k.resolve(n, t.outDir ?? "dist"), a = k.join(i, ".client"), o = k.join(i, ".server");
|
|
453
394
|
await N.rm(i, {
|
|
454
395
|
recursive: !0,
|
|
455
396
|
force: !0
|
|
456
397
|
});
|
|
457
|
-
let s = await e.getTdContext(), [c,
|
|
398
|
+
let s = await e.getTdContext(), [c, u, d] = await Promise.all([
|
|
458
399
|
s.getConfig(),
|
|
459
400
|
s.listFiles(),
|
|
460
401
|
s.listSidebar()
|
|
461
|
-
]), f = c.origin ?? void 0, p = c.author ?? void 0, m = c.license ?? void 0, h = c.repo ?? void 0, g = t.base ?? c.basePath ?? "/", _ = g.endsWith("/") ? g : g + "/",
|
|
402
|
+
]), f = c.origin ?? void 0, p = c.author ?? void 0, m = c.license ?? void 0, h = c.repo ?? void 0, g = t.base ?? c.basePath ?? "/", _ = g.endsWith("/") ? g : g + "/", y = d.map((e) => ({
|
|
462
403
|
...e,
|
|
463
404
|
header: {}
|
|
464
|
-
})), b = y
|
|
405
|
+
})), b = v(y), x = JSON.stringify({
|
|
465
406
|
title: c.siteTitle,
|
|
466
407
|
description: c.siteDescription,
|
|
467
408
|
basePath: _,
|
|
@@ -492,13 +433,13 @@ async function Je(e, t = {}) {
|
|
|
492
433
|
nav: c.nav,
|
|
493
434
|
userComponents: D
|
|
494
435
|
}, {
|
|
495
|
-
theme:
|
|
496
|
-
pages:
|
|
497
|
-
siteData:
|
|
498
|
-
searchIndex:
|
|
499
|
-
pageDataEvent:
|
|
436
|
+
theme: J,
|
|
437
|
+
pages: W,
|
|
438
|
+
siteData: K,
|
|
439
|
+
searchIndex: q,
|
|
440
|
+
pageDataEvent: Y
|
|
500
441
|
})),
|
|
501
|
-
N.writeFile(T,
|
|
442
|
+
N.writeFile(T, We({
|
|
502
443
|
rootDir: c.rootDir,
|
|
503
444
|
siteConfig: x,
|
|
504
445
|
siteData: S,
|
|
@@ -508,7 +449,7 @@ async function Je(e, t = {}) {
|
|
|
508
449
|
N.writeFile(E, O)
|
|
509
450
|
]);
|
|
510
451
|
try {
|
|
511
|
-
let s =
|
|
452
|
+
let s = yn({ context: e }), m = e.createViteLogger(), h = new R(r, "Building client bundle...");
|
|
512
453
|
await fe({
|
|
513
454
|
...t.viteConfig,
|
|
514
455
|
root: n,
|
|
@@ -529,7 +470,7 @@ async function Je(e, t = {}) {
|
|
|
529
470
|
});
|
|
530
471
|
let g = await N.readdir(k.join(a, "assets")).catch(() => []);
|
|
531
472
|
h.done(`Client bundle (${g.length} chunks)`);
|
|
532
|
-
let v = new
|
|
473
|
+
let v = new R(r, "Building SSR bundle...");
|
|
533
474
|
await fe({
|
|
534
475
|
...t.viteConfig,
|
|
535
476
|
root: n,
|
|
@@ -544,12 +485,12 @@ async function Je(e, t = {}) {
|
|
|
544
485
|
emptyOutDir: !0
|
|
545
486
|
}
|
|
546
487
|
}), v.done("SSR bundle");
|
|
547
|
-
let y =
|
|
548
|
-
let t =
|
|
488
|
+
let y = u.map((e) => {
|
|
489
|
+
let t = l(e);
|
|
549
490
|
return t === "index" ? "/" : `/${t}`;
|
|
550
491
|
});
|
|
551
|
-
y.push("/"),
|
|
552
|
-
let x = new
|
|
492
|
+
y.push("/"), Ke(b.entries, "", y);
|
|
493
|
+
let x = new R(r, "Pre-rendering pages...");
|
|
553
494
|
await Pe({
|
|
554
495
|
ssrEntryPath: k.join(o, "ssr-entry.js"),
|
|
555
496
|
clientOutDir: a,
|
|
@@ -564,13 +505,13 @@ async function Je(e, t = {}) {
|
|
|
564
505
|
}), x.done(`Pre-rendered ${y.length} pages`);
|
|
565
506
|
let S = /* @__PURE__ */ new Map();
|
|
566
507
|
for (let e of d) {
|
|
567
|
-
let t =
|
|
508
|
+
let t = l(e.filepath), n = t === "index" ? "/" : `/${t}`;
|
|
568
509
|
S.set(n, e.fileMetadata.mtime);
|
|
569
510
|
}
|
|
570
511
|
let C = ke(y, _, f, S), E = [N.writeFile(k.join(i, "sitemap.xml"), C)];
|
|
571
512
|
f !== void 0 && (E.push(N.writeFile(k.join(i, "robots.txt"), Ae(f, _))), E.push(N.writeFile(k.join(i, "feed.xml"), je(d, _, f, c.siteTitle, c.siteDescription, c.lang)))), await Promise.all(E);
|
|
572
513
|
let D = k.join(a, "assets"), O = k.join(i, "assets");
|
|
573
|
-
await N.cp(D, O, { recursive: !0 }).catch(() => {}), await
|
|
514
|
+
await N.cp(D, O, { recursive: !0 }).catch(() => {}), await Ge(k.join(n, c.rootDir), i);
|
|
574
515
|
let ee = k.join(n, c.publicDir);
|
|
575
516
|
await N.cp(ee, i, { recursive: !0 }).catch(() => {});
|
|
576
517
|
} finally {
|
|
@@ -591,13 +532,13 @@ async function Je(e, t = {}) {
|
|
|
591
532
|
}
|
|
592
533
|
r.log(`\nBuild complete. Output: ${i}`);
|
|
593
534
|
}
|
|
594
|
-
function
|
|
595
|
-
let t = `/${e.rootDir}/${
|
|
535
|
+
function We(e) {
|
|
536
|
+
let t = `/${e.rootDir}/${s}`, n = JSON.parse(e.siteConfig), r = JSON.parse(e.siteData), i = r.contentTree ?? { entries: [] }, a = _(i.entries ?? [], n.title ?? ""), o = JSON.stringify({
|
|
596
537
|
...r,
|
|
597
538
|
directoryListings: a
|
|
598
|
-
}),
|
|
539
|
+
}), c = e.userComponents ?? [], l = c.map((e) => `import ${e.name} from ${JSON.stringify(e.absolutePath)};`).join("\n"), u = c.map((e) => `app.component(${JSON.stringify(e.name)}, ${e.name});`).join("\n");
|
|
599
540
|
return `
|
|
600
|
-
${[
|
|
541
|
+
${[l, "import { createTypedownApp } from 'typerighter/client';"].filter(Boolean).join("\n")}
|
|
601
542
|
import { TdDirectoryIndex, TdGlossaryIndex } from 'typerighter/client/theme-default';
|
|
602
543
|
import { isIndexUrl, getDirectoryFromPageUrl } from 'typerighter/shared';
|
|
603
544
|
import { renderToString } from 'vue/server-renderer';
|
|
@@ -634,7 +575,7 @@ function loadPageModule(pagePath) {
|
|
|
634
575
|
|
|
635
576
|
export async function createRenderer() {
|
|
636
577
|
const { app, router } = await createTypedownApp(loadPageModule, theme, ${e.siteConfig}, siteData);
|
|
637
|
-
${
|
|
578
|
+
${u}
|
|
638
579
|
return async function render(url) {
|
|
639
580
|
await router.go(url, { replace: true });
|
|
640
581
|
const html = await renderToString(app);
|
|
@@ -643,32 +584,32 @@ export async function createRenderer() {
|
|
|
643
584
|
}
|
|
644
585
|
`;
|
|
645
586
|
}
|
|
646
|
-
async function
|
|
587
|
+
async function Ge(e, t) {
|
|
647
588
|
let n = (await N.readdir(e, {
|
|
648
589
|
recursive: !0,
|
|
649
590
|
withFileTypes: !0
|
|
650
|
-
})).filter((e) => e.isFile() && !
|
|
591
|
+
})).filter((e) => e.isFile() && !c(e.name)).map(async (n) => {
|
|
651
592
|
let r = k.join(n.parentPath, n.name), i = k.relative(e, r), a = k.join(t, i);
|
|
652
593
|
return N.mkdir(k.dirname(a), { recursive: !0 }).then(() => N.copyFile(r, a));
|
|
653
594
|
});
|
|
654
595
|
await Promise.all(n);
|
|
655
596
|
}
|
|
656
|
-
function
|
|
597
|
+
function Ke(e, t, n) {
|
|
657
598
|
for (let r of e) {
|
|
658
599
|
if (r.kind !== "dir") continue;
|
|
659
600
|
let e = `${t}/${r.node.name}`;
|
|
660
|
-
|
|
601
|
+
f(r.node) || n.push(C(e)), Ke(r.node.entries, e, n);
|
|
661
602
|
}
|
|
662
603
|
}
|
|
663
604
|
//#endregion
|
|
664
605
|
//#region ../../node_modules/.pnpm/@shikijs+transformers@4.4.3/node_modules/@shikijs/transformers/dist/index.mjs
|
|
665
|
-
var
|
|
606
|
+
var qe = /(\s+\/\/)/, Je = /(?:\/\/|["'#]|;{1,2}|%{1,2}|--)(\s*)$/, Ye = /(?:\/\/|#|;{1,2}|%{1,2}|--)(\s*)$/, Xe = [
|
|
666
607
|
[/^(<!--)(.+)(-->)$/, !1],
|
|
667
608
|
[/^(\/\*)(.+)(\*\/)$/, !1],
|
|
668
609
|
[/^(\/\/|["'#]|;{1,2}|%{1,2}|--)(.*)$/, !0],
|
|
669
610
|
[/^(\*)(.+)$/, !0]
|
|
670
611
|
];
|
|
671
|
-
function
|
|
612
|
+
function Ze(e, t, n) {
|
|
672
613
|
let r = [];
|
|
673
614
|
for (let i of e) {
|
|
674
615
|
if (n === "v3") {
|
|
@@ -677,8 +618,8 @@ function nt(e, t, n) {
|
|
|
677
618
|
let n = e.children[0];
|
|
678
619
|
if (n.type !== "text") return e;
|
|
679
620
|
let r = t === i.children.length - 1;
|
|
680
|
-
if (!
|
|
681
|
-
let a = n.value.split(
|
|
621
|
+
if (!z(n.value, r)) return e;
|
|
622
|
+
let a = n.value.split(qe);
|
|
682
623
|
if (a.length <= 1) return e;
|
|
683
624
|
let o = [a[0]];
|
|
684
625
|
for (let e = 1; e < a.length; e += 2) o.push(a[e] + (a[e + 1] || ""));
|
|
@@ -699,13 +640,13 @@ function nt(e, t, n) {
|
|
|
699
640
|
if (a.type !== "element") continue;
|
|
700
641
|
let o = a.children.at(0);
|
|
701
642
|
if (o?.type !== "text") continue;
|
|
702
|
-
let s = n === e.length - 1, c =
|
|
643
|
+
let s = n === e.length - 1, c = z(o.value, s), l;
|
|
703
644
|
if (!c && n > 0 && o.value.trim().startsWith("[!code")) {
|
|
704
645
|
let t = e[n - 1];
|
|
705
646
|
if (t?.type === "element") {
|
|
706
647
|
let n = t.children.at(0);
|
|
707
648
|
if (n?.type === "text" && n.value.includes("//")) {
|
|
708
|
-
let l =
|
|
649
|
+
let l = z(n.value + o.value, s);
|
|
709
650
|
if (l) {
|
|
710
651
|
c = l, r.push({
|
|
711
652
|
info: l,
|
|
@@ -722,7 +663,7 @@ function nt(e, t, n) {
|
|
|
722
663
|
}
|
|
723
664
|
if (c) {
|
|
724
665
|
if (t && !s && n !== 0) {
|
|
725
|
-
let t =
|
|
666
|
+
let t = Qe(e[n - 1], "{") && Qe(e[n + 1], "}");
|
|
726
667
|
r.push({
|
|
727
668
|
info: c,
|
|
728
669
|
line: i,
|
|
@@ -744,16 +685,16 @@ function nt(e, t, n) {
|
|
|
744
685
|
}
|
|
745
686
|
return r;
|
|
746
687
|
}
|
|
747
|
-
function
|
|
688
|
+
function Qe(e, t) {
|
|
748
689
|
if (e.type !== "element") return !1;
|
|
749
690
|
let n = e.children[0];
|
|
750
691
|
return n.type === "text" && n.value.trim() === t;
|
|
751
692
|
}
|
|
752
|
-
function
|
|
693
|
+
function z(e, t) {
|
|
753
694
|
let n = e.trimStart(), r = e.length - n.length;
|
|
754
695
|
n = n.trimEnd();
|
|
755
696
|
let i = e.length - n.length - r;
|
|
756
|
-
for (let [e, a] of
|
|
697
|
+
for (let [e, a] of Xe) {
|
|
757
698
|
if (a && !t) continue;
|
|
758
699
|
let o = e.exec(n);
|
|
759
700
|
if (o) return [
|
|
@@ -763,22 +704,22 @@ function B(e, t) {
|
|
|
763
704
|
];
|
|
764
705
|
}
|
|
765
706
|
}
|
|
766
|
-
function
|
|
767
|
-
let t = e.match(
|
|
707
|
+
function $e(e) {
|
|
708
|
+
let t = e.match(Je);
|
|
768
709
|
return t && t[1].trim().length === 0 ? e.slice(0, t.index) : e;
|
|
769
710
|
}
|
|
770
|
-
function
|
|
771
|
-
let t = e.match(
|
|
711
|
+
function et(e) {
|
|
712
|
+
let t = e.match(Ye);
|
|
772
713
|
return t && t[1].trim().length === 0 ? e.slice(0, t.index).trimEnd() : e;
|
|
773
714
|
}
|
|
774
|
-
function
|
|
715
|
+
function tt(e, t, n, r) {
|
|
775
716
|
return r ??= "v3", {
|
|
776
717
|
name: e,
|
|
777
718
|
code(e) {
|
|
778
719
|
let i = e.children.filter((e) => e.type === "element"), a = [];
|
|
779
720
|
e.data ??= {};
|
|
780
721
|
let o = e.data;
|
|
781
|
-
o._shiki_notation ??=
|
|
722
|
+
o._shiki_notation ??= Ze(i, ["jsx", "tsx"].includes(this.options.lang), r);
|
|
782
723
|
let s = o._shiki_notation;
|
|
783
724
|
for (let e of s) {
|
|
784
725
|
if (e.info[1].length === 0) continue;
|
|
@@ -786,7 +727,7 @@ function ot(e, t, n, r) {
|
|
|
786
727
|
e.isLineCommentOnly && r !== "v1" && o++;
|
|
787
728
|
let s = !1;
|
|
788
729
|
if (e.info[1] = e.info[1].replace(t, (...t) => n.call(this, t, e.line, e.token, i, o) ? (s = !0, "") : t[0]), !s) continue;
|
|
789
|
-
r === "v1" ? e.info[1] =
|
|
730
|
+
r === "v1" ? e.info[1] = $e(e.info[1]) : r === "v3" && (e.info[1] = et(e.info[1]));
|
|
790
731
|
let c = e.info[1].trim().length === 0;
|
|
791
732
|
if (c && (e.info[1] = ""), c && e.isLineCommentOnly) a.push(e.line);
|
|
792
733
|
else if (c && e.isJsxStyle) e.line.children.splice(e.line.children.indexOf(e.token) - 1, 3);
|
|
@@ -811,44 +752,44 @@ function ot(e, t, n, r) {
|
|
|
811
752
|
}
|
|
812
753
|
};
|
|
813
754
|
}
|
|
814
|
-
var
|
|
815
|
-
function
|
|
755
|
+
var nt = /\{([\d,-]+)\}/;
|
|
756
|
+
function rt(e) {
|
|
816
757
|
if (!e) return null;
|
|
817
|
-
let t = e.match(
|
|
758
|
+
let t = e.match(nt);
|
|
818
759
|
return t ? t[1].split(",").flatMap((e) => {
|
|
819
760
|
let t = e.split("-").map((e) => Number.parseInt(e, 10));
|
|
820
761
|
return t.length === 1 ? [t[0]] : Array.from({ length: t[1] - t[0] + 1 }, (e, n) => t[0] + n);
|
|
821
762
|
}) : null;
|
|
822
763
|
}
|
|
823
|
-
var
|
|
824
|
-
function
|
|
764
|
+
var it = Symbol("highlighted-lines");
|
|
765
|
+
function at(e = {}) {
|
|
825
766
|
let { className: t = "highlighted", zeroIndexed: n = !1 } = e;
|
|
826
767
|
return {
|
|
827
768
|
name: "@shikijs/transformers:meta-highlight",
|
|
828
769
|
line(e, r) {
|
|
829
770
|
if (!this.options.meta?.__raw) return;
|
|
830
771
|
let i = this.meta;
|
|
831
|
-
i[
|
|
832
|
-
let a = i[
|
|
772
|
+
i[it] ??= rt(this.options.meta.__raw);
|
|
773
|
+
let a = i[it] ?? [], o = n ? r - 1 : r;
|
|
833
774
|
return a.includes(o) && this.addClassToHast(e, t), e;
|
|
834
775
|
}
|
|
835
776
|
};
|
|
836
777
|
}
|
|
837
|
-
var
|
|
838
|
-
function
|
|
839
|
-
return e.replace(
|
|
778
|
+
var ot = /[.*+?^${}()|[\]\\]/g;
|
|
779
|
+
function st(e) {
|
|
780
|
+
return e.replace(ot, "\\$&");
|
|
840
781
|
}
|
|
841
|
-
function
|
|
782
|
+
function B(e = {}, t = "@shikijs/transformers:notation-map") {
|
|
842
783
|
let { classMap: n = {}, classActivePre: r = void 0, classActiveCode: i = void 0 } = e;
|
|
843
|
-
return
|
|
784
|
+
return tt(t, RegExp(`#?\\s*\\[!code (${Object.keys(n).map(st).join("|")})(:\\d+)?\\]`, "gi"), function([e, t, a = ":1"], o, s, c, l) {
|
|
844
785
|
let u = Number.parseInt(a.slice(1), 10);
|
|
845
786
|
for (let e = l; e < Math.min(l + u, c.length); e++) this.addClassToHast(c[e], n[t]);
|
|
846
787
|
return r && this.addClassToHast(this.pre, r), i && this.addClassToHast(this.code, i), !0;
|
|
847
788
|
}, e.matchAlgorithm);
|
|
848
789
|
}
|
|
849
|
-
function
|
|
790
|
+
function ct(e = {}) {
|
|
850
791
|
let { classLineAdd: t = "diff add", classLineRemove: n = "diff remove", classActivePre: r = "has-diff", classActiveCode: i } = e;
|
|
851
|
-
return
|
|
792
|
+
return B({
|
|
852
793
|
classMap: {
|
|
853
794
|
"++": t,
|
|
854
795
|
"--": n
|
|
@@ -858,31 +799,31 @@ function pt(e = {}) {
|
|
|
858
799
|
matchAlgorithm: e.matchAlgorithm
|
|
859
800
|
}, "@shikijs/transformers:notation-diff");
|
|
860
801
|
}
|
|
861
|
-
function
|
|
802
|
+
function lt(e = {}) {
|
|
862
803
|
let { classMap: t = {
|
|
863
804
|
error: ["highlighted", "error"],
|
|
864
805
|
warning: ["highlighted", "warning"],
|
|
865
806
|
info: ["highlighted", "info"]
|
|
866
807
|
}, classActivePre: n = "has-highlighted", classActiveCode: r } = e;
|
|
867
|
-
return
|
|
808
|
+
return B({
|
|
868
809
|
classMap: t,
|
|
869
810
|
classActivePre: n,
|
|
870
811
|
classActiveCode: r,
|
|
871
812
|
matchAlgorithm: e.matchAlgorithm
|
|
872
813
|
}, "@shikijs/transformers:notation-error-level");
|
|
873
814
|
}
|
|
874
|
-
function
|
|
815
|
+
function ut(e = {}) {
|
|
875
816
|
let { classActiveLine: t = "focused", classActivePre: n = "has-focused", classActiveCode: r } = e;
|
|
876
|
-
return
|
|
817
|
+
return B({
|
|
877
818
|
classMap: { focus: t },
|
|
878
819
|
classActivePre: n,
|
|
879
820
|
classActiveCode: r,
|
|
880
821
|
matchAlgorithm: e.matchAlgorithm
|
|
881
822
|
}, "@shikijs/transformers:notation-focus");
|
|
882
823
|
}
|
|
883
|
-
function
|
|
824
|
+
function dt(e = {}) {
|
|
884
825
|
let { classActiveLine: t = "highlighted", classActivePre: n = "has-highlighted", classActiveCode: r } = e;
|
|
885
|
-
return
|
|
826
|
+
return B({
|
|
886
827
|
classMap: {
|
|
887
828
|
highlight: t,
|
|
888
829
|
hl: t
|
|
@@ -894,42 +835,42 @@ function gt(e = {}) {
|
|
|
894
835
|
}
|
|
895
836
|
//#endregion
|
|
896
837
|
//#region src/node/lib/render/highlight/language.ts
|
|
897
|
-
var
|
|
838
|
+
var ft = [
|
|
898
839
|
"shellscript",
|
|
899
840
|
"shell",
|
|
900
841
|
"bash",
|
|
901
842
|
"sh",
|
|
902
843
|
"zsh"
|
|
903
844
|
];
|
|
904
|
-
function
|
|
905
|
-
return
|
|
845
|
+
function pt(e) {
|
|
846
|
+
return ft.includes(e);
|
|
906
847
|
}
|
|
907
|
-
var
|
|
908
|
-
function
|
|
909
|
-
return
|
|
848
|
+
var mt = /^[a-zA-Z0-9-_]+/;
|
|
849
|
+
function ht(e) {
|
|
850
|
+
return mt.exec(e)?.[0] || "";
|
|
910
851
|
}
|
|
911
852
|
//#endregion
|
|
912
853
|
//#region src/node/lib/render/highlight/index.ts
|
|
913
|
-
var
|
|
854
|
+
var gt = new FinalizationRegistry((e) => {
|
|
914
855
|
e();
|
|
915
|
-
}),
|
|
856
|
+
}), V = {
|
|
916
857
|
light: "github-light",
|
|
917
858
|
dark: "github-dark"
|
|
918
859
|
};
|
|
919
|
-
async function
|
|
920
|
-
let e = await
|
|
921
|
-
themes: [
|
|
860
|
+
async function _t() {
|
|
861
|
+
let e = await Te({
|
|
862
|
+
themes: [V.light, V.dark],
|
|
922
863
|
langs: []
|
|
923
864
|
}), t = [
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
865
|
+
at(),
|
|
866
|
+
ct(),
|
|
867
|
+
ut({
|
|
927
868
|
classActiveLine: "has-focus",
|
|
928
869
|
classActivePre: "has-focused-lines"
|
|
929
870
|
}),
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
871
|
+
dt(),
|
|
872
|
+
lt(),
|
|
873
|
+
vt(),
|
|
933
874
|
{
|
|
934
875
|
name: "typedown:add-dir",
|
|
935
876
|
pre(e) {
|
|
@@ -938,19 +879,19 @@ async function St() {
|
|
|
938
879
|
}
|
|
939
880
|
], n = new Set(e.getLoadedLanguages());
|
|
940
881
|
async function r(r, i, a) {
|
|
941
|
-
let o =
|
|
882
|
+
let o = ht(i);
|
|
942
883
|
if (o) {
|
|
943
884
|
let e = i;
|
|
944
885
|
i = o.toLowerCase(), a = e.slice(i.length).replace(/(?<!=)\{/g, " {") + " " + a, a = a.trim().replace(/\s+/g, " ");
|
|
945
886
|
}
|
|
946
887
|
i ||= "txt";
|
|
947
888
|
try {
|
|
948
|
-
!
|
|
889
|
+
!De(i) && !n.has(i) && (await e.loadLanguage(i), n.add(i));
|
|
949
890
|
} catch {
|
|
950
891
|
ae.warn(`\nThe language '${i}' is not loaded, falling back to 'txt' for syntax highlighting.`), i = "txt";
|
|
951
892
|
}
|
|
952
893
|
r = r.trimEnd();
|
|
953
|
-
let s =
|
|
894
|
+
let s = Ee(r, i, e);
|
|
954
895
|
return await e.loadLanguage(...s), e.codeToHtml(r, {
|
|
955
896
|
lang: i,
|
|
956
897
|
transformers: [...t, {
|
|
@@ -967,7 +908,7 @@ async function St() {
|
|
|
967
908
|
}
|
|
968
909
|
}],
|
|
969
910
|
meta: { __raw: a },
|
|
970
|
-
themes:
|
|
911
|
+
themes: V,
|
|
971
912
|
defaultColor: !1,
|
|
972
913
|
colorReplacements: {
|
|
973
914
|
"github-light": {
|
|
@@ -992,13 +933,13 @@ async function St() {
|
|
|
992
933
|
}
|
|
993
934
|
});
|
|
994
935
|
}
|
|
995
|
-
return
|
|
936
|
+
return gt.register(r, () => e.dispose()), r;
|
|
996
937
|
}
|
|
997
|
-
function
|
|
938
|
+
function vt() {
|
|
998
939
|
return {
|
|
999
940
|
name: "typedown:disable-shell-symbol-select",
|
|
1000
941
|
tokens(e) {
|
|
1001
|
-
if (
|
|
942
|
+
if (pt(this.options.lang)) for (let t of e) {
|
|
1002
943
|
if (t.length < 2) continue;
|
|
1003
944
|
let e = t[0].content.trim();
|
|
1004
945
|
(e === "$" || e === ">") && t[1].content[0] === " " && (t[0].content = e + " ", t[0].htmlStyle ??= {}, t[0].htmlStyle["user-select"] = "none", t[0].htmlStyle["-webkit-user-select"] = "none", t[1].content = t[1].content.slice(1));
|
|
@@ -1008,23 +949,23 @@ function Ct() {
|
|
|
1008
949
|
}
|
|
1009
950
|
//#endregion
|
|
1010
951
|
//#region src/node/lib/render/postprocess.ts
|
|
1011
|
-
var
|
|
1012
|
-
async function
|
|
1013
|
-
return e = await
|
|
952
|
+
var yt;
|
|
953
|
+
async function bt(e) {
|
|
954
|
+
return e = await Ct(e), e = Dt(e), e;
|
|
1014
955
|
}
|
|
1015
|
-
function
|
|
1016
|
-
return
|
|
956
|
+
function xt() {
|
|
957
|
+
return yt ||= _t(), yt;
|
|
1017
958
|
}
|
|
1018
|
-
var
|
|
1019
|
-
function
|
|
959
|
+
var St = /<pre class="td-code-placeholder"([^>]*)><code>([\s\S]*?)<\/code><\/pre>/g;
|
|
960
|
+
function H(e, t) {
|
|
1020
961
|
return e.match(RegExp(`${t}="([^"]*)"`))?.[1];
|
|
1021
962
|
}
|
|
1022
|
-
async function
|
|
1023
|
-
let t = await
|
|
963
|
+
async function Ct(e) {
|
|
964
|
+
let t = await xt(), n = [...e.matchAll(St)];
|
|
1024
965
|
if (n.length === 0) return e;
|
|
1025
966
|
let r = await Promise.all(n.map(async (e) => {
|
|
1026
|
-
let n = e[1], r =
|
|
1027
|
-
return
|
|
967
|
+
let n = e[1], r = H(n, "data-lang") ?? "", i = H(n, "data-meta") ?? "", a = H(n, "data-title"), o = H(n, "data-line-numbers"), s = h(e[2]);
|
|
968
|
+
return wt(await t(s, r, i), r, {
|
|
1028
969
|
title: a,
|
|
1029
970
|
lineNumbers: o
|
|
1030
971
|
});
|
|
@@ -1035,39 +976,39 @@ async function Ot(e) {
|
|
|
1035
976
|
}
|
|
1036
977
|
return i;
|
|
1037
978
|
}
|
|
1038
|
-
function
|
|
979
|
+
function wt(e, t, n) {
|
|
1039
980
|
t ||= "txt";
|
|
1040
981
|
let r = n.title ?? t.replace(/_/g, " "), i = ["language-" + t];
|
|
1041
982
|
n.title && i.push("has-title"), n.lineNumbers !== void 0 && i.push("line-numbers-mode");
|
|
1042
|
-
let a = `<div class="${i.join(" ")}"><button title="Copy code" data-copied="Copied" class="copy"></button><span class="lang">${
|
|
983
|
+
let a = `<div class="${i.join(" ")}"><button title="Copy code" data-copied="Copied" class="copy"></button><span class="lang">${m(r)}</span>` + e;
|
|
1043
984
|
if (n.lineNumbers !== void 0) {
|
|
1044
985
|
let e = parseInt(n.lineNumbers) || 1, t = a.slice(a.indexOf("<code>"), a.indexOf("</code>")).split("\n").length, r = [...Array(t)].map((t, n) => `<span class="line-number">${n + e}</span><br>`).join("");
|
|
1045
986
|
a += `<div class="line-numbers-wrapper" aria-hidden="true">${r}</div>`;
|
|
1046
987
|
}
|
|
1047
988
|
return a += "</div>", a;
|
|
1048
989
|
}
|
|
1049
|
-
var
|
|
1050
|
-
function
|
|
1051
|
-
return e = e.replace(
|
|
990
|
+
var Tt = /<span class="td-math-inline">([\s\S]*?)<\/span>/g, Et = /<div class="td-math-block">([\s\S]*?)<\/div>/g;
|
|
991
|
+
function Dt(e) {
|
|
992
|
+
return e = e.replace(Tt, (e, t) => At(t, !1)), e = e.replace(Et, (e, t) => At(t, !0)), e;
|
|
1052
993
|
}
|
|
1053
|
-
var
|
|
1054
|
-
function
|
|
994
|
+
var Ot = /`([^`]+)`|\$([^$]+)\$/g;
|
|
995
|
+
function kt(e) {
|
|
1055
996
|
let t = 0, n = "";
|
|
1056
|
-
for (let r of e.matchAll(
|
|
1057
|
-
if (n +=
|
|
997
|
+
for (let r of e.matchAll(Ot)) {
|
|
998
|
+
if (n += m(e.slice(t, r.index)), r[1] !== void 0) n += `<code>${m(r[1])}</code>`;
|
|
1058
999
|
else if (r[2] !== void 0) try {
|
|
1059
1000
|
n += ie.renderToString(r[2], { throwOnError: !1 });
|
|
1060
1001
|
} catch {
|
|
1061
|
-
n +=
|
|
1002
|
+
n += m(r[0]);
|
|
1062
1003
|
}
|
|
1063
1004
|
t = r.index + r[0].length;
|
|
1064
1005
|
}
|
|
1065
|
-
return n +=
|
|
1006
|
+
return n += m(e.slice(t)), n;
|
|
1066
1007
|
}
|
|
1067
|
-
function
|
|
1008
|
+
function At(e, t) {
|
|
1068
1009
|
let n = t ? "div" : "span";
|
|
1069
1010
|
try {
|
|
1070
|
-
return ie.renderToString(
|
|
1011
|
+
return ie.renderToString(h(e), {
|
|
1071
1012
|
throwOnError: !1,
|
|
1072
1013
|
displayMode: t
|
|
1073
1014
|
});
|
|
@@ -1077,24 +1018,24 @@ function Ft(e, t) {
|
|
|
1077
1018
|
}
|
|
1078
1019
|
//#endregion
|
|
1079
1020
|
//#region src/node/lib/render/vue.ts
|
|
1080
|
-
async function
|
|
1081
|
-
let r = t.title || t.label || (
|
|
1021
|
+
async function U(e, t, n) {
|
|
1022
|
+
let r = t.title || t.label || (p(n) ? S(n, (await e.getConfig()).siteTitle) : w(n));
|
|
1082
1023
|
return {
|
|
1083
1024
|
schema: t.schema,
|
|
1084
1025
|
schemaLabel: t.schemaLabel,
|
|
1085
1026
|
label: t.label,
|
|
1086
1027
|
icon: t.icon,
|
|
1087
1028
|
frontmatter: t.header ?? {},
|
|
1088
|
-
headings:
|
|
1029
|
+
headings: Mt(t.headings),
|
|
1089
1030
|
title: r,
|
|
1090
|
-
titleHtml:
|
|
1031
|
+
titleHtml: kt(r),
|
|
1091
1032
|
filepath: n,
|
|
1092
1033
|
fileMetadata: t.fileMetadata,
|
|
1093
1034
|
seoMetadata: t.seoMetadata
|
|
1094
1035
|
};
|
|
1095
1036
|
}
|
|
1096
|
-
async function
|
|
1097
|
-
let r = await
|
|
1037
|
+
async function jt(e, t, n) {
|
|
1038
|
+
let r = await bt(t.content), i = await U(e, t, n), a = JSON.stringify(`@typedown/pages?resource=${encodeURIComponent(n)}`);
|
|
1098
1039
|
return {
|
|
1099
1040
|
vueSrc: [
|
|
1100
1041
|
"<script>",
|
|
@@ -1106,12 +1047,12 @@ async function It(e, t, n) {
|
|
|
1106
1047
|
`import { pageData } from ${a}`,
|
|
1107
1048
|
"useRouter().route.data = pageData",
|
|
1108
1049
|
"<\/script>",
|
|
1109
|
-
`<template><div class="typedown-content">\n${
|
|
1050
|
+
`<template><div class="typedown-content">\n${Nt(r)}\n</div></template>`
|
|
1110
1051
|
].join("\n"),
|
|
1111
1052
|
pageData: i
|
|
1112
1053
|
};
|
|
1113
1054
|
}
|
|
1114
|
-
function
|
|
1055
|
+
function Mt(e) {
|
|
1115
1056
|
let t = [], n = [];
|
|
1116
1057
|
for (let r of e) {
|
|
1117
1058
|
let e = {
|
|
@@ -1127,17 +1068,17 @@ function Lt(e) {
|
|
|
1127
1068
|
}
|
|
1128
1069
|
return t;
|
|
1129
1070
|
}
|
|
1130
|
-
function
|
|
1071
|
+
function Nt(e) {
|
|
1131
1072
|
return e.replaceAll("{{", "{{").replaceAll("}}", "}}");
|
|
1132
1073
|
}
|
|
1133
1074
|
//#endregion
|
|
1134
1075
|
//#region src/node/plugin/vite/constants.ts
|
|
1135
|
-
var
|
|
1136
|
-
|
|
1137
|
-
var
|
|
1076
|
+
var Pt = "@typedown/app", Ft = "\0@typedown/app", W = "@typedown/pages", It = "\0" + W;
|
|
1077
|
+
W + "";
|
|
1078
|
+
var G = "\0@typedown/pages?resource=", K = "@typedown/site-data", Lt = "\0@typedown/site-data", q = "@typedown/search-index", Rt = "\0@typedown/search-index", J = "@typedown/theme", zt = "\0@typedown/theme", Y = "typedown:page-data";
|
|
1138
1079
|
//#endregion
|
|
1139
1080
|
//#region src/node/plugin/vite/virtual/utils.ts
|
|
1140
|
-
function
|
|
1081
|
+
function X(e, t) {
|
|
1141
1082
|
let n = e.moduleGraph.getModuleById(t);
|
|
1142
1083
|
if (n) {
|
|
1143
1084
|
e.moduleGraph.invalidateModule(n);
|
|
@@ -1154,7 +1095,7 @@ function Z(e, t) {
|
|
|
1154
1095
|
}
|
|
1155
1096
|
//#endregion
|
|
1156
1097
|
//#region src/node/plugin/vite/virtual/app.ts
|
|
1157
|
-
var
|
|
1098
|
+
var Bt = class {
|
|
1158
1099
|
async load(e) {
|
|
1159
1100
|
let t = await (await e.getTdContext()).getConfig(), n = await I(t.components, e.root);
|
|
1160
1101
|
return Re({
|
|
@@ -1170,17 +1111,17 @@ var Gt = class {
|
|
|
1170
1111
|
nav: t.nav,
|
|
1171
1112
|
userComponents: n
|
|
1172
1113
|
}, {
|
|
1173
|
-
theme:
|
|
1174
|
-
pages:
|
|
1175
|
-
siteData:
|
|
1176
|
-
searchIndex:
|
|
1177
|
-
pageDataEvent:
|
|
1114
|
+
theme: J,
|
|
1115
|
+
pages: W,
|
|
1116
|
+
siteData: K,
|
|
1117
|
+
searchIndex: q,
|
|
1118
|
+
pageDataEvent: Y
|
|
1178
1119
|
});
|
|
1179
1120
|
}
|
|
1180
1121
|
invalidate(e) {
|
|
1181
|
-
|
|
1122
|
+
X(e, Ft);
|
|
1182
1123
|
}
|
|
1183
|
-
},
|
|
1124
|
+
}, Vt = class {
|
|
1184
1125
|
async load(e) {
|
|
1185
1126
|
let t = (await e.getConfig()).rootDir ?? ".";
|
|
1186
1127
|
return `export const pages = import.meta.glob('${t === "." ? "/**/*.{td,md}" : `/${t}/**/*.{td,md}`}');`;
|
|
@@ -1189,21 +1130,21 @@ var Gt = class {
|
|
|
1189
1130
|
if (e.startsWith("@typedown/pages?resource=")) return "\0" + e;
|
|
1190
1131
|
}
|
|
1191
1132
|
isPageDataModule(e) {
|
|
1192
|
-
return e.startsWith(
|
|
1133
|
+
return e.startsWith(G);
|
|
1193
1134
|
}
|
|
1194
1135
|
async loadPageData(e, t) {
|
|
1195
|
-
let n = decodeURIComponent(e.slice(
|
|
1136
|
+
let n = decodeURIComponent(e.slice(G.length)), r = await U(t, await t.getFile(n), n);
|
|
1196
1137
|
return `export const pageData = ${JSON.stringify(r)}`;
|
|
1197
1138
|
}
|
|
1198
1139
|
invalidatePageData(e, t) {
|
|
1199
|
-
|
|
1140
|
+
X(e, G + encodeURIComponent(t));
|
|
1200
1141
|
}
|
|
1201
1142
|
sendPageData(e, t, n) {
|
|
1202
1143
|
t.getFile(n).then(async (r) => {
|
|
1203
|
-
let i = await
|
|
1144
|
+
let i = await U(t, r, n);
|
|
1204
1145
|
e.hot.send({
|
|
1205
1146
|
type: "custom",
|
|
1206
|
-
event:
|
|
1147
|
+
event: Y,
|
|
1207
1148
|
data: {
|
|
1208
1149
|
filepath: n,
|
|
1209
1150
|
pageData: i
|
|
@@ -1214,21 +1155,21 @@ var Gt = class {
|
|
|
1214
1155
|
});
|
|
1215
1156
|
}
|
|
1216
1157
|
invalidate(e) {
|
|
1217
|
-
|
|
1158
|
+
X(e, It);
|
|
1218
1159
|
}
|
|
1219
|
-
},
|
|
1160
|
+
}, Ht = class {
|
|
1220
1161
|
async load(e) {
|
|
1221
1162
|
return ze((await (await e.getTdContext()).getConfig()).layout ?? void 0, e.root);
|
|
1222
1163
|
}
|
|
1223
1164
|
invalidate(e) {
|
|
1224
|
-
|
|
1165
|
+
X(e, zt);
|
|
1225
1166
|
}
|
|
1226
|
-
},
|
|
1167
|
+
}, Ut = "\0@typedown/site-data", Wt = {
|
|
1227
1168
|
ready: !1,
|
|
1228
1169
|
contentTree: { entries: [] },
|
|
1229
1170
|
schemas: {},
|
|
1230
1171
|
directoryListings: {}
|
|
1231
|
-
},
|
|
1172
|
+
}, Gt = class {
|
|
1232
1173
|
data;
|
|
1233
1174
|
scan(e) {
|
|
1234
1175
|
let t = ye("**/*.td", {
|
|
@@ -1238,38 +1179,38 @@ var Gt = class {
|
|
|
1238
1179
|
filepath: e,
|
|
1239
1180
|
label: w(e),
|
|
1240
1181
|
header: {}
|
|
1241
|
-
})), n =
|
|
1182
|
+
})), n = v(t);
|
|
1242
1183
|
this.data = {
|
|
1243
1184
|
contentTree: n,
|
|
1244
1185
|
schemas: {},
|
|
1245
|
-
directoryListings:
|
|
1186
|
+
directoryListings: _(n.entries, "")
|
|
1246
1187
|
};
|
|
1247
1188
|
}
|
|
1248
1189
|
load(e) {
|
|
1249
1190
|
let t = this.data ? {
|
|
1250
1191
|
ready: !0,
|
|
1251
1192
|
...this.data
|
|
1252
|
-
} :
|
|
1193
|
+
} : Wt;
|
|
1253
1194
|
return `export default ${JSON.stringify(t)}`;
|
|
1254
1195
|
}
|
|
1255
1196
|
clear() {
|
|
1256
1197
|
this.data = void 0;
|
|
1257
1198
|
}
|
|
1258
|
-
fetch =
|
|
1259
|
-
|
|
1199
|
+
fetch = b((e, t) => {
|
|
1200
|
+
Kt(e).then((e) => {
|
|
1260
1201
|
this.data = e, t && this.invalidate(t);
|
|
1261
1202
|
}).catch((e) => {
|
|
1262
1203
|
console.error("[typedown] Failed to fetch site data:", e instanceof Error ? e.message : e);
|
|
1263
1204
|
});
|
|
1264
1205
|
}, 200);
|
|
1265
1206
|
async fetchSync(e) {
|
|
1266
|
-
this.data = await
|
|
1207
|
+
this.data = await Kt(e);
|
|
1267
1208
|
}
|
|
1268
1209
|
invalidate(e) {
|
|
1269
|
-
|
|
1210
|
+
X(e, Ut);
|
|
1270
1211
|
}
|
|
1271
1212
|
};
|
|
1272
|
-
async function
|
|
1213
|
+
async function Kt(e) {
|
|
1273
1214
|
let [t, n, r] = await Promise.all([
|
|
1274
1215
|
e.getConfig(),
|
|
1275
1216
|
e.listSidebar(),
|
|
@@ -1277,21 +1218,21 @@ async function Q(e) {
|
|
|
1277
1218
|
]), i = await Promise.all(r.map(async (t) => [t, (await e.getSchema(t)).properties])), a = Object.fromEntries(i), o = n.map((e) => ({
|
|
1278
1219
|
...e,
|
|
1279
1220
|
header: {}
|
|
1280
|
-
})), s =
|
|
1221
|
+
})), s = v(o);
|
|
1281
1222
|
return {
|
|
1282
1223
|
contentTree: s,
|
|
1283
1224
|
schemas: a,
|
|
1284
|
-
directoryListings:
|
|
1225
|
+
directoryListings: _(s.entries, t.siteTitle)
|
|
1285
1226
|
};
|
|
1286
1227
|
}
|
|
1287
1228
|
//#endregion
|
|
1288
1229
|
//#region src/node/lib/search-indexer/index.ts
|
|
1289
|
-
var
|
|
1230
|
+
var qt = class {
|
|
1290
1231
|
index;
|
|
1291
1232
|
constructor() {
|
|
1292
1233
|
this.index = new le({
|
|
1293
|
-
fields:
|
|
1294
|
-
storeFields:
|
|
1234
|
+
fields: g,
|
|
1235
|
+
storeFields: x
|
|
1295
1236
|
});
|
|
1296
1237
|
}
|
|
1297
1238
|
addAll(e) {
|
|
@@ -1310,19 +1251,19 @@ var Zt = class {
|
|
|
1310
1251
|
};
|
|
1311
1252
|
//#endregion
|
|
1312
1253
|
//#region src/node/lib/search-indexer/scan.ts
|
|
1313
|
-
function
|
|
1314
|
-
let n =
|
|
1254
|
+
function Jt(e, t) {
|
|
1255
|
+
let n = Qt(e), r = [];
|
|
1315
1256
|
for (let t of n) {
|
|
1316
|
-
let n =
|
|
1257
|
+
let n = Zt(e, t);
|
|
1317
1258
|
n && r.push(n);
|
|
1318
1259
|
}
|
|
1319
1260
|
t.addAll(r);
|
|
1320
1261
|
}
|
|
1321
|
-
function
|
|
1322
|
-
let i =
|
|
1323
|
-
i ? r.addPage(i) : r.discardPage(n
|
|
1262
|
+
function Yt(e, n, r) {
|
|
1263
|
+
let i = Zt(e, A(e, n));
|
|
1264
|
+
i ? r.addPage(i) : r.discardPage(t(n));
|
|
1324
1265
|
}
|
|
1325
|
-
function
|
|
1266
|
+
function Xt(e, t) {
|
|
1326
1267
|
let n = w(e);
|
|
1327
1268
|
if (!t.startsWith("---")) return {
|
|
1328
1269
|
title: n,
|
|
@@ -1339,22 +1280,22 @@ function en(e, t) {
|
|
|
1339
1280
|
body: a
|
|
1340
1281
|
};
|
|
1341
1282
|
}
|
|
1342
|
-
function
|
|
1283
|
+
function Zt(e, n) {
|
|
1343
1284
|
let r;
|
|
1344
1285
|
try {
|
|
1345
|
-
r = be(
|
|
1286
|
+
r = be(n, "utf-8");
|
|
1346
1287
|
} catch {
|
|
1347
1288
|
return;
|
|
1348
1289
|
}
|
|
1349
1290
|
if (!r.trim()) return;
|
|
1350
|
-
let i =
|
|
1291
|
+
let i = n.slice(e.length + 1), { title: a, body: o } = Xt(i, r);
|
|
1351
1292
|
return {
|
|
1352
|
-
id:
|
|
1293
|
+
id: t(i),
|
|
1353
1294
|
title: a,
|
|
1354
1295
|
text: `${a}\n${o}`
|
|
1355
1296
|
};
|
|
1356
1297
|
}
|
|
1357
|
-
function
|
|
1298
|
+
function Qt(e) {
|
|
1358
1299
|
return ye("**/*.td", {
|
|
1359
1300
|
cwd: e,
|
|
1360
1301
|
exclude: (e) => e.startsWith("_")
|
|
@@ -1362,33 +1303,33 @@ function nn(e) {
|
|
|
1362
1303
|
}
|
|
1363
1304
|
//#endregion
|
|
1364
1305
|
//#region src/node/plugin/vite/virtual/search-index.ts
|
|
1365
|
-
var
|
|
1366
|
-
indexer = new
|
|
1306
|
+
var $t = "\0@typedown/search-index", en = class {
|
|
1307
|
+
indexer = new qt();
|
|
1367
1308
|
load(e) {
|
|
1368
1309
|
return `export default ${JSON.stringify(this.indexer.serialize())}`;
|
|
1369
1310
|
}
|
|
1370
1311
|
index(e) {
|
|
1371
|
-
|
|
1312
|
+
Jt(e, this.indexer);
|
|
1372
1313
|
}
|
|
1373
1314
|
reindex(e, t) {
|
|
1374
|
-
|
|
1315
|
+
Yt(e, t, this.indexer);
|
|
1375
1316
|
}
|
|
1376
1317
|
invalidate(e) {
|
|
1377
|
-
|
|
1318
|
+
X(e, $t);
|
|
1378
1319
|
}
|
|
1379
|
-
},
|
|
1380
|
-
function
|
|
1320
|
+
}, tn = Se(import.meta.url);
|
|
1321
|
+
function nn() {
|
|
1381
1322
|
return [{
|
|
1382
1323
|
find: "vue/server-renderer",
|
|
1383
|
-
replacement:
|
|
1324
|
+
replacement: tn.resolve("vue/server-renderer")
|
|
1384
1325
|
}, {
|
|
1385
1326
|
find: "vue",
|
|
1386
|
-
replacement:
|
|
1327
|
+
replacement: tn.resolve("vue/dist/vue.runtime.esm-bundler.js")
|
|
1387
1328
|
}];
|
|
1388
1329
|
}
|
|
1389
1330
|
//#endregion
|
|
1390
1331
|
//#region src/node/plugin/vite/middleware/vault-assets.ts
|
|
1391
|
-
var
|
|
1332
|
+
var rn = {
|
|
1392
1333
|
jpg: "image/jpeg",
|
|
1393
1334
|
jpeg: "image/jpeg",
|
|
1394
1335
|
png: "image/png",
|
|
@@ -1406,50 +1347,145 @@ var cn = {
|
|
|
1406
1347
|
woff: "font/woff",
|
|
1407
1348
|
ttf: "font/ttf"
|
|
1408
1349
|
};
|
|
1409
|
-
function
|
|
1410
|
-
return (i,
|
|
1411
|
-
if (!i.url || i.method !== "GET" ||
|
|
1412
|
-
let c =
|
|
1413
|
-
if (c.startsWith("/@") || c.startsWith("/node_modules")) return
|
|
1414
|
-
let l = r
|
|
1350
|
+
function an(t, r) {
|
|
1351
|
+
return (i, o, s) => {
|
|
1352
|
+
if (!i.url || i.method !== "GET" || o.writableEnded) return s();
|
|
1353
|
+
let c = e(i.url);
|
|
1354
|
+
if (c.startsWith("/@") || c.startsWith("/node_modules")) return s();
|
|
1355
|
+
let l = n(r.basePath), u = (l && c.startsWith(l) ? c.slice(l.length) : c).replace(/^\//, ""), d = A(t.config.root, r.rootDirectory, u);
|
|
1415
1356
|
if (ve(d)) try {
|
|
1416
1357
|
let e = xe(d);
|
|
1417
1358
|
if (e.isFile()) {
|
|
1418
|
-
let t =
|
|
1419
|
-
|
|
1359
|
+
let t = rn[a(d).slice(1).toLowerCase()] ?? "application/octet-stream";
|
|
1360
|
+
o.setHeader("Content-Type", t), o.setHeader("Content-Length", e.size), _e(d).pipe(o);
|
|
1420
1361
|
return;
|
|
1421
1362
|
}
|
|
1422
1363
|
} catch {}
|
|
1423
|
-
|
|
1364
|
+
s();
|
|
1424
1365
|
};
|
|
1425
1366
|
}
|
|
1426
1367
|
//#endregion
|
|
1427
1368
|
//#region src/node/plugin/vite/middleware/virtual-html.ts
|
|
1428
|
-
function
|
|
1369
|
+
function on(t, r, i) {
|
|
1429
1370
|
return (a, o, s) => {
|
|
1430
1371
|
if (!a.url) return s();
|
|
1431
|
-
let c =
|
|
1372
|
+
let c = n(e(a.url)), l = n(i.basePath);
|
|
1432
1373
|
if (c.startsWith("/@") || c.startsWith("/node_modules") || !c.startsWith(l)) return s();
|
|
1433
1374
|
let u = c.slice(l.length);
|
|
1434
1375
|
if (u.startsWith("/@") || u.startsWith("/node_modules") || c.includes(".") && !c.endsWith("/index.html")) return s();
|
|
1435
|
-
|
|
1436
|
-
let n = await
|
|
1376
|
+
r.getConfig().then(async (e) => {
|
|
1377
|
+
let n = await t.transformIndexHtml(a.url ?? "", sn(i, e));
|
|
1437
1378
|
o.setHeader("Content-Type", "text/html"), o.end(n);
|
|
1438
1379
|
}).catch(() => s());
|
|
1439
1380
|
};
|
|
1440
1381
|
}
|
|
1441
|
-
function
|
|
1382
|
+
function sn(e, t) {
|
|
1442
1383
|
return e.devHtml === void 0 && (e.devHtml = ne({
|
|
1443
1384
|
title: t.siteTitle,
|
|
1444
1385
|
description: t.siteDescription,
|
|
1445
1386
|
base: "/",
|
|
1446
|
-
entryScript:
|
|
1387
|
+
entryScript: Pt
|
|
1447
1388
|
})), e.devHtml;
|
|
1448
1389
|
}
|
|
1449
1390
|
//#endregion
|
|
1450
|
-
//#region src/node/
|
|
1451
|
-
|
|
1391
|
+
//#region src/node/lib/prop-schema.ts
|
|
1392
|
+
function cn(e, t, n) {
|
|
1393
|
+
let r = {};
|
|
1394
|
+
for (let i of e) {
|
|
1395
|
+
let e = `./${k.relative(t, i.absolutePath)}`;
|
|
1396
|
+
try {
|
|
1397
|
+
let t = n.getComponentMeta(i.absolutePath), a = {}, o = !1;
|
|
1398
|
+
for (let e of t.props) {
|
|
1399
|
+
if (e.global) continue;
|
|
1400
|
+
let t = Z(e.schema);
|
|
1401
|
+
if (t !== void 0) {
|
|
1402
|
+
let n = { schema: e.required ? t : u(t) };
|
|
1403
|
+
e.description && (n.description = e.description), a[e.name] = n, o = !0;
|
|
1404
|
+
}
|
|
1405
|
+
}
|
|
1406
|
+
let s = t.slots.map((e) => e.name).filter((e) => e !== "default");
|
|
1407
|
+
r[i.name] = {
|
|
1408
|
+
source: e,
|
|
1409
|
+
props: o ? a : void 0,
|
|
1410
|
+
slots: 0 < s.length ? s : void 0
|
|
1411
|
+
};
|
|
1412
|
+
} catch {
|
|
1413
|
+
r[i.name] = { source: e };
|
|
1414
|
+
}
|
|
1415
|
+
}
|
|
1416
|
+
return r;
|
|
1417
|
+
}
|
|
1418
|
+
function ln(e) {
|
|
1419
|
+
if (!e || e.length !== 1) return;
|
|
1420
|
+
let t = Z(e[0]);
|
|
1421
|
+
return t === void 0 ? void 0 : {
|
|
1422
|
+
type: "array",
|
|
1423
|
+
items: t
|
|
1424
|
+
};
|
|
1425
|
+
}
|
|
1426
|
+
function un(e, t) {
|
|
1427
|
+
if (t && 0 < Object.keys(t).length) return fn(t);
|
|
1428
|
+
let n = /^(?:Record<string,\s*(\w+)>|\{\s*\[key:\s*string\]:\s*(\w+);\s*\})$/.exec(e);
|
|
1429
|
+
if (!n) return;
|
|
1430
|
+
let r = dn(n[1] ?? n[2]);
|
|
1431
|
+
return r === void 0 ? void 0 : {
|
|
1432
|
+
type: "object",
|
|
1433
|
+
additionalProperties: r
|
|
1434
|
+
};
|
|
1435
|
+
}
|
|
1436
|
+
function dn(e) {
|
|
1437
|
+
switch (e) {
|
|
1438
|
+
case "string": return { type: "string" };
|
|
1439
|
+
case "number": return { type: "number" };
|
|
1440
|
+
case "boolean": return { type: "boolean" };
|
|
1441
|
+
default: return;
|
|
1442
|
+
}
|
|
1443
|
+
}
|
|
1444
|
+
function fn(e) {
|
|
1445
|
+
let t = {}, n = [];
|
|
1446
|
+
for (let [r, i] of Object.entries(e)) {
|
|
1447
|
+
let e = Z(i.schema);
|
|
1448
|
+
if (e === void 0) return;
|
|
1449
|
+
t[r] = e, i.required && n.push(r);
|
|
1450
|
+
}
|
|
1451
|
+
let r = {
|
|
1452
|
+
type: "object",
|
|
1453
|
+
properties: t,
|
|
1454
|
+
additionalProperties: !1
|
|
1455
|
+
};
|
|
1456
|
+
return 0 < n.length && (r.required = n), r;
|
|
1457
|
+
}
|
|
1458
|
+
function Z(e) {
|
|
1459
|
+
if (typeof e == "string") return dn(e);
|
|
1460
|
+
switch (e.kind) {
|
|
1461
|
+
case "enum": return pn(e.schema);
|
|
1462
|
+
case "array": return ln(e.schema);
|
|
1463
|
+
case "object": return un(e.type, e.schema);
|
|
1464
|
+
default: return;
|
|
1465
|
+
}
|
|
1466
|
+
}
|
|
1452
1467
|
function pn(e) {
|
|
1468
|
+
let t = e ?? [], n = t.some((e) => e === "undefined" || e === "null"), r = t.filter((e) => e !== "undefined" && e !== "null");
|
|
1469
|
+
if (r.length !== 0) {
|
|
1470
|
+
if (r.length === 1) {
|
|
1471
|
+
let e = Z(r[0]);
|
|
1472
|
+
return e === void 0 ? void 0 : n ? u(e) : e;
|
|
1473
|
+
}
|
|
1474
|
+
if (r.every((e) => typeof e == "object" && e.kind === "literal")) {
|
|
1475
|
+
let e = [];
|
|
1476
|
+
for (let t of r) {
|
|
1477
|
+
if (typeof t == "string" || !("value" in t)) return;
|
|
1478
|
+
e.push(t.value);
|
|
1479
|
+
}
|
|
1480
|
+
let t = { enum: e };
|
|
1481
|
+
return n ? u(t) : t;
|
|
1482
|
+
}
|
|
1483
|
+
}
|
|
1484
|
+
}
|
|
1485
|
+
//#endregion
|
|
1486
|
+
//#region src/node/plugin/vite/subplugins/component-contract.ts
|
|
1487
|
+
var mn = ".typedown/components.json";
|
|
1488
|
+
function hn(e) {
|
|
1453
1489
|
return {
|
|
1454
1490
|
name: "vite-plugin-typedown-component-contract",
|
|
1455
1491
|
async buildStart() {
|
|
@@ -1462,35 +1498,47 @@ function pn(e) {
|
|
|
1462
1498
|
let n = e();
|
|
1463
1499
|
n && n.getTdContext().then(async (e) => {
|
|
1464
1500
|
let r = await e.getConfig(), i = await I(r.components, n.root);
|
|
1465
|
-
$(n.root, i),
|
|
1501
|
+
$(n.root, i), gn(t, r.components, n.root);
|
|
1466
1502
|
}).catch(() => {});
|
|
1467
1503
|
}
|
|
1468
1504
|
};
|
|
1469
1505
|
}
|
|
1470
|
-
function
|
|
1506
|
+
function gn(e, t, n) {
|
|
1471
1507
|
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))));
|
|
1472
1508
|
for (let t of i) e.watcher.add(t);
|
|
1473
1509
|
let a = (a) => {
|
|
1474
|
-
|
|
1510
|
+
_n(a, r, i) && (e.config.logger.info("[typedown] component changed, rebuilding contract..."), I(t, n).then((e) => $(n, e)).catch(() => {}));
|
|
1475
1511
|
};
|
|
1476
1512
|
e.watcher.on("change", a), e.watcher.on("add", a), e.watcher.on("unlink", a);
|
|
1477
1513
|
}
|
|
1478
|
-
function
|
|
1514
|
+
function _n(e, t, n) {
|
|
1479
1515
|
if (!e.endsWith(".vue")) return !1;
|
|
1480
1516
|
let r = M(e);
|
|
1481
1517
|
if (t.has(r)) return !0;
|
|
1482
1518
|
for (let e of n) if (r.startsWith(e + "/")) return !0;
|
|
1483
1519
|
return !1;
|
|
1484
1520
|
}
|
|
1521
|
+
function vn() {
|
|
1522
|
+
try {
|
|
1523
|
+
let e = k.resolve(k.dirname(me(import.meta.url)), "builtin-components.json");
|
|
1524
|
+
return JSON.parse(P.readFileSync(e, "utf-8"));
|
|
1525
|
+
} catch {
|
|
1526
|
+
return {};
|
|
1527
|
+
}
|
|
1528
|
+
}
|
|
1529
|
+
var Q = vn();
|
|
1485
1530
|
function $(e, t) {
|
|
1486
|
-
if (t.length === 0) return;
|
|
1487
|
-
let n =
|
|
1488
|
-
|
|
1531
|
+
if (!(0 < Object.keys(Q).length) && t.length === 0) return;
|
|
1532
|
+
let n = 0 < t.length ? cn(t, e, Be(e)) : {}, r = {
|
|
1533
|
+
...Q,
|
|
1534
|
+
...n
|
|
1535
|
+
}, i = k.join(e, mn);
|
|
1536
|
+
P.mkdirSync(k.dirname(i), { recursive: !0 }), P.writeFileSync(i, JSON.stringify(r, null, 2));
|
|
1489
1537
|
}
|
|
1490
1538
|
//#endregion
|
|
1491
1539
|
//#region src/node/plugin/vite/index.ts
|
|
1492
|
-
function
|
|
1493
|
-
let t = e.context, n,
|
|
1540
|
+
function yn(e = {}) {
|
|
1541
|
+
let t = e.context, n, i, a, o = new Bt(), s = new Ht(), l = new Vt(), u = new Gt(), d = new en(), f = {
|
|
1494
1542
|
devHtml: void 0,
|
|
1495
1543
|
basePath: "/",
|
|
1496
1544
|
rootDirectory: "vault"
|
|
@@ -1507,7 +1555,7 @@ function gn(e = {}) {
|
|
|
1507
1555
|
let r = e.root ? A(n.root ?? process.cwd(), e.root) : ce(n.root ?? process.cwd());
|
|
1508
1556
|
t = se(r);
|
|
1509
1557
|
}
|
|
1510
|
-
|
|
1558
|
+
a = n.base ?? "/";
|
|
1511
1559
|
let r = await (await p()).getConfig();
|
|
1512
1560
|
return {
|
|
1513
1561
|
base: n.base ?? r.basePath,
|
|
@@ -1516,38 +1564,38 @@ function gn(e = {}) {
|
|
|
1516
1564
|
port: n.server?.port ?? 8686,
|
|
1517
1565
|
strictPort: n.server?.strictPort ?? !1
|
|
1518
1566
|
},
|
|
1519
|
-
resolve: { alias:
|
|
1567
|
+
resolve: { alias: nn() },
|
|
1520
1568
|
ssr: { noExternal: ["typerighter"] }
|
|
1521
1569
|
};
|
|
1522
1570
|
},
|
|
1523
1571
|
configResolved(e) {
|
|
1524
|
-
|
|
1572
|
+
i = A(e.root, e.build.outDir);
|
|
1525
1573
|
},
|
|
1526
1574
|
async buildStart() {
|
|
1527
1575
|
if (n) return;
|
|
1528
1576
|
let e = await p(), t = await e.getConfig(), r = A(t.rootDir);
|
|
1529
1577
|
d.index(r), await u.fetchSync(e);
|
|
1530
1578
|
let i = await e.checkVault();
|
|
1531
|
-
if (
|
|
1579
|
+
if (wn(i.diagnostics), 0 < i.errorCount) {
|
|
1532
1580
|
let e = i.diagnostics.filter((e) => e.severity === "error").map((e) => ` ${e.filepath}:${e.line}:${e.column} - ${e.message} (${e.code})`);
|
|
1533
1581
|
this.error(`Vault check failed with ${i.errorCount} error(s):\n${e.join("\n")}`);
|
|
1534
1582
|
}
|
|
1535
1583
|
},
|
|
1536
1584
|
resolveId(e) {
|
|
1537
|
-
if (e === "/@typedown/app" || e === "@typedown/app") return
|
|
1538
|
-
if (e === "@typedown/pages") return
|
|
1539
|
-
if (e.startsWith("@typedown/pages?resource=")) return
|
|
1540
|
-
if (e === "@typedown/site-data") return
|
|
1541
|
-
if (e === "@typedown/search-index") return
|
|
1542
|
-
if (e === "@typedown/theme") return
|
|
1585
|
+
if (e === "/@typedown/app" || e === "@typedown/app") return Ft;
|
|
1586
|
+
if (e === "@typedown/pages") return It;
|
|
1587
|
+
if (e.startsWith("@typedown/pages?resource=")) return l.resolvePageData(e);
|
|
1588
|
+
if (e === "@typedown/site-data") return Lt;
|
|
1589
|
+
if (e === "@typedown/search-index") return Rt;
|
|
1590
|
+
if (e === "@typedown/theme") return zt;
|
|
1543
1591
|
},
|
|
1544
1592
|
async load(e) {
|
|
1545
|
-
if (
|
|
1593
|
+
if (l.isPageDataModule(e)) return l.loadPageData(e, await p());
|
|
1546
1594
|
if (e !== "\0@typedown/search-index" && e !== "\0@typedown/site-data" && e !== "\0@typedown/pages" && e !== "\0@typedown/app" && e !== "\0@typedown/theme") return;
|
|
1547
1595
|
let n = await p();
|
|
1548
1596
|
if (e === "\0@typedown/search-index") return d.load(n);
|
|
1549
1597
|
if (e === "\0@typedown/site-data") return u.load(n);
|
|
1550
|
-
if (e === "\0@typedown/pages") return
|
|
1598
|
+
if (e === "\0@typedown/pages") return l.load(n);
|
|
1551
1599
|
if (e === "\0@typedown/app") return o.load(t);
|
|
1552
1600
|
if (e === "\0@typedown/theme") return s.load(t);
|
|
1553
1601
|
},
|
|
@@ -1556,11 +1604,11 @@ function gn(e = {}) {
|
|
|
1556
1604
|
let t = await p(), r = await t.getConfig(), i = A(r.rootDir);
|
|
1557
1605
|
d.index(i), u.scan(i), u.fetch(t, n), e.httpServer?.once("listening", async () => {
|
|
1558
1606
|
let e = await t.checkVault();
|
|
1559
|
-
0 < e.diagnostics.length && (console.error(""),
|
|
1607
|
+
0 < e.diagnostics.length && (console.error(""), wn(e.diagnostics));
|
|
1560
1608
|
}), t.rpc.onConfigChanged(() => {
|
|
1561
|
-
n && (f.devHtml = void 0, u.clear(), o.invalidate(n), s.invalidate(n),
|
|
1609
|
+
n && (f.devHtml = void 0, u.clear(), o.invalidate(n), s.invalidate(n), l.invalidate(n), xn(n), u.fetch(t, n));
|
|
1562
1610
|
}), t.rpc.onComponentContractChanged(() => {
|
|
1563
|
-
n && (o.invalidate(n),
|
|
1611
|
+
n && (o.invalidate(n), xn(n));
|
|
1564
1612
|
});
|
|
1565
1613
|
function a(...e) {
|
|
1566
1614
|
n && t.getConfig().then((t) => {
|
|
@@ -1569,8 +1617,8 @@ function gn(e = {}) {
|
|
|
1569
1617
|
for (let i of e) {
|
|
1570
1618
|
let e = M(A(n.config.root, t.rootDir, i)), a = n.moduleGraph.getModulesByFile(e);
|
|
1571
1619
|
if (a?.size) {
|
|
1572
|
-
for (let e of a) n.moduleGraph.invalidateModule(e), r.push(
|
|
1573
|
-
|
|
1620
|
+
for (let e of a) n.moduleGraph.invalidateModule(e), r.push(Cn(e));
|
|
1621
|
+
l.invalidatePageData(n, i);
|
|
1574
1622
|
}
|
|
1575
1623
|
}
|
|
1576
1624
|
0 < r.length && n.hot.send({
|
|
@@ -1580,29 +1628,29 @@ function gn(e = {}) {
|
|
|
1580
1628
|
}).catch(() => {});
|
|
1581
1629
|
}
|
|
1582
1630
|
t.rpc.onContentUpdated(({ filepath: e, affectedFiles: r = [] }) => {
|
|
1583
|
-
n && (d.reindex(i, e), d.invalidate(n),
|
|
1631
|
+
n && (d.reindex(i, e), d.invalidate(n), l.invalidate(n), u.fetch(t, n), a(e, ...r), l.sendPageData(n, t, e));
|
|
1584
1632
|
}), t.rpc.onContentDeleted(({ filepath: e }) => {
|
|
1585
|
-
n && (d.reindex(i, e), d.invalidate(n),
|
|
1633
|
+
n && (d.reindex(i, e), d.invalidate(n), l.invalidate(n), u.fetch(t, n), a(e));
|
|
1586
1634
|
});
|
|
1587
|
-
function
|
|
1588
|
-
n && (u.clear(),
|
|
1635
|
+
function c() {
|
|
1636
|
+
n && (u.clear(), Sn(n), u.fetch(t, n));
|
|
1589
1637
|
}
|
|
1590
|
-
t.rpc.onSchemaUpdated(
|
|
1638
|
+
t.rpc.onSchemaUpdated(c), t.rpc.onSchemaDeleted(c);
|
|
1591
1639
|
let m = await t.getConfig();
|
|
1592
1640
|
f.basePath = m.basePath, f.rootDirectory = m.rootDir, t.rpc.onConfigChanged((e) => {
|
|
1593
1641
|
f.basePath = e.basePath, f.rootDirectory = e.rootDir, f.devHtml = void 0;
|
|
1594
|
-
}), e.middlewares.use(
|
|
1642
|
+
}), e.middlewares.use(an(e, f)), e.middlewares.use(on(e, t, f));
|
|
1595
1643
|
},
|
|
1596
1644
|
async transform(e, t) {
|
|
1597
1645
|
let n = t.split("?")[0];
|
|
1598
|
-
if (!
|
|
1646
|
+
if (!c(n)) return;
|
|
1599
1647
|
if (T(n)) return {
|
|
1600
|
-
code: `<script>import theme from '${
|
|
1648
|
+
code: `<script>import theme from '${J}'; import { TdNotFound } from 'typerighter/client/theme-default'; export default theme.NotFound || TdNotFound; export const pageData = { frontmatter: {}, headings: [], title: '' };<\/script>`,
|
|
1601
1649
|
map: null
|
|
1602
1650
|
};
|
|
1603
|
-
let
|
|
1651
|
+
let i = await p(), a = await i.getConfig(), o = r(n, a.rootDir);
|
|
1604
1652
|
try {
|
|
1605
|
-
let { vueSrc: e } = await
|
|
1653
|
+
let { vueSrc: e } = await jt(i, await i.getFile(o), o);
|
|
1606
1654
|
return {
|
|
1607
1655
|
code: e,
|
|
1608
1656
|
map: null
|
|
@@ -1614,13 +1662,13 @@ function gn(e = {}) {
|
|
|
1614
1662
|
}
|
|
1615
1663
|
},
|
|
1616
1664
|
handleHotUpdate({ file: e }) {
|
|
1617
|
-
if (
|
|
1665
|
+
if (c(e)) return [];
|
|
1618
1666
|
},
|
|
1619
1667
|
async closeBundle() {
|
|
1620
1668
|
if (!e.context && t) try {
|
|
1621
|
-
let e = (await (await t.getTdContext()).getConfig()).basePath, n = e.startsWith(
|
|
1622
|
-
await
|
|
1623
|
-
outDir: A(
|
|
1669
|
+
let e = (await (await t.getTdContext()).getConfig()).basePath, n = e.startsWith(a) ? e.slice(a.length) : e.replace(/^\//, "");
|
|
1670
|
+
await Ue(t, {
|
|
1671
|
+
outDir: A(i, n),
|
|
1624
1672
|
base: e
|
|
1625
1673
|
});
|
|
1626
1674
|
} finally {
|
|
@@ -1633,26 +1681,26 @@ function gn(e = {}) {
|
|
|
1633
1681
|
});
|
|
1634
1682
|
return [
|
|
1635
1683
|
m,
|
|
1636
|
-
|
|
1684
|
+
hn(() => t),
|
|
1637
1685
|
h,
|
|
1638
1686
|
...ue()
|
|
1639
1687
|
];
|
|
1640
1688
|
}
|
|
1641
|
-
function
|
|
1689
|
+
function bn(e) {
|
|
1642
1690
|
return [...e.moduleGraph.idToModuleMap.entries()].filter(([e]) => e.endsWith(".td")).map(([, e]) => e);
|
|
1643
1691
|
}
|
|
1644
|
-
function
|
|
1645
|
-
for (let t of
|
|
1692
|
+
function xn(e) {
|
|
1693
|
+
for (let t of bn(e)) e.moduleGraph.invalidateModule(t);
|
|
1646
1694
|
e.hot.send({ type: "full-reload" });
|
|
1647
1695
|
}
|
|
1648
|
-
function
|
|
1649
|
-
let t =
|
|
1696
|
+
function Sn(e) {
|
|
1697
|
+
let t = bn(e).map((t) => (e.moduleGraph.invalidateModule(t), Cn(t)));
|
|
1650
1698
|
0 < t.length && e.hot.send({
|
|
1651
1699
|
type: "update",
|
|
1652
1700
|
updates: t
|
|
1653
1701
|
});
|
|
1654
1702
|
}
|
|
1655
|
-
function
|
|
1703
|
+
function Cn(e) {
|
|
1656
1704
|
return {
|
|
1657
1705
|
type: "js-update",
|
|
1658
1706
|
path: e.url,
|
|
@@ -1660,11 +1708,11 @@ function bn(e) {
|
|
|
1660
1708
|
timestamp: Date.now()
|
|
1661
1709
|
};
|
|
1662
1710
|
}
|
|
1663
|
-
function
|
|
1711
|
+
function wn(e) {
|
|
1664
1712
|
for (let t of e) {
|
|
1665
1713
|
let e = `${t.filepath}:${t.line}:${t.column}`, n = t.severity === "error" ? j.red("error") : j.yellow("warn");
|
|
1666
1714
|
console.error(` ${n} ${e} ${t.message} ${j.dim(`(${t.code})`)}`);
|
|
1667
1715
|
}
|
|
1668
1716
|
}
|
|
1669
1717
|
//#endregion
|
|
1670
|
-
export {
|
|
1718
|
+
export { K as a, q as i, W as n, J as o, Y as r, Ue as s, yn as t };
|