@maxhealth.tech/prefab 0.3.10 → 0.3.12
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/CHANGELOG.md +735 -698
- package/README.md +1 -1
- package/dist/a2ui/catalog.d.ts +22 -1
- package/dist/a2ui/catalog.d.ts.map +1 -1
- package/dist/a2ui/catalog.js +89 -33
- package/dist/a2ui/catalog.js.map +1 -1
- package/dist/a2ui/control.d.ts +20 -0
- package/dist/a2ui/control.d.ts.map +1 -0
- package/dist/a2ui/control.js +107 -0
- package/dist/a2ui/control.js.map +1 -0
- package/dist/a2ui/emit.d.ts.map +1 -1
- package/dist/a2ui/emit.js +113 -9
- package/dist/a2ui/emit.js.map +1 -1
- package/dist/a2ui/expr.d.ts +52 -19
- package/dist/a2ui/expr.d.ts.map +1 -1
- package/dist/a2ui/expr.js +153 -33
- package/dist/a2ui/expr.js.map +1 -1
- package/dist/a2ui/index.d.ts +2 -0
- package/dist/a2ui/index.d.ts.map +1 -1
- package/dist/a2ui/index.js +1 -0
- package/dist/a2ui/index.js.map +1 -1
- package/dist/a2ui/pipes.d.ts +49 -0
- package/dist/a2ui/pipes.d.ts.map +1 -0
- package/dist/a2ui/pipes.js +106 -0
- package/dist/a2ui/pipes.js.map +1 -0
- package/dist/a2ui.min.js +1 -1
- package/dist/auto/form.d.ts.map +1 -1
- package/dist/auto/form.js +6 -1
- package/dist/auto/form.js.map +1 -1
- package/dist/components/form/index.d.ts +7 -3
- package/dist/components/form/index.d.ts.map +1 -1
- package/dist/components/form/index.js +8 -3
- package/dist/components/form/index.js.map +1 -1
- package/dist/core/component.d.ts +11 -1
- package/dist/core/component.d.ts.map +1 -1
- package/dist/core/component.js +4 -1
- package/dist/core/component.js.map +1 -1
- package/dist/core/version.d.ts +1 -1
- package/dist/core/version.js +1 -1
- package/dist/renderer/components/choice.d.ts +10 -0
- package/dist/renderer/components/choice.d.ts.map +1 -0
- package/dist/renderer/components/choice.js +261 -0
- package/dist/renderer/components/choice.js.map +1 -0
- package/dist/renderer/components/form.d.ts +24 -1
- package/dist/renderer/components/form.d.ts.map +1 -1
- package/dist/renderer/components/form.js +36 -239
- package/dist/renderer/components/form.js.map +1 -1
- package/dist/renderer/components/index.d.ts.map +1 -1
- package/dist/renderer/components/index.js +2 -0
- package/dist/renderer/components/index.js.map +1 -1
- package/dist/renderer.auto.min.js +10 -10
- package/dist/renderer.min.js +10 -10
- package/package.json +2 -1
package/dist/a2ui/emit.js
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
* asserted on in tests and cached by hosts.
|
|
18
18
|
*/
|
|
19
19
|
import { createLogger } from '../core/logger.js';
|
|
20
|
-
import { escapePointerToken, toBinding } from './expr.js';
|
|
20
|
+
import { dynamicString, escapePointerToken, toBinding } from './expr.js';
|
|
21
21
|
import { fallbackMapper, isConsumedByParent, mapperFor } from './catalog.js';
|
|
22
22
|
import { A2UI_BASIC_CATALOG, A2UI_ROOT_ID, A2UI_VERSION, } from './types.js';
|
|
23
23
|
const log = createLogger('a2ui');
|
|
@@ -36,17 +36,92 @@ function unwrapAppRoot(view) {
|
|
|
36
36
|
}
|
|
37
37
|
return view;
|
|
38
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Collect every `Define` in the tree.
|
|
41
|
+
*
|
|
42
|
+
* A pre-pass rather than collection during the walk, because prefab resolves a
|
|
43
|
+
* definition by name at render time and imposes no ordering: a `Use` may appear
|
|
44
|
+
* before the `Define` it refers to, and inside a different branch of the tree.
|
|
45
|
+
*/
|
|
46
|
+
function collectDefinitions(node, into) {
|
|
47
|
+
if (node.type === 'Define') {
|
|
48
|
+
const name = typeof node.name === 'string' ? node.name : undefined;
|
|
49
|
+
if (name != null && Array.isArray(node.children))
|
|
50
|
+
into.set(name, node.children);
|
|
51
|
+
}
|
|
52
|
+
if (Array.isArray(node.children))
|
|
53
|
+
for (const child of node.children)
|
|
54
|
+
collectDefinitions(child, into);
|
|
55
|
+
}
|
|
39
56
|
class Emitter {
|
|
40
57
|
warn;
|
|
41
58
|
/** Insertion-ordered; `undefined` marks a reserved slot that was released. */
|
|
42
59
|
components = new Map();
|
|
43
|
-
|
|
60
|
+
// A Map rather than an object literal so a rolled-back subtree's seeded keys
|
|
61
|
+
// can be removed without a dynamic delete.
|
|
62
|
+
dataModel = new Map();
|
|
44
63
|
used = new Set([A2UI_ROOT_ID]);
|
|
45
64
|
diagnostics = [];
|
|
65
|
+
definitions = new Map();
|
|
46
66
|
counter = 0;
|
|
67
|
+
/** Names in force for binding, extended while inlining a template or a definition. */
|
|
68
|
+
scope = {};
|
|
69
|
+
/** Slot content from the nearest enclosing `Use`. */
|
|
70
|
+
slots = {};
|
|
71
|
+
/**
|
|
72
|
+
* Definitions currently being expanded, so a `Use` inside its own `Define`
|
|
73
|
+
* reports a cycle instead of recursing until the stack gives out.
|
|
74
|
+
*/
|
|
75
|
+
expanding = new Set();
|
|
47
76
|
constructor(warn) {
|
|
48
77
|
this.warn = warn;
|
|
49
78
|
}
|
|
79
|
+
bind(value) {
|
|
80
|
+
return toBinding(value, this.scope);
|
|
81
|
+
}
|
|
82
|
+
dyn(value) {
|
|
83
|
+
return dynamicString(value, this.scope);
|
|
84
|
+
}
|
|
85
|
+
inScope(names, fn) {
|
|
86
|
+
const previous = this.scope;
|
|
87
|
+
this.scope = { ...previous, ...names };
|
|
88
|
+
try {
|
|
89
|
+
return fn();
|
|
90
|
+
}
|
|
91
|
+
finally {
|
|
92
|
+
this.scope = previous;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
withSlots(slots, fn) {
|
|
96
|
+
const previous = this.slots;
|
|
97
|
+
this.slots = { ...previous, ...slots };
|
|
98
|
+
try {
|
|
99
|
+
return fn();
|
|
100
|
+
}
|
|
101
|
+
finally {
|
|
102
|
+
this.slots = previous;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
slotContent(name) {
|
|
106
|
+
return this.slots[name];
|
|
107
|
+
}
|
|
108
|
+
definition(name) {
|
|
109
|
+
if (this.expanding.has(name)) {
|
|
110
|
+
this.note('unsupported', 'Use', `definition "${name}" uses itself; A2UI has no recursive template`);
|
|
111
|
+
return undefined;
|
|
112
|
+
}
|
|
113
|
+
return this.definitions.get(name);
|
|
114
|
+
}
|
|
115
|
+
/** Track expansion depth so `definition()` can detect a cycle. */
|
|
116
|
+
expand(name, fn) {
|
|
117
|
+
this.expanding.add(name);
|
|
118
|
+
try {
|
|
119
|
+
return fn();
|
|
120
|
+
}
|
|
121
|
+
finally {
|
|
122
|
+
this.expanding.delete(name);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
50
125
|
note(kind, subject, detail) {
|
|
51
126
|
this.diagnostics.push({ kind, subject, detail });
|
|
52
127
|
if (this.warn)
|
|
@@ -75,11 +150,11 @@ class Emitter {
|
|
|
75
150
|
bindData(key, value) {
|
|
76
151
|
let name = key;
|
|
77
152
|
let n = 0;
|
|
78
|
-
while (
|
|
153
|
+
while (this.dataModel.has(name)) {
|
|
79
154
|
n += 1;
|
|
80
155
|
name = `${key}${n}`;
|
|
81
156
|
}
|
|
82
|
-
this.dataModel
|
|
157
|
+
this.dataModel.set(name, value);
|
|
83
158
|
return `/${escapePointerToken(name)}`;
|
|
84
159
|
}
|
|
85
160
|
child(node) {
|
|
@@ -125,7 +200,11 @@ class Emitter {
|
|
|
125
200
|
if (kind == null)
|
|
126
201
|
return undefined;
|
|
127
202
|
switch (kind) {
|
|
128
|
-
|
|
203
|
+
// `callTool` is the spelling the shipped examples use and the renderer
|
|
204
|
+
// accepts both, so an emitter that knew only one silently downgraded every
|
|
205
|
+
// hand-written tool call into a generic agent event.
|
|
206
|
+
case 'toolCall':
|
|
207
|
+
case 'callTool': {
|
|
129
208
|
const tool = typeof json.tool === 'string' ? json.tool : undefined;
|
|
130
209
|
if (tool == null)
|
|
131
210
|
return undefined;
|
|
@@ -182,6 +261,26 @@ class Emitter {
|
|
|
182
261
|
}
|
|
183
262
|
return Object.keys(context).length > 0 ? context : undefined;
|
|
184
263
|
}
|
|
264
|
+
/**
|
|
265
|
+
* Undo everything emitted since a watermark.
|
|
266
|
+
*
|
|
267
|
+
* A mapper reads its children before deciding whether it can map at all — a
|
|
268
|
+
* `Dialog` emits its body, then finds it cannot build a trigger. Without this,
|
|
269
|
+
* those children stay in the adjacency list with nothing pointing at them,
|
|
270
|
+
* which is a payload the renderer rejects for unreachability. Dropping a node
|
|
271
|
+
* has to drop its whole subtree.
|
|
272
|
+
*/
|
|
273
|
+
rollback(components, dataKeys) {
|
|
274
|
+
const keys = [...this.components.keys()];
|
|
275
|
+
for (let i = components; i < keys.length; i++) {
|
|
276
|
+
this.components.delete(keys[i]);
|
|
277
|
+
if (keys[i] !== A2UI_ROOT_ID)
|
|
278
|
+
this.used.delete(keys[i]);
|
|
279
|
+
}
|
|
280
|
+
const seeded = [...this.dataModel.keys()];
|
|
281
|
+
for (let i = dataKeys; i < seeded.length; i++)
|
|
282
|
+
this.dataModel.delete(seeded[i]);
|
|
283
|
+
}
|
|
185
284
|
/** Emit one subtree. Returns the allocated id, or `undefined` if it was dropped. */
|
|
186
285
|
emit(node, isRoot) {
|
|
187
286
|
if (typeof node.type !== 'string')
|
|
@@ -190,6 +289,8 @@ class Emitter {
|
|
|
190
289
|
this.note('unsupported', node.type, 'only meaningful inside its parent; emitted standalone it has no meaning');
|
|
191
290
|
return undefined;
|
|
192
291
|
}
|
|
292
|
+
const componentMark = this.components.size;
|
|
293
|
+
const dataMark = this.dataModel.size;
|
|
193
294
|
const id = isRoot ? A2UI_ROOT_ID : this.allocate(node);
|
|
194
295
|
// Reserve the slot before the mapper runs, so children emitted during
|
|
195
296
|
// mapping cannot claim this id.
|
|
@@ -197,9 +298,7 @@ class Emitter {
|
|
|
197
298
|
const mapper = mapperFor(node.type) ?? fallbackMapper;
|
|
198
299
|
const props = mapper(node, this);
|
|
199
300
|
if (props == null) {
|
|
200
|
-
this.
|
|
201
|
-
if (!isRoot)
|
|
202
|
-
this.used.delete(id);
|
|
301
|
+
this.rollback(componentMark, dataMark);
|
|
203
302
|
return undefined;
|
|
204
303
|
}
|
|
205
304
|
this.components.set(id, { id, ...props });
|
|
@@ -207,6 +306,11 @@ class Emitter {
|
|
|
207
306
|
}
|
|
208
307
|
finish(wire, options) {
|
|
209
308
|
const surfaceId = options.surfaceId ?? 'prefab';
|
|
309
|
+
// Envelope-level defs first, then any `Define` in the tree, which wins on a
|
|
310
|
+
// name clash for the same reason it does in the renderer: it is nearer.
|
|
311
|
+
for (const [name, body] of Object.entries(wire.defs ?? {}))
|
|
312
|
+
this.definitions.set(name, [body]);
|
|
313
|
+
collectDefinitions(wire.view, this.definitions);
|
|
210
314
|
const rootId = this.emit(unwrapAppRoot(wire.view), true);
|
|
211
315
|
if (rootId == null) {
|
|
212
316
|
this.note('unsupported', 'view', 'nothing in the view could be expressed in A2UI; the surface is empty');
|
|
@@ -218,7 +322,7 @@ class Emitter {
|
|
|
218
322
|
// prefab state and any literals seeded during mapping share one data model.
|
|
219
323
|
// State wins on a collision, since seeded keys are generated and state keys
|
|
220
324
|
// are author-chosen.
|
|
221
|
-
const dataModel = { ...this.dataModel, ...(wire.state ?? {}) };
|
|
325
|
+
const dataModel = { ...Object.fromEntries(this.dataModel), ...(wire.state ?? {}) };
|
|
222
326
|
const hasData = Object.keys(dataModel).length > 0;
|
|
223
327
|
const messages = [];
|
|
224
328
|
const catalogId = options.catalogId ?? A2UI_BASIC_CATALOG;
|
package/dist/a2ui/emit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit.js","sourceRoot":"","sources":["../../src/a2ui/emit.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"emit.js","sourceRoot":"","sources":["../../src/a2ui/emit.ts"],"names":[],"mappings":"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"}
|
package/dist/a2ui/expr.d.ts
CHANGED
|
@@ -1,19 +1,38 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `{{ }}` template → A2UI data binding.
|
|
3
3
|
*
|
|
4
|
-
* `$prefab` interpolates arbitrary expressions client-side
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
4
|
+
* `$prefab` interpolates arbitrary expressions client-side. A2UI binds values
|
|
5
|
+
* through JSON Pointers and, for text that mixes literals with values, through
|
|
6
|
+
* the `formatString` catalog function. Between them those cover more than a
|
|
7
|
+
* plain-path conversion would suggest:
|
|
8
|
+
*
|
|
9
|
+
* - `{{ user.name }}` → `{ path: '/user/name' }`
|
|
10
|
+
* - `Hi {{ name }}!` → `{ call: 'formatString', args: { value: 'Hi ${/name}!' } }`
|
|
11
|
+
* - `{{ p | currency:'EUR' }}` → `{ call: 'formatCurrency', args: { … } }`
|
|
12
|
+
* - `{{ count + 1 }}` → nothing; A2UI has no expression language
|
|
13
|
+
*
|
|
14
|
+
* What does not survive is arithmetic, conditionals, and the pipes that
|
|
15
|
+
* transform data rather than format it (see `./pipes.ts`). Those are reported as
|
|
16
|
+
* `expression` diagnostics rather than emitted as a binding that would render an
|
|
17
|
+
* empty string in someone's renderer.
|
|
18
|
+
*
|
|
19
|
+
* ## Scopes
|
|
20
|
+
*
|
|
21
|
+
* A binding is resolved against a {@link BindScope}, which is how names local to
|
|
22
|
+
* a region become pointers. Inside a list template A2UI resolves relative paths
|
|
23
|
+
* against the current item, so prefab's `$item` maps to the empty prefix; inside
|
|
24
|
+
* an inlined definition, a `Use`'s overrides map to wherever the emitter seeded
|
|
25
|
+
* them. Without this, a name that means something local would silently bind to
|
|
26
|
+
* the root of the data model and read whatever happened to be there.
|
|
27
|
+
*/
|
|
28
|
+
import type { A2uiDataBinding, A2uiDynamicString, A2uiFunctionCall } from './types.js';
|
|
29
|
+
/**
|
|
30
|
+
* Names local to a region, mapped to the pointer they resolve to.
|
|
31
|
+
*
|
|
32
|
+
* An empty-string value means "relative to the current template item", which is
|
|
33
|
+
* how A2UI addresses fields inside a list template.
|
|
15
34
|
*/
|
|
16
|
-
|
|
35
|
+
export type BindScope = Record<string, string>;
|
|
17
36
|
/**
|
|
18
37
|
* Escape one JSON Pointer reference token (RFC 6901 §3).
|
|
19
38
|
*
|
|
@@ -35,6 +54,21 @@ export type BindingResult =
|
|
|
35
54
|
kind: 'binding';
|
|
36
55
|
value: A2uiDataBinding;
|
|
37
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* A value produced by a catalog function: interpolated text, or a pipe that
|
|
59
|
+
* maps onto one of A2UI's formatters. `note` carries anything the mapping
|
|
60
|
+
* cost, for the caller to report.
|
|
61
|
+
*/
|
|
62
|
+
| {
|
|
63
|
+
kind: 'format';
|
|
64
|
+
value: A2uiFunctionCall;
|
|
65
|
+
note?: string;
|
|
66
|
+
}
|
|
67
|
+
/** The loop index, which A2UI exposes as a system function. */
|
|
68
|
+
| {
|
|
69
|
+
kind: 'index';
|
|
70
|
+
value: A2uiFunctionCall;
|
|
71
|
+
}
|
|
38
72
|
/** A template too rich for A2UI. `expression` is the source, for diagnostics. */
|
|
39
73
|
| {
|
|
40
74
|
kind: 'unbindable';
|
|
@@ -43,16 +77,15 @@ export type BindingResult =
|
|
|
43
77
|
/**
|
|
44
78
|
* Convert a prefab string value into an A2UI dynamic value.
|
|
45
79
|
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
* has no way to name.
|
|
80
|
+
* A whole-string template over a plain path becomes a binding, one over a
|
|
81
|
+
* formatting pipe becomes a catalog-function call, mixed text becomes a
|
|
82
|
+
* `formatString` call, a string with no template passes through, and anything
|
|
83
|
+
* else is unbindable.
|
|
51
84
|
*/
|
|
52
|
-
export declare function toBinding(value: string): BindingResult;
|
|
85
|
+
export declare function toBinding(value: string, scope?: BindScope): BindingResult;
|
|
53
86
|
/**
|
|
54
87
|
* Resolve a value to an `A2uiDynamicString`, or `undefined` when it cannot be
|
|
55
88
|
* expressed. Callers pair this with a diagnostic when it returns `undefined`.
|
|
56
89
|
*/
|
|
57
|
-
export declare function dynamicString(value: string | undefined): A2uiDynamicString | undefined;
|
|
90
|
+
export declare function dynamicString(value: string | undefined, scope?: BindScope): A2uiDynamicString | undefined;
|
|
58
91
|
//# sourceMappingURL=expr.d.ts.map
|
package/dist/a2ui/expr.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expr.d.ts","sourceRoot":"","sources":["../../src/a2ui/expr.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"expr.d.ts","sourceRoot":"","sources":["../../src/a2ui/expr.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAoB,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAgBxG;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAK9C;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,6DAA6D;AAC7D,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAExD;AA0CD,6EAA6E;AAC7E,MAAM,MAAM,aAAa;AACvB,wCAAwC;AACtC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AACpC,8DAA8D;GAC5D;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,eAAe,CAAA;CAAE;AAC7C;;;;GAIG;GACD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,gBAAgB,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE;AAC5D,+DAA+D;GAC7D;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,gBAAgB,CAAA;CAAE;AAC5C,iFAAiF;GAC/E;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAA;AA8D9C;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,SAAc,GAAG,aAAa,CAgC7E;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,GAAE,SAAc,GAAG,iBAAiB,GAAG,SAAS,CAU7G"}
|
package/dist/a2ui/expr.js
CHANGED
|
@@ -1,27 +1,44 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `{{ }}` template → A2UI data binding.
|
|
3
3
|
*
|
|
4
|
-
* `$prefab` interpolates arbitrary expressions client-side
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* becomes `{ path: '/user/name' }`, and anything with an operator, pipe or
|
|
9
|
-
* conditional does not survive.
|
|
4
|
+
* `$prefab` interpolates arbitrary expressions client-side. A2UI binds values
|
|
5
|
+
* through JSON Pointers and, for text that mixes literals with values, through
|
|
6
|
+
* the `formatString` catalog function. Between them those cover more than a
|
|
7
|
+
* plain-path conversion would suggest:
|
|
10
8
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
9
|
+
* - `{{ user.name }}` → `{ path: '/user/name' }`
|
|
10
|
+
* - `Hi {{ name }}!` → `{ call: 'formatString', args: { value: 'Hi ${/name}!' } }`
|
|
11
|
+
* - `{{ p | currency:'EUR' }}` → `{ call: 'formatCurrency', args: { … } }`
|
|
12
|
+
* - `{{ count + 1 }}` → nothing; A2UI has no expression language
|
|
13
|
+
*
|
|
14
|
+
* What does not survive is arithmetic, conditionals, and the pipes that
|
|
15
|
+
* transform data rather than format it (see `./pipes.ts`). Those are reported as
|
|
16
|
+
* `expression` diagnostics rather than emitted as a binding that would render an
|
|
17
|
+
* empty string in someone's renderer.
|
|
18
|
+
*
|
|
19
|
+
* ## Scopes
|
|
20
|
+
*
|
|
21
|
+
* A binding is resolved against a {@link BindScope}, which is how names local to
|
|
22
|
+
* a region become pointers. Inside a list template A2UI resolves relative paths
|
|
23
|
+
* against the current item, so prefab's `$item` maps to the empty prefix; inside
|
|
24
|
+
* an inlined definition, a `Use`'s overrides map to wherever the emitter seeded
|
|
25
|
+
* them. Without this, a name that means something local would silently bind to
|
|
26
|
+
* the root of the data model and read whatever happened to be there.
|
|
15
27
|
*/
|
|
28
|
+
import { parsePipe, pipeCall } from './pipes.js';
|
|
16
29
|
/** Matches a string that is exactly one `{{ … }}` template and nothing else. */
|
|
17
30
|
const SOLE_TEMPLATE = /^\s*\{\{\s*(.+?)\s*\}\}\s*$/s;
|
|
31
|
+
/** Matches every `{{ … }}` occurrence, for interpolating mixed text. */
|
|
32
|
+
const EVERY_TEMPLATE = /\{\{\s*(.+?)\s*\}\}/g;
|
|
18
33
|
/**
|
|
19
|
-
* A plain member path: `user.name`, `items.0.label`, `count`.
|
|
34
|
+
* A plain member path: `user.name`, `items.0.label`, `count`, `$item.title`.
|
|
20
35
|
*
|
|
21
36
|
* Deliberately narrow. Anything outside this shape (operators, pipes, calls,
|
|
22
37
|
* ternaries, string literals) has no A2UI equivalent.
|
|
23
38
|
*/
|
|
24
|
-
const PLAIN_PATH =
|
|
39
|
+
const PLAIN_PATH = /^\$?[A-Za-z_][\w$]*(?:\.(?:[A-Za-z_$][\w$]*|\d+))*$/;
|
|
40
|
+
/** prefab's loop index. A2UI exposes the same thing as a system function. */
|
|
41
|
+
const LOOP_INDEX = '$index';
|
|
25
42
|
/**
|
|
26
43
|
* Escape one JSON Pointer reference token (RFC 6901 §3).
|
|
27
44
|
*
|
|
@@ -43,39 +60,142 @@ export function toJsonPointer(segments) {
|
|
|
43
60
|
function stripStatePrefix(path) {
|
|
44
61
|
return path.startsWith('state.') ? path.slice('state.'.length) : path;
|
|
45
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Resolve a member path to a JSON Pointer under `scope`.
|
|
65
|
+
*
|
|
66
|
+
* A leading segment named in the scope is replaced by its prefix; everything
|
|
67
|
+
* else resolves from the data-model root.
|
|
68
|
+
*/
|
|
69
|
+
function pathToPointer(expr, scope) {
|
|
70
|
+
if (!PLAIN_PATH.test(expr))
|
|
71
|
+
return undefined;
|
|
72
|
+
const segments = stripStatePrefix(expr).split('.');
|
|
73
|
+
const head = segments[0];
|
|
74
|
+
// `hasOwn` rather than a truthiness check: '' is a meaningful prefix, meaning
|
|
75
|
+
// "relative to the current template item".
|
|
76
|
+
const prefix = Object.hasOwn(scope, head) ? scope[head] : undefined;
|
|
77
|
+
if (prefix === undefined) {
|
|
78
|
+
// A `$`-prefixed name is a runtime binding prefab supplies ($event, $error,
|
|
79
|
+
// $result). Outside a scope that defines it, there is nothing to point at.
|
|
80
|
+
if (head.startsWith('$'))
|
|
81
|
+
return undefined;
|
|
82
|
+
return toJsonPointer(segments);
|
|
83
|
+
}
|
|
84
|
+
const rest = segments.slice(1);
|
|
85
|
+
if (prefix === '') {
|
|
86
|
+
// Relative to the current template item. `{{ $item }}` alone has no field to
|
|
87
|
+
// address, so it cannot become a pointer.
|
|
88
|
+
return rest.length === 0 ? undefined : rest.map(escapePointerToken).join('/');
|
|
89
|
+
}
|
|
90
|
+
return rest.length === 0 ? prefix : `${prefix}/${rest.map(escapePointerToken).join('/')}`;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Escape a literal segment for a `formatString` template.
|
|
94
|
+
*
|
|
95
|
+
* `${` is the interpolation opener, so a literal one has to be escaped or the
|
|
96
|
+
* renderer reads the surrounding text as an expression.
|
|
97
|
+
*/
|
|
98
|
+
function escapeFormatLiteral(text) {
|
|
99
|
+
return text.replace(/\$\{/g, '\\${');
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Convert mixed literal and template text into a `formatString` call.
|
|
103
|
+
*
|
|
104
|
+
* @returns `undefined` when any embedded expression is richer than a path, in
|
|
105
|
+
* which case the whole string is unbindable rather than partly interpolated.
|
|
106
|
+
*/
|
|
107
|
+
function toFormatString(value, scope) {
|
|
108
|
+
let failed;
|
|
109
|
+
let interpolated = '';
|
|
110
|
+
let cursor = 0;
|
|
111
|
+
for (const match of value.matchAll(EVERY_TEMPLATE)) {
|
|
112
|
+
const expr = match[1].trim();
|
|
113
|
+
const pointer = pathToPointer(expr, scope);
|
|
114
|
+
if (pointer == null) {
|
|
115
|
+
failed = expr;
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
118
|
+
interpolated += escapeFormatLiteral(value.slice(cursor, match.index));
|
|
119
|
+
interpolated += `\${${pointer}}`;
|
|
120
|
+
cursor = match.index + match[0].length;
|
|
121
|
+
}
|
|
122
|
+
if (failed != null)
|
|
123
|
+
return undefined;
|
|
124
|
+
interpolated += escapeFormatLiteral(value.slice(cursor));
|
|
125
|
+
return { call: 'formatString', args: { value: interpolated } };
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Resolve a piped expression to a catalog-function call.
|
|
129
|
+
*
|
|
130
|
+
* The base must itself be a plain path or a literal, since A2UI function
|
|
131
|
+
* arguments take a value rather than an expression to evaluate.
|
|
132
|
+
*/
|
|
133
|
+
function toPipeCall(expr, scope) {
|
|
134
|
+
const pipe = parsePipe(expr);
|
|
135
|
+
if (pipe == null)
|
|
136
|
+
return undefined;
|
|
137
|
+
const pointer = pathToPointer(pipe.base, scope);
|
|
138
|
+
const value = pointer != null
|
|
139
|
+
? { path: pointer }
|
|
140
|
+
: /^-?\d+(\.\d+)?$/.test(pipe.base) ? Number(pipe.base) : undefined;
|
|
141
|
+
if (value === undefined)
|
|
142
|
+
return undefined;
|
|
143
|
+
const mapped = pipeCall(pipe, value);
|
|
144
|
+
if (mapped == null)
|
|
145
|
+
return undefined;
|
|
146
|
+
return { kind: 'format', value: mapped.call, ...(mapped.note != null && { note: mapped.note }) };
|
|
147
|
+
}
|
|
46
148
|
/**
|
|
47
149
|
* Convert a prefab string value into an A2UI dynamic value.
|
|
48
150
|
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
* has no way to name.
|
|
151
|
+
* A whole-string template over a plain path becomes a binding, one over a
|
|
152
|
+
* formatting pipe becomes a catalog-function call, mixed text becomes a
|
|
153
|
+
* `formatString` call, a string with no template passes through, and anything
|
|
154
|
+
* else is unbindable.
|
|
54
155
|
*/
|
|
55
|
-
export function toBinding(value) {
|
|
156
|
+
export function toBinding(value, scope = {}) {
|
|
56
157
|
const sole = SOLE_TEMPLATE.exec(value);
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
158
|
+
// The capture is lazy but still spans `}} … {{`, so `{{ a }} of {{ b }}`
|
|
159
|
+
// matches as one template whose body is `a }} of {{ b`. Rejecting a capture
|
|
160
|
+
// that contains delimiters sends those strings down the interpolation path,
|
|
161
|
+
// which is where they belong.
|
|
162
|
+
const isSole = sole != null && !sole[1].includes('{{') && !sole[1].includes('}}');
|
|
163
|
+
if (isSole) {
|
|
164
|
+
const expr = sole[1].trim();
|
|
165
|
+
if (expr === LOOP_INDEX && LOOP_INDEX in scope) {
|
|
166
|
+
return { kind: 'index', value: { call: '@index' } };
|
|
167
|
+
}
|
|
168
|
+
const pointer = pathToPointer(expr, scope);
|
|
169
|
+
if (pointer != null)
|
|
170
|
+
return { kind: 'binding', value: { path: pointer } };
|
|
171
|
+
// A pipe is not part of A2UI's expression language, but the common
|
|
172
|
+
// formatting ones exist in its catalog as functions.
|
|
173
|
+
const piped = toPipeCall(expr, scope);
|
|
174
|
+
if (piped != null)
|
|
175
|
+
return piped;
|
|
176
|
+
return { kind: 'unbindable', expression: expr };
|
|
61
177
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
178
|
+
if (!value.includes('{{'))
|
|
179
|
+
return { kind: 'literal', value };
|
|
180
|
+
const format = toFormatString(value, scope);
|
|
181
|
+
if (format != null)
|
|
182
|
+
return { kind: 'format', value: format };
|
|
183
|
+
return { kind: 'unbindable', expression: value };
|
|
66
184
|
}
|
|
67
185
|
/**
|
|
68
186
|
* Resolve a value to an `A2uiDynamicString`, or `undefined` when it cannot be
|
|
69
187
|
* expressed. Callers pair this with a diagnostic when it returns `undefined`.
|
|
70
188
|
*/
|
|
71
|
-
export function dynamicString(value) {
|
|
189
|
+
export function dynamicString(value, scope = {}) {
|
|
72
190
|
if (value == null)
|
|
73
191
|
return undefined;
|
|
74
|
-
const r = toBinding(value);
|
|
75
|
-
|
|
76
|
-
return r.value;
|
|
77
|
-
|
|
78
|
-
return r.value;
|
|
79
|
-
|
|
192
|
+
const r = toBinding(value, scope);
|
|
193
|
+
switch (r.kind) {
|
|
194
|
+
case 'literal': return r.value;
|
|
195
|
+
case 'binding': return r.value;
|
|
196
|
+
case 'format': return r.value;
|
|
197
|
+
case 'index': return r.value;
|
|
198
|
+
default: return undefined;
|
|
199
|
+
}
|
|
80
200
|
}
|
|
81
201
|
//# sourceMappingURL=expr.js.map
|
package/dist/a2ui/expr.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expr.js","sourceRoot":"","sources":["../../src/a2ui/expr.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"expr.js","sourceRoot":"","sources":["../../src/a2ui/expr.ts"],"names":[],"mappings":"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"}
|
package/dist/a2ui/index.d.ts
CHANGED
|
@@ -19,6 +19,8 @@ export { emitA2UI } from './emit.js';
|
|
|
19
19
|
export type { A2uiEmitOptions, A2uiEmitResult } from './emit.js';
|
|
20
20
|
export { mappedTypes } from './catalog.js';
|
|
21
21
|
export { a2uiIconName, A2UI_ICONS } from './icons.js';
|
|
22
|
+
export { mappedPipes, parsePipe } from './pipes.js';
|
|
23
|
+
export type { ParsedPipe, PipeMapping } from './pipes.js';
|
|
22
24
|
export type { A2uiProps, EmitContext, Mapper } from './catalog.js';
|
|
23
25
|
export { toBinding, toJsonPointer, escapePointerToken, dynamicString } from './expr.js';
|
|
24
26
|
export type { BindingResult } from './expr.js';
|
package/dist/a2ui/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/a2ui/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAEhE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACrD,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAElE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACvF,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAE9C,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,YAAY,GACb,MAAM,YAAY,CAAA;AACnB,YAAY,EACV,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/a2ui/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAEhE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACnD,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACzD,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAElE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACvF,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAE9C,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,YAAY,GACb,MAAM,YAAY,CAAA;AACnB,YAAY,EACV,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,YAAY,CAAA"}
|
package/dist/a2ui/index.js
CHANGED
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
export { emitA2UI } from './emit.js';
|
|
19
19
|
export { mappedTypes } from './catalog.js';
|
|
20
20
|
export { a2uiIconName, A2UI_ICONS } from './icons.js';
|
|
21
|
+
export { mappedPipes, parsePipe } from './pipes.js';
|
|
21
22
|
export { toBinding, toJsonPointer, escapePointerToken, dynamicString } from './expr.js';
|
|
22
23
|
export { A2UI_VERSION, A2UI_BASIC_CATALOG, A2UI_MIME, A2UI_SCHEME, A2UI_ROOT_ID, } from './types.js';
|
|
23
24
|
//# sourceMappingURL=index.js.map
|
package/dist/a2ui/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/a2ui/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAGpC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/a2ui/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAGpC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAInD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAGvF,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,YAAY,GACb,MAAM,YAAY,CAAA"}
|