@elaraai/east 1.0.85 → 1.0.87

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 (48) hide show
  1. package/dist/src/analyze_async.d.ts +38 -0
  2. package/dist/src/analyze_async.d.ts.map +1 -0
  3. package/dist/src/analyze_async.js +106 -0
  4. package/dist/src/analyze_async.js.map +1 -0
  5. package/dist/src/codegen/codegen.spec.js +11 -0
  6. package/dist/src/codegen/codegen.spec.js.map +1 -1
  7. package/dist/src/comparison.d.ts +33 -0
  8. package/dist/src/comparison.d.ts.map +1 -1
  9. package/dist/src/comparison.js +123 -0
  10. package/dist/src/comparison.js.map +1 -1
  11. package/dist/src/expr/block.d.ts +3 -1
  12. package/dist/src/expr/block.d.ts.map +1 -1
  13. package/dist/src/expr/block.js +7 -1
  14. package/dist/src/expr/block.js.map +1 -1
  15. package/dist/src/functions.crossimport.spec.js +8 -0
  16. package/dist/src/functions.crossimport.spec.js.map +1 -1
  17. package/dist/src/functions.d.ts +45 -8
  18. package/dist/src/functions.d.ts.map +1 -1
  19. package/dist/src/functions.js +138 -28
  20. package/dist/src/functions.js.map +1 -1
  21. package/dist/src/functions.spec.js +60 -2
  22. package/dist/src/functions.spec.js.map +1 -1
  23. package/dist/src/serialization/beast2/codec-build.spec.d.ts +6 -0
  24. package/dist/src/serialization/beast2/codec-build.spec.d.ts.map +1 -0
  25. package/dist/src/serialization/beast2/codec-build.spec.js +69 -0
  26. package/dist/src/serialization/beast2/codec-build.spec.js.map +1 -0
  27. package/dist/src/serialization/beast2/decoded-function.spec.d.ts +6 -0
  28. package/dist/src/serialization/beast2/decoded-function.spec.d.ts.map +1 -0
  29. package/dist/src/serialization/beast2/decoded-function.spec.js +66 -0
  30. package/dist/src/serialization/beast2/decoded-function.spec.js.map +1 -0
  31. package/dist/src/serialization/beast2/shared.d.ts +11 -1
  32. package/dist/src/serialization/beast2/shared.d.ts.map +1 -1
  33. package/dist/src/serialization/beast2/shared.js +13 -3
  34. package/dist/src/serialization/beast2/shared.js.map +1 -1
  35. package/dist/src/serialization/beast2/v4/container.d.ts +42 -1
  36. package/dist/src/serialization/beast2/v4/container.d.ts.map +1 -1
  37. package/dist/src/serialization/beast2/v4/container.js +45 -5
  38. package/dist/src/serialization/beast2/v4/container.js.map +1 -1
  39. package/dist/src/serialization/beast2/v5/codec.d.ts.map +1 -1
  40. package/dist/src/serialization/beast2/v5/codec.js +36 -6
  41. package/dist/src/serialization/beast2/v5/codec.js.map +1 -1
  42. package/dist/src/type_of_type.d.ts +26 -0
  43. package/dist/src/type_of_type.d.ts.map +1 -1
  44. package/dist/src/type_of_type.js +9 -1
  45. package/dist/src/type_of_type.js.map +1 -1
  46. package/dist/src/type_of_type.to_etv.spec.js +76 -1
  47. package/dist/src/type_of_type.to_etv.spec.js.map +1 -1
  48. package/package.json +1 -1
