aontu 0.40.0 → 0.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/dist/aontu.js +7 -0
  2. package/dist/aontu.js.map +1 -1
  3. package/dist/ctx.d.ts +14 -2
  4. package/dist/ctx.js +56 -9
  5. package/dist/ctx.js.map +1 -1
  6. package/dist/err.js +36 -15
  7. package/dist/err.js.map +1 -1
  8. package/dist/lang.d.ts +5 -1
  9. package/dist/lang.js +100 -24
  10. package/dist/lang.js.map +1 -1
  11. package/dist/tsconfig.tsbuildinfo +1 -1
  12. package/dist/type.d.ts +5 -0
  13. package/dist/type.js.map +1 -1
  14. package/dist/unify.js +372 -55
  15. package/dist/unify.js.map +1 -1
  16. package/dist/utility.js +6 -2
  17. package/dist/utility.js.map +1 -1
  18. package/dist/val/BagVal.d.ts +0 -3
  19. package/dist/val/BagVal.js +6 -6
  20. package/dist/val/BagVal.js.map +1 -1
  21. package/dist/val/ConjunctVal.d.ts +1 -1
  22. package/dist/val/ConjunctVal.js +138 -15
  23. package/dist/val/ConjunctVal.js.map +1 -1
  24. package/dist/val/CopyFuncVal.js +3 -2
  25. package/dist/val/CopyFuncVal.js.map +1 -1
  26. package/dist/val/DisjunctVal.js +40 -10
  27. package/dist/val/DisjunctVal.js.map +1 -1
  28. package/dist/val/ExpectVal.js +17 -4
  29. package/dist/val/ExpectVal.js.map +1 -1
  30. package/dist/val/FuncBaseVal.js +2 -2
  31. package/dist/val/FuncBaseVal.js.map +1 -1
  32. package/dist/val/IntegerVal.js +1 -1
  33. package/dist/val/IntegerVal.js.map +1 -1
  34. package/dist/val/JunctionVal.d.ts +1 -0
  35. package/dist/val/JunctionVal.js +6 -1
  36. package/dist/val/JunctionVal.js.map +1 -1
  37. package/dist/val/KeyFuncVal.js +0 -2
  38. package/dist/val/KeyFuncVal.js.map +1 -1
  39. package/dist/val/ListVal.d.ts +1 -0
  40. package/dist/val/ListVal.js +36 -65
  41. package/dist/val/ListVal.js.map +1 -1
  42. package/dist/val/MapVal.d.ts +3 -2
  43. package/dist/val/MapVal.js +71 -91
  44. package/dist/val/MapVal.js.map +1 -1
  45. package/dist/val/MoveFuncVal.d.ts +2 -1
  46. package/dist/val/MoveFuncVal.js +78 -13
  47. package/dist/val/MoveFuncVal.js.map +1 -1
  48. package/dist/val/NilVal.d.ts +2 -1
  49. package/dist/val/NilVal.js +15 -1
  50. package/dist/val/NilVal.js.map +1 -1
  51. package/dist/val/OpBaseVal.js +1 -1
  52. package/dist/val/OpBaseVal.js.map +1 -1
  53. package/dist/val/PathFuncVal.js +25 -4
  54. package/dist/val/PathFuncVal.js.map +1 -1
  55. package/dist/val/{RefVal.d.ts → PathVal.d.ts} +4 -3
  56. package/dist/val/{RefVal.js → PathVal.js} +75 -77
  57. package/dist/val/PathVal.js.map +1 -0
  58. package/dist/val/PlusOpVal.d.ts +1 -1
  59. package/dist/val/PrefVal.js +20 -7
  60. package/dist/val/PrefVal.js.map +1 -1
  61. package/dist/val/SpreadVal.d.ts +20 -0
  62. package/dist/val/SpreadVal.js +194 -0
  63. package/dist/val/SpreadVal.js.map +1 -0
  64. package/dist/val/Val.d.ts +4 -1
  65. package/dist/val/Val.js +88 -44
  66. package/dist/val/Val.js.map +1 -1
  67. package/dist/val/VarVal.js +3 -3
  68. package/dist/val/VarVal.js.map +1 -1
  69. package/package.json +6 -7
  70. package/src/aontu.ts +9 -1
  71. package/src/ctx.ts +95 -11
  72. package/src/err.ts +37 -17
  73. package/src/lang.ts +113 -23
  74. package/src/tsconfig.json +2 -1
  75. package/src/type.ts +5 -0
  76. package/src/unify.ts +390 -64
  77. package/src/utility.ts +5 -2
  78. package/src/val/BagVal.ts +6 -7
  79. package/src/val/ConjunctVal.ts +133 -15
  80. package/src/val/CopyFuncVal.ts +3 -2
  81. package/src/val/DisjunctVal.ts +43 -11
  82. package/src/val/ExpectVal.ts +19 -5
  83. package/src/val/FuncBaseVal.ts +2 -2
  84. package/src/val/IntegerVal.ts +1 -1
  85. package/src/val/JunctionVal.ts +5 -1
  86. package/src/val/KeyFuncVal.ts +0 -3
  87. package/src/val/ListVal.ts +40 -86
  88. package/src/val/MapVal.ts +78 -119
  89. package/src/val/MoveFuncVal.ts +79 -14
  90. package/src/val/NilVal.ts +17 -1
  91. package/src/val/OpBaseVal.ts +1 -1
  92. package/src/val/PathFuncVal.ts +29 -4
  93. package/src/val/PathVal.ts +435 -0
  94. package/src/val/PrefVal.ts +21 -8
  95. package/src/val/{RefVal.ts → RefVal.ts.old} +31 -20
  96. package/src/val/SpreadVal.ts +275 -0
  97. package/src/val/Val.ts +141 -50
  98. package/src/val/VarVal.ts +3 -3
  99. package/dist/val/RefVal.js.map +0 -1
