@cudoment/cudoc 0.3.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.
- package/README.md +1 -1
- package/dist/document.d.ts +11 -1
- package/dist/document.d.ts.map +1 -1
- package/dist/document.js +38 -3
- package/dist/document.js.map +1 -1
- package/dist/internal/core/mdx/imports.d.ts +21 -0
- package/dist/internal/core/mdx/imports.d.ts.map +1 -0
- package/dist/internal/core/mdx/imports.js +80 -0
- package/dist/internal/core/mdx/imports.js.map +1 -0
- package/dist/internal/core/mdx/index.d.ts +1 -0
- package/dist/internal/core/mdx/index.d.ts.map +1 -1
- package/dist/internal/core/mdx/index.js +1 -0
- package/dist/internal/core/mdx/index.js.map +1 -1
- package/dist/internal/transforms/table-column-layout/create-table.d.ts.map +1 -1
- package/dist/internal/transforms/table-column-layout/create-table.js +40 -17
- package/dist/internal/transforms/table-column-layout/create-table.js.map +1 -1
- package/dist/internal/transforms/table-column-layout/index.d.ts +32 -0
- package/dist/internal/transforms/table-column-layout/index.d.ts.map +1 -1
- package/dist/internal/transforms/table-column-layout/index.js +66 -0
- package/dist/internal/transforms/table-column-layout/index.js.map +1 -1
- package/dist/markdown.d.ts +8 -0
- package/dist/markdown.d.ts.map +1 -1
- package/dist/markdown.js +9 -1
- package/dist/markdown.js.map +1 -1
- package/dist/node/check.d.ts +61 -0
- package/dist/node/check.d.ts.map +1 -0
- package/dist/node/check.js +543 -0
- package/dist/node/check.js.map +1 -0
- package/dist/node/cli.js +57 -11
- package/dist/node/cli.js.map +1 -1
- package/dist/node/dataset.d.ts +14 -1
- package/dist/node/dataset.d.ts.map +1 -1
- package/dist/node/dataset.js +40 -4
- package/dist/node/dataset.js.map +1 -1
- package/dist/node/glob.d.ts +21 -0
- package/dist/node/glob.d.ts.map +1 -0
- package/dist/node/glob.js +61 -0
- package/dist/node/glob.js.map +1 -0
- package/dist/node/library.d.ts +70 -4
- package/dist/node/library.d.ts.map +1 -1
- package/dist/node/library.js +196 -32
- package/dist/node/library.js.map +1 -1
- package/dist/node/local-target.d.ts +63 -0
- package/dist/node/local-target.d.ts.map +1 -0
- package/dist/node/local-target.js +81 -0
- package/dist/node/local-target.js.map +1 -0
- package/dist/node/prepare-embeds.d.ts +16 -2
- package/dist/node/prepare-embeds.d.ts.map +1 -1
- package/dist/node/prepare-embeds.js +42 -9
- package/dist/node/prepare-embeds.js.map +1 -1
- package/dist/node/report.d.ts +9 -0
- package/dist/node/report.d.ts.map +1 -0
- package/dist/node/report.js +48 -0
- package/dist/node/report.js.map +1 -0
- package/dist/node/resolve-embed.d.ts +88 -1
- package/dist/node/resolve-embed.d.ts.map +1 -1
- package/dist/node/resolve-embed.js +321 -63
- package/dist/node/resolve-embed.js.map +1 -1
- package/dist/node/roots.d.ts +67 -0
- package/dist/node/roots.d.ts.map +1 -0
- package/dist/node/roots.js +134 -0
- package/dist/node/roots.js.map +1 -0
- package/dist/node/storage.d.ts +21 -3
- package/dist/node/storage.d.ts.map +1 -1
- package/dist/node/storage.js +41 -12
- package/dist/node/storage.js.map +1 -1
- package/dist/node/watch.d.ts +81 -0
- package/dist/node/watch.d.ts.map +1 -0
- package/dist/node/watch.js +140 -0
- package/dist/node/watch.js.map +1 -0
- package/dist/paged.d.ts +34 -0
- package/dist/paged.d.ts.map +1 -0
- package/dist/paged.js +44 -0
- package/dist/paged.js.map +1 -0
- package/package.json +27 -2
- package/styles.css +5 -2
package/dist/node/library.js
CHANGED
|
@@ -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
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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: { ...
|
|
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
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
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
|
|
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
|
-
|
|
238
|
+
roots,
|
|
239
|
+
bases,
|
|
240
|
+
...(extractors ? { extractors } : {}),
|
|
241
|
+
...(incremental ? { incremental } : {}),
|
|
119
242
|
};
|
|
120
|
-
publishDirectory(
|
|
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:
|
|
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
|
-
|
|
141
|
-
|
|
142
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
package/dist/node/library.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;AAE5B,OAAO,EAAE,eAAe,EAAyB,MAAM,gBAAgB,CAAA;AAEvE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EACL,qBAAqB,EACrB,cAAc,GACf,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,SAAS,GACV,MAAM,cAAc,CAAA;AAqDrB,mFAAmF;AACnF,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAEC;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAA;IACrC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAGrB,CAAA;IACH,KAAK,MAAM,QAAQ,IAAI,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACvD,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAChD,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CACnE,UAAU,EACV,EAAE,CACH,CAAA;QACD,MAAM,MAAM,GACV,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;QAChE,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE;YACf,MAAM;YACN,MAAM,EAAE,MAAM,QAAQ,CAAC,MAAM,EAAE;gBAC7B,EAAE;gBACF,QAAQ;gBACR,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE;aAC7B,CAAC;SACH,CAAC,CAAA;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,cAAc,CAAC;QAC7B,GAAG,IAAI;QACP,QAAQ,CAAC,MAAM,EAAE,OAAO;YACtB,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;YACvC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM;gBACrC,MAAM,IAAI,KAAK,CACb,4CAA4C,OAAO,CAAC,EAAE,EAAE,CACzD,CAAA;YACH,OAAO,MAAM,CAAC,MAAM,CAAA;QACtB,CAAC;KACF,CAAC,CAAA;IACF,OAAO,OAAO,CAAC,QAAQ,CAAA;IACvB,OAAO,CAAC,aAAa,GAAG,QAAQ,CAAA;IAChC,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,IAAY,EACZ,IAAU,EACV,MAAoB;IAEpB,MAAM,QAAQ,GAA+B,EAAE,CAAA;IAC/C,KAAK,MAAM,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,QAAqC,CAAA;QAChE,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAE,CAAA;QAC/D,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAA0B,CAAA;QAC3D,MAAM,QAAQ,GAAG,cAAc,CAC7B,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,KAAK,EACd,OAAO,CAAC,OAAO,CAAC,KAAK,CACtB,CAAA;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAA;QACpD,MAAM,GAAG,GACP,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM;YAC1C,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM;YACpC,IAAI,CAAC,MAAM,CAAA;QACb,MAAM,MAAM,GACV,QAAQ;aACL,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,EAAE,QAAQ,CAAC;aACnC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,IAAI,GAAG,CAAA;QACrE,IAAI,KAAK,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS;YAAE,SAAQ;QACtD,MAAM,YAAY,GAAG,KAAK;aACvB,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CACtE;aACA,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,CAAC,QAAS,CAAC,KAAK,CAAC,MAAO,EAAE,CAAC,CAAC,QAAS,CAAC,GAAG,CAAC,MAAO,CAGlD,CACJ,CAAA;QACH,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,CAAA;IACnE,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;AACrD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAC7B,UAAU,EACV,MAAM,GAAG,kBAAkB,EAC3B,QAAQ,EACR,UAAU,EACV,SAAS,GAAG,GAAG,EACf,WAAW,GAAG,EAAE,EAChB,MAAM,GAAG,EAAE,EACX,GAAG,OAAO,EACY;IACtB,IACE,OAAO,CAAC,IAAI;QACZ,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;QACpD,CAAC,QAAQ;QAET,MAAM,IAAI,KAAK,CACb,UAAU,OAAO,CAAC,IAAI,wCAAwC,CAC/D,CAAA;IACH,IAAI,QAAQ,IAAI,CAAC,UAAU;QACzB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;IACzE,MAAM,SAAS,GAAqB,EAAE,CAAA;IACtC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAA;IAC7B,KAAK,MAAM,QAAQ,IAAI,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAA;QAC7D,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;QAC7C,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,qCAAqC,UAAU,EAAE,CAAC,CAAA;QACpE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;QACzB,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAC9C,MAAM,MAAM,GACV,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;QAChE,MAAM,MAAM,GAAoB,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,CAAA;QACtD,MAAM,QAAQ,GAAG,QAAQ;YACvB,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YACnD,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACjC,KAAK,MAAM,UAAU,IAAI,QAAQ,CAAC,WAAW;YAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,UAAU,IAAI,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,UAAU,CAAC,IAAI,KAAK,UAAU,CAAC,OAAO,IAAI,CACrG,CAAA;QACH,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAC1D,MAAM,IAAI,GAAG,gBAAgB,CAC3B,QAAQ,CAAC,IAAI,EACb,uBAAuB,EAAE,CACP,CAAA;QACpB,SAAS,CAAC,IAAI,CAAC;YACb,EAAE;YACF,UAAU;YACV,KAAK,EACH,MAAM,CAAC,EAAE,CAAC,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,WAAW,EAAE;YACrE,IAAI;YACJ,MAAM;YACN,WAAW,EAAE,QAAQ,CAAC,WAAW;SAClC,CAAC,CAAA;IACJ,CAAC;IACD,MAAM,aAAa,GAAG,IAAI,CACxB,IAAI,CAAC,SAAS,CAAC;QACb,OAAO;QACP,SAAS;QACT,WAAW;QACX,MAAM;QACN,UAAU,EAAE,UAAU,IAAI,mBAAmB;KAC9C,CAAC,CACH,CAAA;IACD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;YAC/B,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAE3B,MAAM,IAAI,KAAK,CACb,2DAA2D,QAAQ,CAAC,KAAK,EAAE,CAC5E,CAAA;QACH,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,oCAAoC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;QACvE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC1B,CAAC;IACD,MAAM,OAAO,GAAY;QACvB,SAAS;QACT,OAAO;QACP,aAAa;QACb,QAAQ;QACR,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;KACrC,CAAA;IACD,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE;QAC/C,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;YAClE,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;QACpE,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,EAAE;YAC7C,aAAa,EAAE,CAAC;YAChB,aAAa;YACb,OAAO;YACP,UAAU;YACV,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;gBACtD,GAAG,GAAG;gBACN,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACnC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;aAC3C,CAAC,CAAC;SACJ,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IACF,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,MAAM,GAAG,kBAAkB,EAC3B,QAA2B,EAC3B,UAAmB;IAEnB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CACzB,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,CAC5D,CAAA;IACD,IAAI,QAAQ,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;QACpE,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,OAAO;QACL,SAAS;QACT,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,QAAQ;QACR,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;KAC9D,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"library.js","sourceRoot":"","sources":["../../src/node/library.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where a local link or image in a document actually points on disk.
|
|
3
|
+
*
|
|
4
|
+
* The HTML exporter copies what this finds; the reference checker reports what
|
|
5
|
+
* it does not. Both go through here so a document cannot pass one and fail the
|
|
6
|
+
* other: a link the checker calls resolvable is a link the exporter can copy.
|
|
7
|
+
*/
|
|
8
|
+
import { type ResolvedRoot } from "./roots.js";
|
|
9
|
+
export type LocalTargetRoots = {
|
|
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[];
|
|
16
|
+
/** Extra roots holding host assets, such as `public` or `static`. */
|
|
17
|
+
assetDirs?: string[];
|
|
18
|
+
/**
|
|
19
|
+
* Strips a deployment base path from a root-relative URL, matching the host's
|
|
20
|
+
* routing. Defaults to identity for a site served from the domain root.
|
|
21
|
+
*/
|
|
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[];
|
|
29
|
+
};
|
|
30
|
+
export type LocalTarget = {
|
|
31
|
+
kind: "external";
|
|
32
|
+
url: string;
|
|
33
|
+
} | {
|
|
34
|
+
kind: "resolved";
|
|
35
|
+
relative: string;
|
|
36
|
+
source: string;
|
|
37
|
+
suffix: string;
|
|
38
|
+
} | {
|
|
39
|
+
kind: "missing";
|
|
40
|
+
relative: string;
|
|
41
|
+
suffix: string;
|
|
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;
|
|
50
|
+
/**
|
|
51
|
+
* Resolves one URL against the document that carries it.
|
|
52
|
+
*
|
|
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.
|
|
61
|
+
*/
|
|
62
|
+
export declare function resolveLocalTarget(url: string, documentSourcePath: string, roots: LocalTargetRoots): LocalTarget;
|
|
63
|
+
//# sourceMappingURL=local-target.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where a local link or image in a document actually points on disk.
|
|
3
|
+
*
|
|
4
|
+
* The HTML exporter copies what this finds; the reference checker reports what
|
|
5
|
+
* it does not. Both go through here so a document cannot pass one and fail the
|
|
6
|
+
* other: a link the checker calls resolvable is a link the exporter can copy.
|
|
7
|
+
*/
|
|
8
|
+
import fs from "node:fs";
|
|
9
|
+
import path from "node:path";
|
|
10
|
+
import { safePath } from "./storage.js";
|
|
11
|
+
import { candidateFiles } from "./roots.js";
|
|
12
|
+
/** `safePath`, but a path escaping its root is a non-match rather than a throw. */
|
|
13
|
+
const containedPath = (root, relative) => {
|
|
14
|
+
try {
|
|
15
|
+
return safePath(root, relative);
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
/** A fragment, a scheme or a protocol-relative URL: nothing on this disk. */
|
|
22
|
+
export const externalUrl = (url) => /^(?:#|[a-z][\w+.-]*:|\/\/)/i.test(url);
|
|
23
|
+
/**
|
|
24
|
+
* Whether a root-relative URL falls under one of the configured external
|
|
25
|
+
* prefixes. `/sdk` covers `/sdk` and `/sdk/…`, not `/sdk-tools`.
|
|
26
|
+
*/
|
|
27
|
+
export function isExternalPath(url, prefixes) {
|
|
28
|
+
if (!prefixes?.length || !url.startsWith("/") || url.startsWith("//"))
|
|
29
|
+
return false;
|
|
30
|
+
const pathname = url.match(/^[^?#]*/)[0];
|
|
31
|
+
return prefixes.some((prefix) => {
|
|
32
|
+
const clean = `/${prefix.replace(/^\/+|\/+$/g, "")}`;
|
|
33
|
+
return (clean !== "/" && (pathname === clean || pathname.startsWith(`${clean}/`)));
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Resolves one URL against the document that carries it.
|
|
38
|
+
*
|
|
39
|
+
* A fragment, scheme or protocol-relative URL is external and left alone, and
|
|
40
|
+
* so is a root-relative one under an external prefix. A document-relative
|
|
41
|
+
* path resolves against the library path of its document, and a root-relative
|
|
42
|
+
* one against the library itself; both then reach disk through the roots. A
|
|
43
|
+
* root-relative path is also tried against each asset directory, after the
|
|
44
|
+
* deployment base is removed. A path that escapes every root is reported as
|
|
45
|
+
* missing rather than resolved, so the caller names the link and its document
|
|
46
|
+
* instead of a traversal that means nothing to an author.
|
|
47
|
+
*/
|
|
48
|
+
export function resolveLocalTarget(url, documentSourcePath, roots) {
|
|
49
|
+
if (externalUrl(url) || isExternalPath(url, roots.externalPaths))
|
|
50
|
+
return { kind: "external", url };
|
|
51
|
+
const [, pathname, suffix] = url.match(/^([^?#]*)(.*)$/);
|
|
52
|
+
const decoded = decodeURIComponent(pathname);
|
|
53
|
+
const relative = path.posix.normalize(decoded.startsWith("/")
|
|
54
|
+
? decoded.slice(1)
|
|
55
|
+
: path.posix.join(path.posix.dirname(documentSourcePath), decoded));
|
|
56
|
+
const withoutBase = roots.withoutBase ?? ((value) => value);
|
|
57
|
+
const rootPath = withoutBase(decoded.startsWith("/") ? decoded : `/${relative}`).replace(/^\//, "");
|
|
58
|
+
const candidates = [
|
|
59
|
+
...candidateFiles(roots.roots, relative).map((source) => ({
|
|
60
|
+
relative,
|
|
61
|
+
source,
|
|
62
|
+
})),
|
|
63
|
+
...(roots.assetDirs ?? []).flatMap((root) => {
|
|
64
|
+
const source = containedPath(root, rootPath);
|
|
65
|
+
return source ? [{ relative: rootPath, source }] : [];
|
|
66
|
+
}),
|
|
67
|
+
];
|
|
68
|
+
for (const candidate of candidates) {
|
|
69
|
+
if (!fs.existsSync(candidate.source) ||
|
|
70
|
+
!fs.statSync(candidate.source).isFile())
|
|
71
|
+
continue;
|
|
72
|
+
return {
|
|
73
|
+
kind: "resolved",
|
|
74
|
+
relative: candidate.relative,
|
|
75
|
+
source: candidate.source,
|
|
76
|
+
suffix,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
return { kind: "missing", relative, suffix };
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=local-target.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-target.js","sourceRoot":"","sources":["../../src/node/local-target.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,27 @@
|
|
|
1
1
|
import type { Root } from "mdast";
|
|
2
2
|
import type { Library } from "./library.js";
|
|
3
3
|
export type PreparedEmbeds = {
|
|
4
|
-
schemaVersion:
|
|
4
|
+
schemaVersion: 2;
|
|
5
5
|
configuration: string;
|
|
6
6
|
sourceHashes: Record<string, string>;
|
|
7
7
|
blocks: Record<string, Root>;
|
|
8
|
+
/**
|
|
9
|
+
* The documents each block read, by block key: the sources named in its
|
|
10
|
+
* fence and in every embed nested in them. `["*"]` marks a block that ran
|
|
11
|
+
* an extractor, which may read anything.
|
|
12
|
+
*/
|
|
13
|
+
dependencies: Record<string, string[]>;
|
|
8
14
|
};
|
|
9
15
|
export declare const embedKey: (documentId: string, value: string, index: number) => string;
|
|
16
|
+
export type PrepareEmbedsOptions = {
|
|
17
|
+
/**
|
|
18
|
+
* The result of an earlier preparation. A block is taken from it unresolved
|
|
19
|
+
* when the configuration, the set of documents, the embedding document and
|
|
20
|
+
* every document the block depends on are unchanged.
|
|
21
|
+
*/
|
|
22
|
+
previous?: PreparedEmbeds;
|
|
23
|
+
};
|
|
10
24
|
/** Run after collection and before the host build. No asynchronous compiler is needed at render time. */
|
|
11
|
-
export declare function prepareEmbeds(library: Library, outDir?: string): Promise<PreparedEmbeds>;
|
|
25
|
+
export declare function prepareEmbeds(library: Library, outDir?: string, options?: PrepareEmbedsOptions): Promise<PreparedEmbeds>;
|
|
12
26
|
export declare function readPreparedEmbeds(outDir: string, documentId: string, source: string): PreparedEmbeds;
|
|
13
27
|
//# sourceMappingURL=prepare-embeds.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare-embeds.d.ts","sourceRoot":"","sources":["../../src/node/prepare-embeds.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAG3C,MAAM,MAAM,cAAc,GAAG;IAC3B,aAAa,EAAE,CAAC,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"prepare-embeds.d.ts","sourceRoot":"","sources":["../../src/node/prepare-embeds.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAG3C,MAAM,MAAM,cAAc,GAAG;IAC3B,aAAa,EAAE,CAAC,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAC5B;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;CACvC,CAAA;AACD,eAAO,MAAM,QAAQ,GAAI,YAAY,MAAM,EAAE,OAAO,MAAM,EAAE,OAAO,MAAM,WAChC,CAAA;AAEzC,MAAM,MAAM,oBAAoB,GAAG;IACjC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAA;CAC1B,CAAA;AAyBD,yGAAyG;AACzG,wBAAsB,aAAa,CACjC,OAAO,EAAE,OAAO,EAChB,MAAM,SAAqB,EAC3B,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,cAAc,CAAC,CA4DzB;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,cAAc,CAuBhB"}
|
|
@@ -2,26 +2,59 @@ import fs from "node:fs";
|
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { hash } from "./storage.js";
|
|
4
4
|
export const embedKey = (documentId, value, index) => `${documentId}:${index}:${hash(value)}`;
|
|
5
|
+
/**
|
|
6
|
+
* Whether blocks may be taken from a previous preparation at all: the same
|
|
7
|
+
* configuration and the same set of documents. A document added or removed
|
|
8
|
+
* changes what links inside any block resolve to, so nothing is reused then.
|
|
9
|
+
*/
|
|
10
|
+
const reusableBlocks = (library, previous) => {
|
|
11
|
+
if (!previous ||
|
|
12
|
+
previous.schemaVersion !== 2 ||
|
|
13
|
+
previous.configuration !== library.configuration ||
|
|
14
|
+
typeof previous.dependencies !== "object")
|
|
15
|
+
return undefined;
|
|
16
|
+
const ids = library.documents.map((document) => document.id).sort();
|
|
17
|
+
const known = Object.keys(previous.sourceHashes).sort();
|
|
18
|
+
if (ids.length !== known.length || ids.some((id, i) => id !== known[i]))
|
|
19
|
+
return undefined;
|
|
20
|
+
return previous;
|
|
21
|
+
};
|
|
5
22
|
/** Run after collection and before the host build. No asynchronous compiler is needed at render time. */
|
|
6
|
-
export async function prepareEmbeds(library, outDir = ".cudoc/documents") {
|
|
7
|
-
const { resolveEmbedAsync,
|
|
23
|
+
export async function prepareEmbeds(library, outDir = ".cudoc/documents", options = {}) {
|
|
24
|
+
const { resolveEmbedAsync, parseEmbedBlock } = await import("./resolve-embed.js");
|
|
8
25
|
const prepared = {
|
|
9
|
-
schemaVersion:
|
|
26
|
+
schemaVersion: 2,
|
|
10
27
|
configuration: library.configuration,
|
|
11
28
|
sourceHashes: {},
|
|
12
29
|
blocks: {},
|
|
30
|
+
dependencies: {},
|
|
13
31
|
};
|
|
32
|
+
const previous = reusableBlocks(library, options.previous);
|
|
33
|
+
const hashes = new Map(library.documents.map((document) => [document.id, document.source.hash]));
|
|
34
|
+
const unchanged = (id) => previous !== undefined && previous.sourceHashes[id] === hashes.get(id);
|
|
14
35
|
for (const document of library.documents) {
|
|
15
36
|
prepared.sourceHashes[document.id] = document.source.hash;
|
|
16
37
|
let index = 0;
|
|
17
38
|
const collect = async (node) => {
|
|
18
39
|
if (node.type === "code" && node.lang === "cudoc-embed") {
|
|
19
40
|
const number = ++index;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
41
|
+
const key = embedKey(document.id, node.value, number);
|
|
42
|
+
const stored = previous?.blocks[key];
|
|
43
|
+
const dependencies = previous?.dependencies[key];
|
|
44
|
+
if (stored &&
|
|
45
|
+
dependencies &&
|
|
46
|
+
unchanged(document.id) &&
|
|
47
|
+
!dependencies.includes("*") &&
|
|
48
|
+
dependencies.every(unchanged)) {
|
|
49
|
+
prepared.blocks[key] = stored;
|
|
50
|
+
prepared.dependencies[key] = dependencies;
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const result = await resolveEmbedAsync(library, parseEmbedBlock(node.value, document.id, number), { documentId: document.id, prefix: `embed-${number}` });
|
|
54
|
+
prepared.blocks[key] = result;
|
|
55
|
+
prepared.dependencies[key] = Array.isArray(result.data?.cudocDependencies)
|
|
56
|
+
? result.data.cudocDependencies
|
|
57
|
+
: ["*"];
|
|
25
58
|
}
|
|
26
59
|
for (const child of node.children ?? [])
|
|
27
60
|
await collect(child);
|
|
@@ -44,7 +77,7 @@ export function readPreparedEmbeds(outDir, documentId, source) {
|
|
|
44
77
|
throw new Error("cudoc: prepared embeds not found; collect documents and run prepareEmbeds before building the host");
|
|
45
78
|
const result = JSON.parse(fs.readFileSync(file, "utf8"));
|
|
46
79
|
const manifest = JSON.parse(fs.readFileSync(path.join(outDir, "manifest.json"), "utf8"));
|
|
47
|
-
if (result.schemaVersion !==
|
|
80
|
+
if (result.schemaVersion !== 2 ||
|
|
48
81
|
result.configuration !== manifest.configuration ||
|
|
49
82
|
result.sourceHashes[documentId] !== hash(source) ||
|
|
50
83
|
manifest.documents.some((doc) => result.sourceHashes[doc.id] !== doc.hash))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare-embeds.js","sourceRoot":"","sources":["../../src/node/prepare-embeds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAI5B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"prepare-embeds.js","sourceRoot":"","sources":["../../src/node/prepare-embeds.ts"],"names":[],"mappings":"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"}
|