@wootsup/yt-builder-mcp 1.1.7 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -10
- package/bin/yt-builder-mcp.js +55 -40
- package/dist/auth.d.ts +18 -0
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +18 -0
- package/dist/auth.js.map +1 -1
- package/dist/catalog/build-catalog.d.ts +63 -0
- package/dist/catalog/build-catalog.d.ts.map +1 -0
- package/dist/catalog/build-catalog.js +166 -0
- package/dist/catalog/build-catalog.js.map +1 -0
- package/dist/cli/invocation-decision.d.ts +57 -0
- package/dist/cli/invocation-decision.d.ts.map +1 -0
- package/dist/cli/invocation-decision.js +86 -0
- package/dist/cli/invocation-decision.js.map +1 -0
- package/dist/client.d.ts +28 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +40 -1
- package/dist/client.js.map +1 -1
- package/dist/clients/claude-code.d.ts.map +1 -1
- package/dist/clients/claude-code.js +3 -1
- package/dist/clients/claude-code.js.map +1 -1
- package/dist/clients/claude-desktop.d.ts.map +1 -1
- package/dist/clients/claude-desktop.js +3 -1
- package/dist/clients/claude-desktop.js.map +1 -1
- package/dist/clients/cline.d.ts.map +1 -1
- package/dist/clients/cline.js +3 -1
- package/dist/clients/cline.js.map +1 -1
- package/dist/clients/codex-cli.d.ts +1 -1
- package/dist/clients/codex-cli.d.ts.map +1 -1
- package/dist/clients/codex-cli.js +98 -0
- package/dist/clients/codex-cli.js.map +1 -1
- package/dist/clients/continue.d.ts.map +1 -1
- package/dist/clients/continue.js +70 -1
- package/dist/clients/continue.js.map +1 -1
- package/dist/clients/cursor.d.ts.map +1 -1
- package/dist/clients/cursor.js +3 -1
- package/dist/clients/cursor.js.map +1 -1
- package/dist/clients/gemini-cli.d.ts.map +1 -1
- package/dist/clients/gemini-cli.js +3 -1
- package/dist/clients/gemini-cli.js.map +1 -1
- package/dist/clients/index.d.ts +104 -0
- package/dist/clients/index.d.ts.map +1 -1
- package/dist/clients/index.js +141 -0
- package/dist/clients/index.js.map +1 -1
- package/dist/clients/roo-code.d.ts.map +1 -1
- package/dist/clients/roo-code.js +3 -1
- package/dist/clients/roo-code.js.map +1 -1
- package/dist/clients/zed.d.ts.map +1 -1
- package/dist/clients/zed.js +3 -1
- package/dist/clients/zed.js.map +1 -1
- package/dist/gateway/advanced-read-tool.d.ts +37 -0
- package/dist/gateway/advanced-read-tool.d.ts.map +1 -0
- package/dist/gateway/advanced-read-tool.js +156 -0
- package/dist/gateway/advanced-read-tool.js.map +1 -0
- package/dist/gateway/advanced-tool/domains.d.ts +18 -3
- package/dist/gateway/advanced-tool/domains.d.ts.map +1 -1
- package/dist/gateway/advanced-tool/domains.js +28 -9
- package/dist/gateway/advanced-tool/domains.js.map +1 -1
- package/dist/gateway/advanced-tool/register.d.ts.map +1 -1
- package/dist/gateway/advanced-tool/register.js +43 -11
- package/dist/gateway/advanced-tool/register.js.map +1 -1
- package/dist/gateway/essentials.d.ts +14 -4
- package/dist/gateway/essentials.d.ts.map +1 -1
- package/dist/gateway/essentials.js +55 -5
- package/dist/gateway/essentials.js.map +1 -1
- package/dist/gateway/test-support.d.ts +3 -3
- package/dist/gateway/test-support.js +3 -3
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -1
- package/dist/index.js.map +1 -1
- package/dist/install-skill.js +1 -1
- package/dist/proxy/bridge.d.ts +36 -0
- package/dist/proxy/bridge.d.ts.map +1 -0
- package/dist/proxy/bridge.js +129 -0
- package/dist/proxy/bridge.js.map +1 -0
- package/dist/proxy/mode.d.ts +10 -0
- package/dist/proxy/mode.d.ts.map +1 -0
- package/dist/proxy/mode.js +20 -0
- package/dist/proxy/mode.js.map +1 -0
- package/dist/server.d.ts +6 -4
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +14 -4
- package/dist/server.js.map +1 -1
- package/dist/setup-cli.d.ts +41 -0
- package/dist/setup-cli.d.ts.map +1 -1
- package/dist/setup-cli.js +163 -1
- package/dist/setup-cli.js.map +1 -1
- package/dist/setup-prompts.d.ts +23 -0
- package/dist/setup-prompts.d.ts.map +1 -1
- package/dist/setup-prompts.js +76 -1
- package/dist/setup-prompts.js.map +1 -1
- package/dist/setup-wizard.d.ts.map +1 -1
- package/dist/setup-wizard.js +7 -0
- package/dist/setup-wizard.js.map +1 -1
- package/dist/sites/bootstrap.d.ts +41 -0
- package/dist/sites/bootstrap.d.ts.map +1 -0
- package/dist/sites/bootstrap.js +58 -0
- package/dist/sites/bootstrap.js.map +1 -0
- package/dist/sites/client-pool.d.ts +33 -0
- package/dist/sites/client-pool.d.ts.map +1 -1
- package/dist/sites/client-pool.js +69 -1
- package/dist/sites/client-pool.js.map +1 -1
- package/dist/sites/registry.d.ts +30 -0
- package/dist/sites/registry.d.ts.map +1 -1
- package/dist/sites/registry.js.map +1 -1
- package/dist/sites/store.d.ts +8 -1
- package/dist/sites/store.d.ts.map +1 -1
- package/dist/sites/store.js +17 -2
- package/dist/sites/store.js.map +1 -1
- package/dist/sites/tools/index.d.ts.map +1 -1
- package/dist/sites/tools/index.js +9 -1
- package/dist/sites/tools/index.js.map +1 -1
- package/dist/sites/tools/use-site.d.ts +47 -0
- package/dist/sites/tools/use-site.d.ts.map +1 -0
- package/dist/sites/tools/use-site.js +203 -0
- package/dist/sites/tools/use-site.js.map +1 -0
- package/dist/tools/bind-guidance.d.ts +80 -0
- package/dist/tools/bind-guidance.d.ts.map +1 -0
- package/dist/tools/bind-guidance.js +95 -0
- package/dist/tools/bind-guidance.js.map +1 -0
- package/dist/tools/elements/builders.d.ts.map +1 -1
- package/dist/tools/elements/builders.js +75 -18
- package/dist/tools/elements/builders.js.map +1 -1
- package/dist/tools/elements/handlers-write.d.ts +20 -3
- package/dist/tools/elements/handlers-write.d.ts.map +1 -1
- package/dist/tools/elements/handlers-write.js +372 -10
- package/dist/tools/elements/handlers-write.js.map +1 -1
- package/dist/tools/elements/handlers.d.ts +6 -1
- package/dist/tools/elements/handlers.d.ts.map +1 -1
- package/dist/tools/elements/handlers.js +77 -10
- package/dist/tools/elements/handlers.js.map +1 -1
- package/dist/tools/elements/layout-hierarchy-rules.d.ts +62 -0
- package/dist/tools/elements/layout-hierarchy-rules.d.ts.map +1 -0
- package/dist/tools/elements/layout-hierarchy-rules.js +154 -0
- package/dist/tools/elements/layout-hierarchy-rules.js.map +1 -0
- package/dist/tools/format/elements-format.d.ts +35 -0
- package/dist/tools/format/elements-format.d.ts.map +1 -1
- package/dist/tools/format/elements-format.js +134 -12
- package/dist/tools/format/elements-format.js.map +1 -1
- package/dist/tools/format/inspection-format.d.ts +29 -0
- package/dist/tools/format/inspection-format.d.ts.map +1 -1
- package/dist/tools/format/inspection-format.js +99 -22
- package/dist/tools/format/inspection-format.js.map +1 -1
- package/dist/tools/format/pages-format.d.ts.map +1 -1
- package/dist/tools/format/pages-format.js +7 -0
- package/dist/tools/format/pages-format.js.map +1 -1
- package/dist/tools/format/sources-format.d.ts +8 -0
- package/dist/tools/format/sources-format.d.ts.map +1 -1
- package/dist/tools/format/sources-format.js +10 -0
- package/dist/tools/format/sources-format.js.map +1 -1
- package/dist/tools/health.d.ts.map +1 -1
- package/dist/tools/health.js +24 -0
- package/dist/tools/health.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +4 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/inspection.d.ts +24 -0
- package/dist/tools/inspection.d.ts.map +1 -1
- package/dist/tools/inspection.js +297 -5
- package/dist/tools/inspection.js.map +1 -1
- package/dist/tools/layout-flatten.d.ts +11 -8
- package/dist/tools/layout-flatten.d.ts.map +1 -1
- package/dist/tools/layout-flatten.js +17 -6
- package/dist/tools/layout-flatten.js.map +1 -1
- package/dist/tools/multi-items/builders.d.ts.map +1 -1
- package/dist/tools/multi-items/builders.js +18 -3
- package/dist/tools/multi-items/builders.js.map +1 -1
- package/dist/tools/multi-items/clean-implode-handler.d.ts.map +1 -1
- package/dist/tools/multi-items/clean-implode-handler.js +2 -2
- package/dist/tools/multi-items/clean-implode-handler.js.map +1 -1
- package/dist/tools/multi-items/format/inspection-format.d.ts +41 -0
- package/dist/tools/multi-items/format/inspection-format.d.ts.map +1 -0
- package/dist/tools/multi-items/format/inspection-format.js +64 -0
- package/dist/tools/multi-items/format/inspection-format.js.map +1 -0
- package/dist/tools/multi-items/inspect-handler.d.ts +50 -2
- package/dist/tools/multi-items/inspect-handler.d.ts.map +1 -1
- package/dist/tools/multi-items/inspect-handler.js +237 -10
- package/dist/tools/multi-items/inspect-handler.js.map +1 -1
- package/dist/tools/multi-items/inspection-cache.d.ts +85 -0
- package/dist/tools/multi-items/inspection-cache.d.ts.map +1 -0
- package/dist/tools/multi-items/inspection-cache.js +126 -0
- package/dist/tools/multi-items/inspection-cache.js.map +1 -0
- package/dist/tools/pages/builders.d.ts +31 -2
- package/dist/tools/pages/builders.d.ts.map +1 -1
- package/dist/tools/pages/builders.js +173 -17
- package/dist/tools/pages/builders.js.map +1 -1
- package/dist/tools/pages/handlers-read.d.ts +6 -2
- package/dist/tools/pages/handlers-read.d.ts.map +1 -1
- package/dist/tools/pages/handlers-read.js +228 -26
- package/dist/tools/pages/handlers-read.js.map +1 -1
- package/dist/tools/pages/handlers-write.d.ts +143 -7
- package/dist/tools/pages/handlers-write.d.ts.map +1 -1
- package/dist/tools/pages/handlers-write.js +215 -11
- package/dist/tools/pages/handlers-write.js.map +1 -1
- package/dist/tools/pages/index.d.ts +1 -1
- package/dist/tools/pages/index.d.ts.map +1 -1
- package/dist/tools/pages/index.js +1 -1
- package/dist/tools/pages/index.js.map +1 -1
- package/dist/tools/pages/schemas.d.ts +166 -0
- package/dist/tools/pages/schemas.d.ts.map +1 -1
- package/dist/tools/pages/schemas.js +347 -0
- package/dist/tools/pages/schemas.js.map +1 -1
- package/dist/tools/shared-schemas.d.ts.map +1 -1
- package/dist/tools/shared-schemas.js +26 -11
- package/dist/tools/shared-schemas.js.map +1 -1
- package/dist/tools/sources/builders.d.ts.map +1 -1
- package/dist/tools/sources/builders.js +64 -6
- package/dist/tools/sources/builders.js.map +1 -1
- package/dist/tools/sources/handlers-bind.d.ts +13 -1
- package/dist/tools/sources/handlers-bind.d.ts.map +1 -1
- package/dist/tools/sources/handlers-bind.js +219 -5
- package/dist/tools/sources/handlers-bind.js.map +1 -1
- package/dist/tools/sources/handlers.d.ts +3 -0
- package/dist/tools/sources/handlers.d.ts.map +1 -1
- package/dist/tools/sources/handlers.js +45 -8
- package/dist/tools/sources/handlers.js.map +1 -1
- package/dist/tools/sparse-fields.d.ts +23 -0
- package/dist/tools/sparse-fields.d.ts.map +1 -1
- package/dist/tools/sparse-fields.js +29 -0
- package/dist/tools/sparse-fields.js.map +1 -1
- package/dist/tools/sublayout/builders.d.ts +23 -0
- package/dist/tools/sublayout/builders.d.ts.map +1 -0
- package/dist/tools/sublayout/builders.js +54 -0
- package/dist/tools/sublayout/builders.js.map +1 -0
- package/dist/tools/sublayout/index.d.ts +13 -0
- package/dist/tools/sublayout/index.d.ts.map +1 -0
- package/dist/tools/sublayout/index.js +13 -0
- package/dist/tools/sublayout/index.js.map +1 -0
- package/dist/tools/sublayout/inspect-sublayout-handler.d.ts +95 -0
- package/dist/tools/sublayout/inspect-sublayout-handler.d.ts.map +1 -0
- package/dist/tools/sublayout/inspect-sublayout-handler.js +181 -0
- package/dist/tools/sublayout/inspect-sublayout-handler.js.map +1 -0
- package/dist/tools/tool-builder/results.d.ts +31 -0
- package/dist/tools/tool-builder/results.d.ts.map +1 -1
- package/dist/tools/tool-builder/results.js +95 -4
- package/dist/tools/tool-builder/results.js.map +1 -1
- package/dist/uninstall-skill.d.ts +52 -0
- package/dist/uninstall-skill.d.ts.map +1 -0
- package/dist/uninstall-skill.js +146 -0
- package/dist/uninstall-skill.js.map +1 -0
- package/dist/uninstall.d.ts +73 -0
- package/dist/uninstall.d.ts.map +1 -0
- package/dist/uninstall.js +82 -0
- package/dist/uninstall.js.map +1 -0
- package/icon.png +0 -0
- package/manifest.json +10 -10
- package/package.json +7 -3
- package/skills/yt-builder-mcp/SKILL.md +157 -88
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
*/
|
|
18
18
|
import { detailResult, tableResult } from '@getimo/mcp-toolkit';
|
|
19
19
|
import { z } from 'zod';
|
|
20
|
-
import { encodeElementPath } from '../../client.js';
|
|
20
|
+
import { encodeElementPath, encodeTemplateId } from '../../client.js';
|
|
21
21
|
import { RestError } from '../../errors.js';
|
|
22
|
-
import { ELEMENTS_COMPACT_COLUMNS, ELEMENTS_TABLE_COLUMNS, buildElementDetail, mapElementRow, } from '../format/elements-format.js';
|
|
23
|
-
import { DEFAULT_FIELDS_ELEMENT_LIST, projectFields, projectionFeedback, projectedFieldsEcho, } from '../sparse-fields.js';
|
|
22
|
+
import { ELEMENTS_COMPACT_COLUMNS, ELEMENTS_TABLE_COLUMNS, buildElementDetail, extractBinding, mapElementRow, } from '../format/elements-format.js';
|
|
23
|
+
import { DEFAULT_FIELDS_ELEMENT_LIST, projectFields, projectionFeedback, projectionWarning, projectedFieldsEcho, } from '../sparse-fields.js';
|
|
24
24
|
import { errorResult, structuredResult, } from '../tool-builder.js';
|
|
25
25
|
// ─── outputSchemas (Wave G.2 §4) ─────────────────────────────────────
|
|
26
26
|
export const ELEMENT_LIST_OUTPUT_SCHEMA = z.object({
|
|
@@ -59,6 +59,19 @@ export const ELEMENT_LIST_OUTPUT_SCHEMA = z.object({
|
|
|
59
59
|
.optional()
|
|
60
60
|
.describe('True when this element is dynamically bound to a data ' +
|
|
61
61
|
'source. Use `element_get_binding` for the full mapping.'),
|
|
62
|
+
// F88: surface the binding so leaf field-mappings are readable
|
|
63
|
+
// back without dumping the props tree. Present only on bound rows.
|
|
64
|
+
source: z
|
|
65
|
+
.unknown()
|
|
66
|
+
.optional()
|
|
67
|
+
.describe('Raw binding object when bound (e.g. `{query:{name:"#parent"},' +
|
|
68
|
+
'props:{content:{name:"field.x"}}}`). Copy back into ' +
|
|
69
|
+
'`element_bind_source`. Present only when `has_binding` is true.'),
|
|
70
|
+
binding_summary: z
|
|
71
|
+
.string()
|
|
72
|
+
.optional()
|
|
73
|
+
.describe('Compact one-line binding: `<query> ← <el>:<field>, …`. ' +
|
|
74
|
+
'Present only when bound.'),
|
|
62
75
|
})
|
|
63
76
|
.passthrough()),
|
|
64
77
|
total: z.number(),
|
|
@@ -72,6 +85,10 @@ export const ELEMENT_LIST_OUTPUT_SCHEMA = z.object({
|
|
|
72
85
|
// table columns. See sparse-fields.ts::projectionFeedback.
|
|
73
86
|
available_fields: z.array(z.string()).optional(),
|
|
74
87
|
unknown_fields: z.array(z.string()).optional(),
|
|
88
|
+
// F23 (2026-06-10): the LOUD unknown-projection warning also rides in
|
|
89
|
+
// structuredContent — hosts that surface structuredContent (not the
|
|
90
|
+
// text leg) to the model would otherwise never see it.
|
|
91
|
+
projection_warning: z.string().optional(),
|
|
75
92
|
});
|
|
76
93
|
export const ELEMENT_GET_OUTPUT_SCHEMA = z.object({
|
|
77
94
|
template_id: z.string(),
|
|
@@ -80,6 +97,11 @@ export const ELEMENT_GET_OUTPUT_SCHEMA = z.object({
|
|
|
80
97
|
label: z.string().optional(),
|
|
81
98
|
props: z.record(z.string(), z.unknown()).optional(),
|
|
82
99
|
children_count: z.number(),
|
|
100
|
+
// F88 (2026-06-10): when the element is bound, surface the raw binding
|
|
101
|
+
// object + a compact summary so a leaf's field-mappings are readable back
|
|
102
|
+
// (the props tree no longer has to be eyeballed). Present only when bound.
|
|
103
|
+
source: z.unknown().optional(),
|
|
104
|
+
binding_summary: z.string().optional(),
|
|
83
105
|
});
|
|
84
106
|
// ─── element_list ────────────────────────────────────────────────────
|
|
85
107
|
/**
|
|
@@ -165,8 +187,19 @@ export async function handleElementList({ client }, { template_id, fields, root_
|
|
|
165
187
|
qs.set('limit', String(limit));
|
|
166
188
|
if (typeof cursor === 'string' && cursor !== '')
|
|
167
189
|
qs.set('cursor', cursor);
|
|
190
|
+
// F13 (2026-06-09): when the caller projects a nested `props.*`
|
|
191
|
+
// field, ask the REST plugin to attach the full props map per row
|
|
192
|
+
// (ElementOps::listOnTemplate honours `include=props`). The default
|
|
193
|
+
// row carries only `props_summary` (key names), which the row
|
|
194
|
+
// mapper drops — so without this opt-in the nested path would have
|
|
195
|
+
// nothing to project against. Mirrors page_get_layout flat-mode,
|
|
196
|
+
// which always carries props.
|
|
197
|
+
const wantsNestedProps = Array.isArray(fields) &&
|
|
198
|
+
fields.some((f) => f === 'props' || f.startsWith('props.'));
|
|
199
|
+
if (wantsNestedProps)
|
|
200
|
+
qs.set('include', 'props');
|
|
168
201
|
const query = qs.toString();
|
|
169
|
-
const data = await client.get(`/pages/${
|
|
202
|
+
const data = await client.get(`/pages/${encodeTemplateId(template_id)}/elements${query !== '' ? `?${query}` : ''}`);
|
|
170
203
|
// Paginated envelope uses `items`; flat shape uses `elements`.
|
|
171
204
|
const rawSource = Array.isArray(data.items)
|
|
172
205
|
? data.items
|
|
@@ -202,9 +235,9 @@ export async function handleElementList({ client }, { template_id, fields, root_
|
|
|
202
235
|
const items = projectFields(mapped, fields, DEFAULT_FIELDS_ELEMENT_LIST);
|
|
203
236
|
const echo = projectedFieldsEcho(fields, DEFAULT_FIELDS_ELEMENT_LIST);
|
|
204
237
|
const feedback = projectionFeedback(mapped, fields);
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
238
|
+
// F23 (2026-06-09): the loud text-leg warning is built by the
|
|
239
|
+
// shared helper so every read tool surfaces the identical signal.
|
|
240
|
+
const unknownNote = projectionWarning(feedback);
|
|
208
241
|
// N-01 (Audit v4): when the caller passes an explicit narrow
|
|
209
242
|
// `fields[]`, render the text table from the projected (slim)
|
|
210
243
|
// rows with `full` detail (8000 chars) so the WHOLE node list
|
|
@@ -235,6 +268,7 @@ export async function handleElementList({ client }, { template_id, fields, root_
|
|
|
235
268
|
...(feedback !== undefined ? {
|
|
236
269
|
available_fields: [...feedback.available_fields],
|
|
237
270
|
unknown_fields: [...feedback.unknown_fields],
|
|
271
|
+
...(unknownNote.trim() !== '' ? { projection_warning: unknownNote.trim() } : {}),
|
|
238
272
|
} : {}),
|
|
239
273
|
});
|
|
240
274
|
}
|
|
@@ -250,24 +284,54 @@ export async function handleElementList({ client }, { template_id, fields, root_
|
|
|
250
284
|
export async function handleElementGet({ client }, { template_id, element_path }) {
|
|
251
285
|
const encoded = encodeElementPath(element_path);
|
|
252
286
|
try {
|
|
253
|
-
const data = await client.get(`/pages/${
|
|
287
|
+
const data = await client.get(`/pages/${encodeTemplateId(template_id)}/elements/${encoded}`);
|
|
254
288
|
const elementType = typeof data.element_type === 'string'
|
|
255
289
|
? data.element_type
|
|
256
290
|
: typeof data.type === 'string'
|
|
257
291
|
? data.type
|
|
258
292
|
: '';
|
|
259
293
|
const label = typeof data.label === 'string' ? data.label : undefined;
|
|
260
|
-
|
|
294
|
+
// Cluster C3 (back-compat defense-in-depth): older deployed plugins
|
|
295
|
+
// serialize an EMPTY props map as a JSON array `[]` (PHP
|
|
296
|
+
// `json_encode([])`). The fixed producer emits `{}`, but a client
|
|
297
|
+
// talking to an un-upgraded host still receives `[]`. The
|
|
298
|
+
// `element_get` outputSchema declares `props` as a `z.record(...)`
|
|
299
|
+
// (object), so emitting the raw `[]` into structuredContent makes
|
|
300
|
+
// the host reject the response with -32602 ("expected record,
|
|
301
|
+
// received array"). Normalize a ZERO-LENGTH array into an empty
|
|
302
|
+
// object. A NON-empty array is genuinely invalid (no plugin emits
|
|
303
|
+
// a populated array for props) — leave it untouched so schema
|
|
304
|
+
// validation surfaces the real error instead of masking it.
|
|
305
|
+
const propsRaw = Array.isArray(data.props) && data.props.length === 0
|
|
306
|
+
? {}
|
|
307
|
+
: data.props;
|
|
261
308
|
const props = propsRaw !== null && typeof propsRaw === 'object'
|
|
262
309
|
? propsRaw
|
|
263
310
|
: undefined;
|
|
264
311
|
const children = Array.isArray(data.children) ? data.children : [];
|
|
312
|
+
// F88: read the top-level binding carriers too. element_get returns
|
|
313
|
+
// the raw node under `element` plus the flattened top-level keys; the
|
|
314
|
+
// leaf #parent binding lives in `props.source`, but a container's
|
|
315
|
+
// binding may live in the top-level `source` / `source_extended`. Pass
|
|
316
|
+
// them through so the binding is surfaced + readable back.
|
|
317
|
+
const rawElement = data.element !== null && typeof data.element === 'object' && !Array.isArray(data.element)
|
|
318
|
+
? data.element
|
|
319
|
+
: {};
|
|
320
|
+
const topSource = data.source ?? rawElement.source;
|
|
321
|
+
const topSourceExtended = data.source_extended ?? rawElement.source_extended;
|
|
322
|
+
const binding = extractBinding({
|
|
323
|
+
...(props !== undefined ? { props } : {}),
|
|
324
|
+
...(topSource !== undefined ? { source: topSource } : {}),
|
|
325
|
+
...(topSourceExtended !== undefined ? { source_extended: topSourceExtended } : {}),
|
|
326
|
+
});
|
|
265
327
|
const toolkitResult = detailResult(buildElementDetail({
|
|
266
328
|
path: element_path,
|
|
267
329
|
element_type: elementType,
|
|
268
330
|
label,
|
|
269
331
|
props,
|
|
270
332
|
children: children,
|
|
333
|
+
...(topSource !== undefined ? { source: topSource } : {}),
|
|
334
|
+
...(topSourceExtended !== undefined ? { source_extended: topSourceExtended } : {}),
|
|
271
335
|
}));
|
|
272
336
|
return structuredResult(toolkitResult, {
|
|
273
337
|
template_id,
|
|
@@ -276,6 +340,9 @@ export async function handleElementGet({ client }, { template_id, element_path }
|
|
|
276
340
|
...(label !== undefined ? { label } : {}),
|
|
277
341
|
...(props !== undefined ? { props } : {}),
|
|
278
342
|
children_count: children.length,
|
|
343
|
+
...(binding !== null
|
|
344
|
+
? { source: binding.source, binding_summary: binding.binding_summary }
|
|
345
|
+
: {}),
|
|
279
346
|
});
|
|
280
347
|
}
|
|
281
348
|
catch (e) {
|
|
@@ -288,5 +355,5 @@ export async function handleElementGet({ client }, { template_id, element_path }
|
|
|
288
355
|
}
|
|
289
356
|
}
|
|
290
357
|
// Re-export write handlers so callers can import from this barrel.
|
|
291
|
-
export { handleElementAdd, handleElementClone, handleElementDelete, handleElementMove, handleElementUpdateSettings, } from './handlers-write.js';
|
|
358
|
+
export { handleElementAdd, handleElementClone, handleElementDelete, handleElementMove, handleElementUpdateSettings, handleScaffoldSection, } from './handlers-write.js';
|
|
292
359
|
//# sourceMappingURL=handlers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/tools/elements/handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAoB,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAmB,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EACH,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,aAAa,GAChB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACH,2BAA2B,EAC3B,aAAa,EACb,kBAAkB,EAClB,mBAAmB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACH,WAAW,EACX,gBAAgB,GAEnB,MAAM,oBAAoB,CAAC;AAE5B,wEAAwE;AAExE,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,sEAAsE;IACtE,wEAAwE;IACxE,gEAAgE;IAChE,uEAAuE;IACvE,KAAK,EAAE,CAAC,CAAC,KAAK,CACV,CAAC;SACI,MAAM,CAAC;QACJ,IAAI,EAAE,CAAC;aACF,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACL,+BAA+B;YAC3B,0CAA0C,CACjD;QACL,QAAQ,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACL,oDAAoD;YAChD,0CAA0C,CACjD;QACL,YAAY,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACL,qDAAqD;YACjD,4CAA4C,CACnD;QACL,WAAW,EAAE,CAAC;aACT,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACL,mEAAmE;YAC/D,mEAAmE,CAC1E;QACL,KAAK,EAAE,CAAC;aACH,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,uDAAuD,CAAC;QACtE,WAAW,EAAE,CAAC;aACT,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CACL,wDAAwD;YACpD,yDAAyD,CAChE;KACR,CAAC;SACD,WAAW,EAAE,CACrB;IACD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,uEAAuE;IACvE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAChD,kEAAkE;IAClE,+DAA+D;IAC/D,iEAAiE;IACjE,2DAA2D;IAC3D,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAChD,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACjD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IACnD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;CAC7B,CAAC,CAAC;AAgBH,wEAAwE;AAExE;;;;;;;;GAQG;AACH,SAAS,iBAAiB,CAAC,MAAyB;IAChD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAe,EAAE;QACnC,MAAM,MAAM,GAAG,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,aAAa,CAAC;QAC7E,OAAO;YACH,GAAG;YACH,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE;YAC3C,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;SAC1B,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC;AAGD;;;;;;;;;;;;GAYG;AACH,SAAS,kBAAkB,CAAC,MAAc;IACtC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtC,4BAA4B;IAC5B,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACxC,iEAAiE;IACjE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACnD,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACpF,OAAO,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACnC,EAAE,MAAM,EAAuB,EAC/B,EACI,WAAW,EACX,MAAM,EACN,SAAS,EACT,KAAK,EACL,KAAK,EACL,MAAM,GAQT;IAED,kEAAkE;IAClE,gEAAgE;IAChE,6BAA6B;IAC7B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7E,OAAO,WAAW,CAAC;YACf,KAAK,EAAE,IAAI,SAAS,CAAC;gBACjB,MAAM,EAAE,GAAG;gBACX,IAAI,EAAE,8CAA8C;gBACpD,OAAO,EAAE,mBAAmB,MAAM,+DAA+D;gBACjG,IAAI,EAAE,IAAI;aACb,CAAC;YACF,OAAO,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;YAChC,IAAI,EACA,4DAA4D;gBAC5D,8CAA8C;SACrD,CAAC,CAAC;IACP,CAAC;IACD,IAAI,CAAC;QACD,gEAAgE;QAChE,+DAA+D;QAC/D,mEAAmE;QACnE,2CAA2C;QAC3C,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE,CAAC;QACjC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;YACpD,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9D,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9D,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,EAAE;YAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC1E,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAMzB,UAAU,kBAAkB,CAAC,WAAW,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACzF,CAAC;QACF,+DAA+D;QAC/D,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;YACvC,CAAC,CAAC,IAAI,CAAC,KAAK;YACZ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC1B,CAAC,CAAC,IAAI,CAAC,QAAQ;gBACf,CAAC,CAAC,EAAE,CAAC;QACb,4DAA4D;QAC5D,6DAA6D;QAC7D,8DAA8D;QAC9D,6DAA6D;QAC7D,4DAA4D;QAC5D,6DAA6D;QAC7D,6DAA6D;QAC7D,kCAAkC;QAClC,IACI,OAAO,SAAS,KAAK,QAAQ;YAC7B,SAAS,KAAK,EAAE;YAChB,SAAS,CAAC,MAAM,KAAK,CAAC,EACxB,CAAC;YACC,OAAO,WAAW,CAAC;gBACf,KAAK,EAAE,IAAI,SAAS,CAAC;oBACjB,MAAM,EAAE,GAAG;oBACX,IAAI,EAAE,iDAAiD;oBACvD,OAAO,EAAE,cAAc,SAAS,4BAA4B,WAAW,IAAI;oBAC3E,IAAI,EAAE,IAAI;iBACb,CAAC;gBACF,OAAO,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE;gBACnC,IAAI,EACA,4DAA4D;oBAC5D,qDAAqD;aAC5D,CAAC,CAAC;QACP,CAAC;QACD,MAAM,MAAM,GAAG,SAAS;aACnB,MAAM,CAAC,CAAC,CAAC,EAAgC,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC;aAChF,GAAG,CAAC,aAAa,CAAC,CAAC;QACxB,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,2BAA2B,CAAC,CAAC;QACzE,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;QACtE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACpD,MAAM,WAAW,GACb,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;YACxD,CAAC,CAAC,6BAA6B,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YACxH,CAAC,CAAC,EAAE,CAAC;QAEb,6DAA6D;QAC7D,8DAA8D;QAC9D,8DAA8D;QAC9D,8DAA8D;QAC9D,+DAA+D;QAC/D,6DAA6D;QAC7D,MAAM,mBAAmB,GACrB,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAC/C,MAAM,aAAa,GAAG,mBAAmB;YACrC,CAAC,CAAC,WAAW,CACP,KAAkC,EAClC;gBACI,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC;gBAClC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CACd,GAAG,MAAM,CAAC,KAAK,CAAC,0BAA0B,WAAW,IAAI,WAAW,EAAE;gBAC1E,MAAM,EAAE,wDAAwD;aACnE,EACD,MAAM,CACT;YACH,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE;gBAChB,OAAO,EAAE,CAAC,GAAG,sBAAsB,CAAC;gBACpC,cAAc,EAAE,CAAC,GAAG,wBAAwB,CAAC;gBAC7C,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CACd,GAAG,MAAM,CAAC,KAAK,CAAC,0BAA0B,WAAW,IAAI,WAAW,EAAE;gBAC1E,MAAM,EAAE,wDAAwD;aACnE,CAAC,CAAC;QACT,OAAO,gBAAgB,CAAC,aAAa,EAAE;YACnC,KAAK;YACL,KAAK,EAAE,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;YACjE,WAAW;YACX,GAAG,CAAC,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,IAAI,IAAI,CAAC,WAAW,KAAK,EAAE;gBAC/D,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;gBACnC,CAAC,CAAC,EAAE,CAAC;YACT,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC;gBACzB,gBAAgB,EAAE,CAAC,GAAG,QAAQ,CAAC,gBAAgB,CAAC;gBAChD,cAAc,EAAE,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC;aAC/C,CAAC,CAAC,CAAC,EAAE,CAAC;SACV,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,WAAW,CAAC;YACf,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,EAAE,WAAW,EAAE;YACxB,IAAI,EAAE,yDAAyD;SAClE,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AAED,wEAAwE;AAExE,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,EAAE,MAAM,EAAuB,EAC/B,EAAE,WAAW,EAAE,YAAY,EAAiD;IAE5E,MAAM,OAAO,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAChD,IAAI,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CACzB,UAAU,kBAAkB,CAAC,WAAW,CAAC,aAAa,OAAO,EAAE,CAClE,CAAC;QACF,MAAM,WAAW,GACb,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ;YACjC,CAAC,CAAC,IAAI,CAAC,YAAY;YACnB,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;gBAC3B,CAAC,CAAC,IAAI,CAAC,IAAI;gBACX,CAAC,CAAC,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5B,MAAM,KAAK,GACP,QAAQ,KAAK,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAC7C,CAAC,CAAE,QAAoC;YACvC,CAAC,CAAC,SAAS,CAAC;QACpB,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAEnE,MAAM,aAAa,GAAG,YAAY,CAC9B,kBAAkB,CAAC;YACf,IAAI,EAAE,YAAY;YAClB,YAAY,EAAE,WAAW;YACzB,KAAK;YACL,KAAK;YACL,QAAQ,EAAE,QAAqC;SAClD,CAAC,CACL,CAAC;QACF,OAAO,gBAAgB,CAAC,aAAa,EAAE;YACnC,WAAW;YACX,YAAY;YACZ,YAAY,EAAE,WAAW;YACzB,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,cAAc,EAAE,QAAQ,CAAC,MAAM;SAClC,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,WAAW,CAAC;YACf,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE;YACtC,IAAI,EACA,sDAAsD;gBACtD,yDAAyD;SAChE,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AAED,mEAAmE;AACnE,OAAO,EACH,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,2BAA2B,GAC9B,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/tools/elements/handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Layout hierarchy grammar — TypeScript mirror of the PHP
|
|
3
|
+
* `WootsUp\BuilderMcp\Elements\LayoutHierarchyRules` constant.
|
|
4
|
+
*
|
|
5
|
+
* YOOtheme Pro renders a layout tree with a FIXED structural skeleton:
|
|
6
|
+
*
|
|
7
|
+
* root (layout) ⊃ section ⊃ row ⊃ column ⊃ {content | container}
|
|
8
|
+
*
|
|
9
|
+
* Content elements hung directly on the root / in a bare section / in a
|
|
10
|
+
* bare row do NOT render. This grammar (derived from REAL ab-Werk layouts —
|
|
11
|
+
* live-dumped from joomla-dev5 article:2 "The Club", YT 5.0.22) is the
|
|
12
|
+
* single source of truth shared by:
|
|
13
|
+
* • the PHP per-element + bulk guards (server-side enforcement)
|
|
14
|
+
* • the `scaffold_section` tool (builds a VALID section→row→column hull)
|
|
15
|
+
*
|
|
16
|
+
* Conservatism contract: REJECT ONLY what is positively known invalid (a
|
|
17
|
+
* child not allowed under a STRICT parent — section/row/root). Every other
|
|
18
|
+
* parent (column, fragment, multi-item containers, unknown 3rd-party) is
|
|
19
|
+
* PERMISSIVE. A false-positive that blocks a legitimate layout is strictly
|
|
20
|
+
* worse than a let-through edge case.
|
|
21
|
+
*
|
|
22
|
+
* The PHP and TS tables MUST stay in lock-step — both files carry a
|
|
23
|
+
* pin-test that fails if the grammar drifts.
|
|
24
|
+
*
|
|
25
|
+
* @license MIT
|
|
26
|
+
*/
|
|
27
|
+
/**
|
|
28
|
+
* The ONLY element-type allowed as a DIRECT child of the layout root.
|
|
29
|
+
* Live-verified: every root child on article:2 is a `section`.
|
|
30
|
+
*/
|
|
31
|
+
export declare const ROOT_ALLOWED: readonly string[];
|
|
32
|
+
/**
|
|
33
|
+
* STRICT structural parents and their EXHAUSTIVE allowed-child set.
|
|
34
|
+
* `column` is deliberately ABSENT — it is the permissive content host.
|
|
35
|
+
*/
|
|
36
|
+
export declare const STRICT_PARENTS: Readonly<Record<string, readonly string[]>>;
|
|
37
|
+
/**
|
|
38
|
+
* Return the exhaustive allowed-child list for `parentType`, or null when
|
|
39
|
+
* `parentType` is NOT a strict structural parent (= permissive).
|
|
40
|
+
*/
|
|
41
|
+
export declare function allowedChildrenOf(parentType: string): readonly string[] | null;
|
|
42
|
+
/**
|
|
43
|
+
* Is `childType` a valid DIRECT child of the layout root? Permissive for the
|
|
44
|
+
* empty type and for unknown / fragment types.
|
|
45
|
+
*/
|
|
46
|
+
export declare function isAllowedRootChild(childType: string): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Is `childType` a valid child of `parentType`? Strict parents enforce
|
|
49
|
+
* their allow-list; every other parent is permissive.
|
|
50
|
+
*/
|
|
51
|
+
export declare function isAllowedChild(parentType: string, childType: string): boolean;
|
|
52
|
+
/** Is `type` one of the STRICT structural parents (section / row)? */
|
|
53
|
+
export declare function isStructuralParent(type: string): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Is `childType` a type the STATIC grammar can positively reason about WITHOUT
|
|
56
|
+
* the live YT element-registry? True for the closed grammar (`section` + every
|
|
57
|
+
* KNOWN-non-section type); false for unknown / 3rd-party / `fragment` types
|
|
58
|
+
* (which stay degrade-permissive). Mirror of the PHP
|
|
59
|
+
* `LayoutHierarchyRules::isStaticallyDecidableChild`.
|
|
60
|
+
*/
|
|
61
|
+
export declare function isStaticallyDecidableChild(childType: string): boolean;
|
|
62
|
+
//# sourceMappingURL=layout-hierarchy-rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout-hierarchy-rules.d.ts","sourceRoot":"","sources":["../../../src/tools/elements/layout-hierarchy-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,SAAS,MAAM,EAA+B,CAAC;AAE1E;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAGrE,CAAC;AAEH;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,IAAI,CAI9E;AAgED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAQ7D;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAM7E;AAED,sEAAsE;AACtE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAQrE"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Layout hierarchy grammar — TypeScript mirror of the PHP
|
|
3
|
+
* `WootsUp\BuilderMcp\Elements\LayoutHierarchyRules` constant.
|
|
4
|
+
*
|
|
5
|
+
* YOOtheme Pro renders a layout tree with a FIXED structural skeleton:
|
|
6
|
+
*
|
|
7
|
+
* root (layout) ⊃ section ⊃ row ⊃ column ⊃ {content | container}
|
|
8
|
+
*
|
|
9
|
+
* Content elements hung directly on the root / in a bare section / in a
|
|
10
|
+
* bare row do NOT render. This grammar (derived from REAL ab-Werk layouts —
|
|
11
|
+
* live-dumped from joomla-dev5 article:2 "The Club", YT 5.0.22) is the
|
|
12
|
+
* single source of truth shared by:
|
|
13
|
+
* • the PHP per-element + bulk guards (server-side enforcement)
|
|
14
|
+
* • the `scaffold_section` tool (builds a VALID section→row→column hull)
|
|
15
|
+
*
|
|
16
|
+
* Conservatism contract: REJECT ONLY what is positively known invalid (a
|
|
17
|
+
* child not allowed under a STRICT parent — section/row/root). Every other
|
|
18
|
+
* parent (column, fragment, multi-item containers, unknown 3rd-party) is
|
|
19
|
+
* PERMISSIVE. A false-positive that blocks a legitimate layout is strictly
|
|
20
|
+
* worse than a let-through edge case.
|
|
21
|
+
*
|
|
22
|
+
* The PHP and TS tables MUST stay in lock-step — both files carry a
|
|
23
|
+
* pin-test that fails if the grammar drifts.
|
|
24
|
+
*
|
|
25
|
+
* @license MIT
|
|
26
|
+
*/
|
|
27
|
+
/**
|
|
28
|
+
* The ONLY element-type allowed as a DIRECT child of the layout root.
|
|
29
|
+
* Live-verified: every root child on article:2 is a `section`.
|
|
30
|
+
*/
|
|
31
|
+
export const ROOT_ALLOWED = Object.freeze(['section']);
|
|
32
|
+
/**
|
|
33
|
+
* STRICT structural parents and their EXHAUSTIVE allowed-child set.
|
|
34
|
+
* `column` is deliberately ABSENT — it is the permissive content host.
|
|
35
|
+
*/
|
|
36
|
+
export const STRICT_PARENTS = Object.freeze({
|
|
37
|
+
section: Object.freeze(['row']),
|
|
38
|
+
row: Object.freeze(['column']),
|
|
39
|
+
});
|
|
40
|
+
/**
|
|
41
|
+
* Return the exhaustive allowed-child list for `parentType`, or null when
|
|
42
|
+
* `parentType` is NOT a strict structural parent (= permissive).
|
|
43
|
+
*/
|
|
44
|
+
export function allowedChildrenOf(parentType) {
|
|
45
|
+
return Object.prototype.hasOwnProperty.call(STRICT_PARENTS, parentType)
|
|
46
|
+
? (STRICT_PARENTS[parentType] ?? null)
|
|
47
|
+
: null;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* The closed set of KNOWN element-types that are NOT a `section` and are
|
|
51
|
+
* therefore invalid as a DIRECT root child. `fragment` is DELIBERATELY
|
|
52
|
+
* excluded (YT5 permissive wrapper). Built from the inner structural types,
|
|
53
|
+
* the canonical content leaves, and the multi-item containers + their items.
|
|
54
|
+
*/
|
|
55
|
+
const KNOWN_NON_SECTION_TYPES = new Set([
|
|
56
|
+
// Inner structural types — never valid on the root.
|
|
57
|
+
'row',
|
|
58
|
+
'column',
|
|
59
|
+
'layout',
|
|
60
|
+
// Canonical content leaves (YT 4.5.33 built-ins).
|
|
61
|
+
'text',
|
|
62
|
+
'headline',
|
|
63
|
+
'image',
|
|
64
|
+
'html',
|
|
65
|
+
'icon',
|
|
66
|
+
'alert',
|
|
67
|
+
'code',
|
|
68
|
+
'countdown',
|
|
69
|
+
'divider',
|
|
70
|
+
'overlay',
|
|
71
|
+
'panel',
|
|
72
|
+
'quotation',
|
|
73
|
+
'totop',
|
|
74
|
+
'video',
|
|
75
|
+
'spacer',
|
|
76
|
+
// Multi-item containers + their `*_item` children (mirrors ItemContainerMap).
|
|
77
|
+
'accordion',
|
|
78
|
+
'accordion_item',
|
|
79
|
+
'button',
|
|
80
|
+
'button_item',
|
|
81
|
+
'description_list',
|
|
82
|
+
'description_list_item',
|
|
83
|
+
'gallery',
|
|
84
|
+
'gallery_item',
|
|
85
|
+
'grid',
|
|
86
|
+
'grid_item',
|
|
87
|
+
'list',
|
|
88
|
+
'list_item',
|
|
89
|
+
'map',
|
|
90
|
+
'map_item',
|
|
91
|
+
'nav',
|
|
92
|
+
'nav_item',
|
|
93
|
+
'overlay-slider',
|
|
94
|
+
'overlay-slider_item',
|
|
95
|
+
'panel-slider',
|
|
96
|
+
'panel-slider_item',
|
|
97
|
+
'popover',
|
|
98
|
+
'popover_item',
|
|
99
|
+
'slideshow',
|
|
100
|
+
'slideshow_item',
|
|
101
|
+
'social',
|
|
102
|
+
'social_item',
|
|
103
|
+
'subnav',
|
|
104
|
+
'subnav_item',
|
|
105
|
+
'switcher',
|
|
106
|
+
'switcher_item',
|
|
107
|
+
'table',
|
|
108
|
+
'table_item',
|
|
109
|
+
]);
|
|
110
|
+
/**
|
|
111
|
+
* Is `childType` a valid DIRECT child of the layout root? Permissive for the
|
|
112
|
+
* empty type and for unknown / fragment types.
|
|
113
|
+
*/
|
|
114
|
+
export function isAllowedRootChild(childType) {
|
|
115
|
+
if (childType === '') {
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
if (ROOT_ALLOWED.includes(childType)) {
|
|
119
|
+
return true;
|
|
120
|
+
}
|
|
121
|
+
return !KNOWN_NON_SECTION_TYPES.has(childType);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Is `childType` a valid child of `parentType`? Strict parents enforce
|
|
125
|
+
* their allow-list; every other parent is permissive.
|
|
126
|
+
*/
|
|
127
|
+
export function isAllowedChild(parentType, childType) {
|
|
128
|
+
const allowed = allowedChildrenOf(parentType);
|
|
129
|
+
if (allowed === null) {
|
|
130
|
+
return true;
|
|
131
|
+
}
|
|
132
|
+
return allowed.includes(childType);
|
|
133
|
+
}
|
|
134
|
+
/** Is `type` one of the STRICT structural parents (section / row)? */
|
|
135
|
+
export function isStructuralParent(type) {
|
|
136
|
+
return Object.prototype.hasOwnProperty.call(STRICT_PARENTS, type);
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Is `childType` a type the STATIC grammar can positively reason about WITHOUT
|
|
140
|
+
* the live YT element-registry? True for the closed grammar (`section` + every
|
|
141
|
+
* KNOWN-non-section type); false for unknown / 3rd-party / `fragment` types
|
|
142
|
+
* (which stay degrade-permissive). Mirror of the PHP
|
|
143
|
+
* `LayoutHierarchyRules::isStaticallyDecidableChild`.
|
|
144
|
+
*/
|
|
145
|
+
export function isStaticallyDecidableChild(childType) {
|
|
146
|
+
if (childType === '') {
|
|
147
|
+
return false;
|
|
148
|
+
}
|
|
149
|
+
if (ROOT_ALLOWED.includes(childType)) {
|
|
150
|
+
return true;
|
|
151
|
+
}
|
|
152
|
+
return KNOWN_NON_SECTION_TYPES.has(childType);
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=layout-hierarchy-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout-hierarchy-rules.js","sourceRoot":"","sources":["../../../src/tools/elements/layout-hierarchy-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAsB,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AAE1E;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAgD,MAAM,CAAC,MAAM,CAAC;IACrF,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;IAC/B,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;CACjC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAkB;IAChD,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC;QACnE,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC;QACtC,CAAC,CAAC,IAAI,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,uBAAuB,GAAwB,IAAI,GAAG,CAAS;IACjE,oDAAoD;IACpD,KAAK;IACL,QAAQ;IACR,QAAQ;IACR,kDAAkD;IAClD,MAAM;IACN,UAAU;IACV,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,WAAW;IACX,SAAS;IACT,SAAS;IACT,OAAO;IACP,WAAW;IACX,OAAO;IACP,OAAO;IACP,QAAQ;IACR,8EAA8E;IAC9E,WAAW;IACX,gBAAgB;IAChB,QAAQ;IACR,aAAa;IACb,kBAAkB;IAClB,uBAAuB;IACvB,SAAS;IACT,cAAc;IACd,MAAM;IACN,WAAW;IACX,MAAM;IACN,WAAW;IACX,KAAK;IACL,UAAU;IACV,KAAK;IACL,UAAU;IACV,gBAAgB;IAChB,qBAAqB;IACrB,cAAc;IACd,mBAAmB;IACnB,SAAS;IACT,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,QAAQ;IACR,aAAa;IACb,QAAQ;IACR,aAAa;IACb,UAAU;IACV,eAAe;IACf,OAAO;IACP,YAAY;CACf,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAChD,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,CAAC,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACnD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,UAAkB,EAAE,SAAiB;IAChE,MAAM,OAAO,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAC9C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACvC,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC3C,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;AACtE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CAAC,SAAiB;IACxD,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -14,6 +14,35 @@ export declare const ELEMENTS_COMPACT_COLUMNS: readonly TableColumn[];
|
|
|
14
14
|
* `has_binding` from the SAME logic element_list uses — one SSoT.
|
|
15
15
|
*/
|
|
16
16
|
export declare function hasSourceBinding(node: unknown): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* F88 (2026-06-10): the resolved binding for an element, made READABLE.
|
|
19
|
+
*
|
|
20
|
+
* element_get / element_list historically surfaced only `has_binding`
|
|
21
|
+
* (a boolean) — so after binding a leaf (`props.content → field.x`) the
|
|
22
|
+
* agent could see THAT it was bound but not WHAT to. There was no
|
|
23
|
+
* top-level `source` projection, so the binding never appeared in
|
|
24
|
+
* `available_fields` and was unreadable without dumping the whole props
|
|
25
|
+
* tree. `extractBinding` finds the carrier slot (the same precedence
|
|
26
|
+
* BindingSerializer / hasSourceBinding use) and returns the raw binding
|
|
27
|
+
* object plus a compact human/agent-readable summary.
|
|
28
|
+
*/
|
|
29
|
+
export interface ExtractedBinding {
|
|
30
|
+
/** Which slot carried the binding: `source` / `props.source` / `source_extended`. */
|
|
31
|
+
readonly carrier: 'source' | 'props.source' | 'source_extended';
|
|
32
|
+
/** The raw binding object — copy straight back into element_bind_source. */
|
|
33
|
+
readonly source: unknown;
|
|
34
|
+
/** Compact one-line summary: query name + bound leaf fields. */
|
|
35
|
+
readonly binding_summary: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Find the binding carrier on a node and return the raw binding object +
|
|
39
|
+
* a compact summary, or `null` when the node carries no binding. Carrier
|
|
40
|
+
* precedence mirrors `hasSourceBinding` (YT-Pro canonical `node.source`
|
|
41
|
+
* first, then the pre-1.1.13 `props.source` slot, then the YT4
|
|
42
|
+
* `source_extended` cache). A bare non-empty string source (legacy
|
|
43
|
+
* pre-F-13 user data) is surfaced too so it stays readable.
|
|
44
|
+
*/
|
|
45
|
+
export declare function extractBinding(node: Record<string, unknown>): ExtractedBinding | null;
|
|
17
46
|
/**
|
|
18
47
|
* Maps an `/elements` row to the table shape.
|
|
19
48
|
*
|
|
@@ -21,6 +50,9 @@ export declare function hasSourceBinding(node: unknown): boolean;
|
|
|
21
50
|
* `label`, older emit `title` as the human-readable name).
|
|
22
51
|
* - `has_binding` honours an explicit boolean from the REST plugin, else
|
|
23
52
|
* derives from `props.source` presence.
|
|
53
|
+
* - F88: when a binding carrier is present, surface the raw `source`
|
|
54
|
+
* object + a compact `binding_summary` so leaf field-bindings are
|
|
55
|
+
* readable back (and appear in `available_fields`).
|
|
24
56
|
*/
|
|
25
57
|
export declare function mapElementRow(input: Record<string, unknown>): Record<string, unknown>;
|
|
26
58
|
interface ElementChildLike {
|
|
@@ -32,6 +64,9 @@ export declare function buildElementDetail(payload: {
|
|
|
32
64
|
props?: unknown;
|
|
33
65
|
children?: ElementChildLike[];
|
|
34
66
|
label?: string;
|
|
67
|
+
/** F88: top-level carriers so the Binding group reads them too. */
|
|
68
|
+
source?: unknown;
|
|
69
|
+
source_extended?: unknown;
|
|
35
70
|
}): {
|
|
36
71
|
groups: DetailGroup[];
|
|
37
72
|
title?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elements-format.d.ts","sourceRoot":"","sources":["../../../src/tools/format/elements-format.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAOpE,eAAO,MAAM,sBAAsB,EAAE,SAAS,WAAW,EAKxD,CAAC;AAEF,mEAAmE;AACnE,eAAO,MAAM,wBAAwB,EAAE,SAAS,WAAW,EAG1D,CAAC;
|
|
1
|
+
{"version":3,"file":"elements-format.d.ts","sourceRoot":"","sources":["../../../src/tools/format/elements-format.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAOpE,eAAO,MAAM,sBAAsB,EAAE,SAAS,WAAW,EAKxD,CAAC;AAEF,mEAAmE;AACnE,eAAO,MAAM,wBAAwB,EAAE,SAAS,WAAW,EAG1D,CAAC;AA+CF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CA+BvD;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,gBAAgB;IAC7B,qFAAqF;IACrF,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,cAAc,GAAG,iBAAiB,CAAC;IAChE,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,gEAAgE;IAChE,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CACpC;AAgCD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,gBAAgB,GAAG,IAAI,CA+BrF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmDrF;AAID,UAAU,gBAAgB;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB;AAoBD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B,GAAG;IAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAsE5C"}
|