@elaraai/east 1.0.59 → 1.0.61

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.
@@ -22,22 +22,37 @@ import type { ArrayExpr } from "./array.js";
22
22
  *
23
23
  * @example
24
24
  * ```ts
25
- * // Creating and manipulating dictionaries
26
- * const updateCounts = East.function([DictType(StringType, IntegerType), StringType], DictType(StringType, IntegerType), ($, counts, word) => {
25
+ * // `merge` combines a value into ONE key, IN PLACE, and returns null —
26
+ * // the sibling of ArrayExpr.merge (one index) and RefExpr.merge (the cell).
27
+ * const updateCounts = East.function([DictType(StringType, IntegerType), StringType], NullType, ($, counts, word) => {
27
28
  * // Increment count for a word, initializing to 0 if missing
28
- * $.return(counts.merge(word, 1n, ($, existing, increment) => existing.add(increment), () => 0n));
29
+ * $(counts.merge(word, 1n, ($, existing, increment) => existing.add(increment), () => 0n));
30
+ * $.return(null);
29
31
  * });
30
32
  * const compiled = East.compile(updateCounts.toIR(), []);
31
33
  * const counts = new Map([["hello", 5n], ["world", 3n]]);
32
- * compiled(counts, "hello"); // Map([["hello", 6n], ["world", 3n]])
33
- * compiled(counts, "new"); // Map([["hello", 6n], ["new", 1n], ["world", 3n]])
34
+ * compiled(counts, "hello"); // counts is now Map([["hello", 6n], ["world", 3n]])
35
+ * compiled(counts, "new"); // counts is now Map([["hello", 6n], ["new", 1n], ["world", 3n]])
36
+ * ```
37
+ *
38
+ * @example
39
+ * ```ts
40
+ * // `union` is the whole-dictionary operation, and it is PURE — contrast the
41
+ * // single-key `merge` above. (east-py spells this `EastDict.union` too; its
42
+ * // `merge` is the deprecated alias for THIS operation, not the one above.)
43
+ * const combine = East.function([DictType(StringType, IntegerType), DictType(StringType, IntegerType)], DictType(StringType, IntegerType), ($, a, b) => {
44
+ * $.return(a.union(b, ($, existing, incoming) => existing.add(incoming)));
45
+ * });
46
+ * const compiled = East.compile(combine.toIR(), []);
47
+ * compiled(new Map([["a", 1n], ["b", 2n]]), new Map([["b", 3n], ["c", 4n]]));
48
+ * // Map([["a", 1n], ["b", 5n], ["c", 4n]]) — both inputs unchanged
34
49
  * ```
35
50
  *
36
51
  * @example
37
52
  * ```ts
38
53
  * // Filtering and mapping
39
54
  * const filterHighScores = East.function([DictType(StringType, IntegerType)], DictType(StringType, IntegerType), ($, scores) => {
40
- * $.return(scores.filter(($, score, name) => score.greaterOrEqual(100n)));
55
+ * $.return(scores.filter(($, score, name) => score.greaterEqual(100n)));
41
56
  * });
42
57
  * const compiled = East.compile(filterHighScores.toIR(), []);
43
58
  * const scores = new Map([["alice", 150n], ["bob", 75n], ["charlie", 200n]]);
@@ -237,6 +252,14 @@ export declare class DictExpr<K extends any, T extends any> extends Expr<DictTyp
237
252
  * This is useful for patterns where you want to update an entry based on its current value, e.g. incrementing a number,
238
253
  * appending to a string, updating fields in a struct, or pushing to an array.
239
254
  *
255
+ * Operates on ONE key and mutates the receiver, matching `ArrayExpr.merge`
256
+ * (one index) and `RefExpr.merge` (the cell) — `merge` means "combine a
257
+ * value into this slot" across the whole expression API. It is therefore
258
+ * **not** the whole-dictionary operation east-py's `EastDict.merge`
259
+ * historically named; that one is pure and is spelled {@link union} here
260
+ * (and `EastDict.union` there). Porting `merge` by name between the two
261
+ * runtimes was silently wrong in both directions — see issue #527.
262
+ *
240
263
  * @param key - The key to update
241
264
  * @param value - The value to merge with the existing value
242
265
  * @param updateFn - Function accepting (existing, new, key) and returning the merged value
@@ -245,6 +268,8 @@ export declare class DictExpr<K extends any, T extends any> extends Expr<DictTyp
245
268
  *
246
269
  * @throws East runtime error if key is not found and initialFn is not provided
247
270
  *
271
+ * @see {@link union} for the pure whole-dictionary union
272
+ * @see {@link mergeAll} to merge every entry of another dictionary
248
273
  * @see {@link insertOrUpdate} and {@link update} for simply replacing the value
249
274
  *
250
275
  * @example
@@ -439,6 +464,42 @@ export declare class DictExpr<K extends any, T extends any> extends Expr<DictTyp
439
464
  * ```
440
465
  */
441
466
  unionInPlace(dict2: SubtypeExprOrValue<DictType<K, T>>, mergeFn?: SubtypeExprOrValue<FunctionType<[T, T, K], T>>): NullExpr;
