aontu 0.43.0 → 0.45.1

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 (80) hide show
  1. package/dist/ctx.d.ts +2 -5
  2. package/dist/ctx.js +1 -2
  3. package/dist/ctx.js.map +1 -1
  4. package/dist/lang.d.ts +1 -5
  5. package/dist/lang.js +24 -100
  6. package/dist/lang.js.map +1 -1
  7. package/dist/tsconfig.tsbuildinfo +1 -1
  8. package/dist/type.d.ts +0 -5
  9. package/dist/type.js.map +1 -1
  10. package/dist/unify.js +13 -292
  11. package/dist/unify.js.map +1 -1
  12. package/dist/utility.js +2 -6
  13. package/dist/utility.js.map +1 -1
  14. package/dist/val/BagVal.d.ts +3 -0
  15. package/dist/val/BagVal.js +6 -6
  16. package/dist/val/BagVal.js.map +1 -1
  17. package/dist/val/ConjunctVal.d.ts +1 -1
  18. package/dist/val/ConjunctVal.js +14 -137
  19. package/dist/val/ConjunctVal.js.map +1 -1
  20. package/dist/val/CopyFuncVal.js +2 -3
  21. package/dist/val/CopyFuncVal.js.map +1 -1
  22. package/dist/val/DisjunctVal.js +0 -4
  23. package/dist/val/DisjunctVal.js.map +1 -1
  24. package/dist/val/ExpectVal.js +3 -16
  25. package/dist/val/ExpectVal.js.map +1 -1
  26. package/dist/val/JunctionVal.d.ts +0 -1
  27. package/dist/val/JunctionVal.js +1 -6
  28. package/dist/val/JunctionVal.js.map +1 -1
  29. package/dist/val/KeyFuncVal.js +2 -0
  30. package/dist/val/KeyFuncVal.js.map +1 -1
  31. package/dist/val/ListVal.d.ts +0 -1
  32. package/dist/val/ListVal.js +66 -33
  33. package/dist/val/ListVal.js.map +1 -1
  34. package/dist/val/MapVal.d.ts +2 -3
  35. package/dist/val/MapVal.js +95 -67
  36. package/dist/val/MapVal.js.map +1 -1
  37. package/dist/val/MoveFuncVal.d.ts +1 -2
  38. package/dist/val/MoveFuncVal.js +13 -78
  39. package/dist/val/MoveFuncVal.js.map +1 -1
  40. package/dist/val/PathFuncVal.js +4 -25
  41. package/dist/val/PathFuncVal.js.map +1 -1
  42. package/dist/val/PlusOpVal.d.ts +1 -1
  43. package/dist/val/PrefVal.js +5 -18
  44. package/dist/val/PrefVal.js.map +1 -1
  45. package/dist/val/{PathVal.d.ts → RefVal.d.ts} +3 -4
  46. package/dist/val/{PathVal.js → RefVal.js} +77 -75
  47. package/dist/val/RefVal.js.map +1 -0
  48. package/dist/val/Val.d.ts +1 -2
  49. package/dist/val/Val.js +8 -7
  50. package/dist/val/Val.js.map +1 -1
  51. package/dist/val/VarVal.js +2 -2
  52. package/dist/val/VarVal.js.map +1 -1
  53. package/package.json +6 -5
  54. package/src/ctx.ts +3 -16
  55. package/src/lang.ts +23 -113
  56. package/src/type.ts +0 -5
  57. package/src/unify.ts +13 -310
  58. package/src/utility.ts +2 -5
  59. package/src/val/BagVal.ts +7 -6
  60. package/src/val/ConjunctVal.ts +13 -131
  61. package/src/val/CopyFuncVal.ts +2 -3
  62. package/src/val/DisjunctVal.ts +0 -6
  63. package/src/val/ExpectVal.ts +4 -18
  64. package/src/val/JunctionVal.ts +1 -5
  65. package/src/val/KeyFuncVal.ts +3 -0
  66. package/src/val/ListVal.ts +88 -38
  67. package/src/val/MapVal.ts +124 -75
  68. package/src/val/MoveFuncVal.ts +14 -79
  69. package/src/val/PathFuncVal.ts +4 -29
  70. package/src/val/PrefVal.ts +6 -19
  71. package/src/val/{RefVal.ts.old → RefVal.ts} +19 -30
  72. package/src/val/Val.ts +9 -9
  73. package/src/val/VarVal.ts +2 -2
  74. package/README.md +0 -18
  75. package/dist/val/PathVal.js.map +0 -1
  76. package/dist/val/SpreadVal.d.ts +0 -20
  77. package/dist/val/SpreadVal.js +0 -194
  78. package/dist/val/SpreadVal.js.map +0 -1
  79. package/src/val/PathVal.ts +0 -435
  80. package/src/val/SpreadVal.ts +0 -275
