@cudoment/cudoc 0.5.0 → 0.7.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.
Files changed (84) hide show
  1. package/README.md +3 -2
  2. package/dist/document.d.ts +25 -0
  3. package/dist/document.d.ts.map +1 -1
  4. package/dist/document.js +21 -1
  5. package/dist/document.js.map +1 -1
  6. package/dist/internal/core/query/sections.d.ts +6 -0
  7. package/dist/internal/core/query/sections.d.ts.map +1 -1
  8. package/dist/internal/core/query/sections.js +8 -2
  9. package/dist/internal/core/query/sections.js.map +1 -1
  10. package/dist/node/check.d.ts +8 -4
  11. package/dist/node/check.d.ts.map +1 -1
  12. package/dist/node/check.js +475 -65
  13. package/dist/node/check.js.map +1 -1
  14. package/dist/node/cli.js +2 -81
  15. package/dist/node/cli.js.map +1 -1
  16. package/dist/node/collect.d.ts +41 -0
  17. package/dist/node/collect.d.ts.map +1 -0
  18. package/dist/node/collect.js +351 -0
  19. package/dist/node/collect.js.map +1 -0
  20. package/dist/node/command.d.ts +23 -0
  21. package/dist/node/command.d.ts.map +1 -0
  22. package/dist/node/command.js +116 -0
  23. package/dist/node/command.js.map +1 -0
  24. package/dist/node/dataset.d.ts.map +1 -1
  25. package/dist/node/dataset.js +4 -1
  26. package/dist/node/dataset.js.map +1 -1
  27. package/dist/node/library.d.ts +9 -5
  28. package/dist/node/library.d.ts.map +1 -1
  29. package/dist/node/library.js +15 -253
  30. package/dist/node/library.js.map +1 -1
  31. package/dist/node/load-ast.d.ts.map +1 -1
  32. package/dist/node/load-ast.js +4 -1
  33. package/dist/node/load-ast.js.map +1 -1
  34. package/dist/node/local-target.d.ts +11 -0
  35. package/dist/node/local-target.d.ts.map +1 -1
  36. package/dist/node/local-target.js +54 -2
  37. package/dist/node/local-target.js.map +1 -1
  38. package/dist/node/prepare-embeds.d.ts +36 -1
  39. package/dist/node/prepare-embeds.d.ts.map +1 -1
  40. package/dist/node/prepare-embeds.js +94 -4
  41. package/dist/node/prepare-embeds.js.map +1 -1
  42. package/dist/node/references.d.ts +39 -0
  43. package/dist/node/references.d.ts.map +1 -0
  44. package/dist/node/references.js +101 -0
  45. package/dist/node/references.js.map +1 -0
  46. package/dist/node/replace.d.ts +65 -0
  47. package/dist/node/replace.d.ts.map +1 -0
  48. package/dist/node/replace.js +285 -0
  49. package/dist/node/replace.js.map +1 -0
  50. package/dist/node/report.d.ts.map +1 -1
  51. package/dist/node/report.js +5 -1
  52. package/dist/node/report.js.map +1 -1
  53. package/dist/node/resolve-embed.d.ts +99 -2
  54. package/dist/node/resolve-embed.d.ts.map +1 -1
  55. package/dist/node/resolve-embed.js +654 -116
  56. package/dist/node/resolve-embed.js.map +1 -1
  57. package/dist/node/roots.d.ts +12 -1
  58. package/dist/node/roots.d.ts.map +1 -1
  59. package/dist/node/roots.js +47 -11
  60. package/dist/node/roots.js.map +1 -1
  61. package/dist/node/storage.d.ts.map +1 -1
  62. package/dist/node/storage.js +202 -9
  63. package/dist/node/storage.js.map +1 -1
  64. package/dist/node/tree.d.ts +58 -0
  65. package/dist/node/tree.d.ts.map +1 -0
  66. package/dist/node/tree.js +151 -0
  67. package/dist/node/tree.js.map +1 -0
  68. package/dist/node/watch.d.ts +9 -4
  69. package/dist/node/watch.d.ts.map +1 -1
  70. package/dist/node/watch.js +51 -17
  71. package/dist/node/watch.js.map +1 -1
  72. package/dist/paged.d.ts +18 -0
  73. package/dist/paged.d.ts.map +1 -1
  74. package/dist/paged.js +21 -0
  75. package/dist/paged.js.map +1 -1
  76. package/dist/render.d.ts +1 -1
  77. package/dist/render.d.ts.map +1 -1
  78. package/dist/render.js +14 -0
  79. package/dist/render.js.map +1 -1
  80. package/dist/sections.d.ts.map +1 -1
  81. package/dist/sections.js +7 -3
  82. package/dist/sections.js.map +1 -1
  83. package/package.json +15 -15
  84. package/styles.css +49 -0
