@caelo-cms/shared 0.10.71 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/dist/ai-tools.d.ts +125 -50
  2. package/dist/ai-tools.d.ts.map +1 -1
  3. package/dist/ai-tools.js +50 -38
  4. package/dist/ai-tools.js.map +1 -1
  5. package/dist/build-page.d.ts +110 -30
  6. package/dist/build-page.d.ts.map +1 -1
  7. package/dist/build-page.js +26 -7
  8. package/dist/build-page.js.map +1 -1
  9. package/dist/content.d.ts +203 -102
  10. package/dist/content.d.ts.map +1 -1
  11. package/dist/content.js +178 -76
  12. package/dist/content.js.map +1 -1
  13. package/dist/css-var-aliases.d.ts +20 -0
  14. package/dist/css-var-aliases.d.ts.map +1 -0
  15. package/dist/css-var-aliases.js +95 -0
  16. package/dist/css-var-aliases.js.map +1 -0
  17. package/dist/css-var-scan.d.ts +0 -16
  18. package/dist/css-var-scan.d.ts.map +1 -1
  19. package/dist/css-var-scan.js +24 -0
  20. package/dist/css-var-scan.js.map +1 -1
  21. package/dist/edit-markers.d.ts +41 -5
  22. package/dist/edit-markers.d.ts.map +1 -1
  23. package/dist/edit-markers.js +47 -50
  24. package/dist/edit-markers.js.map +1 -1
  25. package/dist/id-safe-truncate.d.ts +15 -0
  26. package/dist/id-safe-truncate.d.ts.map +1 -0
  27. package/dist/id-safe-truncate.js +47 -0
  28. package/dist/id-safe-truncate.js.map +1 -0
  29. package/dist/index.d.ts +5 -1
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +5 -1
  32. package/dist/index.js.map +1 -1
  33. package/dist/interactions.js +2 -2
  34. package/dist/interactions.js.map +1 -1
  35. package/dist/link-canonicalise.d.ts.map +1 -1
  36. package/dist/link-canonicalise.js +7 -1
  37. package/dist/link-canonicalise.js.map +1 -1
  38. package/dist/link-refs.d.ts +1 -1
  39. package/dist/link-refs.js +3 -3
  40. package/dist/lists/address.d.ts +34 -0
  41. package/dist/lists/address.d.ts.map +1 -0
  42. package/dist/lists/address.js +43 -0
  43. package/dist/lists/address.js.map +1 -0
  44. package/dist/lists/default-types.d.ts +10 -0
  45. package/dist/lists/default-types.d.ts.map +1 -0
  46. package/dist/lists/default-types.js +91 -0
  47. package/dist/lists/default-types.js.map +1 -0
  48. package/dist/lists/fields.d.ts +152 -0
  49. package/dist/lists/fields.d.ts.map +1 -0
  50. package/dist/lists/fields.js +258 -0
  51. package/dist/lists/fields.js.map +1 -0
  52. package/dist/lists/index.d.ts +14 -0
  53. package/dist/lists/index.d.ts.map +1 -0
  54. package/dist/lists/index.js +15 -0
  55. package/dist/lists/index.js.map +1 -0
  56. package/dist/lists/item-attr.d.ts +26 -0
  57. package/dist/lists/item-attr.d.ts.map +1 -0
  58. package/dist/lists/item-attr.js +31 -0
  59. package/dist/lists/item-attr.js.map +1 -0
  60. package/dist/lists/items.d.ts +105 -0
  61. package/dist/lists/items.d.ts.map +1 -0
  62. package/dist/lists/items.js +304 -0
  63. package/dist/lists/items.js.map +1 -0
  64. package/dist/lists/list-type.d.ts +401 -0
  65. package/dist/lists/list-type.d.ts.map +1 -0
  66. package/dist/lists/list-type.js +275 -0
  67. package/dist/lists/list-type.js.map +1 -0
  68. package/dist/lists/model.d.ts +14 -0
  69. package/dist/lists/model.d.ts.map +1 -0
  70. package/dist/lists/model.js +15 -0
  71. package/dist/lists/model.js.map +1 -0
  72. package/dist/lists/page-type.d.ts +115 -0
  73. package/dist/lists/page-type.d.ts.map +1 -0
  74. package/dist/lists/page-type.js +66 -0
  75. package/dist/lists/page-type.js.map +1 -0
  76. package/dist/lists/refs.d.ts +13 -0
  77. package/dist/lists/refs.d.ts.map +1 -0
  78. package/dist/lists/refs.js +18 -0
  79. package/dist/lists/refs.js.map +1 -0
  80. package/dist/lists/render-data.d.ts +114 -0
  81. package/dist/lists/render-data.d.ts.map +1 -0
  82. package/dist/lists/render-data.js +3 -0
  83. package/dist/lists/render-data.js.map +1 -0
  84. package/dist/lists/render-deps.d.ts +68 -0
  85. package/dist/lists/render-deps.d.ts.map +1 -0
  86. package/dist/lists/render-deps.js +91 -0
  87. package/dist/lists/render-deps.js.map +1 -0
  88. package/dist/lists/resolve-values.d.ts +63 -0
  89. package/dist/lists/resolve-values.d.ts.map +1 -0
  90. package/dist/lists/resolve-values.js +181 -0
  91. package/dist/lists/resolve-values.js.map +1 -0
  92. package/dist/lists/resolve.d.ts +106 -0
  93. package/dist/lists/resolve.d.ts.map +1 -0
  94. package/dist/lists/resolve.js +878 -0
  95. package/dist/lists/resolve.js.map +1 -0
  96. package/dist/lists/scope.d.ts +81 -0
  97. package/dist/lists/scope.d.ts.map +1 -0
  98. package/dist/lists/scope.js +3 -0
  99. package/dist/lists/scope.js.map +1 -0
  100. package/dist/markup-structure.d.ts +8 -0
  101. package/dist/markup-structure.d.ts.map +1 -1
  102. package/dist/markup-structure.js +2 -0
  103. package/dist/markup-structure.js.map +1 -1
  104. package/dist/media.d.ts +1 -1
  105. package/dist/nested-module-render.d.ts +25 -20
  106. package/dist/nested-module-render.d.ts.map +1 -1
  107. package/dist/nested-module-render.js +122 -31
  108. package/dist/nested-module-render.js.map +1 -1
  109. package/dist/page-log.d.ts +1 -1
  110. package/dist/preview-compose.d.ts +24 -21
  111. package/dist/preview-compose.d.ts.map +1 -1
  112. package/dist/preview-compose.js +34 -118
  113. package/dist/preview-compose.js.map +1 -1
  114. package/dist/preview-scanner.d.ts +5 -2
  115. package/dist/preview-scanner.d.ts.map +1 -1
  116. package/dist/preview-scanner.js +5 -3
  117. package/dist/preview-scanner.js.map +1 -1
  118. package/dist/source-text-transport.d.ts +17 -0
  119. package/dist/source-text-transport.d.ts.map +1 -0
  120. package/dist/source-text-transport.js +71 -0
  121. package/dist/source-text-transport.js.map +1 -0
  122. package/dist/template-engine.d.ts +44 -31
  123. package/dist/template-engine.d.ts.map +1 -1
  124. package/dist/template-engine.js +75 -174
  125. package/dist/template-engine.js.map +1 -1
  126. package/dist/template-sections.d.ts +69 -0
  127. package/dist/template-sections.d.ts.map +1 -0
  128. package/dist/template-sections.js +423 -0
  129. package/dist/template-sections.js.map +1 -0
  130. package/dist/uuid-diagnose.d.ts +9 -0
  131. package/dist/uuid-diagnose.d.ts.map +1 -0
  132. package/dist/uuid-diagnose.js +47 -0
  133. package/dist/uuid-diagnose.js.map +1 -0
  134. package/dist/version.d.ts +2 -2
  135. package/dist/version.d.ts.map +1 -1
  136. package/dist/version.js +1 -1
  137. package/dist/version.js.map +1 -1
  138. package/package.json +8 -1
  139. package/src/__tests__/redos-hardening.test.ts +50 -16
  140. package/src/ai-tools-add-module-modes.test.ts +50 -0
  141. package/src/ai-tools.test.ts +10 -0
  142. package/src/ai-tools.ts +53 -39
  143. package/src/build-page.test.ts +34 -3
  144. package/src/build-page.ts +29 -6
  145. package/src/content.test.ts +111 -3
  146. package/src/content.ts +188 -77
  147. package/src/css-var-aliases.test.ts +61 -0
  148. package/src/css-var-aliases.ts +109 -0
  149. package/src/css-var-scan.ts +9 -0
  150. package/src/edit-markers.test.ts +37 -21
  151. package/src/edit-markers.ts +52 -20
  152. package/src/id-safe-truncate.test.ts +35 -0
  153. package/src/id-safe-truncate.ts +46 -0
  154. package/src/index.ts +5 -1
  155. package/src/interactions.ts +2 -2
  156. package/src/link-canonicalise.test.ts +36 -6
  157. package/src/link-canonicalise.ts +6 -1
  158. package/src/link-refs.test.ts +66 -42
  159. package/src/link-refs.ts +3 -3
  160. package/src/lists/address.ts +75 -0
  161. package/src/lists/default-types.ts +102 -0
  162. package/src/lists/fields.ts +285 -0
  163. package/src/lists/index.ts +16 -0
  164. package/src/lists/item-attr.test.ts +36 -0
  165. package/src/lists/item-attr.ts +49 -0
  166. package/src/lists/items.ts +402 -0
  167. package/src/lists/list-fixtures.test.ts +302 -0
  168. package/src/lists/list-type.ts +306 -0
  169. package/src/lists/lists.test.ts +328 -0
  170. package/src/lists/model.ts +16 -0
  171. package/src/lists/page-type.ts +71 -0
  172. package/src/lists/refs.ts +21 -0
  173. package/src/lists/render-data.ts +125 -0
  174. package/src/lists/render-deps.test.ts +132 -0
  175. package/src/lists/render-deps.ts +144 -0
  176. package/src/lists/resolve-values.ts +224 -0
  177. package/src/lists/resolve.test.ts +295 -0
  178. package/src/lists/resolve.ts +1148 -0
  179. package/src/lists/scope.ts +69 -0
  180. package/src/lists-compose-parity.test.ts +262 -0
  181. package/src/markup-structure.ts +10 -0
  182. package/src/nested-module-render.test.ts +111 -77
  183. package/src/nested-module-render.ts +85 -48
  184. package/src/preview-compose.test.ts +74 -19
  185. package/src/preview-compose.ts +59 -154
  186. package/src/preview-scanner.test.ts +8 -4
  187. package/src/preview-scanner.ts +5 -3
  188. package/src/source-text-transport.test.ts +63 -0
  189. package/src/source-text-transport.ts +70 -0
  190. package/src/template-engine-lists.test.ts +553 -0
  191. package/src/template-engine.test.ts +62 -80
  192. package/src/template-engine.ts +102 -245
  193. package/src/template-sections.ts +500 -0
  194. package/src/uuid-diagnose.test.ts +28 -0
  195. package/src/uuid-diagnose.ts +50 -0
  196. package/src/version.ts +1 -1
  197. package/dist/structured-sets.d.ts +0 -70
  198. package/dist/structured-sets.d.ts.map +0 -1
  199. package/dist/structured-sets.js +0 -92
  200. package/dist/structured-sets.js.map +0 -1
  201. package/src/structured-sets.ts +0 -114
  202. package/src/template-engine-data-lists.test.ts +0 -90