@@ -6,8 +6,9 @@
6
6
  * Cross-language East functions (#628): export, import, link.
7
7
  *
8
8
  * A function authored in one host language is exported as pure IR — its
9
- * `Function` node, the declared `FunctionType`, and the platform functions
10
- * it calls — in a **function manifest** (`FunctionManifestType`, one beast2
9
+ * `Function` node, the declared `FunctionType`, the platform functions it
10
+ * calls, and the source map its locations index — in a **function
11
+ * manifest** (`FunctionManifestType`, one beast2
11
12
  * value per package). Code in the other language refers to it with
12
13
  * `East.importFunction(package, name, type)`: a typed, callable function
13
14
  * expression whose IR is a `Platform` node named {@link IMPORT_PLATFORM}
@@ -24,13 +25,13 @@
24
25
  */
25
26
  import { ArrayType, BooleanType, NullType, OptionType, StringType, StructType } from "./types.js";
26
27
  import { EastTypeType, isTypeValueEqual, toEastTypeValue } from "./type_of_type.js";
27
- import { IRType } from "./ir.js";
28
+ import { IRType, LocationType } from "./ir.js";
28
29
  import { walkIR, literalValueOf } from "./walker.js";
29
- import { variant, some, none } from "./containers/variant.js";
30
+ import { variant, some, none, isVariant } from "./containers/variant.js";
30
31
  import { printTypeValue } from "./compile.js";
31
- import { encodeBeast2For, decodeBeast2For } from "./serialization/beast2/index.js";
32
+ import { encodeBeast2For, decodeBeast2For, readBeast2Type } from "./serialization/beast2/index.js";
32
33
  import { Expr } from "./expr/expr.js";
33
- import { get_location_id } from "./location.js";
34
+ import { get_location_id, SourceMap } from "./location.js";
34
35
  /** The platform name an unresolved `East.importFunction` carries in IR. */
35
36
  export const IMPORT_PLATFORM = "east.importFunction";
36
37
  /**
@@ -50,11 +51,17 @@ export const PlatformDependencyType = StructType({
50
51
  provider: OptionType(StringType),
51
52
  type_parameters: ArrayType(EastTypeType),
52
53
  });
53
- /** One exported function: its IR, declared type, and platform dependencies. */
54
+ /**
55
+ * One exported function: its IR, declared type, platform dependencies, and
56
+ * the source map its IR's loc_ids index — every location stack the IR names,
57
+ * entry 0 the empty one — so its frames name the exporter's source wherever
58
+ * it is linked.
59
+ */
54
60
  export const FunctionExportType = StructType({
55
61
  ir: IRType,
56
62
  name: StringType,
57
63
  platforms: ArrayType(PlatformDependencyType),
64
+ source_map: ArrayType(ArrayType(LocationType)),
58
65
  type: EastTypeType,
59
66
  });
60
67
  /** A package's exported functions — what `east-py export-functions` / `East.exportFunctions` write. */
@@ -73,18 +80,23 @@ export const FunctionManifestType = StructType({
73
80
  * @throws {TypeError} For anything else
74
81
  */
75
82
  export function functionIR(fnOrIr) {
83
+ return functionBundle(fnOrIr).ir;
84
+ }
85
+ /** The IR behind a function and the source map its loc_ids index (null for a bare IR value). */
86
+ function functionBundle(fnOrIr) {
76
87
  if (fnOrIr instanceof Expr) {
77
88
  const toIR = fnOrIr.toIR;
78
89
  if (typeof toIR !== "function")
79
90
  throw new TypeError("expected a function expression, not a plain expression");
80
- return toIR.call(fnOrIr).ir;
91
+ const bundle = toIR.call(fnOrIr);
92
+ return { ir: bundle.ir, sourceMap: bundle.source_map ?? null };
81
93
  }
82
94
  const v = fnOrIr;
83
95
  if (v !== null && typeof v === "object" && v.ir !== undefined && typeof v.ir.type === "string") {
84
- return v.ir; // an EastIR / AsyncEastIR
96
+ return { ir: v.ir, sourceMap: v.source_map ?? null }; // an EastIR / AsyncEastIR
85
97
  }
86
98
  if (v !== null && typeof v === "object" && typeof v.type === "string" && "value" in v) {
87
- return v;
99
+ return { ir: v, sourceMap: null };
88
100
  }
89
101
  throw new TypeError("expected an East.function result, an EastIR, or an IR value");
90
102
  }
@@ -141,8 +153,11 @@ export function platformDependencies(fnOrIr, providers = {}) {
141
153
  *
142
154
  * Every function exports as a closed value: a function with captures (a
143
155
  * closure over the enclosing body) is rejected, as is one that itself holds
144
- * an unresolved import — link before exporting; v1 does not chain. The
145
- * exported IR carries no location ids (a manifest has no source map).
156
+ * an unresolved import — link before exporting; v1 does not chain. Each
157
+ * function carries the locations its IR names, renumbered into a source map
158
+ * of its own, so the frames of an error or a profile name its source
159
+ * wherever it is linked; a bare IR value, which carries no map, exports
160
+ * without locations.
146
161
  *
147
162
  * @param pkg - The exporting package's name (what importers name)
148
163
  * @param version - Its version
@@ -163,7 +178,7 @@ export function exportFunctions(pkg, version, functions, options = {}) {
163
178
  throw new Error("exportFunctions: the package name is empty");
164
179
  const exports = [];
165
180
  for (const name of Object.keys(functions).sort()) {
166
- const ir = functionIR(functions[name]);
181
+ const { ir, sourceMap } = functionBundle(functions[name]);
167
182
  const root = rootFunction(ir, `exportFunctions: ${name}`);
168
183
  const captures = root.value.captures.map(v => v.value.name);
169
184
  if (captures.length > 0) {
@@ -176,23 +191,69 @@ export function exportFunctions(pkg, version, functions, options = {}) {
176
191
  if (imports > 0) {
177
192
  throw new Error(`exportFunctions: ${name} holds ${imports} unresolved import(s) — link it (linkImports) before exporting; exports do not chain`);
178
193
  }
194
+ // Only the stacks this function names, in a map of its own: the build's
195
+ // map may hold its siblings' too.
196
+ const own = new SourceMap();
179
197
  exports.push({
180
- ir: stripLocations(ir),
198
+ ir: remapLocations(ir, sourceMap?.entries() ?? [], own),
181
199
  name,
182
200
  platforms: platformDependencies(ir, options.providers ?? {}),
201
+ source_map: own.entries().map(stack => [...stack]),
183
202
  type: root.value.type,
184
203
  });
185
204
  }
186
205
  return { functions: exports, package: pkg, version };
187
206
  }
188
207
  /**
189
- * The IR with every `loc_id` zeroed. A manifest carries no source map, so
190
- * the exporter's location ids would only collide with the importer's; an
191
- * embedded function reports no location instead.
208
+ * The IR with every `loc_id` — each node's, each loop label's, each
209
+ * variable's — naming its stack in `from` re-interned into `to`; an id
210
+ * `from` cannot place becomes 0. Nodes are rebuilt once each, so a node the
211
+ * IR shares (a parameter its body reads) stays shared.
212
+ *
213
+ * @param ir - The IR whose loc_ids index `from`
214
+ * @param from - The stacks the IR's loc_ids index, entry 0 the empty one
215
+ * @param to - The map the result's loc_ids index
216
+ * @returns The IR, its loc_ids indexing `to`
192
217
  */
193
- function stripLocations(ir) {
194
- const stripped = mapChildren(ir, stripLocations);
195
- return variant(stripped.type, { ...stripped.value, loc_id: 0n });
218
+ function remapLocations(ir, from, to) {
219
+ const done = new Map();
220
+ const loc = (id) => {
221
+ const stack = id > 0n ? from[Number(id)] : undefined;
222
+ return stack === undefined ? 0n : to.intern_stack([...stack]);
223
+ };
224
+ // A struct inside a node — a label, a case, a field, an entry — holds
225
+ // child nodes and, for a label, a loc_id of its own.
226
+ const child = (item) => {
227
+ if (Array.isArray(item))
228
+ return item.map(child);
229
+ if (isVariant(item))
230
+ return node(item);
231
+ if (item === null || typeof item !== "object")
232
+ return item;
233
+ const out = {};
234
+ for (const [key, sub] of Object.entries(item))
235
+ out[key] = key === "loc_id" ? loc(sub) : child(sub);
236
+ return out;
237
+ };
238
+ const node = (n) => {
239
+ const hit = done.get(n);
240
+ if (hit !== undefined)
241
+ return hit;
242
+ const out = {};
243
+ for (const [key, item] of Object.entries(n.value)) {
244
+ // Types hold no locations, and a Value node's value is data.
245
+ if (key === "loc_id")
246
+ out[key] = loc(item);
247
+ else if (key === "type" || key === "type_parameters" || (n.type === "Value" && key === "value"))
248
+ out[key] = item;
249
+ else
250
+ out[key] = child(item);
251
+ }
252
+ const result = variant(n.type, out);
253
+ done.set(n, result);
254
+ return result;
255
+ };
256
+ return node(ir);
196
257
  }
197
258
  // The codec is built on first use, not at import: building a beast2 codec
198
259
  // for a type that holds `IRType` assigns recursive type ids, and doing that
@@ -210,9 +271,47 @@ function codec() {
210
271
  export function encodeFunctionManifest(manifest) {
211
272
  return codec().encode(manifest);
212
273
  }
213
- /** Decodes a function manifest written by either language. */
274
+ /**
275
+ * Decodes a function manifest written by either language.
276
+ *
277
+ * @param data - The manifest's beast2 bytes
278
+ * @returns The manifest value
279
+ * @throws {Error} For a manifest an earlier release wrote — its functions
280
+ * carry no source map — naming the fix: re-export it. Any other blob fails
281
+ * as beast2 refuses it.
282
+ */
214
283
  export function decodeFunctionManifest(data) {
215
- return codec().decode(data);
284
+ try {
285
+ return codec().decode(data);
286
+ }
287
+ catch (err) {
288
+ if (isEarlierManifest(data)) {
289
+ throw new Error("decodeFunctionManifest: this function manifest was written by an earlier release, whose functions carry " +
290
+ "no source map — re-export it with this release (east-py export-functions, east-node export-functions or " +
291
+ "East.exportFunctions)");
292
+ }
293
+ throw err;
294
+ }
295
+ }
296
+ /** Whether a blob's header names an earlier release's manifest: its `functions` hold an `ir` and no `source_map`. */
297
+ function isEarlierManifest(data) {
298
+ let root;
299
+ try {
300
+ root = readBeast2Type(data);
301
+ }
302
+ catch {
303
+ return false;
304
+ }
305
+ if (root.type !== "Struct")
306
+ return false;
307
+ const functions = root.value.find(f => f.name === "functions")?.type;
308
+ if (functions === undefined || functions.type !== "Array")
309
+ return false;
310
+ const element = functions.value;
311
+ if (element.type !== "Struct")
312
+ return false;
313
+ const names = element.value.map(f => f.name);
314
+ return names.includes("ir") && !names.includes("source_map");
216
315
  }
217
316
  export function importFunction(pkg, name, type) {
218
317
  if (type.type !== "Function" && type.type !== "AsyncFunction") {
@@ -251,15 +350,17 @@ function importTarget(node) {
251
350
  * import (and, for a type mismatch, both types). The exported IR becomes a
252
351
  * `Let`-bound constant at the top of the importing function's body; a use
253
352
  * inside a nested function captures it, so the nested functions' `captures`
254
- * are extended. The result is self-contained IR with no import left.
353
+ * are extended. The result is self-contained IR with no import left. The
354
+ * embedded functions keep their locations: their stacks join a copy of the
355
+ * importer's source map, which the result carries.
255
356
  *
256
357
  * @param fnOrIr - A function expression, its `toIR()`, or an IR value
257
358
  * @param manifests - The exporting packages' manifests
258
- * @returns The linked IR and the imports it resolved (with their platform dependencies)
359
+ * @returns The linked IR, the imports it resolved (with their platform dependencies) and the source map its loc_ids index
259
360
  * @throws {Error} For an unresolvable import or a type mismatch
260
361
  */
261
362
  export function linkImports(fnOrIr, manifests) {
262
- const ir = functionIR(fnOrIr);
363
+ const { ir, sourceMap: importerMap } = functionBundle(fnOrIr);
263
364
  const byPackage = new Map();
264
365
  for (const m of manifests)
265
366
  byPackage.set(m.package, m);
@@ -290,7 +391,16 @@ export function linkImports(fnOrIr, manifests) {
290
391
  const root = rootFunction(ir, "linkImports");
291
392
  scan(root.value.body, 0);
292
393
  if (targets.size === 0)
293
- return { ir, imports: [] };
394
+ return { ir, imports: [], sourceMap: importerMap };
395
+ // The importer's stacks keep their ids — each is distinct, so interning
396
+ // them in order numbers them as they were — and every embedded function's
397
+ // join after them. An importer with no map has no ids to keep apart from.
398
+ let sourceMap = null;
399
+ if (importerMap !== null) {
400
+ sourceMap = new SourceMap();
401
+ for (const stack of importerMap.entries())
402
+ sourceMap.intern_stack([...stack]);
403
+ }
294
404
  // Resolve each against its manifest: present, named, and typed exactly.
295
405
  const bindings = new Map();
296
406
  const imports = [];
@@ -346,7 +456,7 @@ export function linkImports(fnOrIr, manifests) {
346
456
  type: toEastTypeValue(NullType),
347
457
  loc_id: 0n,
348
458
  variable: b.variable,
349
- value: b.export.ir,
459
+ value: remapLocations(b.export.ir, sourceMap === null ? [] : b.export.source_map, sourceMap ?? new SourceMap()),
350
460
  }));
351
461
  const statements = body.type === "Block" ? [...lets, ...body.value.statements] : [...lets, body];
352
462
  const linkedBody = variant("Block", {
@@ -360,7 +470,7 @@ export function linkImports(fnOrIr, manifests) {
360
470
  const outer = ir.value.statements;
361
471
  linked = variant("Block", { ...ir.value, statements: [...outer.slice(0, -1), linkedRoot] });
362
472
  }
363
- return { ir: linked, imports };
473
+ return { ir: linked, imports, sourceMap };
364
474
  }
365
475
  /** A name as an identifier fragment. */
366
476
  function identifier(name) {
@@ -1 +1 @@
1
- {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../src/functions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../src/functions.ts"],"names":[],"mappings":"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"}
@@ -8,12 +8,15 @@
8
8
  */
9
9
  import { describe, test } from "node:test";
10
10
  import assert from "node:assert/strict";
11
- import { East, EastIR, some, none, equalFor, ArrayType, FloatType, FunctionType, IntegerType, NullType, StringType, StructType, FunctionManifestType, IMPORT_PLATFORM, toSource, walkIR, } from "./index.js";
11
+ import { East, EastIR, EastError, some, none, equalFor, ArrayType, FloatType, FunctionType, IntegerType, NullType, StringType, StructType, FunctionManifestType, IMPORT_PLATFORM, toSource, walkIR, EastTypeType, FunctionExportType, IRType, PlatformDependencyType, encodeBeast2For, } from "./index.js";
12
12
  const Row = StructType({ qty: IntegerType, price: FloatType });
13
13
  const score = East.function([Row], FloatType, ($, r) => r.qty.toFloat().multiply(r.price));
14
14
  const double = East.function([IntegerType], IntegerType, ($, x) => x.multiply(2n));
15
15
  const log = East.platform("log", [StringType], NullType);
16
16
  const shout = East.function([StringType], NullType, ($, s) => { $(log(s.upperCase())); });
17
+ // The line `pick` is written on, which an error inside it names wherever it is linked.
18
+ const pickLine = BigInt(/:(\d+):\d+\)?$/.exec(new Error().stack.split("\n")[1])[1]) + 1n;
19
+ const pick = East.function([ArrayType(IntegerType), IntegerType], IntegerType, ($, xs, i) => xs.get(i));
17
20
  function countImports(ir) {
18
21
  let n = 0;
19
22
  walkIR(ir, node => { if (node.type === "Platform" && node.value.name === IMPORT_PLATFORM)
@@ -42,6 +45,16 @@ describe("functions: export", () => {
42
45
  assert.ok(equalFor(FunctionManifestType)(back, manifest));
43
46
  assert.deepEqual(back.functions[1].platforms[0].provider, none);
44
47
  });
48
+ test("an earlier release's manifest is refused, naming the fix", () => {
49
+ // Written before functions carried a source map.
50
+ const EarlierExport = StructType({ ir: IRType, name: StringType, platforms: ArrayType(PlatformDependencyType), type: EastTypeType });
51
+ const Earlier = StructType({ functions: ArrayType(EarlierExport), package: StringType, version: StringType });
52
+ const data = encodeBeast2For(Earlier)({ functions: [], package: "old", version: "1.0.0" });
53
+ assert.throws(() => East.decodeFunctionManifest(data), /written by an earlier release.*re-export it/);
54
+ // a blob of another type is refused as beast2 refuses it
55
+ const other = encodeBeast2For(ArrayType(FunctionExportType))([]);
56
+ assert.throws(() => East.decodeFunctionManifest(other), /cannot decode/);
57
+ });
45
58
  test("a closure and an unlinked importer are refused", () => {
46
59
  const outer = East.function([IntegerType], IntegerType, ($, n) => {
47
60
  const k = $.const(n.add(1n));
@@ -54,6 +67,24 @@ describe("functions: export", () => {
54
67
  const user = East.function([IntegerType], IntegerType, ($, x) => imported(x));
55
68
  assert.throws(() => East.exportFunctions("p", "1", { user }), /unresolved import/);
56
69
  });
70
+ test("each function carries the locations its IR names, in a source map of its own", () => {
71
+ const manifest = East.exportFunctions("pricing", "1.0.0", { score, double });
72
+ for (const f of manifest.functions) {
73
+ assert.deepEqual(f.source_map[0], []);
74
+ const named = new Set();
75
+ walkIR(f.ir, node => { if (node.value.loc_id > 0n)
76
+ named.add(node.value.loc_id); });
77
+ assert.ok(named.size > 0, `${f.name} names no location`);
78
+ // every stack but the empty one is one the IR names, and each is here
79
+ assert.equal(f.source_map.length, named.size + 1);
80
+ for (const id of named)
81
+ assert.match(f.source_map[Number(id)][0].filename, /functions\.spec\.[jt]s$/);
82
+ }
83
+ // a bare IR value carries no map, so it exports with no locations
84
+ const bare = East.exportFunctions("p", "1", { double: double.toIR().ir });
85
+ assert.deepEqual(bare.functions[0].source_map, [[]]);
86
+ walkIR(bare.functions[0].ir, node => assert.equal(node.value.loc_id, 0n));
87
+ });
57
88
  });
58
89
  describe("functions: import and link", () => {
59
90
  const manifest = East.exportFunctions("pricing", "1.0.0", { score, double, shout }, { providers: { log: "@elaraai/east-node-std" } });
@@ -108,9 +139,36 @@ describe("functions: import and link", () => {
108
139
  });
109
140
  test("a function without imports links to itself", () => {
110
141
  const bundle = double.toIR();
111
- const { ir, imports } = East.linkImports(bundle, [manifest]);
142
+ const { ir, imports, sourceMap } = East.linkImports(bundle, [manifest]);
112
143
  assert.deepEqual(imports, []);
113
144
  assert.equal(ir, bundle.ir);
145
+ assert.equal(sourceMap, bundle.source_map);
146
+ });
147
+ test("linking adds the embedded functions' locations to the importer's map, whose own keep their ids", () => {
148
+ const imported = East.importFunction("pricing", "double", FunctionType([IntegerType], IntegerType));
149
+ const user = East.function([IntegerType], IntegerType, ($, x) => imported(x).add(1n));
150
+ const bundle = user.toIR();
151
+ const { sourceMap } = East.linkImports(bundle, [manifest]);
152
+ assert.ok(sourceMap !== null && bundle.source_map !== null);
153
+ bundle.source_map.entries().forEach((stack, id) => assert.deepEqual(sourceMap.resolve(BigInt(id)), stack));
154
+ assert.ok(sourceMap.size > bundle.source_map.size);
155
+ // an IR value carries no map: the embedded functions carry no locations
156
+ assert.equal(East.linkImports(bundle.ir, [manifest]).sourceMap, null);
157
+ });
158
+ test("an error inside an embedded function names the exporter's source", () => {
159
+ const lists = East.exportFunctions("lists", "1.0.0", { pick });
160
+ const imported = East.importFunction("lists", "pick", FunctionType([ArrayType(IntegerType), IntegerType], IntegerType));
161
+ const user = East.function([ArrayType(IntegerType)], IntegerType, ($, xs) => imported(xs, 5n));
162
+ const { ir, sourceMap } = East.linkImports(user, [East.decodeFunctionManifest(East.encodeFunctionManifest(lists))]);
163
+ const linked = new EastIR(ir);
164
+ linked.source_map = sourceMap;
165
+ const run = linked.compile([]);
166
+ assert.throws(() => run([1n]), (e) => {
167
+ assert.ok(e instanceof EastError);
168
+ assert.match(e.location[0].filename, /functions\.spec\.[jt]s$/);
169
+ assert.equal(e.location[0].line, pickLine);
170
+ return true;
171
+ });
114
172
  });
115
173
  test("the import prints as East.importFunction and the printed module rebuilds it", () => {
116
174
  const imported = East.importFunction("pricing", "double", FunctionType([IntegerType], IntegerType));
@@ -1 +1 @@
1
- {"version":3,"file":"functions.spec.js","sourceRoot":"","sources":["../../src/functions.spec.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAExC,OAAO,EACL,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAClC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EACjF,oBAAoB,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GACxD,MAAM,YAAY,CAAC;AAEpB,MAAM,GAAG,GAAG,UAAU,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;AAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3F,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACnF,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC;AACzD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE1F,SAAS,YAAY,CAAC,EAAW;IAC/B,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,MAAM,CAAC,EAAS,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,eAAe;QAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5G,OAAO,CAAC,CAAC;AACX,CAAC;AAED,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,IAAI,CAAC,gGAAgG,EAAE,GAAG,EAAE;QAC1G,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,wBAAwB,EAAE,EAAE,CAAC,CAAC;QACtI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACpF,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,CAAE,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACrC,MAAM,CAAC,KAAK,CAAC,CAAE,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACvC,MAAM,CAAC,SAAS,CAAC,CAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,EAAG,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,EAAG,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC5C,MAAM,CAAC,KAAK,CAAC,EAAG,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,CAAC,SAAS,CAAC,EAAG,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAC7E,MAAM,CAAC,KAAK,CAAC,EAAG,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5E,MAAM,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChF,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gDAAgD,EAAE,GAAG,EAAE;QAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC/D,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7B,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrF,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,sFAAsF;QACtF,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;QACpG,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,mBAAmB,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,wBAAwB,EAAE,EAAE,CAAC,CAAC;IAEtI,IAAI,CAAC,sFAAsF,EAAE,GAAG,EAAE;QAChG,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;QACpG,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACtF,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,sBAAsB,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+EAA+E,EAAE,GAAG,EAAE;QACzF,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;QACpG,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACtF,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3D,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACjF,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,EAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gGAAgG,EAAE,GAAG,EAAE;QAC1G,MAAM,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QAClF,MAAM,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;QAC7F,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;YAClE,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACtD,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACrC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;QACH,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3D,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;QAChE,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,EAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9C,8BAA8B;QAC9B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;QACvF,mEAAmE;QACnE,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,8FAA8F,EAAE,GAAG,EAAE;QACxG,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QACzF,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3D,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACpD,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;QACrF,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,IAAI,MAAM,CAAC,EAAS,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAS,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACvF,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+FAA+F,EAAE,GAAG,EAAE;QACzG,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QACjG,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,4CAA4C,CAAC,CAAC;QAC9F,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,iDAAiD,CAAC,CAAC;QAC3G,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;QACjG,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,8DAA8D,CAAC,CAAC;IAC3H,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACtD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAC7B,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7D,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,6EAA6E,EAAE,GAAG,EAAE;QACvF,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;QACpG,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,2FAA2F,CAAC,CAAC;QAClH,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAkB,CAAC,EAAE,sBAAsB,CAAC,CAAC;IAC5G,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"functions.spec.js","sourceRoot":"","sources":["../../src/functions.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=codec-build.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec-build.spec.d.ts","sourceRoot":"","sources":["../../../../src/serialization/beast2/codec-build.spec.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ /**
6
+ * A codec build builds the IR's codec once. A function value carries its IR,
7
+ * so every function type a build reaches encodes or decodes one — and each
8
+ * used to build the whole IRType codec of its own: UIComponentType's 727
9
+ * function fields made its encoder ~170 MB and ~170 ms to build. The IR's
10
+ * recursive types register in the build's recursion context as its codec is
11
+ * built, so the registrations a build makes say how often it built the IR's.
12
+ */
13
+ import { describe, test } from "node:test";
14
+ import assert from "node:assert/strict";
15
+ import { FunctionType, IntegerType, StructType } from "../../types.js";
16
+ import { toEastTypeValue } from "../../type_of_type.js";
17
+ import { East } from "../../index.js";
18
+ import { buildV5Decoder, buildV5Encoder } from "./v5/codec.js";
19
+ import { buildDecoder, buildEncoder } from "./v4/container.js";
20
+ import { decodeBeast2For, encodeBeast2For } from "./index.js";
21
+ /** A recursion context that counts the registrations made in it. */
22
+ class CountingContext extends Map {
23
+ registrations = 0;
24
+ set(key, value) {
25
+ this.registrations++;
26
+ return super.set(key, value);
27
+ }
28
+ }
29
+ const Fn = FunctionType([IntegerType], IntegerType);
30
+ /** A struct of `n` function fields. */
31
+ function functionFields(n) {
32
+ return StructType(Object.fromEntries(Array.from({ length: n }, (_, i) => [`f${i}`, Fn])));
33
+ }
34
+ /** The registrations one build of `type` makes. */
35
+ function registrations(build, type) {
36
+ const typeCtx = new CountingContext();
37
+ build(toEastTypeValue(type), typeCtx);
38
+ return typeCtx.registrations;
39
+ }
40
+ const BUILDS = {
41
+ "v5 encoder": buildV5Encoder,
42
+ "v5 decoder": buildV5Decoder,
43
+ "v4 encoder": buildEncoder,
44
+ "v4 decoder": buildDecoder,
45
+ };
46
+ describe("a codec build builds the IR's codec once", () => {
47
+ for (const [name, build] of Object.entries(BUILDS)) {
48
+ test(`a ${name} registers the IR's recursive types once, however many function fields it reaches`, () => {
49
+ const one = registrations(build, functionFields(1));
50
+ assert.ok(one > 0, "building a function type's codec registers the IR's recursive types");
51
+ assert.equal(registrations(build, functionFields(40)), one);
52
+ });
53
+ }
54
+ test("every function field keeps its own function and captures through both containers", () => {
55
+ const Pair = StructType({ inc: Fn, dbl: Fn });
56
+ const make = East.compile(East.function([], Pair, ($) => {
57
+ const base = $.let(100n);
58
+ const inc = $.const(East.function([IntegerType], IntegerType, (_$, x) => x.add(base)));
59
+ const dbl = $.const(East.function([IntegerType], IntegerType, (_$, x) => x.multiply(2n).add(base)));
60
+ return $.const({ inc, dbl }, Pair);
61
+ }), []);
62
+ for (const version of [4, 5]) {
63
+ const decoded = decodeBeast2For(Pair)(encodeBeast2For(Pair, { version })(make()));
64
+ assert.equal(decoded.inc(1n), 101n, `v${version}: inc`);
65
+ assert.equal(decoded.dbl(1n), 102n, `v${version}: dbl`);
66
+ }
67
+ });
68
+ });
69
+ //# sourceMappingURL=codec-build.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec-build.spec.js","sourceRoot":"","sources":["../../../../src/serialization/beast2/codec-build.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=decoded-function.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decoded-function.spec.d.ts","sourceRoot":"","sources":["../../../../src/serialization/beast2/decoded-function.spec.ts"],"names":[],"mappings":"AAAA;;;GAGG"}