@@ -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;;;;YAwBK,MAAM;cAAQ,MAAM;oBAAc,MAAM;;EAiC7D"}
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"}
@@ -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.basename(file)))
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$/, ""),
@@ -1 +1 @@
1
- {"version":3,"file":"dataset.js","sourceRoot":"","sources":["../../src/node/dataset.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dataset.js","sourceRoot":"","sources":["../../src/node/dataset.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,11 @@
1
1
  import type { Root } from "mdast";
2
- import { type CompiledDocument } from "../markdown.js";
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
- /** The manifest layout this build writes and `loadLibrary` accepts. */
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":"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"}
1
+ {"version":3,"file":"library.d.ts","sourceRoot":"","sources":["../../src/node/library.ts"],"names":[],"mappings":"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"}
@@ -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, posix, safePath, sourceFiles, publishDirectory, writeJson, } from "./storage.js";
9
- import { globMatcher } from "./glob.js";
10
- import { libraryPath, resolveRoots, } from "./roots.js";
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
- /** The manifest layout this build writes and `loadLibrary` accepts. */
13
- export const LIBRARY_SCHEMA_VERSION = 2;
8
+ export { LIBRARY_SCHEMA_VERSION } from "./collect.js";
14
9
  /**
15
- * The hash that identifies a collection's settings: everything that changes
16
- * a stored document other than its own source text. Both builders and the
17
- * reuse check compute it from the same options, so a document is taken from
18
- * a previous library only when this build would have produced it the same way.
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 configurationHash(options) {
21
- const { sourceRoot, roots: givenRoots, exclude, private: privatePatterns, extractors, routeBase = "/", routeSuffix = "", routes = {}, compilerId, compiler: _compiler, outDir: _outDir, previous: _previous, ...documentOptions } = options;
22
- const roots = resolveRoots({ sourceRoot, roots: givenRoots });
23
- return hash(JSON.stringify({
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 { compiler, ...rest } = options;
108
- const roots = resolveRoots(rest);
109
- const compiled = new Map();
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
  /**
@@ -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":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAK5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/D,OAAO,EAAE,YAAY,EAAsC,MAAM,YAAY,CAAA;AAC7E,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,cAAc,CAAA;AAGrB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,GACb,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AA+FrD;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,OAA8B;IAC3D,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAC1C,gBAAgB,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,CAAA;IACxE,OAAO,UAAU,CAAC,OAAO,CAAA;AAC3B,CAAC;AAED,mFAAmF;AACnF,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAEC;IAED,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAA;IACrD,gBAAgB,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,CAAA;IACxE,OAAO,UAAU,CAAC,OAAO,CAAA;AAC3B,CAAC;AAYD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkD,CAAA;AAExE;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CACzB,MAAM,GAAG,kBAAkB,EAC3B,QAA2B,EAC3B,KAA6B,EAC7B,UAA8B,EAAE;IAEhC,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY,CAClC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,EAClC,MAAM,CACP,CAAA;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAChC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC1D,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC/C,MAAM,QAAQ,GACZ,KAAK,KAAK,SAAS;YACjB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QAC/C,OAAO;YACL,GAAG,MAAM,CAAC,OAAO;YACjB,QAAQ;YACR,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzC,CAAA;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IACzC,IACE,QAAQ,CAAC,aAAa,KAAK,sBAAsB;QACjD,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;QAClC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;QAE9B,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAA;IAC7E,MAAM,SAAS,GAAqB,QAAQ,CAAC,SAAS,CAAC,GAAG,CACxD,CACE,KAIC,EACD,EAAE;QACF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CACrB,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CACxE,CAAA;QACD,MAAM,MAAM,GAAmB,IAAI,CAAC,KAAK,CACvC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CACtE,CAAA;QACD,mBAAmB,CAAC,IAAI,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAA;QACnD,IACE,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;YAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI;YAChC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO;YAC5C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,YAAY;YAEnD,MAAM,IAAI,KAAK,CAAC,yCAAyC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;QACtE,OAAO,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;IACnC,CAAC,CACF,CAAA;IACD,MAAM,OAAO,GAAY;QACvB,SAAS;QACT,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,KAAK,EAAG,QAAQ,CAAC,KAA4B,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;KACvE,CAAA;IACD,MAAM,QAAQ,GACZ,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACtE,IAAI,OAAO,CAAC,KAAK;QAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAA;IACvE,OAAO;QACL,GAAG,OAAO;QACV,QAAQ;QACR,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzC,CAAA;AACH,CAAC;AAED,kGAAkG;AAClG,SAAS,kBAAkB,CACzB,KAA4B,EAC5B,OAAgB;IAEhB,MAAM,QAAQ,GAAG,YAAY,CAC3B,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAC9D,CAAA;IACD,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAChD,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;IACtD,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAClD,MAAM,IAAI,KAAK,CACb,uEAAuE,MAAM;aAC1E,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aACnC,IAAI,CAAC,IAAI,CAAC,GAAG,CACjB,CAAA;IACH,OAAO,QAAQ,CAAA;AACjB,CAAC"}
@@ -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;AAErE,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,oBAWF,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"}
@@ -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
- const filePath = path.join(projectRoot, pathOptions.outDir, `${normalized}.json`);
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;AAErE,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,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CACxB,WAAW,EACX,WAAW,CAAC,MAAM,EAClB,GAAG,UAAU,OAAO,CACrB,CAAA;IAED,OAAO,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;AACvC,CAAC,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;AAE9D,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,OACD,CAAA;AAEzC;;;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"}
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"}