@@ -107,26 +107,11 @@ export function composePagePreview(input) {
107
107
  // P6.7 — tag every module's outermost element with
108
108
  // `data-caelo-module-id="<uuid>"` so the live-edit overlay's iframe
109
109
  // hover affordances can identify the clicked module.
110
- //
111
- // P6.7.5 — modules whose slug matches a `nav-menu/<slug>` set get
112
- // their HTML replaced by a fresh render of the menu items. That's
113
- // what makes a slug change update every menu without touching
114
- // module HTML.
115
110
  const renderedModuleHtml = block.modules.map((m) => {
116
- const navMenuItems = lookupNavMenuItems(m.slug, input.structuredSets);
117
- let baseHtml;
118
- if (navMenuItems !== null) {
119
- const nav = renderNavMenuHtml(navMenuItems, input.linkResolver);
120
- baseHtml = nav.html;
121
- recordFailures(moduleFailures, block.blockName, m, nav.failures);
122
- }
123
- else {
124
- const rendered = renderModuleFields(m, input);
125
- baseHtml = rendered.html;
126
- recordFailures(moduleFailures, block.blockName, m, rendered.failures);
127
- nestedAssetIds.push(...rendered.nestedModuleIds);
128
- }
129
- return tagModuleId(baseHtml, m.moduleId);
111
+ const rendered = renderModuleFields(m, input);
112
+ recordFailures(moduleFailures, block.blockName, m, rendered.failures);
113
+ nestedAssetIds.push(...rendered.nestedModuleIds);
114
+ return tagModuleId(rendered.html, m.moduleId);
130
115
  });
131
116
  const html = renderedModuleHtml.join("\n");
132
117
  contentByName.set(block.blockName, html);
@@ -201,24 +186,6 @@ export function composePagePreview(input) {
201
186
  moduleFailures,
202
187
  };
203
188
  }
