@elaraai/east 1.0.98 → 1.0.99

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 (112) hide show
  1. package/README.md +0 -1
  2. package/dist/src/builtins.d.ts +1 -1
  3. package/dist/src/builtins.d.ts.map +1 -1
  4. package/dist/src/builtins.js +14 -0
  5. package/dist/src/builtins.js.map +1 -1
  6. package/dist/src/codegen/spellings.d.ts.map +1 -1
  7. package/dist/src/codegen/spellings.js +2 -0
  8. package/dist/src/codegen/spellings.js.map +1 -1
  9. package/dist/src/comparison.d.ts +6 -5
  10. package/dist/src/comparison.d.ts.map +1 -1
  11. package/dist/src/comparison.js +6 -5
  12. package/dist/src/comparison.js.map +1 -1
  13. package/dist/src/compile/builtins/array.d.ts +4 -0
  14. package/dist/src/compile/builtins/array.d.ts.map +1 -1
  15. package/dist/src/compile/builtins/array.js +15 -1
  16. package/dist/src/compile/builtins/array.js.map +1 -1
  17. package/dist/src/compile/builtins/dict.d.ts +4 -0
  18. package/dist/src/compile/builtins/dict.d.ts.map +1 -1
  19. package/dist/src/compile/builtins/dict.js +14 -1
  20. package/dist/src/compile/builtins/dict.js.map +1 -1
  21. package/dist/src/compile/builtins/tree.d.ts +13 -0
  22. package/dist/src/compile/builtins/tree.d.ts.map +1 -1
  23. package/dist/src/compile/builtins/tree.js +27 -1
  24. package/dist/src/compile/builtins/tree.js.map +1 -1
  25. package/dist/src/compile/builtins/vector.d.ts +2 -2
  26. package/dist/src/expr/array.d.ts +39 -0
  27. package/dist/src/expr/array.d.ts.map +1 -1
  28. package/dist/src/expr/array.js +47 -0
  29. package/dist/src/expr/array.js.map +1 -1
  30. package/dist/src/expr/dict.d.ts +44 -1
  31. package/dist/src/expr/dict.d.ts.map +1 -1
  32. package/dist/src/expr/dict.js +54 -2
  33. package/dist/src/expr/dict.js.map +1 -1
  34. package/dist/src/expr/index.d.ts +130 -0
  35. package/dist/src/expr/index.d.ts.map +1 -1
  36. package/dist/src/expr/index.js +133 -0
  37. package/dist/src/expr/index.js.map +1 -1
  38. package/dist/src/expr/named.d.ts +100 -0
  39. package/dist/src/expr/named.d.ts.map +1 -0
  40. package/dist/src/expr/named.js +182 -0
  41. package/dist/src/expr/named.js.map +1 -0
  42. package/dist/src/functions.d.ts +21 -0
  43. package/dist/src/functions.d.ts.map +1 -1
  44. package/dist/src/functions.js +22 -41
  45. package/dist/src/functions.js.map +1 -1
  46. package/dist/src/ir_locations.d.ts +24 -0
  47. package/dist/src/ir_locations.d.ts.map +1 -0
  48. package/dist/src/ir_locations.js +58 -0
  49. package/dist/src/ir_locations.js.map +1 -0
  50. package/dist/src/location.d.ts +10 -0
  51. package/dist/src/location.d.ts.map +1 -1
  52. package/dist/src/location.js +19 -1
  53. package/dist/src/location.js.map +1 -1
  54. package/dist/src/query/jq/catalog.js +1 -1
  55. package/dist/src/query/jq/catalog.js.map +1 -1
  56. package/dist/src/query/jq/translate-builtins.d.ts.map +1 -1
  57. package/dist/src/query/jq/translate-builtins.js +11 -2
  58. package/dist/src/query/jq/translate-builtins.js.map +1 -1
  59. package/dist/src/query/jq/translate.d.ts +12 -0
  60. package/dist/src/query/jq/translate.d.ts.map +1 -1
  61. package/dist/src/query/jq/translate.js +40 -0
  62. package/dist/src/query/jq/translate.js.map +1 -1
  63. package/dist/src/runner_exec.d.ts +4 -1
  64. package/dist/src/runner_exec.d.ts.map +1 -1
  65. package/dist/src/runner_exec.js +24 -12
  66. package/dist/src/runner_exec.js.map +1 -1
  67. package/dist/src/runner_merge.d.ts +18 -0
  68. package/dist/src/runner_merge.d.ts.map +1 -1
  69. package/dist/src/runner_merge.js +36 -2
  70. package/dist/src/runner_merge.js.map +1 -1
  71. package/dist/src/serialization/beast2/decoded-function.spec.js +7 -4
  72. package/dist/src/serialization/beast2/decoded-function.spec.js.map +1 -1
  73. package/dist/src/serialization/beast2/v4/container.d.ts.map +1 -1
  74. package/dist/src/serialization/beast2/v4/container.js +3 -4
  75. package/dist/src/serialization/beast2/v4/container.js.map +1 -1
  76. package/dist/src/serialization/beast2/v4/type-table.d.ts +42 -14
  77. package/dist/src/serialization/beast2/v4/type-table.d.ts.map +1 -1
  78. package/dist/src/serialization/beast2/v4/type-table.js +139 -53
  79. package/dist/src/serialization/beast2/v4/type-table.js.map +1 -1
  80. package/dist/src/serialization/beast2/v5/codec.d.ts +29 -2
  81. package/dist/src/serialization/beast2/v5/codec.d.ts.map +1 -1
  82. package/dist/src/serialization/beast2/v5/codec.js +153 -27
  83. package/dist/src/serialization/beast2/v5/codec.js.map +1 -1
  84. package/dist/src/serialization/beast2/v5/manifest.d.ts +3 -3
  85. package/dist/src/serialization/beast2/v5/manifest.js +3 -3
  86. package/dist/src/serialization/beast2/v5/runs.d.ts.map +1 -1
  87. package/dist/src/serialization/beast2/v5/runs.js +16 -4
  88. package/dist/src/serialization/beast2/v5/runs.js.map +1 -1
  89. package/dist/src/serialization/beast2/v5/source-maps.spec.d.ts +6 -0
  90. package/dist/src/serialization/beast2/v5/source-maps.spec.d.ts.map +1 -0
  91. package/dist/src/serialization/beast2/v5/source-maps.spec.js +81 -0
  92. package/dist/src/serialization/beast2/v5/source-maps.spec.js.map +1 -0
  93. package/dist/src/serialization/beast2/v5/type-section.js +1 -1
  94. package/dist/src/serialization/beast2/v5/type-section.js.map +1 -1
  95. package/dist/src/type_of_type.d.ts +12 -33
  96. package/dist/src/type_of_type.d.ts.map +1 -1
  97. package/dist/src/type_of_type.js +46 -174
  98. package/dist/src/type_of_type.js.map +1 -1
  99. package/dist/src/type_of_type.recursive_id.spec.d.ts +6 -0
  100. package/dist/src/type_of_type.recursive_id.spec.d.ts.map +1 -0
  101. package/dist/src/type_of_type.recursive_id.spec.js +86 -0
  102. package/dist/src/type_of_type.recursive_id.spec.js.map +1 -0
  103. package/dist/src/type_of_type.to_etv.spec.js +9 -9
  104. package/dist/src/type_of_type.to_etv.spec.js.map +1 -1
  105. package/dist/src/type_value_equal.d.ts +31 -0
  106. package/dist/src/type_value_equal.d.ts.map +1 -0
  107. package/dist/src/type_value_equal.js +170 -0
  108. package/dist/src/type_value_equal.js.map +1 -0
  109. package/dist/src/types.d.ts.map +1 -1
  110. package/dist/src/types.js +3 -1
  111. package/dist/src/types.js.map +1 -1
  112. package/package.json +1 -1
