@elaraai/east 0.0.1-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (251) hide show
  1. package/LICENSE.md +682 -0
  2. package/README.md +276 -0
  3. package/dist/src/analyze.d.ts +95 -0
  4. package/dist/src/analyze.d.ts.map +1 -0
  5. package/dist/src/analyze.js +1110 -0
  6. package/dist/src/analyze.js.map +1 -0
  7. package/dist/src/ast.d.ts +263 -0
  8. package/dist/src/ast.d.ts.map +1 -0
  9. package/dist/src/ast.js +151 -0
  10. package/dist/src/ast.js.map +1 -0
  11. package/dist/src/ast_to_ir.d.ts +24 -0
  12. package/dist/src/ast_to_ir.d.ts.map +1 -0
  13. package/dist/src/ast_to_ir.js +834 -0
  14. package/dist/src/ast_to_ir.js.map +1 -0
  15. package/dist/src/builtins.d.ts +18 -0
  16. package/dist/src/builtins.d.ts.map +1 -0
  17. package/dist/src/builtins.js +1105 -0
  18. package/dist/src/builtins.js.map +1 -0
  19. package/dist/src/comparison.d.ts +28 -0
  20. package/dist/src/comparison.d.ts.map +1 -0
  21. package/dist/src/comparison.js +1017 -0
  22. package/dist/src/comparison.js.map +1 -0
  23. package/dist/src/compile.d.ts +22 -0
  24. package/dist/src/compile.d.ts.map +1 -0
  25. package/dist/src/compile.js +3260 -0
  26. package/dist/src/compile.js.map +1 -0
  27. package/dist/src/containers/ref.d.ts +106 -0
  28. package/dist/src/containers/ref.d.ts.map +1 -0
  29. package/dist/src/containers/ref.js +100 -0
  30. package/dist/src/containers/ref.js.map +1 -0
  31. package/dist/src/containers/sortedmap.d.ts +165 -0
  32. package/dist/src/containers/sortedmap.d.ts.map +1 -0
  33. package/dist/src/containers/sortedmap.js +237 -0
  34. package/dist/src/containers/sortedmap.js.map +1 -0
  35. package/dist/src/containers/sortedset.d.ts +185 -0
  36. package/dist/src/containers/sortedset.d.ts.map +1 -0
  37. package/dist/src/containers/sortedset.js +312 -0
  38. package/dist/src/containers/sortedset.js.map +1 -0
  39. package/dist/src/containers/variant.d.ts +131 -0
  40. package/dist/src/containers/variant.d.ts.map +1 -0
  41. package/dist/src/containers/variant.js +68 -0
  42. package/dist/src/containers/variant.js.map +1 -0
  43. package/dist/src/datetime_format/parse.d.ts +50 -0
  44. package/dist/src/datetime_format/parse.d.ts.map +1 -0
  45. package/dist/src/datetime_format/parse.js +908 -0
  46. package/dist/src/datetime_format/parse.js.map +1 -0
  47. package/dist/src/datetime_format/print.d.ts +35 -0
  48. package/dist/src/datetime_format/print.d.ts.map +1 -0
  49. package/dist/src/datetime_format/print.js +157 -0
  50. package/dist/src/datetime_format/print.js.map +1 -0
  51. package/dist/src/datetime_format/tokenize.d.ts +76 -0
  52. package/dist/src/datetime_format/tokenize.d.ts.map +1 -0
  53. package/dist/src/datetime_format/tokenize.js +271 -0
  54. package/dist/src/datetime_format/tokenize.js.map +1 -0
  55. package/dist/src/datetime_format/types.d.ts +99 -0
  56. package/dist/src/datetime_format/types.d.ts.map +1 -0
  57. package/dist/src/datetime_format/types.js +103 -0
  58. package/dist/src/datetime_format/types.js.map +1 -0
  59. package/dist/src/datetime_format/validate.d.ts +51 -0
  60. package/dist/src/datetime_format/validate.d.ts.map +1 -0
  61. package/dist/src/datetime_format/validate.js +208 -0
  62. package/dist/src/datetime_format/validate.js.map +1 -0
  63. package/dist/src/default.d.ts +21 -0
  64. package/dist/src/default.d.ts.map +1 -0
  65. package/dist/src/default.js +82 -0
  66. package/dist/src/default.js.map +1 -0
  67. package/dist/src/eastir.d.ts +33 -0
  68. package/dist/src/eastir.d.ts.map +1 -0
  69. package/dist/src/eastir.js +92 -0
  70. package/dist/src/eastir.js.map +1 -0
  71. package/dist/src/error.d.ts +13 -0
  72. package/dist/src/error.d.ts.map +1 -0
  73. package/dist/src/error.js +8 -0
  74. package/dist/src/error.js.map +1 -0
  75. package/dist/src/expr/array.d.ts +1711 -0
  76. package/dist/src/expr/array.d.ts.map +1 -0
  77. package/dist/src/expr/array.js +1805 -0
  78. package/dist/src/expr/array.js.map +1 -0
  79. package/dist/src/expr/ast.d.ts +17 -0
  80. package/dist/src/expr/ast.d.ts.map +1 -0
  81. package/dist/src/expr/ast.js +302 -0
  82. package/dist/src/expr/ast.js.map +1 -0
  83. package/dist/src/expr/blob.d.ts +141 -0
  84. package/dist/src/expr/blob.d.ts.map +1 -0
  85. package/dist/src/expr/blob.js +198 -0
  86. package/dist/src/expr/blob.js.map +1 -0
  87. package/dist/src/expr/block.d.ts +201 -0
  88. package/dist/src/expr/block.d.ts.map +1 -0
  89. package/dist/src/expr/block.js +1505 -0
  90. package/dist/src/expr/block.js.map +1 -0
  91. package/dist/src/expr/boolean.d.ts +207 -0
  92. package/dist/src/expr/boolean.d.ts.map +1 -0
  93. package/dist/src/expr/boolean.js +261 -0
  94. package/dist/src/expr/boolean.js.map +1 -0
  95. package/dist/src/expr/datetime.d.ts +544 -0
  96. package/dist/src/expr/datetime.d.ts.map +1 -0
  97. package/dist/src/expr/datetime.js +980 -0
  98. package/dist/src/expr/datetime.js.map +1 -0
  99. package/dist/src/expr/dict.d.ts +1242 -0
  100. package/dist/src/expr/dict.d.ts.map +1 -0
  101. package/dist/src/expr/dict.js +1492 -0
  102. package/dist/src/expr/dict.js.map +1 -0
  103. package/dist/src/expr/expr.d.ts +95 -0
  104. package/dist/src/expr/expr.d.ts.map +1 -0
  105. package/dist/src/expr/expr.js +171 -0
  106. package/dist/src/expr/expr.js.map +1 -0
  107. package/dist/src/expr/float.d.ts +357 -0
  108. package/dist/src/expr/float.d.ts.map +1 -0
  109. package/dist/src/expr/float.js +637 -0
  110. package/dist/src/expr/float.js.map +1 -0
  111. package/dist/src/expr/function.d.ts +46 -0
  112. package/dist/src/expr/function.d.ts.map +1 -0
  113. package/dist/src/expr/function.js +58 -0
  114. package/dist/src/expr/function.js.map +1 -0
  115. package/dist/src/expr/index.d.ts +450 -0
  116. package/dist/src/expr/index.d.ts.map +1 -0
  117. package/dist/src/expr/index.js +423 -0
  118. package/dist/src/expr/index.js.map +1 -0
  119. package/dist/src/expr/integer.d.ts +256 -0
  120. package/dist/src/expr/integer.d.ts.map +1 -0
  121. package/dist/src/expr/integer.js +311 -0
  122. package/dist/src/expr/integer.js.map +1 -0
  123. package/dist/src/expr/libs/array.d.ts +106 -0
  124. package/dist/src/expr/libs/array.d.ts.map +1 -0
  125. package/dist/src/expr/libs/array.js +140 -0
  126. package/dist/src/expr/libs/array.js.map +1 -0
  127. package/dist/src/expr/libs/blob.d.ts +42 -0
  128. package/dist/src/expr/libs/blob.d.ts.map +1 -0
  129. package/dist/src/expr/libs/blob.js +70 -0
  130. package/dist/src/expr/libs/blob.js.map +1 -0
  131. package/dist/src/expr/libs/datetime.d.ts +479 -0
  132. package/dist/src/expr/libs/datetime.d.ts.map +1 -0
  133. package/dist/src/expr/libs/datetime.js +624 -0
  134. package/dist/src/expr/libs/datetime.js.map +1 -0
  135. package/dist/src/expr/libs/dict.d.ts +66 -0
  136. package/dist/src/expr/libs/dict.d.ts.map +1 -0
  137. package/dist/src/expr/libs/dict.js +77 -0
  138. package/dist/src/expr/libs/dict.js.map +1 -0
  139. package/dist/src/expr/libs/float.d.ts +299 -0
  140. package/dist/src/expr/libs/float.d.ts.map +1 -0
  141. package/dist/src/expr/libs/float.js +564 -0
  142. package/dist/src/expr/libs/float.js.map +1 -0
  143. package/dist/src/expr/libs/integer.d.ts +228 -0
  144. package/dist/src/expr/libs/integer.d.ts.map +1 -0
  145. package/dist/src/expr/libs/integer.js +398 -0
  146. package/dist/src/expr/libs/integer.js.map +1 -0
  147. package/dist/src/expr/libs/set.d.ts +59 -0
  148. package/dist/src/expr/libs/set.d.ts.map +1 -0
  149. package/dist/src/expr/libs/set.js +69 -0
  150. package/dist/src/expr/libs/set.js.map +1 -0
  151. package/dist/src/expr/libs/string.d.ts +71 -0
  152. package/dist/src/expr/libs/string.d.ts.map +1 -0
  153. package/dist/src/expr/libs/string.js +75 -0
  154. package/dist/src/expr/libs/string.js.map +1 -0
  155. package/dist/src/expr/never.d.ts +15 -0
  156. package/dist/src/expr/never.d.ts.map +1 -0
  157. package/dist/src/expr/never.js +12 -0
  158. package/dist/src/expr/never.js.map +1 -0
  159. package/dist/src/expr/null.d.ts +15 -0
  160. package/dist/src/expr/null.d.ts.map +1 -0
  161. package/dist/src/expr/null.js +12 -0
  162. package/dist/src/expr/null.js.map +1 -0
  163. package/dist/src/expr/ref.d.ts +103 -0
  164. package/dist/src/expr/ref.d.ts.map +1 -0
  165. package/dist/src/expr/ref.js +131 -0
  166. package/dist/src/expr/ref.js.map +1 -0
  167. package/dist/src/expr/regex_validation.d.ts +25 -0
  168. package/dist/src/expr/regex_validation.d.ts.map +1 -0
  169. package/dist/src/expr/regex_validation.js +130 -0
  170. package/dist/src/expr/regex_validation.js.map +1 -0
  171. package/dist/src/expr/set.d.ts +1071 -0
  172. package/dist/src/expr/set.d.ts.map +1 -0
  173. package/dist/src/expr/set.js +1137 -0
  174. package/dist/src/expr/set.js.map +1 -0
  175. package/dist/src/expr/string.d.ts +414 -0
  176. package/dist/src/expr/string.d.ts.map +1 -0
  177. package/dist/src/expr/string.js +683 -0
  178. package/dist/src/expr/string.js.map +1 -0
  179. package/dist/src/expr/struct.d.ts +48 -0
  180. package/dist/src/expr/struct.d.ts.map +1 -0
  181. package/dist/src/expr/struct.js +65 -0
  182. package/dist/src/expr/struct.js.map +1 -0
  183. package/dist/src/expr/types.d.ts +68 -0
  184. package/dist/src/expr/types.d.ts.map +1 -0
  185. package/dist/src/expr/types.js +6 -0
  186. package/dist/src/expr/types.js.map +1 -0
  187. package/dist/src/expr/variant.d.ts +137 -0
  188. package/dist/src/expr/variant.d.ts.map +1 -0
  189. package/dist/src/expr/variant.js +105 -0
  190. package/dist/src/expr/variant.js.map +1 -0
  191. package/dist/src/fuzz.d.ts +80 -0
  192. package/dist/src/fuzz.d.ts.map +1 -0
  193. package/dist/src/fuzz.js +300 -0
  194. package/dist/src/fuzz.js.map +1 -0
  195. package/dist/src/index.d.ts +21 -0
  196. package/dist/src/index.d.ts.map +1 -0
  197. package/dist/src/index.js +21 -0
  198. package/dist/src/index.js.map +1 -0
  199. package/dist/src/internal.d.ts +36 -0
  200. package/dist/src/internal.d.ts.map +1 -0
  201. package/dist/src/internal.js +11 -0
  202. package/dist/src/internal.js.map +1 -0
  203. package/dist/src/ir.d.ts +1571 -0
  204. package/dist/src/ir.d.ts.map +1 -0
  205. package/dist/src/ir.js +56 -0
  206. package/dist/src/ir.js.map +1 -0
  207. package/dist/src/location.d.ts +48 -0
  208. package/dist/src/location.d.ts.map +1 -0
  209. package/dist/src/location.js +62 -0
  210. package/dist/src/location.js.map +1 -0
  211. package/dist/src/platform.d.ts +21 -0
  212. package/dist/src/platform.d.ts.map +1 -0
  213. package/dist/src/platform.js +8 -0
  214. package/dist/src/platform.js.map +1 -0
  215. package/dist/src/serialization/beast.d.ts +39 -0
  216. package/dist/src/serialization/beast.d.ts.map +1 -0
  217. package/dist/src/serialization/beast.js +555 -0
  218. package/dist/src/serialization/beast.js.map +1 -0
  219. package/dist/src/serialization/beast2-stream.d.ts +38 -0
  220. package/dist/src/serialization/beast2-stream.d.ts.map +1 -0
  221. package/dist/src/serialization/beast2-stream.js +665 -0
  222. package/dist/src/serialization/beast2-stream.js.map +1 -0
  223. package/dist/src/serialization/beast2.d.ts +41 -0
  224. package/dist/src/serialization/beast2.d.ts.map +1 -0
  225. package/dist/src/serialization/beast2.js +489 -0
  226. package/dist/src/serialization/beast2.js.map +1 -0
  227. package/dist/src/serialization/binary-utils.d.ts +151 -0
  228. package/dist/src/serialization/binary-utils.d.ts.map +1 -0
  229. package/dist/src/serialization/binary-utils.js +929 -0
  230. package/dist/src/serialization/binary-utils.js.map +1 -0
  231. package/dist/src/serialization/east.d.ts +84 -0
  232. package/dist/src/serialization/east.d.ts.map +1 -0
  233. package/dist/src/serialization/east.js +1802 -0
  234. package/dist/src/serialization/east.js.map +1 -0
  235. package/dist/src/serialization/index.d.ts +11 -0
  236. package/dist/src/serialization/index.d.ts.map +1 -0
  237. package/dist/src/serialization/index.js +12 -0
  238. package/dist/src/serialization/index.js.map +1 -0
  239. package/dist/src/serialization/json.d.ts +36 -0
  240. package/dist/src/serialization/json.d.ts.map +1 -0
  241. package/dist/src/serialization/json.js +849 -0
  242. package/dist/src/serialization/json.js.map +1 -0
  243. package/dist/src/type_of_type.d.ts +115 -0
  244. package/dist/src/type_of_type.d.ts.map +1 -0
  245. package/dist/src/type_of_type.js +362 -0
  246. package/dist/src/type_of_type.js.map +1 -0
  247. package/dist/src/types.d.ts +648 -0
  248. package/dist/src/types.d.ts.map +1 -0
  249. package/dist/src/types.js +1631 -0
  250. package/dist/src/types.js.map +1 -0
  251. package/package.json +87 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binary-utils.js","sourceRoot":"","sources":["../../../src/serialization/binary-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
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, type ValueTypeOf } from "../types.js";
6
+ import { type EastTypeValue } from "../type_of_type.js";
7
+ /**
8
+ * Type-level context for tracking which RecursiveType we're inside during printing.
9
+ * Uses late binding to break circular dependencies.
10
+ */
11
+ /** Stack of printers for recursive types */
12
+ type EastPrintTypeContext = ((value: any, ctx?: EastPrintValueContext) => string)[];
13
+ /**
14
+ * Value-level context for tracking mutable aliases during printing.
15
+ *
16
+ * - refs: Map from mutable container values (Array/Set/Dict) to their path component arrays (e.g., [".field", "[3]"])
17
+ * - currentPath: Stack of path components WITH punctuation (e.g., ".field", "[3]", "[(key)]")
18
+ */
19
+ type EastPrintValueContext = {
20
+ refs: Map<any, string[]>;
21
+ currentPath: string[];
22
+ };
23
+ export declare function encodeEastFor(type: EastTypeValue): (x: any) => Uint8Array;
24
+ export declare function encodeEastFor<T extends EastType>(type: T): (x: ValueTypeOf<T>) => Uint8Array;
25
+ export declare function decodeEastFor(type: EastTypeValue): (x: Uint8Array) => any;
26
+ export declare function decodeEastFor<T extends EastType>(type: T): (x: Uint8Array) => ValueTypeOf<T>;
27
+ export declare function printFor(type: EastTypeValue, typeCtx?: EastPrintTypeContext): (value: any, ctx?: EastPrintValueContext) => string;
28
+ export declare function printFor<T extends EastType>(type: T): (value: ValueTypeOf<T>, ctx?: EastPrintValueContext) => string;
29
+ export declare function parseFor(type: EastTypeValue, frozen?: boolean): (x: string) => ParseResult<any>;
30
+ export declare function parseFor<T extends EastType>(type: T, frozen?: boolean): (x: string) => ParseResult<ValueTypeOf<T>>;
31
+ type ParseResult<T> = {
32
+ success: true;
33
+ value: T;
34
+ position: number;
35
+ } | {
36
+ success: false;
37
+ error: string;
38
+ position: number;
39
+ };
40
+ /**
41
+ * Parse an East value and infer its type from the syntax.
42
+ *
43
+ * @param input - The string to parse
44
+ * @param frozen - Whether to freeze mutable containers (default: false)
45
+ * @returns A tuple of [inferred type, parsed value]
46
+ * @throws {Error} When parsing fails or type conflicts are detected
47
+ *
48
+ * @remarks
49
+ * Type inference rules:
50
+ * - Primitive types are distinguished by syntax (floats have `.` or `e`, integers don't)
51
+ * - Empty array `[]` has type `Array<Never>`
52
+ * - Empty set `{}` has type `Set<Never>`
53
+ * - Empty dict `{:}` has type `Dict<Never, Never>`
54
+ * - Non-empty collections widen element/key/value types via `TypeWiden`
55
+ * - Each variant literal `.case data` creates a single-case variant, multiple cases widen
56
+ * - Structs infer each field independently
57
+ * - Recursive types are never inferred (circular references cause errors)
58
+ * - Functions cannot be parsed
59
+ *
60
+ * @example
61
+ * ```typescript
62
+ * // Integer
63
+ * const [type1, value1] = parseInferred("42");
64
+ * // type1 = IntegerType, value1 = 42n
65
+ *
66
+ * // Float
67
+ * const [type2, value2] = parseInferred("3.14");
68
+ * // type2 = FloatType, value2 = 3.14
69
+ *
70
+ * // Array with widening
71
+ * const [type3, value3] = parseInferred("[1, 2, 3]");
72
+ * // type3 = ArrayType(IntegerType), value3 = [1n, 2n, 3n]
73
+ *
74
+ * // Variant with widening
75
+ * const [type4, value4] = parseInferred(".some 42");
76
+ * // type4 = VariantType({ some: IntegerType }), value4 = variant("some", 42n)
77
+ *
78
+ * // Type mismatch error
79
+ * parseInferred("[1, 2.5]"); // Error: cannot widen Integer to Float
80
+ * ```
81
+ */
82
+ export declare function parseInferred(input: string, frozen?: boolean): [EastType, any];
83
+ export {};
84
+ //# sourceMappingURL=east.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"east.d.ts","sourceRoot":"","sources":["../../../src/serialization/east.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,KAAK,QAAQ,EAAmB,KAAK,WAAW,EAA+K,MAAM,aAAa,CAAC;AAK5P,OAAO,EAAsC,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AA+G5F;;;GAGG;AACH,4CAA4C;AAC5C,KAAK,oBAAoB,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,qBAAqB,KAAK,MAAM,CAAC,EAAE,CAAC;AAKpF;;;;;GAKG;AACH,KAAK,qBAAqB,GAAG;IAC3B,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IACzB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAaF,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,CAAC,CAAC,EAAE,GAAG,KAAK,UAAU,CAAA;AAC1E,wBAAgB,aAAa,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,UAAU,CAAA;AAY7F,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,CAAC,CAAC,EAAE,UAAU,KAAK,GAAG,CAAA;AAC1E,wBAAgB,aAAa,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,CAAA;AAmB7F,wBAAgB,QAAQ,CACtB,IAAI,EAAE,aAAa,EACnB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,qBAAqB,KAAK,MAAM,CAAA;AACtD,wBAAgB,QAAQ,CAAC,CAAC,SAAS,QAAQ,EACzC,IAAI,EAAE,CAAC,GACN,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,qBAAqB,KAAK,MAAM,CAAA;AAwNjE,wBAAgB,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,WAAW,CAAC,GAAG,CAAC,CAAA;AAChG,wBAAgB,QAAQ,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;AAqCnH,KAAK,WAAW,CAAC,CAAC,IAAI;IACpB,OAAO,EAAE,IAAI,CAAC;IACd,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG;IACF,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AA69BF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,OAAe,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAiBrF"}