@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/site.js CHANGED
@@ -14,29 +14,214 @@ import { createPageEntityHooks } from './page-entities.js';
14
14
  import { getGitTimestamps, resolveTimestamps } from './timestamps.js';
15
15
  import { readFileRoots } from './file-roots.js';
16
16
  import { validatePage } from './validate.js';
17
- function transformContent(ast, content, path, sourcePath, icons, additionalTags, contentVariables, partials, validation) {
18
- const headings = extractHeadings(ast);
19
- const mergedTags = additionalTags ? { ...tags, ...additionalTags } : tags;
17
+ /**
18
+ * Pre-parse partials into Markdoc ASTs for the transform config. Two sources
19
+ * contribute:
20
+ * - Site-local `_partials/` (already scanned by `ContentTree`; keys are
21
+ * unprefixed relative paths like `footer.md`).
22
+ * - Registered file roots (project-wide; keys are namespaced like
23
+ * `shared:footer.md`). Plugins contribute roots via `Plugin.fileRoots`; both
24
+ * arrive in `opts.fileRoots` already merged by the loader bootstrap.
25
+ *
26
+ * Shared with `validateContent` (SPEC-135 D14): a validation run that skipped
27
+ * partials would not see `{% partial %}` / `{% include %}` content, and would
28
+ * report a different finding set from the build for the same corpus.
29
+ */
30
+ export async function parsePagePartials(tree, opts) {
31
+ const partialFiles = tree.partials();
32
+ const namespacedPartials = opts.fileRoots && Object.keys(opts.fileRoots).length > 0
33
+ ? await readFileRoots(opts.fileRoots, {
34
+ projectFiles: opts.sandbox,
35
+ projectRoot: opts.projectRoot,
36
+ })
37
+ : new Map();
38
+ if (partialFiles.size === 0 && namespacedPartials.size === 0)
39
+ return undefined;
40
+ const parsed = {};
41
+ for (const [name, partial] of partialFiles) {
42
+ parsed[name] = Markdoc.parse(escapeFenceTags(partial.raw));
43
+ }
44
+ for (const [name, partial] of namespacedPartials) {
45
+ parsed[name] = Markdoc.parse(escapeFenceTags(partial.raw));
46
+ }
47
+ return parsed;
48
+ }
49
+ /**
50
+ * Build the hook sets whose `preprocess` phase rewrites a page's AST before it
51
+ * is validated and transformed — the core set (carrying snippet's SPEC-062
52
+ * implementation) plus every plugin that registers hooks.
53
+ *
54
+ * The merged tags + nodes are threaded to the core hooks as `embedConfig`:
55
+ * expand (SPEC-066) and collection (SPEC-070) need them to re-transform
56
+ * extracted entity subtrees with the same schemas the host page used. Always
57
+ * threaded, even when a site sets no xref patterns or project root.
58
+ *
59
+ * Shared with `validateContent` (SPEC-135 D14). Preprocess is not optional for
60
+ * agreement: `{% snippet %}` resolves itself into a fence node here and
61
+ * `{% include %}` pastes partial content in, so a validation run that skipped
62
+ * it would validate a different tree than the build does.
63
+ *
64
+ * `processContentTree` appends two more hook sets (`__entity-routes__`,
65
+ * `__page-entities__`) after these. Neither defines `preprocess`, so their
66
+ * absence here cannot change a finding — they only matter to the
67
+ * register/aggregate phases, which are the `--deep` tier's business.
68
+ */
69
+ export function buildPreprocessHookSets(opts, parsedPartials) {
70
+ const embedTags = opts.additionalTags ? { ...tags, ...opts.additionalTags } : tags;
71
+ // SPEC-072 — plugin-declared (type, field) ordering overrides so
72
+ // collection/relationships sort & group in domain order. Defaults still come
73
+ // from each rune's attribute `matches`; these only cover divergent cases.
74
+ const orderings = {};
75
+ for (const pkg of opts.plugins ?? []) {
76
+ const o = pkg.theme?.orderings;
77
+ if (!o)
78
+ continue;
79
+ for (const [type, fields] of Object.entries(o)) {
80
+ orderings[type] = { ...(orderings[type] ?? {}), ...fields };
81
+ }
82
+ }
83
+ // SPEC-076 / WORK-357 — `(type, field, value) → sentiment` derived from each
84
+ // rune's `metaFields.*.sentimentMap`, keyed by the rune's `block`.
85
+ const sentiments = {};
86
+ for (const pkg of opts.plugins ?? []) {
87
+ for (const cfg of Object.values(pkg.theme?.runes ?? {})) {
88
+ const type = cfg.block;
89
+ const metaFields = cfg.metaFields;
90
+ if (!type || !metaFields)
91
+ continue;
92
+ for (const [field, fieldCfg] of Object.entries(metaFields)) {
93
+ if (!fieldCfg?.sentimentMap)
94
+ continue;
95
+ sentiments[type] = sentiments[type] ?? {};
96
+ sentiments[type][field] = { ...(sentiments[type][field] ?? {}), ...fieldCfg.sentimentMap };
97
+ }
98
+ }
99
+ }
100
+ const coreHooks = createCorePipelineHooks({
101
+ xrefPatterns: opts.xrefPatterns,
102
+ repoUrl: opts.repoUrl,
103
+ repoBranch: opts.repoBranch,
104
+ embedConfig: {
105
+ tags: embedTags,
106
+ nodes: nodes,
107
+ functions: functions,
108
+ orderings,
109
+ sentiments,
110
+ // Pass parsed partials so `{% partial file="…" /%}` inside a collection
111
+ // body template (or an expand-resolved entity body) resolves the same
112
+ // way it would inside a top-level page.
113
+ partials: parsedPartials,
114
+ projectRoot: opts.projectRoot,
115
+ // SPEC-113 — expand / file-ref read source files through the same
116
+ // provider as snippet (the sandbox provider on the options bag).
117
+ projectFiles: opts.sandbox,
118
+ },
119
+ });
120
+ const hookSets = [{ pluginName: '__core__', hooks: coreHooks }];
121
+ for (const pkg of opts.plugins ?? []) {
122
+ if (pkg.pipeline) {
123
+ hookSets.push({ pluginName: pkg.name, hooks: pkg.pipeline });
124
+ }
125
+ }
126
+ return hookSets;
127
+ }
128
+ /**
129
+ * Build the `$page` / `$file` variable surface a page is processed against.
130
+ *
131
+ * Computed *before* preprocess so file-reading preprocessors (snippet) can
132
+ * resolve `path=$file.path`-style attribute references against the same
133
+ * variables a transform-time evaluator would.
134
+ *
135
+ * Shared with `validateContent` (SPEC-135 D14), and not optional for agreement:
136
+ * a validation run that handed preprocess an empty variable surface leaves
137
+ * every `{% snippet path=$file.path %}` unresolved, which then reports an
138
+ * `attribute-undefined` finding for the error attribute snippet substitutes —
139
+ * a finding the build does not have. Found exactly that way, against refrakt's
140
+ * own site, before this was extracted.
141
+ */
142
+ export function buildPageContentVariables(opts) {
143
+ const pagePath = posixPath(opts.relativePath);
144
+ const filePath = opts.projectRoot
145
+ ? posixRelativeFromRoot(opts.projectRoot, opts.filePath)
146
+ : pagePath;
147
+ return {
148
+ ...opts.variables,
149
+ frontmatter: opts.frontmatter,
150
+ page: {
151
+ url: opts.url,
152
+ path: pagePath,
153
+ dir: posixDirname(opts.relativePath),
154
+ slug: lastUrlSegment(opts.url),
155
+ title: derivePageTitle(opts.frontmatter, opts.ast),
156
+ draft: opts.draft,
157
+ },
158
+ file: {
159
+ path: filePath,
160
+ created: opts.timestamps?.created,
161
+ modified: opts.timestamps?.modified,
162
+ },
163
+ __sandboxFiles: opts.sandbox,
164
+ __sandboxExamplesDir: opts.sandboxExamplesDir,
165
+ __securityPolicy: opts.securityPolicy,
166
+ // SPEC-104 §5 — the project's bg preset registry, so `bg="name"` can expand
167
+ // a `sandbox`-typed preset into a backdrop guest at transform time (where
168
+ // the sandbox readers live). Sandbox presets are project-level config.
169
+ __backgrounds: opts.siteConfig
170
+ ?.backgrounds,
171
+ };
172
+ }
173
+ /**
174
+ * Build the Markdoc config one page is validated and transformed against.
175
+ *
176
+ * **Extracted so the two paths cannot build it differently** — SPEC-135 D14.
177
+ * SPEC-132 deliberately validates against *the very object* handed to
178
+ * `transform`, so the two cannot disagree about which tags and attributes
179
+ * exist. A `validateContent` that assembled its own tag set would re-open
180
+ * exactly that gap, and then nothing holds up D5a's guarantee that the CLI and
181
+ * the build report the same findings. This function is that mechanism, not
182
+ * tidying: both callers go through it, or the guarantee is only hoped for.
183
+ *
184
+ * Mutates `ast` — `captureDeferredBodies` rewrites deferBody runes' bodies to
185
+ * source before transform (SPEC-070 / WORK-262). Kept inside this function
186
+ * rather than beside it so a validation run sees the same AST shape the
187
+ * transform would.
188
+ */
189
+ export function buildPageTransformConfig(opts) {
190
+ const headings = extractHeadings(opts.ast);
191
+ const mergedTags = opts.additionalTags ? { ...tags, ...opts.additionalTags } : tags;
20
192
  // Capture deferBody runes' bodies as source before transform, so their
21
193
  // per-entity `$item` templates aren't resolved here (SPEC-070 / WORK-262).
22
- captureDeferredBodies(ast, (name) => Boolean(mergedTags[name]?.deferBody));
194
+ captureDeferredBodies(opts.ast, (name) => Boolean(mergedTags[name]?.deferBody));
23
195
  const config = {
24
196
  tags: mergedTags,
25
197
  nodes,
26
198
  functions,
27
199
  variables: {
28
200
  generatedIds: new Set(),
29
- path,
201
+ path: opts.path,
30
202
  headings,
31
- __source: content,
32
- __sourcePath: sourcePath,
33
- ...(icons ? { __icons: icons } : {}),
34
- ...contentVariables,
203
+ __source: opts.content,
204
+ __sourcePath: opts.sourcePath,
205
+ ...(opts.icons ? { __icons: opts.icons } : {}),
206
+ ...opts.contentVariables,
35
207
  },
36
208
  };
37
- if (partials) {
38
- config.partials = partials;
209
+ if (opts.partials) {
210
+ config.partials = opts.partials;
39
211
  }
212
+ return { config, headings };
213
+ }
214
+ function transformContent(ast, content, path, sourcePath, icons, additionalTags, contentVariables, partials, validation) {
215
+ const { config, headings } = buildPageTransformConfig({
216
+ ast,
217
+ content,
218
+ path,
219
+ sourcePath,
220
+ icons,
221
+ additionalTags,
222
+ contentVariables,
223
+ partials,
224
+ });
40
225
  // SPEC-132 — validate against `config`, the very object handed to
41
226
  // `transform` below, so the two cannot disagree about which tags and
42
227
  // attributes exist. Plugin runes are already merged into `mergedTags`, so
@@ -100,22 +285,7 @@ async function processContentTree(tree, opts) {
100
285
  // `Plugin.fileRoots`; both arrive in `opts.fileRoots` already
101
286
  // merged by the loader bootstrap.
102
287
  const partialFiles = tree.partials();
103
- const namespacedPartials = opts.fileRoots && Object.keys(opts.fileRoots).length > 0
104
- ? await readFileRoots(opts.fileRoots, {
105
- projectFiles: opts.sandbox,
106
- projectRoot: opts.projectRoot,
107
- })
108
- : new Map();
109
- let parsedPartials;
110
- if (partialFiles.size > 0 || namespacedPartials.size > 0) {
111
- parsedPartials = {};
112
- for (const [name, partial] of partialFiles) {
113
- parsedPartials[name] = Markdoc.parse(escapeFenceTags(partial.raw));
114
- }
115
- for (const [name, partial] of namespacedPartials) {
116
- parsedPartials[name] = Markdoc.parse(escapeFenceTags(partial.raw));
117
- }
118
- }
288
+ const parsedPartials = await parsePagePartials(tree, opts);
119
289
  // Build hook sets here (rather than after the per-page loop, as before)
120
290
  // so the preprocess phase can run during page processing — each hook set
121
291
  // gets a chance to rewrite the parsed AST before the transform runs.
@@ -126,69 +296,7 @@ async function processContentTree(tree, opts) {
126
296
  // through to the core hooks as `embedConfig` — expand (SPEC-066) needs
127
297
  // them to re-transform extracted entity subtrees using the same schemas
128
298
  // the host page used.
129
- const embedTags = opts.additionalTags ? { ...tags, ...opts.additionalTags } : tags;
130
- // SPEC-072 — collect plugin-declared (type, field) ordering overrides so
131
- // collection/relationships sort & group in domain order. Defaults still come
132
- // from each rune's attribute `matches`; these only cover the divergent cases.
133
- const orderings = {};
134
- for (const pkg of opts.plugins ?? []) {
135
- const o = pkg.theme?.orderings;
136
- if (!o)
137
- continue;
138
- for (const [type, fields] of Object.entries(o)) {
139
- orderings[type] = { ...(orderings[type] ?? {}), ...fields };
140
- }
141
- }
142
- // SPEC-076 / WORK-357 — derive `(type, field, value) → sentiment` from each
143
- // rune's `metaFields.*.sentimentMap` (keyed by the rune's `block` = entity
144
- // type), so `aggregate` can project `$item.sentiment` for sentiment-coloured
145
- // breakdowns. No duplication: the same maps that colour entity badges.
146
- const sentiments = {};
147
- for (const pkg of opts.plugins ?? []) {
148
- for (const cfg of Object.values(pkg.theme?.runes ?? {})) {
149
- const type = cfg.block;
150
- const metaFields = cfg.metaFields;
151
- if (!type || !metaFields)
152
- continue;
153
- for (const [field, fieldCfg] of Object.entries(metaFields)) {
154
- if (!fieldCfg?.sentimentMap)
155
- continue;
156
- sentiments[type] = sentiments[type] ?? {};
157
- sentiments[type][field] = { ...(sentiments[type][field] ?? {}), ...fieldCfg.sentimentMap };
158
- }
159
- }
160
- }
161
- const coreHooksOptions = {
162
- xrefPatterns: opts.xrefPatterns,
163
- repoUrl: opts.repoUrl,
164
- repoBranch: opts.repoBranch,
165
- embedConfig: {
166
- tags: embedTags,
167
- nodes: nodes,
168
- functions: functions,
169
- orderings,
170
- sentiments,
171
- // Pass parsed partials so `{% partial file="…" /%}` inside a collection
172
- // body template (or an expand-resolved entity body) resolves the same
173
- // way it would inside a top-level page. Without this, partial nodes in
174
- // deferred templates silently render as empty `<article>` tags.
175
- partials: parsedPartials,
176
- projectRoot: opts.projectRoot,
177
- // SPEC-113 — expand / file-ref read source files through the same
178
- // provider as snippet (the sandbox provider on the options bag).
179
- projectFiles: opts.sandbox,
180
- },
181
- };
182
- // Always thread embedConfig: collection (SPEC-070) and expand (SPEC-066) need
183
- // the merged tags/nodes/functions to transform per-entity templates, even
184
- // when a site sets no xref patterns or project root.
185
- const coreHooks = createCorePipelineHooks(coreHooksOptions);
186
- const hookSets = [{ pluginName: '__core__', hooks: coreHooks }];
187
- for (const pkg of opts.plugins ?? []) {
188
- if (pkg.pipeline) {
189
- hookSets.push({ pluginName: pkg.name, hooks: pkg.pipeline });
190
- }
191
- }
299
+ const hookSets = buildPreprocessHookSets(opts, parsedPartials);
192
300
  // Built-in entityRoutes config-rules adapter (SPEC-069). Resolves render-template
193
301
  // partials from the (lazily populated) partials map. No-op unless the site
194
302
  // config declares `entityRoutes`.
@@ -253,35 +361,21 @@ async function processContentTree(tree, opts) {
253
361
  // Compute the page-variable surface before preprocess so file-reading
254
362
  // preprocessors (snippet) can resolve `path=$file.path` style attribute
255
363
  // references against the same variables a transform-time evaluator would.
256
- const pagePath = posixPath(page.relativePath);
257
- const filePath = opts.projectRoot
258
- ? posixRelativeFromRoot(opts.projectRoot, page.filePath)
259
- : pagePath;
260
- const contentVariables = {
261
- ...opts.variables,
364
+ const contentVariables = buildPageContentVariables({
365
+ ast,
262
366
  frontmatter,
263
- page: {
264
- url: route.url,
265
- path: pagePath,
266
- dir: posixDirname(page.relativePath),
267
- slug: lastUrlSegment(route.url),
268
- title: derivePageTitle(frontmatter, ast),
269
- draft: route.draft,
270
- },
271
- file: {
272
- path: filePath,
273
- created: fileTimestamps.created,
274
- modified: fileTimestamps.modified,
275
- },
276
- __sandboxFiles: sandbox,
277
- __sandboxExamplesDir: opts.sandboxExamplesDir,
278
- __securityPolicy: resolvedSecurity,
279
- // SPEC-104 §5 — the project's bg preset registry, so `bg="name"` can expand
280
- // a `sandbox`-typed preset into a backdrop guest at transform time (where
281
- // the sandbox readers live). Sandbox presets are project-level config.
282
- __backgrounds: opts.siteConfig
283
- ?.backgrounds,
284
- };
367
+ relativePath: page.relativePath,
368
+ filePath: page.filePath,
369
+ url: route.url,
370
+ draft: route.draft,
371
+ timestamps: fileTimestamps,
372
+ variables: opts.variables,
373
+ projectRoot: opts.projectRoot,
374
+ sandbox,
375
+ sandboxExamplesDir: opts.sandboxExamplesDir,
376
+ securityPolicy: resolvedSecurity,
377
+ siteConfig: opts.siteConfig,
378
+ });
285
379
  // SPEC-062 preprocess phase — runs after variables are computed (so
286
380
  // hooks can resolve `path=$file.path`-style attribute references against
287
381
  // them) and before the schema-driven transform. Snippet pre-resolves
@@ -460,6 +554,11 @@ async function processContentTree(tree, opts) {
460
554
  }
461
555
  }
462
556
  }
557
+ // SPEC-135 D5 — one report per load, at the function every mode goes
558
+ // through. Fires after all four phases so `warnings` is complete; the
559
+ // caller's cache decides how often a load actually happens, which is what
560
+ // keeps a dev session from re-printing on every navigation.
561
+ opts.reporter?.(stats, warnings);
463
562
  return {
464
563
  tree,
465
564
  pages: enrichedPages,
@@ -501,21 +600,37 @@ function makeContextForRegions(warnings, url) {
501
600
  },
502
601
  };
503
602
  }
504
- /**
505
- * Load a content directory and resolve all pages, routes, layouts, and navigation.
506
- *
507
- * When `packages` are provided, the cross-page pipeline runs after loading:
508
- * core hooks + package hooks register entities, aggregate cross-page data,
509
- * and post-process pages before returning.
510
- *
511
- * When `sandboxExamplesDir` is provided, sandbox runes with `src` attributes
512
- * can load code from external files in that directory.
513
- *
514
- * `securityPolicy` controls how runes treat untrusted author content. Defaults
515
- * to `'trusted'` (current behaviour). Set `'strict'` for hosted-product use
516
- * to strip scripts and harden the sandbox iframe.
517
- */
518
- export async function loadContent(dirPath, basePath = '/', icons, additionalTags, packages, sandboxExamplesDir, variables, securityPolicy, projectRoot, xrefPatterns, fileRoots, siteConfig, repoUrl, repoBranch) {
603
+ export async function loadContent(dirPath, basePathOrOptions = '/', icons, additionalTags, packages, sandboxExamplesDir, variables, securityPolicy, projectRoot, xrefPatterns, fileRoots, siteConfig, repoUrl, repoBranch) {
604
+ // SPEC-135 D5 — the options-bag form. The positional signature had already
605
+ // reached fourteen parameters, so `reporter` arrives as a field rather than
606
+ // a fifteenth argument. Both forms are supported and both stay exported;
607
+ // whether 1.0 keeps the positional one is WORK-576.
608
+ //
609
+ // `reporter` is reachable only from the bag: the positional form predates
610
+ // it and gains no fifteenth slot, so a positional caller is silent — which
611
+ // is exactly today's behaviour for every one of them.
612
+ let reporter;
613
+ let basePath;
614
+ if (typeof basePathOrOptions === 'object') {
615
+ const o = basePathOrOptions;
616
+ basePath = o.basePath ?? '/';
617
+ icons = o.icons;
618
+ additionalTags = o.additionalTags;
619
+ packages = o.plugins;
620
+ sandboxExamplesDir = o.sandboxExamplesDir;
621
+ variables = o.variables;
622
+ securityPolicy = o.securityPolicy;
623
+ projectRoot = o.projectRoot;
624
+ xrefPatterns = o.xrefPatterns;
625
+ fileRoots = o.fileRoots;
626
+ siteConfig = o.siteConfig;
627
+ repoUrl = o.repoUrl;
628
+ repoBranch = o.repoBranch;
629
+ reporter = o.reporter;
630
+ }
631
+ else {
632
+ basePath = basePathOrOptions;
633
+ }
519
634
  const tree = await ContentTree.fromDirectory(dirPath);
520
635
  const resolvedExamplesDir = sandboxExamplesDir
521
636
  ? resolve(sandboxExamplesDir)
@@ -546,6 +661,7 @@ export async function loadContent(dirPath, basePath = '/', icons, additionalTags
546
661
  siteConfig,
547
662
  repoUrl,
548
663
  repoBranch,
664
+ reporter,
549
665
  });
550
666
  }
551
667
  /**
@@ -586,6 +702,7 @@ export async function loadContentFromTree(tree, options = {}) {
586
702
  sandbox: options.projectFiles,
587
703
  sandboxExamplesDir: options.sandboxExamplesDir,
588
704
  gitTimestamps: options.gitTimestamps,
705
+ reporter: options.reporter,
589
706
  });
590
707
  }
591
708
  //# sourceMappingURL=site.js.map
package/dist/site.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"site.js","sourceRoot":"","sources":["../src/site.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,WAAW,CAAC;AAClF,OAAO,OAAO,MAAM,kBAAkB,CAAC;AAEvC,OAAO,EACN,IAAI,EACJ,KAAK,EACL,eAAe,EACf,OAAO,EACP,UAAU,EACV,uBAAuB,EACvB,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,SAAS,GACT,MAAM,mBAAmB,CAAC;AAW3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAoB,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAe,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAS,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAkB,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAA4B,MAAM,mBAAmB,CAAC;AAEjF,OAAO,EAAE,WAAW,EAAgB,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAuB,MAAM,iBAAiB,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAkB,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAqD,MAAM,eAAe,CAAC;AAuChG,SAAS,gBAAgB,CACxB,GAAS,EACT,OAAe,EACf,IAAY,EACZ,UAAkB,EAClB,KAA8C,EAC9C,cAAuC,EACvC,gBAA0C,EAC1C,QAA+B,EAC/B,UAAgC;IAEhC,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1E,uEAAuE;IACvE,2EAA2E;IAC3E,qBAAqB,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CACnC,OAAO,CAAE,UAAsD,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CACjF,CAAC;IACF,MAAM,MAAM,GAA4B;QACvC,IAAI,EAAE,UAAU;QAChB,KAAK;QACL,SAAS;QACT,SAAS,EAAE;YACV,YAAY,EAAE,IAAI,GAAG,EAAU;YAC/B,IAAI;YACJ,QAAQ;YACR,QAAQ,EAAE,OAAO;YACjB,YAAY,EAAE,UAAU;YACxB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpC,GAAG,gBAAgB;SACnB;KACD,CAAC;IACF,IAAI,QAAQ,EAAE,CAAC;QACd,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC5B,CAAC;IACD,kEAAkE;IAClE,qEAAqE;IACrE,0EAA0E;IAC1E,sEAAsE;IACtE,wEAAwE;IACxE,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,MAAa,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAClF,CAAC;AAED,mEAAmE;AACnE,SAAS,SAAS,CAAC,CAAS;IAC3B,OAAO,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzD,CAAC;AAED;6DAC6D;AAC7D,SAAS,YAAY,CAAC,CAAS;IAC9B,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AAC/B,CAAC;AAED,gDAAgD;AAChD,SAAS,qBAAqB,CAAC,WAAmB,EAAE,YAAoB;IACvE,OAAO,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,4EAA4E;AAC5E,SAAS,cAAc,CAAC,GAAW;IAClC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACrC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACtD,CAAC;AAED;;iBAEiB;AACjB,SAAS,eAAe,CAAC,WAAwB,EAAE,GAAS;IAC3D,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC;IAC9B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,OAAO,CAAC;IACxC,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AAED;;8CAE8C;AAC9C,MAAM,gBAAgB,GAAiB;IACtC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI;IAChB,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE;IACd,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK;CACnB,CAAC;AA4CF,KAAK,UAAU,kBAAkB,CAChC,IAAiB,EACjB,IAA+B;IAE/B,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC;IAChD,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,gBAAgB,CAAC;IACjD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,GAAG,EAA0B,CAAC;IAE9E,qEAAqE;IACrE,sBAAsB;IACtB,uEAAuE;IACvE,0DAA0D;IAC1D,kEAAkE;IAClE,+DAA+D;IAC/D,gEAAgE;IAChE,oCAAoC;IACpC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IACrC,MAAM,kBAAkB,GACvB,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC;QACvD,CAAC,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE;YACpC,YAAY,EAAE,IAAI,CAAC,OAAO;YAC1B,WAAW,EAAE,IAAI,CAAC,WAAW;SAC7B,CAAC;QACH,CAAC,CAAC,IAAI,GAAG,EAAuB,CAAC;IACnC,IAAI,cAAgD,CAAC;IACrD,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,IAAI,kBAAkB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC1D,cAAc,GAAG,EAAE,CAAC;QACpB,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,YAAY,EAAE,CAAC;YAC5C,cAAc,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QACpE,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,kBAAkB,EAAE,CAAC;YAClD,cAAc,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QACpE,CAAC;IACF,CAAC;IAED,wEAAwE;IACxE,yEAAyE;IACzE,qEAAqE;IACrE,4EAA4E;IAC5E,sEAAsE;IACtE,EAAE;IACF,yEAAyE;IACzE,uEAAuE;IACvE,wEAAwE;IACxE,sBAAsB;IACtB,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACnF,yEAAyE;IACzE,6EAA6E;IAC7E,8EAA8E;IAC9E,MAAM,SAAS,GAA6C,EAAE,CAAC;IAC/D,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC;QAC/B,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAChD,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;QAC7D,CAAC;IACF,CAAC;IACD,4EAA4E;IAC5E,2EAA2E;IAC3E,6EAA6E;IAC7E,uEAAuE;IACvE,MAAM,UAAU,GAA2D,EAAE,CAAC;IAC9E,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QACtC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;YACzD,MAAM,IAAI,GAAI,GAA0B,CAAC,KAAK,CAAC;YAC/C,MAAM,UAAU,GACf,GACA,CAAC,UAAU,CAAC;YACb,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU;gBAAE,SAAS;YACnC,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5D,IAAI,CAAC,QAAQ,EAAE,YAAY;oBAAE,SAAS;gBACtC,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC1C,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;YAC5F,CAAC;QACF,CAAC;IACF,CAAC;IACD,MAAM,gBAAgB,GAAG;QACxB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,WAAW,EAAE;YACZ,IAAI,EAAE,SAAoC;YAC1C,KAAK,EAAE,KAAgC;YACvC,SAAS,EAAE,SAAoC;YAC/C,SAAS;YACT,UAAU;YACV,wEAAwE;YACxE,sEAAsE;YACtE,uEAAuE;YACvE,gEAAgE;YAChE,QAAQ,EAAE,cAAc;YACxB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,kEAAkE;YAClE,iEAAiE;YACjE,YAAY,EAAE,IAAI,CAAC,OAAO;SAC1B;KACD,CAAC;IACF,8EAA8E;IAC9E,0EAA0E;IAC1E,qDAAqD;IACrD,MAAM,SAAS,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAc,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC3E,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QACtC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YAClB,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9D,CAAC;IACF,CAAC;IACD,kFAAkF;IAClF,2EAA2E;IAC3E,kCAAkC;IAClC,QAAQ,CAAC,IAAI,CAAC;QACb,UAAU,EAAE,mBAAmB;QAC/B,KAAK,EAAE,uBAAuB,CAAC,CAAC,IAAI,EAAE,EAAE;YACvC,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC;YACpC,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAChD,CAAC,CAAC;KACF,CAAC,CAAC;IAEH,2EAA2E;IAC3E,8EAA8E;IAC9E,+EAA+E;IAC/E,gEAAgE;IAChE,QAAQ,CAAC,IAAI,CAAC;QACb,UAAU,EAAE,mBAAmB;QAC/B,KAAK,EAAE,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC;KAC7C,CAAC,CAAC;IAEH,2EAA2E;IAC3E,0EAA0E;IAC1E,yEAAyE;IACzE,yDAAyD;IACzD,MAAM,kBAAkB,GAIlB,EAAE,CAAC;IAET,4EAA4E;IAC5E,yEAAyE;IACzE,uEAAuE;IACvE,MAAM,kBAAkB,GAAsB,EAAE,CAAC;IACjD,MAAM,kBAAkB,GAAI,IAAI,CAAC,UAA8D;QAC9F,EAAE,UAAU,CAAC;IACd,MAAM,iBAAiB,GAAG,CAAC,OAAe,EAAE,SAAmC,EAAE,EAAE,CAAC,CAAC;QACpF,IAAI,CAAC,OAAe,EAAE,GAAY;YACjC,kBAAkB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,OAAO,EAAE,CAAC,CAAC;QAC7E,CAAC;QACD,IAAI,CAAC,OAAe,EAAE,GAAY;YACjC,kBAAkB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,OAAO,EAAE,CAAC,CAAC;QAChF,CAAC;QACD,KAAK,CAAC,OAAe,EAAE,GAAY;YAClC,kBAAkB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,OAAO,EAAE,CAAC,CAAC;QAC9E,CAAC;QACD,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,SAAS;QACT,gEAAgE;QAChE,qEAAqE;QACrE,wEAAwE;QACxE,6DAA6D;QAC7D,EAAE;QACF,2EAA2E;QAC3E,yEAAyE;QACzE,wEAAwE;QACxE,2EAA2E;QAC3E,4EAA4E;QAC5E,WAAW;QACX,QAAQ,EAAE,cAAc,IAAI,EAAE;KAC9B,CAAC,CAAC;IAEH,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;QACjC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3D,MAAM,cAAc,GAAG,iBAAiB,CACvC,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,QAAQ,EACb,aAAa,EACb,WAAW,CACX,CAAC;QACF,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;QAElD,sEAAsE;QACtE,wEAAwE;QACxE,0EAA0E;QAC1E,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW;YAChC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC;YACxD,CAAC,CAAC,QAAQ,CAAC;QACZ,MAAM,gBAAgB,GAA4B;YACjD,GAAG,IAAI,CAAC,SAAS;YACjB,WAAW;YACX,IAAI,EAAE;gBACL,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC;gBACpC,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC;gBAC/B,KAAK,EAAE,eAAe,CAAC,WAAW,EAAE,GAAG,CAAC;gBACxC,KAAK,EAAE,KAAK,CAAC,KAAK;aAClB;YACD,IAAI,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,cAAc,CAAC,OAAO;gBAC/B,QAAQ,EAAE,cAAc,CAAC,QAAQ;aACjC;YACD,cAAc,EAAE,OAAO;YACvB,oBAAoB,EAAE,IAAI,CAAC,kBAAkB;YAC7C,gBAAgB,EAAE,gBAAgB;YAClC,4EAA4E;YAC5E,0EAA0E;YAC1E,uEAAuE;YACvE,aAAa,EAAG,IAAI,CAAC,UAAoE;gBACxF,EAAE,WAAW;SACd,CAAC;QAEF,oEAAoE;QACpE,yEAAyE;QACzE,qEAAqE;QACrE,sEAAsE;QACtE,gCAAgC;QAChC,MAAM,QAAQ,GAAG;YAChB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACvB,CAAC;QACF,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;QAC7D,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,UAAU;gBAAE,SAAS;YAChC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC1D,IAAI,IAAI;gBAAE,GAAG,GAAG,IAAI,CAAC;QACtB,CAAC;QAED,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAC1D,GAAG,EACH,OAAO,EACP,KAAK,CAAC,GAAG,EACT,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,cAAc,EACnB,gBAAgB,EAChB,cAAc,EACd,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAChD,CAAC;QACF,kBAAkB,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,UAAU,CAAC,UAAU,EAAE,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAE3D,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;YACvD,WAAW,EAAE,IAAI,CAAC,WAAW;SAC7B,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,2DAA2D;IAC3D,KAAK,MAAM,CAAC,IAAI,KAAK;QAAE,CAAC,CAAC,MAAM,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAEnD,6EAA6E;IAC7E,2EAA2E;IAC3E,2DAA2D;IAC3D,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACvD,MAAM,iBAAiB,GAAG,CAAC,EAAmB,EAAY,EAAE;QAC3D,MAAM,WAAW,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,EAAiB,CAAC;QACjE,IAAI,EAAE,CAAC,KAAK,IAAI,IAAI,IAAI,WAAW,CAAC,KAAK,KAAK,SAAS;YAAE,WAAW,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;QACtF,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC;QAC9E,MAAM,YAAY,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC/C,2EAA2E;QAC3E,wEAAwE;QACxE,gEAAgE;QAChE,MAAM,UAAU,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,EAAE,EAAW,CAAC;QACtD,MAAM,MAAM,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACjE,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QACvD,MAAM,gBAAgB,GAA4B;YACjD,GAAG,IAAI,CAAC,SAAS;YACjB,WAAW;YACX,IAAI,EAAE;gBACL,GAAG;gBACH,IAAI,EAAE,YAAY;gBAClB,GAAG,EAAE,YAAY,CAAC,YAAY,CAAC;gBAC/B,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC;gBACzB,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,eAAe,CAAC,WAAW,EAAE,GAAG,CAAC;gBACpD,KAAK,EAAE,WAAW,CAAC,KAAK,KAAK,IAAI;aACjC;YACD,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE;YACrE,cAAc,EAAE,OAAO;YACvB,oBAAoB,EAAE,IAAI,CAAC,kBAAkB;YAC7C,gBAAgB,EAAE,gBAAgB;YAClC,qEAAqE;YACrE,GAAG,CAAC,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC;SACvB,CAAC;QACF,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAC1D,GAAG,EACH,EAAE,CAAC,OAAO,EACV,GAAG,EACH,YAAY,EACZ,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,cAAc,EACnB,gBAAgB,EAChB,cAAc;QACd,iEAAiE;QACjE,gEAAgE;QAChE,kEAAkE;QAClE,EAAE,GAAG,EAAE,QAAQ,EAAE,kBAAkB,EAAE,aAAa,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,IAAI,aAAa,EAAE,CACxF,CAAC;QACF,kBAAkB,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,UAAU,CAAC,UAAU,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;QACrD,MAAM,WAAW,GAAG,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE;YAC7D,WAAW,EAAE,IAAI,CAAC,WAAW;SAC7B,CAAC,CAAC;QACH,OAAO;YACN,KAAK,EAAE;gBACN,GAAG;gBACH,QAAQ,EAAE,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,IAAI,QAAQ,GAAG;gBAC1D,KAAK,EAAE,WAAW,CAAC,KAAK,KAAK,IAAI;aACjC;YACD,WAAW;YACX,OAAO,EAAE,EAAE,CAAC,OAAO;YACnB,UAAU;YACV,QAAQ;YACR,MAAM;YACN,GAAG;YACH,WAAW;YACX,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE;SAC3F,CAAC;IACH,CAAC,CAAC;IAEF,yEAAyE;IACzE,uEAAuE;IACvE,wCAAwC;IACxC,MAAM,EACL,KAAK,EAAE,aAAa,EACpB,QAAQ,EACR,KAAK,EACL,UAAU,GACV,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE;QACtC,iBAAiB;QACjB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;KAC3B,CAAC,CAAC;IAEH,+EAA+E;IAC/E,2EAA2E;IAC3E,8EAA8E;IAC9E,iEAAiE;IACjE,KAAK,MAAM,CAAC,IAAI,kBAAkB,EAAE,CAAC;QACpC,QAAQ,CAAC,IAAI,CAAC;YACb,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,KAAK,EAAE,UAAU;YACjB,UAAU,EAAE,gBAAgB;YAC5B,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,OAAO,EAAE,CAAC,CAAC,OAAO;SAClB,CAAC,CAAC;IACJ,CAAC;IAED,yEAAyE;IACzE,0EAA0E;IAC1E,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,CAAC;IAErC,8EAA8E;IAC9E,EAAE;IACF,8EAA8E;IAC9E,4EAA4E;IAC5E,oEAAoE;IACpE,8EAA8E;IAC9E,4EAA4E;IAC5E,8EAA8E;IAC9E,iCAAiC;IACjC,EAAE;IACF,0EAA0E;IAC1E,yEAAyE;IACzE,6DAA6D;IAC7D,EAAE;IACF,yEAAyE;IACzE,2EAA2E;IAC3E,8EAA8E;IAC9E,2EAA2E;IAC3E,8EAA8E;IAC9E,sEAAsE;IACtE,EAAE;IACF,6EAA6E;IAC7E,4EAA4E;IAC5E,wDAAwD;IACxD,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QAClC,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1E,CAAC;IAED,6EAA6E;IAC7E,8EAA8E;IAC9E,4EAA4E;IAC5E,8EAA8E;IAC9E,2DAA2D;IAC3D,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAA2D,CAAC;IAClG,IAAI,QAAQ,EAAE,CAAC;QACd,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YAClC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;gBAAE,SAAS;YAC7C,MAAM,GAAG,GAAG,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5D,2EAA2E;YAC3E,qEAAqE;YACrE,sEAAsE;YACtE,qCAAqC;YACrC,MAAM,cAAc,GAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACpD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;gBACnD,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACrC,CAAC;YACD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAgD,CAAC;YAChF,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAClD,MAAM,QAAQ,GAAG,oBAAoB,CACpC,MAAM,CAAC,OAAO,EACd,IAAI,CAAC,KAAK,CAAC,GAAG,EACd,QAAQ,EACR,GAAG,EACH,cAAc,CACW,CAAC;gBAC3B,IAAI,QAAQ,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC;oBACjC,OAAO,GAAG,IAAI,CAAC;oBACf,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC7D,CAAC;qBAAM,CAAC;oBACP,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACnC,CAAC;YACF,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,MAAkD,CAAC,OAAO;oBAC/D,eAA6C,CAAC;YAChD,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO;QACN,IAAI;QACJ,KAAK,EAAE,aAAa;QACpB,UAAU,EAAE,EAAE,EAAE,sCAAsC;QACtD,gBAAgB,EAAE,QAAQ;QAC1B,aAAa,EAAE,KAAK;QACpB,UAAU;QACV,QAAQ,EAAE,YAAY;KACtB,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,QAA2B,EAAE,GAAW;IACtE,OAAO;QACN,IAAI,CAAC,OAAe,EAAE,OAAgB;YACrC,QAAQ,CAAC,IAAI,CAAC;gBACb,QAAQ,EAAE,MAAM;gBAChB,KAAK,EAAE,aAAa;gBACpB,UAAU,EAAE,kBAAkB;gBAC9B,GAAG,EAAE,OAAO,IAAI,GAAG;gBACnB,OAAO;aACP,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,OAAe,EAAE,OAAgB;YACrC,QAAQ,CAAC,IAAI,CAAC;gBACb,QAAQ,EAAE,SAAS;gBACnB,KAAK,EAAE,aAAa;gBACpB,UAAU,EAAE,kBAAkB;gBAC9B,GAAG,EAAE,OAAO,IAAI,GAAG;gBACnB,OAAO;aACP,CAAC,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,OAAe,EAAE,MAAe;YACrC,QAAQ,CAAC,IAAI,CAAC;gBACb,QAAQ,EAAE,OAAO;gBACjB,KAAK,EAAE,aAAa;gBACpB,UAAU,EAAE,kBAAkB;gBAC9B,GAAG,EAAE,MAAM,IAAI,GAAG;gBAClB,OAAO;aACP,CAAC,CAAC;QACJ,CAAC;KACD,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAChC,OAAe,EACf,WAAmB,GAAG,EACtB,KAA8C,EAC9C,cAAuC,EACvC,QAAmB,EACnB,kBAA2B,EAC3B,SAAmC,EACnC,cAA+B,EAC/B,WAAoB,EACpB,YAAoC,EACpC,SAAqB,EACrB,UAAoB,EACpB,OAAgB,EAChB,UAAmB;IAEnB,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACtD,MAAM,mBAAmB,GAAG,kBAAkB;QAC7C,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC;QAC7B,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IACtC,wDAAwD;IACxD,uEAAuE;IACvE,uDAAuD;IACvD,oDAAoD;IACpD,MAAM,mBAAmB,GAAG,WAAW,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAClE,6EAA6E;IAC7E,6EAA6E;IAC7E,gEAAgE;IAChE,MAAM,YAAY,GAAG,cAAc,CAAC,mBAAmB,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,qBAAqB,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;IAEpF,OAAO,kBAAkB,CAAC,IAAI,EAAE;QAC/B,QAAQ;QACR,KAAK;QACL,cAAc;QACd,OAAO,EAAE,QAAQ;QACjB,SAAS;QACT,cAAc;QACd,aAAa,EAAE,gBAAgB,CAAC,OAAO,CAAC;QACxC,OAAO,EAAE,YAAY;QACrB,kBAAkB,EAAE,WAAW;QAC/B,WAAW,EAAE,mBAAmB;QAChC,YAAY;QACZ,SAAS;QACT,UAAU;QACV,OAAO;QACP,UAAU;KACV,CAAC,CAAC;AACJ,CAAC;AAgED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACxC,IAAiB,EACjB,UAAsC,EAAE;IAExC,4EAA4E;IAC5E,6EAA6E;IAC7E,gCAAgC;IAChC,OAAO,kBAAkB,CAAC,IAAI,EAAE;QAC/B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,OAAO,EAAE,OAAO,CAAC,YAAY;QAC7B,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;QAC9C,aAAa,EAAE,OAAO,CAAC,aAAa;KACpC,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"site.js","sourceRoot":"","sources":["../src/site.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * The fast validation tier — SPEC-135 D3 / D14 / WORK-577.
3
+ *
4
+ * `loadContent` validates as a side effect of building a `Site`: it resolves
5
+ * routes and layouts, shells out to git for timestamps, runs the identity
6
+ * transform, and then runs three more cross-page phases over every page. A CLI
7
+ * that called it would be no faster than a build, which defeats the reason for
8
+ * having a CLI (D3).
9
+ *
10
+ * This runs the two steps validation actually needs — parse and validate —
11
+ * against a config built by the *same* function the build uses, so the two
12
+ * cannot disagree about which tags and attributes exist (D14).
13
+ */
14
+ import type { SecurityPolicy } from '@refrakt-md/types';
15
+ import { ContentTree } from './content-tree.js';
16
+ import { type PageEnvironmentOptions } from './site.js';
17
+ import { type ValidationSettings } from './validate.js';
18
+ /**
19
+ * One validation finding, with enough location detail for a caller to open the
20
+ * right file at the right line without guessing.
21
+ *
22
+ * Returned instead of a `Site` — deliberately. A half-populated `Site` is the
23
+ * worse of the two failures: it type-checks everywhere a real one does, and is
24
+ * wrong in ways nothing catches (D14).
25
+ */
26
+ export interface ContentFinding {
27
+ /** Source path relative to the content root, e.g. `docs/install.md`. */
28
+ file: string;
29
+ /** Resolved route URL, matching what a build reports for the same page. */
30
+ url: string;
31
+ /** 1-based source line, when Markdoc located the finding. */
32
+ line?: number;
33
+ severity: 'info' | 'warning' | 'error';
34
+ /** Markdoc error id, e.g. `tag-undefined`. */
35
+ id?: string;
36
+ message: string;
37
+ }
38
+ export interface ValidateContentOptions extends PageEnvironmentOptions {
39
+ /** URL base path for route resolution. Default: `'/'`. */
40
+ basePath?: string;
41
+ /** Icon registry — part of the transform config, so part of what a page is
42
+ * validated against. */
43
+ icons?: Record<string, Record<string, string>>;
44
+ /** Site-wide Markdoc variables available in content via `{% $name %}`. */
45
+ variables?: Record<string, unknown>;
46
+ /** Security policy for sandbox runes, exposed to preprocess hooks. */
47
+ securityPolicy?: SecurityPolicy;
48
+ /** Project-root-relative key of the sandbox examples directory. */
49
+ sandboxExamplesDir?: string;
50
+ /** Per-site config slice. `validation` is read from here, exactly as
51
+ * `loadContent` reads it, so a caller that hands over the site's config
52
+ * inherits identical dispositions for free — SPEC-135 D5a. */
53
+ siteConfig?: unknown;
54
+ /** Explicit settings, overriding `siteConfig.validation`. For callers that
55
+ * resolved config themselves; prefer passing `siteConfig`. */
56
+ validation?: ValidationSettings;
57
+ }
58
+ /**
59
+ * Validate every page in a content tree, returning findings.
60
+ *
61
+ * Accepts a directory path or a pre-built {@link ContentTree}. Runs parse,
62
+ * preprocess and `Markdoc.validate`, and **nothing else**: no `resolveLayouts`,
63
+ * no `resolveTimestamps` (no git), no `Markdoc.transform`, no `runPipeline`.
64
+ *
65
+ * Two departures from WORK-577's acceptance criteria, both in service of the
66
+ * agreement the same item calls its real deliverable:
67
+ *
68
+ * - **It resolves routes.** The criteria say not to call `router.resolve`, to
69
+ * keep the tier fast. `Router.resolve` is pure string manipulation with no
70
+ * I/O (`router.ts:46`), so it costs nothing measurable — and without it every
71
+ * finding's `url` would differ from the build's, making the agreement
72
+ * approximate where it could be exact.
73
+ * - **It runs preprocess hooks.** The criteria do not mention them. They are
74
+ * not optional: `{% snippet %}` resolves itself into a fence node during
75
+ * preprocess and `{% include %}` pastes partial content in, so skipping them
76
+ * validates a different tree than the build does — precisely the divergence
77
+ * D5a exists to forbid.
78
+ *
79
+ * What stays skipped is where the cost actually is: git, layouts, the identity
80
+ * transform, and the three cross-page phases. Those are the `--deep` tier.
81
+ */
82
+ export declare function validateContent(source: string | ContentTree, options?: ValidateContentOptions): Promise<ContentFinding[]>;
83
+ //# sourceMappingURL=validate-content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-content.d.ts","sourceRoot":"","sources":["../src/validate-content.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAKN,KAAK,sBAAsB,EAC3B,MAAM,WAAW,CAAC;AACnB,OAAO,EAAwB,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAE9E;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC9B,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,GAAG,EAAE,MAAM,CAAC;IACZ,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACvC,8CAA8C;IAC9C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAuB,SAAQ,sBAAsB;IACrE,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;6BACyB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/C,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,sEAAsE;IACtE,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,mEAAmE;IACnE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;mEAE+D;IAC/D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;mEAC+D;IAC/D,UAAU,CAAC,EAAE,kBAAkB,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,eAAe,CACpC,MAAM,EAAE,MAAM,GAAG,WAAW,EAC5B,OAAO,GAAE,sBAA2B,GAClC,OAAO,CAAC,cAAc,EAAE,CAAC,CA4G3B"}