@elaraai/east 0.0.1-beta.2 → 0.0.1-beta.21
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.
- package/LICENSE.md +15 -666
- package/README.md +30 -8
- package/dist/src/ast_to_ir.d.ts +6 -0
- package/dist/src/ast_to_ir.d.ts.map +1 -1
- package/dist/src/ast_to_ir.js +33 -1
- package/dist/src/ast_to_ir.js.map +1 -1
- package/dist/src/builtins.d.ts +1 -1
- package/dist/src/builtins.d.ts.map +1 -1
- package/dist/src/builtins.js +10 -0
- package/dist/src/builtins.js.map +1 -1
- package/dist/src/comparison.d.ts.map +1 -1
- package/dist/src/comparison.js +12 -4
- package/dist/src/comparison.js.map +1 -1
- package/dist/src/compile.d.ts +7 -1
- package/dist/src/compile.d.ts.map +1 -1
- package/dist/src/compile.js +219 -172
- package/dist/src/compile.js.map +1 -1
- package/dist/src/eastir.d.ts.map +1 -1
- package/dist/src/eastir.js +21 -5
- package/dist/src/eastir.js.map +1 -1
- package/dist/src/error.d.ts +4 -0
- package/dist/src/error.d.ts.map +1 -1
- package/dist/src/error.js +20 -0
- package/dist/src/error.js.map +1 -1
- package/dist/src/expr/array.d.ts +101 -1
- package/dist/src/expr/array.d.ts.map +1 -1
- package/dist/src/expr/array.js +149 -0
- package/dist/src/expr/array.js.map +1 -1
- package/dist/src/expr/blob.d.ts +65 -1
- package/dist/src/expr/blob.d.ts.map +1 -1
- package/dist/src/expr/blob.js +80 -1
- package/dist/src/expr/blob.js.map +1 -1
- package/dist/src/expr/block.d.ts +23 -3
- package/dist/src/expr/block.d.ts.map +1 -1
- package/dist/src/expr/block.js +28 -3
- package/dist/src/expr/block.js.map +1 -1
- package/dist/src/expr/boolean.d.ts +36 -0
- package/dist/src/expr/boolean.d.ts.map +1 -1
- package/dist/src/expr/boolean.js +41 -0
- package/dist/src/expr/boolean.js.map +1 -1
- package/dist/src/expr/datetime.d.ts +107 -0
- package/dist/src/expr/datetime.d.ts.map +1 -1
- package/dist/src/expr/datetime.js +119 -0
- package/dist/src/expr/datetime.js.map +1 -1
- package/dist/src/expr/dict.d.ts +34 -0
- package/dist/src/expr/dict.d.ts.map +1 -1
- package/dist/src/expr/dict.js +39 -0
- package/dist/src/expr/dict.js.map +1 -1
- package/dist/src/expr/expr.d.ts.map +1 -1
- package/dist/src/expr/expr.js.map +1 -1
- package/dist/src/expr/float.d.ts +107 -0
- package/dist/src/expr/float.d.ts.map +1 -1
- package/dist/src/expr/float.js +122 -0
- package/dist/src/expr/float.js.map +1 -1
- package/dist/src/expr/function.d.ts +9 -2
- package/dist/src/expr/function.d.ts.map +1 -1
- package/dist/src/expr/function.js.map +1 -1
- package/dist/src/expr/index.d.ts +40 -1
- package/dist/src/expr/index.d.ts.map +1 -1
- package/dist/src/expr/index.js +39 -1
- package/dist/src/expr/index.js.map +1 -1
- package/dist/src/expr/integer.d.ts +107 -0
- package/dist/src/expr/integer.d.ts.map +1 -1
- package/dist/src/expr/integer.js +119 -0
- package/dist/src/expr/integer.js.map +1 -1
- package/dist/src/expr/libs/integer.d.ts +19 -0
- package/dist/src/expr/libs/integer.d.ts.map +1 -1
- package/dist/src/expr/libs/integer.js +47 -0
- package/dist/src/expr/libs/integer.js.map +1 -1
- package/dist/src/expr/set.d.ts +36 -2
- package/dist/src/expr/set.d.ts.map +1 -1
- package/dist/src/expr/set.js +41 -2
- package/dist/src/expr/set.js.map +1 -1
- package/dist/src/expr/string.d.ts +106 -0
- package/dist/src/expr/string.d.ts.map +1 -1
- package/dist/src/expr/string.js +119 -0
- package/dist/src/expr/string.js.map +1 -1
- package/dist/src/expr/struct.d.ts.map +1 -1
- package/dist/src/expr/types.d.ts +6 -6
- package/dist/src/expr/types.d.ts.map +1 -1
- package/dist/src/expr/variant.d.ts +115 -1
- package/dist/src/expr/variant.d.ts.map +1 -1
- package/dist/src/expr/variant.js +53 -0
- package/dist/src/expr/variant.js.map +1 -1
- package/dist/src/internal.d.ts +8 -0
- package/dist/src/internal.d.ts.map +1 -1
- package/dist/src/internal.js +8 -0
- package/dist/src/internal.js.map +1 -1
- package/dist/src/serialization/beast.d.ts.map +1 -1
- package/dist/src/serialization/beast.js +53 -18
- package/dist/src/serialization/beast.js.map +1 -1
- package/dist/src/serialization/beast2.d.ts +39 -3
- package/dist/src/serialization/beast2.d.ts.map +1 -1
- package/dist/src/serialization/beast2.js +132 -18
- package/dist/src/serialization/beast2.js.map +1 -1
- package/dist/src/serialization/csv.d.ts +139 -0
- package/dist/src/serialization/csv.d.ts.map +1 -0
- package/dist/src/serialization/csv.js +615 -0
- package/dist/src/serialization/csv.js.map +1 -0
- package/dist/src/serialization/index.d.ts +2 -1
- package/dist/src/serialization/index.d.ts.map +1 -1
- package/dist/src/serialization/index.js +2 -1
- package/dist/src/serialization/index.js.map +1 -1
- package/dist/src/type_of_type.d.ts +11 -0
- package/dist/src/type_of_type.d.ts.map +1 -1
- package/dist/src/type_of_type.js +61 -0
- package/dist/src/type_of_type.js.map +1 -1
- package/dist/src/types.js +4 -4
- package/dist/src/types.js.map +1 -1
- package/package.json +4 -4
|
@@ -18,23 +18,16 @@ const isTypeValueEqual = equalFor(EastTypeValueType);
|
|
|
18
18
|
// Old East supported nullable types with a special flag (bit 7 set in type byte).
|
|
19
19
|
// New East removed nullable in favor of explicit Option/Variant types.
|
|
20
20
|
//
|
|
21
|
-
// DECODING: We auto-convert nullable types to Variant<{
|
|
21
|
+
// DECODING: We auto-convert nullable types to Option<T> (Variant<{none: Null, some: T}>)
|
|
22
22
|
// - This allows reading legacy .beast files seamlessly
|
|
23
|
-
// -
|
|
24
|
-
// -
|
|
25
|
-
// - This matches the old nullable encoding perfectly for values (byte-for-byte identical)
|
|
23
|
+
// - Tag mapping: tag 0 = none (null), tag 1 = some (has value)
|
|
24
|
+
// - This matches the old nullable encoding for values (byte-for-byte identical)
|
|
26
25
|
//
|
|
27
|
-
// ENCODING: We currently do NOT auto-convert
|
|
26
|
+
// ENCODING: We currently do NOT auto-convert Option<T> back to nullable
|
|
28
27
|
// - Pro: Simpler, more explicit, no magic behavior
|
|
29
28
|
// - Con: Type schemas are larger (expanded Variant vs single nullable flag)
|
|
30
29
|
// - Con: Old ELARACore cannot read files written by new East
|
|
31
30
|
//
|
|
32
|
-
// FUTURE WORK: Consider implementing inverse transform on encode for full interoperability:
|
|
33
|
-
// - Detect Variant with exactly 2 cases: "notNull": T and "null": Null
|
|
34
|
-
// - Encode as nullable T (type byte with bit 7 set)
|
|
35
|
-
// - This would enable bidirectional compatibility and smaller type schemas
|
|
36
|
-
// - Trade-off: More magic behavior, but symmetric with decode behavior
|
|
37
|
-
//
|
|
38
31
|
// =============================================================================
|
|
39
32
|
// Beast v1 uses single-byte type tags (0-13) with nullable flag at bit 7
|
|
40
33
|
export const BEAST_TYPE_TO_BYTE = {
|
|
@@ -60,6 +53,44 @@ export const BEAST_BYTE_TO_TYPE = [
|
|
|
60
53
|
undefined, // 12 - Tree (not implemented)
|
|
61
54
|
"Variant",
|
|
62
55
|
];
|
|
56
|
+
/**
|
|
57
|
+
* Normalize a Beast-decoded type to standard East ordering.
|
|
58
|
+
* Sorts variant cases alphabetically by name, matching East's canonical type representation.
|
|
59
|
+
* Only used for type comparison in Beast decoding - the original ordering is preserved
|
|
60
|
+
* for value decoding (to match byte layout).
|
|
61
|
+
*/
|
|
62
|
+
function _normalizeBeastType(type) {
|
|
63
|
+
const t = type.type;
|
|
64
|
+
if (t === "Array") {
|
|
65
|
+
return variant("Array", _normalizeBeastType(type.value));
|
|
66
|
+
}
|
|
67
|
+
else if (t === "Set") {
|
|
68
|
+
return variant("Set", _normalizeBeastType(type.value));
|
|
69
|
+
}
|
|
70
|
+
else if (t === "Dict") {
|
|
71
|
+
return variant("Dict", {
|
|
72
|
+
key: _normalizeBeastType(type.value.key),
|
|
73
|
+
value: _normalizeBeastType(type.value.value),
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
else if (t === "Struct") {
|
|
77
|
+
// Struct fields preserve declaration order (not sorted), only normalize field types
|
|
78
|
+
return variant("Struct", type.value.map(f => ({
|
|
79
|
+
name: f.name,
|
|
80
|
+
type: _normalizeBeastType(f.type),
|
|
81
|
+
})));
|
|
82
|
+
}
|
|
83
|
+
else if (t === "Variant") {
|
|
84
|
+
// Sort cases by name and normalize their types
|
|
85
|
+
const sortedCases = [...type.value].sort((a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0);
|
|
86
|
+
return variant("Variant", sortedCases.map(c => ({
|
|
87
|
+
name: c.name,
|
|
88
|
+
type: _normalizeBeastType(c.type),
|
|
89
|
+
})));
|
|
90
|
+
}
|
|
91
|
+
// Primitives pass through unchanged
|
|
92
|
+
return type;
|
|
93
|
+
}
|
|
63
94
|
export function encodeTypeToBeastBuffer(type, writer) {
|
|
64
95
|
const t = type.type;
|
|
65
96
|
// NOTE: We don't currently detect Variant<{notNull: T, null: Null}> and convert it
|
|
@@ -185,10 +216,11 @@ export function decodeTypeBeast(buffer, offset) {
|
|
|
185
216
|
else {
|
|
186
217
|
throw new Error(`Unhandled type: ${t}`);
|
|
187
218
|
}
|
|
188
|
-
// If nullable, wrap in a Variant with "
|
|
189
|
-
//
|
|
219
|
+
// If nullable, wrap in a Variant with "some" (tag 0) and "none" (tag 1)
|
|
220
|
+
// Old nullable: tag 0 = has value, tag 1 = null
|
|
221
|
+
// So we need: index 0 = some, index 1 = none (to match byte encoding)
|
|
190
222
|
if (nullable) {
|
|
191
|
-
return [variant("Variant", [{ name: "
|
|
223
|
+
return [variant("Variant", [{ name: "some", type: baseType }, { name: "none", type: variant("Null", null) }]), offset];
|
|
192
224
|
}
|
|
193
225
|
return [baseType, offset];
|
|
194
226
|
}
|
|
@@ -531,7 +563,6 @@ export function decodeBeastFor(type) {
|
|
|
531
563
|
if (!isVariant(type)) {
|
|
532
564
|
type = toEastTypeValue(type);
|
|
533
565
|
}
|
|
534
|
-
const valueDecoder = decodeBeastValueFor(type);
|
|
535
566
|
return (data) => {
|
|
536
567
|
// Verify magic bytes
|
|
537
568
|
if (data.length < MAGIC_BYTES.length) {
|
|
@@ -545,11 +576,15 @@ export function decodeBeastFor(type) {
|
|
|
545
576
|
// Decode type schema
|
|
546
577
|
let offset = MAGIC_BYTES.length;
|
|
547
578
|
const [decodedType, typeEndOffset] = decodeTypeBeast(data, offset);
|
|
579
|
+
// Normalize decoded type for comparison (sorts variant cases)
|
|
580
|
+
// but keep original for value decoding (preserves byte-level tag ordering)
|
|
581
|
+
const normalizedType = _normalizeBeastType(decodedType);
|
|
548
582
|
// Verify type matches expected type
|
|
549
|
-
if (!isTypeValueEqual(
|
|
550
|
-
throw new Error(`Type mismatch: expected ${printTypeValue(type)}, got ${printTypeValue(
|
|
583
|
+
if (!isTypeValueEqual(normalizedType, type)) {
|
|
584
|
+
throw new Error(`Type mismatch: expected ${printTypeValue(type)}, got ${printTypeValue(normalizedType)}`);
|
|
551
585
|
}
|
|
552
|
-
// Decode value
|
|
586
|
+
// Decode value using original decoded_type (correct tag ordering)
|
|
587
|
+
const valueDecoder = decodeBeastValueFor(decodedType);
|
|
553
588
|
const [value, valueEndOffset] = valueDecoder(data, typeEndOffset);
|
|
554
589
|
// Verify we consumed all data
|
|
555
590
|
if (valueEndOffset !== data.length) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beast.js","sourceRoot":"","sources":["../../../src/serialization/beast.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"beast.js","sourceRoot":"","sources":["../../../src/serialization/beast.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
import { type EastTypeValue } from "../type_of_type.js";
|
|
6
6
|
import type { EastType, ValueTypeOf } from "../types.js";
|
|
7
7
|
import { BufferWriter } from "./binary-utils.js";
|
|
8
|
+
import { type FunctionIR, type AsyncFunctionIR } from "../ir.js";
|
|
9
|
+
import type { PlatformFunction } from "../platform.js";
|
|
8
10
|
/** Stack of encoders for recursive types */
|
|
9
11
|
export type Beast2EncodeTypeContext = ((value: any, writer: BufferWriter, ctx?: Beast2EncodeContext) => void)[];
|
|
10
12
|
/**
|
|
@@ -25,8 +27,16 @@ export type Beast2DecodeTypeContext = ((buffer: Uint8Array, offset: number, ctx?
|
|
|
25
27
|
export type Beast2DecodeContext = {
|
|
26
28
|
refs: Map<number, any>;
|
|
27
29
|
};
|
|
30
|
+
/**
|
|
31
|
+
* Options for decoding, allowing function compilation.
|
|
32
|
+
* When platform is provided, decoded functions will be compiled to callables with IR attached.
|
|
33
|
+
* When not provided, raw FunctionIR/AsyncFunctionIR is returned.
|
|
34
|
+
*/
|
|
35
|
+
export type Beast2DecodeOptions = {
|
|
36
|
+
platform?: PlatformFunction[];
|
|
37
|
+
};
|
|
28
38
|
export declare function encodeBeast2ValueToBufferFor(type: EastTypeValue, typeCtx?: Beast2EncodeTypeContext): (value: any, writer: BufferWriter, ctx?: Beast2EncodeContext) => void;
|
|
29
|
-
export declare function decodeBeast2ValueFor(type: EastTypeValue | EastType, typeCtx?: Beast2DecodeTypeContext): (buffer: Uint8Array, offset: number, ctx?: Beast2DecodeContext) => [any, number];
|
|
39
|
+
export declare function decodeBeast2ValueFor(type: EastTypeValue | EastType, typeCtx?: Beast2DecodeTypeContext, options?: Beast2DecodeOptions): (buffer: Uint8Array, offset: number, ctx?: Beast2DecodeContext) => [any, number];
|
|
30
40
|
export declare function encodeBeast2ValueFor(type: EastTypeValue): (value: any) => Uint8Array;
|
|
31
41
|
export declare function encodeBeast2ValueFor<T extends EastType>(type: T): (value: ValueTypeOf<T>) => Uint8Array;
|
|
32
42
|
export declare const MAGIC_BYTES: Uint8Array<ArrayBuffer>;
|
|
@@ -36,6 +46,32 @@ export declare function decodeBeast2(data: Uint8Array): {
|
|
|
36
46
|
type: EastTypeValue;
|
|
37
47
|
value: any;
|
|
38
48
|
};
|
|
39
|
-
export declare function decodeBeast2For(type: EastTypeValue): (data: Uint8Array) => any;
|
|
40
|
-
export declare function decodeBeast2For<T extends EastType>(type: T): (data: Uint8Array) => ValueTypeOf<T>;
|
|
49
|
+
export declare function decodeBeast2For(type: EastTypeValue, options?: Beast2DecodeOptions): (data: Uint8Array) => any;
|
|
50
|
+
export declare function decodeBeast2For<T extends EastType>(type: T, options?: Beast2DecodeOptions): (data: Uint8Array) => ValueTypeOf<T>;
|
|
51
|
+
export { EAST_IR_SYMBOL } from "../compile.js";
|
|
52
|
+
/**
|
|
53
|
+
* Compile a deserialized FunctionIR to an executable function.
|
|
54
|
+
*
|
|
55
|
+
* @param ir - The FunctionIR returned from BEAST2 deserialization
|
|
56
|
+
* @param platform - Platform functions required for execution
|
|
57
|
+
* @returns Compiled JavaScript function
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```ts
|
|
61
|
+
* const funcType = FunctionType([IntegerType], IntegerType);
|
|
62
|
+
* const data = encodeBeast2For(funcType)(myCompiledFunc);
|
|
63
|
+
* const ir = decodeBeast2For(funcType)(data);
|
|
64
|
+
* const recompiled = compileFunctionIR(ir, []);
|
|
65
|
+
* const result = recompiled(42n);
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
export declare function compileFunctionIR<I extends any[], O>(ir: FunctionIR, platform: PlatformFunction[]): (...args: I) => O;
|
|
69
|
+
/**
|
|
70
|
+
* Compile a deserialized AsyncFunctionIR to an executable async function.
|
|
71
|
+
*
|
|
72
|
+
* @param ir - The AsyncFunctionIR returned from BEAST2 deserialization
|
|
73
|
+
* @param platform - Platform functions required for execution
|
|
74
|
+
* @returns Compiled JavaScript async function
|
|
75
|
+
*/
|
|
76
|
+
export declare function compileAsyncFunctionIR<I extends any[], O>(ir: AsyncFunctionIR, platform: PlatformFunction[]): (...args: I) => Promise<O>;
|
|
41
77
|
//# sourceMappingURL=beast2.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beast2.d.ts","sourceRoot":"","sources":["../../../src/serialization/beast2.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAsC,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EACL,YAAY,EAKb,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"beast2.d.ts","sourceRoot":"","sources":["../../../src/serialization/beast2.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,9 @@ import { isVariant, variant } from "../containers/variant.js";
|
|
|
8
8
|
import { BufferWriter, readVarint, readZigzag, readFloat64LE, readStringUtf8Varint, } from "./binary-utils.js";
|
|
9
9
|
import { printFor } from "./east.js";
|
|
10
10
|
import { ref } from "../containers/ref.js";
|
|
11
|
+
import { EAST_IR_SYMBOL, compile_internal } from "../compile.js";
|
|
12
|
+
import { IRType } from "../ir.js";
|
|
13
|
+
import { analyzeIR } from "../analyze.js";
|
|
11
14
|
const printTypeValue = printFor(EastTypeValueType);
|
|
12
15
|
const isTypeValueEqual = equalFor(EastTypeValueType);
|
|
13
16
|
// =============================================================================
|
|
@@ -168,16 +171,44 @@ export function encodeBeast2ValueToBufferFor(type, typeCtx = []) {
|
|
|
168
171
|
return ret;
|
|
169
172
|
}
|
|
170
173
|
else if (type.type === "Function") {
|
|
171
|
-
|
|
174
|
+
return (value, writer, ctx = { refs: new Map() }) => {
|
|
175
|
+
// Get IR from function
|
|
176
|
+
const ir = value[EAST_IR_SYMBOL];
|
|
177
|
+
if (!ir) {
|
|
178
|
+
throw new Error(`Cannot serialize function: no IR attached. ` +
|
|
179
|
+
`Functions must be compiled from East IR to be serializable.`);
|
|
180
|
+
}
|
|
181
|
+
if (ir.value.captures.length > 0) {
|
|
182
|
+
throw new Error(`Cannot serialize closure with ${ir.value.captures.length} captured variable(s): ` +
|
|
183
|
+
`${ir.value.captures.map((v) => v.value.name).join(", ")}. ` +
|
|
184
|
+
`Only free functions (no captures) can be serialized.`);
|
|
185
|
+
}
|
|
186
|
+
// Serialize the IR
|
|
187
|
+
irEncoder(ir, writer, ctx);
|
|
188
|
+
};
|
|
172
189
|
}
|
|
173
190
|
else if (type.type === "AsyncFunction") {
|
|
174
|
-
|
|
191
|
+
return (value, writer, ctx = { refs: new Map() }) => {
|
|
192
|
+
// Get IR from function
|
|
193
|
+
const ir = value[EAST_IR_SYMBOL];
|
|
194
|
+
if (!ir) {
|
|
195
|
+
throw new Error(`Cannot serialize async function: no IR attached. ` +
|
|
196
|
+
`Functions must be compiled from East IR to be serializable.`);
|
|
197
|
+
}
|
|
198
|
+
if (ir.value.captures.length > 0) {
|
|
199
|
+
throw new Error(`Cannot serialize async closure with ${ir.value.captures.length} captured variable(s): ` +
|
|
200
|
+
`${ir.value.captures.map((v) => v.value.name).join(", ")}. ` +
|
|
201
|
+
`Only free async functions (no captures) can be serialized.`);
|
|
202
|
+
}
|
|
203
|
+
// Serialize the IR
|
|
204
|
+
irEncoder(ir, writer, ctx);
|
|
205
|
+
};
|
|
175
206
|
}
|
|
176
207
|
else {
|
|
177
208
|
throw new Error(`Unhandled type ${type.type}`);
|
|
178
209
|
}
|
|
179
210
|
}
|
|
180
|
-
export function decodeBeast2ValueFor(type, typeCtx = []) {
|
|
211
|
+
export function decodeBeast2ValueFor(type, typeCtx = [], options) {
|
|
181
212
|
// Convert EastType to EastTypeValue if necessary
|
|
182
213
|
if (!isVariant(type)) {
|
|
183
214
|
type = toEastTypeValue(type);
|
|
@@ -239,13 +270,13 @@ export function decodeBeast2ValueFor(type, typeCtx = []) {
|
|
|
239
270
|
}
|
|
240
271
|
// Inline ref
|
|
241
272
|
const result = ref(undefined);
|
|
242
|
-
ctx.refs.set(
|
|
273
|
+
ctx.refs.set(newOffset, result);
|
|
243
274
|
const [value, nextOffset] = valueDecoder(buffer, newOffset, ctx);
|
|
244
275
|
result.value = value;
|
|
245
276
|
return [result, nextOffset];
|
|
246
277
|
};
|
|
247
278
|
typeCtx.push(ret);
|
|
248
|
-
valueDecoder = decodeBeast2ValueFor(type.value, typeCtx);
|
|
279
|
+
valueDecoder = decodeBeast2ValueFor(type.value, typeCtx, options);
|
|
249
280
|
typeCtx.pop();
|
|
250
281
|
return ret;
|
|
251
282
|
}
|
|
@@ -263,7 +294,7 @@ export function decodeBeast2ValueFor(type, typeCtx = []) {
|
|
|
263
294
|
}
|
|
264
295
|
// Inline array
|
|
265
296
|
const result = [];
|
|
266
|
-
ctx.refs.set(
|
|
297
|
+
ctx.refs.set(newOffset, result);
|
|
267
298
|
const [length, lengthOffset] = readVarint(buffer, newOffset);
|
|
268
299
|
let currentOffset = lengthOffset;
|
|
269
300
|
for (let i = 0; i < length; i++) {
|
|
@@ -274,12 +305,12 @@ export function decodeBeast2ValueFor(type, typeCtx = []) {
|
|
|
274
305
|
return [result, currentOffset];
|
|
275
306
|
};
|
|
276
307
|
typeCtx.push(ret);
|
|
277
|
-
valueDecoder = decodeBeast2ValueFor(type.value, typeCtx);
|
|
308
|
+
valueDecoder = decodeBeast2ValueFor(type.value, typeCtx, options);
|
|
278
309
|
typeCtx.pop();
|
|
279
310
|
return ret;
|
|
280
311
|
}
|
|
281
312
|
else if (type.type === "Set") {
|
|
282
|
-
const keyDecoder = decodeBeast2ValueFor(type.value, typeCtx);
|
|
313
|
+
const keyDecoder = decodeBeast2ValueFor(type.value, typeCtx, options);
|
|
283
314
|
return (buffer, offset, ctx = { refs: new Map() }) => {
|
|
284
315
|
const [refOrLength, newOffset] = readVarint(buffer, offset);
|
|
285
316
|
// Check if this is a backreference
|
|
@@ -292,7 +323,7 @@ export function decodeBeast2ValueFor(type, typeCtx = []) {
|
|
|
292
323
|
}
|
|
293
324
|
// Inline set
|
|
294
325
|
const result = new Set();
|
|
295
|
-
ctx.refs.set(
|
|
326
|
+
ctx.refs.set(newOffset, result);
|
|
296
327
|
const [length, lengthOffset] = readVarint(buffer, newOffset);
|
|
297
328
|
let currentOffset = lengthOffset;
|
|
298
329
|
for (let i = 0; i < length; i++) {
|
|
@@ -304,7 +335,7 @@ export function decodeBeast2ValueFor(type, typeCtx = []) {
|
|
|
304
335
|
};
|
|
305
336
|
}
|
|
306
337
|
else if (type.type === "Dict") {
|
|
307
|
-
const keyDecoder = decodeBeast2ValueFor(type.value.key, typeCtx);
|
|
338
|
+
const keyDecoder = decodeBeast2ValueFor(type.value.key, typeCtx, options);
|
|
308
339
|
let valueDecoder;
|
|
309
340
|
const ret = (buffer, offset, ctx = { refs: new Map() }) => {
|
|
310
341
|
const [refOrLength, newOffset] = readVarint(buffer, offset);
|
|
@@ -318,7 +349,7 @@ export function decodeBeast2ValueFor(type, typeCtx = []) {
|
|
|
318
349
|
}
|
|
319
350
|
// Inline dict
|
|
320
351
|
const result = new Map();
|
|
321
|
-
ctx.refs.set(
|
|
352
|
+
ctx.refs.set(newOffset, result);
|
|
322
353
|
const [length, lengthOffset] = readVarint(buffer, newOffset);
|
|
323
354
|
let currentOffset = lengthOffset;
|
|
324
355
|
for (let i = 0; i < length; i++) {
|
|
@@ -330,7 +361,7 @@ export function decodeBeast2ValueFor(type, typeCtx = []) {
|
|
|
330
361
|
return [result, currentOffset];
|
|
331
362
|
};
|
|
332
363
|
typeCtx.push(ret);
|
|
333
|
-
valueDecoder = decodeBeast2ValueFor(type.value.value, typeCtx);
|
|
364
|
+
valueDecoder = decodeBeast2ValueFor(type.value.value, typeCtx, options);
|
|
334
365
|
typeCtx.pop();
|
|
335
366
|
return ret;
|
|
336
367
|
}
|
|
@@ -349,7 +380,7 @@ export function decodeBeast2ValueFor(type, typeCtx = []) {
|
|
|
349
380
|
};
|
|
350
381
|
typeCtx.push(ret);
|
|
351
382
|
for (const { name, type: fieldType } of type.value) {
|
|
352
|
-
fieldDecoders.push([name, decodeBeast2ValueFor(fieldType, typeCtx)]);
|
|
383
|
+
fieldDecoders.push([name, decodeBeast2ValueFor(fieldType, typeCtx, options)]);
|
|
353
384
|
}
|
|
354
385
|
typeCtx.pop();
|
|
355
386
|
return ret;
|
|
@@ -370,7 +401,7 @@ export function decodeBeast2ValueFor(type, typeCtx = []) {
|
|
|
370
401
|
};
|
|
371
402
|
typeCtx.push(ret);
|
|
372
403
|
for (const { name, type: caseType } of type.value) {
|
|
373
|
-
caseDecoders.push([name, decodeBeast2ValueFor(caseType, typeCtx)]);
|
|
404
|
+
caseDecoders.push([name, decodeBeast2ValueFor(caseType, typeCtx, options)]);
|
|
374
405
|
}
|
|
375
406
|
typeCtx.pop();
|
|
376
407
|
return ret;
|
|
@@ -383,10 +414,54 @@ export function decodeBeast2ValueFor(type, typeCtx = []) {
|
|
|
383
414
|
return ret;
|
|
384
415
|
}
|
|
385
416
|
else if (type.type === "Function") {
|
|
386
|
-
|
|
417
|
+
// Convert platform to internal format
|
|
418
|
+
const platform = options?.platform ?? [];
|
|
419
|
+
const platformFns = Object.fromEntries(platform.map(fn => [fn.name, fn.fn]));
|
|
420
|
+
const asyncPlatformFns = new Set(platform.filter(fn => fn.type === 'async').map(fn => fn.name));
|
|
421
|
+
return (buffer, offset, ctx = { refs: new Map() }) => {
|
|
422
|
+
// Decode the IR
|
|
423
|
+
const [ir, newOffset] = irDecoder(buffer, offset, ctx);
|
|
424
|
+
// Validate it's a FunctionIR
|
|
425
|
+
if (ir.type !== "Function") {
|
|
426
|
+
throw new Error(`Expected Function IR, got ${ir.type} at offset ${offset}`);
|
|
427
|
+
}
|
|
428
|
+
// Analyze and compile the function (compile_internal attaches IR automatically)
|
|
429
|
+
let fn;
|
|
430
|
+
try {
|
|
431
|
+
const analyzedIR = analyzeIR(ir, platform, {});
|
|
432
|
+
const compiled = compile_internal(analyzedIR, {}, platformFns, asyncPlatformFns, platform, true, new Set());
|
|
433
|
+
fn = compiled({});
|
|
434
|
+
}
|
|
435
|
+
catch (e) {
|
|
436
|
+
throw new Error(`Failed to compile decoded function: ${e.message}`);
|
|
437
|
+
}
|
|
438
|
+
return [fn, newOffset];
|
|
439
|
+
};
|
|
387
440
|
}
|
|
388
441
|
else if (type.type === "AsyncFunction") {
|
|
389
|
-
|
|
442
|
+
// Convert platform to internal format
|
|
443
|
+
const platform = options?.platform ?? [];
|
|
444
|
+
const platformFns = Object.fromEntries(platform.map(fn => [fn.name, fn.fn]));
|
|
445
|
+
const asyncPlatformFns = new Set(platform.filter(fn => fn.type === 'async').map(fn => fn.name));
|
|
446
|
+
return (buffer, offset, ctx = { refs: new Map() }) => {
|
|
447
|
+
// Decode the IR
|
|
448
|
+
const [ir, newOffset] = irDecoder(buffer, offset, ctx);
|
|
449
|
+
// Validate it's an AsyncFunctionIR
|
|
450
|
+
if (ir.type !== "AsyncFunction") {
|
|
451
|
+
throw new Error(`Expected AsyncFunction IR, got ${ir.type} at offset ${offset}`);
|
|
452
|
+
}
|
|
453
|
+
// Analyze and compile the function (compile_internal attaches IR automatically)
|
|
454
|
+
let fn;
|
|
455
|
+
try {
|
|
456
|
+
const analyzedIR = analyzeIR(ir, platform, {});
|
|
457
|
+
const compiled = compile_internal(analyzedIR, {}, platformFns, asyncPlatformFns, platform, true, new Set());
|
|
458
|
+
fn = compiled({});
|
|
459
|
+
}
|
|
460
|
+
catch (e) {
|
|
461
|
+
throw new Error(`Failed to compile decoded async function: ${e.message}`);
|
|
462
|
+
}
|
|
463
|
+
return [fn, newOffset];
|
|
464
|
+
};
|
|
390
465
|
}
|
|
391
466
|
else {
|
|
392
467
|
throw new Error(`Unhandled type ${type.type}`);
|
|
@@ -416,6 +491,10 @@ export function encodeBeast2ValueFor(type) {
|
|
|
416
491
|
export const MAGIC_BYTES = new Uint8Array([0x89, 0x45, 0x61, 0x73, 0x74, 0x0D, 0x0A, 0x01]);
|
|
417
492
|
const typeEncoder = encodeBeast2ValueToBufferFor(EastTypeValueType);
|
|
418
493
|
const typeDecoder = decodeBeast2ValueFor(EastTypeValueType);
|
|
494
|
+
// IR encoder/decoder for function serialization
|
|
495
|
+
const IRTypeValue = toEastTypeValue(IRType);
|
|
496
|
+
const irEncoder = encodeBeast2ValueToBufferFor(IRTypeValue);
|
|
497
|
+
const irDecoder = decodeBeast2ValueFor(IRTypeValue);
|
|
419
498
|
export function encodeBeast2For(type) {
|
|
420
499
|
// Convert EastType to EastTypeValue if necessary
|
|
421
500
|
if (!isVariant(type)) {
|
|
@@ -459,12 +538,12 @@ export function decodeBeast2(data) {
|
|
|
459
538
|
}
|
|
460
539
|
return { type, value };
|
|
461
540
|
}
|
|
462
|
-
export function decodeBeast2For(type) {
|
|
541
|
+
export function decodeBeast2For(type, options) {
|
|
463
542
|
// Convert EastType to EastTypeValue if necessary
|
|
464
543
|
if (!isVariant(type)) {
|
|
465
544
|
type = toEastTypeValue(type);
|
|
466
545
|
}
|
|
467
|
-
const valueDecoder = decodeBeast2ValueFor(type);
|
|
546
|
+
const valueDecoder = decodeBeast2ValueFor(type, [], options);
|
|
468
547
|
return (data) => {
|
|
469
548
|
// Verify magic bytes
|
|
470
549
|
if (data.length < MAGIC_BYTES.length) {
|
|
@@ -492,4 +571,39 @@ export function decodeBeast2For(type) {
|
|
|
492
571
|
return value;
|
|
493
572
|
};
|
|
494
573
|
}
|
|
574
|
+
// =============================================================================
|
|
575
|
+
// Function serialization helpers
|
|
576
|
+
// =============================================================================
|
|
577
|
+
// Re-export for convenience
|
|
578
|
+
export { EAST_IR_SYMBOL } from "../compile.js";
|
|
579
|
+
import { EastIR, AsyncEastIR } from "../eastir.js";
|
|
580
|
+
/**
|
|
581
|
+
* Compile a deserialized FunctionIR to an executable function.
|
|
582
|
+
*
|
|
583
|
+
* @param ir - The FunctionIR returned from BEAST2 deserialization
|
|
584
|
+
* @param platform - Platform functions required for execution
|
|
585
|
+
* @returns Compiled JavaScript function
|
|
586
|
+
*
|
|
587
|
+
* @example
|
|
588
|
+
* ```ts
|
|
589
|
+
* const funcType = FunctionType([IntegerType], IntegerType);
|
|
590
|
+
* const data = encodeBeast2For(funcType)(myCompiledFunc);
|
|
591
|
+
* const ir = decodeBeast2For(funcType)(data);
|
|
592
|
+
* const recompiled = compileFunctionIR(ir, []);
|
|
593
|
+
* const result = recompiled(42n);
|
|
594
|
+
* ```
|
|
595
|
+
*/
|
|
596
|
+
export function compileFunctionIR(ir, platform) {
|
|
597
|
+
return new EastIR(ir).compile(platform);
|
|
598
|
+
}
|
|
599
|
+
/**
|
|
600
|
+
* Compile a deserialized AsyncFunctionIR to an executable async function.
|
|
601
|
+
*
|
|
602
|
+
* @param ir - The AsyncFunctionIR returned from BEAST2 deserialization
|
|
603
|
+
* @param platform - Platform functions required for execution
|
|
604
|
+
* @returns Compiled JavaScript async function
|
|
605
|
+
*/
|
|
606
|
+
export function compileAsyncFunctionIR(ir, platform) {
|
|
607
|
+
return new AsyncEastIR(ir).compile(platform);
|
|
608
|
+
}
|
|
495
609
|
//# sourceMappingURL=beast2.js.map
|