467
+ /**
468
+ * Unions another dictionary with this one, returning a NEW dictionary.
469
+ *
470
+ * The pure counterpart of {@link unionInPlace}: neither input is modified,
471
+ * exactly as {@link SetExpr.union} is the pure counterpart of
472
+ * `SetExpr.unionInPlace`. Both dictionaries must have the same key and
473
+ * value types; use {@link mergeAll} when the other dictionary's values have
474
+ * a different type.
475
+ *
476
+ * This is the operation east-py spells `EastDict.union` (and, until it is
477
+ * retired, `EastDict.merge`). Note that it is NOT what {@link merge} does
478
+ * here — `merge` updates a SINGLE key in place, matching `ArrayExpr.merge`
479
+ * and `RefExpr.merge`. See issue #527.
480
+ *
481
+ * @param dict2 - The dictionary to union with this one
482
+ * @param mergeFn - Optional function to combine values when a key is present in both; accepts (existing, new, key) and returns the merged value
483
+ * @returns A new DictExpr holding the entries of both dictionaries
484
+ *
485
+ * @throws East runtime error if a key is present in both and mergeFn is not provided
486
+ *
487
+ * @see {@link unionInPlace} for the in-place form
488
+ * @see {@link mergeAll} to merge a dictionary whose values have a different type
489
+ * @see {@link merge} to combine a value into one key
490
+ *
491
+ * @example
492
+ * ```ts
493
+ * const combine = East.function([DictType(StringType, IntegerType), DictType(StringType, IntegerType)], DictType(StringType, IntegerType), ($, dict1, dict2) => {
494
+ * $.return(dict1.union(dict2, ($, existing, newVal) => existing.add(newVal)));
495
+ * });
496
+ * const compiled = East.compile(combine.toIR(), []);
497
+ * const dict1 = new Map([["a", 1n], ["b", 2n]]);
498
+ * const dict2 = new Map([["b", 3n], ["c", 4n]]);
499
+ * compiled(dict1, dict2); // Map([["a", 1n], ["b", 5n], ["c", 4n]]) — dict1 is unchanged
500
+ * ```
501
+ */
502
+ union(dict2: SubtypeExprOrValue<DictType<K, T>>, mergeFn?: SubtypeExprOrValue<FunctionType<[T, T, K], T>>): DictExpr<K, T>;
442
503
  /**
443
504
  * Merges all values from another dictionary into this one using a merge function.
444
505
  *
@@ -599,7 +660,7 @@ export declare class DictExpr<K extends any, T extends any> extends Expr<DictTyp
599
660
  * @example
600
661
  * ```ts
601
662
  * const filterLargeValues = East.function([DictType(StringType, IntegerType)], DictType(StringType, IntegerType), ($, dict) => {
602
- * $.return(dict.filter(($, value, key) => value.greaterOrEqual(10n)));
663
+ * $.return(dict.filter(($, value, key) => value.greaterEqual(10n)));
603
664
  * });
604
665
  * const compiled = East.compile(filterLargeValues.toIR(), []);
605
666
  * const dict = new Map([["a", 5n], ["b", 15n], ["c", 20n], ["d", 8n]]);
@@ -721,7 +782,7 @@ export declare class DictExpr<K extends any, T extends any> extends Expr<DictTyp
721
782
  * ```ts
722
783
  * // Transform keys to uppercase, keep values
723
784
  * const uppercaseKeys = East.function([DictType(StringType, IntegerType)], DictType(StringType, IntegerType), ($, dict) => {
724
- * $.return(dict.toDict(($, value, key) => key.toUpper()));
785
+ * $.return(dict.toDict(($, value, key) => key.upperCase()));
725
786
  * });
726
787
  * const compiled = East.compile(uppercaseKeys.toIR(), []);
727
788
  * const dict = new Map([["a", 1n], ["b", 2n]]);
@@ -733,7 +794,7 @@ export declare class DictExpr<K extends any, T extends any> extends Expr<DictTyp
733
794
  * // Group by key length, sum values for duplicate lengths
734
795
  * const groupByLength = East.function([DictType(StringType, IntegerType)], DictType(IntegerType, IntegerType), ($, dict) => {
735
796
  * $.return(dict.toDict(
736
- * ($, value, key) => key.size(),
797
+ * ($, value, key) => key.length(),
737
798
  * ($, value, key) => value,
738
799
  * ($, existing, newVal, len) => existing.add(newVal)
739
800
  * ));
@@ -880,7 +941,12 @@ export declare class DictExpr<K extends any, T extends any> extends Expr<DictTyp
880
941
  * // Result: { 0n: [2n, 4n], 1n: [1n, 3n] }
881
942
  * ```
882
943
  */
