@refrakt-md/content 0.35.0 → 0.36.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/dist/format.d.ts +22 -0
- package/dist/format.d.ts.map +1 -1
- package/dist/format.js +7 -20
- package/dist/format.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/loader.d.ts +15 -0
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +23 -1
- package/dist/loader.js.map +1 -1
- package/dist/refract-loader.d.ts +23 -0
- package/dist/refract-loader.d.ts.map +1 -1
- package/dist/refract-loader.js +81 -5
- package/dist/refract-loader.js.map +1 -1
- package/dist/site.d.ts +169 -1
- package/dist/site.d.ts.map +1 -1
- package/dist/site.js +250 -133
- package/dist/site.js.map +1 -1
- package/dist/validate-content.d.ts +83 -0
- package/dist/validate-content.d.ts.map +1 -0
- package/dist/validate-content.js +143 -0
- package/dist/validate-content.js.map +1 -0
- package/dist/validate.d.ts +32 -0
- package/dist/validate.d.ts.map +1 -1
- package/dist/validate.js +31 -10
- package/dist/validate.js.map +1 -1
- package/package.json +5 -5
package/dist/site.d.ts
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import type { RenderableTreeNodes, Schema } from '@markdoc/markdoc';
|
|
1
|
+
import type { Node, RenderableTreeNodes, Schema } from '@markdoc/markdoc';
|
|
2
2
|
import type { CompiledXrefPattern } from '@refrakt-md/runes';
|
|
3
3
|
import type { PageSeo, HeadingInfo } from '@refrakt-md/runes';
|
|
4
4
|
import type { Plugin, PipelineWarning, AggregatedData, SecurityPolicy, ProjectFiles } from '@refrakt-md/types';
|
|
5
5
|
import type { PipelineStats } from './pipeline.js';
|
|
6
|
+
import type { PipelineReporter } from './format.js';
|
|
6
7
|
import { ContentTree, type PartialFile } from './content-tree.js';
|
|
7
8
|
import { Frontmatter } from './frontmatter.js';
|
|
8
9
|
import { Route } from './router.js';
|
|
9
10
|
import { ResolvedLayout } from './layout.js';
|
|
10
11
|
import { type ResolvedTintCascade } from './tint-cascade.js';
|
|
11
12
|
import { NavTree } from './navigation.js';
|
|
13
|
+
import { type HookSet } from './pipeline.js';
|
|
12
14
|
import { type FileTimestamps } from './timestamps.js';
|
|
13
15
|
import { type FileRoots } from './file-roots.js';
|
|
14
16
|
/** Async reader for ad-hoc lookups in virtual (non-FS) hosting environments.
|
|
@@ -49,6 +51,117 @@ export interface SitePage {
|
|
|
49
51
|
ruleIndex?: number;
|
|
50
52
|
};
|
|
51
53
|
}
|
|
54
|
+
/** The subset of {@link ProcessContentTreeOptions} the shared page-environment
|
|
55
|
+
* helpers read, so `validateContent` can satisfy it without pretending to be
|
|
56
|
+
* a full content load. */
|
|
57
|
+
export interface PageEnvironmentOptions {
|
|
58
|
+
fileRoots?: FileRoots;
|
|
59
|
+
sandbox?: ProjectFiles;
|
|
60
|
+
projectRoot?: string;
|
|
61
|
+
additionalTags?: Record<string, Schema>;
|
|
62
|
+
plugins?: Plugin[];
|
|
63
|
+
xrefPatterns?: CompiledXrefPattern[];
|
|
64
|
+
repoUrl?: string;
|
|
65
|
+
repoBranch?: string;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Pre-parse partials into Markdoc ASTs for the transform config. Two sources
|
|
69
|
+
* contribute:
|
|
70
|
+
* - Site-local `_partials/` (already scanned by `ContentTree`; keys are
|
|
71
|
+
* unprefixed relative paths like `footer.md`).
|
|
72
|
+
* - Registered file roots (project-wide; keys are namespaced like
|
|
73
|
+
* `shared:footer.md`). Plugins contribute roots via `Plugin.fileRoots`; both
|
|
74
|
+
* arrive in `opts.fileRoots` already merged by the loader bootstrap.
|
|
75
|
+
*
|
|
76
|
+
* Shared with `validateContent` (SPEC-135 D14): a validation run that skipped
|
|
77
|
+
* partials would not see `{% partial %}` / `{% include %}` content, and would
|
|
78
|
+
* report a different finding set from the build for the same corpus.
|
|
79
|
+
*/
|
|
80
|
+
export declare function parsePagePartials(tree: ContentTree, opts: PageEnvironmentOptions): Promise<Record<string, Node> | undefined>;
|
|
81
|
+
/**
|
|
82
|
+
* Build the hook sets whose `preprocess` phase rewrites a page's AST before it
|
|
83
|
+
* is validated and transformed — the core set (carrying snippet's SPEC-062
|
|
84
|
+
* implementation) plus every plugin that registers hooks.
|
|
85
|
+
*
|
|
86
|
+
* The merged tags + nodes are threaded to the core hooks as `embedConfig`:
|
|
87
|
+
* expand (SPEC-066) and collection (SPEC-070) need them to re-transform
|
|
88
|
+
* extracted entity subtrees with the same schemas the host page used. Always
|
|
89
|
+
* threaded, even when a site sets no xref patterns or project root.
|
|
90
|
+
*
|
|
91
|
+
* Shared with `validateContent` (SPEC-135 D14). Preprocess is not optional for
|
|
92
|
+
* agreement: `{% snippet %}` resolves itself into a fence node here and
|
|
93
|
+
* `{% include %}` pastes partial content in, so a validation run that skipped
|
|
94
|
+
* it would validate a different tree than the build does.
|
|
95
|
+
*
|
|
96
|
+
* `processContentTree` appends two more hook sets (`__entity-routes__`,
|
|
97
|
+
* `__page-entities__`) after these. Neither defines `preprocess`, so their
|
|
98
|
+
* absence here cannot change a finding — they only matter to the
|
|
99
|
+
* register/aggregate phases, which are the `--deep` tier's business.
|
|
100
|
+
*/
|
|
101
|
+
export declare function buildPreprocessHookSets(opts: PageEnvironmentOptions, parsedPartials: Record<string, Node> | undefined): HookSet[];
|
|
102
|
+
/** Inputs to {@link buildPageContentVariables}. */
|
|
103
|
+
export interface PageContentVariablesOptions {
|
|
104
|
+
ast: Node;
|
|
105
|
+
frontmatter: Frontmatter;
|
|
106
|
+
relativePath: string;
|
|
107
|
+
filePath: string;
|
|
108
|
+
url: string;
|
|
109
|
+
draft?: boolean;
|
|
110
|
+
timestamps?: FileTimestamps;
|
|
111
|
+
variables?: Record<string, unknown>;
|
|
112
|
+
projectRoot?: string;
|
|
113
|
+
sandbox?: ProjectFiles;
|
|
114
|
+
sandboxExamplesDir?: string;
|
|
115
|
+
securityPolicy?: unknown;
|
|
116
|
+
siteConfig?: unknown;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Build the `$page` / `$file` variable surface a page is processed against.
|
|
120
|
+
*
|
|
121
|
+
* Computed *before* preprocess so file-reading preprocessors (snippet) can
|
|
122
|
+
* resolve `path=$file.path`-style attribute references against the same
|
|
123
|
+
* variables a transform-time evaluator would.
|
|
124
|
+
*
|
|
125
|
+
* Shared with `validateContent` (SPEC-135 D14), and not optional for agreement:
|
|
126
|
+
* a validation run that handed preprocess an empty variable surface leaves
|
|
127
|
+
* every `{% snippet path=$file.path %}` unresolved, which then reports an
|
|
128
|
+
* `attribute-undefined` finding for the error attribute snippet substitutes —
|
|
129
|
+
* a finding the build does not have. Found exactly that way, against refrakt's
|
|
130
|
+
* own site, before this was extracted.
|
|
131
|
+
*/
|
|
132
|
+
export declare function buildPageContentVariables(opts: PageContentVariablesOptions): Record<string, unknown>;
|
|
133
|
+
/** Inputs to {@link buildPageTransformConfig} — the per-page surface deciding
|
|
134
|
+
* which tags, nodes, functions and partials a page is read against. */
|
|
135
|
+
export interface PageTransformConfigOptions {
|
|
136
|
+
ast: Node;
|
|
137
|
+
content: string;
|
|
138
|
+
path: string;
|
|
139
|
+
sourcePath: string;
|
|
140
|
+
icons?: Record<string, Record<string, string>>;
|
|
141
|
+
additionalTags?: Record<string, Schema>;
|
|
142
|
+
contentVariables?: Record<string, unknown>;
|
|
143
|
+
partials?: Record<string, Node>;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Build the Markdoc config one page is validated and transformed against.
|
|
147
|
+
*
|
|
148
|
+
* **Extracted so the two paths cannot build it differently** — SPEC-135 D14.
|
|
149
|
+
* SPEC-132 deliberately validates against *the very object* handed to
|
|
150
|
+
* `transform`, so the two cannot disagree about which tags and attributes
|
|
151
|
+
* exist. A `validateContent` that assembled its own tag set would re-open
|
|
152
|
+
* exactly that gap, and then nothing holds up D5a's guarantee that the CLI and
|
|
153
|
+
* the build report the same findings. This function is that mechanism, not
|
|
154
|
+
* tidying: both callers go through it, or the guarantee is only hoped for.
|
|
155
|
+
*
|
|
156
|
+
* Mutates `ast` — `captureDeferredBodies` rewrites deferBody runes' bodies to
|
|
157
|
+
* source before transform (SPEC-070 / WORK-262). Kept inside this function
|
|
158
|
+
* rather than beside it so a validation run sees the same AST shape the
|
|
159
|
+
* transform would.
|
|
160
|
+
*/
|
|
161
|
+
export declare function buildPageTransformConfig(opts: PageTransformConfigOptions): {
|
|
162
|
+
config: Record<string, unknown>;
|
|
163
|
+
headings: HeadingInfo[];
|
|
164
|
+
};
|
|
52
165
|
/**
|
|
53
166
|
* Load a content directory and resolve all pages, routes, layouts, and navigation.
|
|
54
167
|
*
|
|
@@ -63,7 +176,47 @@ export interface SitePage {
|
|
|
63
176
|
* to `'trusted'` (current behaviour). Set `'strict'` for hosted-product use
|
|
64
177
|
* to strip scripts and harden the sandbox iframe.
|
|
65
178
|
*/
|
|
179
|
+
export declare function loadContent(dirPath: string, options: LoadContentOptions): Promise<Site>;
|
|
66
180
|
export declare function loadContent(dirPath: string, basePath?: string, icons?: Record<string, Record<string, string>>, additionalTags?: Record<string, Schema>, packages?: Plugin[], sandboxExamplesDir?: string, variables?: Record<string, unknown>, securityPolicy?: SecurityPolicy, projectRoot?: string, xrefPatterns?: CompiledXrefPattern[], fileRoots?: FileRoots, siteConfig?: unknown, repoUrl?: string, repoBranch?: string): Promise<Site>;
|
|
181
|
+
/**
|
|
182
|
+
* Options accepted by {@link loadContent}'s options-bag overload.
|
|
183
|
+
*
|
|
184
|
+
* The same fields the positional form takes, plus `reporter` (SPEC-135 D5),
|
|
185
|
+
* which has no positional equivalent. `plugins` is spelled as it is on
|
|
186
|
+
* {@link LoadContentFromTreeOptions} rather than the positional form's
|
|
187
|
+
* `packages`, so the two bags read the same.
|
|
188
|
+
*/
|
|
189
|
+
export interface LoadContentOptions {
|
|
190
|
+
/** URL base path for the Router. Default: `'/'`. */
|
|
191
|
+
basePath?: string;
|
|
192
|
+
/** Icon registry to inject into the Markdoc transform context. */
|
|
193
|
+
icons?: Record<string, Record<string, string>>;
|
|
194
|
+
/** Markdoc tag schemas to merge on top of the core runes. */
|
|
195
|
+
additionalTags?: Record<string, Schema>;
|
|
196
|
+
/** Plugins whose pipeline hooks should run in addition to core hooks. */
|
|
197
|
+
plugins?: Plugin[];
|
|
198
|
+
/** Directory holding sandbox example sources. Defaults to `<dirPath>/../examples`. */
|
|
199
|
+
sandboxExamplesDir?: string;
|
|
200
|
+
/** Site-wide Markdoc variables available in content via `{% $name %}`. */
|
|
201
|
+
variables?: Record<string, unknown>;
|
|
202
|
+
/** Security policy for sandbox runes. Default: `'trusted'`. */
|
|
203
|
+
securityPolicy?: SecurityPolicy;
|
|
204
|
+
/** Absolute path to the project root (where `refrakt.config.json` lives). */
|
|
205
|
+
projectRoot?: string;
|
|
206
|
+
/** Compiled xref patterns from `refrakt.config.json#/xrefs`. */
|
|
207
|
+
xrefPatterns?: CompiledXrefPattern[];
|
|
208
|
+
/** Registered file roots — namespace → absolute directory path. */
|
|
209
|
+
fileRoots?: FileRoots;
|
|
210
|
+
/** Per-site config slice — also where `validation` settings are read from. */
|
|
211
|
+
siteConfig?: unknown;
|
|
212
|
+
/** Canonical repo URL (`SiteConfig.repoUrl`) for GitHub source URLs. */
|
|
213
|
+
repoUrl?: string;
|
|
214
|
+
/** Git ref appended to GitHub source URLs. Defaults to `"main"`. */
|
|
215
|
+
repoBranch?: string;
|
|
216
|
+
/** Sink for this load's pipeline diagnostics. See
|
|
217
|
+
* {@link LoadContentFromTreeOptions.reporter} — omitted means silent. */
|
|
218
|
+
reporter?: PipelineReporter;
|
|
219
|
+
}
|
|
67
220
|
/** Options accepted by {@link loadContentFromTree}. */
|
|
68
221
|
export interface LoadContentFromTreeOptions {
|
|
69
222
|
/** URL base path for the Router. Default: `'/'`. */
|
|
@@ -124,6 +277,21 @@ export interface LoadContentFromTreeOptions {
|
|
|
124
277
|
/** Project-root-relative POSIX key of the sandbox examples directory, joined
|
|
125
278
|
* with a sandbox's `src` and resolved through `projectFiles`. */
|
|
126
279
|
sandboxExamplesDir?: string;
|
|
280
|
+
/** Sink for this load's pipeline diagnostics (SPEC-135 D5). Called once per
|
|
281
|
+
* load, after every phase, with the same stats and warnings the returned
|
|
282
|
+
* `Site` carries — so no adapter has to format or write its own summary,
|
|
283
|
+
* and none of them can drift apart.
|
|
284
|
+
*
|
|
285
|
+
* **Omitted means silent, and the stderr default lives one layer up** —
|
|
286
|
+
* on `createSiteLoader` / `createVirtualSiteLoader` / `createRefraktLoader`
|
|
287
|
+
* (and passed explicitly by the two adapters that call `loadContent`
|
|
288
|
+
* directly). SPEC-135 D5 originally put the default here; see D5b for why
|
|
289
|
+
* it moved. In short: this function is a library entry point that hundreds
|
|
290
|
+
* of tests and any embedding consumer call directly, and printing a build
|
|
291
|
+
* summary from it would be a behaviour change for all of them. The loaders
|
|
292
|
+
* are the boundary where "a site is being built for somebody to look at"
|
|
293
|
+
* is actually true. */
|
|
294
|
+
reporter?: PipelineReporter;
|
|
127
295
|
}
|
|
128
296
|
/**
|
|
129
297
|
* Like {@link loadContent}, but driven by a pre-built {@link ContentTree}
|
package/dist/site.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"site.d.ts","sourceRoot":"","sources":["../src/site.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"site.d.ts","sourceRoot":"","sources":["../src/site.ts"],"names":[],"mappings":"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"}
|