204
- /**
205
- * P6.7.5 — return the items for a `nav-menu/<slug>` set when a module's
206
- * slug starts with `nav-menu-`. Returns null when the module is not a
207
- * nav menu (so the composer falls back to its stored HTML).
208
- *
209
- * Convention: a module slug `nav-menu-header-main` resolves to
210
- * structuredSets[`nav-menu/header-main`].
211
- */
212
- function lookupNavMenuItems(moduleSlug, sets) {
213
- if (!sets)
214
- return null;
215
- const prefix = "nav-menu-";
216
- if (!moduleSlug.startsWith(prefix))
217
- return null;
218
- const setSlug = moduleSlug.slice(prefix.length);
219
- const items = sets.byKindSlug[`nav-menu/${setSlug}`];
220
- return items ?? null;
221
- }
222
189
  function escapeAttr(s) {
223
190
  return s
224
191
  .replace(/&/g, "&amp;")
@@ -226,43 +193,6 @@ function escapeAttr(s) {
226
193
  .replace(/</g, "&lt;")
227
194
  .replace(/>/g, "&gt;");
228
195
  }
229
- function escapeText(s) {
230
- return s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
231
- }
232
- /**
233
- * Render a nav-menu's typed items into HTML. Recursively handles
234
- * children for submenus. Plain `<nav><ul><li>` so site CSS can theme
235
- * it via the `caelo-nav-menu` class.
236
- *
237
- * Epic #724 — item hrefs may be internal references; they resolve
238
- * through `resolver` like module content, and a broken one is returned
239
- * as a failure attributed to the nav-menu module.
240
- */
241
- function renderNavMenuHtml(items, resolver) {
242
- const missing = [];
243
- const renderNavItem = (item) => {
244
- const target = item.target === "_blank" ? ' target="_blank" rel="noopener"' : "";
245
- const inner = item.children && item.children.length > 0
246
- ? `<ul>${item.children.map(renderNavItem).join("")}</ul>`
247
- : "";
248
- const href = resolveLinkRefsInHtml(item.href, resolver, missing);
249
- return `<li><a href="${escapeAttr(href)}"${target}>${escapeText(item.label)}</a>${inner}</li>`;
250
- };
251
- const safeItems = items.filter((it) => {
252
- if (!it || typeof it !== "object")
253
- return false;
254
- const o = it;
255
- return typeof o.label === "string" && typeof o.href === "string";
256
- });
257
- // issue #160 — mobile-ready markup: toggle button (three functional
258
- // bars via currentColor) + collapsible list. `data-caelo-ui` pulls the
259
- // functional CSS/JS from ./interactions.ts in once per page.
260
- const toggle = '<button type="button" class="caelo-nav-toggle" aria-expanded="false" aria-label="Menu">' +
261
- '<span class="caelo-nav-bar"></span><span class="caelo-nav-bar"></span><span class="caelo-nav-bar"></span>' +
262
- "</button>";
263
- const html = `<nav class="caelo-nav-menu" data-caelo-ui="mobile-nav" data-nav-open="false">${toggle}<ul>${safeItems.map(renderNavItem).join("")}</ul></nav>`;
264
- return { html, failures: missing.map((reason) => ({ field: "", reason })) };
265
- }
266
196
  /**
267
197
  * v0.11.0 — Render the active theme's DTCG tokens as `:root { … }` (+
268
198
  * optional `:root.dark { … }`) CSS. Returns null when no active theme
@@ -306,10 +236,9 @@ function renderThemeCss(theme) {
306
236
  function renderModuleFields(m, input) {
307
237
  // The substitution engine (renderTemplate) already unwraps CDATA
308
238
  // guards; cover the no-op early-return path so a chrome module with no
309
- // fields/values/theme is cleaned too.
310
- const hasLists = Object.keys(input.dataLists ?? {}).length > 0 ||
311
- Object.keys(input.dormantDataLists ?? {}).length > 0;
312
- if (!m.fields && !m.contentValues && !input.theme && !hasLists) {
239
+ // fields/values/theme is cleaned too. A list context means the HTML
240
+ // may iterate a plugin source or read `{{page.*}}` without any field.
241
+ if (!m.fields && !m.contentValues && !input.theme && !input.lists) {
313
242
  // Still resolve references: pre-rendered (editor preview) and
314
243
  // field-less chrome modules carry links in their raw HTML too.
315
244
  const missing = [];
@@ -320,11 +249,7 @@ function renderModuleFields(m, input) {
320
249
  nestedModuleIds: [],
321
250
  };
322
251
  }
323
- const fields = (m.fields ?? []).map((f) => ({
324
- name: f.name,
325
- kind: f.kind ?? "text",
326
- default: f.default,
327
- }));
252
+ const fields = (m.fields ?? []).map((f) => ({ ...f, kind: f.kind ?? "text" }));
328
253
  // v0.11.1 (issue #76) — thread the active theme's asset URLs so
329
254
  // module HTML carrying `{{theme_logo_url}}` etc. resolves. Unbound
330
255
  // slots emit loud-raw + `theme-asset-unbound:<slot>` markers.
@@ -343,9 +268,9 @@ function renderModuleFields(m, input) {
343
268
  values: m.contentValues ?? {},
344
269
  }, input.nestedModules, {
345
270
  themeAssets,
346
- dataLists: input.dataLists,
347
- dormantDataLists: input.dormantDataLists,
348
- linkResolver: input.linkResolver,
271
+ ...(input.lists ? { lists: input.lists } : {}),
272
+ ...(m.contentInstanceId ? { contentInstanceId: m.contentInstanceId } : {}),
273
+ ...(input.linkResolver ? { linkResolver: input.linkResolver } : {}),
349
274
  });
350
275
  return { html: r.html, failures: r.failures, nestedModuleIds: [...r.touchedModuleIds] };
351
276
  }
@@ -353,8 +278,8 @@ function renderModuleFields(m, input) {
353
278
  html: m.html,
354
279
  fields,
355
280
  contentValues: m.contentValues,
356
- dataLists: input.dataLists,
357
- dormantDataLists: input.dormantDataLists,
281
+ ...(input.lists ? { lists: input.lists } : {}),
282
+ listHolder: { contentInstanceId: m.contentInstanceId ?? null },
358
283
  themeAssets,
359
284
  linkResolver: input.linkResolver,
360
285
  });
@@ -500,34 +425,25 @@ export function composePageWithLayout(input) {
500
425
  const deferral = input.deferredModules?.[m.moduleId];
501
426
  // Nested modules rendered inside THIS placement when it is withheld.
502
427
  const gatedNestedIds = new Set();
503
- const navMenuItems = lookupNavMenuItems(m.slug, input.structuredSets);
504
- let baseHtml;
505
- if (navMenuItems !== null) {
506
- const nav = renderNavMenuHtml(navMenuItems, input.linkResolver);
507
- baseHtml = nav.html;
508
- recordFailures(moduleFailures, blockName, m, nav.failures);
509
- }
510
- else {
511
- const rendered = renderModuleFields(m, input);
512
- baseHtml = rendered.html;
513
- recordFailures(moduleFailures, blockName, m, rendered.failures);
514
- for (const id of rendered.nestedModuleIds) {
515
- const nestedDeferral = input.deferredModules?.[id];
516
- if (nestedDeferral) {
517
- const nestedSlug = input.nestedModules?.getModule(id)?.slug ?? id;
518
- throw new ComposeError("nested-module-deferred", `module "${nestedSlug}" is withheld by plugin "${nestedDeferral.pluginSlug}" (${nestedDeferral.reason}) but sits inside module "${m.slug}" in block "${blockName}", where it cannot be gated — ` +
519
- "place it on the page directly instead of inside another module's field", input.layoutSlug);
520
- }
521
- // Inside a withheld parent the nested module is withheld too:
522
- // its CSS/JS go into the parent's <template>, never the page-wide
523
- // bundles, or its `fetch()` / `url(…)` would run before consent.
524
- if (deferral) {
525
- if (id !== m.moduleId)
526
- gatedNestedIds.add(id);
527
- }
528
- else {
529
- nestedAssetIds.push(id);
530
- }
428
+ const rendered = renderModuleFields(m, input);
429
+ const baseHtml = rendered.html;
430
+ recordFailures(moduleFailures, blockName, m, rendered.failures);
431
+ for (const id of rendered.nestedModuleIds) {
432
+ const nestedDeferral = input.deferredModules?.[id];
433
+ if (nestedDeferral) {
434
+ const nestedSlug = input.nestedModules?.getModule(id)?.slug ?? id;
435
+ throw new ComposeError("nested-module-deferred", `module "${nestedSlug}" is withheld by plugin "${nestedDeferral.pluginSlug}" (${nestedDeferral.reason}) but sits inside module "${m.slug}" in block "${blockName}", where it cannot be gated — ` +
436
+ "place it on the page directly instead of inside another module's field", input.layoutSlug);
437
+ }
438
+ // Inside a withheld parent the nested module is withheld too:
439
+ // its CSS/JS go into the parent's <template>, never the page-wide
440
+ // bundles, or its `fetch()` / `url(…)` would run before consent.
441
+ if (deferral) {
442
+ if (id !== m.moduleId)
443
+ gatedNestedIds.add(id);
444
+ }
445
+ else {
446
+ nestedAssetIds.push(id);
531
447
  }
532
448
  }
533
449
  const tagged = tagModuleId(baseHtml, m.moduleId);
@@ -618,8 +534,8 @@ export function composePageWithLayout(input) {
618
534
  });
619
535
  let html = replaced.html;
620
536
  // issue #160 — every vetted interaction the page's markup asks for
621
- // (`data-caelo-ui="…"`, from modules, the nav renderer, the layout or
622
- // the template, withheld modules included) ships once, after module
537
+ // (`data-caelo-ui="…"`, from modules, the layout or the template,
538
+ // withheld modules included) ships once, after module
623
539
  // CSS/JS so its functional rules win over a module's display rules.
624
540
  const interactions = interactionAssets(new Set(findInteractionIds(html).known));
625
541
  cssParts.push(...interactions.css);
@@ -1 +1 @@
1
- {"version":3,"file":"preview-compose.js","sourceRoot":"","sources":["../src/preview-compose.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preview-compose.js","sourceRoot":"","sources":["../src/preview-compose.ts"],"names":[],"mappings":"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"}
@@ -34,8 +34,11 @@ export interface ScanResult {
34
34
  /**
35
35
  * Returns a copy of `templateHtml` where each `<caelo-slot name="X">…</caelo-slot>`
36
36
  * has its inner HTML replaced by `replacement.contentByName.get(X)`. Slots
37
- * with no entry render with their original inner HTML preserved (so a
38
- * template-author placeholder stays visible in the editor preview).
37
+ * with no entry render EMPTY and are reported in `missingSlots`: whatever
38
+ * the template author typed between the tags (a `_`, "…", sample markup)
39
+ * is authoring scaffolding, never page content, and this output is what
40
+ * visitors get (#1085). The editor learns about an empty block from
41
+ * `missingSlots`, not from a glyph on the page.
39
42
  *
40
43
  * Throws on nested or unbalanced slot markers — those are template-author
41
44
  * bugs and silently smoothing them over would just defer the discovery.
@@ -1 +1 @@
1
- {"version":3,"file":"preview-scanner.d.ts","sourceRoot":"","sources":["../src/preview-scanner.ts"],"names":[],"mappings":"AAyBA;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAc7D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA2C7E;AAED,MAAM,WAAW,eAAe;IAC9B,mDAAmD;IACnD,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAUD;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,eAAe,GAC3B,UAAU,CA0EZ"}
1
+ {"version":3,"file":"preview-scanner.d.ts","sourceRoot":"","sources":["../src/preview-scanner.ts"],"names":[],"mappings":"AAyBA;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAc7D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA2C7E;AAED,MAAM,WAAW,eAAe;IAC9B,mDAAmD;IACnD,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAUD;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,eAAe,GAC3B,UAAU,CAyEZ"}
@@ -97,8 +97,11 @@ export function extractInnerOfTopLevelContentSlot(html) {
97
97
  /**
98
98
  * Returns a copy of `templateHtml` where each `<caelo-slot name="X">…</caelo-slot>`
99
99
  * has its inner HTML replaced by `replacement.contentByName.get(X)`. Slots
100
- * with no entry render with their original inner HTML preserved (so a
101
- * template-author placeholder stays visible in the editor preview).
100
+ * with no entry render EMPTY and are reported in `missingSlots`: whatever
101
+ * the template author typed between the tags (a `_`, "…", sample markup)
102
+ * is authoring scaffolding, never page content, and this output is what
103
+ * visitors get (#1085). The editor learns about an empty block from
104
+ * `missingSlots`, not from a glyph on the page.
102
105
  *
103
106
  * Throws on nested or unbalanced slot markers — those are template-author
104
107
  * bugs and silently smoothing them over would just defer the discovery.
@@ -167,7 +170,6 @@ export function applySlotReplacements(templateHtml, replacement) {
167
170
  }
168
171
  else {
169
172
  missing.push(range.name);
170
- parts.push(templateHtml.slice(range.innerStart, range.innerEnd));
171
173
  }
172
174
  cursor = range.innerEnd;
173
175
  }
@@ -1 +1 @@
1
- {"version":3,"file":"preview-scanner.js","sourceRoot":"","sources":["../src/preview-scanner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preview-scanner.js","sourceRoot":"","sources":["../src/preview-scanner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * The body of a whole-value JSON string literal, or the input unchanged.
3
+ * Only decoded when the literal carries an escape (`\"`, `\n`, `\t`, `\\`,
4
+ * `\/`, `\u…`): a bare `"use strict"` stays as it is.
5
+ */
6
+ export declare function decodeJsonEncodedSource(value: unknown): unknown;
7
+ /**
8
+ * Markup sent HTML-escaped as a whole, decoded once; the input unchanged
9
+ * otherwise. "As a whole" = no raw `<` anywhere and at least one escaped
10
+ * tag (`&lt;div`, `&lt;/div`) — the same test the op's refusal uses.
11
+ * `&amp;` is decoded last, so an entity the author meant (`&amp;nbsp;`
12
+ * sent for `&nbsp;`) comes out as the author wrote it.
13
+ */
14
+ export declare function decodeHtmlEscapedSource(value: unknown): unknown;
15
+ /** Every whole-value transport encoding, outermost first. */
16
+ export declare function decodeSourceTextTransport(value: unknown): unknown;
17
+ //# sourceMappingURL=source-text-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-text-transport.d.ts","sourceRoot":"","sources":["../src/source-text-transport.ts"],"names":[],"mappings":"AAuBA;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAW/D;AAYD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAM/D;AAED,6DAA6D;AAC7D,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEjE"}
@@ -0,0 +1,71 @@
1
+ // SPDX-License-Identifier: MPL-2.0
2
+ /**
3
+ * Decoding of whole-value transport encodings around AI tool arguments that
4
+ * carry source text (module / template / layout html, css, js).
5
+ *
6
+ * The model sometimes encodes a long markup string as a whole before it
7
+ * sends it: as a CDATA section (`unwrapCdataEnvelope`), as a JSON string
8
+ * literal (`"<footer class=\"x\">…"`), or HTML-escaped (`&lt;main&gt;…`).
9
+ * Each is an encoding of a value the caller did supply, never content:
10
+ * a JSON string literal is not valid markup, CSS or JS as a whole, and
11
+ * markup without a single `<` but with `&lt;tag` has no element at all.
12
+ * Refusing them cost a tool round-trip each time (e2e-livedit runs of
13
+ * PR #1121 and #1143); describing them in every tool cost tokens on every
14
+ * call and still did not stop them. So the boundary decodes them, once,
15
+ * here. Anything not clearly a whole-value encoding is left untouched and
16
+ * the op validator still refuses it (shared `content.ts`), which also
17
+ * keeps human and import writes strict. This is input normalisation, not
18
+ * a fallback for missing data (CLAUDE.md §2).
19
+ */
20
+ import { unwrapCdataEnvelope } from "./strip-cdata.js";
21
+ /**
22
+ * The body of a whole-value JSON string literal, or the input unchanged.
23
+ * Only decoded when the literal carries an escape (`\"`, `\n`, `\t`, `\\`,
24
+ * `\/`, `\u…`): a bare `"use strict"` stays as it is.
25
+ */
26
+ export function decodeJsonEncodedSource(value) {
27
+ if (typeof value !== "string")
28
+ return value;
29
+ const t = value.trim();
30
+ if (t.length < 2 || !t.startsWith('"') || !t.endsWith('"'))
31
+ return value;
32
+ if (!/\\["ntr\\/u]/.test(t))
33
+ return value;
34
+ try {
35
+ const decoded = JSON.parse(t);
36
+ return typeof decoded === "string" ? decoded : value;
37
+ }
38
+ catch {
39
+ return value;
40
+ }
41
+ }
42
+ const ENTITIES = {
43
+ "&lt;": "<",
44
+ "&gt;": ">",
45
+ "&quot;": '"',
46
+ "&#34;": '"',
47
+ "&#39;": "'",
48
+ "&#x27;": "'",
49
+ "&apos;": "'",
50
+ };
51
+ /**
52
+ * Markup sent HTML-escaped as a whole, decoded once; the input unchanged
53
+ * otherwise. "As a whole" = no raw `<` anywhere and at least one escaped
54
+ * tag (`&lt;div`, `&lt;/div`) — the same test the op's refusal uses.
55
+ * `&amp;` is decoded last, so an entity the author meant (`&amp;nbsp;`
56
+ * sent for `&nbsp;`) comes out as the author wrote it.
57
+ */
58
+ export function decodeHtmlEscapedSource(value) {
59
+ if (typeof value !== "string")
60
+ return value;
61
+ if (value.includes("<") || !/&lt;\/?[a-zA-Z]/.test(value))
62
+ return value;
63
+ return value
64
+ .replace(/&lt;|&gt;|&quot;|&#34;|&#39;|&#x27;|&apos;/g, (e) => ENTITIES[e] ?? e)
65
+ .replace(/&amp;/g, "&");
66
+ }
67
+ /** Every whole-value transport encoding, outermost first. */
68
+ export function decodeSourceTextTransport(value) {
69
+ return decodeHtmlEscapedSource(decodeJsonEncodedSource(unwrapCdataEnvelope(value)));
70
+ }
71
+ //# sourceMappingURL=source-text-transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-text-transport.js","sourceRoot":"","sources":["../src/source-text-transport.ts"],"names":[],"mappings":"AAAA,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACvB,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACzE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,IAAI,CAAC;QACH,MAAM,OAAO,GAAY,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,QAAQ,GAAqC;IACjD,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;CACd,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxE,OAAO,KAAK;SACT,OAAO,CAAC,6CAA6C,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SAC/E,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,yBAAyB,CAAC,KAAc;IACtD,OAAO,uBAAuB,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtF,CAAC"}
@@ -1,21 +1,42 @@
1
1
  import { type ModuleFieldKind } from "./content.js";
2
2
  import { type LinkResolver } from "./link-refs.js";
3
+ import { type SourceDef } from "./lists/list-type.js";
4
+ import type { ListHolder, ListPageContext } from "./lists/resolve.js";
3
5
  /**
4
6
  * Subset of `modules.fields[]` the engine cares about. The full
5
- * schema lives in `content.ts`; the engine only needs `name`, `kind`,
6
- * and the optional `default`. Importers pass the full row through.
7
+ * schema lives in `content.ts`; the engine needs `name`, `kind`, the
8
+ * optional `default` and, for a `list` field, its binding
9
+ * (`listType`, `bind`, `list`, `source` — `docs/lists.md` §7).
10
+ * Importers pass the full row through.
7
11
  */
8
12
  export interface TemplateField {
9
13
  readonly name: string;
10
14
  readonly kind: ModuleFieldKind;
11
15
  readonly default?: unknown;
16
+ readonly listType?: string;
17
+ readonly bind?: "local" | "shared" | "source";
18
+ readonly list?: string;
19
+ readonly source?: SourceDef;
12
20
  }
21
+ /**
22
+ * Parse a stored `modules.fields` jsonb (array or JSON text) into the
23
+ * fields the engine renders with: name, kind (absent = `text`), default,
24
+ * and a `list` field's binding. A typo'd kind passes through as is — the
25
+ * engine reports it loudly (kind-mismatch) instead of the parser hiding
26
+ * it. Entries without a string name are skipped; they cannot be rendered.
27
+ */
28
+ export declare function templateFieldsFromJson(raw: unknown): TemplateField[];
13
29
  /**
14
30
  * Renders the nested-module partial for `key` (see
15
31
  * {@link RenderTemplateInput.partials}) on demand, or `undefined` when
16
- * the caller has no renderer for it.
32
+ * the caller has no renderer for it. `ref` is passed for the module
33
+ * field of a list entry (key `list:<field>/<itemId>/<entryField>`),
34
+ * whose value the caller cannot look up by field name.
17
35
  */
18
- export type PartialResolver = (key: string) => string | undefined;
36
+ export type PartialResolver = (key: string, ref?: {
37
+ readonly moduleId: string;
38
+ readonly contentInstanceId: string;
39
+ }) => string | undefined;
19
40
  export interface RenderTemplateInput {
20
41
  readonly html: string;
21
42
  readonly fields: readonly TemplateField[];
@@ -25,6 +46,8 @@ export interface RenderTemplateInput {
25
46
  * Nested-module HTML keyed by:
26
47
  * - `<name>` for single `{{>name}}` (module field kind)
27
48
  * - `<name>__<index>` for each `{{#name}}` element (module-list)
49
+ * - `list:<field>/<itemId>/<entryField>` for `{{>entryField}}`
50
+ * inside an entry of list field `<field>` (resolver gets the ref)
28
51
  * Either pre-rendered, or a {@link PartialResolver} the engine calls
29
52
  * only for the refs the template actually dispatches — the recursive
30
53
  * renderer (nested-module-render.ts) passes a resolver so a declared
@@ -33,23 +56,17 @@ export interface RenderTemplateInput {
33
56
  */
34
57
  readonly partials?: Readonly<Record<string, string>> | PartialResolver;
35
58
  /**
36
- * Plugin-provided lists for THIS page, keyed by the claimed name a
37
- * module iterates as `{{#name}}`. The plugin supplies the data, the
38
- * module owns the markup — so a language switcher looks like the site
39
- * it lives on instead of carrying a plugin's fixed HTML.
40
- *
41
- * Resolved per page, which is what lets a module carrying one sit in
42
- * a LAYOUT and cover every page. The `staticRender` placeholder can't:
43
- * it needs the page's own id baked into its HTML.
59
+ * The list view of THIS page (`lists/resolve.ts`): resolves `list`
60
+ * fields, `{{page.*}}` and plugin list sources. Without it a `list`
61
+ * field renders raw with `list-context-unavailable:<field>`.
44
62
  */
45
- readonly dataLists?: Readonly<Record<string, ReadonlyArray<Readonly<Record<string, string>>>>>;
63
+ readonly lists?: ListPageContext;
46
64
  /**
47
- * Names an INSTALLED plugin declares that are not live right now,
48
- * mapped to the owning plugin. A module written while the plugin ran
49
- * still says `{{#language_links}}`; this is what lets the render
50
- * report "that plugin is switched off" instead of "unknown field".
65
+ * The content instance whose values are rendered — the address of
66
+ * local list entries for overlays and `data-caelo-list-item`. Absent
67
+ * for field defaults (site chrome).
51
68
  */
52
- readonly dormantDataLists?: Readonly<Record<string, string>>;
69
+ readonly listHolder?: ListHolder;
53
70
  /**
54
71
  * v0.11.1 (issue #76) — active theme's resolved asset URLs. When
55
72
  * present, `{{theme_logo_url}}` / `{{theme_logo_dark_url}}` /
@@ -71,7 +88,7 @@ export interface RenderTemplateInput {
71
88
  * `caelo:media/<id>`) into URLs for the page being rendered. Applied
72
89
  * to the fully substituted output, so a reference resolves wherever it
73
90
  * came from: module HTML attributes, a field value, a field default, a
74
- * link-list item, rich text. A missing target stays raw and pushes
91
+ * list entry, rich text. A missing target stays raw and pushes
75
92
  * `link-target-missing:<kind>/<id>`; with no resolver every reference
76
93
  * pushes `link-resolver-unavailable:<kind>/<id>` (loud, never empty).
77
94
  */
@@ -98,26 +115,22 @@ export declare function caeloMissingComment(reason: string): string;
98
115
  * channel. Pure / sync / no IO.
99
116
  *
100
117
  * @example
101
- * // AC #1 fixture (issue #71). Iterates a link-list field per element.
118
+ * // A local list of the shipped `links` type; `lists` comes from
119
+ * // createListRenderContext(data).forPage(pageId, { linkResolver }).
102
120
  * renderTemplate({
103
- * html: '<nav>{{#nav_items}}<a href="{{href}}">{{label}}</a>{{/nav_items}}</nav>',
104
- * fields: [{ name: 'nav_items', kind: 'link-list' }],
121
+ * html: '<nav>{{#nav}}<a href="{{link}}">{{label}}</a>{{/nav}}</nav>',
122
+ * fields: [{ name: 'nav', kind: 'list', listType: 'links' }],
105
123
  * contentValues: {
106
- * nav_items: [
107
- * { label: 'Docs', href: '/docs' },
108
- * { label: 'Blog', href: '/blog' },
109
- * ],
124
+ * nav: [{ id: '<uuid>', node: 'link', values: { label: 'Docs', link: { href: '/docs' } } }],
110
125
  * },
126
+ * lists,
111
127
  * });
112
- * // → {
113
- * // html: '<nav><a href="/docs">Docs</a><a href="/blog">Blog</a></nav>',
114
- * // missingSlots: [],
115
- * // }
128
+ * // → html: '<nav><a href="/docs" data-caelo-list-item="local/nav/<uuid>">Docs</a></nav>'
116
129
  *
117
130
  * @see {@link TemplateField} for the field shape (name + kind + optional default).
118
131
  * @see {@link ./content.js#MODULE_FIELD_KINDS} for the canonical kind union.
119
132
  * @see {@link ./content.js#MODULE_FIELD_SECTION_KINDS} for the kinds the engine
120
- * iterates via `{{#name}}` (text-list / link-list / module-list).
133
+ * iterates via `{{#name}}` (list / module-list).
121
134
  */
122
135
  export declare function renderTemplate(input: RenderTemplateInput): RenderTemplateOutput;
123
136
  //# sourceMappingURL=template-engine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"template-engine.d.ts","sourceRoot":"","sources":["../src/template-engine.ts"],"names":[],"mappings":"AAsEA,OAAO,EAA8B,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,KAAK,YAAY,EAAyB,MAAM,gBAAgB,CAAC;AAS1E;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;AAElE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,CAAC;IAC1C,4DAA4D;IAC5D,QAAQ,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3D;;;;;;;;;OASG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,eAAe,CAAC;IACvE;;;;;;;;;OASG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/F;;;;;OAKG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7D;;;;;;;;;OASG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE;QACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;KACrC,CAAC;IACF;;;;;;;;OAQG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;CACtC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AA4DD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE1D;AAWD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB,CAyJ/E"}
1
+ {"version":3,"file":"template-engine.d.ts","sourceRoot":"","sources":["../src/template-engine.ts"],"names":[],"mappings":"AAoFA,OAAO,EAA8B,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,KAAK,YAAY,EAAyB,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,KAAK,SAAS,EAAmB,MAAM,sBAAsB,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAUtE;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC9C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,EAAE,CAqBpE;AAED;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,CAC5B,GAAG,EAAE,MAAM,EACX,GAAG,CAAC,EAAE;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,KACpE,MAAM,GAAG,SAAS,CAAC;AAExB,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,CAAC;IAC1C,4DAA4D;IAC5D,QAAQ,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3D;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,eAAe,CAAC;IACvE;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC;;;;;;;;;OASG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE;QACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;KACrC,CAAC;IACF;;;;;;;;OAQG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;CACtC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAmDD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE1D;AAWD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB,CAwJ/E"}