883
- groupToArrays(keyFn: any, valueFn?: any): DictExpr<any, ArrayType<any>>;
944
+ groupToArrays<K2, T2>(keyFn: Expr<FunctionType<[T, K], K2>>, valueFn: Expr<FunctionType<[T, K], T2>>): DictExpr<K2, ArrayType<T2>>;
945
+ groupToArrays<K2, ValueFn extends (($: BlockBuilder<NeverType>, value: ExprType<T>, key: ExprType<K>) => any)>(keyFn: Expr<FunctionType<[T, K], K2>>, valueFn: ValueFn): DictExpr<K2, ArrayType<TypeOf<ReturnType<ValueFn>>>>;
946
+ groupToArrays<KeyFn extends (($: BlockBuilder<NeverType>, value: ExprType<T>, key: ExprType<K>) => any), T2>(keyFn: KeyFn, valueFn: Expr<FunctionType<[T, K], T2>>): DictExpr<TypeOf<ReturnType<KeyFn>>, ArrayType<T2>>;
947
+ groupToArrays<KeyFn extends (($: BlockBuilder<NeverType>, value: ExprType<T>, key: ExprType<K>) => any), ValueFn extends (($: BlockBuilder<NeverType>, value: ExprType<T>, key: ExprType<K>) => any)>(keyFn: KeyFn, valueFn: ValueFn): DictExpr<TypeOf<ReturnType<KeyFn>>, ArrayType<TypeOf<ReturnType<ValueFn>>>>;
948
+ groupToArrays<K2>(keyFn: Expr<FunctionType<[T, K], K2>>): DictExpr<K2, ArrayType<T>>;
949
+ groupToArrays<KeyFn extends (($: BlockBuilder<NeverType>, value: ExprType<T>, key: ExprType<K>) => any)>(keyFn: KeyFn): DictExpr<TypeOf<ReturnType<KeyFn>>, ArrayType<T>>;
884
950
  /**
885
951
  * Collect entries in each group into sets, ignoring duplicates.
886
952
  *
@@ -894,7 +960,12 @@ export declare class DictExpr<K extends any, T extends any> extends Expr<DictTyp
894
960
  * // Result: { 0n: Set([2n]), 1n: Set([1n]) }
895
961
  * ```
896
962
  */
897
- groupToSets(keyFn: any, valueFn?: any): DictExpr<any, SetType<any>>;
963
+ groupToSets<K2, T2>(keyFn: Expr<FunctionType<[T, K], K2>>, valueFn: Expr<FunctionType<[T, K], T2>>): DictExpr<K2, SetType<T2>>;
964
+ groupToSets<K2, ValueFn extends (($: BlockBuilder<NeverType>, value: ExprType<T>, key: ExprType<K>) => any)>(keyFn: Expr<FunctionType<[T, K], K2>>, valueFn: ValueFn): DictExpr<K2, SetType<TypeOf<ReturnType<ValueFn>>>>;
965
+ groupToSets<KeyFn extends (($: BlockBuilder<NeverType>, value: ExprType<T>, key: ExprType<K>) => any), T2>(keyFn: KeyFn, valueFn: Expr<FunctionType<[T, K], T2>>): DictExpr<TypeOf<ReturnType<KeyFn>>, SetType<T2>>;
966
+ groupToSets<KeyFn extends (($: BlockBuilder<NeverType>, value: ExprType<T>, key: ExprType<K>) => any), ValueFn extends (($: BlockBuilder<NeverType>, value: ExprType<T>, key: ExprType<K>) => any)>(keyFn: KeyFn, valueFn: ValueFn): DictExpr<TypeOf<ReturnType<KeyFn>>, SetType<TypeOf<ReturnType<ValueFn>>>>;
967
+ groupToSets<K2>(keyFn: Expr<FunctionType<[T, K], K2>>): DictExpr<K2, SetType<T>>;
968
+ groupToSets<KeyFn extends (($: BlockBuilder<NeverType>, value: ExprType<T>, key: ExprType<K>) => any)>(keyFn: KeyFn): DictExpr<TypeOf<ReturnType<KeyFn>>, SetType<T>>;
898
969
  /**
899
970
  * Group entries into nested dictionaries.
900
971
  *
@@ -923,7 +994,18 @@ export declare class DictExpr<K extends any, T extends any> extends Expr<DictTyp
923
994
  * // Sums quantities for same customer+product
924
995
  * ```
925
996
  */