package/src/val/Val.ts CHANGED
@@ -69,11 +69,10 @@ abstract class Val {
69
69
  declare isList: boolean
70
70
  declare isScalar: boolean
71
71
  declare isScalarKind: boolean
72
- declare isPath: boolean
72
+ declare isRef: boolean
73
73
  declare isPref: boolean
74
74
  declare isVar: boolean
75
75
  declare isBag: boolean
76
- declare isSpread: boolean
77
76
  declare isNumber: boolean
78
77
  declare isInteger: boolean
79
78
  declare isString: boolean
@@ -151,10 +150,8 @@ abstract class Val {
151
150
 
152
151
  if (Array.isArray(this.peg)) {
153
152
  let spread = (this.peg as any)[SPREAD]
154
- if (this.peg.includes(undefined)) {
155
- this.peg = this.peg.filter(n => undefined !== n)
156
- }
157
- ;(this.peg as any)[SPREAD] = spread
153
+ this.peg = this.peg.filter(n => undefined !== n)
154
+ ; (this.peg as any)[SPREAD] = spread
158
155
  }
159
156
 
160
157
  // spec.path takes precedence over ctx.path: lets callers (notably
@@ -242,7 +239,7 @@ abstract class Val {
242
239
  get isPathDependent(): boolean {
243
240
  if (this._isPathDependent !== undefined) return this._isPathDependent
244
241
  let dep =
245
- this.isPath || this.isKeyFunc || this.isPathFunc ||
242
+ this.isRef || this.isKeyFunc || this.isPathFunc ||
246
243
  this.isMoveFunc || this.isSuperFunc
247
244
  if (!dep) {
248
245
  const peg = this.peg
@@ -258,6 +255,10 @@ abstract class Val {
258
255
  if (c && c.isVal && c.isPathDependent) { dep = true; break }
259
256
  }
260
257
  }
258
+ if (!dep) {
259
+ const spreadCj = (this as any).spread?.cj as Val | undefined
260
+ if (spreadCj && spreadCj.isPathDependent) dep = true
261
+ }
261
262
  }
262
263
  this._isPathDependent = dep
263
264
  return dep
@@ -366,11 +367,10 @@ Object.assign(Val.prototype, {
366
367
  isList: false,
367
368
  isScalar: false,
368
369
  isScalarKind: false,
369
- isPath: false,
370
+ isRef: false,
370
371
  isPref: false,
371
372
  isVar: false,
372
373
  isBag: false,
373
- isSpread: false,
374
374
  isNumber: false,
375
375
  isInteger: false,
376
376
  isString: false,
package/src/val/VarVal.ts CHANGED
@@ -62,7 +62,7 @@ class VarVal extends FeatureVal {
62
62
  if (this.peg.isVal) {
63
63
  // $.a.b.c - convert path to absolute
64
64
  // if (this.peg instanceof RefVal) {
65
- if (this.peg.isPath) {
65
+ if (this.peg.isRef) {
66
66
  this.peg.absolute = true
67
67
  nameVal = this.peg
68
68
  }
@@ -76,7 +76,7 @@ class VarVal extends FeatureVal {
76
76
  }
77
77
 
78
78
  // if (!(nameVal instanceof RefVal) && DONE === nameVal.dc) {
79
- if (!(nameVal.isPath) && DONE === nameVal.dc) {
79
+ if (!(nameVal.isRef) && DONE === nameVal.dc) {
80
80
  if (nameVal instanceof StringVal) {
81
81
  let found = ctx.vars[nameVal.peg]
82
82
  if (undefined === found) {
package/README.md DELETED
@@ -1,18 +0,0 @@
1
- <a name="top"></a>
2
-
3
- # Aontu: JSON Structure unifier
4
-
5
- [![npm version](https://img.shields.io/npm/v/aontu.svg)](https://npmjs.com/package/aontu)
6
- [![build](https://github.com/rjrodger/aontu/actions/workflows/build.yml/badge.svg)](https://github.com/rjrodger/aontu/actions/workflows/build.yml)
7
- [![Coverage Status](https://coveralls.io/repos/github/rjrodger/aontu/badge.svg?branch=main)](https://coveralls.io/github/rjrodger/aontu?branch=main)
8
- [![Known Vulnerabilities](https://snyk.io/test/github/rjrodger/aontu/badge.svg)](https://snyk.io/test/github/rjrodger/aontu)
9
- [![DeepScan grade](https://deepscan.io/api/teams/5016/projects/26218/branches/831193/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=5016&pid=26218&bid=831193)
10
- [![Maintainability](https://api.codeclimate.com/v1/badges/2ee16ebd2281bc837d9b/maintainability)](https://codeclimate.com/github/rjrodger/aontu/maintainability)
11
-
12
- | ![Voxgig](https://www.voxgig.com/res/img/vgt01r.png) | This open source module is sponsored and supported by [Voxgig](https://www.voxgig.com). |
13
- |---|---|
14
-
15
-
16
- This unifier is heavily inspired by [Cue Lang](https://cuelang.org/)
17
- and may be regarded as a purpose-specific dialect.
18
-
@@ -1 +0,0 @@
1
- {"version":3,"file":"PathVal.js","sourceRoot":"","sources":["../../src/val/PathVal.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- import type { Val, ValSpec } from '../type';
2
- import { AontuContext } from '../ctx';
3
- import { FeatureVal } from './FeatureVal';
4
- import { MapVal } from './MapVal';
5
- import { ListVal } from './ListVal';
6
- declare class SpreadVal extends FeatureVal {
7
- isSpread: boolean;
8
- isGenable: boolean;
9
- cjo: number;
10
- constructor(spec: ValSpec, ctx?: AontuContext);
11
- unify(peer: Val, ctx: AontuContext): Val;
12
- applyToMap(map: MapVal, ctx: AontuContext, te: any): Val;
13
- applyToList(list: ListVal, ctx: AontuContext, te: any): Val;
14
- clone(ctx: AontuContext, spec?: ValSpec): Val;
15
- spreadClone(ctx: AontuContext): Val;
16
- get canon(): string;
17
- gen(_ctx: AontuContext): undefined;
18
- inspection(): string;
19
- }
20
- export { SpreadVal, };
@@ -1,194 +0,0 @@
1
- "use strict";
2
- /* Copyright (c) 2025 Richard Rodger, MIT License */
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.SpreadVal = void 0;
5
- const type_1 = require("../type");
6
- const unify_1 = require("../unify");
7
- const utility_1 = require("../utility");
8
- const top_1 = require("./top");
9
- const FeatureVal_1 = require("./FeatureVal");
10
- const ConjunctVal_1 = require("./ConjunctVal");
11
- const MapVal_1 = require("./MapVal");
12
- const ListVal_1 = require("./ListVal");
13
- class SpreadVal extends FeatureVal_1.FeatureVal {
14
- constructor(spec, ctx) {
15
- super(spec, ctx);
16
- this.isSpread = true;
17
- this.isGenable = true;
18
- this.cjo = 110000; // Sorts after MapVal/ListVal in ConjunctVal norm
19
- }
20
- unify(peer, ctx) {
21
- peer = peer ?? (0, top_1.top)();
22
- const te = ctx.explain && (0, utility_1.explainOpen)(ctx, ctx.explain, 'Spread', this, peer);
23
- let out;
24
- if (peer.isTop) {
25
- // Self-unify: spread is a constraint, not a value that converges.
26
- // Mark done to prevent fixpoint cycling.
27
- out = this;
28
- out.dc = type_1.DONE;
29
- }
30
- else if (peer.isSpread) {
31
- // SpreadVal + SpreadVal: unify the two constraints
32
- const merged = (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'SPR') }) : ctx, this.peg, peer.peg, 'spread-merge');
33
- out = new SpreadVal({ peg: merged }, ctx);
34
- out.dc = merged.done ? type_1.DONE : this.dc + 1;
35
- }
36
- else if (peer.isMap) {
37
- // SpreadVal + MapVal: apply spread to each map key
38
- out = this.applyToMap(peer, ctx, te);
39
- }
40
- else if (peer.isList) {
41
- // SpreadVal + ListVal: apply spread to each list element
42
- out = this.applyToList(peer, ctx, te);
43
- }
44
- else if (peer.isConjunct) {
45
- // SpreadVal + ConjunctVal: unify with the conjunct.
46
- // The conjunct fold will place us last (high cjo).
47
- out = peer.unify(this, te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'SCJ') }) : ctx);
48
- }
49
- else {
50
- // SpreadVal + other: defer by wrapping in ConjunctVal
51
- out = new ConjunctVal_1.ConjunctVal({ peg: [peer, this] }, ctx);
52
- out.dc = this.dc + 1;
53
- }
54
- // Track unresolved spread count.
55
- // cc=0: increment for spreads that don't vanish.
56
- // cc>0: decrement when a spread vanishes.
57
- if (0 === ctx.cc) {
58
- if (out.isSpread && !out.done) {
59
- ctx.sc++;
60
- }
61
- }
62
- else if (ctx.sc > 0) {
63
- if (!(out.isSpread && !out.done)) {
64
- ctx.sc--;
65
- }
66
- }
67
- ctx.explain && (0, utility_1.explainClose)(te, out);
68
- return out;
69
- }
70
- // Apply this spread constraint to each key in a MapVal.
71
- // Uses unite() per key with the correct descended context.
72
- applyToMap(map, ctx, te) {
73
- const spread = this.peg;
74
- const mapKeys = Object.keys(map.peg);
75
- // If map has no keys, preserve the spread for future merges.
76
- // Mark as DONE to prevent fixpoint cycling.
77
- if (mapKeys.length === 0) {
78
- const out = new ConjunctVal_1.ConjunctVal({ peg: [map, this] }, ctx);
79
- out.dc = type_1.DONE;
80
- return out;
81
- }
82
- const out = new MapVal_1.MapVal({ peg: {} }, ctx);
83
- out.closed = map.closed;
84
- out.optionalKeys = 0 < map.optionalKeys.length
85
- ? [...map.optionalKeys] : map.optionalKeys;
86
- out.site = map.site;
87
- let done = true;
88
- for (const key of mapKeys) {
89
- const child = map.peg[key];
90
- const keyctx = ctx.descend(key);
91
- // Clone the spread for this key's context, then resolve any
92
- // path-dependent functions (key(), path(), etc.) by unifying
93
- // with TOP. This ensures the spread values are concrete before
94
- // being merged as peer keys into the child map.
95
- let key_spread = spread.spreadClone(keyctx);
96
- if (!key_spread.done) {
97
- key_spread = (0, unify_1.unite)(keyctx, key_spread, (0, top_1.top)(), 'spread-resolve');
98
- }
99
- // Clear type marks on the spread constraint root and its
100
- // direct children — type() constrains but should not mark
101
- // children as type-invisible.
102
- key_spread.mark.type = false;
103
- key_spread.mark.hide = false;
104
- if (key_spread.isMap) {
105
- for (const k in key_spread.peg) {
106
- if (key_spread.peg[k]?.isVal) {
107
- key_spread.peg[k].mark.type = false;
108
- }
109
- }
110
- }
111
- (0, utility_1.propagateMarks)(map, child);
112
- out.peg[key] =
113
- undefined === child ? key_spread :
114
- child.isNil ? child :
115
- key_spread.isNil ? key_spread :
116
- key_spread.isTop && child.done ? child :
117
- child.isTop && key_spread.done ? key_spread :
118
- (0, unify_1.unite)(te ? keyctx.clone({ explain: (0, utility_1.ec)(te, 'SK:' + key) }) : keyctx, child, key_spread, 'spread-apply');
119
- done = done && (type_1.DONE === out.peg[key].dc);
120
- }
121
- out.dc = done ? type_1.DONE : map.dc + 1;
122
- (0, utility_1.propagateMarks)(map, out);
123
- // NOTE: do not propagate type/hide marks from the spread constraint
124
- // to the output — a type spread constrains children but doesn't
125
- // make them type-invisible.
126
- return out;
127
- }
128
- // Apply this spread constraint to each element in a ListVal.
129
- applyToList(list, ctx, te) {
130
- const spread = this.peg;
131
- const listKeys = Object.keys(list.peg);
132
- if (listKeys.length === 0) {
133
- const out = new ConjunctVal_1.ConjunctVal({ peg: [list, this] }, ctx);
134
- out.dc = type_1.DONE;
135
- return out;
136
- }
137
- const out = new ListVal_1.ListVal({ peg: [] }, ctx);
138
- out.closed = list.closed;
139
- out.optionalKeys = 0 < list.optionalKeys.length
140
- ? [...list.optionalKeys] : list.optionalKeys;
141
- out.site = list.site;
142
- let done = true;
143
- for (const key of listKeys) {
144
- const child = list.peg[key];
145
- const keyctx = ctx.descend(key);
146
- const key_spread = spread.spreadClone(keyctx);
147
- (0, utility_1.propagateMarks)(list, child);
148
- out.peg[key] =
149
- undefined === child ? key_spread :
150
- child.isNil ? child :
151
- key_spread.isNil ? key_spread :
152
- key_spread.isTop && child.done ? child :
153
- child.isTop && key_spread.done ? key_spread :
154
- (0, unify_1.unite)(te ? keyctx.clone({ explain: (0, utility_1.ec)(te, 'SL:' + key) }) : keyctx, child, key_spread, 'spread-apply-list');
155
- done = done && (type_1.DONE === out.peg[key]?.dc);
156
- }
157
- out.dc = done ? type_1.DONE : list.dc + 1;
158
- (0, utility_1.propagateMarks)(list, out);
159
- return out;
160
- }
161
- clone(ctx, spec) {
162
- const out = new SpreadVal({
163
- peg: this.peg.clone(ctx, spec),
164
- ...(spec || {}),
165
- }, ctx);
166
- out.dc = this.done ? type_1.DONE : out.dc;
167
- out.site = this.site;
168
- return out;
169
- }
170
- spreadClone(ctx) {
171
- if (!this.isPathDependent)
172
- return this;
173
- return this.clone(ctx);
174
- }
175
- get canon() {
176
- // Use {&:...} for map spreads, [&:...] for list spreads, {&:X} for scalars
177
- const pc = this.peg.canon;
178
- if (this.peg.isMap)
179
- return '{&:' + pc.slice(1, -1) + '}'; // {&:k:v,...}
180
- if (this.peg.isList)
181
- return '[&:' + pc.slice(1, -1) + ']'; // [&:v,...]
182
- return '{&:' + pc + '}';
183
- }
184
- gen(_ctx) {
185
- // Unresolved spread (never applied to a map/list) generates
186
- // as undefined — the spread is a constraint, not a value.
187
- return undefined;
188
- }
189
- inspection() {
190
- return 'spread';
191
- }
192
- }
193
- exports.SpreadVal = SpreadVal;
194
- //# sourceMappingURL=SpreadVal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SpreadVal.js","sourceRoot":"","sources":["../../src/val/SpreadVal.ts"],"names":[],"mappings":"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"}