@cudoment/cudoc 0.4.0 → 0.5.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 (72) hide show
  1. package/README.md +1 -1
  2. package/dist/document.d.ts +11 -1
  3. package/dist/document.d.ts.map +1 -1
  4. package/dist/document.js +33 -2
  5. package/dist/document.js.map +1 -1
  6. package/dist/internal/core/mdx/imports.d.ts +21 -0
  7. package/dist/internal/core/mdx/imports.d.ts.map +1 -0
  8. package/dist/internal/core/mdx/imports.js +80 -0
  9. package/dist/internal/core/mdx/imports.js.map +1 -0
  10. package/dist/internal/core/mdx/index.d.ts +1 -0
  11. package/dist/internal/core/mdx/index.d.ts.map +1 -1
  12. package/dist/internal/core/mdx/index.js +1 -0
  13. package/dist/internal/core/mdx/index.js.map +1 -1
  14. package/dist/internal/transforms/table-column-layout/create-table.d.ts.map +1 -1
  15. package/dist/internal/transforms/table-column-layout/create-table.js +40 -17
  16. package/dist/internal/transforms/table-column-layout/create-table.js.map +1 -1
  17. package/dist/internal/transforms/table-column-layout/index.d.ts +32 -0
  18. package/dist/internal/transforms/table-column-layout/index.d.ts.map +1 -1
  19. package/dist/internal/transforms/table-column-layout/index.js +66 -0
  20. package/dist/internal/transforms/table-column-layout/index.js.map +1 -1
  21. package/dist/markdown.d.ts +8 -0
  22. package/dist/markdown.d.ts.map +1 -1
  23. package/dist/markdown.js +9 -1
  24. package/dist/markdown.js.map +1 -1
  25. package/dist/node/check.d.ts +6 -3
  26. package/dist/node/check.d.ts.map +1 -1
  27. package/dist/node/check.js +101 -23
  28. package/dist/node/check.js.map +1 -1
  29. package/dist/node/cli.js +26 -1
  30. package/dist/node/cli.js.map +1 -1
  31. package/dist/node/dataset.d.ts +14 -1
  32. package/dist/node/dataset.d.ts.map +1 -1
  33. package/dist/node/dataset.js +40 -4
  34. package/dist/node/dataset.js.map +1 -1
  35. package/dist/node/glob.d.ts +21 -0
  36. package/dist/node/glob.d.ts.map +1 -0
  37. package/dist/node/glob.js +61 -0
  38. package/dist/node/glob.js.map +1 -0
  39. package/dist/node/library.d.ts +70 -4
  40. package/dist/node/library.d.ts.map +1 -1
  41. package/dist/node/library.js +196 -32
  42. package/dist/node/library.js.map +1 -1
  43. package/dist/node/local-target.d.ts +28 -8
  44. package/dist/node/local-target.d.ts.map +1 -1
  45. package/dist/node/local-target.js +41 -12
  46. package/dist/node/local-target.js.map +1 -1
  47. package/dist/node/prepare-embeds.d.ts +16 -2
  48. package/dist/node/prepare-embeds.d.ts.map +1 -1
  49. package/dist/node/prepare-embeds.js +41 -5
  50. package/dist/node/prepare-embeds.js.map +1 -1
  51. package/dist/node/resolve-embed.d.ts +79 -1
  52. package/dist/node/resolve-embed.d.ts.map +1 -1
  53. package/dist/node/resolve-embed.js +251 -43
  54. package/dist/node/resolve-embed.js.map +1 -1
  55. package/dist/node/roots.d.ts +67 -0
  56. package/dist/node/roots.d.ts.map +1 -0
  57. package/dist/node/roots.js +134 -0
  58. package/dist/node/roots.js.map +1 -0
  59. package/dist/node/storage.d.ts +21 -3
  60. package/dist/node/storage.d.ts.map +1 -1
  61. package/dist/node/storage.js +41 -12
  62. package/dist/node/storage.js.map +1 -1
  63. package/dist/node/watch.d.ts +81 -0
  64. package/dist/node/watch.d.ts.map +1 -0
  65. package/dist/node/watch.js +140 -0
  66. package/dist/node/watch.js.map +1 -0
  67. package/dist/paged.d.ts +34 -0
  68. package/dist/paged.d.ts.map +1 -0
  69. package/dist/paged.js +44 -0
  70. package/dist/paged.js.map +1 -0
  71. package/package.json +15 -2
  72. package/styles.css +5 -2