package/dist/lang.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lang.js","sourceRoot":"","sources":["../src/lang.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lang.js","sourceRoot":"","sources":["../src/lang.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"root":["../src/aontu.ts","../src/ctx.ts","../src/err.ts","../src/hints.ts","../src/lang.ts","../src/site.ts","../src/type.ts","../src/unify.ts","../src/utility.ts","../src/val/bagval.ts","../src/val/booleanval.ts","../src/val/closefuncval.ts","../src/val/conjunctval.ts","../src/val/copyfuncval.ts","../src/val/disjunctval.ts","../src/val/expectval.ts","../src/val/featureval.ts","../src/val/funcbaseval.ts","../src/val/hidefuncval.ts","../src/val/integerval.ts","../src/val/junctionval.ts","../src/val/keyfuncval.ts","../src/val/listval.ts","../src/val/lowerfuncval.ts","../src/val/mapval.ts","../src/val/movefuncval.ts","../src/val/nilval.ts","../src/val/nullval.ts","../src/val/numberval.ts","../src/val/opbaseval.ts","../src/val/openfuncval.ts","../src/val/pathfuncval.ts","../src/val/plusopval.ts","../src/val/preffuncval.ts","../src/val/prefval.ts","../src/val/refval.ts","../src/val/scalarkindval.ts","../src/val/scalarval.ts","../src/val/stringval.ts","../src/val/superfuncval.ts","../src/val/topval.ts","../src/val/typefuncval.ts","../src/val/upperfuncval.ts","../src/val/val.ts","../src/val/varval.ts","../src/val/top.ts","../src/val/valutil.ts"],"version":"5.9.3"}
1
+ {"root":["../src/aontu.ts","../src/ctx.ts","../src/err.ts","../src/hints.ts","../src/lang.ts","../src/site.ts","../src/type.ts","../src/unify.ts","../src/utility.ts","../src/val/bagval.ts","../src/val/booleanval.ts","../src/val/closefuncval.ts","../src/val/conjunctval.ts","../src/val/copyfuncval.ts","../src/val/disjunctval.ts","../src/val/expectval.ts","../src/val/featureval.ts","../src/val/funcbaseval.ts","../src/val/hidefuncval.ts","../src/val/integerval.ts","../src/val/junctionval.ts","../src/val/keyfuncval.ts","../src/val/listval.ts","../src/val/lowerfuncval.ts","../src/val/mapval.ts","../src/val/movefuncval.ts","../src/val/nilval.ts","../src/val/nullval.ts","../src/val/numberval.ts","../src/val/opbaseval.ts","../src/val/openfuncval.ts","../src/val/pathfuncval.ts","../src/val/pathval.ts","../src/val/plusopval.ts","../src/val/preffuncval.ts","../src/val/prefval.ts","../src/val/scalarkindval.ts","../src/val/scalarval.ts","../src/val/spreadval.ts","../src/val/stringval.ts","../src/val/superfuncval.ts","../src/val/topval.ts","../src/val/typefuncval.ts","../src/val/upperfuncval.ts","../src/val/val.ts","../src/val/varval.ts","../src/val/top.ts","../src/val/valutil.ts"],"version":"6.0.3"}
package/dist/type.d.ts CHANGED
@@ -18,6 +18,11 @@ type AontuOptions = {
18
18
  collect?: boolean;
19
19
  err?: any[];
20
20
  explain?: any[];
21
+ preload?: {
22
+ folders: string[];
23
+ ext?: string[];
24
+ recursive?: boolean;
25
+ };
21
26
  };
