aontu 0.44.0 → 0.46.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 (84) hide show
  1. package/dist/cli.d.ts +9 -0
  2. package/dist/cli.js +203 -0
  3. package/dist/cli.js.map +1 -0
  4. package/dist/ctx.d.ts +2 -5
  5. package/dist/ctx.js +1 -2
  6. package/dist/ctx.js.map +1 -1
  7. package/dist/lang.d.ts +1 -5
  8. package/dist/lang.js +24 -100
  9. package/dist/lang.js.map +1 -1
  10. package/dist/tsconfig.tsbuildinfo +1 -1
  11. package/dist/type.d.ts +0 -5
  12. package/dist/type.js.map +1 -1
  13. package/dist/unify.js +13 -292
  14. package/dist/unify.js.map +1 -1
  15. package/dist/utility.js +2 -6
  16. package/dist/utility.js.map +1 -1
  17. package/dist/val/BagVal.d.ts +3 -0
  18. package/dist/val/BagVal.js +6 -6
  19. package/dist/val/BagVal.js.map +1 -1
  20. package/dist/val/ConjunctVal.d.ts +1 -1
  21. package/dist/val/ConjunctVal.js +14 -137
  22. package/dist/val/ConjunctVal.js.map +1 -1
  23. package/dist/val/CopyFuncVal.js +2 -3
  24. package/dist/val/CopyFuncVal.js.map +1 -1
  25. package/dist/val/DisjunctVal.js +0 -4
  26. package/dist/val/DisjunctVal.js.map +1 -1
  27. package/dist/val/ExpectVal.js +3 -16
  28. package/dist/val/ExpectVal.js.map +1 -1
  29. package/dist/val/JunctionVal.d.ts +0 -1
  30. package/dist/val/JunctionVal.js +1 -6
  31. package/dist/val/JunctionVal.js.map +1 -1
  32. package/dist/val/KeyFuncVal.js +2 -0
  33. package/dist/val/KeyFuncVal.js.map +1 -1
  34. package/dist/val/ListVal.d.ts +0 -1
  35. package/dist/val/ListVal.js +66 -33
  36. package/dist/val/ListVal.js.map +1 -1
  37. package/dist/val/MapVal.d.ts +2 -3
  38. package/dist/val/MapVal.js +95 -67
  39. package/dist/val/MapVal.js.map +1 -1
  40. package/dist/val/MoveFuncVal.d.ts +1 -2
  41. package/dist/val/MoveFuncVal.js +13 -78
  42. package/dist/val/MoveFuncVal.js.map +1 -1
  43. package/dist/val/PathFuncVal.js +4 -25
  44. package/dist/val/PathFuncVal.js.map +1 -1
  45. package/dist/val/PlusOpVal.d.ts +1 -1
  46. package/dist/val/PrefVal.js +5 -18
  47. package/dist/val/PrefVal.js.map +1 -1
  48. package/dist/val/{PathVal.d.ts → RefVal.d.ts} +3 -4
  49. package/dist/val/{PathVal.js → RefVal.js} +77 -75
  50. package/dist/val/RefVal.js.map +1 -0
  51. package/dist/val/Val.d.ts +1 -2
  52. package/dist/val/Val.js +8 -7
  53. package/dist/val/Val.js.map +1 -1
  54. package/dist/val/VarVal.js +2 -2
  55. package/dist/val/VarVal.js.map +1 -1
  56. package/package.json +9 -4
  57. package/src/cli.ts +193 -0
  58. package/src/ctx.ts +3 -16
  59. package/src/lang.ts +23 -113
  60. package/src/type.ts +0 -5
  61. package/src/unify.ts +13 -310
  62. package/src/utility.ts +2 -5
  63. package/src/val/BagVal.ts +7 -6
  64. package/src/val/ConjunctVal.ts +13 -131
  65. package/src/val/CopyFuncVal.ts +2 -3
  66. package/src/val/DisjunctVal.ts +0 -6
  67. package/src/val/ExpectVal.ts +4 -18
  68. package/src/val/JunctionVal.ts +1 -5
  69. package/src/val/KeyFuncVal.ts +3 -0
  70. package/src/val/ListVal.ts +88 -38
  71. package/src/val/MapVal.ts +124 -75
  72. package/src/val/MoveFuncVal.ts +14 -79
  73. package/src/val/PathFuncVal.ts +4 -29
  74. package/src/val/PrefVal.ts +6 -19
  75. package/src/val/{RefVal.ts.old → RefVal.ts} +19 -30
  76. package/src/val/Val.ts +9 -9
  77. package/src/val/VarVal.ts +2 -2
  78. package/README.md +0 -18
  79. package/dist/val/PathVal.js.map +0 -1
  80. package/dist/val/SpreadVal.d.ts +0 -20
  81. package/dist/val/SpreadVal.js +0 -194
  82. package/dist/val/SpreadVal.js.map +0 -1
  83. package/src/val/PathVal.ts +0 -435
  84. package/src/val/SpreadVal.ts +0 -275
