@cudoment/cudoc 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- package/dist/document.d.ts +25 -0
- package/dist/document.d.ts.map +1 -1
- package/dist/document.js +21 -1
- package/dist/document.js.map +1 -1
- package/dist/internal/core/query/sections.d.ts +6 -0
- package/dist/internal/core/query/sections.d.ts.map +1 -1
- package/dist/internal/core/query/sections.js +8 -2
- package/dist/internal/core/query/sections.js.map +1 -1
- package/dist/node/check.d.ts +7 -4
- package/dist/node/check.d.ts.map +1 -1
- package/dist/node/check.js +368 -65
- package/dist/node/check.js.map +1 -1
- package/dist/node/cli.js +2 -81
- package/dist/node/cli.js.map +1 -1
- package/dist/node/collect.d.ts +41 -0
- package/dist/node/collect.d.ts.map +1 -0
- package/dist/node/collect.js +351 -0
- package/dist/node/collect.js.map +1 -0
- package/dist/node/command.d.ts +23 -0
- package/dist/node/command.d.ts.map +1 -0
- package/dist/node/command.js +116 -0
- package/dist/node/command.js.map +1 -0
- package/dist/node/dataset.d.ts.map +1 -1
- package/dist/node/dataset.js +4 -1
- package/dist/node/dataset.js.map +1 -1
- package/dist/node/library.d.ts +9 -5
- package/dist/node/library.d.ts.map +1 -1
- package/dist/node/library.js +15 -253
- package/dist/node/library.js.map +1 -1
- package/dist/node/load-ast.d.ts.map +1 -1
- package/dist/node/load-ast.js +4 -1
- package/dist/node/load-ast.js.map +1 -1
- package/dist/node/local-target.d.ts +11 -0
- package/dist/node/local-target.d.ts.map +1 -1
- package/dist/node/local-target.js +54 -2
- package/dist/node/local-target.js.map +1 -1
- package/dist/node/prepare-embeds.d.ts +36 -1
- package/dist/node/prepare-embeds.d.ts.map +1 -1
- package/dist/node/prepare-embeds.js +94 -4
- package/dist/node/prepare-embeds.js.map +1 -1
- package/dist/node/references.d.ts +39 -0
- package/dist/node/references.d.ts.map +1 -0
- package/dist/node/references.js +101 -0
- package/dist/node/references.js.map +1 -0
- package/dist/node/replace.d.ts +65 -0
- package/dist/node/replace.d.ts.map +1 -0
- package/dist/node/replace.js +285 -0
- package/dist/node/replace.js.map +1 -0
- package/dist/node/resolve-embed.d.ts.map +1 -1
- package/dist/node/resolve-embed.js +232 -103
- package/dist/node/resolve-embed.js.map +1 -1
- package/dist/node/roots.d.ts +12 -1
- package/dist/node/roots.d.ts.map +1 -1
- package/dist/node/roots.js +47 -11
- package/dist/node/roots.js.map +1 -1
- package/dist/node/storage.d.ts.map +1 -1
- package/dist/node/storage.js +202 -9
- package/dist/node/storage.js.map +1 -1
- package/dist/node/watch.d.ts +9 -4
- package/dist/node/watch.d.ts.map +1 -1
- package/dist/node/watch.js +51 -17
- package/dist/node/watch.js.map +1 -1
- package/dist/render.d.ts +1 -1
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +14 -0
- package/dist/render.js.map +1 -1
- package/dist/sections.d.ts.map +1 -1
- package/dist/sections.js +7 -3
- package/dist/sections.js.map +1 -1
- package/package.json +15 -15
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `cudoc` command line as a function: arguments in, exit code out. The
|
|
3
|
+
* installed binary (`cli.ts`) runs it with the process's own streams; a test
|
|
4
|
+
* calls it directly. It is not a package entry point.
|
|
5
|
+
*/
|
|
6
|
+
export declare const USAGE = "Usage: cudoc <collect|check|dataset> --config config.mjs [--watch] [--format text|json] [--strict]";
|
|
7
|
+
/** Where the command writes: standard output and standard error. */
|
|
8
|
+
export type CommandOutput = {
|
|
9
|
+
out(text: string): void;
|
|
10
|
+
error(value: unknown): void;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* What the process prints for a failure. cudoc's own errors describe the
|
|
14
|
+
* document and are printed as they read; anything else keeps its stack, since
|
|
15
|
+
* it is a fault rather than a finding.
|
|
16
|
+
*/
|
|
17
|
+
export declare const describeError: (value: unknown) => unknown;
|
|
18
|
+
/**
|
|
19
|
+
* Runs one command. Resolves with the exit code; a `collect --watch` resolves
|
|
20
|
+
* after its first pass and keeps watching until the process is signalled.
|
|
21
|
+
*/
|
|
22
|
+
export declare function runCommand(argv: string[], io?: CommandOutput): Promise<number>;
|
|
23
|
+
//# sourceMappingURL=command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/node/command.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,eAAO,MAAM,KAAK,uGACoF,CAAA;AAEtG,oEAAoE;AACpE,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;CAC5B,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,OAAO,KAAG,OAoB9C,CAAA;AAOD;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,EAAE,EACd,EAAE,GAAE,aAA6B,GAChC,OAAO,CAAC,MAAM,CAAC,CA8FjB"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `cudoc` command line as a function: arguments in, exit code out. The
|
|
3
|
+
* installed binary (`cli.ts`) runs it with the process's own streams; a test
|
|
4
|
+
* calls it directly. It is not a package entry point.
|
|
5
|
+
*/
|
|
6
|
+
import fs from "node:fs";
|
|
7
|
+
import path from "node:path";
|
|
8
|
+
import { pathToFileURL } from "node:url";
|
|
9
|
+
import { loadLibrary } from "./library.js";
|
|
10
|
+
import { generateDataset } from "./dataset.js";
|
|
11
|
+
import { checkReferences } from "./check.js";
|
|
12
|
+
import { formatCheckResult } from "./report.js";
|
|
13
|
+
import { collectDocuments, watchDocuments } from "./watch.js";
|
|
14
|
+
export const USAGE = "Usage: cudoc <collect|check|dataset> --config config.mjs [--watch] [--format text|json] [--strict]";
|
|
15
|
+
/**
|
|
16
|
+
* What the process prints for a failure. cudoc's own errors describe the
|
|
17
|
+
* document and are printed as they read; anything else keeps its stack, since
|
|
18
|
+
* it is a fault rather than a finding.
|
|
19
|
+
*/
|
|
20
|
+
export const describeError = (value) => {
|
|
21
|
+
if (!(value instanceof Error) ||
|
|
22
|
+
!(/^cudoc[\w-]*: /.test(value.message) || value.message === USAGE))
|
|
23
|
+
return value;
|
|
24
|
+
// A finding may wrap what caused it, a parser's message for instance. A
|
|
25
|
+
// cause the message already repeats, as a block's names its resolver's,
|
|
26
|
+
// adds nothing.
|
|
27
|
+
let text = value.message;
|
|
28
|
+
for (let cause = value.cause; cause !== undefined; cause = cause instanceof Error ? cause.cause : undefined) {
|
|
29
|
+
const reason = cause instanceof Error ? cause.message : String(cause);
|
|
30
|
+
if (!text.includes(reason.replace(/^cudoc[\w-]*: /, "")))
|
|
31
|
+
text += `\n caused by: ${reason}`;
|
|
32
|
+
}
|
|
33
|
+
return text;
|
|
34
|
+
};
|
|
35
|
+
const processOutput = {
|
|
36
|
+
out: (text) => console.log(text),
|
|
37
|
+
error: (value) => console.error(describeError(value)),
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Runs one command. Resolves with the exit code; a `collect --watch` resolves
|
|
41
|
+
* after its first pass and keeps watching until the process is signalled.
|
|
42
|
+
*/
|
|
43
|
+
export async function runCommand(argv, io = processOutput) {
|
|
44
|
+
try {
|
|
45
|
+
const [command] = argv;
|
|
46
|
+
const flags = new Set(argv.filter((value) => value.startsWith("--")));
|
|
47
|
+
const configIndex = argv.indexOf("--config");
|
|
48
|
+
const formatIndex = argv.indexOf("--format");
|
|
49
|
+
const format = formatIndex === -1 ? "text" : argv[formatIndex + 1];
|
|
50
|
+
if (!["collect", "check", "dataset"].includes(command ?? "") ||
|
|
51
|
+
configIndex === -1 ||
|
|
52
|
+
!argv[configIndex + 1] ||
|
|
53
|
+
(format !== "text" && format !== "json"))
|
|
54
|
+
throw new Error(USAGE);
|
|
55
|
+
const configPath = argv[configIndex + 1];
|
|
56
|
+
const config = configPath.endsWith(".json")
|
|
57
|
+
? JSON.parse(fs.readFileSync(configPath, "utf8"))
|
|
58
|
+
: (await import(pathToFileURL(path.resolve(configPath)).href)).default;
|
|
59
|
+
if (command === "dataset") {
|
|
60
|
+
io.out(JSON.stringify(generateDataset(config)));
|
|
61
|
+
return 0;
|
|
62
|
+
}
|
|
63
|
+
if (command === "check") {
|
|
64
|
+
// Checking reads the library the last collection published, which is
|
|
65
|
+
// the one the host build renders from, and writes nothing. It needs no
|
|
66
|
+
// compiler: a host's collector script keeps that, not this config.
|
|
67
|
+
const outDir = config.outDir ?? ".cudoc/documents";
|
|
68
|
+
if (!fs.existsSync(path.join(outDir, "manifest.json")))
|
|
69
|
+
throw new Error(`cudoc: no collected library in ${outDir}; collect documents before checking them`);
|
|
70
|
+
const library = loadLibrary(outDir, undefined, config.roots ?? config.sourceRoot);
|
|
71
|
+
// A stored library keeps no functions: a table column that names an
|
|
72
|
+
// extractor is checked with the one the same configuration registers.
|
|
73
|
+
if (config.extractors)
|
|
74
|
+
library.extractors = config.extractors;
|
|
75
|
+
const result = checkReferences(library, config.check ?? {});
|
|
76
|
+
io.out(format === "json"
|
|
77
|
+
? JSON.stringify(result, null, 2)
|
|
78
|
+
: formatCheckResult(result));
|
|
79
|
+
const blocking = result.issues.filter((issue) => issue.severity === "error" || flags.has("--strict"));
|
|
80
|
+
return blocking.length ? 1 : 0;
|
|
81
|
+
}
|
|
82
|
+
if (flags.has("--watch")) {
|
|
83
|
+
// The first pass starts from whatever the output directory holds, and
|
|
84
|
+
// every pass reports what it compiled; a failed pass is a message and
|
|
85
|
+
// the last good output stays in place.
|
|
86
|
+
const watcher = watchDocuments(config, {
|
|
87
|
+
onPass: ({ documentCount, compiled, reused, blocks, reusedBlocks, outDir, elapsed, }) => io.out(JSON.stringify({
|
|
88
|
+
documentCount,
|
|
89
|
+
compiled,
|
|
90
|
+
reused,
|
|
91
|
+
blocks,
|
|
92
|
+
reusedBlocks,
|
|
93
|
+
outDir,
|
|
94
|
+
elapsed,
|
|
95
|
+
})),
|
|
96
|
+
onError: (error) => io.error(error),
|
|
97
|
+
});
|
|
98
|
+
const stop = () => {
|
|
99
|
+
watcher.close();
|
|
100
|
+
process.exit(0);
|
|
101
|
+
};
|
|
102
|
+
process.on("SIGINT", stop);
|
|
103
|
+
process.on("SIGTERM", stop);
|
|
104
|
+
await watcher.ready;
|
|
105
|
+
return 0;
|
|
106
|
+
}
|
|
107
|
+
const { documentCount, outDir } = await collectDocuments(config);
|
|
108
|
+
io.out(JSON.stringify({ documentCount, outDir }));
|
|
109
|
+
return 0;
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
io.error(error);
|
|
113
|
+
return 1;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/node/command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataset.d.ts","sourceRoot":"","sources":["../../src/node/dataset.ts"],"names":[],"mappings":"AAIA,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAWlE,MAAM,MAAM,cAAc,GAAG,iBAAiB,GAAG;IAC/C,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAyBD;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,IAAI,MAAM,EAAE,OAAO,SAAS,MAAM,EAAE,KAAG,MAM9D,CAAA;AAED,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,MAAM,EACN,OAAO,EACP,SAAS,EACT,MAAM,EACN,YAAuB,EACvB,cAAqB,EACrB,GAAG,UAAU,EACd,EAAE,cAAc;;;;
|
|
1
|
+
{"version":3,"file":"dataset.d.ts","sourceRoot":"","sources":["../../src/node/dataset.ts"],"names":[],"mappings":"AAIA,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAWlE,MAAM,MAAM,cAAc,GAAG,iBAAiB,GAAG;IAC/C,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAyBD;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,IAAI,MAAM,EAAE,OAAO,SAAS,MAAM,EAAE,KAAG,MAM9D,CAAA;AAED,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,MAAM,EACN,OAAO,EACP,SAAS,EACT,MAAM,EACN,YAAuB,EACvB,cAAqB,EACrB,GAAG,UAAU,EACd,EAAE,cAAc;;;;YA8BK,MAAM;cAAQ,MAAM;oBAAc,MAAM;;EAiC7D"}
|
package/dist/node/dataset.js
CHANGED
|
@@ -34,8 +34,11 @@ export function generateDataset({ inputDir, outDir, library, documents, scopes,
|
|
|
34
34
|
const facts = library
|
|
35
35
|
? readLibraryFacts(library)
|
|
36
36
|
: { bases: [""], privateIds: new Set() };
|
|
37
|
+
// A library's own `manifest.json`, or a `meta.json` beside the documents,
|
|
38
|
+
// sits at the top of the input; a document of that name deeper down is
|
|
39
|
+
// still a document.
|
|
37
40
|
const entries = sourceFiles(inputDir, [".json"])
|
|
38
|
-
.filter((file) => !["manifest.json", "meta.json"].includes(path.
|
|
41
|
+
.filter((file) => !["manifest.json", "meta.json"].includes(posix(path.relative(inputDir, file))))
|
|
39
42
|
.map((file) => ({
|
|
40
43
|
file,
|
|
41
44
|
id: posix(path.relative(inputDir, file)).replace(/\.json$/, ""),
|
package/dist/node/dataset.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataset.js","sourceRoot":"","sources":["../../src/node/dataset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EAAE,UAAU,EAA0B,MAAM,eAAe,CAAA;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,EACL,IAAI,EACJ,WAAW,EACX,gBAAgB,EAChB,QAAQ,EACR,KAAK,EACL,SAAS,GACV,MAAM,cAAc,CAAA;AAkBrB,8EAA8E;AAC9E,MAAM,gBAAgB,GAAG,CACvB,OAAe,EAC+B,EAAE;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CACzB,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,CAC7D,CAAA;IACD,IACE,QAAQ,CAAC,aAAa,KAAK,sBAAsB;QACjD,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC9B,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;QAElC,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAA;IAC7E,OAAO;QACL,KAAK,EAAG,QAAQ,CAAC,KAA4B,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;QACtE,UAAU,EAAE,IAAI,GAAG,CAChB,QAAQ,CAAC,SAAiD;aACxD,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;aAC5B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CACxB;KACF,CAAA;AACH,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EAAU,EAAE,KAAwB,EAAU,EAAE;IACtE,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;SACpB,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;SACnE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAClD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAA;AAC5B,CAAC,CAAA;AAED,MAAM,UAAU,eAAe,CAAC,EAC9B,QAAQ,EACR,MAAM,EACN,OAAO,EACP,SAAS,EACT,MAAM,EACN,YAAY,GAAG,QAAQ,EACvB,cAAc,GAAG,IAAI,EACrB,GAAG,UAAU,EACE;IACf,MAAM,KAAK,GAAG,OAAO;QACnB,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC;QAC3B,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,GAAG,EAAU,EAAE,CAAA;IAClD,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC;SAC7C,MAAM,CACL,CAAC,IAAI,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"dataset.js","sourceRoot":"","sources":["../../src/node/dataset.ts"],"names":[],"mappings":"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"}
|
package/dist/node/library.d.ts
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import type { Root } from "mdast";
|
|
2
|
-
import {
|
|
2
|
+
import type { CompiledDocument } from "../markdown.js";
|
|
3
3
|
import type { DocumentOptions } from "../document.js";
|
|
4
4
|
import type { TableExtractor } from "./resolve-embed.js";
|
|
5
5
|
import { type ResolvedRoot, type SourceRoot } from "./roots.js";
|
|
6
6
|
export type { SourceRoot, ResolvedRoot } from "./roots.js";
|
|
7
7
|
export { resolveRoots, documentIdOf, libraryPathOf, sourceFileOf, } from "./roots.js";
|
|
8
|
-
|
|
9
|
-
export declare const LIBRARY_SCHEMA_VERSION = 2;
|
|
8
|
+
export { LIBRARY_SCHEMA_VERSION } from "./collect.js";
|
|
10
9
|
export type SourceSnapshot = {
|
|
11
10
|
text: string;
|
|
12
11
|
hash: string;
|
|
@@ -97,12 +96,17 @@ export type BuildDocumentsOptions = DocumentOptions & {
|
|
|
97
96
|
*/
|
|
98
97
|
previous?: Library;
|
|
99
98
|
};
|
|
99
|
+
/**
|
|
100
|
+
* Compiles every document and publishes the library to `outDir`, replacing
|
|
101
|
+
* what was there in one step. Prepared embeds are not part of it: a separate
|
|
102
|
+
* `prepareEmbeds` adds `embeds.json`, and `collectDocuments` does both into
|
|
103
|
+
* one publication.
|
|
104
|
+
*/
|
|
105
|
+
export declare function buildDocuments(options: BuildDocumentsOptions): Library;
|
|
100
106
|
/** Collect async framework compilers before publishing or resolving any embeds. */
|
|
101
107
|
export declare function buildDocumentsAsync(options: Omit<BuildDocumentsOptions, "compiler"> & {
|
|
102
108
|
compiler: AsyncDocumentCompiler;
|
|
103
109
|
}): Promise<Library>;
|
|
104
|
-
export declare function snapshotSource(text: string, tree: Root, format: "md" | "mdx"): SourceSnapshot;
|
|
105
|
-
export declare function buildDocuments({ sourceRoot, roots: givenRoots, exclude, private: privatePatterns, extractors, outDir, compiler, compilerId, routeBase, routeSuffix, routes, previous, ...options }: BuildDocumentsOptions): Library;
|
|
106
110
|
export type LoadLibraryOptions = {
|
|
107
111
|
/**
|
|
108
112
|
* Keep the loaded documents in memory and reuse them while `manifest.json`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"library.d.ts","sourceRoot":"","sources":["../../src/node/library.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,
|
|
1
|
+
{"version":3,"file":"library.d.ts","sourceRoot":"","sources":["../../src/node/library.ts"],"names":[],"mappings":"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"}
|
package/dist/node/library.js
CHANGED
|
@@ -1,265 +1,27 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
|
-
import { compileDocument } from "../markdown.js";
|
|
4
|
-
import { collectSections } from "../sections.js";
|
|
5
|
-
import { findHeadingByAnchorId, findSectionEnd, } from "../internal/core/query/sections.js";
|
|
6
|
-
import { buildExportedAst, resolveExportAstOptions } from "./export-ast.js";
|
|
7
3
|
import { validateAstContract } from "../internal/core/ast/validate.js";
|
|
8
|
-
import { hash,
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
4
|
+
import { hash, safePath, publishDirectory } from "./storage.js";
|
|
5
|
+
import { resolveRoots } from "./roots.js";
|
|
6
|
+
import { collectLibrary, collectLibraryAsync, LIBRARY_SCHEMA_VERSION, } from "./collect.js";
|
|
11
7
|
export { resolveRoots, documentIdOf, libraryPathOf, sourceFileOf, } from "./roots.js";
|
|
12
|
-
|
|
13
|
-
export const LIBRARY_SCHEMA_VERSION = 2;
|
|
8
|
+
export { LIBRARY_SCHEMA_VERSION } from "./collect.js";
|
|
14
9
|
/**
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
10
|
+
* Compiles every document and publishes the library to `outDir`, replacing
|
|
11
|
+
* what was there in one step. Prepared embeds are not part of it: a separate
|
|
12
|
+
* `prepareEmbeds` adds `embeds.json`, and `collectDocuments` does both into
|
|
13
|
+
* one publication.
|
|
19
14
|
*/
|
|
20
|
-
function
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
return
|
|
24
|
-
options: documentOptions,
|
|
25
|
-
routeBase,
|
|
26
|
-
routeSuffix,
|
|
27
|
-
routes,
|
|
28
|
-
roots: roots.map((root) => root.base),
|
|
29
|
-
exclude: exclude ?? [],
|
|
30
|
-
private: privatePatterns ?? [],
|
|
31
|
-
extractors: extractorIdentity(extractors),
|
|
32
|
-
compilerId: compilerId ?? "cudoc-markdown-v1",
|
|
33
|
-
}));
|
|
34
|
-
}
|
|
35
|
-
/** The documents of a previous library this build may take as they are, by id. */
|
|
36
|
-
function reusableDocuments(previous, configuration) {
|
|
37
|
-
if (!previous || previous.configuration !== configuration)
|
|
38
|
-
return undefined;
|
|
39
|
-
return new Map(previous.documents.map((document) => [document.id, document]));
|
|
40
|
-
}
|
|
41
|
-
/** The stored document to reuse for a source, when its text and place are unchanged. */
|
|
42
|
-
function storedDocument(reusable, entry, text) {
|
|
43
|
-
const stored = reusable?.get(entry.id);
|
|
44
|
-
if (!stored ||
|
|
45
|
-
stored.sourcePath !== entry.sourcePath ||
|
|
46
|
-
stored.source.hash !== hash(text))
|
|
47
|
-
return undefined;
|
|
48
|
-
return stored;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Every document the options name, in root order and then path order, with
|
|
52
|
-
* the identity it will have in the library. Collisions are caught here so
|
|
53
|
-
* both builders report the same thing.
|
|
54
|
-
*/
|
|
55
|
-
function listSources(roots, options) {
|
|
56
|
-
const excluded = globMatcher(options.exclude, "exclude");
|
|
57
|
-
const isPrivate = globMatcher(options.private, "private");
|
|
58
|
-
const entries = [];
|
|
59
|
-
const ids = new Map();
|
|
60
|
-
for (const root of roots) {
|
|
61
|
-
const files = sourceFiles(root.dir, undefined, {
|
|
62
|
-
exclude: (relative) => excluded(libraryPath(root, relative)),
|
|
63
|
-
});
|
|
64
|
-
for (const file of files) {
|
|
65
|
-
const sourcePath = libraryPath(root, posix(path.relative(root.dir, file)));
|
|
66
|
-
const id = sourcePath.replace(/\.mdx?$/i, "");
|
|
67
|
-
const previous = ids.get(id.toLowerCase());
|
|
68
|
-
if (previous !== undefined)
|
|
69
|
-
throw new Error(`cudoc: duplicate document output: ${sourcePath} and ${previous}`);
|
|
70
|
-
ids.set(id.toLowerCase(), sourcePath);
|
|
71
|
-
entries.push({
|
|
72
|
-
file,
|
|
73
|
-
sourcePath,
|
|
74
|
-
id,
|
|
75
|
-
format: path.extname(file).toLowerCase() === ".mdx" ? "mdx" : "md",
|
|
76
|
-
private: isPrivate(sourcePath),
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
return entries;
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Extractors as the configuration sees them: names and versions, sorted, so
|
|
84
|
-
* the hash does not depend on the order a config object lists them in.
|
|
85
|
-
*/
|
|
86
|
-
function extractorIdentity(extractors) {
|
|
87
|
-
if (extractors === undefined)
|
|
88
|
-
return {};
|
|
89
|
-
if (!extractors ||
|
|
90
|
-
typeof extractors !== "object" ||
|
|
91
|
-
Array.isArray(extractors))
|
|
92
|
-
throw new Error("cudoc: extractors must map names to { version, extract }");
|
|
93
|
-
const identity = {};
|
|
94
|
-
for (const name of Object.keys(extractors).sort()) {
|
|
95
|
-
const extractor = extractors[name];
|
|
96
|
-
if (!extractor ||
|
|
97
|
-
typeof extractor.version !== "string" ||
|
|
98
|
-
!extractor.version ||
|
|
99
|
-
typeof extractor.extract !== "function")
|
|
100
|
-
throw new Error(`cudoc: extractor "${name}" needs a version string and an extract function`);
|
|
101
|
-
identity[name] = extractor.version;
|
|
102
|
-
}
|
|
103
|
-
return identity;
|
|
15
|
+
export function buildDocuments(options) {
|
|
16
|
+
const collection = collectLibrary(options);
|
|
17
|
+
publishDirectory(collection.inputs, collection.outDir, collection.write);
|
|
18
|
+
return collection.library;
|
|
104
19
|
}
|
|
105
20
|
/** Collect async framework compilers before publishing or resolving any embeds. */
|
|
106
21
|
export async function buildDocumentsAsync(options) {
|
|
107
|
-
const
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
// The compiler sees document options only, as the synchronous builder
|
|
111
|
-
// hands them over: collection settings are not compiler settings.
|
|
112
|
-
const { sourceRoot: _sourceRoot, roots: _roots, exclude: _exclude, private: _private, outDir: _outDir, routeBase: _routeBase, routeSuffix: _routeSuffix, routes: _routes, compilerId: _compilerId, extractors: _extractors, previous, ...documentOptions } = rest;
|
|
113
|
-
const reusable = reusableDocuments(previous, configurationHash(rest));
|
|
114
|
-
for (const entry of listSources(roots, rest)) {
|
|
115
|
-
const source = fs.readFileSync(entry.file, "utf8");
|
|
116
|
-
// The synchronous builder will take this document from `previous`, so
|
|
117
|
-
// its compiler is never asked for it.
|
|
118
|
-
if (storedDocument(reusable, entry, source))
|
|
119
|
-
continue;
|
|
120
|
-
compiled.set(entry.id, {
|
|
121
|
-
source,
|
|
122
|
-
result: await compiler(source, {
|
|
123
|
-
id: entry.id,
|
|
124
|
-
filePath: entry.file,
|
|
125
|
-
options: { ...documentOptions, format: entry.format },
|
|
126
|
-
}),
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
const library = buildDocuments({
|
|
130
|
-
...rest,
|
|
131
|
-
compiler(source, context) {
|
|
132
|
-
const cached = compiled.get(context.id);
|
|
133
|
-
if (!cached || cached.source !== source)
|
|
134
|
-
throw new Error(`cudoc: source changed during collection: ${context.id}`);
|
|
135
|
-
return cached.result;
|
|
136
|
-
},
|
|
137
|
-
});
|
|
138
|
-
delete library.compiler;
|
|
139
|
-
library.asyncCompiler = compiler;
|
|
140
|
-
return library;
|
|
141
|
-
}
|
|
142
|
-
export function snapshotSource(text, tree, format) {
|
|
143
|
-
const sections = {};
|
|
144
|
-
for (const section of collectSections(tree)) {
|
|
145
|
-
const nodes = section.tree.children;
|
|
146
|
-
const location = findHeadingByAnchorId(tree, section.anchorId);
|
|
147
|
-
const siblings = location.parent.children;
|
|
148
|
-
const endIndex = findSectionEnd(location.parent, location.index, section.heading.depth);
|
|
149
|
-
const start = section.heading.position?.start.offset;
|
|
150
|
-
const end = siblings[endIndex]?.position?.start.offset ??
|
|
151
|
-
location.parent.position?.end.offset ??
|
|
152
|
-
text.length;
|
|
153
|
-
const ownEnd = siblings
|
|
154
|
-
.slice(location.index + 1, endIndex)
|
|
155
|
-
.find((n) => n.type === "heading")?.position?.start.offset ?? end;
|
|
156
|
-
if (start === undefined || end === undefined)
|
|
157
|
-
continue;
|
|
158
|
-
const dependencies = nodes
|
|
159
|
-
.filter((n) => ["definition", "footnoteDefinition"].includes(n.type) && n.position)
|
|
160
|
-
.map((n) => [n.position.start.offset, n.position.end.offset]);
|
|
161
|
-
sections[section.anchorId] = { start, end, ownEnd, dependencies };
|
|
162
|
-
}
|
|
163
|
-
return { text, hash: hash(text), format, sections };
|
|
164
|
-
}
|
|
165
|
-
export function buildDocuments({ sourceRoot, roots: givenRoots, exclude, private: privatePatterns, extractors, outDir = ".cudoc/documents", compiler, compilerId, routeBase = "/", routeSuffix = "", routes = {}, previous, ...options }) {
|
|
166
|
-
if (options.host &&
|
|
167
|
-
!["markdown", "html", "next"].includes(options.host) &&
|
|
168
|
-
!compiler)
|
|
169
|
-
throw new Error(`cudoc: ${options.host} collection requires its host compiler`);
|
|
170
|
-
if (compiler && !compilerId)
|
|
171
|
-
throw new Error("cudoc: compilerId is required with a custom compiler");
|
|
172
|
-
const roots = resolveRoots({ sourceRoot, roots: givenRoots });
|
|
173
|
-
const bases = roots.map((root) => root.base);
|
|
174
|
-
const configuration = configurationHash({
|
|
175
|
-
...options,
|
|
176
|
-
routeBase,
|
|
177
|
-
routeSuffix,
|
|
178
|
-
routes,
|
|
179
|
-
roots: givenRoots,
|
|
180
|
-
sourceRoot,
|
|
181
|
-
exclude,
|
|
182
|
-
private: privatePatterns,
|
|
183
|
-
extractors,
|
|
184
|
-
compilerId,
|
|
185
|
-
});
|
|
186
|
-
const reusable = reusableDocuments(previous, configuration);
|
|
187
|
-
const incremental = previous
|
|
188
|
-
? { compiled: [], reused: [] }
|
|
189
|
-
: undefined;
|
|
190
|
-
const documents = [];
|
|
191
|
-
for (const entry of listSources(roots, {
|
|
192
|
-
exclude,
|
|
193
|
-
private: privatePatterns,
|
|
194
|
-
})) {
|
|
195
|
-
const { file: filePath, sourcePath, id, format } = entry;
|
|
196
|
-
const text = fs.readFileSync(filePath, "utf8");
|
|
197
|
-
const stored = storedDocument(reusable, entry, text);
|
|
198
|
-
if (stored) {
|
|
199
|
-
documents.push(stored);
|
|
200
|
-
incremental?.reused.push(id);
|
|
201
|
-
continue;
|
|
202
|
-
}
|
|
203
|
-
incremental?.compiled.push(id);
|
|
204
|
-
const config = { ...options, format };
|
|
205
|
-
const compiled = compiler
|
|
206
|
-
? compiler(text, { id, filePath, options: config })
|
|
207
|
-
: compileDocument(text, config);
|
|
208
|
-
for (const diagnostic of compiled.diagnostics)
|
|
209
|
-
process.stderr.write(`${sourcePath}:${diagnostic.position?.start.line ?? 1}: ${diagnostic.code}: ${diagnostic.message}\n`);
|
|
210
|
-
const source = snapshotSource(text, compiled.tree, format);
|
|
211
|
-
const tree = buildExportedAst(compiled.tree, resolveExportAstOptions());
|
|
212
|
-
documents.push({
|
|
213
|
-
id,
|
|
214
|
-
sourcePath,
|
|
215
|
-
route: routes[id] ?? `${routeBase.replace(/\/$/, "")}/${id}${routeSuffix}`,
|
|
216
|
-
tree,
|
|
217
|
-
source,
|
|
218
|
-
frontmatter: compiled.frontmatter,
|
|
219
|
-
...(entry.private ? { private: true } : {}),
|
|
220
|
-
...(compiled.imports?.length ? { imports: compiled.imports } : {}),
|
|
221
|
-
});
|
|
222
|
-
}
|
|
223
|
-
const urls = new Set();
|
|
224
|
-
for (const document of documents) {
|
|
225
|
-
if (!document.route.startsWith("/") ||
|
|
226
|
-
document.route.startsWith("//") ||
|
|
227
|
-
/[?#]/.test(document.route))
|
|
228
|
-
throw new Error(`cudoc: document route must be a root-relative pathname: ${document.route}`);
|
|
229
|
-
if (urls.has(document.route))
|
|
230
|
-
throw new Error(`cudoc: duplicate document route: ${document.route}`);
|
|
231
|
-
urls.add(document.route);
|
|
232
|
-
}
|
|
233
|
-
const library = {
|
|
234
|
-
documents,
|
|
235
|
-
options,
|
|
236
|
-
configuration,
|
|
237
|
-
compiler,
|
|
238
|
-
roots,
|
|
239
|
-
bases,
|
|
240
|
-
...(extractors ? { extractors } : {}),
|
|
241
|
-
...(incremental ? { incremental } : {}),
|
|
242
|
-
};
|
|
243
|
-
publishDirectory(roots.map((root) => root.dir), outDir, (staging) => {
|
|
244
|
-
for (const doc of documents) {
|
|
245
|
-
writeJson(safePath(staging, `documents/${doc.id}.json`), doc.tree);
|
|
246
|
-
writeJson(safePath(staging, `sources/${doc.id}.json`), doc.source);
|
|
247
|
-
}
|
|
248
|
-
writeJson(path.join(staging, "manifest.json"), {
|
|
249
|
-
schemaVersion: LIBRARY_SCHEMA_VERSION,
|
|
250
|
-
configuration,
|
|
251
|
-
options,
|
|
252
|
-
compilerId,
|
|
253
|
-
roots: bases.map((base) => ({ base })),
|
|
254
|
-
documents: documents.map(({ tree, source, ...doc }) => ({
|
|
255
|
-
...doc,
|
|
256
|
-
hash: source.hash,
|
|
257
|
-
astHash: hash(JSON.stringify(tree)),
|
|
258
|
-
snapshotHash: hash(JSON.stringify(source)),
|
|
259
|
-
})),
|
|
260
|
-
});
|
|
261
|
-
});
|
|
262
|
-
return library;
|
|
22
|
+
const collection = await collectLibraryAsync(options);
|
|
23
|
+
publishDirectory(collection.inputs, collection.outDir, collection.write);
|
|
24
|
+
return collection.library;
|
|
263
25
|
}
|
|
264
26
|
const loaded = new Map();
|
|
265
27
|
/**
|
package/dist/node/library.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"library.js","sourceRoot":"","sources":["../../src/node/library.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"library.js","sourceRoot":"","sources":["../../src/node/library.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-ast.d.ts","sourceRoot":"","sources":["../../src/node/load-ast.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,EAEL,KAAK,WAAW,EAEjB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAe,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"load-ast.d.ts","sourceRoot":"","sources":["../../src/node/load-ast.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,EAEL,KAAK,WAAW,EAEjB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAe,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAGrE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAExD;;;GAGG;AACH,eAAO,MAAM,OAAO,GAClB,cAAc,MAAM,EACpB,UAAS,cAAc,GAAG,WAAgB,KACzC,oBAYF,CAAA"}
|
package/dist/node/load-ast.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { resolvePathOptions, } from "./paths.js";
|
|
4
4
|
import { loadAstFile } from "./load-ast-file.js";
|
|
5
|
+
import { safePath } from "./storage.js";
|
|
5
6
|
export { loadAstFile } from "./load-ast-file.js";
|
|
6
7
|
/**
|
|
7
8
|
* Loads the document stored for a source-relative document path, such as
|
|
@@ -11,7 +12,9 @@ export const loadAst = (documentPath, options = {}) => {
|
|
|
11
12
|
const pathOptions = resolvePathOptions(options);
|
|
12
13
|
const projectRoot = pathOptions.cwd ?? process.cwd();
|
|
13
14
|
const normalized = documentPath.replace(/^[/\\]+/, "").replace(/\.json$/i, "");
|
|
14
|
-
|
|
15
|
+
// A document path names a file inside the output directory, never beside
|
|
16
|
+
// it: `../../secrets` is refused rather than read.
|
|
17
|
+
const filePath = safePath(path.join(projectRoot, pathOptions.outDir), `${normalized}.json`);
|
|
15
18
|
return loadAstFile(filePath, options);
|
|
16
19
|
};
|
|
17
20
|
//# sourceMappingURL=load-ast.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-ast.js","sourceRoot":"","sources":["../../src/node/load-ast.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EACL,kBAAkB,GAGnB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,WAAW,EAAuB,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"load-ast.js","sourceRoot":"","sources":["../../src/node/load-ast.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EACL,kBAAkB,GAGnB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,WAAW,EAAuB,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAGhD;;;GAGG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,YAAoB,EACpB,UAAwC,EAAE,EACpB,EAAE;IACxB,MAAM,WAAW,GAAwB,kBAAkB,CAAC,OAAO,CAAC,CAAA;IACpE,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;IACpD,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;IAC9E,yEAAyE;IACzE,mDAAmD;IACnD,MAAM,QAAQ,GAAG,QAAQ,CACvB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,EAC1C,GAAG,UAAU,OAAO,CACrB,CAAA;IAED,OAAO,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;AACvC,CAAC,CAAA"}
|
|
@@ -60,4 +60,15 @@ export declare function isExternalPath(url: string, prefixes: readonly string[]
|
|
|
60
60
|
* instead of a traversal that means nothing to an author.
|
|
61
61
|
*/
|
|
62
62
|
export declare function resolveLocalTarget(url: string, documentSourcePath: string, roots: LocalTargetRoots): LocalTarget;
|
|
63
|
+
/**
|
|
64
|
+
* The candidates of a `srcset`, read as the HTML standard reads them: a URL
|
|
65
|
+
* runs to the next white space, so a comma inside it, as in a data URL,
|
|
66
|
+
* belongs to it, and commas the URL ends with are separators; the descriptors
|
|
67
|
+
* run to the next comma outside parentheses. Empty candidates, left by a
|
|
68
|
+
* stray comma, are skipped as browsers skip them.
|
|
69
|
+
*/
|
|
70
|
+
export declare const parseSrcSet: (value: string) => {
|
|
71
|
+
url: string;
|
|
72
|
+
descriptor: string;
|
|
73
|
+
}[];
|
|
63
74
|
//# sourceMappingURL=local-target.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-target.d.ts","sourceRoot":"","sources":["../../src/node/local-target.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"local-target.d.ts","sourceRoot":"","sources":["../../src/node/local-target.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,YAAY,CAAA;AAG9D,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;;OAIG;IACH,KAAK,EAAE,SAAS,YAAY,EAAE,CAAA;IAC9B,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAA;IAC1C;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACtE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAWzD,6EAA6E;AAC7E,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,KAAG,OACK,CAAA;AAE/C;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GACtC,OAAO,CAUT;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,kBAAkB,EAAE,MAAM,EAC1B,KAAK,EAAE,gBAAgB,GACtB,WAAW,CAsCb;AAED;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GACtB,OAAO,MAAM,KACZ;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAwCrC,CAAA"}
|