@@ -0,0 +1,100 @@
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
+ import { type EastType } from "../types.js";
6
+ import { Expr } from "./expr.js";
7
+ import type { ExprType } from "./types.js";
8
+ import type { FunctionExpr } from "./function.js";
9
+ /**
10
+ * Reads a struct's field by a name held as a value — what `value.name` reads
11
+ * where the name is written. A recursive value is read through to its node.
12
+ *
13
+ * @typeParam T - The field's type, where the caller holds it
14
+ * @param value - A struct, or a recursive value whose node is one
15
+ * @param name - The field
16
+ * @param type - The field's type, where the caller holds it: checked, and the expression typed by it
17
+ * @returns The field's expression
18
+ * @throws {Error} When the value is not a struct, has no field of the name, or the field is not of the type given
19
+ */
20
+ export declare function field<T extends EastType = EastType>(value: Expr, name: string, type?: T): ExprType<T>;
21
+ /**
22
+ * A struct's fields, by names held as values: each field's expression, in the
23
+ * order given, or in the struct's own order — to spread into a call, or into
24
+ * {@link struct}.
25
+ *
26
+ * @param value - A struct, or a recursive value whose node is one: give a variable, for it is read once a field
27
+ * @param names - The fields, in the order wanted; every field, in the struct's order, where none are given
28
+ * @returns The fields' expressions
29
+ * @throws {Error} When the value is not a struct, or has no field of a name given
30
+ */
31
+ export declare function fields(value: Expr, names?: readonly string[]): ExprType<EastType>[];
32
+ /**
33
+ * Builds a struct of a type held as a value from its fields, given by name or
34
+ * in the type's order — what a struct literal builds where its names are
35
+ * written. A recursive type's node is built, and wrapped in it.
36
+ *
37
+ * @typeParam T - The struct's type
38
+ * @param type - A struct type, or a recursive type whose node is one
39
+ * @param values - Each field's value or expression: by name, every field once; or in the type's order, one a field
40
+ * @returns The struct's expression
41
+ * @throws {Error} When the type is not a struct, a name is not one of its fields, a field has no value, or a value is
42
+ * not of its field's type
43
+ */
44
+ export declare function struct<T extends EastType>(type: T, values: Readonly<Record<string, unknown>> | readonly unknown[]): ExprType<T>;
45
+ /**
46
+ * A struct with one field replaced, by a name held as value: the same type,
47
+ * every other field as it is. A recursive value's node is rebuilt, and wrapped
48
+ * again.
49
+ *
50
+ * @typeParam V - The struct's expression, whose type the result keeps
51
+ * @param value - A struct, or a recursive value whose node is one: give a variable, for it is read once a field
52
+ * @param name - The field replaced
53
+ * @param replacement - Its new value or expression
54
+ * @returns The struct with the field replaced: an expression of the value's own type
55
+ * @throws {Error} When the value is not a struct, has no field of the name, or the replacement is not of its type
56
+ */
57
+ export declare function withField<V extends Expr>(value: V, name: string, replacement: unknown): V;
58
+ /**
59
+ * A variant of a type held as a value, holding a value in a case by a name
60
+ * held as a value — what `variant(name, value)` builds where the case is
61
+ * written. A recursive type's node is built, and wrapped in it.
62
+ *
63
+ * @typeParam T - The variant's type
64
+ * @param type - A variant type, or a recursive type whose node is one
65
+ * @param name - The case
66
+ * @param value - Its value or expression
67
+ * @returns The variant's expression
68
+ * @throws {Error} When the type is not a variant, has no case of the name, or the value is not of the case's type
69
+ */
70
+ export declare function inCase<T extends EastType>(type: T, name: string, value: unknown): ExprType<T>;
71
+ /**
72
+ * The patch functions of a type held as a value ({@link patchesFor}): each an
73
+ * East function of the type, bound and called as any other.
74
+ *
75
+ * @typeParam T - The type patched
76
+ */
77
+ export interface Patches<T extends EastType = EastType> {
78
+ /** The type's patches, `PatchType(T)`. */
79
+ readonly patchType: EastType;
80
+ /** `(before, after) → the patch between them` */
81
+ readonly diff: FunctionExpr<[T, T], EastType>;
82
+ /** `(value, patch) → the value patched`: an East runtime error when the patch was made against another value */
83
+ readonly apply: FunctionExpr<[T, EastType], T>;
84
+ /** `(first, second) → one patch doing both`: an East runtime error when the second does not follow the first */
85
+ readonly compose: FunctionExpr<[EastType, EastType], EastType>;
86
+ /** `(patch) → the patch undoing it` */
87
+ readonly invert: FunctionExpr<[EastType], EastType>;
88
+ }
89
+ /**
90
+ * The patch functions of a type held as a value: diff, apply, compose and
91
+ * invert, each an East function of the type — what `East.diff`,
92
+ * `East.applyPatch`, `East.composePatch` and `East.invertPatch` build where
93
+ * the type is written, and the program side of `diffFor`.
94
+ *
95
+ * @typeParam T - The type patched
96
+ * @param type - The type
97
+ * @returns Its patch type and its patch functions
98
+ */
99
+ export declare function patchesFor<T extends EastType>(type: T): Patches<T>;
100
+ //# sourceMappingURL=named.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"named.d.ts","sourceRoot":"","sources":["../../../src/expr/named.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAsBH,OAAO,EAAE,KAAK,QAAQ,EAAgC,MAAM,aAAa,CAAC;AAK1E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAsBlD;;;;;;;;;;GAUG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CASrG;AAED;;;;;;;;;GASG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAGnF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,OAAO,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAgB/H;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAG,CAAC,CAKzF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAM7F;AAED;;;;;GAKG;AACH,MAAM,WAAW,OAAO,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ;IACpD,0CAA0C;IAC1C,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC7B,iDAAiD;IACjD,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC9C,gHAAgH;IAChH,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/C,gHAAgH;IAChH,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC/D,uCAAuC;IACvC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;CACrD;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAgBlE"}
@@ -0,0 +1,182 @@
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
+ * East built from names and types held as values.
7
+ *
8
+ * East names a struct's fields, and a variant's cases, where its code is
9
+ * written: `row.jobs`, `variant("some", x)`. Code that builds East programs
10
+ * over types it is handed — a library generating a program for whatever record
11
+ * its caller declares — holds those names, and the types, as values. These
12
+ * build the same program pieces from them: a field read, a struct, a variant,
13
+ * and the patch functions of a type. Each checks its names against the type as
14
+ * the program is built, so a name the type does not have fails there, naming
15
+ * the name and the type. In TypeScript each gives an expression of the type it
16
+ * is handed, or of `EastType` where the type is known only as a value.
17
+ *
18
+ * A value read more than once — by {@link fields} or {@link withField} — is
19
+ * read from the expression given each time: give a variable (a parameter, or a
20
+ * `$.let`), not a computation.
21
+ *
22
+ * @packageDocumentation
23
+ */
24
+ import { get_location_id } from "../location.js";
25
+ import { isTypeEqual } from "../types.js";
26
+ import { printTypeValueSummary } from "../type_diff.js";
27
+ import { PatchType } from "../patch/index.js";
28
+ import { toEastTypeValue } from "../type_of_type.js";
29
+ import { variant } from "../containers/variant.js";
30
+ import { Expr } from "./expr.js";
31
+ import { builtin, from, fromAst, func, wrapRecursive } from "./block.js";
32
+ /** A type in a refusal's words: its kind, and a struct's fields or a variant's cases by name. */
33
+ function words(type) {
34
+ return printTypeValueSummary(toEastTypeValue(type), 1, 64);
35
+ }
36
+ /** A value read through a recursive wrapper: its node; any other value as it is. */
37
+ function opened(value) {
38
+ const type = Expr.type(value);
39
+ if (type.type !== "Recursive")
40
+ return value;
41
+ return fromAst({ ast_type: "UnwrapRecursive", type: type.node, loc_id: get_location_id(), value: Expr.ast(value) });
42
+ }
43
+ /** A struct type, or a recursive type's struct node; refused, naming what was asked of it, for any other type. */
44
+ function structOf(asked, type) {
45
+ const node = type.type === "Recursive" ? type.node : type;
46
+ if (node.type !== "Struct")
47
+ throw new Error(`${asked}: ${words(type)} is not a struct`);
48
+ return node;
49
+ }
50
+ /**
51
+ * Reads a struct's field by a name held as a value — what `value.name` reads
52
+ * where the name is written. A recursive value is read through to its node.
53
+ *
54
+ * @typeParam T - The field's type, where the caller holds it
55
+ * @param value - A struct, or a recursive value whose node is one
56
+ * @param name - The field
57
+ * @param type - The field's type, where the caller holds it: checked, and the expression typed by it
58
+ * @returns The field's expression
59
+ * @throws {Error} When the value is not a struct, has no field of the name, or the field is not of the type given
60
+ */
61
+ export function field(value, name, type) {
62
+ const struct = opened(value);
63
+ const node = structOf(`East.field '${name}'`, Expr.type(value));
64
+ const held = node.fields[name];
65
+ if (held === undefined)
66
+ throw new Error(`East.field: ${words(node)} has no field '${name}'`);
67
+ if (type !== undefined && !isTypeEqual(held, type)) {
68
+ throw new Error(`East.field: '${name}' of ${words(node)} is ${words(held)}, not ${words(type)}`);
69
+ }
70
+ return fromAst({ ast_type: "GetField", type: held, loc_id: get_location_id(), field: name, struct: Expr.ast(struct) });
71
+ }
72
+ /**
73
+ * A struct's fields, by names held as values: each field's expression, in the
74
+ * order given, or in the struct's own order — to spread into a call, or into
75
+ * {@link struct}.
76
+ *
77
+ * @param value - A struct, or a recursive value whose node is one: give a variable, for it is read once a field
78
+ * @param names - The fields, in the order wanted; every field, in the struct's order, where none are given
79
+ * @returns The fields' expressions
80
+ * @throws {Error} When the value is not a struct, or has no field of a name given
81
+ */
82
+ export function fields(value, names) {
83
+ const node = structOf("East.fields", Expr.type(value));
84
+ return (names ?? Object.keys(node.fields)).map((name) => field(value, name));
85
+ }
86
+ /**
87
+ * Builds a struct of a type held as a value from its fields, given by name or
88
+ * in the type's order — what a struct literal builds where its names are
89
+ * written. A recursive type's node is built, and wrapped in it.
90
+ *
91
+ * @typeParam T - The struct's type
92
+ * @param type - A struct type, or a recursive type whose node is one
93
+ * @param values - Each field's value or expression: by name, every field once; or in the type's order, one a field
94
+ * @returns The struct's expression
95
+ * @throws {Error} When the type is not a struct, a name is not one of its fields, a field has no value, or a value is
96
+ * not of its field's type
97
+ */
98
+ export function struct(type, values) {
99
+ const node = structOf("East.struct", type);
100
+ const names = Object.keys(node.fields);
101
+ let byName;
102
+ if (Array.isArray(values)) {
103
+ if (values.length !== names.length)
104
+ throw new Error(`East.struct: ${words(node)} has ${names.length} fields, given ${values.length}`);
105
+ byName = Object.fromEntries(names.map((name, at) => [name, values[at]]));
106
+ }
107
+ else {
108
+ byName = values;
109
+ const stranger = Object.keys(byName).find((name) => !names.includes(name));
110
+ if (stranger !== undefined)
111
+ throw new Error(`East.struct: ${words(node)} has no field '${stranger}'`);
112
+ const missing = names.find((name) => !(name in byName));
113
+ if (missing !== undefined)
114
+ throw new Error(`East.struct: no value for the field '${missing}' of ${words(node)}`);
115
+ }
116
+ const built = from(byName, node);
117
+ return (type.type === "Recursive" ? wrapRecursive(built, type) : built);
118
+ }
119
+ /**
120
+ * A struct with one field replaced, by a name held as value: the same type,
121
+ * every other field as it is. A recursive value's node is rebuilt, and wrapped
122
+ * again.
123
+ *
124
+ * @typeParam V - The struct's expression, whose type the result keeps
125
+ * @param value - A struct, or a recursive value whose node is one: give a variable, for it is read once a field
126
+ * @param name - The field replaced
127
+ * @param replacement - Its new value or expression
128
+ * @returns The struct with the field replaced: an expression of the value's own type
129
+ * @throws {Error} When the value is not a struct, has no field of the name, or the replacement is not of its type
130
+ */
131
+ export function withField(value, name, replacement) {
132
+ const type = Expr.type(value);
133
+ const node = structOf("East.withField", type);
134
+ if (!(name in node.fields))
135
+ throw new Error(`East.withField: ${words(node)} has no field '${name}'`);
136
+ return struct(type, Object.fromEntries(Object.keys(node.fields).map((held) => [held, held === name ? replacement : field(value, held)])));
137
+ }
138
+ /**
139
+ * A variant of a type held as a value, holding a value in a case by a name
140
+ * held as a value — what `variant(name, value)` builds where the case is
141
+ * written. A recursive type's node is built, and wrapped in it.
142
+ *
143
+ * @typeParam T - The variant's type
144
+ * @param type - A variant type, or a recursive type whose node is one
145
+ * @param name - The case
146
+ * @param value - Its value or expression
147
+ * @returns The variant's expression
148
+ * @throws {Error} When the type is not a variant, has no case of the name, or the value is not of the case's type
149
+ */
150
+ export function inCase(type, name, value) {
151
+ const node = type.type === "Recursive" ? type.node : type;
152
+ if (node.type !== "Variant")
153
+ throw new Error(`East.inCase: ${words(type)} is not a variant`);
154
+ if (!(name in node.cases))
155
+ throw new Error(`East.inCase: ${words(node)} has no case '${name}'`);
156
+ const built = from(variant(name, value), node);
157
+ return (type.type === "Recursive" ? wrapRecursive(built, type) : built);
158
+ }
159
+ /**
160
+ * The patch functions of a type held as a value: diff, apply, compose and
161
+ * invert, each an East function of the type — what `East.diff`,
162
+ * `East.applyPatch`, `East.composePatch` and `East.invertPatch` build where
163
+ * the type is written, and the program side of `diffFor`.
164
+ *
165
+ * @typeParam T - The type patched
166
+ * @param type - The type
167
+ * @returns Its patch type and its patch functions
168
+ */
169
+ export function patchesFor(type) {
170
+ // From the type's runtime form: a type known only as a value has a patch TypeScript cannot compute.
171
+ const patchType = PatchType(toEastTypeValue(type));
172
+ // Built over the type as an East type: the functions' own signatures are the ones declared.
173
+ const valueType = type;
174
+ return {
175
+ patchType,
176
+ diff: func([valueType, valueType], patchType, (_$, before, after) => builtin("Diff", [valueType, patchType], [before, after], patchType)),
177
+ apply: func([valueType, patchType], valueType, (_$, value, patch) => builtin("ApplyPatch", [valueType, patchType], [value, patch], valueType)),
178
+ compose: func([patchType, patchType], patchType, (_$, first, second) => builtin("ComposePatch", [valueType, patchType], [first, second], patchType)),
179
+ invert: func([patchType], patchType, (_$, patch) => builtin("InvertPatch", [valueType, patchType], [patch], patchType)),
180
+ };
181
+ }
182
+ //# sourceMappingURL=named.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"named.js","sourceRoot":"","sources":["../../../src/expr/named.ts"],"names":[],"mappings":"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"}
@@ -3998,9 +3998,30 @@ export declare const FunctionManifestType: StructType<{
3998
3998
  readonly package: StringType;
3999
3999
  readonly version: StringType;
4000
4000
  }>;
