aontu 0.53.0 → 0.55.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/aontu.d.ts +3 -2
- package/dist/aontu.js +36 -7
- package/dist/aontu.js.map +1 -1
- package/dist/cli.d.ts +2 -1
- package/dist/cli.js +500 -8
- package/dist/cli.js.map +1 -1
- package/dist/ctx.d.ts +5 -0
- package/dist/ctx.js +1 -0
- package/dist/ctx.js.map +1 -1
- package/dist/diff.js.map +1 -1
- package/dist/err.js +7 -1
- package/dist/err.js.map +1 -1
- package/dist/graph.d.ts +2 -5
- package/dist/graph.js +83 -46
- package/dist/graph.js.map +1 -1
- package/dist/hcanon.js +9 -10
- package/dist/hcanon.js.map +1 -1
- package/dist/hints.js +94 -26
- package/dist/hints.js.map +1 -1
- package/dist/jsonschema.js +34 -0
- package/dist/jsonschema.js.map +1 -1
- package/dist/lang.js +593 -191
- package/dist/lang.js.map +1 -1
- package/dist/lsp.d.ts +1 -1
- package/dist/lsp.js +86 -6
- package/dist/lsp.js.map +1 -1
- package/dist/mcp.js +153 -6
- package/dist/mcp.js.map +1 -1
- package/dist/mod-tool.js +42 -8
- package/dist/mod-tool.js.map +1 -1
- package/dist/mod.d.ts +4 -0
- package/dist/mod.js +97 -2
- package/dist/mod.js.map +1 -1
- package/dist/patch.d.ts +5 -0
- package/dist/patch.js +25 -25
- package/dist/patch.js.map +1 -1
- package/dist/provenance.d.ts +1 -0
- package/dist/provenance.js +2 -1
- package/dist/provenance.js.map +1 -1
- package/dist/query.js.map +1 -1
- package/dist/reach.d.ts +1 -0
- package/dist/reach.js +49 -21
- package/dist/reach.js.map +1 -1
- package/dist/relation.d.ts +4 -0
- package/dist/relation.js +125 -200
- package/dist/relation.js.map +1 -1
- package/dist/sig.d.ts +25 -0
- package/dist/sig.js +277 -0
- package/dist/sig.js.map +1 -0
- package/dist/sigdecl.d.ts +2 -0
- package/dist/sigdecl.js +11 -0
- package/dist/sigdecl.js.map +1 -0
- package/dist/siggate.d.ts +4 -0
- package/dist/siggate.js +90 -0
- package/dist/siggate.js.map +1 -0
- package/dist/std.js +75 -16
- package/dist/std.js.map +1 -1
- package/dist/subsume.js +57 -10
- package/dist/subsume.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/unify.d.ts +2 -2
- package/dist/unify.js +93 -114
- package/dist/unify.js.map +1 -1
- package/dist/utility.d.ts +1 -2
- package/dist/utility.js +7 -61
- package/dist/utility.js.map +1 -1
- package/dist/val/AggFuncVal.d.ts +12 -1
- package/dist/val/AggFuncVal.js +165 -3
- package/dist/val/AggFuncVal.js.map +1 -1
- package/dist/val/BagVal.d.ts +2 -0
- package/dist/val/BagVal.js +56 -8
- package/dist/val/BagVal.js.map +1 -1
- package/dist/val/ConstraintVal.js +33 -5
- package/dist/val/ConstraintVal.js.map +1 -1
- package/dist/val/ContainerKindVal.d.ts +35 -0
- package/dist/val/ContainerKindVal.js +99 -0
- package/dist/val/ContainerKindVal.js.map +1 -0
- package/dist/val/CopyFuncVal.js +0 -7
- package/dist/val/CopyFuncVal.js.map +1 -1
- package/dist/val/DisjunctVal.d.ts +1 -2
- package/dist/val/DisjunctVal.js +146 -39
- package/dist/val/DisjunctVal.js.map +1 -1
- package/dist/val/ExpectVal.js +37 -2
- package/dist/val/ExpectVal.js.map +1 -1
- package/dist/val/FuncBaseVal.d.ts +1 -0
- package/dist/val/FuncBaseVal.js +19 -8
- package/dist/val/FuncBaseVal.js.map +1 -1
- package/dist/val/GraphAtomVal.d.ts +39 -0
- package/dist/val/GraphAtomVal.js +184 -0
- package/dist/val/GraphAtomVal.js.map +1 -0
- package/dist/val/JunctionVal.js +22 -5
- package/dist/val/JunctionVal.js.map +1 -1
- package/dist/val/ListVal.js +27 -34
- package/dist/val/ListVal.js.map +1 -1
- package/dist/val/MapVal.d.ts +1 -0
- package/dist/val/MapVal.js +82 -35
- package/dist/val/MapVal.js.map +1 -1
- package/dist/val/PathFuncVal.d.ts +2 -2
- package/dist/val/PathFuncVal.js +75 -16
- package/dist/val/PathFuncVal.js.map +1 -1
- package/dist/val/PathVal.d.ts +25 -0
- package/dist/val/PathVal.js +150 -0
- package/dist/val/PathVal.js.map +1 -0
- package/dist/val/PlusOpVal.d.ts +2 -1
- package/dist/val/PlusOpVal.js +50 -35
- package/dist/val/PlusOpVal.js.map +1 -1
- package/dist/val/PrefVal.d.ts +2 -0
- package/dist/val/PrefVal.js +159 -32
- package/dist/val/PrefVal.js.map +1 -1
- package/dist/val/RecurseVal.d.ts +19 -0
- package/dist/val/RecurseVal.js +217 -0
- package/dist/val/RecurseVal.js.map +1 -0
- package/dist/val/RefVal.d.ts +2 -1
- package/dist/val/RefVal.js +105 -72
- package/dist/val/RefVal.js.map +1 -1
- package/dist/val/ReferFuncVal.d.ts +30 -7
- package/dist/val/ReferFuncVal.js +395 -94
- package/dist/val/ReferFuncVal.js.map +1 -1
- package/dist/val/ScalarKindVal.d.ts +4 -2
- package/dist/val/ScalarKindVal.js +12 -1
- package/dist/val/ScalarKindVal.js.map +1 -1
- package/dist/val/SuperFuncVal.d.ts +4 -2
- package/dist/val/SuperFuncVal.js +118 -14
- package/dist/val/SuperFuncVal.js.map +1 -1
- package/dist/val/TopVal.d.ts +1 -1
- package/dist/val/Val.d.ts +2 -3
- package/dist/val/Val.js +39 -20
- package/dist/val/Val.js.map +1 -1
- package/dist/val/arith.js +4 -1
- package/dist/val/arith.js.map +1 -1
- package/dist/vet.d.ts +1 -0
- package/dist/vet.js +32 -1
- package/dist/vet.js.map +1 -1
- package/dist/view.d.ts +90 -0
- package/dist/view.js +2168 -0
- package/dist/view.js.map +1 -0
- package/grammar/aontu.gbnf +18 -10
- package/grammar/aontu.lark +15 -10
- package/grammar/aontu.tmLanguage.json +184 -0
- package/package.json +10 -3
- package/skill/grammar-card.md +1 -2
- package/src/aontu.ts +37 -7
- package/src/cli.ts +553 -8
- package/src/ctx.ts +20 -0
- package/src/diff.ts +4 -2
- package/src/err.ts +8 -1
- package/src/graph.ts +125 -75
- package/src/hcanon.ts +9 -11
- package/src/hints.ts +112 -29
- package/src/jsonschema.ts +41 -0
- package/src/lang.ts +642 -203
- package/src/lsp.ts +75 -6
- package/src/mcp.ts +164 -6
- package/src/mod-tool.ts +48 -9
- package/src/mod.ts +110 -1
- package/src/patch.ts +31 -27
- package/src/provenance.ts +8 -1
- package/src/query.ts +4 -2
- package/src/reach.ts +52 -23
- package/src/relation.ts +139 -236
- package/src/sig.ts +345 -0
- package/src/sigdecl.ts +11 -0
- package/src/siggate.ts +144 -0
- package/src/std.ts +77 -16
- package/src/subsume.ts +59 -10
- package/src/unify.ts +102 -125
- package/src/utility.ts +7 -67
- package/src/val/AggFuncVal.ts +231 -4
- package/src/val/BagVal.ts +58 -9
- package/src/val/ConstraintVal.ts +34 -5
- package/src/val/ContainerKindVal.ts +158 -0
- package/src/val/CopyFuncVal.ts +0 -7
- package/src/val/DisjunctVal.ts +152 -40
- package/src/val/ExpectVal.ts +39 -4
- package/src/val/FuncBaseVal.ts +21 -8
- package/src/val/GraphAtomVal.ts +264 -0
- package/src/val/JunctionVal.ts +23 -6
- package/src/val/ListVal.ts +30 -37
- package/src/val/MapVal.ts +87 -39
- package/src/val/PathFuncVal.ts +107 -19
- package/src/val/PathVal.ts +221 -0
- package/src/val/PlusOpVal.ts +56 -37
- package/src/val/PrefVal.ts +186 -38
- package/src/val/RecurseVal.ts +285 -0
- package/src/val/RefVal.ts +105 -83
- package/src/val/ReferFuncVal.ts +445 -100
- package/src/val/ScalarKindVal.ts +12 -0
- package/src/val/SuperFuncVal.ts +137 -13
- package/src/val/TopVal.ts +1 -1
- package/src/val/Val.ts +44 -35
- package/src/val/arith.ts +4 -1
- package/src/vet.ts +41 -4
- package/src/view.ts +2882 -0
- package/dist/val/IdFuncVal.d.ts +0 -13
- package/dist/val/IdFuncVal.js +0 -54
- package/dist/val/IdFuncVal.js.map +0 -1
- package/src/val/IdFuncVal.ts +0 -91
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Copyright (c) 2025 Richard Rodger, MIT License */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.InverseFuncVal = exports.AcyclicFuncVal = exports.GraphAtomVal = void 0;
|
|
5
|
+
exports.relDecls = relDecls;
|
|
6
|
+
const type_1 = require("../type");
|
|
7
|
+
const err_1 = require("../err");
|
|
8
|
+
const FuncBaseVal_1 = require("./FuncBaseVal");
|
|
9
|
+
const FeatureVal_1 = require("./FeatureVal");
|
|
10
|
+
const unify_1 = require("../unify");
|
|
11
|
+
const utility_1 = require("../utility");
|
|
12
|
+
function relDecls(ctx) {
|
|
13
|
+
return ctx._reldecls;
|
|
14
|
+
}
|
|
15
|
+
class GraphAtomVal extends FeatureVal_1.FeatureVal {
|
|
16
|
+
constructor(spec, ctx) {
|
|
17
|
+
super(spec, ctx);
|
|
18
|
+
this.isGraphAtom = true;
|
|
19
|
+
this.isGenable = true;
|
|
20
|
+
// AFTER rel() (45000): the atoms say nothing about the value.
|
|
21
|
+
this.cjo = 46000;
|
|
22
|
+
this.akind = spec.akind ?? 'acyclic';
|
|
23
|
+
this.invname = spec.invname;
|
|
24
|
+
this.held = spec.held;
|
|
25
|
+
// A settled residual, like an unmet rel(): the bare atom is its
|
|
26
|
+
// own value, and a type() body carrying one must settle. Holding
|
|
27
|
+
// an unsettled value, it is exactly as done as the value.
|
|
28
|
+
this.dc = undefined === this.held || true === this.held.done
|
|
29
|
+
? type_1.DONE : 0;
|
|
30
|
+
}
|
|
31
|
+
clone(ctx, spec) {
|
|
32
|
+
const out = super.clone(ctx, spec);
|
|
33
|
+
out.akind = this.akind;
|
|
34
|
+
out.invname = this.invname;
|
|
35
|
+
out.held = this.held;
|
|
36
|
+
out.dc = this.dc;
|
|
37
|
+
return out;
|
|
38
|
+
}
|
|
39
|
+
// A rebuilt atom around a new held, at this atom's position.
|
|
40
|
+
carry(ctx, held) {
|
|
41
|
+
const out = new GraphAtomVal({ akind: this.akind, invname: this.invname, held }, ctx);
|
|
42
|
+
(0, utility_1.propagateMarks)(this, out);
|
|
43
|
+
out.site = this.site;
|
|
44
|
+
out.path = this.path;
|
|
45
|
+
return out;
|
|
46
|
+
}
|
|
47
|
+
// The predicate is the key the atom sits on -- and a predicate is a
|
|
48
|
+
// D-1 NAME, by exactly fieldkey's rule: an atom landed anywhere
|
|
49
|
+
// else declares nothing. Registration is idempotent (the
|
|
50
|
+
// declaration set is a set) and happens at every drive, so
|
|
51
|
+
// whichever pass first sees the atom at its landed position records
|
|
52
|
+
// it.
|
|
53
|
+
register(ctx) {
|
|
54
|
+
const seg = this.path[this.path.length - 1];
|
|
55
|
+
if ('string' !== typeof seg || !GRAPH_ATOM_NAME.test(seg)) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const decls = relDecls(ctx);
|
|
59
|
+
let d = decls.get(seg);
|
|
60
|
+
if (undefined === d) {
|
|
61
|
+
d = { inverses: new Set() };
|
|
62
|
+
decls.set(seg, d);
|
|
63
|
+
}
|
|
64
|
+
if ('acyclic' === this.akind) {
|
|
65
|
+
d.acyclic = true;
|
|
66
|
+
}
|
|
67
|
+
else if (undefined !== this.invname) {
|
|
68
|
+
d.inverses.add(this.invname);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
unify(peer, ctx) {
|
|
72
|
+
const p = peer;
|
|
73
|
+
this.register(ctx);
|
|
74
|
+
// The self-drive: unite's tail calls unify(top) directly on any
|
|
75
|
+
// not-done result, and the held is what still has work to do.
|
|
76
|
+
// (A null/nil peer never arrives -- unite's ladder absorbs both.)
|
|
77
|
+
if (null == peer || true === p.isTop) {
|
|
78
|
+
if (undefined === this.held) {
|
|
79
|
+
return this;
|
|
80
|
+
}
|
|
81
|
+
if (true === this.held.done) {
|
|
82
|
+
// Doneness is monotone, so recording it in place is safe --
|
|
83
|
+
// and without it the bag walk keeps asking and generation
|
|
84
|
+
// refuses a finished value.
|
|
85
|
+
this.dc = type_1.DONE;
|
|
86
|
+
return this;
|
|
87
|
+
}
|
|
88
|
+
// The self-drive refines IN PLACE (the MapVal top-peer
|
|
89
|
+
// pattern): a fresh atom per pass changes object identity, so
|
|
90
|
+
// spread apply-once stamps and the entity merge's fast paths
|
|
91
|
+
// stop holding, and the enclosing bags re-open every pass --
|
|
92
|
+
// the service catalog never converged.
|
|
93
|
+
const held = (0, unify_1.unite)(ctx, this.held, undefined, 'atom-drive');
|
|
94
|
+
if (true === held.isNil) {
|
|
95
|
+
return held;
|
|
96
|
+
}
|
|
97
|
+
this.held = held;
|
|
98
|
+
if (true === held.done) {
|
|
99
|
+
this.dc = type_1.DONE;
|
|
100
|
+
}
|
|
101
|
+
return this;
|
|
102
|
+
}
|
|
103
|
+
// The SAME declaration twice is one declaration; their helds
|
|
104
|
+
// merge.
|
|
105
|
+
if (true === p.isGraphAtom &&
|
|
106
|
+
p.akind === this.akind && p.invname === this.invname) {
|
|
107
|
+
const held = undefined === this.held ? p.held
|
|
108
|
+
: undefined === p.held ? this.held
|
|
109
|
+
: (0, unify_1.unite)(ctx, this.held, p.held, 'atom-dup');
|
|
110
|
+
if (undefined !== held && true === held.isNil) {
|
|
111
|
+
return held;
|
|
112
|
+
}
|
|
113
|
+
return undefined === held ? this : this.carry(ctx, held);
|
|
114
|
+
}
|
|
115
|
+
// Anything else -- the rel, the container, a different atom -- is
|
|
116
|
+
// ABSORBED: the atom carries the value and the fold's pairwise
|
|
117
|
+
// walk merges across it.
|
|
118
|
+
const held = undefined === this.held ? peer
|
|
119
|
+
: (0, unify_1.unite)(ctx, this.held, peer, 'atom-held');
|
|
120
|
+
return true === held.isNil ? held : this.carry(ctx, held);
|
|
121
|
+
}
|
|
122
|
+
get canon() {
|
|
123
|
+
const own = 'acyclic' === this.akind
|
|
124
|
+
? 'acyclic()'
|
|
125
|
+
: 'inverse(' + JSON.stringify(this.invname) + ')';
|
|
126
|
+
return undefined === this.held ? own : this.held.canon + '&' + own;
|
|
127
|
+
}
|
|
128
|
+
gen(ctx) {
|
|
129
|
+
// The atom is transparent at generation -- its verdict is global
|
|
130
|
+
// (relationVerdict), never a value at this field -- and a BARE
|
|
131
|
+
// atom is silent, exactly as an unmet rel() is.
|
|
132
|
+
return undefined === this.held ? undefined : this.held.gen(ctx);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
exports.GraphAtomVal = GraphAtomVal;
|
|
136
|
+
// D-1 (docs/design/RELATIONS.0.md): the name grammar shared by entity
|
|
137
|
+
// names, edge predicates and inverse names.
|
|
138
|
+
const GRAPH_ATOM_NAME = /^[_a-zA-Z][-_a-zA-Z0-9]*$/;
|
|
139
|
+
class AcyclicFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
140
|
+
constructor(spec, ctx) {
|
|
141
|
+
super(spec, ctx);
|
|
142
|
+
this.isAcyclicFunc = true;
|
|
143
|
+
}
|
|
144
|
+
make(_ctx, spec) {
|
|
145
|
+
return new AcyclicFuncVal(spec);
|
|
146
|
+
}
|
|
147
|
+
funcname() {
|
|
148
|
+
return 'acyclic';
|
|
149
|
+
}
|
|
150
|
+
resolve(ctx, _args) {
|
|
151
|
+
const out = new GraphAtomVal({ akind: 'acyclic' }, ctx);
|
|
152
|
+
out.site = this.site;
|
|
153
|
+
out.path = this.path;
|
|
154
|
+
return out;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
exports.AcyclicFuncVal = AcyclicFuncVal;
|
|
158
|
+
class InverseFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
159
|
+
constructor(spec, ctx) {
|
|
160
|
+
super(spec, ctx);
|
|
161
|
+
this.isInverseFunc = true;
|
|
162
|
+
}
|
|
163
|
+
make(_ctx, spec) {
|
|
164
|
+
return new InverseFuncVal(spec);
|
|
165
|
+
}
|
|
166
|
+
funcname() {
|
|
167
|
+
return 'inverse';
|
|
168
|
+
}
|
|
169
|
+
resolve(ctx, args) {
|
|
170
|
+
const a = args[0];
|
|
171
|
+
// The mirroring predicate is a NAME -- D-1, spelled bare or
|
|
172
|
+
// quoted. A relation is a vocabulary term, not an address.
|
|
173
|
+
if (true !== a?.isScalar || 'string' !== typeof a.peg
|
|
174
|
+
|| !GRAPH_ATOM_NAME.test(a.peg)) {
|
|
175
|
+
return (0, err_1.makeNilErr)(ctx, 'inverse_name', this, undefined, 'inverse');
|
|
176
|
+
}
|
|
177
|
+
const out = new GraphAtomVal({ akind: 'inverse', invname: a.peg }, ctx);
|
|
178
|
+
out.site = this.site;
|
|
179
|
+
out.path = this.path;
|
|
180
|
+
return out;
|
|
181
|
+
}
|
|
182
|
+
} /* node:coverage ignore next 7 */
|
|
183
|
+
exports.InverseFuncVal = InverseFuncVal;
|
|
184
|
+
//# sourceMappingURL=GraphAtomVal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GraphAtomVal.js","sourceRoot":"","sources":["../../src/val/GraphAtomVal.ts"],"names":[],"mappings":"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"}
|
package/dist/val/JunctionVal.js
CHANGED
|
@@ -17,12 +17,29 @@ class JunctionVal extends FeatureVal_1.FeatureVal {
|
|
|
17
17
|
}
|
|
18
18
|
clone(ctx, spec) {
|
|
19
19
|
let out = super.clone(ctx, spec);
|
|
20
|
-
//
|
|
21
|
-
//
|
|
22
|
-
//
|
|
23
|
-
//
|
|
20
|
+
// A JUNCTION'S MEMBERS SIT AT THE JUNCTION'S OWN POSITION. That is
|
|
21
|
+
// the rule `repathInstance` (Val.ts) states for the instance walk
|
|
22
|
+
// -- a conjunct's members occupy the conjunct's position, which is
|
|
23
|
+
// what `A & B` means -- and it holds for every clone, not only for
|
|
24
|
+
// marked ones.
|
|
25
|
+
//
|
|
26
|
+
// Val.clone's ctx cut cannot derive it: MapVal.clone hands a child
|
|
27
|
+
// its path through the SPEC rather than by descending the ctx, so
|
|
28
|
+
// a member left to the cut takes the DRIVING context's path -- the
|
|
29
|
+
// map's -- and loses the field key it sits under. A conjunct
|
|
30
|
+
// member reached through a reference into a position at least as
|
|
31
|
+
// deep as its definition then carried the entity's path, and every
|
|
32
|
+
// reader of `Val.path` was told the wrong position: a rel()-minted
|
|
33
|
+
// link took the ENTITY's key as its predicate, so `inverse(n)`
|
|
34
|
+
// looked for a mirror under a relation nobody declared and
|
|
35
|
+
// reported a written mirror missing.
|
|
36
|
+
//
|
|
37
|
+
// The instantiation flag still descends with the mark (ADR-005).
|
|
38
|
+
// Go states the same invariant directly (go/clone.go, cloneAt), so
|
|
39
|
+
// this restores parity rather than inventing a behaviour.
|
|
24
40
|
const childspec = spec?.mark || spec?.dup ?
|
|
25
|
-
{ mark: spec?.mark, dup: spec?.dup
|
|
41
|
+
{ mark: spec?.mark, dup: spec?.dup, path: out.path }
|
|
42
|
+
: { path: out.path };
|
|
26
43
|
out.peg = this.peg.map((entry) => entry.clone(ctx, childspec));
|
|
27
44
|
return out;
|
|
28
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JunctionVal.js","sourceRoot":"","sources":["../../src/val/JunctionVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,6CAAyC;AAGzC,iFAAiF;AACjF,gCAAgC;AAChC,MAAe,WAAY,SAAQ,uBAAU;IAG3C,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QANlB,eAAU,GAAG,IAAI,CAAA;IAOjB,CAAC;IAED,kBAAkB;IAClB,MAAM,CAAC,IAAS;QACd,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACnB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,GAAiB,EAAE,IAAc;QACrC,IAAI,GAAG,GAAI,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAiB,CAAA;QACjD,6DAA6D;QAC7D,
|
|
1
|
+
{"version":3,"file":"JunctionVal.js","sourceRoot":"","sources":["../../src/val/JunctionVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,6CAAyC;AAGzC,iFAAiF;AACjF,gCAAgC;AAChC,MAAe,WAAY,SAAQ,uBAAU;IAG3C,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QANlB,eAAU,GAAG,IAAI,CAAA;IAOjB,CAAC;IAED,kBAAkB;IAClB,MAAM,CAAC,IAAS;QACd,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACnB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,GAAiB,EAAE,IAAc;QACrC,IAAI,GAAG,GAAI,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAiB,CAAA;QACjD,mEAAmE;QACnE,kEAAkE;QAClE,mEAAmE;QACnE,mEAAmE;QACnE,eAAe;QACf,EAAE;QACF,mEAAmE;QACnE,kEAAkE;QAClE,mEAAmE;QACnE,6DAA6D;QAC7D,iEAAiE;QACjE,mEAAmE;QACnE,mEAAmE;QACnE,+DAA+D;QAC/D,2DAA2D;QAC3D,qCAAqC;QACrC,EAAE;QACF,iEAAiE;QACjE,mEAAmE;QACnE,0DAA0D;QAC1D,MAAM,SAAS,GAAQ,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;YAC9C,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE;YACpD,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAA;QACtB,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAA;QACnE,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;YAC7B,OAAQ,CAAS,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACxE,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA,CAAC,uBAAuB;QACzD,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAA,CAAC,4CAA4C;IAChF,CAAC;CAIF,CAAC,iCAAiC;QAIjC,WAAW"}
|
package/dist/val/ListVal.js
CHANGED
|
@@ -8,7 +8,6 @@ const utility_1 = require("../utility");
|
|
|
8
8
|
const err_1 = require("../err");
|
|
9
9
|
const top_1 = require("./top");
|
|
10
10
|
const ConjunctVal_1 = require("./ConjunctVal");
|
|
11
|
-
const NilVal_1 = require("./NilVal");
|
|
12
11
|
const BagVal_1 = require("./BagVal");
|
|
13
12
|
const Val_1 = require("./Val");
|
|
14
13
|
const provenance_1 = require("../provenance");
|
|
@@ -33,21 +32,6 @@ class ListVal extends BagVal_1.BagVal {
|
|
|
33
32
|
new ConjunctVal_1.ConjunctVal({ peg: spread.v }, ctx) :
|
|
34
33
|
spread.v[0] :
|
|
35
34
|
spread.v;
|
|
36
|
-
// Clearing rule 3 (G4 phase 1): a CONSTANT id in the template
|
|
37
|
-
// would declare every child to be one entity. The refusal
|
|
38
|
-
// replaces the template, so it reaches every child and the
|
|
39
|
-
// bag itself (see the isNil arm where the spread is applied)
|
|
40
|
-
// as ONE nil identity — made here, once, rather than per
|
|
41
|
-
// pass, so the report names it once.
|
|
42
|
-
const idfn = (0, utility_1.constantIdFunc)(this.spread.cj);
|
|
43
|
-
if (undefined !== idfn) {
|
|
44
|
-
const nil = new NilVal_1.NilVal({ why: 'id_spread' }, ctx);
|
|
45
|
-
nil.site.row = idfn.site.row;
|
|
46
|
-
nil.site.col = idfn.site.col;
|
|
47
|
-
nil.site.url = idfn.site.url;
|
|
48
|
-
nil.primary = idfn;
|
|
49
|
-
this.spread.cj = nil;
|
|
50
|
-
}
|
|
51
35
|
// let tmv = Array.isArray(spread.v) ? spread.v : [spread.v]
|
|
52
36
|
// this.spread.cj = new ConjunctVal({ peg: tmv }, ctx)
|
|
53
37
|
}
|
|
@@ -56,6 +40,11 @@ class ListVal extends BagVal_1.BagVal {
|
|
|
56
40
|
// NOTE: order of keys is not preserved!
|
|
57
41
|
// not possible in any case - consider {a,b} unify {b,a}
|
|
58
42
|
unify(peer, ctx) {
|
|
43
|
+
// A rel() peer drives: the relation constraint rewrites this list
|
|
44
|
+
// leaf by leaf (RELATIONS.0.md §3.2); see the twin arm in MapVal.
|
|
45
|
+
if (true === peer?.isRel) {
|
|
46
|
+
return peer.unify(this, ctx);
|
|
47
|
+
}
|
|
59
48
|
const TOP = (0, top_1.top)();
|
|
60
49
|
peer = peer ?? TOP;
|
|
61
50
|
// A sizing residual (`length`, `unique`) sorts AFTER containers in a
|
|
@@ -67,6 +56,18 @@ class ListVal extends BagVal_1.BagVal {
|
|
|
67
56
|
if (true === peer.isConstraint) {
|
|
68
57
|
return peer.unify(this, ctx);
|
|
69
58
|
}
|
|
59
|
+
// A DISJUNCT ALTERNATIVE MATCHES ITS OWN LENGTH (BUGS.md §52
|
|
60
|
+
// regime 4, the X-C3 adjudication): in a trial, a literal list
|
|
61
|
+
// with no spread admits only a peer list of the same length -- a
|
|
62
|
+
// spread makes it variadic. Outside trials the ordinary
|
|
63
|
+
// elementwise merge stands (two statements of one list are one
|
|
64
|
+
// list), so `[] | [&: T]` stops admitting every list through the
|
|
65
|
+
// empty arm while `a: [] a: [1]` still merges.
|
|
66
|
+
if (true === ctx._trialMode && true === peer.isList
|
|
67
|
+
&& null == this.spread.cj && null == peer.spread.cj
|
|
68
|
+
&& this.peg.length !== peer.peg.length) {
|
|
69
|
+
return (0, err_1.makeNilErr)(ctx, 'list_length', this, peer);
|
|
70
|
+
}
|
|
70
71
|
const te = ctx.explain && (0, utility_1.explainOpen)(ctx, ctx.explain, 'List', this, peer);
|
|
71
72
|
let done = true;
|
|
72
73
|
let exit = false;
|
|
@@ -90,20 +91,6 @@ class ListVal extends BagVal_1.BagVal {
|
|
|
90
91
|
if (!exit) {
|
|
91
92
|
out.dc = this.dc + 1;
|
|
92
93
|
let spread_cj = out.spread.cj || TOP;
|
|
93
|
-
// The template REFUSED at construction (clearing rule 3, G4
|
|
94
|
-
// phase 1): the bag itself is that refusal. Returning the nil
|
|
95
|
-
// here rather than only letting it reach the children is what
|
|
96
|
-
// makes an EMPTY bag with a bad template an error too — there
|
|
97
|
-
// are no children to carry it.
|
|
98
|
-
//
|
|
99
|
-
// Narrow to THIS code on purpose. A nil spread from any other
|
|
100
|
-
// cause keeps its existing behaviour of driving every key
|
|
101
|
-
// (coverage3 `nil-spread-drives-every-key`): a template that has
|
|
102
|
-
// merely not resolved yet must not permanently kill the bag that
|
|
103
|
-
// holds it.
|
|
104
|
-
if ('id_spread' === spread_cj.why) {
|
|
105
|
-
return spread_cj;
|
|
106
|
-
}
|
|
107
94
|
// Always unify children first
|
|
108
95
|
for (let key in this.peg) {
|
|
109
96
|
const keyctx = ctx.descend(key);
|
|
@@ -115,7 +102,7 @@ class ListVal extends BagVal_1.BagVal {
|
|
|
115
102
|
// instead of having the template met into it a second time.
|
|
116
103
|
// Re-applying is the identity for a template that has already
|
|
117
104
|
// RESOLVED, which is why the missing guard went unnoticed here
|
|
118
|
-
// — but a template that residuates (`&:
|
|
105
|
+
// — but a template that residuates (`&: {k: key(1)}`, G8 phase
|
|
119
106
|
// 0) is not yet a value to be idempotent about, so each pass
|
|
120
107
|
// conjoined another copy and the element's canon DOUBLED per
|
|
121
108
|
// pass. The old `ctx.cc < 3` key delay hid it by ending the
|
|
@@ -124,10 +111,10 @@ class ListVal extends BagVal_1.BagVal {
|
|
|
124
111
|
// does.
|
|
125
112
|
let oval;
|
|
126
113
|
if (!spread_cj.isTop
|
|
127
|
-
&& child._spr ===
|
|
114
|
+
&& child._spr === (0, Val_1.spreadId)(spread_cj)) {
|
|
128
115
|
oval = child.done ? child :
|
|
129
116
|
(0, unify_1.unite)(te ? keyctx.clone({ explain: (0, utility_1.ec)(te, 'PEG:' + key) }) : keyctx, child, TOP, 'list-own');
|
|
130
|
-
oval._spr = spread_cj
|
|
117
|
+
oval._spr = (0, Val_1.spreadId)(spread_cj);
|
|
131
118
|
}
|
|
132
119
|
else {
|
|
133
120
|
const key_spread_cj = spread_cj.spreadClone(keyctx);
|
|
@@ -152,7 +139,7 @@ class ListVal extends BagVal_1.BagVal {
|
|
|
152
139
|
(0, unify_1.unite)(te ? keyctx.clone({ explain: (0, utility_1.ec)(te, 'PEG:' + key) }) : keyctx, child, key_spread_cj, 'list-own');
|
|
153
140
|
if (!spread_cj.isTop && !oval.isNil) {
|
|
154
141
|
;
|
|
155
|
-
oval._spr = spread_cj
|
|
142
|
+
oval._spr = (0, Val_1.spreadId)(spread_cj);
|
|
156
143
|
}
|
|
157
144
|
}
|
|
158
145
|
out.peg[key] = oval;
|
|
@@ -188,6 +175,12 @@ class ListVal extends BagVal_1.BagVal {
|
|
|
188
175
|
done = (done && type_1.DONE === oval.dc);
|
|
189
176
|
}
|
|
190
177
|
}
|
|
178
|
+
else if (true === peer.isContainerKind) {
|
|
179
|
+
// The container KIND delegates to its own arm, exactly as a
|
|
180
|
+
// scalar delegates to a ScalarKindVal peer (MapVal has the
|
|
181
|
+
// same arm).
|
|
182
|
+
out = peer.unify(this, ctx);
|
|
183
|
+
}
|
|
191
184
|
else if (!peer.isTop) {
|
|
192
185
|
out = (0, err_1.makeNilErr)(ctx, 'list', this, peer);
|
|
193
186
|
}
|
package/dist/val/ListVal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListVal.js","sourceRoot":"","sources":["../../src/val/ListVal.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ListVal.js","sourceRoot":"","sources":["../../src/val/ListVal.ts"],"names":[],"mappings":"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"}
|
package/dist/val/MapVal.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { BagVal } from './BagVal';
|
|
|
4
4
|
declare class MapVal extends BagVal {
|
|
5
5
|
isMap: boolean;
|
|
6
6
|
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
7
|
+
aliasDeclarationsAreRooted(ctx: AontuContext): Val | undefined;
|
|
7
8
|
unify(peer: Val, ctx: AontuContext): Val;
|
|
8
9
|
spreadClone(ctx: AontuContext): Val;
|
|
9
10
|
clone(ctx: AontuContext, spec?: ValSpec): Val;
|
package/dist/val/MapVal.js
CHANGED
|
@@ -7,6 +7,7 @@ const unify_1 = require("../unify");
|
|
|
7
7
|
const utility_1 = require("../utility");
|
|
8
8
|
const err_1 = require("../err");
|
|
9
9
|
const top_1 = require("./top");
|
|
10
|
+
const RefVal_1 = require("./RefVal");
|
|
10
11
|
const ConjunctVal_1 = require("./ConjunctVal");
|
|
11
12
|
const NilVal_1 = require("./NilVal");
|
|
12
13
|
const BagVal_1 = require("./BagVal");
|
|
@@ -44,6 +45,15 @@ function snapshotRefSpread(cj, ctx) {
|
|
|
44
45
|
// so a type-wrapped ref behaves like a plain-map ref spread.
|
|
45
46
|
if (tgt && tgt.isTypeFunc)
|
|
46
47
|
tgt = tgt.peg?.[0];
|
|
48
|
+
// A pending type()/hide() CALL is not yet a value to snapshot
|
|
49
|
+
// (ADR-005, the same rule find's non-snap path defers on): cached
|
|
50
|
+
// here it resolves at every destination and STAMPS marks the
|
|
51
|
+
// clearing walk ran too early to clear -- a mutual recursive
|
|
52
|
+
// schema's members vanished from generation this way. No cache;
|
|
53
|
+
// retry once the wrapper has resolved at its own field.
|
|
54
|
+
if (tgt && (0, RefVal_1.pendingMarkWrapper)(tgt)) {
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
47
57
|
// Only snapshot a found, path-dependent target. If the target is not
|
|
48
58
|
// present yet (it may be introduced by a later conjunct/merge), do
|
|
49
59
|
// NOT cache — retry on the next fixpoint pass.
|
|
@@ -86,28 +96,39 @@ class MapVal extends BagVal_1.BagVal {
|
|
|
86
96
|
new ConjunctVal_1.ConjunctVal({ peg: spread.v }, ctx) :
|
|
87
97
|
spread.v[0] :
|
|
88
98
|
spread.v;
|
|
89
|
-
// Clearing rule 3 (G4 phase 1): a CONSTANT id in the template
|
|
90
|
-
// would declare every child to be one entity. The refusal
|
|
91
|
-
// replaces the template, so it reaches every child and the
|
|
92
|
-
// bag itself (see the isNil arm where the spread is applied)
|
|
93
|
-
// as ONE nil identity — made here, once, rather than per
|
|
94
|
-
// pass, so the report names it once.
|
|
95
|
-
const idfn = (0, utility_1.constantIdFunc)(this.spread.cj);
|
|
96
|
-
if (undefined !== idfn) {
|
|
97
|
-
const nil = new NilVal_1.NilVal({ why: 'id_spread' }, ctx);
|
|
98
|
-
nil.site.row = idfn.site.row;
|
|
99
|
-
nil.site.col = idfn.site.col;
|
|
100
|
-
nil.site.url = idfn.site.url;
|
|
101
|
-
nil.primary = idfn;
|
|
102
|
-
this.spread.cj = nil;
|
|
103
|
-
}
|
|
104
99
|
}
|
|
105
100
|
}
|
|
106
101
|
// console.log('MAPVAL-ctor', this.type, spec)
|
|
107
102
|
}
|
|
108
103
|
// NOTE: order of keys is not preserved!
|
|
109
104
|
// not possible in any case - consider {a,b} unify {b,a}
|
|
105
|
+
// ALIAS DECLARATIONS MUST SIT AT THE DOCUMENT ROOT. Stated on the
|
|
106
|
+
// VALUE rather than at the parse, because the parse cannot see it: an
|
|
107
|
+
// INCLUDED file's declarations are at the root of their own text, and
|
|
108
|
+
// only once the loaded map is placed does it become apparent that
|
|
109
|
+
// root is not the document's. `%name` is spelled as a reference from
|
|
110
|
+
// the document root, so an included file's own `%b` would otherwise
|
|
111
|
+
// reach the INCLUDER's `%b` -- cross-file capture, the hazard the
|
|
112
|
+
// sigil exists to prevent, one level up.
|
|
113
|
+
//
|
|
114
|
+
// P1 is single-file by construction; carrying a name ACROSS files is
|
|
115
|
+
// what `export` and the destructure are for (P2, not built), and this
|
|
116
|
+
// refusal is what keeps the two from being confused meanwhile. Pathed
|
|
117
|
+
// at the DECLARATION, which is what is wrong, not at the map.
|
|
118
|
+
aliasDeclarationsAreRooted(ctx) {
|
|
119
|
+
if (0 === this.aliasKeys.length || 0 === this.path.length) {
|
|
120
|
+
return undefined;
|
|
121
|
+
}
|
|
122
|
+
const nv = new NilVal_1.NilVal({ why: 'alias_not_toplevel' }, ctx);
|
|
123
|
+
nv.site = this.site;
|
|
124
|
+
nv.path = [...this.path, this.aliasKeys[0]];
|
|
125
|
+
return nv;
|
|
126
|
+
}
|
|
110
127
|
unify(peer, ctx) {
|
|
128
|
+
const arooted = this.aliasDeclarationsAreRooted(ctx);
|
|
129
|
+
if (undefined !== arooted) {
|
|
130
|
+
return arooted;
|
|
131
|
+
}
|
|
111
132
|
// console.log('MAPVAL-UNIFY', this.id, this.canon, peer.id, peer.canon)
|
|
112
133
|
const TOP = (0, top_1.top)();
|
|
113
134
|
peer = peer ?? TOP;
|
|
@@ -127,8 +148,16 @@ class MapVal extends BagVal_1.BagVal {
|
|
|
127
148
|
let out = (peer.isTop ? this : new MapVal({ peg: {} }, ctx));
|
|
128
149
|
out.closed = this.closed;
|
|
129
150
|
out.optionalKeys = [...this.optionalKeys];
|
|
151
|
+
out.aliasKeys = [...this.aliasKeys];
|
|
130
152
|
out.spread.cj = this.spread.cj;
|
|
131
153
|
out.site = this.site;
|
|
154
|
+
// A rel() peer DRIVES whichever side the fold hands it on: the
|
|
155
|
+
// relation constraint rewrites this container leaf by leaf
|
|
156
|
+
// (RELATIONS.0.md §3.2), exactly as a sizing residual takes the
|
|
157
|
+
// driver's seat above.
|
|
158
|
+
if (true === peer?.isRel) {
|
|
159
|
+
return peer.unify(this, te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'REL') }) : ctx);
|
|
160
|
+
}
|
|
132
161
|
if (peer instanceof MapVal) {
|
|
133
162
|
if (!this.closed && peer.closed) {
|
|
134
163
|
out = peer.unify(this, te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'PMC') }) : ctx);
|
|
@@ -176,20 +205,6 @@ class MapVal extends BagVal_1.BagVal {
|
|
|
176
205
|
out.dc = this.dc + 1;
|
|
177
206
|
// let newtype = this.type || peer.type
|
|
178
207
|
let spread_cj = out.spread.cj ?? TOP;
|
|
179
|
-
// The template REFUSED at construction (clearing rule 3, G4
|
|
180
|
-
// phase 1): the bag itself is that refusal. Returning the nil
|
|
181
|
-
// here rather than only letting it reach the children is what
|
|
182
|
-
// makes an EMPTY bag with a bad template an error too — there
|
|
183
|
-
// are no children to carry it.
|
|
184
|
-
//
|
|
185
|
-
// Narrow to THIS code on purpose. A nil spread from any other
|
|
186
|
-
// cause keeps its existing behaviour of driving every key
|
|
187
|
-
// (coverage3 `nil-spread-drives-every-key`): a template that has
|
|
188
|
-
// merely not resolved yet must not permanently kill the bag that
|
|
189
|
-
// holds it.
|
|
190
|
-
if ('id_spread' === spread_cj.why) {
|
|
191
|
-
return spread_cj;
|
|
192
|
-
}
|
|
193
208
|
// Snapshot a path-dependent *ref* spread to its structural target
|
|
194
209
|
// once (while inner key()/path() funcs are still unresolved), so
|
|
195
210
|
// later fixpoint passes don't re-resolve the ref against the mutated
|
|
@@ -226,10 +241,10 @@ class MapVal extends BagVal_1.BagVal {
|
|
|
226
241
|
// No `undefined !== child` here: propagateMarks above already
|
|
227
242
|
// dereferenced it, so a missing child would have thrown there.
|
|
228
243
|
if (!spread_cj.isTop
|
|
229
|
-
&& child._spr ===
|
|
244
|
+
&& child._spr === (0, Val_1.spreadId)(spread_cj)) {
|
|
230
245
|
oval = child.done ? child :
|
|
231
246
|
(0, unify_1.unite)(te ? keyctx.clone({ explain: (0, utility_1.ec)(te, 'KEY:' + key) }) : keyctx, child, TOP, 'map-own');
|
|
232
|
-
oval._spr = spread_cj
|
|
247
|
+
oval._spr = (0, Val_1.spreadId)(spread_cj);
|
|
233
248
|
}
|
|
234
249
|
else {
|
|
235
250
|
const key_spread_cj = spread_cj.spreadClone(keyctx);
|
|
@@ -255,7 +270,7 @@ class MapVal extends BagVal_1.BagVal {
|
|
|
255
270
|
(0, unify_1.unite)(te ? keyctx.clone({ explain: (0, utility_1.ec)(te, 'KEY:' + key) }) : keyctx, child, key_spread_cj, 'map-own');
|
|
256
271
|
if (!spread_cj.isTop && !oval.isNil) {
|
|
257
272
|
;
|
|
258
|
-
oval._spr = spread_cj
|
|
273
|
+
oval._spr = (0, Val_1.spreadId)(spread_cj);
|
|
259
274
|
}
|
|
260
275
|
}
|
|
261
276
|
out.peg[key] = oval;
|
|
@@ -274,6 +289,12 @@ class MapVal extends BagVal_1.BagVal {
|
|
|
274
289
|
if (upeer.optionalKeys.includes(peerkey) && !out.optionalKeys.includes(peerkey)) {
|
|
275
290
|
out.optionalKeys.push(peerkey);
|
|
276
291
|
}
|
|
292
|
+
// ... and so is an alias declaration, for the same reason:
|
|
293
|
+
// two statements for one map are one map, and a name declared
|
|
294
|
+
// in either is declared in the result.
|
|
295
|
+
if (upeer.aliasKeys.includes(peerkey) && !out.aliasKeys.includes(peerkey)) {
|
|
296
|
+
out.aliasKeys.push(peerkey);
|
|
297
|
+
}
|
|
277
298
|
let child = out.peg[peerkey];
|
|
278
299
|
const peerctx = ctx.descend(peerkey);
|
|
279
300
|
let oval = out.peg[peerkey] =
|
|
@@ -298,13 +319,24 @@ class MapVal extends BagVal_1.BagVal {
|
|
|
298
319
|
// Same apply-once discipline as the own-key loop: once the
|
|
299
320
|
// constraint is merged into the value (marked with the
|
|
300
321
|
// constraint's id), later passes only self-unify.
|
|
301
|
-
if (oval._spr !==
|
|
322
|
+
if (oval._spr !== (0, Val_1.spreadId)(spread_cj)) {
|
|
302
323
|
let key_spread_cj = spread_cj.spreadClone(peerctx);
|
|
324
|
+
// A SPREAD IS A SPREAD FROM EITHER SIDE. The own-key loop
|
|
325
|
+
// above marks its template so `why` can say the
|
|
326
|
+
// contribution came from `&:` rather than from the key;
|
|
327
|
+
// this arm did not, so the SAME document reported the
|
|
328
|
+
// role or dropped it depending on whether the template
|
|
329
|
+
// and the keys were written in one statement or two --
|
|
330
|
+
// `services: &: {..}` plus `services: {web:{}}` took the
|
|
331
|
+
// peer path and lost `(spread)` (use-cases/BUGS.md §55).
|
|
332
|
+
if (undefined !== peerctx.prov) {
|
|
333
|
+
(0, provenance_1.markSpread)(key_spread_cj);
|
|
334
|
+
}
|
|
303
335
|
oval = out.peg[peerkey] =
|
|
304
336
|
(0, unify_1.unite)(te ? peerctx.clone({ explain: (0, utility_1.ec)(te, 'PSP:' + peerkey) }) : peerctx, oval, key_spread_cj, 'map-peer-spread');
|
|
305
337
|
if (!spread_cj.isTop && !oval.isNil) {
|
|
306
338
|
;
|
|
307
|
-
oval._spr = spread_cj
|
|
339
|
+
oval._spr = (0, Val_1.spreadId)(spread_cj);
|
|
308
340
|
}
|
|
309
341
|
}
|
|
310
342
|
}
|
|
@@ -312,6 +344,12 @@ class MapVal extends BagVal_1.BagVal {
|
|
|
312
344
|
done = (done && type_1.DONE === oval.dc);
|
|
313
345
|
}
|
|
314
346
|
}
|
|
347
|
+
else if (true === peer.isContainerKind) {
|
|
348
|
+
// The container KIND delegates to its own arm, exactly as a
|
|
349
|
+
// scalar delegates to a ScalarKindVal peer: the kind knows to
|
|
350
|
+
// admit this map, and this map knows nothing about kinds.
|
|
351
|
+
out = peer.unify(this, ctx);
|
|
352
|
+
}
|
|
315
353
|
else if (!peer.isTop) {
|
|
316
354
|
out = (0, err_1.makeNilErr)(ctx, 'map', this, peer);
|
|
317
355
|
}
|
|
@@ -378,6 +416,7 @@ class MapVal extends BagVal_1.BagVal {
|
|
|
378
416
|
};
|
|
379
417
|
out.closed = this.closed;
|
|
380
418
|
out.optionalKeys = [...this.optionalKeys];
|
|
419
|
+
out.aliasKeys = [...this.aliasKeys];
|
|
381
420
|
return out;
|
|
382
421
|
}
|
|
383
422
|
clone(ctx, spec) {
|
|
@@ -402,6 +441,7 @@ class MapVal extends BagVal_1.BagVal {
|
|
|
402
441
|
}
|
|
403
442
|
out.closed = this.closed;
|
|
404
443
|
out.optionalKeys = [...this.optionalKeys];
|
|
444
|
+
out.aliasKeys = [...this.aliasKeys];
|
|
405
445
|
// out.from = this.from
|
|
406
446
|
// console.log('MAPVAL-CLONE', this.canon, '->', out.canon)
|
|
407
447
|
return out;
|
|
@@ -411,7 +451,14 @@ class MapVal extends BagVal_1.BagVal {
|
|
|
411
451
|
// independent of insertion/unification order and matches the Go
|
|
412
452
|
// port. A bare .sort() is UTF-16 code-unit order, which puts an
|
|
413
453
|
// astral key ahead of everything in U+E000-U+FFFF -- see cmpCodePoint.
|
|
414
|
-
|
|
454
|
+
// An alias declaration is not part of the document, so canon does
|
|
455
|
+
// not render it: a document with aliases and the document with
|
|
456
|
+
// every alias written out longhand must produce the same text and
|
|
457
|
+
// therefore the same `aon1-` hash. That is the sharpest statement
|
|
458
|
+
// of what an alias IS -- a name for a value, and nothing more.
|
|
459
|
+
let keys = Object.keys(this.peg)
|
|
460
|
+
.filter(k => !this.aliasKeys.includes(k))
|
|
461
|
+
.sort(keyorder_1.cmpCodePoint);
|
|
415
462
|
return '' +
|
|
416
463
|
// this.errcanon() +
|
|
417
464
|
// (this.mark.type ? '<type>' : '') +
|