926
- groupToDicts(keyFn: any, keyFn2: any, valueFn?: any, combineFn?: any): DictExpr<any, DictType<any, any>>;
997
+ groupToDicts<K1, K2, T2>(keyFn: Expr<FunctionType<[T, K], K1>>, keyFn2: Expr<FunctionType<[T, K], K2>>, valueFn: Expr<FunctionType<[T, K], T2>>, combineFn?: SubtypeExprOrValue<FunctionType<[T2, T2], T2>>): DictExpr<K1, DictType<K2, T2>>;
998
+ groupToDicts<K1, K2, ValueFn extends (($: BlockBuilder<NeverType>, value: ExprType<T>, key: ExprType<K>) => any)>(keyFn: Expr<FunctionType<[T, K], K1>>, keyFn2: Expr<FunctionType<[T, K], K2>>, valueFn: ValueFn, combineFn?: SubtypeExprOrValue<FunctionType<[TypeOf<ReturnType<NoInfer<ValueFn>>>, TypeOf<ReturnType<NoInfer<ValueFn>>>], TypeOf<ReturnType<NoInfer<ValueFn>>>>>): DictExpr<K1, DictType<K2, TypeOf<ReturnType<ValueFn>>>>;
999
+ groupToDicts<K1, KeyFn2 extends (($: BlockBuilder<NeverType>, value: ExprType<T>, key: ExprType<K>) => any), T2>(keyFn: Expr<FunctionType<[T, K], K1>>, keyFn2: KeyFn2, valueFn: Expr<FunctionType<[T, K], T2>>, combineFn?: SubtypeExprOrValue<FunctionType<[T2, T2], T2>>): DictExpr<K1, DictType<TypeOf<ReturnType<KeyFn2>>, T2>>;
1000
+ groupToDicts<K1, KeyFn2 extends (($: BlockBuilder<NeverType>, value: ExprType<T>, key: ExprType<K>) => any), ValueFn extends (($: BlockBuilder<NeverType>, value: ExprType<T>, key: ExprType<K>) => any)>(keyFn: Expr<FunctionType<[T, K], K1>>, keyFn2: KeyFn2, valueFn: ValueFn, combineFn?: SubtypeExprOrValue<FunctionType<[TypeOf<ReturnType<NoInfer<ValueFn>>>, TypeOf<ReturnType<NoInfer<ValueFn>>>], TypeOf<ReturnType<NoInfer<ValueFn>>>>>): DictExpr<K1, DictType<TypeOf<ReturnType<KeyFn2>>, TypeOf<ReturnType<ValueFn>>>>;
1001
+ groupToDicts<KeyFn extends (($: BlockBuilder<NeverType>, value: ExprType<T>, key: ExprType<K>) => any), K2, T2>(keyFn: KeyFn, keyFn2: Expr<FunctionType<[T, K], K2>>, valueFn: Expr<FunctionType<[T, K], T2>>, combineFn?: SubtypeExprOrValue<FunctionType<[T2, T2], T2>>): DictExpr<TypeOf<ReturnType<KeyFn>>, DictType<K2, T2>>;
1002
+ groupToDicts<KeyFn extends (($: BlockBuilder<NeverType>, value: ExprType<T>, key: ExprType<K>) => any), K2, ValueFn extends (($: BlockBuilder<NeverType>, value: ExprType<T>, key: ExprType<K>) => any)>(keyFn: KeyFn, keyFn2: Expr<FunctionType<[T, K], K2>>, valueFn: ValueFn, combineFn?: SubtypeExprOrValue<FunctionType<[TypeOf<ReturnType<NoInfer<ValueFn>>>, TypeOf<ReturnType<NoInfer<ValueFn>>>], TypeOf<ReturnType<NoInfer<ValueFn>>>>>): DictExpr<TypeOf<ReturnType<KeyFn>>, DictType<K2, TypeOf<ReturnType<ValueFn>>>>;
1003
+ groupToDicts<KeyFn extends (($: BlockBuilder<NeverType>, value: ExprType<T>, key: ExprType<K>) => any), KeyFn2 extends (($: BlockBuilder<NeverType>, value: ExprType<T>, key: ExprType<K>) => any), T2>(keyFn: KeyFn, keyFn2: KeyFn2, valueFn: Expr<FunctionType<[T, K], T2>>, combineFn?: SubtypeExprOrValue<FunctionType<[T2, T2], T2>>): DictExpr<TypeOf<ReturnType<KeyFn>>, DictType<TypeOf<ReturnType<KeyFn2>>, T2>>;
1004
+ groupToDicts<KeyFn extends (($: BlockBuilder<NeverType>, value: ExprType<T>, key: ExprType<K>) => any), KeyFn2 extends (($: BlockBuilder<NeverType>, value: ExprType<T>, key: ExprType<K>) => any), ValueFn extends (($: BlockBuilder<NeverType>, value: ExprType<T>, key: ExprType<K>) => any)>(keyFn: KeyFn, keyFn2: KeyFn2, valueFn: ValueFn, combineFn?: SubtypeExprOrValue<FunctionType<[TypeOf<ReturnType<NoInfer<ValueFn>>>, TypeOf<ReturnType<NoInfer<ValueFn>>>], TypeOf<ReturnType<NoInfer<ValueFn>>>>>): DictExpr<TypeOf<ReturnType<KeyFn>>, DictType<TypeOf<ReturnType<KeyFn2>>, TypeOf<ReturnType<ValueFn>>>>;
1005
+ groupToDicts<K1, K2>(keyFn: Expr<FunctionType<[T, K], K1>>, keyFn2: Expr<FunctionType<[T, K], K2>>): DictExpr<K1, DictType<K2, T>>;
1006
+ groupToDicts<K1, KeyFn2 extends (($: BlockBuilder<NeverType>, value: ExprType<T>, key: ExprType<K>) => any)>(keyFn: Expr<FunctionType<[T, K], K1>>, keyFn2: KeyFn2): DictExpr<K1, DictType<TypeOf<ReturnType<KeyFn2>>, T>>;
1007
+ groupToDicts<KeyFn extends (($: BlockBuilder<NeverType>, value: ExprType<T>, key: ExprType<K>) => any), K2>(keyFn: KeyFn, keyFn2: Expr<FunctionType<[T, K], K2>>): DictExpr<TypeOf<ReturnType<KeyFn>>, DictType<K2, T>>;
1008
+ groupToDicts<KeyFn extends (($: BlockBuilder<NeverType>, value: ExprType<T>, key: ExprType<K>) => any), KeyFn2 extends (($: BlockBuilder<NeverType>, value: ExprType<T>, key: ExprType<K>) => any)>(keyFn: KeyFn, keyFn2: KeyFn2): DictExpr<TypeOf<ReturnType<KeyFn>>, DictType<TypeOf<ReturnType<KeyFn2>>, T>>;
927
1009
  /**
928
1010
  * Count the number of entries in each group.
929
1011
  *
@@ -1056,6 +1138,32 @@ export declare class DictExpr<K extends any, T extends any> extends Expr<DictTyp
1056
1138
  * ```
1057
1139
  */