22
27
  declare const DEFAULT_OPTS: () => AontuOptions;
23
28
  type ValMap = {
package/dist/type.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"type.js","sourceRoot":"","sources":["../src/type.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AASzD,mCAA6C;AAyD3C,qFAzDY,UAAI,OAyDZ;AACJ,uFA1DkB,YAAM,OA0DlB;AAhCR,MAAM,YAAY,GAAuB,GAAG,EAAE;IAC5C,OAAO;QACL,KAAK,EAAE,CAAC,CAAC;QACT,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,KAAK;KACb,CAAA;AACH,CAAC,CAAA;AA2BC,oCAAY"}
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../src/type.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AASzD,mCAA6C;AA8D3C,qFA9DY,UAAI,OA8DZ;AACJ,uFA/DkB,YAAM,OA+DlB;AAhCR,MAAM,YAAY,GAAuB,GAAG,EAAE;IAC5C,OAAO;QACL,KAAK,EAAE,CAAC,CAAC;QACT,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,KAAK;KACb,CAAA;AACH,CAAC,CAAA;AA2BC,oCAAY"}
package/dist/unify.js CHANGED
@@ -5,103 +5,159 @@ exports.unite = exports.Unify = void 0;
5
5
  const ctx_1 = require("./ctx");
6
6
  const type_1 = require("./type");
7
7
  const err_1 = require("./err");
8
+ const StringVal_1 = require("./val/StringVal");
9
+ const PathVal_1 = require("./val/PathVal");
8
10
  const lang_1 = require("./lang");
9
11
  const utility_1 = require("./utility");
10
12
  const top_1 = require("./val/top");
11
13
  // TODO: FIX: false positive when too many top unifications
12
- const MAXCYCLE = 999;
14
+ const MAXCYCLE = 9999;
13
15
  // Vals should only have to unify downwards (in .unify) over Vals they understand.
14
16
  // and for complex Vals, TOP, which means self unify if not yet done
15
17
  const unite = (ctx, a, b, whence) => {
18
+ // Fast paths that don't recurse and so don't need cycle-detection:
19
+ // short-circuit before the saw-key build and seen-map lookup (which
20
+ // together cost ~2.5µs per call). Only return early when the result
21
+ // is already `done` — a non-done result would need the trailing
22
+ // top() unify below.
23
+ //
24
+ // A6a: same ref, already done
25
+ // A6b: different ref but same id + both done
26
+ // P1: exact-equal scalars that are already done (14% of calls
27
+ // in foo-sdk, ~100% with a.done=true)
28
+ if (a !== undefined && a !== null) {
29
+ if (a === b) {
30
+ if (a.done)
31
+ return a;
32
+ }
33
+ else if (b !== undefined && b !== null) {
34
+ if (a.done && b.done) {
35
+ if (a.id === b.id)
36
+ return a;
37
+ if (a.constructor === b.constructor && a.peg === b.peg
38
+ && !a.isNil && !b.isNil
39
+ && !a.isConjunct && !a.isDisjunct
40
+ && !a.isPath && !a.isPref && !a.isFunc && !a.isExpect) {
41
+ return a;
42
+ }
43
+ // Id-keyed cache: reuse results for the exact same Val pair.
44
+ const uc = ctx._uniteCache;
45
+ if (uc !== undefined) {
46
+ const ucKey = a.id + '|' + b.id;
47
+ const ucHit = uc.get(ucKey);
48
+ if (ucHit !== undefined)
49
+ return ucHit;
50
+ }
51
+ }
52
+ }
53
+ }
16
54
  const te = ctx.explain && (0, utility_1.explainOpen)(ctx, ctx.explain, 'unite', a, b);
17
55
  let out = a;
18
56
  let why = 'u';
19
57
  // Cycle-detection key. Use numeric path index for speed; fall back to
20
58
  // full string key when debug is enabled so the saw value is human-readable.
21
- const saw = ctx.opts.debug
22
- ? (a ? a.id + (a.done ? '' : '*') : '') + '~' +
23
- (b ? b.id + (b.done ? '' : '*') : '') + '@' + ctx.pathstr
24
- : (a ? a.id + (a.done ? 'd' : '') : 0) + '~' +
59
+ let saw;
60
+ if (ctx.opts.debug) {
61
+ saw = (a ? a.id + (a.done ? '' : '*') : '') + '~' +
62
+ (b ? b.id + (b.done ? '' : '*') : '') + '@' + ctx.pathstr;
63
+ }
64
+ else {
65
+ saw = (a ? a.id + (a.done ? 'd' : '') : 0) + '~' +
25
66
  (b ? b.id + (b.done ? 'd' : '') : 0) + '~' + ctx.pathidx;
67
+ }
26
68
  // NOTE: if this error occurs "unreasonably", attemp to avoid unnecesary unification
27
69
  // See for example PrefVal peg.id equality inspection.
28
- const sawCount = ctx.seen[saw] ?? 0;
70
+ const sawCount = ctx.seen.get(saw) ?? 0;
29
71
  if (MAXCYCLE < sawCount) {
30
72
  // console.log('SAW', sawCount, saw, a?.id, a?.canon, b?.id, b?.canon, ctx.cc)
31
73
  out = (0, err_1.makeNilErr)(ctx, 'unify_cycle', a, b);
32
74
  }
33
75
  else {
34
- ctx.seen[saw] = sawCount + 1;
76
+ ctx.seen.set(saw, sawCount + 1);
35
77
  try {
36
78
  let unified = false;
37
- if (b && (!a || a.isTop)) {
79
+ // Dispatch ladder. Structure note:
80
+ // - `a == null` is degenerate (shouldn't happen in practice:
81
+ // the top-level call seeds with a real Val). Kept for safety.
82
+ // - TOP is the unit element: unifying with it returns the
83
+ // other side. Handle both sides.
84
+ // - Otherwise route by Val type. Complex Vals (Conjunct,
85
+ // Disjunct, Ref, Pref, Func, Expect) have their own unify
86
+ // that knows how to absorb the peer; prefer `a.unify` when
87
+ // `a` is complex, else `b.unify` when `b` is complex. If
88
+ // neither is complex and it's not a plain-scalar match, fall
89
+ // through to the generic `a.unify` (concrete Val classes
90
+ // each handle their own peer case).
91
+ if (a == null) {
38
92
  out = b;
39
93
  why = 'b';
40
94
  }
41
- else if (a && (!b || b.isTop)) {
95
+ else if (b == null || b.isTop) {
42
96
  out = a;
43
97
  why = 'a';
44
98
  }
45
- else if (a && b && !b.isTop) {
46
- if (a.isNil) {
47
- out = update(a, b);
48
- why = 'an';
49
- }
50
- else if (b.isNil) {
51
- out = update(b, a);
52
- why = 'bn';
53
- }
54
- else if (a.isConjunct) {
55
- out = a.unify(b, te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'CJ') }) : ctx);
56
- unified = true;
57
- why = 'acj';
58
- }
59
- else if (a.isExpect) {
60
- out = a.unify(b, te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'AE') }) : ctx);
61
- unified = true;
62
- why = 'ae';
63
- }
64
- else if (b.isConjunct
65
- || b.isDisjunct
66
- || b.isRef
67
- || b.isPref
68
- || b.isFunc
69
- || b.isExpect) {
70
- out = b.unify(a, te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'BW') }) : ctx);
71
- unified = true;
72
- why = 'bv';
73
- }
74
- // Exactly equal scalars.
75
- else if (a.constructor === b.constructor && a.peg === b.peg) {
76
- out = update(a, b);
77
- why = 'up';
78
- }
79
- else {
80
- out = a.unify(b, te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'GN') }) : ctx);
81
- unified = true;
82
- why = 'ab';
83
- }
99
+ else if (a.isTop) {
100
+ out = b;
101
+ why = 'b';
102
+ }
103
+ else if (a.isNil) {
104
+ out = update(a, b);
105
+ why = 'an';
106
+ }
107
+ else if (b.isNil) {
108
+ out = update(b, a);
109
+ why = 'bn';
110
+ }
111
+ else if (a.isConjunct || a.isExpect || a.isSpread) {
112
+ out = a.unify(b, te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'AC') }) : ctx);
113
+ unified = true;
114
+ why = 'a*';
115
+ }
116
+ else if (b.isConjunct
117
+ || b.isDisjunct
118
+ || b.isPath
119
+ || b.isPref
120
+ || b.isFunc
121
+ || b.isExpect
122
+ || b.isSpread) {
123
+ out = b.unify(a, te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'BW') }) : ctx);
124
+ unified = true;
125
+ why = 'bv';
126
+ }
127
+ // Exactly equal scalars (not caught by early fast-path — e.g.
128
+ // because a or b isn't .done yet).
129
+ else if (a.constructor === b.constructor && a.peg === b.peg) {
130
+ out = update(a, b);
131
+ why = 'up';
132
+ }
133
+ else {
134
+ out = a.unify(b, te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'GN') }) : ctx);
135
+ unified = true;
136
+ why = 'ab';
84
137
  }