@@ -0,0 +1,61 @@
1
+ /**
2
+ * The small glob dialect collection options use to name files.
3
+ *
4
+ * Patterns are matched against a document's library path — its root base
5
+ * followed by its path under the root directory, in POSIX form — so one
6
+ * vocabulary serves `exclude`, `private` and any later option that names
7
+ * documents. The dialect is deliberately small: `*` and `?` within a segment,
8
+ * `**` for any number of segments, and a pattern without `/` matching a file
9
+ * or directory name anywhere. There are no brace sets, character classes or
10
+ * negations, because a mistyped pattern that silently matches nothing is
11
+ * worse than a pattern an author has to spell out.
12
+ */
13
+ const escape = (value) => value.replace(/[.+^${}()|[\]\\]/g, "\\$&");
14
+ const segment = (value) => escape(value).replace(/\*/g, "[^/]*").replace(/\?/g, "[^/]");
15
+ /**
16
+ * Compiles one pattern. A trailing `**` also matches the directory itself, so
17
+ * a walker can prune `drafts/**` at `drafts` instead of visiting every file
18
+ * beneath it.
19
+ */
20
+ export function globToRegExp(pattern) {
21
+ if (typeof pattern !== "string" || !pattern.trim())
22
+ throw new Error("cudoc: a glob pattern must be a non-empty string");
23
+ const segments = pattern
24
+ .replace(/\\/g, "/")
25
+ .replace(/^\.?\//, "")
26
+ .split("/")
27
+ .filter((part) => part !== "" && part !== ".");
28
+ if (!segments.length || segments.includes(".."))
29
+ throw new Error(`cudoc: invalid glob pattern: ${pattern}`);
30
+ if (segments.length === 1 && segments[0] !== "**")
31
+ return new RegExp(`(?:^|/)${segment(segments[0])}$`);
32
+ let source = "^";
33
+ let separator = false;
34
+ segments.forEach((part, index) => {
35
+ const last = index === segments.length - 1;
36
+ if (part === "**") {
37
+ if (index === 0)
38
+ source += last ? ".*" : "(?:.*/)?";
39
+ else
40
+ source += last ? "(?:/.*)?" : "/(?:.*/)?";
41
+ separator = false;
42
+ return;
43
+ }
44
+ if (separator)
45
+ source += "/";
46
+ source += segment(part);
47
+ separator = true;
48
+ });
49
+ return new RegExp(`${source}$`);
50
+ }
51
+ /** A predicate over library paths for a list of patterns; empty lists match nothing. */
52
+ export function globMatcher(patterns, option) {
53
+ if (patterns === undefined)
54
+ return () => false;
55
+ if (!Array.isArray(patterns) ||
56
+ patterns.some((pattern) => typeof pattern !== "string"))
57
+ throw new Error(`cudoc: ${option} must be an array of glob patterns`);
58
+ const expressions = patterns.map(globToRegExp);
59
+ return (libraryPath) => expressions.some((expression) => expression.test(libraryPath));
60
+ }
61
+ //# sourceMappingURL=glob.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glob.js","sourceRoot":"","sources":["../../src/node/glob.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAA;AAE5E,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,EAAE,CAChC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;AAE9D;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QAChD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;IACrE,MAAM,QAAQ,GAAG,OAAO;SACrB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;SACrB,KAAK,CAAC,GAAG,CAAC;SACV,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,GAAG,CAAC,CAAA;IAChD,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,gCAAgC,OAAO,EAAE,CAAC,CAAA;IAC5D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI;QAC/C,OAAO,IAAI,MAAM,CAAC,UAAU,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,GAAG,CAAC,CAAA;IACvD,IAAI,MAAM,GAAG,GAAG,CAAA;IAChB,IAAI,SAAS,GAAG,KAAK,CAAA;IACrB,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC/B,MAAM,IAAI,GAAG,KAAK,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA;QAC1C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,IAAI,KAAK,KAAK,CAAC;gBAAE,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAA;;gBAC9C,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAA;YAC9C,SAAS,GAAG,KAAK,CAAA;YACjB,OAAM;QACR,CAAC;QACD,IAAI,SAAS;YAAE,MAAM,IAAI,GAAG,CAAA;QAC5B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;QACvB,SAAS,GAAG,IAAI,CAAA;IAClB,CAAC,CAAC,CAAA;IACF,OAAO,IAAI,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,CAAA;AACjC,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,WAAW,CACzB,QAAuC,EACvC,MAAc;IAEd,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,GAAG,EAAE,CAAC,KAAK,CAAA;IAC9C,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QACxB,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC;QAEvD,MAAM,IAAI,KAAK,CAAC,UAAU,MAAM,oCAAoC,CAAC,CAAA;IACvE,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;IAC9C,OAAO,CAAC,WAAW,EAAE,EAAE,CACrB,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAA;AAClE,CAAC"}
@@ -1,6 +1,12 @@
1
1
  import type { Root } from "mdast";
2
2
  import { type CompiledDocument } from "../markdown.js";
3
3
  import type { DocumentOptions } from "../document.js";
4
+ import type { TableExtractor } from "./resolve-embed.js";
5
+ import { type ResolvedRoot, type SourceRoot } from "./roots.js";
6
+ export type { SourceRoot, ResolvedRoot } from "./roots.js";
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;
4
10
  export type SourceSnapshot = {
5
11
  text: string;
6
12
  hash: string;
@@ -14,11 +20,19 @@ export type SourceSnapshot = {
14
20
  };
15
21
  export type StoredDocument = {
16
22
  id: string;
23
+ /** The library path with its extension: the root base, then the path under the root. */
17
24
  sourcePath: string;
18
25
  route: string;
19
26
  tree: Root;
20
27
  source: SourceSnapshot;
21
28
  frontmatter: Record<string, unknown>;
29
+ /**
30
+ * Set when a `private` pattern matched the document. It is collected and
31
+ * checked like any other, and left out of exports and datasets.
32
+ */
33
+ private?: true;
34
+ /** Local names the document's own `import` statements bind, when it has any. */
35
+ imports?: string[];
22
36
  };
23
37
  export type DocumentCompiler = (source: string, context: {
24
38
  id: string;
@@ -30,12 +44,41 @@ export type Library = {
30
44
  documents: StoredDocument[];
31
45
  options: DocumentOptions;
32
46
  configuration: string;
33
- sourceRoot?: string;
47
+ /** Where the documents were read from. Runtime only; a loaded library has it when the caller supplies roots. */
48
+ roots?: ResolvedRoot[];
49
+ /** The base of every root, in root order, as the manifest records them. */
50
+ bases?: string[];
51
+ /** Cell extractors an embed table may name. Runtime only; their versions are in the configuration. */
52
+ extractors?: Record<string, TableExtractor>;
34
53
  compiler?: DocumentCompiler;
35
54
  asyncCompiler?: AsyncDocumentCompiler;
55
+ /** What an incremental build did. Runtime only; present when `previous` was given. */
56
+ incremental?: {
57
+ compiled: string[];
58
+ reused: string[];
59
+ };
36
60
  };
37
61
  export type BuildDocumentsOptions = DocumentOptions & {
38
- sourceRoot: string;
62
+ /** One directory at the top of the library: shorthand for `roots: [{ dir }]`. */
63
+ sourceRoot?: string;
64
+ /** Directories to collect, each under its own base. Exactly one of `sourceRoot` and `roots` is given. */
65
+ roots?: SourceRoot[];
66
+ /**
67
+ * Glob patterns, matched against library paths, for files and directories
68
+ * that are not documents at all: drafts, agent notes, work folders.
69
+ */
70
+ exclude?: string[];
71
+ /**
72
+ * Glob patterns, matched against library paths, for documents that are
73
+ * collected and checked but never exported or put in a dataset.
74
+ */
75
+ private?: string[];
76
+ /**
77
+ * Functions an embed table's `{ extractor }` column may name. Each carries
78
+ * a `version` that enters the library configuration, so prepared embeds go
79
+ * stale when an extractor's output changes.
80
+ */
81
+ extractors?: Record<string, TableExtractor>;
39
82
  outDir?: string;
40
83
  routeBase?: string;
41
84
  routeSuffix?: string;
@@ -45,12 +88,35 @@ export type BuildDocumentsOptions = DocumentOptions & {
45
88
  compiler?: DocumentCompiler;
46
89
  /** Identifies external compiler/plugins/configuration for persisted metadata. */
47
90
  compilerId?: string;
91
+ /**
92
+ * A library collected earlier. A document whose source text is unchanged
93
+ * is taken from it instead of compiled again, as long as the configuration
94
+ * hash is the same; a document that is new, changed or collected under a
95
+ * different configuration compiles as usual. The publication is complete
96
+ * either way.
97
+ */
98
+ previous?: Library;
48
99
  };
49
100
  /** Collect async framework compilers before publishing or resolving any embeds. */
50
101
  export declare function buildDocumentsAsync(options: Omit<BuildDocumentsOptions, "compiler"> & {
51
102
  compiler: AsyncDocumentCompiler;
52
103
  }): Promise<Library>;
53
104
  export declare function snapshotSource(text: string, tree: Root, format: "md" | "mdx"): SourceSnapshot;
54
- export declare function buildDocuments({ sourceRoot, outDir, compiler, compilerId, routeBase, routeSuffix, routes, ...options }: BuildDocumentsOptions): Library;
55
- export declare function loadLibrary(outDir?: string, compiler?: DocumentCompiler, sourceRoot?: string): Library;
105
+ export declare function buildDocuments({ sourceRoot, roots: givenRoots, exclude, private: privatePatterns, extractors, outDir, compiler, compilerId, routeBase, routeSuffix, routes, previous, ...options }: BuildDocumentsOptions): Library;
106
+ export type LoadLibraryOptions = {
107
+ /**
108
+ * Keep the loaded documents in memory and reuse them while `manifest.json`
109
+ * is byte-for-byte unchanged. For a server that renders from the library on
110
+ * every request; a one-off build has nothing to gain. The documents are
111
+ * shared between calls, so treat them as read-only.
112
+ */
113
+ cache?: boolean;
114
+ };
115
+ /**
116
+ * Reads a published library back. `roots` restores where the documents live
117
+ * on disk, which replacement and asset resolution need; a single directory is
118
+ * the shorthand for one root at the top. The bases given have to be the ones
119
+ * the library was collected with, because ids were derived from them.
120
+ */
121
+ export declare function loadLibrary(outDir?: string, compiler?: DocumentCompiler, roots?: string | SourceRoot[], options?: LoadLibraryOptions): Library;
56
122
  //# sourceMappingURL=library.d.ts.map
@@ -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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"}
@@ -6,20 +6,123 @@ import { findHeadingByAnchorId, findSectionEnd, } from "../internal/core/query/s
6
6
  import { buildExportedAst, resolveExportAstOptions } from "./export-ast.js";
7
7
  import { validateAstContract } from "../internal/core/ast/validate.js";
8
8
  import { hash, posix, safePath, sourceFiles, publishDirectory, writeJson, } from "./storage.js";
9
+ import { globMatcher } from "./glob.js";
10
+ import { libraryPath, resolveRoots, } from "./roots.js";
11
+ 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;
14
+ /**
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.
19
+ */
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;
104
+ }
9
105
  /** Collect async framework compilers before publishing or resolving any embeds. */
10
106
  export async function buildDocumentsAsync(options) {
11
107
  const { compiler, ...rest } = options;
108
+ const roots = resolveRoots(rest);
12
109
  const compiled = new Map();
13
- for (const filePath of sourceFiles(options.sourceRoot)) {
14
- const source = fs.readFileSync(filePath, "utf8");
15
- const id = posix(path.relative(options.sourceRoot, filePath)).replace(/\.mdx?$/i, "");
16
- const format = path.extname(filePath).toLowerCase() === ".mdx" ? "mdx" : "md";
17
- compiled.set(id, {
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, {
18
121
  source,
19
122
  result: await compiler(source, {
20
- id,
21
- filePath,
22
- options: { ...rest, format },
123
+ id: entry.id,
124
+ filePath: entry.file,
125
+ options: { ...documentOptions, format: entry.format },
23
126
  }),
24
127
  });
25
128
  }
@@ -59,23 +162,45 @@ export function snapshotSource(text, tree, format) {
59
162
  }
60
163
  return { text, hash: hash(text), format, sections };
61
164
  }
62
- export function buildDocuments({ sourceRoot, outDir = ".cudoc/documents", compiler, compilerId, routeBase = "/", routeSuffix = "", routes = {}, ...options }) {
165
+ export function buildDocuments({ sourceRoot, roots: givenRoots, exclude, private: privatePatterns, extractors, outDir = ".cudoc/documents", compiler, compilerId, routeBase = "/", routeSuffix = "", routes = {}, previous, ...options }) {
63
166
  if (options.host &&
64
167
  !["markdown", "html", "next"].includes(options.host) &&
65
168
  !compiler)
66
169
  throw new Error(`cudoc: ${options.host} collection requires its host compiler`);
67
170
  if (compiler && !compilerId)
68
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;
69
190
  const documents = [];
70
- const ids = new Set();
71
- for (const filePath of sourceFiles(sourceRoot)) {
72
- const sourcePath = posix(path.relative(sourceRoot, filePath));
73
- const id = sourcePath.replace(/\.mdx?$/i, "");
74
- if (ids.has(id.toLowerCase()))
75
- throw new Error(`cudoc: duplicate document output: ${sourcePath}`);
76
- ids.add(id.toLowerCase());
191
+ for (const entry of listSources(roots, {
192
+ exclude,
193
+ private: privatePatterns,
194
+ })) {
195
+ const { file: filePath, sourcePath, id, format } = entry;
77
196
  const text = fs.readFileSync(filePath, "utf8");
78
- const format = path.extname(filePath).toLowerCase() === ".mdx" ? "mdx" : "md";
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);
79
204
  const config = { ...options, format };
80
205
  const compiled = compiler
81
206
  ? compiler(text, { id, filePath, options: config })
@@ -91,15 +216,10 @@ export function buildDocuments({ sourceRoot, outDir = ".cudoc/documents", compil
91
216
  tree,
92
217
  source,
93
218
  frontmatter: compiled.frontmatter,
219
+ ...(entry.private ? { private: true } : {}),
220
+ ...(compiled.imports?.length ? { imports: compiled.imports } : {}),
94
221
  });
95
222
  }
96
- const configuration = hash(JSON.stringify({
97
- options,
98
- routeBase,
99
- routeSuffix,
100
- routes,
101
- compilerId: compilerId ?? "cudoc-markdown-v1",
102
- }));
103
223
  const urls = new Set();
104
224
  for (const document of documents) {
105
225
  if (!document.route.startsWith("/") ||
@@ -115,18 +235,22 @@ export function buildDocuments({ sourceRoot, outDir = ".cudoc/documents", compil
115
235
  options,
116
236
  configuration,
117
237
  compiler,
118
- sourceRoot: path.resolve(sourceRoot),
238
+ roots,
239
+ bases,
240
+ ...(extractors ? { extractors } : {}),
241
+ ...(incremental ? { incremental } : {}),
119
242
  };
120
- publishDirectory(sourceRoot, outDir, (staging) => {
243
+ publishDirectory(roots.map((root) => root.dir), outDir, (staging) => {
121
244
  for (const doc of documents) {
122
245
  writeJson(safePath(staging, `documents/${doc.id}.json`), doc.tree);
123
246
  writeJson(safePath(staging, `sources/${doc.id}.json`), doc.source);
124
247
  }
125
248
  writeJson(path.join(staging, "manifest.json"), {
126
- schemaVersion: 1,
249
+ schemaVersion: LIBRARY_SCHEMA_VERSION,
127
250
  configuration,
128
251
  options,
129
252
  compilerId,
253
+ roots: bases.map((base) => ({ base })),
130
254
  documents: documents.map(({ tree, source, ...doc }) => ({
131
255
  ...doc,
132
256
  hash: source.hash,
@@ -137,9 +261,31 @@ export function buildDocuments({ sourceRoot, outDir = ".cudoc/documents", compil
137
261
  });
138
262
  return library;
139
263
  }
140
- export function loadLibrary(outDir = ".cudoc/documents", compiler, sourceRoot) {
141
- const manifest = JSON.parse(fs.readFileSync(path.join(outDir, "manifest.json"), "utf8"));
142
- if (manifest.schemaVersion !== 1 || !Array.isArray(manifest.documents))
264
+ const loaded = new Map();
265
+ /**
266
+ * Reads a published library back. `roots` restores where the documents live
267
+ * on disk, which replacement and asset resolution need; a single directory is
268
+ * the shorthand for one root at the top. The bases given have to be the ones
269
+ * the library was collected with, because ids were derived from them.
270
+ */
271
+ export function loadLibrary(outDir = ".cudoc/documents", compiler, roots, options = {}) {
272
+ const manifestText = fs.readFileSync(path.join(outDir, "manifest.json"), "utf8");
273
+ const key = path.resolve(outDir);
274
+ const cached = options.cache ? loaded.get(key) : undefined;
275
+ if (cached && cached.manifest === manifestText) {
276
+ const resolved = roots === undefined
277
+ ? undefined
278
+ : resolveLoadedRoots(roots, cached.library);
279
+ return {
280
+ ...cached.library,
281
+ compiler,
282
+ ...(resolved ? { roots: resolved } : {}),
283
+ };
284
+ }
285
+ const manifest = JSON.parse(manifestText);
286
+ if (manifest.schemaVersion !== LIBRARY_SCHEMA_VERSION ||
287
+ !Array.isArray(manifest.documents) ||
288
+ !Array.isArray(manifest.roots))
143
289
  throw new Error("cudoc: incompatible document manifest; rebuild documents");
144
290
  const documents = manifest.documents.map((entry) => {
145
291
  const tree = JSON.parse(fs.readFileSync(safePath(outDir, `documents/${entry.id}.json`), "utf8"));
@@ -152,12 +298,30 @@ export function loadLibrary(outDir = ".cudoc/documents", compiler, sourceRoot) {
152
298
  throw new Error(`cudoc: stored document hash mismatch: ${entry.id}`);
153
299
  return { ...entry, tree, source };
154
300
  });
155
- return {
301
+ const library = {
156
302
  documents,
157
303
  options: manifest.options,
158
304
  configuration: manifest.configuration,
305
+ bases: manifest.roots.map((root) => root.base),
306
+ };
307
+ const resolved = roots === undefined ? undefined : resolveLoadedRoots(roots, library);
308
+ if (options.cache)
309
+ loaded.set(key, { manifest: manifestText, library });
310
+ return {
311
+ ...library,
159
312
  compiler,
160
- sourceRoot: sourceRoot ? path.resolve(sourceRoot) : undefined,
313
+ ...(resolved ? { roots: resolved } : {}),
161
314
  };
162
315
  }
316
+ /** The roots a caller gives a loaded library, checked against the bases it was collected with. */
317
+ function resolveLoadedRoots(roots, library) {
318
+ const resolved = resolveRoots(typeof roots === "string" ? { sourceRoot: roots } : { roots });
319
+ const stored = [...(library.bases ?? [])].sort();
320
+ const given = resolved.map((root) => root.base).sort();
321
+ if (JSON.stringify(stored) !== JSON.stringify(given))
322
+ throw new Error(`cudoc: roots do not match the library; it was collected with bases [${stored
323
+ .map((base) => JSON.stringify(base))
324
+ .join(", ")}]`);
325
+ return resolved;
326
+ }
163
327
  //# sourceMappingURL=library.js.map
@@ -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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"}
@@ -5,9 +5,14 @@
5
5
  * it does not. Both go through here so a document cannot pass one and fail the
6
6
  * other: a link the checker calls resolvable is a link the exporter can copy.
7
7
  */
8
+ import { type ResolvedRoot } from "./roots.js";
8
9
  export type LocalTargetRoots = {
9
- /** The document source root. A document-relative path resolves here first. */
10
- sourceRoot: string;
10
+ /**
11
+ * The roots documents were collected from. A document-relative path
12
+ * resolves in the library's own coordinates first, so it reaches a file
13
+ * under whichever root holds that library path.
14
+ */
15
+ roots: readonly ResolvedRoot[];
11
16
  /** Extra roots holding host assets, such as `public` or `static`. */
12
17
  assetDirs?: string[];
13
18
  /**
@@ -15,6 +20,12 @@ export type LocalTargetRoots = {
15
20
  * routing. Defaults to identity for a site served from the domain root.
16
21
  */
17
22
  withoutBase?: (pathname: string) => string;
23
+ /**
24
+ * Root-relative path prefixes that another application serves on the same
25
+ * host, such as `/sdk`. A link into one is external: not checked, not
26
+ * copied, not rewritten.
27
+ */
28
+ externalPaths?: string[];
18
29
  };
19
30
  export type LocalTarget = {
20
31
  kind: "external";
@@ -29,15 +40,24 @@ export type LocalTarget = {
29
40
  relative: string;
30
41
  suffix: string;
31
42
  };
43
+ /** A fragment, a scheme or a protocol-relative URL: nothing on this disk. */
44
+ export declare const externalUrl: (url: string) => boolean;
45
+ /**
46
+ * Whether a root-relative URL falls under one of the configured external
47
+ * prefixes. `/sdk` covers `/sdk` and `/sdk/…`, not `/sdk-tools`.
48
+ */
49
+ export declare function isExternalPath(url: string, prefixes: readonly string[] | undefined): boolean;
32
50
  /**
33
51
  * Resolves one URL against the document that carries it.
34
52
  *
35
- * A fragment, scheme or protocol-relative URL is external and left alone. A
36
- * document-relative path resolves against `sourceRoot`; a root-relative one is
37
- * also tried against each asset directory, after the deployment base is
38
- * removed. A path that escapes every root is reported as missing rather than
39
- * resolved, so the caller names the link and its document instead of a
40
- * traversal that means nothing to an author.
53
+ * A fragment, scheme or protocol-relative URL is external and left alone, and
54
+ * so is a root-relative one under an external prefix. A document-relative
55
+ * path resolves against the library path of its document, and a root-relative
56
+ * one against the library itself; both then reach disk through the roots. A
57
+ * root-relative path is also tried against each asset directory, after the
58
+ * deployment base is removed. A path that escapes every root is reported as
59
+ * missing rather than resolved, so the caller names the link and its document
60
+ * instead of a traversal that means nothing to an author.
41
61
  */
42
62
  export declare function resolveLocalTarget(url: string, documentSourcePath: string, roots: LocalTargetRoots): LocalTarget;
43
63
  //# 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;AAMH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,8EAA8E;IAC9E,UAAU,EAAE,MAAM,CAAA;IAClB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAA;CAC3C,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;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,kBAAkB,EAAE,MAAM,EAC1B,KAAK,EAAE,gBAAgB,GACtB,WAAW,CAwBb"}
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"}