1058
1140
  reduce<T2>(fn: SubtypeExprOrValue<FunctionType<[previous: TypeOf<NoInfer<T2>>, value: T, key: K], TypeOf<NoInfer<T2>>>>, init: T2): ExprType<TypeOf<T2>>;
1141
+ /**
1142
+ * Computes the running fold (prefix scan) over entries in key order, returning every intermediate accumulator.
1143
+ *
1144
+ * Element `i` of the result is the accumulator after folding the `i`-th entry (entries are
1145
+ * visited in ascending key order under East's total ordering), so the result has one element
1146
+ * per entry and its last element equals `reduce(fn, init)` for a non-empty dictionary. The
1147
+ * seed itself is not emitted, and an empty dictionary scans to an empty array.
1148
+ *
1149
+ * @param fn - Function accepting (accumulator, value, key) and returning the new accumulator value
1150
+ * @param init - Initial value for the scan (determines the result element type); not emitted
1151
+ * @returns An ArrayExpr of the successive accumulator values, one per entry in key order
1152
+ *
1153
+ * @example
1154
+ * ```ts
1155
+ * // Running total of values in key order
1156
+ * const runningTotal = East.function([DictType(StringType, IntegerType)], ArrayType(IntegerType), ($, dict) => {
1157
+ * $.return(dict.scan(($, acc, value, key) => acc.add(value), 0n));
1158
+ * });
1159
+ * const compiled = East.compile(runningTotal.toIR(), []);
1160
+ * compiled(new Map([["a", 1n], ["b", 2n], ["c", 3n]])); // [1n, 3n, 6n]
1161
+ * compiled(new Map()); // []
1162
+ * ```
1163
+ *
1164
+ * @see {@link reduce} for the final accumulator only.
1165
+ */
1166
+ scan<T2>(fn: SubtypeExprOrValue<FunctionType<[previous: TypeOf<NoInfer<T2>>, value: T, key: K], TypeOf<NoInfer<T2>>>>, init: T2): ArrayExpr<TypeOf<T2>>;
1059
1167
  /**
1060
1168
  * Reduce dictionary to single value using projection and accumulator functions.
1061
1169
  *
@@ -1193,7 +1301,7 @@ export declare class DictExpr<K extends any, T extends any> extends Expr<DictTyp
1193
1301
  * ```ts
1194
1302
  * // With mapping function
1195
1303
  * const sumLengths = East.function([DictType(StringType, StringType)], IntegerType, ($, dict) => {
1196
- * $.return(dict.sum(($, value, key) => value.size()));
1304
+ * $.return(dict.sum(($, value, key) => value.length()));
1197
1305
  * });
1198
1306
  * const compiled = East.compile(sumLengths.toIR(), []);
1199
1307
  * const dict2 = new Map([["a", "hello"], ["b", "world"]]);
@@ -1230,11 +1338,11 @@ export declare class DictExpr<K extends any, T extends any> extends Expr<DictTyp
1230
1338
  * ```ts
1231
1339
  * // With mapping function
1232
1340
  * const avgLength = East.function([DictType(StringType, StringType)], FloatType, ($, dict) => {
1233
- * $.return(dict.mean(($, value, key) => value.size()));
1341
+ * $.return(dict.mean(($, value, key) => value.length()));
1234
1342
  * });
1235
1343
  * const compiled = East.compile(avgLength.toIR(), []);
1236
1344
  * const dict2 = new Map([["a", "hi"], ["b", "hello"], ["c", "hey"]]);
1237
- * compiled(dict2); // 3.6666... (average of 2, 5, 3)
1345
+ * compiled(dict2); // 3.3333333333333335 (average of 2, 5, 3)
1238
1346
  * ```
1239
1347
  */
1240
1348
  mean(fn: Expr<FunctionType<[T, K], IntegerType>>): FloatExpr;