package/dist/cli.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ import { Aontu } from './aontu';
3
+ type Mode = 'json' | 'canon';
4
+ declare function evalSource(aontu: Aontu, src: string, mode: Mode): {
5
+ ok: boolean;
6
+ text: string;
7
+ };
8
+ declare function main(argv: string[]): void;
9
+ export { evalSource, main };
package/dist/cli.js ADDED
@@ -0,0 +1,203 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /* Copyright (c) 2025 Richard Rodger, MIT License */
4
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
+ if (k2 === undefined) k2 = k;
6
+ var desc = Object.getOwnPropertyDescriptor(m, k);
7
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
8
+ desc = { enumerable: true, get: function() { return m[k]; } };
9
+ }
10
+ Object.defineProperty(o, k2, desc);
11
+ }) : (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ o[k2] = m[k];
14
+ }));
15
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
16
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
17
+ }) : function(o, v) {
18
+ o["default"] = v;
19
+ });
20
+ var __importStar = (this && this.__importStar) || (function () {
21
+ var ownKeys = function(o) {
22
+ ownKeys = Object.getOwnPropertyNames || function (o) {
23
+ var ar = [];
24
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
25
+ return ar;
26
+ };
27
+ return ownKeys(o);
28
+ };
29
+ return function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ })();
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.evalSource = evalSource;
39
+ exports.main = main;
40
+ // Command-line interface for Aontu.
41
+ //
42
+ // aontu [options] [file]
43
+ //
44
+ // With a file argument, the file is evaluated and the result printed.
45
+ // With no file on an interactive terminal, a REPL is started. With no
46
+ // file and piped input, the source is read from stdin. See HELP below.
47
+ const Fs = __importStar(require("node:fs"));
48
+ const Path = __importStar(require("node:path"));
49
+ const Readline = __importStar(require("node:readline"));
50
+ const aontu_1 = require("./aontu");
51
+ const HELP = `Usage: aontu [options] [file]
52
+
53
+ Evaluate an Aontu source file and print the result as JSON.
54
+ With no file on an interactive terminal, start a REPL.
55
+ With no file and piped input, read the source from stdin.
56
+
57
+ Options:
58
+ -c, --canon Print the canonical form instead of generated JSON
59
+ -h, --help Show this help and exit
60
+ -v, --version Print the version and exit
61
+
62
+ REPL commands:
63
+ :help Show REPL help
64
+ :canon Switch to canonical-form output
65
+ :json Switch to JSON output
66
+ :quit, :exit Exit the REPL (or press Ctrl-D)
67
+ `;
68
+ function version() {
69
+ try {
70
+ const txt = Fs.readFileSync(Path.join(__dirname, '..', 'package.json'), 'utf8');
71
+ return JSON.parse(txt).version ?? '0.0.0';
72
+ }
73
+ catch {
74
+ return '0.0.0';
75
+ }
76
+ }
77
+ // Evaluate source, returning either the rendered output or the error
78
+ // message. Never throws.
79
+ function evalSource(aontu, src, mode) {
80
+ try {
81
+ const text = 'canon' === mode
82
+ ? aontu.unify(src).canon
83
+ : JSON.stringify(aontu.generate(src), null, 2);
84
+ return { ok: true, text };
85
+ }
86
+ catch (err) {
87
+ const msg = (err instanceof aontu_1.AontuError || true === err?.aontu)
88
+ ? err.message
89
+ : String(err?.message ?? err);
90
+ return { ok: false, text: msg };
91
+ }
92
+ }
93
+ function runFile(file, mode) {
94
+ let src;
95
+ try {
96
+ src = Fs.readFileSync(file, 'utf8');
97
+ }
98
+ catch (err) {
99
+ process.stderr.write(`aontu: cannot read ${file}: ${err.message}\n`);
100
+ return 1;
101
+ }
102
+ const aontu = new aontu_1.Aontu({ path: Path.resolve(file) });
103
+ const res = evalSource(aontu, src, mode);
104
+ (res.ok ? process.stdout : process.stderr).write(res.text + '\n');
105
+ return res.ok ? 0 : 1;
106
+ }
107
+ function runStdin(mode) {
108
+ return new Promise((resolve) => {
109
+ let src = '';
110
+ process.stdin.setEncoding('utf8');
111
+ process.stdin.on('data', (d) => (src += d));
112
+ process.stdin.on('end', () => {
113
+ const res = evalSource(new aontu_1.Aontu(), src, mode);
114
+ (res.ok ? process.stdout : process.stderr).write(res.text + '\n');
115
+ resolve(res.ok ? 0 : 1);
116
+ });
117
+ });
118
+ }
119
+ function runRepl(initialMode) {
120
+ let mode = initialMode;
121
+ const aontu = new aontu_1.Aontu();
122
+ const rl = Readline.createInterface({
123
+ input: process.stdin,
124
+ output: process.stdout,
125
+ prompt: 'aontu> ',
126
+ });
127
+ process.stdout.write(`Aontu v${version()} REPL — :help for commands, :quit to exit\n`);
128
+ rl.prompt();
129
+ rl.on('line', (line) => {
130
+ const s = line.trim();
131
+ if ('' === s) {
132
+ rl.prompt();
133
+ return;
134
+ }
135
+ if (s.startsWith(':')) {
136
+ switch (s) {
137
+ case ':help':
138
+ process.stdout.write(HELP);
139
+ break;
140
+ case ':canon':
141
+ mode = 'canon';
142
+ process.stdout.write('canon output\n');
143
+ break;
144
+ case ':json':
145
+ mode = 'json';
146
+ process.stdout.write('json output\n');
147
+ break;
148
+ case ':quit':
149
+ case ':exit':
150
+ rl.close();
151
+ return;
152
+ default: process.stdout.write(`unknown command: ${s} (try :help)\n`);
153
+ }
154
+ rl.prompt();
155
+ return;
156
+ }
157
+ const res = evalSource(aontu, s, mode);
158
+ process.stdout.write(res.text + '\n');
159
+ rl.prompt();
160
+ });
161
+ rl.on('close', () => {
162
+ process.stdout.write('\n');
163
+ process.exit(0);
164
+ });
165
+ }
166
+ function main(argv) {
167
+ let mode = 'json';
168
+ let file;
169
+ for (const arg of argv.slice(2)) {
170
+ if ('-c' === arg || '--canon' === arg) {
171
+ mode = 'canon';
172
+ }
173
+ else if ('-h' === arg || '--help' === arg) {
174
+ process.stdout.write(HELP);
175
+ process.exit(0);
176
+ }
177
+ else if ('-v' === arg || '--version' === arg) {
178
+ process.stdout.write(version() + '\n');
179
+ process.exit(0);
180
+ }
181
+ else if (arg.startsWith('-')) {
182
+ process.stderr.write(`aontu: unknown option ${arg} (try --help)\n`);
183
+ process.exit(2);
184
+ }
185
+ else {
186
+ file = arg;
187
+ }
188
+ }
189
+ if (null != file) {
190
+ process.exit(runFile(file, mode));
191
+ }
192
+ else if (process.stdin.isTTY) {
193
+ runRepl(mode);
194
+ }
195
+ else {
196
+ runStdin(mode).then((code) => process.exit(code));
197
+ }
198
+ }
199
+ // Only run when invoked as a program, not when imported (e.g. by tests).
200
+ if (require.main === module) {
201
+ main(process.argv);
202
+ }
203
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/ctx.d.ts CHANGED
@@ -7,7 +7,7 @@ type AontuContextConfig = {
7
7
  fs?: any;
8
8
  path?: string[];
9
9
  root?: Val;
10
- seen?: Map<string, number>;
10
+ seen?: Record<string, number>;
11
11
  seenI?: number;
12
12
  src?: string;
13
13
  srcpath?: string;
@@ -22,12 +22,11 @@ declare class AontuContext {
22
22
  path: string[];
23
23
  vc: number;
24
24
  cc: number;
25
- sc: number;
26
25
  vars: Record<string, Val>;
27
26
  src?: string;
28
27
  fs?: FST;
29
28
  seenI: number;
30
- seen: Map<string, number>;
29
+ seen: Record<string, number>;
31
30
  collect: boolean;
32
31
  err: any[];
33
32
  explain: any[] | null;
@@ -46,8 +45,6 @@ declare class AontuContext {
46
45
  };
47
46
  _trialMode?: boolean;
48
47
  _childCache?: Map<string, AontuContext>;
49
- _refCloneCache?: Map<string, Val>;
50
- _uniteCache?: Map<string, Val>;
51
48
  constructor(cfg: AontuContextConfig);
52
49
  clone(cfg: {
53
50
  root?: Val;
package/dist/ctx.js CHANGED
@@ -9,7 +9,6 @@ const err_1 = require("./err");
9
9
  class AontuContext {
10
10
  constructor(cfg) {
11
11
  this.cc = -1;
12
- this.sc = 0; // Unresolved spread count
13
12
  this.vars = {};
14
13
  this.root = cfg.root;
15
14
  this.path = [...(cfg.path ?? [])];
@@ -23,7 +22,7 @@ class AontuContext {
23
22
  this.cc = null == cfg.cc ? this.cc : cfg.cc;
24
23
  this.vars = cfg.vars ?? this.vars;
25
24
  this.seenI = cfg.seenI ?? 0;
26
- this.seen = cfg.seen ?? new Map();
25
+ this.seen = cfg.seen ?? {};
27
26
  this.srcpath = cfg.srcpath ?? undefined;
28
27
  this.deps = cfg.deps ?? {};
29
28
  this._pathmap = new Map();
package/dist/ctx.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ctx.js","sourceRoot":"","sources":["../src/ctx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ctx.js","sourceRoot":"","sources":["../src/ctx.ts"],"names":[],"mappings":"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"}
package/dist/lang.d.ts CHANGED
@@ -1,15 +1,11 @@
1
1
  import { Jsonic } from 'jsonic';
2
2
  import type { Val, AontuOptions } from './type';
3
3
  import { Site } from './site';
4
- import { PathVal } from './val/PathVal';
5
- import { KeyFuncVal } from './val/KeyFuncVal';
6
4
  declare class Lang {
7
5
  jsonic: Jsonic;
8
6
  opts: AontuOptions;
9
7
  idcount: number | undefined;
10
- paths: PathVal[];
11
- keys: KeyFuncVal[];
12
8
  constructor(options?: Partial<AontuOptions>);
13
9
  parse(src: string, opts?: Partial<AontuOptions>): Val;
14
10
  }
15
- export { Lang, PathVal, KeyFuncVal, Site, };
11
+ export { Lang, Site, };
package/dist/lang.js CHANGED
@@ -1,14 +1,13 @@
1
1
  "use strict";
2
2
  /* Copyright (c) 2021-2025 Richard Rodger, MIT License */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.Site = exports.KeyFuncVal = exports.PathVal = exports.Lang = void 0;
4
+ exports.Site = exports.Lang = void 0;
5
5
  // import { performance } from 'node:perf_hooks'
6
6
  const jsonic_1 = require("jsonic");
7
7
  const debug_1 = require("jsonic/debug");
8
8
  const multisource_1 = require("@jsonic/multisource");
9
9
  // TODO: @jsonic/multisource should support virtual fs
10
10
  const file_1 = require("@jsonic/multisource/resolver/file");
11
- const multisource_2 = require("@jsonic/multisource");
12
11
  const pkg_1 = require("@jsonic/multisource/resolver/pkg");
13
12
  const mem_1 = require("@jsonic/multisource/resolver/mem");
14
13
  const expr_1 = require("@jsonic/expr");
@@ -28,9 +27,7 @@ const NilVal_1 = require("./val/NilVal");
28
27
  const NullVal_1 = require("./val/NullVal");
29
28
  const NumberVal_1 = require("./val/NumberVal");
30
29
  const PrefVal_1 = require("./val/PrefVal");
31
- const PathVal_1 = require("./val/PathVal");
32
- Object.defineProperty(exports, "PathVal", { enumerable: true, get: function () { return PathVal_1.PathVal; } });
33
- // RefVal replaced by PathVal — see RefVal.ts.old
30
+ const RefVal_1 = require("./val/RefVal");
34
31
  const StringVal_1 = require("./val/StringVal");
35
32
  const VarVal_1 = require("./val/VarVal");
36
33
  const PlusOpVal_1 = require("./val/PlusOpVal");
@@ -38,7 +35,6 @@ const UpperFuncVal_1 = require("./val/UpperFuncVal");
38
35
  const LowerFuncVal_1 = require("./val/LowerFuncVal");
39
36
  const CopyFuncVal_1 = require("./val/CopyFuncVal");
40
37
  const KeyFuncVal_1 = require("./val/KeyFuncVal");
41
- Object.defineProperty(exports, "KeyFuncVal", { enumerable: true, get: function () { return KeyFuncVal_1.KeyFuncVal; } });
42
38
  const TypeFuncVal_1 = require("./val/TypeFuncVal");
43
39
  const HideFuncVal_1 = require("./val/HideFuncVal");
44
40
  const MoveFuncVal_1 = require("./val/MoveFuncVal");
@@ -47,7 +43,6 @@ const PrefFuncVal_1 = require("./val/PrefFuncVal");
47
43
  const CloseFuncVal_1 = require("./val/CloseFuncVal");
48
44
  const OpenFuncVal_1 = require("./val/OpenFuncVal");
49
45
  const SuperFuncVal_1 = require("./val/SuperFuncVal");
50
- const SpreadVal_1 = require("./val/SpreadVal");
51
46
  let AontuJsonic = function AontuLang(jsonic) {
52
47
  jsonic.use(path_1.Path);
53
48
  // TODO: refactor Val constructor
@@ -59,15 +54,6 @@ let AontuJsonic = function AontuLang(jsonic) {
59
54
  v.path = r.k ? [...(r.k.path || [])] : [];
60
55
  return v;
61
56
  };
62
- // Helper: create a SpreadVal from the raw SPREAD symbol data.
63
- function makeSpreadVal(rawSpread) {
64
- const constraint = Array.isArray(rawSpread.v)
65
- ? (rawSpread.v.length > 1
66
- ? new ConjunctVal_1.ConjunctVal({ peg: rawSpread.v })
67
- : rawSpread.v[0])
68
- : rawSpread.v;
69
- return new SpreadVal_1.SpreadVal({ peg: constraint });
70
- }
71
57
  jsonic.options({
72
58
  hint: {
73
59
  unknown: `
@@ -161,34 +147,16 @@ help isolate the syntax error.`,
161
147
  'conjunct-infix': (r, ctx, _op, terms) => addsite(new ConjunctVal_1.ConjunctVal({ peg: terms }), r, ctx),
162
148
  'disjunct-infix': (r, ctx, _op, terms) => addsite(new DisjunctVal_1.DisjunctVal({ peg: terms }), r, ctx),
163
149
  'dot-prefix': (r, ctx, _op, terms) => {
164
- const pv = addsite(new PathVal_1.PathVal({ peg: terms, prefix: true }), r, ctx);
165
- if (ctx.meta.paths) {
166
- ctx.meta.paths.push(pv);
167
- }
168
- return pv;
150
+ return addsite(new RefVal_1.RefVal({ peg: terms, prefix: true }), r, ctx);
169
151
  },
170
152
  'dot-infix': (r, ctx, _op, terms) => {
171
- const paths = ctx.meta.paths;
172
- if (paths) {
173
- // Remove consumed intermediates
174
- for (const t of terms) {
175
- if (t instanceof PathVal_1.PathVal) {
176
- const idx = paths.indexOf(t);
177
- if (idx >= 0)
178
- paths.splice(idx, 1);
179
- }
180
- }
181
- }
182
- const pv = addsite(new PathVal_1.PathVal({ peg: terms }), r, ctx);
183
- if (paths) {
184
- paths.push(pv);
185
- }
186
- return pv;
153
+ // // console.log('DOT-INFIX-OP', terms)
154
+ return addsite(new RefVal_1.RefVal({ peg: terms }), r, ctx);
187
155
  },
188
156
  'star-prefix': (r, ctx, _op, terms) => addsite(new PrefVal_1.PrefVal({ peg: terms[0] }), r, ctx),
189
157
  'dollar-prefix': (r, ctx, _op, terms) => {
190
158
  // $.a.b absolute path
191
- if (terms[0] instanceof PathVal_1.PathVal) {
159
+ if (terms[0] instanceof RefVal_1.RefVal) {
192
160
  terms[0].absolute = true;
193
161
  return terms[0];
194
162
  }
@@ -219,9 +187,6 @@ help isolate the syntax error.`,
219
187
  });
220
188
  }
221
189
  const out = addsite(val, r, ctx);
222
- if (out.isKeyFunc && ctx.meta.keys) {
223
- ctx.meta.keys.push(out);
224
- }
225
190
  return out;
226
191
  },
227
192
  };
@@ -230,10 +195,10 @@ help isolate the syntax error.`,
230
195
  op: {
231
196
  // disjunct < conjunct: c & b | a -> (c & b) | a
232
197
  'conjunct': {
233
- infix: true, src: '&', left: 16_000_000, right: 17_000_000,
198
+ infix: true, src: '&', left: 16_000_000, right: 17_000_000
234
199
  },
235
200
  'disjunct': {
236
- infix: true, src: '|', left: 14_000_000, right: 15_000_000,
201
+ infix: true, src: '|', left: 14_000_000, right: 15_000_000
237
202
  },
238
203
  'plus-infix': {
239
204
  src: '+',
@@ -266,6 +231,7 @@ help isolate the syntax error.`,
266
231
  paren: true,
267
232
  preval: {
268
233
  active: true,
234
+ // allow: ['floor'], //Object.keys(funcMap)
269
235
  },
270
236
  osrc: '(',
271
237
  csrc: ')',
@@ -359,34 +325,19 @@ help isolate the syntax error.`,
359
325
  .bc((r, ctx) => {
360
326
  const optionalKeys = r.u.aontu_optional_keys ?? [];
361
327
  let mo = r.node;
362
- // Extract spread constraint before creating MapVal.
363
- // If a spread exists, wrap: ConjunctVal([MapVal, SpreadVal])
364
- const rawSpread = mo[type_1.SPREAD];
365
- if (rawSpread) {
366
- delete mo[type_1.SPREAD];
367
- }
368
328
  // Handle defered conjuncts, e.g. `{x:1 @"foo"}`
369
329
  if (mo.___merge) {
370
330
  let mop = { ...mo };
371
331
  delete mop.___merge;
332
+ // TODO: needs addpath?
372
333
  let mopv = new MapVal_1.MapVal({ peg: mop });
373
334
  mopv.optionalKeys = optionalKeys;
374
- let terms = [mopv, ...mo.___merge];
375
- if (rawSpread && '&' === rawSpread.o) {
376
- terms.push(makeSpreadVal(rawSpread));
377
- }
378
- r.node = addsite(new ConjunctVal_1.ConjunctVal({ peg: terms }), r, ctx);
335
+ r.node =
336
+ addsite(new ConjunctVal_1.ConjunctVal({ peg: [mopv, ...mo.___merge] }), r, ctx);
379
337
  }
380
338
  else {
381
- let mapVal = new MapVal_1.MapVal({ peg: mo });
382
- mapVal.optionalKeys = optionalKeys;
383
- if (rawSpread && '&' === rawSpread.o) {
384
- const spreadVal = makeSpreadVal(rawSpread);
385
- r.node = addsite(new ConjunctVal_1.ConjunctVal({ peg: [mapVal, spreadVal] }), r, ctx);
386
- }
387
- else {
388
- r.node = addsite(mapVal, r, ctx);
389
- }
339
+ r.node = addsite(new MapVal_1.MapVal({ peg: mo }), r, ctx);
340
+ r.node.optionalKeys = optionalKeys;
390
341
  }
391
342
  return undefined;
392
343
  })
@@ -399,33 +350,18 @@ help isolate the syntax error.`,
399
350
  .bc((r, ctx) => {
400
351
  const optionalKeys = r.u.aontu_optional_keys ?? [];
401
352
  let ao = r.node;
402
- // Extract spread from list before creating ListVal.
403
- const rawSpread = ao[type_1.SPREAD];
404
- if (rawSpread) {
405
- delete ao[type_1.SPREAD];
406
- }
407
353
  if (ao.___merge) {
408
354
  let aop = [...ao];
409
355
  delete aop.___merge;
356
+ // TODO: needs addpath?
410
357
  let aopv = new ListVal_1.ListVal({ peg: aop });
411
358
  aopv.optionalKeys = optionalKeys;
412
- let terms = [aopv, ...ao.___merge];
413
- if (rawSpread && '&' === rawSpread.o) {
414
- terms.push(makeSpreadVal(rawSpread));
415
- }
416
359
  r.node =
417
- addsite(new ConjunctVal_1.ConjunctVal({ peg: terms }), r, ctx);
360
+ addsite(new ConjunctVal_1.ConjunctVal({ peg: [aopv, ...ao.___merge] }), r, ctx);
418
361
  }
419
362
  else {
420
- let listVal = new ListVal_1.ListVal({ peg: ao });
421
- listVal.optionalKeys = optionalKeys;
422
- if (rawSpread && '&' === rawSpread.o) {
423
- const spreadVal = makeSpreadVal(rawSpread);
424
- r.node = addsite(new ConjunctVal_1.ConjunctVal({ peg: [listVal, spreadVal] }), r, ctx);
425
- }
426
- else {
427
- r.node = addsite(listVal, r, ctx);
428
- }
363
+ r.node = addsite(new ListVal_1.ListVal({ peg: ao }), r, ctx);
364
+ r.node.optionalKeys = optionalKeys;
429
365
  }
430
366
  return undefined;
431
367
  });
@@ -468,13 +404,11 @@ help isolate the syntax error.`,
468
404
  g: 'aontu-optional-pair'
469
405
  }
470
406
  ])
471
- // Spread children inherit the parent path directly.
472
- // The path gets adjusted correctly when SpreadVal applies
473
- // the constraint via spreadClone(keyctx).
407
+ // NOTE: manually adjust path - @jsonic/path ignores as not pair:true
474
408
  .ao((r) => {
475
409
  if (0 < r.d && r.u.spread) {
476
- r.child.k.path = r.k.path;
477
- r.child.k.key = r.k.key;
410
+ r.child.k.path = [...r.k.path, '&'];
411
+ r.child.k.key = '&';
478
412
  }
479
413
  })
480
414
  .bc((rule) => {
@@ -538,14 +472,10 @@ function makeModelResolver(options) {
538
472
  let memResolver = (0, mem_1.makeMemResolver)({
539
473
  ...(options.resolver?.mem || {})
540
474
  });
541
- const pathfinder = (spec) => {
475
+ // TODO: make this consistent with other resolvers
476
+ let fileResolver = (0, file_1.makeFileResolver)((spec) => {
542
477
  return 'string' === typeof spec ? spec : spec?.peg;
543
- };
544
- let preload;
545
- if (options.preload) {
546
- preload = (0, multisource_2.preloadFiles)(options.preload);
547
- }
548
- let fileResolver = (0, file_1.makeFileResolver)(preload ? { pathfinder, preload } : pathfinder);
478
+ });
549
479
  let pkgResolver = (0, pkg_1.makePkgResolver)({
550
480
  require: useRequire,
551
481
  ...(options.resolver?.pkg || {})
@@ -577,8 +507,6 @@ function makeModelResolver(options) {
577
507
  class Lang {
578
508
  constructor(options) {
579
509
  // const start = performance.now()
580
- this.paths = [];
581
- this.keys = [];
582
510
  this.opts = Object.assign((0, type_1.DEFAULT_OPTS)(), options);
583
511
  const modelResolver = makeModelResolver(this.opts);
584
512
  this.jsonic = jsonic_1.Jsonic.make();
@@ -600,13 +528,9 @@ class Lang {
600
528
  parse(src, opts) {
601
529
  // const start = performance.now()
602
530
  // JSONIC-UPDATE - check meta
603
- this.paths = [];
604
- this.keys = [];
605
531
  let jm = {
606
532
  fs: opts?.fs,
607
533
  fileName: opts?.path ?? this.opts.path,
608
- paths: this.paths,
609
- keys: this.keys,
610
534
  multisource: {
611
535
  path: opts?.path ?? this.opts.path,
612
536
  deps: (opts && opts.deps) || undefined