4001
+ /**
4002
+ * One manifest an `export-functions` process writes from a batch (`--batch
4003
+ * <file>`): the functions it exports (`only`, every one when empty), the
4004
+ * platform packages providing their platform calls (`packages`, as `-p`
4005
+ * names them) and the file it is written to (`output`, relative to the
4006
+ * batch's directory). The module is imported once for the whole batch, and
4007
+ * each entry's manifest is byte for byte what `-o <output> -p … --only …`
4008
+ * writes alone. Fields are declared alphabetically in both languages.
4009
+ */
4010
+ export declare const FunctionExportBatchEntryType: StructType<{
4011
+ readonly only: ArrayType<StringType>;
4012
+ readonly output: StringType;
4013
+ readonly packages: ArrayType<StringType>;
4014
+ }>;
4015
+ /** The batch `east-py export-functions --batch` / `east-node export-functions --batch` read: one manifest per entry, written in order. */
4016
+ export declare const FunctionExportBatchType: ArrayType<StructType<{
4017
+ readonly only: ArrayType<StringType>;
4018
+ readonly output: StringType;
4019
+ readonly packages: ArrayType<StringType>;
4020
+ }>>;
4001
4021
  export type PlatformDependency = ValueTypeOf<typeof PlatformDependencyType>;
4002
4022
  export type FunctionExport = ValueTypeOf<typeof FunctionExportType>;