@@ -1 +1 @@
1
- {"version":3,"file":"dict.d.ts","sourceRoot":"","sources":["../../../src/expr/dict.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dict.d.ts","sourceRoot":"","sources":["../../../src/expr/dict.ts"],"names":[],"mappings":"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"}
@@ -13,22 +13,37 @@ import { none, some } from "../containers/variant.js";
13
13
  *
14
14
  * @example
15
15
  * ```ts
16
- * // Creating and manipulating dictionaries
17
- * const updateCounts = East.function([DictType(StringType, IntegerType), StringType], DictType(StringType, IntegerType), ($, counts, word) => {
16
+ * // `merge` combines a value into ONE key, IN PLACE, and returns null —
17
+ * // the sibling of ArrayExpr.merge (one index) and RefExpr.merge (the cell).
18
+ * const updateCounts = East.function([DictType(StringType, IntegerType), StringType], NullType, ($, counts, word) => {
18
19
  * // Increment count for a word, initializing to 0 if missing
19
- * $.return(counts.merge(word, 1n, ($, existing, increment) => existing.add(increment), () => 0n));
20
+ * $(counts.merge(word, 1n, ($, existing, increment) => existing.add(increment), () => 0n));
21
+ * $.return(null);
20
22
  * });
21
23
  * const compiled = East.compile(updateCounts.toIR(), []);
22
24
  * const counts = new Map([["hello", 5n], ["world", 3n]]);
23
- * compiled(counts, "hello"); // Map([["hello", 6n], ["world", 3n]])
24
- * compiled(counts, "new"); // Map([["hello", 6n], ["new", 1n], ["world", 3n]])
25
+ * compiled(counts, "hello"); // counts is now Map([["hello", 6n], ["world", 3n]])
26
+ * compiled(counts, "new"); // counts is now Map([["hello", 6n], ["new", 1n], ["world", 3n]])
27
+ * ```
28
+ *
29
+ * @example
30
+ * ```ts
31
+ * // `union` is the whole-dictionary operation, and it is PURE — contrast the
32
+ * // single-key `merge` above. (east-py spells this `EastDict.union` too; its
33
+ * // `merge` is the deprecated alias for THIS operation, not the one above.)
34
+ * const combine = East.function([DictType(StringType, IntegerType), DictType(StringType, IntegerType)], DictType(StringType, IntegerType), ($, a, b) => {
35
+ * $.return(a.union(b, ($, existing, incoming) => existing.add(incoming)));
36
+ * });
37
+ * const compiled = East.compile(combine.toIR(), []);
38
+ * compiled(new Map([["a", 1n], ["b", 2n]]), new Map([["b", 3n], ["c", 4n]]));
39
+ * // Map([["a", 1n], ["b", 5n], ["c", 4n]]) — both inputs unchanged
25
40
  * ```
26
41
  *
27
42
  * @example
28
43
  * ```ts
29
44
  * // Filtering and mapping
30
45
  * const filterHighScores = East.function([DictType(StringType, IntegerType)], DictType(StringType, IntegerType), ($, scores) => {
31
- * $.return(scores.filter(($, score, name) => score.greaterOrEqual(100n)));
46
+ * $.return(scores.filter(($, score, name) => score.greaterEqual(100n)));
32
47
  * });
33
48
  * const compiled = East.compile(filterHighScores.toIR(), []);
34
49
  * const scores = new Map([["alice", 150n], ["bob", 75n], ["charlie", 200n]]);
@@ -326,6 +341,14 @@ export class DictExpr extends Expr {
326
341
  * This is useful for patterns where you want to update an entry based on its current value, e.g. incrementing a number,
327
342
  * appending to a string, updating fields in a struct, or pushing to an array.
328
343
  *
344
+ * Operates on ONE key and mutates the receiver, matching `ArrayExpr.merge`
345
+ * (one index) and `RefExpr.merge` (the cell) — `merge` means "combine a
346
+ * value into this slot" across the whole expression API. It is therefore
347
+ * **not** the whole-dictionary operation east-py's `EastDict.merge`
348
+ * historically named; that one is pure and is spelled {@link union} here
349
+ * (and `EastDict.union` there). Porting `merge` by name between the two
350
+ * runtimes was silently wrong in both directions — see issue #527.
351
+ *
329
352
  * @param key - The key to update
330
353
  * @param value - The value to merge with the existing value
331
354
  * @param updateFn - Function accepting (existing, new, key) and returning the merged value
@@ -334,6 +357,8 @@ export class DictExpr extends Expr {
334
357
  *
335
358
  * @throws East runtime error if key is not found and initialFn is not provided
336
359
  *
360
+ * @see {@link union} for the pure whole-dictionary union
361
+ * @see {@link mergeAll} to merge every entry of another dictionary
337
362
  * @see {@link insertOrUpdate} and {@link update} for simply replacing the value
338
363
  *
339
364
  * @example
@@ -630,6 +655,51 @@ export class DictExpr extends Expr {
630
655
  arguments: [this[AstSymbol], Expr.ast(dict2Expr), mergerAst],
631
656
  });
632
657
  }
658
+ /**
659
+ * Unions another dictionary with this one, returning a NEW dictionary.
660
+ *
661
+ * The pure counterpart of {@link unionInPlace}: neither input is modified,
662
+ * exactly as {@link SetExpr.union} is the pure counterpart of
663
+ * `SetExpr.unionInPlace`. Both dictionaries must have the same key and
664
+ * value types; use {@link mergeAll} when the other dictionary's values have
665
+ * a different type.
666
+ *
667
+ * This is the operation east-py spells `EastDict.union` (and, until it is
668
+ * retired, `EastDict.merge`). Note that it is NOT what {@link merge} does
669
+ * here — `merge` updates a SINGLE key in place, matching `ArrayExpr.merge`
670
+ * and `RefExpr.merge`. See issue #527.
671
+ *
672
+ * @param dict2 - The dictionary to union with this one
673
+ * @param mergeFn - Optional function to combine values when a key is present in both; accepts (existing, new, key) and returns the merged value
674
+ * @returns A new DictExpr holding the entries of both dictionaries
675
+ *
676
+ * @throws East runtime error if a key is present in both and mergeFn is not provided
677
+ *
678
+ * @see {@link unionInPlace} for the in-place form
679
+ * @see {@link mergeAll} to merge a dictionary whose values have a different type
680
+ * @see {@link merge} to combine a value into one key
681
+ *
682
+ * @example
683
+ * ```ts
684
+ * const combine = East.function([DictType(StringType, IntegerType), DictType(StringType, IntegerType)], DictType(StringType, IntegerType), ($, dict1, dict2) => {
685
+ * $.return(dict1.union(dict2, ($, existing, newVal) => existing.add(newVal)));
686
+ * });
687
+ * const compiled = East.compile(combine.toIR(), []);
688
+ * const dict1 = new Map([["a", 1n], ["b", 2n]]);
689
+ * const dict2 = new Map([["b", 3n], ["c", 4n]]);
690
+ * compiled(dict1, dict2); // Map([["a", 1n], ["b", 5n], ["c", 4n]]) — dict1 is unchanged
691
+ * ```
692
+ */
693
+ union(dict2, mergeFn) {
694
+ // A copy plus an in-place union: the same two builtins east-py's eager
695
+ // implementation uses, so every runtime performs one bulk native merge
696
+ // rather than a per-entry insert loop.
697
+ return Expr.block(($) => {
698
+ const result = $.let(this.copy());
699
+ $(result.unionInPlace(dict2, mergeFn));
700
+ return result;
701
+ });
702
+ }
633
703
  /**
634
704
  * Merges all values from another dictionary into this one using a merge function.
635
705
  *
@@ -863,7 +933,7 @@ export class DictExpr extends Expr {
863
933
  * @example
864
934
  * ```ts
865
935
  * const filterLargeValues = East.function([DictType(StringType, IntegerType)], DictType(StringType, IntegerType), ($, dict) => {
866
- * $.return(dict.filter(($, value, key) => value.greaterOrEqual(10n)));
936
+ * $.return(dict.filter(($, value, key) => value.greaterEqual(10n)));
867
937
  * });
868
938
  * const compiled = East.compile(filterLargeValues.toIR(), []);
869
939
  * const dict = new Map([["a", 5n], ["b", 15n], ["c", 20n], ["d", 8n]]);
@@ -1053,19 +1123,6 @@ export class DictExpr extends Expr {
1053
1123
  arguments: [this[AstSymbol], keyFnAst, initFnAst, reduceFnAst],
1054
1124
  });