85
138
  if (!out || !out.unify) {
86
139
  out = (0, err_1.makeNilErr)(ctx, 'unite', a, b, whence + '/nil');
87
140
  why += 'N';
88
141
  }
89
- // console.log('UNITE-DONE', out.id, out.canon, out.done)
90
- // if (DONE !== out.dc && !unified) {
142
+ // Any non-done top-level result self-unifies with TOP to ensure
143
+ // its children finish converging. Skipped when `unified` is true
144
+ // because the branch that set `out = X.unify(Y, ctx)` already
145
+ // ran that Val's own unify logic.
91
146
  if (!out.done && !unified) {
92
- let nout = out.unify((0, top_1.top)(), te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'ND') }) : ctx);
93
- out = nout;
147
+ out = out.unify((0, top_1.top)(), te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'ND') }) : ctx);
94
148
  why += 'T';
95
149
  }
96
- // console.log('UNITE', why, a?.id, a?.canon, a?.done, b?.id, b?.canon, b?.done, '->', out?.id, out?.canon, out?.done)
97
150
  }
98
151
  catch (err) {
99
- // console.log(err)
100
152
  // TODO: handle unexpected
101
153
  out = (0, err_1.makeNilErr)(ctx, 'internal', a, b);
102
154
  }
103
155
  }