4003
4023
  export type FunctionManifest = ValueTypeOf<typeof FunctionManifestType>;
4024
+ export type FunctionExportBatchEntry = ValueTypeOf<typeof FunctionExportBatchEntryType>;
4004
4025
  /** An import `linkImports` resolved: where it came from and what it needs. */
4005
4026
  export interface LinkedImport {
4006
4027
  /** The exporting package (the manifest's `package`). */
@@ -1 +1 @@
1
- {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../src/functions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,KAAK,iBAAiB,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9K,OAAO,EAAmD,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACxG,OAAO,EAAwB,KAAK,EAAE,EAA2E,MAAM,SAAS,CAAC;AAMjI,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAmB,SAAS,EAAiB,MAAM,eAAe,CAAC;AAE1E,2EAA2E;AAC3E,eAAO,MAAM,eAAe,wBAAwB,CAAC;AAErD;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQjC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM7B,CAAC;AAEH,uGAAuG;AACvG,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
1
+ {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../src/functions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,KAAK,iBAAiB,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9K,OAAO,EAAmD,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACxG,OAAO,EAAwB,KAAK,EAAE,EAA2E,MAAM,SAAS,CAAC;AAOjI,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAmB,SAAS,EAAiB,MAAM,eAAe,CAAC;AAE1E,2EAA2E;AAC3E,eAAO,MAAM,eAAe,wBAAwB,CAAC;AAErD;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQjC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM7B,CAAC;AAEH,uGAAuG;AACvG,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
@@ -27,7 +27,8 @@ import { ArrayType, BooleanType, NullType, OptionType, StringType, StructType }
27
27
  import { EastTypeType, isTypeValueEqual, toEastTypeValue } from "./type_of_type.js";
28
28
  import { IRType, LocationType } from "./ir.js";
29
29
  import { walkIR, literalValueOf } from "./walker.js";
30
- import { variant, some, none, isVariant } from "./containers/variant.js";
30
+ import { variant, some, none } from "./containers/variant.js";
31
+ import { mapLocIds } from "./ir_locations.js";
31
32
  import { printTypeValue } from "./compile.js";
32
33
  import { encodeBeast2For, decodeBeast2For, readBeast2Type } from "./serialization/beast2/index.js";
33
34
  import { Expr } from "./expr/expr.js";
@@ -70,6 +71,22 @@ export const FunctionManifestType = StructType({
70
71
  package: StringType,
71
72
  version: StringType,
72
73
  });
74
+ /**
75
+ * One manifest an `export-functions` process writes from a batch (`--batch
76
+ * <file>`): the functions it exports (`only`, every one when empty), the
77
+ * platform packages providing their platform calls (`packages`, as `-p`
78
+ * names them) and the file it is written to (`output`, relative to the
79
+ * batch's directory). The module is imported once for the whole batch, and
80
+ * each entry's manifest is byte for byte what `-o <output> -p … --only …`
81
+ * writes alone. Fields are declared alphabetically in both languages.
82
+ */
83
+ export const FunctionExportBatchEntryType = StructType({
84
+ only: ArrayType(StringType),
85
+ output: StringType,
86
+ packages: ArrayType(StringType),
87
+ });
88
+ /** The batch `east-py export-functions --batch` / `east-node export-functions --batch` read: one manifest per entry, written in order. */
89
+ export const FunctionExportBatchType = ArrayType(FunctionExportBatchEntryType);
73
90
  // ── the IR behind a function ────────────────────────────────────────────────
74
91
  /**
75
92
  * The IR value behind an `East.function` result, an `EastIR` bundle, or an
@@ -205,10 +222,8 @@ export function exportFunctions(pkg, version, functions, options = {}) {
205
222
  return { functions: exports, package: pkg, version };
206
223
  }
207
224
  /**
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.
225
+ * The IR with every loc_id naming its stack in `from` re-interned into `to`,
226
+ * in the walk's order ({@link mapLocIds}); an id `from` cannot place becomes 0.
212
227
  *
213
228
  * @param ir - The IR whose loc_ids index `from`
214
229
  * @param from - The stacks the IR's loc_ids index, entry 0 the empty one
@@ -216,44 +231,10 @@ export function exportFunctions(pkg, version, functions, options = {}) {
216
231
  * @returns The IR, its loc_ids indexing `to`
217
232
  */
218
233
  function remapLocations(ir, from, to) {
219
- const done = new Map();
220
- const loc = (id) => {
234
+ return mapLocIds(ir, (id) => {
221
235
  const stack = id > 0n ? from[Number(id)] : undefined;
222
236
  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);
237
+ });
257
238
  }
258
239
  // The codec is built on first use, not at import: building a beast2 codec
259
240
  // for a type that holds `IRType` assigns recursive type ids, and doing that
@@ -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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"}
@@ -0,0 +1,24 @@
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
+ import type { IR } from "./ir.js";
6
+ /**
7
+ * The IR with every `loc_id` — each node's, each loop label's, each variable's —
8
+ * replaced by what `f` gives for it, in one walk of the IR.
9
+ *
10
+ * @remarks
11
+ * A loc_id names a stack in a source map, so an IR moved to another map has
12
+ * each one replaced by where its stack stands there: as a link embeds an
13
+ * imported function in its importer's map, and as an encode writes a closure
14
+ * of another program into a blob's. Each node is rebuilt once, so a node the IR
15
+ * shares — a parameter its body reads — stays shared. Types hold no locations,
16
+ * and a Value node's value is data: both are kept as they stand.
17
+ *
18
+ * @param ir - The IR
19
+ * @param f - The loc_id an id becomes; asked in the walk's order, which is the
20
+ * order the IR's nodes and their fields stand in
21
+ * @returns The IR with its loc_ids replaced
22
+ */
23
+ export declare function mapLocIds(ir: IR, f: (id: bigint) => bigint): IR;
24
+ //# sourceMappingURL=ir_locations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ir_locations.d.ts","sourceRoot":"","sources":["../../src/ir_locations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAElC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,GAAG,EAAE,CA0B/D"}
@@ -0,0 +1,58 @@
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
+ import { isVariant, variant } from "./containers/variant.js";
6
+ /**
7
+ * The IR with every `loc_id` — each node's, each loop label's, each variable's —
8
+ * replaced by what `f` gives for it, in one walk of the IR.
9
+ *
10
+ * @remarks
11
+ * A loc_id names a stack in a source map, so an IR moved to another map has
12
+ * each one replaced by where its stack stands there: as a link embeds an
13
+ * imported function in its importer's map, and as an encode writes a closure
14
+ * of another program into a blob's. Each node is rebuilt once, so a node the IR
15
+ * shares — a parameter its body reads — stays shared. Types hold no locations,
16
+ * and a Value node's value is data: both are kept as they stand.
17
+ *
18
+ * @param ir - The IR
19
+ * @param f - The loc_id an id becomes; asked in the walk's order, which is the
20
+ * order the IR's nodes and their fields stand in
21
+ * @returns The IR with its loc_ids replaced
22
+ */
23
+ export function mapLocIds(ir, f) {
24
+ const done = new Map();
25
+ // A struct inside a node — a label, a case, a field, an entry — holds
26
+ // child nodes and, for a label, a loc_id of its own.
27
+ const child = (item) => {
28
+ if (Array.isArray(item))
29
+ return item.map(child);
30
+ if (isVariant(item))
31
+ return node(item);
32
+ if (item === null || typeof item !== "object")
33
+ return item;
34
+ const out = {};
35
+ for (const [key, sub] of Object.entries(item))
36
+ out[key] = key === "loc_id" ? f(sub) : child(sub);
37
+ return out;
38
+ };
39
+ const node = (n) => {
40
+ const hit = done.get(n);
41
+ if (hit !== undefined)
42
+ return hit;
43
+ const out = {};
44
+ for (const [key, item] of Object.entries(n.value)) {
45
+ if (key === "loc_id")
46
+ out[key] = f(item);
47
+ else if (key === "type" || key === "type_parameters" || (n.type === "Value" && key === "value"))
48
+ out[key] = item;
49
+ else
50
+ out[key] = child(item);
51
+ }
52
+ const result = variant(n.type, out);
53
+ done.set(n, result);
54
+ return result;
55
+ };
56
+ return node(ir);
57
+ }
58
+ //# sourceMappingURL=ir_locations.js.map