1055
1125
  }
1056
- /**
1057
- * Collect entries in each group into arrays.
1058
- *
1059
- * @param keyFn - Function that computes the grouping key
1060
- * @param valueFn - Optional projection function for values
1061
- * @returns Dictionary mapping each key to an array of elements in that group
1062
- *
1063
- * @example
1064
- * ```ts
1065
- * new Dict({ a: 1n, b: 2n, c: 3n, d: 4n }).groupToArrays(($, v, k) => v.remainder(2n))
1066
- * // Result: { 0n: [2n, 4n], 1n: [1n, 3n] }
1067
- * ```
1068
- */
1069
1126
  groupToArrays(keyFn, valueFn) {
1070
1127
  const keyFnAst = valueOrExprToAstTyped(keyFn, FunctionType([this.value_type, this.key_type], undefined));
1071
1128
  const valueFnAst = valueOrExprToAstTyped(valueFn ?? ((_$, v) => v), FunctionType([this.value_type, this.key_type], undefined));
@@ -1078,19 +1135,6 @@ export class DictExpr extends Expr {
1078
1135
  return acc;
1079
1136
  }));
1080
1137
  }
1081
- /**
1082
- * Collect entries in each group into sets, ignoring duplicates.
1083
- *
1084
- * @param keyFn - Function that computes the grouping key
1085
- * @param valueFn - Optional projection function for values
1086
- * @returns Dictionary mapping each key to a set of elements in that group
1087
- *
1088
- * @example
1089
- * ```ts
1090
- * new Dict({ a: 1n, b: 2n, c: 1n, d: 2n }).groupToSets(($, v, k) => v.remainder(2n))
1091
- * // Result: { 0n: Set([2n]), 1n: Set([1n]) }
1092
- * ```
1093
- */
1094
1138
  groupToSets(keyFn, valueFn) {
1095
1139
  const keyFnAst = valueOrExprToAstTyped(keyFn, FunctionType([this.value_type, this.key_type], undefined));
1096
1140
  const valueFnAst = valueOrExprToAstTyped(valueFn ?? ((_$, v) => v), FunctionType([this.value_type, this.key_type], undefined));
@@ -1103,34 +1147,6 @@ export class DictExpr extends Expr {
1103
1147
  return acc;
1104
1148
  }));