104
156
  ctx.explain && (0, utility_1.explainClose)(te, out);
157
+ // Store in id-keyed cache when both operands were done.
158
+ if (a?.done && b?.done && out?.done && ctx._uniteCache !== undefined) {
159
+ ctx._uniteCache.set(a.id + '|' + b.id, out);
160
+ }
105
161
  return out;
106
162
  };
107
163
  exports.unite = unite;
@@ -109,6 +165,256 @@ function update(x, _y) {
109
165
  // TODO: update x with y.site
110
166
  return x;
111
167
  }
168
+ // Resolve all PathVals using the pre-collected paths list.
169
+ // Mutates the tree in place, replacing each PathVal with its cloned target.
170
+ function resolvePaths(root, ctx, paths) {
171
+ for (const pv of paths) {
172
+ if (pv.done)
173
+ continue;
174
+ // Resolve: find target, following chains.
175
+ // Suppress errors during pre-resolution — intermediate PathVals
176
+ // (from multi-dot expressions like ..a.q) may fail here but the
177
+ // final PathVal resolves correctly during unification.
178
+ const savedErr = ctx.err;
179
+ ctx.err = [];
180
+ let found = pv.find(ctx);
181
+ ctx.err = savedErr;
182
+ if (found == null || found.isNil)
183
+ continue;
184
+ // Skip if target or container contains a mark-setting function
185
+ // (type/hide/move) — let unification resolve it first.
186
+ if (hasMarkFunc(found))
187
+ continue;
188
+ if (hasMarkFuncAtPath(root, pv.path))
189
+ continue;
190
+ while (found instanceof PathVal_1.PathVal) {
191
+ if (found.done && found._resolved) {
192
+ found = found._resolved;
193
+ break;
194
+ }
195
+ const next = found.find(ctx);
196
+ if (next == null || next.isNil)
197
+ break;
198
+ found.dc = type_1.DONE;
199
+ found._resolved = next;
200
+ found = next;
201
+ }
202
+ // If found value is a key() function, set its path to the
203
+ // destination so it evaluates at the right position.
204
+ if (found.isKeyFunc) {
205
+ found.path = pv.path;
206
+ }
207
+ pv.dc = type_1.DONE;
208
+ pv._resolved = found;
209
+ // Replace PathVal in tree using its path
210
+ replaceAtPath(root, pv.path, pv, found);
211
+ // Walk the placed value to resolve any PathVals cloned into it
212
+ resolveNestedPaths(found, ctx);
213
+ }
214
+ }
215
+ // Check if a value contains a type() or hide() function.
216
+ // Check if the value AT the path position is inside a mark-setting function.
217
+ function hasMarkFuncAtPath(root, path) {
218
+ let node = root;
219
+ for (let i = 0; i < path.length; i++) {
220
+ const part = path[i];
221
+ if (node.isMap || node.isList) {
222
+ node = node.peg[part];
223
+ }
224
+ else if (node.isConjunct || node.isDisjunct) {
225
+ let found = null;
226
+ const stack = [...node.peg];
227
+ while (stack.length > 0) {
228
+ const term = stack.pop();
229
+ if (term?.isConjunct || term?.isDisjunct) {
230
+ stack.push(...term.peg);
231
+ }
232
+ else if ((term?.isMap || term?.isList) && term.peg[part] != null) {
233
+ found = term.peg[part];
234
+ break;
235
+ }
236
+ }
237
+ node = found;
238
+ }
239
+ else {
240
+ return false;
241
+ }
242
+ if (node == null)
243
+ return false;
244
+ }
245
+ return hasMarkFunc(node);
246
+ }
247
+ function hasMarkFunc(val) {
248
+ if (val == null || !val.isVal)
249
+ return false;
250
+ if (val.isTypeFunc || val.isHideFunc || val.isMoveFunc)
251
+ return true;
252
+ if (val.isConjunct || val.isDisjunct) {
253
+ for (const t of val.peg) {
254
+ if (hasMarkFunc(t))
255
+ return true;
256
+ }
257
+ }
258
+ return false;
259
+ }
260
+ // Resolve any PathVals found inside a value (e.g. cloned subtrees).
261
+ // Iterative stack-based walk — no recursion.
262
+ function resolveNestedPaths(val, ctx) {
263
+ const stack = [val];
264
+ while (stack.length > 0) {
265
+ const v = stack.pop();
266
+ if (v == null || !v.isVal)
267
+ continue;
268
+ if (v.isMap || v.isList) {
269
+ for (const k in v.peg) {
270
+ const child = v.peg[k];
271
+ if (child instanceof PathVal_1.PathVal && !child.done) {
272
+ const found = child.find(ctx);
273
+ if (found != null && !found.isNil) {
274
+ v.peg[k] = found;
275
+ child.dc = type_1.DONE;
276
+ child._resolved = found;
277
+ stack.push(found);
278
+ }
279
+ }
280
+ else if (child?.isVal) {
281
+ stack.push(child);
282
+ }
283
+ }
284
+ }
285
+ else if (v.isConjunct || v.isDisjunct) {
286
+ for (let i = 0; i < v.peg.length; i++) {
287
+ const child = v.peg[i];
288
+ if (child instanceof PathVal_1.PathVal && !child.done) {
289
+ const found = child.find(ctx);
290
+ if (found != null && !found.isNil) {
291
+ v.peg[i] = found;
292
+ child.dc = type_1.DONE;
293
+ child._resolved = found;
294
+ stack.push(found);
295
+ }
296
+ }
297
+ else if (child?.isVal) {
298
+ stack.push(child);
299
+ }
300
+ }
301
+ }
302
+ else if (v.isFeature) {
303
+ if (v.peg instanceof PathVal_1.PathVal && !v.peg.done) {
304
+ const found = v.peg.find(ctx);
305
+ if (found != null && !found.isNil) {
306
+ v.peg.dc = type_1.DONE;
307
+ v.peg._resolved = found;
308
+ v.peg = found;
309
+ stack.push(found);
310
+ }
311
+ }
312
+ else if (Array.isArray(v.peg)) {
313
+ for (let i = 0; i < v.peg.length; i++) {
314
+ if (v.peg[i]?.isVal)
315
+ stack.push(v.peg[i]);
316
+ }
317
+ }
318
+ else if (v.peg?.isVal) {
319
+ stack.push(v.peg);
320
+ }
321
+ }
322
+ }
323
+ }
324
+ // Replace target Val in the tree, using path to navigate and a stack
325
+ // to search through junctions, features, and nested structures.
326
+ // No recursion — uses a single loop with an explicit stack.
327
+ function replaceAtPath(root, path, target, replacement, intoSpreads = true) {
328
+ let node = root;
329
+ // Descend through map/list using path segments.
330
+ // When a non-map/list is encountered (junction, feature),
331
+ // push its children onto the search stack and stop descending.
332
+ let pi = 0;
333
+ for (; pi < path.length; pi++) {
334
+ if (node.isMap || node.isList) {
335
+ const child = node.peg[path[pi]];
336
+ if (child == null)
337
+ break;
338
+ // Last segment: check for direct replacement
339
+ if (pi === path.length - 1) {
340
+ if (child === target) {
341
+ node.peg[path[pi]] = replacement;
342
+ return true;
343
+ }
344
+ // Target not at this position — search within child
345
+ node = child;
346
+ pi++;
347
+ break;
348
+ }
349
+ node = child;
350
+ }
351
+ else {
352
+ // Hit a non-navigable node — search it
353
+ break;
354
+ }
355
+ }
356
+ // If path fully consumed with no match, or hit a junction/feature,
357
+ // search the current node using a stack.
358
+ const stack = [node];
359
+ while (stack.length > 0) {
360
+ const val = stack.pop();
361
+ if (val == null || !val.isVal)
362
+ continue;
363
+ if (val.isMap || val.isList) {
364
+ for (const k in val.peg) {
365
+ if (val.peg[k] === target) {
366
+ val.peg[k] = replacement;
367
+ return true;
368
+ }
369
+ if (val.peg[k]?.isVal)
370
+ stack.push(val.peg[k]);
371
+ }
372
+ }
373
+ else if (val.isConjunct || val.isDisjunct) {
374
+ for (let i = 0; i < val.peg.length; i++) {
375
+ if (val.peg[i] === target) {
376
+ val.peg[i] = replacement;
377
+ return true;
378
+ }
379
+ stack.push(val.peg[i]);
380
+ }
381
+ }
382
+ else if (val.isFeature) {
383
+ if (val.peg === target) {
384
+ val.peg = replacement;
385
+ return true;
386
+ }
387
+ if (intoSpreads || !val.isSpread) {
388
+ if (Array.isArray(val.peg)) {
389
+ for (let i = 0; i < val.peg.length; i++) {
390
+ if (val.peg[i] === target) {
391
+ val.peg[i] = replacement;
392
+ return true;
393
+ }
394
+ if (val.peg[i]?.isVal)
395
+ stack.push(val.peg[i]);
396
+ }
397
+ }
398
+ else if (val.peg?.isVal) {
399
+ stack.push(val.peg);
400
+ }
401
+ }
402
+ }
403
+ }
404
+ return false;
405
+ }
406
+ // Resolve all KeyFuncVals (not inside spreads) to StringVals.
407
+ // Uses the KeyFuncVal's path to determine the key name.
408
+ function resolveKeys(root, keys) {
409
+ for (const kv of keys) {
410
+ const resolved = kv.resolve(null, kv.peg);
411
+ if (resolved instanceof StringVal_1.StringVal) {
412
+ resolved.dc = type_1.DONE;
413
+ resolved.path = kv.path;
414
+ replaceAtPath(root, kv.path, kv, resolved, false);
415
+ }
416
+ }
417
+ }
112
418
  class Unify {
113
419
  constructor(root, lang, ctx, src) {
114
420
  this.lang = lang || new lang_1.Lang();
@@ -145,14 +451,25 @@ class Unify {
145
451
  // uctx.seterr(this.err)
146
452
  uctx.err = this.err;
147
453
  uctx.explain = this.explain;
454
+ // Path resolution phase: replace all PathVals with cloned targets.
455
+ // Pure structural replacement — no unification.
456
+ resolvePaths(res, uctx, this.lang.paths);
457
+ uctx = uctx.clone({ root: res });
458
+ // Key resolution phase: replace key() functions (not in spreads)
459
+ // with their resolved StringVal.
460
+ resolveKeys(res, this.lang.keys);
148
461
  const explain = null == ctx?.explain ? undefined : ctx?.explain;
149
462
  const te = explain && (0, utility_1.explainOpen)(uctx, explain, 'root', res);
150
463
  // NOTE: if true === res.done already, then this loop never needs to run.
464
+ // RefVals defer on cc=0 and while ctx.sc > 0.
465
+ // SpreadVal.unify maintains ctx.sc via increment/decrement.
151
466
  let maxcc = 9; // 99
152
467
  for (; this.cc < maxcc && type_1.DONE !== res.dc; this.cc++) {
153
468
  // console.log('CC', this.cc, res.canon)
154
469
  uctx.cc = this.cc;
155
- uctx.seen = {};
470
+ uctx.seen = new Map();
471
+ uctx._refCloneCache = new Map();
472
+ uctx._uniteCache = new Map();
156
473
  res = unite(te ? uctx.clone({ explain: (0, utility_1.ec)(te, 'run') }) : uctx, res, (0, top_1.top)(), 'unify');
157
474
  if (0 < uctx.err.length) {
158
475
  break;