aontu 0.57.0 → 0.58.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 +2 -2
- package/dist/agentsmd.js +1 -1
- package/dist/alias.d.ts +3 -0
- package/dist/alias.js +59 -0
- package/dist/alias.js.map +1 -0
- package/dist/aontu.d.ts +4 -2
- package/dist/aontu.js +11 -3
- package/dist/aontu.js.map +1 -1
- package/dist/cli.d.ts +3 -1
- package/dist/cli.js +475 -3
- package/dist/cli.js.map +1 -1
- package/dist/ctx.d.ts +2 -0
- package/dist/ctx.js +1 -0
- package/dist/ctx.js.map +1 -1
- package/dist/format.js +8 -2
- package/dist/format.js.map +1 -1
- package/dist/hints.js +40 -9
- package/dist/hints.js.map +1 -1
- package/dist/lang.js +354 -57
- package/dist/lang.js.map +1 -1
- package/dist/lower.d.ts +20 -0
- package/dist/lower.js +575 -0
- package/dist/lower.js.map +1 -0
- package/dist/lsp.d.ts +1 -1
- package/dist/lsp.js +1 -1
- package/dist/lsp.js.map +1 -1
- package/dist/mcp-server.js +1 -1
- package/dist/mcp.d.ts +1 -0
- package/dist/mcp.js +40 -3
- package/dist/mcp.js.map +1 -1
- package/dist/render.d.ts +53 -0
- package/dist/render.js +542 -0
- package/dist/render.js.map +1 -0
- package/dist/sigdecl.js +1 -1
- package/dist/sigdecl.js.map +1 -1
- package/dist/std.d.ts +2 -0
- package/dist/std.js +498 -2
- package/dist/std.js.map +1 -1
- package/dist/template.d.ts +5 -0
- package/dist/template.js +257 -0
- package/dist/template.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/unify.js +43 -0
- package/dist/unify.js.map +1 -1
- package/dist/val/AggFuncVal.d.ts +1 -1
- package/dist/val/AggFuncVal.js +10 -21
- package/dist/val/AggFuncVal.js.map +1 -1
- package/dist/val/BagVal.js +1 -1
- package/dist/val/BagVal.js.map +1 -1
- package/dist/val/ConstraintVal.js +1 -1
- package/dist/val/EachFuncVal.d.ts +1 -1
- package/dist/val/EachFuncVal.js +8 -13
- package/dist/val/EachFuncVal.js.map +1 -1
- package/dist/val/EmitFuncVal.d.ts +23 -4
- package/dist/val/EmitFuncVal.js +298 -28
- package/dist/val/EmitFuncVal.js.map +1 -1
- package/dist/val/FilterFuncVal.js +8 -4
- package/dist/val/FilterFuncVal.js.map +1 -1
- package/dist/val/FormFuncVal.d.ts +14 -0
- package/dist/val/FormFuncVal.js +55 -0
- package/dist/val/FormFuncVal.js.map +1 -0
- package/dist/val/MapVal.d.ts +2 -1
- package/dist/val/MapVal.js +2 -1
- package/dist/val/MapVal.js.map +1 -1
- package/dist/val/PackFuncVal.d.ts +1 -1
- package/dist/val/PackFuncVal.js +22 -18
- package/dist/val/PackFuncVal.js.map +1 -1
- package/dist/val/PlaceVal.js +2 -1
- package/dist/val/PlaceVal.js.map +1 -1
- package/dist/val/RefVal.d.ts +3 -0
- package/dist/val/RefVal.js +156 -17
- package/dist/val/RefVal.js.map +1 -1
- package/dist/val/Val.d.ts +7 -1
- package/dist/val/Val.js +12 -1
- package/dist/val/Val.js.map +1 -1
- package/dist/val/members.d.ts +9 -0
- package/dist/val/members.js +52 -0
- package/dist/val/members.js.map +1 -0
- package/grammar/aontu.abnf +1 -1
- package/grammar/aontu.gbnf +1 -1
- package/grammar/aontu.lark +1 -1
- package/grammar/aontu.tmLanguage.json +1 -1
- package/package.json +1 -1
- package/skill/SKILL.md +4 -4
- package/skill/error-codes.md +1 -1
- package/skill/examples.md +1 -1
- package/skill/grammar-card.md +1 -1
- package/src/agentsmd.ts +1 -1
- package/src/alias.ts +112 -0
- package/src/aontu.ts +19 -2
- package/src/cli.ts +517 -3
- package/src/ctx.ts +13 -0
- package/src/format.ts +12 -2
- package/src/hints.ts +47 -9
- package/src/lang.ts +406 -62
- package/src/lower.ts +636 -0
- package/src/lsp.ts +1 -1
- package/src/mcp-server.ts +1 -1
- package/src/mcp.ts +43 -4
- package/src/render.ts +727 -0
- package/src/sigdecl.ts +1 -1
- package/src/std.ts +506 -1
- package/src/template.ts +291 -0
- package/src/unify.ts +47 -0
- package/src/val/AggFuncVal.ts +10 -21
- package/src/val/BagVal.ts +1 -1
- package/src/val/ConstraintVal.ts +1 -1
- package/src/val/EachFuncVal.ts +8 -16
- package/src/val/EmitFuncVal.ts +376 -39
- package/src/val/FilterFuncVal.ts +11 -4
- package/src/val/FormFuncVal.ts +119 -0
- package/src/val/MapVal.ts +3 -2
- package/src/val/PackFuncVal.ts +23 -19
- package/src/val/PlaceVal.ts +2 -1
- package/src/val/RefVal.ts +167 -18
- package/src/val/Val.ts +42 -1
- package/src/val/members.ts +86 -0
package/dist/val/EmitFuncVal.js
CHANGED
|
@@ -4,12 +4,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.EmitFuncVal = void 0;
|
|
5
5
|
const unify_1 = require("../unify");
|
|
6
6
|
const err_1 = require("../err");
|
|
7
|
+
const escape_1 = require("../escape");
|
|
8
|
+
const keyorder_1 = require("../keyorder");
|
|
7
9
|
const top_1 = require("./top");
|
|
8
10
|
const ListVal_1 = require("./ListVal");
|
|
11
|
+
const StringVal_1 = require("./StringVal");
|
|
9
12
|
const FuncBaseVal_1 = require("./FuncBaseVal");
|
|
10
13
|
const Val_1 = require("./Val");
|
|
11
14
|
const PlaceVal_1 = require("./PlaceVal");
|
|
12
|
-
const
|
|
15
|
+
const PlusOpVal_1 = require("./PlusOpVal");
|
|
16
|
+
const members_1 = require("./members");
|
|
17
|
+
function isRefusal(x) {
|
|
18
|
+
return 'string' === typeof x.code;
|
|
19
|
+
}
|
|
13
20
|
// Read the table. A map is one template; a list is many. The shape is
|
|
14
21
|
// checked here rather than at the call, because a table is ordinary
|
|
15
22
|
// data and may be computed.
|
|
@@ -20,7 +27,7 @@ function tableTemplates(table) {
|
|
|
20
27
|
// relative references resolve against wherever it sits and miss --
|
|
21
28
|
// so the position that holds one unevaluated is the one position the
|
|
22
29
|
// language already never drives: a call's template argument.
|
|
23
|
-
// `%wire
|
|
30
|
+
// `%wire = emit(_, [ … ])` is that position with the selection left
|
|
24
31
|
// open, and it reads as what it is, an apply-templates waiting for
|
|
25
32
|
// its nodes: `emit(.listen, %wire)` passes them, `.listen & %wire`
|
|
26
33
|
// fills the hole, and both are the same dispatch.
|
|
@@ -28,39 +35,173 @@ function tableTemplates(table) {
|
|
|
28
35
|
return tableTemplates(t.peg[1]);
|
|
29
36
|
}
|
|
30
37
|
if (true === t?.isMap) {
|
|
31
|
-
const one = oneTemplate(t);
|
|
32
|
-
return
|
|
38
|
+
const one = oneTemplate(t, 0);
|
|
39
|
+
return isRefusal(one) ? one : [one];
|
|
33
40
|
}
|
|
34
41
|
if (true === t?.isList) {
|
|
35
42
|
const out = [];
|
|
36
43
|
for (const el of t.peg) {
|
|
37
44
|
const e = el;
|
|
38
45
|
if (true !== e?.isMap) {
|
|
39
|
-
return 'emit_template';
|
|
46
|
+
return { code: 'emit_template' };
|
|
40
47
|
}
|
|
41
|
-
const one = oneTemplate(e);
|
|
42
|
-
if (
|
|
48
|
+
const one = oneTemplate(e, out.length);
|
|
49
|
+
if (isRefusal(one)) {
|
|
43
50
|
return one;
|
|
44
51
|
}
|
|
45
52
|
out.push(one);
|
|
46
53
|
}
|
|
47
54
|
return out;
|
|
48
55
|
}
|
|
49
|
-
return 'emit_table';
|
|
56
|
+
return { code: 'emit_table' };
|
|
50
57
|
}
|
|
51
|
-
|
|
58
|
+
// One rule. Both keys are required: a template with no pattern would
|
|
59
|
+
// match everything by accident, and one with no body would emit
|
|
60
|
+
// nothing while claiming a node. The two optional keys -- a `replace`
|
|
61
|
+
// map and an `esc` naming the convention its values are escaped by,
|
|
62
|
+
// `none` the one opt-out -- are the template's shape too, and D3's two
|
|
63
|
+
// static checks run here, on the template alone, before any node.
|
|
64
|
+
function oneTemplate(m, idx) {
|
|
52
65
|
const match = m.peg.match;
|
|
53
66
|
const body = m.peg.body;
|
|
54
|
-
// Both keys are required: a template with no pattern would match
|
|
55
|
-
// everything by accident, and one with no body would emit nothing
|
|
56
|
-
// while claiming a node.
|
|
57
67
|
if (null == match || null == body) {
|
|
58
|
-
return 'emit_template';
|
|
68
|
+
return { code: 'emit_template' };
|
|
59
69
|
}
|
|
60
70
|
if (true !== body.isList) {
|
|
61
|
-
return 'emit_body';
|
|
71
|
+
return { code: 'emit_body' };
|
|
72
|
+
}
|
|
73
|
+
const replace = m.peg.replace;
|
|
74
|
+
if (null != replace && true !== replace.isMap) {
|
|
75
|
+
return { code: 'emit_template' };
|
|
76
|
+
}
|
|
77
|
+
const escv = m.peg.esc;
|
|
78
|
+
let esc = '';
|
|
79
|
+
if (null != escv) {
|
|
80
|
+
const name = textOf(escv);
|
|
81
|
+
if (undefined === name || ('none' !== name && !(0, escape_1.isEscVariant)(name))) {
|
|
82
|
+
return { code: 'esc_variant' };
|
|
83
|
+
}
|
|
84
|
+
esc = name;
|
|
62
85
|
}
|
|
63
|
-
|
|
86
|
+
const lits = literalSpots(body.peg);
|
|
87
|
+
if (null != replace) {
|
|
88
|
+
const bad = checkReplace(Object.keys(replace.peg), lits);
|
|
89
|
+
if (undefined !== bad) {
|
|
90
|
+
return bad;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return { match, body, replace, esc, lits, idx };
|
|
94
|
+
}
|
|
95
|
+
// The string a value carries, or undefined when it is not a string.
|
|
96
|
+
function textOf(v) {
|
|
97
|
+
return true === v?.isScalar && 'string' === typeof v.peg ? v.peg : undefined;
|
|
98
|
+
}
|
|
99
|
+
// The literal strings of a body -- a string element, and the strings
|
|
100
|
+
// written directly in a map element's `of` list or `text` -- which are
|
|
101
|
+
// the text the template wrote. A string an expression or a nested
|
|
102
|
+
// dispatch computes is not one: D3's third rule (a spliced result is
|
|
103
|
+
// finished) and its second (a substituted value is never re-scanned)
|
|
104
|
+
// both follow from substituting at these spots and nowhere else.
|
|
105
|
+
function literalSpots(elems) {
|
|
106
|
+
const out = [];
|
|
107
|
+
elems.forEach((el, i) => {
|
|
108
|
+
const s = textOf(el);
|
|
109
|
+
if (undefined !== s) {
|
|
110
|
+
out.push({ i, s });
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
if (true !== el?.isMap) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
const of = el.peg.of;
|
|
117
|
+
if (true === of?.isList) {
|
|
118
|
+
of.peg.forEach((p, j) => {
|
|
119
|
+
const ps = textOf(p);
|
|
120
|
+
if (undefined !== ps) {
|
|
121
|
+
out.push({ i, of: j, s: ps });
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
const ts = textOf(el.peg.text);
|
|
126
|
+
if (undefined !== ts) {
|
|
127
|
+
out.push({ i, text: true, s: ts });
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
return out;
|
|
131
|
+
}
|
|
132
|
+
// D3's two static checks, on the template alone and before any node:
|
|
133
|
+
// a key inside another is ambiguous whatever the order
|
|
134
|
+
// (replace_overlap), and a key no literal holds means the template
|
|
135
|
+
// drifted from its map (replace_unused). Keys are visited in code
|
|
136
|
+
// point order, so both ports name the same pair.
|
|
137
|
+
function checkReplace(keys, lits) {
|
|
138
|
+
const sorted = [...keys].sort(keyorder_1.cmpCodePoint);
|
|
139
|
+
for (const a of sorted) {
|
|
140
|
+
for (const b of sorted) {
|
|
141
|
+
if (a !== b && b.includes(a)) {
|
|
142
|
+
return { code: 'replace_overlap', details: { key: quoted(a), other: quoted(b) } };
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
for (const k of sorted) {
|
|
147
|
+
if ('' === k || !lits.some((l) => l.s.includes(k))) {
|
|
148
|
+
return { code: 'replace_unused', details: { key: quoted(k) } };
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return undefined;
|
|
152
|
+
}
|
|
153
|
+
// D3's first two rules as one scan: at each position the longest key
|
|
154
|
+
// that matches is taken and its value written out whole, and the scan
|
|
155
|
+
// moves past the KEY -- the value is never looked at again, so no
|
|
156
|
+
// value can introduce a key.
|
|
157
|
+
function substitute(text, pairs) {
|
|
158
|
+
let out = '';
|
|
159
|
+
let i = 0;
|
|
160
|
+
while (i < text.length) {
|
|
161
|
+
const hit = pairs.find((p) => text.startsWith(p[0], i));
|
|
162
|
+
if (undefined === hit) {
|
|
163
|
+
out += text[i];
|
|
164
|
+
i += 1;
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
out += hit[1];
|
|
168
|
+
i += hit[0].length;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return out;
|
|
172
|
+
}
|
|
173
|
+
// The instance with the template's literal text at element `i`
|
|
174
|
+
// rewritten through the pairs -- on the fresh instance, where the
|
|
175
|
+
// structure is exactly the template's, and before any binding, so a
|
|
176
|
+
// value written in is never scanned again and a spliced result is
|
|
177
|
+
// never touched.
|
|
178
|
+
function substituted(inst, i, lits, pairs, ctx) {
|
|
179
|
+
for (const l of lits) {
|
|
180
|
+
if (l.i !== i) {
|
|
181
|
+
continue;
|
|
182
|
+
}
|
|
183
|
+
const sv = new StringVal_1.StringVal({ peg: substitute(l.s, pairs) }, ctx);
|
|
184
|
+
if (undefined !== l.of) {
|
|
185
|
+
inst.peg.of.peg[l.of] = sv;
|
|
186
|
+
}
|
|
187
|
+
else if (true === l.text) {
|
|
188
|
+
inst.peg.text = sv;
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
inst = sv;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
return inst;
|
|
195
|
+
}
|
|
196
|
+
// A key as the message writes it, quoted so an empty key is visible.
|
|
197
|
+
function quoted(s) {
|
|
198
|
+
return '"' + s + '"';
|
|
199
|
+
}
|
|
200
|
+
function unpref(v) {
|
|
201
|
+
while (true === v.isPref) {
|
|
202
|
+
v = v.peg;
|
|
203
|
+
}
|
|
204
|
+
return v;
|
|
64
205
|
}
|
|
65
206
|
// Every relative reference in `v` replaced by the field of `node` it
|
|
66
207
|
// names. Answers `v` unchanged when it holds none, so a body with no
|
|
@@ -73,7 +214,21 @@ function bindNode(v, node, ctx, fail) {
|
|
|
73
214
|
fail.ref = undefined === fail.ref ? v.canon : fail.ref;
|
|
74
215
|
return v;
|
|
75
216
|
}
|
|
76
|
-
|
|
217
|
+
const out = found.clone(ctx);
|
|
218
|
+
// A RELATIVE REFERENCE IS A READ TOO (RENDER.0.md P7), and the one
|
|
219
|
+
// read no reference resolution sees: the binding answers it here,
|
|
220
|
+
// from the matched node, rather than letting a path resolve at a
|
|
221
|
+
// position the body never occupies. Without this a nested rule set
|
|
222
|
+
// whose selection is `.handlers` reported its nodes at the address
|
|
223
|
+
// they came to rest, which is in the OUTPUT. A node carries an
|
|
224
|
+
// address only under an instrumented run, which is what makes the
|
|
225
|
+
// second test the whole guard.
|
|
226
|
+
if (null == out.origin && null != node.origin) {
|
|
227
|
+
;
|
|
228
|
+
out.origin = node.origin +
|
|
229
|
+
v.peg.map((seg) => '.' + seg).join('');
|
|
230
|
+
}
|
|
231
|
+
return out;
|
|
77
232
|
}
|
|
78
233
|
const peg = v?.peg;
|
|
79
234
|
const bound = (0, PlaceVal_1.boundArgStart)(v);
|
|
@@ -98,7 +253,11 @@ function bindNode(v, node, ctx, fail) {
|
|
|
98
253
|
const out = {};
|
|
99
254
|
for (const k of Object.keys(peg)) {
|
|
100
255
|
const c = peg[k];
|
|
101
|
-
|
|
256
|
+
// No isVal guard, for the reason fillPlace gives: a slot holding
|
|
257
|
+
// something that is not a Val answers itself, because the tests
|
|
258
|
+
// above -- is it a reference, has it a peg -- are both false for
|
|
259
|
+
// one.
|
|
260
|
+
const b = bindNode(c, node, ctx, fail);
|
|
102
261
|
changed = changed || b !== c;
|
|
103
262
|
out[k] = b;
|
|
104
263
|
}
|
|
@@ -129,6 +288,27 @@ function nodeField(ref, node) {
|
|
|
129
288
|
}
|
|
130
289
|
return cur;
|
|
131
290
|
}
|
|
291
|
+
// The address of one matched node: its own read address when it has
|
|
292
|
+
// one, else the SELECTION's read address and the node's key under it
|
|
293
|
+
// -- a selection is read once and walked, so its members carry no read
|
|
294
|
+
// of their own.
|
|
295
|
+
//
|
|
296
|
+
// A COMPUTED SELECTION HAS NO ADDRESS, AND THE TRACE SAYS SO: an empty
|
|
297
|
+
// node. `filter(...)` builds a bag no path in the document names, and
|
|
298
|
+
// the only other thing to report is where the bag came to REST -- a
|
|
299
|
+
// position inside a template instance, which is not in the document,
|
|
300
|
+
// and which the two ports number differently. Publishing that would
|
|
301
|
+
// have made the trace a parity break as well as a fiction. The rule
|
|
302
|
+
// address answers the same way: `<table>#<index>` for a table a
|
|
303
|
+
// reference reached, and `#<index>` alone for one written inline at the
|
|
304
|
+
// call site, which has no address of its own. `#` is in no path, so a
|
|
305
|
+
// rule's address can never be read as one.
|
|
306
|
+
function nodeAddr(sel, key, node) {
|
|
307
|
+
if (null != node.origin) {
|
|
308
|
+
return node.origin;
|
|
309
|
+
}
|
|
310
|
+
return undefined === sel ? '' : sel + '.' + key;
|
|
311
|
+
}
|
|
132
312
|
// A body element that is itself a list splices, which is what makes a
|
|
133
313
|
// nested emit compose into one flat sequence.
|
|
134
314
|
function splice(v, out) {
|
|
@@ -169,9 +349,14 @@ class EmitFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
|
169
349
|
return super.unify(peer, ctx);
|
|
170
350
|
}
|
|
171
351
|
resolve(ctx, args) {
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
352
|
+
// THE MEMBERS WITH THEIR KEYS, read through the one helper every
|
|
353
|
+
// fold reads a bag by (./members.ts): source order for a list,
|
|
354
|
+
// sorted-key order for a map, a hidden child and an unfilled
|
|
355
|
+
// optional left out. The KEY is what the trace addresses a node by
|
|
356
|
+
// -- it is the node's key IN THE SELECTION, which is the only
|
|
357
|
+
// thing a walk of a computed bag knows about where a node sits.
|
|
358
|
+
const nodes = (0, members_1.bagMembers)(args?.[0], ctx);
|
|
359
|
+
if (undefined === nodes) {
|
|
175
360
|
return (0, err_1.makeNilErr)(ctx, 'emit_data', this);
|
|
176
361
|
}
|
|
177
362
|
// A NAMED TABLE IS REACHED BY REFERENCE, and the reference -- not
|
|
@@ -184,11 +369,19 @@ class EmitFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
|
184
369
|
table = table.unify((0, top_1.top)(), ctx);
|
|
185
370
|
}
|
|
186
371
|
const templates = tableTemplates(table);
|
|
187
|
-
if (
|
|
188
|
-
return
|
|
372
|
+
if (isRefusal(templates)) {
|
|
373
|
+
return this.refuse(ctx, templates);
|
|
189
374
|
}
|
|
375
|
+
// THE TRACE'S TWO ADDRESSES (RENDER.0.md D11, P7), computed once
|
|
376
|
+
// per dispatch and only when the run is instrumented: the table's
|
|
377
|
+
// own, which every rule of it is numbered under, and the
|
|
378
|
+
// selection's, which every node of it is keyed under.
|
|
379
|
+
const rec = undefined !== ctx.reads;
|
|
380
|
+
const tableAddr = rec ? (table?.origin ?? '') : '';
|
|
381
|
+
const selAddr = rec ? args?.[0]?.origin : undefined;
|
|
190
382
|
const peg = [];
|
|
191
|
-
for (const
|
|
383
|
+
for (const member of nodes) {
|
|
384
|
+
const node = member.val;
|
|
192
385
|
const tmpl = this.dispatch(ctx, node, templates);
|
|
193
386
|
if ('string' === typeof tmpl) {
|
|
194
387
|
return (0, err_1.makeNilErr)(ctx, 'emit_none', this, undefined, 'resolve', {
|
|
@@ -197,13 +390,30 @@ class EmitFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
|
197
390
|
});
|
|
198
391
|
}
|
|
199
392
|
const fail = {};
|
|
200
|
-
|
|
393
|
+
let mark = undefined;
|
|
394
|
+
if (rec) {
|
|
395
|
+
// THE NODE KEEPS ITS ADDRESS (P7). A body passes the node on
|
|
396
|
+
// through `_`, and a nested rule set dispatching over it can
|
|
397
|
+
// then say where it came from -- otherwise the node arrives as
|
|
398
|
+
// an element of a list the body wrote, and the only address
|
|
399
|
+
// left is where that list came to rest.
|
|
400
|
+
const naddr = nodeAddr(selAddr, member.key, node);
|
|
401
|
+
if ('' !== naddr && null == node.origin) {
|
|
402
|
+
;
|
|
403
|
+
node.origin = naddr;
|
|
404
|
+
}
|
|
405
|
+
mark = { node: naddr, rule: tableAddr + '#' + tmpl.idx };
|
|
406
|
+
}
|
|
407
|
+
this.instantiate(ctx, node, tmpl, peg, fail, mark);
|
|
201
408
|
if (undefined !== fail.ref) {
|
|
202
409
|
return (0, err_1.makeNilErr)(ctx, 'emit_ref', this, undefined, 'resolve', {
|
|
203
410
|
ref: fail.ref,
|
|
204
411
|
value: node.canon,
|
|
205
412
|
});
|
|
206
413
|
}
|
|
414
|
+
if (undefined !== fail.code) {
|
|
415
|
+
return this.refuse(ctx, { code: fail.code, details: fail.details });
|
|
416
|
+
}
|
|
207
417
|
}
|
|
208
418
|
// THE PIECES ARE PATHED WHERE THEY LAND, once the splicing has
|
|
209
419
|
// settled how many there are. A piece keeps no trace of the body
|
|
@@ -214,6 +424,12 @@ class EmitFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
|
214
424
|
}
|
|
215
425
|
return new ListVal_1.ListVal({ peg }, ctx);
|
|
216
426
|
}
|
|
427
|
+
// The located error for a refusal, with the message's details when
|
|
428
|
+
// the refusal carries them.
|
|
429
|
+
refuse(ctx, r) {
|
|
430
|
+
return undefined === r.details ? (0, err_1.makeNilErr)(ctx, r.code, this)
|
|
431
|
+
: (0, err_1.makeNilErr)(ctx, r.code, this, undefined, 'resolve', r.details);
|
|
432
|
+
}
|
|
217
433
|
// First match wins, in table order, by unifiability -- the same
|
|
218
434
|
// question `match` and `filter` ask, answered the same way. Returns
|
|
219
435
|
// the patterns tried when nothing matched, for the located error.
|
|
@@ -230,16 +446,56 @@ class EmitFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
|
230
446
|
}
|
|
231
447
|
return tried.join(' ');
|
|
232
448
|
}
|
|
449
|
+
// The replacement pairs for one node: the template's `replace` map
|
|
450
|
+
// instantiated at the node -- bound, filled and driven as a body is
|
|
451
|
+
// -- each value as text by the one number-to-text rule (`plusText`,
|
|
452
|
+
// the rule `+` and `join` share), escaped by the template's
|
|
453
|
+
// convention unless that is `none`, and sorted longest key first so
|
|
454
|
+
// the scan takes the longest match at every position (D3's first
|
|
455
|
+
// rule). A value that is not text, or has not settled, is
|
|
456
|
+
// replace_value.
|
|
457
|
+
replacements(ctx, node, tmpl, fail) {
|
|
458
|
+
if (undefined === tmpl.replace) {
|
|
459
|
+
return undefined;
|
|
460
|
+
}
|
|
461
|
+
let inst = tmpl.replace.clone(ctx, { dup: true });
|
|
462
|
+
inst = (0, PlaceVal_1.fillPlace)(bindNode(inst, node, ctx, fail), node, ctx);
|
|
463
|
+
if (!inst.done) {
|
|
464
|
+
inst = (0, unify_1.unite)(ctx, inst, (0, top_1.top)(), 'emit');
|
|
465
|
+
}
|
|
466
|
+
const pairs = [];
|
|
467
|
+
for (const key of Object.keys(inst.peg)) {
|
|
468
|
+
const v = unpref(inst.peg[key]);
|
|
469
|
+
const text = (0, PlusOpVal_1.plusText)(v);
|
|
470
|
+
if (undefined === text) {
|
|
471
|
+
fail.code = 'replace_value';
|
|
472
|
+
fail.details = { key: quoted(key), value: String(v?.canon) };
|
|
473
|
+
return undefined;
|
|
474
|
+
}
|
|
475
|
+
pairs.push([key, 'none' === tmpl.esc ? text : (0, escape_1.escapeText)(text, tmpl.esc)]);
|
|
476
|
+
}
|
|
477
|
+
pairs.sort((a, b) => b[0].length - a[0].length || (0, keyorder_1.cmpCodePoint)(a[0], b[0]));
|
|
478
|
+
return pairs;
|
|
479
|
+
}
|
|
233
480
|
// Instantiate one body at the node and SPLICE its pieces into the
|
|
234
481
|
// output. A full instance to the leaves (`dup`, ADR-005), because a
|
|
235
482
|
// bare clone shares the inner structure of any call in the body and
|
|
236
|
-
// the first node's resolution would answer for every node;
|
|
237
|
-
//
|
|
238
|
-
|
|
483
|
+
// the first node's resolution would answer for every node; the
|
|
484
|
+
// template's replacements written into the instance's literal text;
|
|
485
|
+
// then the two bindings, relative references and the hole, both to
|
|
486
|
+
// the node.
|
|
487
|
+
instantiate(ctx, node, tmpl, out, fail, mark) {
|
|
488
|
+
const pairs = this.replacements(ctx, node, tmpl, fail);
|
|
489
|
+
if (undefined !== fail.code) {
|
|
490
|
+
return;
|
|
491
|
+
}
|
|
239
492
|
const elems = tmpl.body.peg;
|
|
240
493
|
for (let i = 0; i < elems.length; i++) {
|
|
241
494
|
const elctx = ctx.descend(String(out.length));
|
|
242
|
-
|
|
495
|
+
let inst = elems[i].clone(elctx, { dup: true });
|
|
496
|
+
if (undefined !== pairs) {
|
|
497
|
+
inst = substituted(inst, i, tmpl.lits, pairs, elctx);
|
|
498
|
+
}
|
|
243
499
|
let piece = (0, PlaceVal_1.fillPlace)(bindNode(inst, node, elctx, fail), node, elctx);
|
|
244
500
|
// A NESTED DISPATCH IS DRIVEN HERE, not left for the next pass.
|
|
245
501
|
// Its selection is bound and the model has settled, so it has
|
|
@@ -253,7 +509,21 @@ class EmitFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
|
253
509
|
if (!piece.done) {
|
|
254
510
|
piece = (0, unify_1.unite)(elctx, piece, (0, top_1.top)(), 'emit');
|
|
255
511
|
}
|
|
512
|
+
// THE INNERMOST DISPATCH OWNS THE PIECE (P7). A body element
|
|
513
|
+
// that is a nested rule set has already stamped what it emitted,
|
|
514
|
+
// and those pieces are spliced into this result here: the rule
|
|
515
|
+
// that WROTE a line is the one the trace names, so a stamp is
|
|
516
|
+
// written only where there is none.
|
|
517
|
+
const at = out.length;
|
|
256
518
|
splice(piece, out);
|
|
519
|
+
if (undefined !== mark) {
|
|
520
|
+
for (let k = at; k < out.length; k++) {
|
|
521
|
+
if (null == out[k].emitted) {
|
|
522
|
+
;
|
|
523
|
+
out[k].emitted = mark;
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
}
|
|
257
527
|
}
|
|
258
528
|
}
|
|
259
529
|
} /* node:coverage ignore next 6 */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmitFuncVal.js","sourceRoot":"","sources":["../../src/val/EmitFuncVal.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EmitFuncVal.js","sourceRoot":"","sources":["../../src/val/EmitFuncVal.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ const ListVal_1 = require("./ListVal");
|
|
|
8
8
|
const FuncBaseVal_1 = require("./FuncBaseVal");
|
|
9
9
|
const Val_1 = require("./Val");
|
|
10
10
|
const PlaceVal_1 = require("./PlaceVal");
|
|
11
|
+
const members_1 = require("./members");
|
|
11
12
|
class FilterFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
12
13
|
constructor(spec, ctx) {
|
|
13
14
|
super(spec, ctx);
|
|
@@ -59,19 +60,22 @@ class FilterFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
|
59
60
|
const met = (0, FuncBaseVal_1.trialUnify)(kctx, child.clone(kctx), test);
|
|
60
61
|
return undefined !== met && met.canon === child.canon;
|
|
61
62
|
};
|
|
63
|
+
// The candidates are the bag's MEMBERS -- what generation would
|
|
64
|
+
// emit (./members.ts, BUGS.md §79) -- so a hidden child is never
|
|
65
|
+
// selected into the result.
|
|
62
66
|
if (true === data?.isMap) {
|
|
63
67
|
const peg = {};
|
|
64
|
-
for (const key of
|
|
68
|
+
for (const { key, val } of (0, members_1.bagMembers)(data, ctx)) {
|
|
65
69
|
const kctx = ctx.descend(key);
|
|
66
|
-
if (keeps(
|
|
67
|
-
peg[key] =
|
|
70
|
+
if (keeps(val, kctx)) {
|
|
71
|
+
peg[key] = val.clone(kctx);
|
|
68
72
|
}
|
|
69
73
|
}
|
|
70
74
|
return new MapVal_1.MapVal({ peg }, ctx);
|
|
71
75
|
}
|
|
72
76
|
if (true === data?.isList) {
|
|
73
77
|
const peg = [];
|
|
74
|
-
for (const el of
|
|
78
|
+
for (const { val: el } of (0, members_1.bagMembers)(data, ctx)) {
|
|
75
79
|
// The element context is the position it will END UP at, which
|
|
76
80
|
// is its index in the RESULT: dropping the third of five moves
|
|
77
81
|
// the fourth up, and a kept element must be pathed where it
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterFuncVal.js","sourceRoot":"","sources":["../../src/val/FilterFuncVal.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AA0CpD,gCAAmC;AACnC,qCAAiC;AACjC,uCAAmC;AACnC,+CAAuD;AACvD,+BAAsC;AACtC,yCAAsC;
|
|
1
|
+
{"version":3,"file":"FilterFuncVal.js","sourceRoot":"","sources":["../../src/val/FilterFuncVal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Val, ValSpec } from '../type';
|
|
2
|
+
import { AontuContext } from '../ctx';
|
|
3
|
+
import { ListVal } from './ListVal';
|
|
4
|
+
import { FuncBaseVal } from './FuncBaseVal';
|
|
5
|
+
declare class FormFuncVal extends FuncBaseVal {
|
|
6
|
+
isFormFunc: boolean;
|
|
7
|
+
staged: boolean;
|
|
8
|
+
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
9
|
+
funcname(): string;
|
|
10
|
+
prepare(_ctx: AontuContext, _args: Val[]): null;
|
|
11
|
+
unify(peer: Val, ctx: AontuContext): Val;
|
|
12
|
+
resolve(ctx: AontuContext, args: Val[]): ListVal | import("./NilVal").NilVal;
|
|
13
|
+
}
|
|
14
|
+
export { FormFuncVal, };
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Copyright (c) 2025 Richard Rodger, MIT License */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.FormFuncVal = void 0;
|
|
5
|
+
const err_1 = require("../err");
|
|
6
|
+
const ListVal_1 = require("./ListVal");
|
|
7
|
+
const FuncBaseVal_1 = require("./FuncBaseVal");
|
|
8
|
+
const Val_1 = require("./Val");
|
|
9
|
+
const PlaceVal_1 = require("./PlaceVal");
|
|
10
|
+
const members_1 = require("./members");
|
|
11
|
+
class FormFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
12
|
+
constructor(spec, ctx) {
|
|
13
|
+
super(spec, ctx);
|
|
14
|
+
this.isFormFunc = true;
|
|
15
|
+
// THE STAGING RULE, for the reason given in PackFuncVal: the data
|
|
16
|
+
// is not settled merely by being `done` once.
|
|
17
|
+
this.staged = true;
|
|
18
|
+
}
|
|
19
|
+
funcname() {
|
|
20
|
+
return 'form';
|
|
21
|
+
}
|
|
22
|
+
// The template is not an argument to drive (see PackFuncVal.prepare).
|
|
23
|
+
prepare(_ctx, _args) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
unify(peer, ctx) {
|
|
27
|
+
// ONE argument is driven: the data. The template is not (see
|
|
28
|
+
// prepare above).
|
|
29
|
+
if (!this.stagedReady(peer, ctx, 1)) {
|
|
30
|
+
return this.residuate(peer, ctx);
|
|
31
|
+
}
|
|
32
|
+
return super.unify(peer, ctx);
|
|
33
|
+
}
|
|
34
|
+
resolve(ctx, args) {
|
|
35
|
+
const vals = (0, members_1.memberVals)(args?.[0], ctx);
|
|
36
|
+
if (undefined === vals) {
|
|
37
|
+
return (0, err_1.makeNilErr)(ctx, 'form_data', this);
|
|
38
|
+
}
|
|
39
|
+
// Arity is checked at parse (funcArity), so the template is here.
|
|
40
|
+
const tmpl = args[1];
|
|
41
|
+
const peg = [];
|
|
42
|
+
for (let i = 0; i < vals.length; i++) {
|
|
43
|
+
const elctx = ctx.descend(String(i));
|
|
44
|
+
// A FULL INSTANCE per element, to the leaves (`dup`, ADR-005),
|
|
45
|
+
// at the element's own position -- see PackFuncVal.resolve --
|
|
46
|
+
// with `_` bound to the source child and NOTHING met into it.
|
|
47
|
+
const inst = tmpl.clone(elctx, { dup: true });
|
|
48
|
+
(0, Val_1.repathInstance)(inst, inst.path);
|
|
49
|
+
peg.push((0, PlaceVal_1.fillPlace)(inst, vals[i], elctx));
|
|
50
|
+
}
|
|
51
|
+
return new ListVal_1.ListVal({ peg }, ctx);
|
|
52
|
+
}
|
|
53
|
+
} /* node:coverage ignore next 6 */
|
|
54
|
+
exports.FormFuncVal = FormFuncVal;
|
|
55
|
+
//# sourceMappingURL=FormFuncVal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormFuncVal.js","sourceRoot":"","sources":["../../src/val/FormFuncVal.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AA6CpD,gCAAmC;AACnC,uCAAmC;AACnC,+CAA2C;AAC3C,+BAAsC;AACtC,yCAAsC;AACtC,uCAAsC;AAGtC,MAAM,WAAY,SAAQ,yBAAW;IAOnC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAVlB,eAAU,GAAG,IAAI,CAAA;QAEjB,kEAAkE;QAClE,8CAA8C;QAC9C,WAAM,GAAG,IAAI,CAAA;IAOb,CAAC;IAGD,QAAQ;QACN,OAAO,MAAM,CAAA;IACf,CAAC;IAGD,sEAAsE;IACtE,OAAO,CAAC,IAAkB,EAAE,KAAY;QACtC,OAAO,IAAI,CAAA;IACb,CAAC;IAGD,KAAK,CAAC,IAAS,EAAE,GAAiB;QAChC,6DAA6D;QAC7D,kBAAkB;QAClB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAClC,CAAC;QAED,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC/B,CAAC;IAGD,OAAO,CAAC,GAAiB,EAAE,IAAW;QACpC,MAAM,IAAI,GAAG,IAAA,oBAAU,EAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QACvC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,OAAO,IAAA,gBAAU,EAAC,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,CAAA;QAC3C,CAAC;QAED,kEAAkE;QAClE,MAAM,IAAI,GAAQ,IAAI,CAAC,CAAC,CAAC,CAAA;QACzB,MAAM,GAAG,GAAU,EAAE,CAAA;QAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;YACpC,+DAA+D;YAC/D,8DAA8D;YAC9D,8DAA8D;YAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAA;YAC7C,IAAA,oBAAc,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;YAC/B,GAAG,CAAC,IAAI,CAAC,IAAA,oBAAS,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;QAC3C,CAAC;QAED,OAAO,IAAI,iBAAO,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,CAAA;IAClC,CAAC;CAEF,CAAC,iCAAiC;QAIjC,WAAW"}
|
package/dist/val/MapVal.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Val, ValSpec } from '../type';
|
|
2
2
|
import { AontuContext } from '../ctx';
|
|
3
3
|
import { BagVal } from './BagVal';
|
|
4
|
+
declare function spreadSnapKey(cj: any): string;
|
|
4
5
|
declare class MapVal extends BagVal {
|
|
5
6
|
isMap: boolean;
|
|
6
7
|
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
@@ -11,4 +12,4 @@ declare class MapVal extends BagVal {
|
|
|
11
12
|
get canon(): string;
|
|
12
13
|
inspection(d?: number): string;
|
|
13
14
|
}
|
|
14
|
-
export { MapVal };
|
|
15
|
+
export { MapVal, spreadSnapKey, };
|