1105
1149
  }
1106
- /**
1107
- * Group entries into nested dictionaries.
1108
- *
1109
- * @param keyFn - Function that computes the outer grouping key
1110
- * @param keyFn2 - Function that computes the inner dictionary key
1111
- * @param valueFn - Optional projection function for inner dictionary values
1112
- * @param combineFn - Optional function to resolve conflicts when the same inner key appears multiple times
1113
- * @returns Dictionary-of-dictionaries mapping group keys to dictionaries
1114
- *
1115
- * @example
1116
- * ```ts
1117
- * // Without conflict handler - errors on duplicate keys
1118
- * orders.groupToDicts(
1119
- * ($, v, k) => v.department,
1120
- * ($, v, k) => v.role
1121
- * )
1122
- * // Result: { "eng": { "dev": user1, "lead": user2 }, "sales": { "rep": user3 } }
1123
- *
1124
- * // With conflict handler - merges duplicate keys
1125
- * orders.groupToDicts(
1126
- * ($, v, k) => v.customer,
1127
- * ($, v, k) => v.product,
1128
- * ($, v, k) => v.quantity,
1129
- * ($, a, b) => a.add(b)
1130
- * )
1131
- * // Sums quantities for same customer+product
1132
- * ```
1133
- */
1134
1150
  groupToDicts(keyFn, keyFn2, valueFn, combineFn) {
1135
1151
  const keyFnAst = valueOrExprToAstTyped(keyFn, FunctionType([this.value_type, this.key_type], undefined));
1136
1152
  const keyFn2Ast = valueOrExprToAstTyped(keyFn2, FunctionType([this.value_type, this.key_type], undefined));
@@ -1257,6 +1273,44 @@ export class DictExpr extends Expr {
1257
1273
  arguments: [this[AstSymbol], fnAst, initAst],
1258
1274
  });
1259
1275
  }
1276
+ /**
1277
+ * Computes the running fold (prefix scan) over entries in key order, returning every intermediate accumulator.
1278
+ *
1279
+ * Element `i` of the result is the accumulator after folding the `i`-th entry (entries are
1280
+ * visited in ascending key order under East's total ordering), so the result has one element
1281
+ * per entry and its last element equals `reduce(fn, init)` for a non-empty dictionary. The
1282
+ * seed itself is not emitted, and an empty dictionary scans to an empty array.
1283
+ *
1284
+ * @param fn - Function accepting (accumulator, value, key) and returning the new accumulator value
1285
+ * @param init - Initial value for the scan (determines the result element type); not emitted
1286
+ * @returns An ArrayExpr of the successive accumulator values, one per entry in key order
1287
+ *
1288
+ * @example
1289
+ * ```ts
1290
+ * // Running total of values in key order
1291
+ * const runningTotal = East.function([DictType(StringType, IntegerType)], ArrayType(IntegerType), ($, dict) => {
1292
+ * $.return(dict.scan(($, acc, value, key) => acc.add(value), 0n));
1293
+ * });
1294
+ * const compiled = East.compile(runningTotal.toIR(), []);
1295
+ * compiled(new Map([["a", 1n], ["b", 2n], ["c", 3n]])); // [1n, 3n, 6n]
1296
+ * compiled(new Map()); // []
1297
+ * ```
1298
+ *
1299
+ * @see {@link reduce} for the final accumulator only.
1300
+ */
1301
+ scan(fn, init) {
1302
+ const initAst = valueOrExprToAst(init);
1303
+ const accType = initAst.type;
1304
+ const fnAst = valueOrExprToAstTyped(fn, FunctionType([accType, this.value_type, this.key_type], accType));
1305
+ return this[FactorySymbol]({
1306
+ ast_type: "Builtin",
1307
+ type: ArrayType(accType),
1308
+ loc_id: get_location_id(),
1309
+ builtin: "DictScan",
1310
+ type_parameters: [this.key_type, this.value_type, accType],
1311
+ arguments: [this[AstSymbol], fnAst, initAst],
1312
+ });
1313
+ }
1260
1314
  mapReduce(mapFn, combineFn) {
1261
1315
  const mapAst = valueOrExprToAstTyped(mapFn, FunctionType([this.value_type, this.key_type], undefined));
1262
1316
  const mapType = mapAst.type.output;