@elaraai/east 0.0.1-beta.8 → 1.0.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 (410) hide show
  1. package/LICENSE.md +15 -666
  2. package/README.md +113 -88
  3. package/dist/src/analyze.d.ts +3 -0
  4. package/dist/src/analyze.d.ts.map +1 -1
  5. package/dist/src/analyze.js +223 -111
  6. package/dist/src/analyze.js.map +1 -1
  7. package/dist/src/analyze.spec.d.ts +2 -0
  8. package/dist/src/analyze.spec.d.ts.map +1 -0
  9. package/dist/src/analyze.spec.js +445 -0
  10. package/dist/src/analyze.spec.js.map +1 -0
  11. package/dist/src/ast.d.ts +54 -35
  12. package/dist/src/ast.d.ts.map +1 -1
  13. package/dist/src/ast_to_ir.coerce_to.spec.d.ts +15 -0
  14. package/dist/src/ast_to_ir.coerce_to.spec.d.ts.map +1 -0
  15. package/dist/src/ast_to_ir.coerce_to.spec.js +420 -0
  16. package/dist/src/ast_to_ir.coerce_to.spec.js.map +1 -0
  17. package/dist/src/ast_to_ir.d.ts +18 -4
  18. package/dist/src/ast_to_ir.d.ts.map +1 -1
  19. package/dist/src/ast_to_ir.js +233 -178
  20. package/dist/src/ast_to_ir.js.map +1 -1
  21. package/dist/src/builtins.d.ts +1 -1
  22. package/dist/src/builtins.d.ts.map +1 -1
  23. package/dist/src/builtins.js +194 -2
  24. package/dist/src/builtins.js.map +1 -1
  25. package/dist/src/comparison.d.ts +2 -2
  26. package/dist/src/comparison.d.ts.map +1 -1
  27. package/dist/src/comparison.js +115 -40
  28. package/dist/src/comparison.js.map +1 -1
  29. package/dist/src/comparison.spec.d.ts +2 -0
  30. package/dist/src/comparison.spec.d.ts.map +1 -0
  31. package/dist/src/comparison.spec.js +1200 -0
  32. package/dist/src/comparison.spec.js.map +1 -0
  33. package/dist/src/compile.d.ts +31 -9
  34. package/dist/src/compile.d.ts.map +1 -1
  35. package/dist/src/compile.js +1048 -548
  36. package/dist/src/compile.js.map +1 -1
  37. package/dist/src/containers/matrix.d.ts +15 -0
  38. package/dist/src/containers/matrix.d.ts.map +1 -0
  39. package/dist/src/containers/matrix.js +15 -0
  40. package/dist/src/containers/matrix.js.map +1 -0
  41. package/dist/src/containers/ref.d.ts.map +1 -1
  42. package/dist/src/containers/ref.js +1 -1
  43. package/dist/src/containers/ref.js.map +1 -1
  44. package/dist/src/containers/sortedmap.spec.d.ts +2 -0
  45. package/dist/src/containers/sortedmap.spec.d.ts.map +1 -0
  46. package/dist/src/containers/sortedmap.spec.js +180 -0
  47. package/dist/src/containers/sortedmap.spec.js.map +1 -0
  48. package/dist/src/containers/sortedset.spec.d.ts +2 -0
  49. package/dist/src/containers/sortedset.spec.d.ts.map +1 -0
  50. package/dist/src/containers/sortedset.spec.js +228 -0
  51. package/dist/src/containers/sortedset.spec.js.map +1 -0
  52. package/dist/src/containers/variant.d.ts.map +1 -1
  53. package/dist/src/containers/variant.js +1 -1
  54. package/dist/src/containers/variant.js.map +1 -1
  55. package/dist/src/containers/variant.spec.d.ts +2 -0
  56. package/dist/src/containers/variant.spec.d.ts.map +1 -0
  57. package/dist/src/containers/variant.spec.js +217 -0
  58. package/dist/src/containers/variant.spec.js.map +1 -0
  59. package/dist/src/datetime_format/parse.spec.d.ts +6 -0
  60. package/dist/src/datetime_format/parse.spec.d.ts.map +1 -0
  61. package/dist/src/datetime_format/parse.spec.js +379 -0
  62. package/dist/src/datetime_format/parse.spec.js.map +1 -0
  63. package/dist/src/datetime_format/print.spec.d.ts +6 -0
  64. package/dist/src/datetime_format/print.spec.d.ts.map +1 -0
  65. package/dist/src/datetime_format/print.spec.js +257 -0
  66. package/dist/src/datetime_format/print.spec.js.map +1 -0
  67. package/dist/src/datetime_format/tokenize.spec.d.ts +2 -0
  68. package/dist/src/datetime_format/tokenize.spec.d.ts.map +1 -0
  69. package/dist/src/datetime_format/tokenize.spec.js +508 -0
  70. package/dist/src/datetime_format/tokenize.spec.js.map +1 -0
  71. package/dist/src/datetime_format/types.d.ts +23 -23
  72. package/dist/src/default.d.ts.map +1 -1
  73. package/dist/src/default.js +33 -0
  74. package/dist/src/default.js.map +1 -1
  75. package/dist/src/default.spec.d.ts +2 -0
  76. package/dist/src/default.spec.d.ts.map +1 -0
  77. package/dist/src/default.spec.js +178 -0
  78. package/dist/src/default.spec.js.map +1 -0
  79. package/dist/src/eastir.d.ts +7 -0
  80. package/dist/src/eastir.d.ts.map +1 -1
  81. package/dist/src/eastir.js +55 -7
  82. package/dist/src/eastir.js.map +1 -1
  83. package/dist/src/error.d.ts +14 -4
  84. package/dist/src/error.d.ts.map +1 -1
  85. package/dist/src/error.js +28 -3
  86. package/dist/src/error.js.map +1 -1
  87. package/dist/src/example.d.ts +87 -0
  88. package/dist/src/example.d.ts.map +1 -0
  89. package/dist/src/example.js +18 -0
  90. package/dist/src/example.js.map +1 -0
  91. package/dist/src/expr/array.d.ts +43 -1
  92. package/dist/src/expr/array.d.ts.map +1 -1
  93. package/dist/src/expr/array.js +103 -53
  94. package/dist/src/expr/array.js.map +1 -1
  95. package/dist/src/expr/ast.d.ts +1 -1
  96. package/dist/src/expr/ast.d.ts.map +1 -1
  97. package/dist/src/expr/ast.js +112 -54
  98. package/dist/src/expr/ast.js.map +1 -1
  99. package/dist/src/expr/asyncfunction.d.ts.map +1 -1
  100. package/dist/src/expr/asyncfunction.js +6 -4
  101. package/dist/src/expr/asyncfunction.js.map +1 -1
  102. package/dist/src/expr/blob.d.ts +48 -0
  103. package/dist/src/expr/blob.d.ts.map +1 -1
  104. package/dist/src/expr/blob.js +63 -8
  105. package/dist/src/expr/blob.js.map +1 -1
  106. package/dist/src/expr/block.d.ts +213 -12
  107. package/dist/src/expr/block.d.ts.map +1 -1
  108. package/dist/src/expr/block.js +796 -293
  109. package/dist/src/expr/block.js.map +1 -1
  110. package/dist/src/expr/boolean.d.ts +44 -0
  111. package/dist/src/expr/boolean.d.ts.map +1 -1
  112. package/dist/src/expr/boolean.js +58 -6
  113. package/dist/src/expr/boolean.js.map +1 -1
  114. package/dist/src/expr/datetime.d.ts +135 -0
  115. package/dist/src/expr/datetime.d.ts.map +1 -1
  116. package/dist/src/expr/datetime.js +184 -34
  117. package/dist/src/expr/datetime.js.map +1 -1
  118. package/dist/src/expr/dict.d.ts +47 -2
  119. package/dist/src/expr/dict.d.ts.map +1 -1
  120. package/dist/src/expr/dict.js +122 -61
  121. package/dist/src/expr/dict.js.map +1 -1
  122. package/dist/src/expr/expr.d.ts +3 -1
  123. package/dist/src/expr/expr.d.ts.map +1 -1
  124. package/dist/src/expr/expr.js +4 -3
  125. package/dist/src/expr/expr.js.map +1 -1
  126. package/dist/src/expr/float.d.ts +153 -0
  127. package/dist/src/expr/float.d.ts.map +1 -1
  128. package/dist/src/expr/float.js +191 -17
  129. package/dist/src/expr/float.js.map +1 -1
  130. package/dist/src/expr/function.d.ts +7 -2
  131. package/dist/src/expr/function.d.ts.map +1 -1
  132. package/dist/src/expr/function.js +6 -4
  133. package/dist/src/expr/function.js.map +1 -1
  134. package/dist/src/expr/index.d.ts +186 -2
  135. package/dist/src/expr/index.d.ts.map +1 -1
  136. package/dist/src/expr/index.js +183 -2
  137. package/dist/src/expr/index.js.map +1 -1
  138. package/dist/src/expr/integer.d.ts +180 -0
  139. package/dist/src/expr/integer.d.ts.map +1 -1
  140. package/dist/src/expr/integer.js +189 -18
  141. package/dist/src/expr/integer.js.map +1 -1
  142. package/dist/src/expr/libs/array.js +3 -3
  143. package/dist/src/expr/libs/array.js.map +1 -1
  144. package/dist/src/expr/libs/blob.js +3 -3
  145. package/dist/src/expr/libs/blob.js.map +1 -1
  146. package/dist/src/expr/libs/dict.js +1 -1
  147. package/dist/src/expr/libs/dict.js.map +1 -1
  148. package/dist/src/expr/libs/matrix.d.ts +17 -0
  149. package/dist/src/expr/libs/matrix.d.ts.map +1 -0
  150. package/dist/src/expr/libs/matrix.js +60 -0
  151. package/dist/src/expr/libs/matrix.js.map +1 -0
  152. package/dist/src/expr/libs/set.js +1 -1
  153. package/dist/src/expr/libs/set.js.map +1 -1
  154. package/dist/src/expr/libs/string.d.ts.map +1 -1
  155. package/dist/src/expr/libs/string.js +2 -1
  156. package/dist/src/expr/libs/string.js.map +1 -1
  157. package/dist/src/expr/libs/vector.d.ts +16 -0
  158. package/dist/src/expr/libs/vector.d.ts.map +1 -0
  159. package/dist/src/expr/libs/vector.js +44 -0
  160. package/dist/src/expr/libs/vector.js.map +1 -0
  161. package/dist/src/expr/matrix.d.ts +109 -0
  162. package/dist/src/expr/matrix.d.ts.map +1 -0
  163. package/dist/src/expr/matrix.js +224 -0
  164. package/dist/src/expr/matrix.js.map +1 -0
  165. package/dist/src/expr/recursive.d.ts +83 -0
  166. package/dist/src/expr/recursive.d.ts.map +1 -0
  167. package/dist/src/expr/recursive.js +99 -0
  168. package/dist/src/expr/recursive.js.map +1 -0
  169. package/dist/src/expr/ref.js +5 -5
  170. package/dist/src/expr/ref.js.map +1 -1
  171. package/dist/src/expr/set.d.ts +44 -2
  172. package/dist/src/expr/set.d.ts.map +1 -1
  173. package/dist/src/expr/set.js +102 -52
  174. package/dist/src/expr/set.js.map +1 -1
  175. package/dist/src/expr/string.d.ts +134 -0
  176. package/dist/src/expr/string.d.ts.map +1 -1
  177. package/dist/src/expr/string.js +173 -23
  178. package/dist/src/expr/string.js.map +1 -1
  179. package/dist/src/expr/struct.d.ts +1 -1
  180. package/dist/src/expr/struct.d.ts.map +1 -1
  181. package/dist/src/expr/struct.js +2 -2
  182. package/dist/src/expr/struct.js.map +1 -1
  183. package/dist/src/expr/types.d.ts +12 -9
  184. package/dist/src/expr/types.d.ts.map +1 -1
  185. package/dist/src/expr/variant.d.ts +108 -11
  186. package/dist/src/expr/variant.d.ts.map +1 -1
  187. package/dist/src/expr/variant.js +76 -38
  188. package/dist/src/expr/variant.js.map +1 -1
  189. package/dist/src/expr/vector.d.ts +102 -0
  190. package/dist/src/expr/vector.d.ts.map +1 -0
  191. package/dist/src/expr/vector.js +202 -0
  192. package/dist/src/expr/vector.js.map +1 -0
  193. package/dist/src/fuzz.d.ts +36 -2
  194. package/dist/src/fuzz.d.ts.map +1 -1
  195. package/dist/src/fuzz.js +409 -77
  196. package/dist/src/fuzz.js.map +1 -1
  197. package/dist/src/index.d.ts +4 -0
  198. package/dist/src/index.d.ts.map +1 -1
  199. package/dist/src/index.js +4 -0
  200. package/dist/src/index.js.map +1 -1
  201. package/dist/src/internal.d.ts +12 -2
  202. package/dist/src/internal.d.ts.map +1 -1
  203. package/dist/src/internal.js +13 -2
  204. package/dist/src/internal.js.map +1 -1
  205. package/dist/src/ir.d.ts +1754 -1484
  206. package/dist/src/ir.d.ts.map +1 -1
  207. package/dist/src/ir.js +51 -34
  208. package/dist/src/ir.js.map +1 -1
  209. package/dist/src/ir.spec.d.ts +2 -0
  210. package/dist/src/ir.spec.d.ts.map +1 -0
  211. package/dist/src/ir.spec.js +35 -0
  212. package/dist/src/ir.spec.js.map +1 -0
  213. package/dist/src/location.d.ts +56 -17
  214. package/dist/src/location.d.ts.map +1 -1
  215. package/dist/src/location.js +226 -29
  216. package/dist/src/location.js.map +1 -1
  217. package/dist/src/location.spec.d.ts +2 -0
  218. package/dist/src/location.spec.d.ts.map +1 -0
  219. package/dist/src/location.spec.js +102 -0
  220. package/dist/src/location.spec.js.map +1 -0
  221. package/dist/src/patch/apply.d.ts +15 -0
  222. package/dist/src/patch/apply.d.ts.map +1 -0
  223. package/dist/src/patch/apply.js +352 -0
  224. package/dist/src/patch/apply.js.map +1 -0
  225. package/dist/src/patch/compose.d.ts +15 -0
  226. package/dist/src/patch/compose.d.ts.map +1 -0
  227. package/dist/src/patch/compose.js +448 -0
  228. package/dist/src/patch/compose.js.map +1 -0
  229. package/dist/src/patch/diff.d.ts +15 -0
  230. package/dist/src/patch/diff.d.ts.map +1 -0
  231. package/dist/src/patch/diff.js +347 -0
  232. package/dist/src/patch/diff.js.map +1 -0
  233. package/dist/src/patch/fuzz.d.ts +73 -0
  234. package/dist/src/patch/fuzz.d.ts.map +1 -0
  235. package/dist/src/patch/fuzz.js +159 -0
  236. package/dist/src/patch/fuzz.js.map +1 -0
  237. package/dist/src/patch/index.d.ts +32 -0
  238. package/dist/src/patch/index.d.ts.map +1 -0
  239. package/dist/src/patch/index.js +48 -0
  240. package/dist/src/patch/index.js.map +1 -0
  241. package/dist/src/patch/invert.d.ts +15 -0
  242. package/dist/src/patch/invert.d.ts.map +1 -0
  243. package/dist/src/patch/invert.js +284 -0
  244. package/dist/src/patch/invert.js.map +1 -0
  245. package/dist/src/patch/merge.d.ts +56 -0
  246. package/dist/src/patch/merge.d.ts.map +1 -0
  247. package/dist/src/patch/merge.js +586 -0
  248. package/dist/src/patch/merge.js.map +1 -0
  249. package/dist/src/patch/merge.spec.d.ts +2 -0
  250. package/dist/src/patch/merge.spec.d.ts.map +1 -0
  251. package/dist/src/patch/merge.spec.js +1139 -0
  252. package/dist/src/patch/merge.spec.js.map +1 -0
  253. package/dist/src/patch/patch.spec.d.ts +2 -0
  254. package/dist/src/patch/patch.spec.d.ts.map +1 -0
  255. package/dist/src/patch/patch.spec.js +452 -0
  256. package/dist/src/patch/patch.spec.js.map +1 -0
  257. package/dist/src/patch/path.d.ts +115 -0
  258. package/dist/src/patch/path.d.ts.map +1 -0
  259. package/dist/src/patch/path.js +192 -0
  260. package/dist/src/patch/path.js.map +1 -0
  261. package/dist/src/patch/path.spec.d.ts +6 -0
  262. package/dist/src/patch/path.spec.d.ts.map +1 -0
  263. package/dist/src/patch/path.spec.js +322 -0
  264. package/dist/src/patch/path.spec.js.map +1 -0
  265. package/dist/src/patch/prune.d.ts +77 -0
  266. package/dist/src/patch/prune.d.ts.map +1 -0
  267. package/dist/src/patch/prune.js +115 -0
  268. package/dist/src/patch/prune.js.map +1 -0
  269. package/dist/src/patch/prune.spec.d.ts +6 -0
  270. package/dist/src/patch/prune.spec.d.ts.map +1 -0
  271. package/dist/src/patch/prune.spec.js +473 -0
  272. package/dist/src/patch/prune.spec.js.map +1 -0
  273. package/dist/src/patch/type_of_patch.d.ts +25 -0
  274. package/dist/src/patch/type_of_patch.d.ts.map +1 -0
  275. package/dist/src/patch/type_of_patch.js +144 -0
  276. package/dist/src/patch/type_of_patch.js.map +1 -0
  277. package/dist/src/patch/types.d.ts +220 -0
  278. package/dist/src/patch/types.d.ts.map +1 -0
  279. package/dist/src/patch/types.js +62 -0
  280. package/dist/src/patch/types.js.map +1 -0
  281. package/dist/src/patch/validate.d.ts +44 -0
  282. package/dist/src/patch/validate.d.ts.map +1 -0
  283. package/dist/src/patch/validate.js +190 -0
  284. package/dist/src/patch/validate.js.map +1 -0
  285. package/dist/src/patch/validate.spec.d.ts +6 -0
  286. package/dist/src/patch/validate.spec.d.ts.map +1 -0
  287. package/dist/src/patch/validate.spec.js +225 -0
  288. package/dist/src/patch/validate.spec.js.map +1 -0
  289. package/dist/src/patch/walk.d.ts +121 -0
  290. package/dist/src/patch/walk.d.ts.map +1 -0
  291. package/dist/src/patch/walk.js +385 -0
  292. package/dist/src/patch/walk.js.map +1 -0
  293. package/dist/src/patch/walk.spec.d.ts +6 -0
  294. package/dist/src/patch/walk.spec.d.ts.map +1 -0
  295. package/dist/src/patch/walk.spec.js +621 -0
  296. package/dist/src/patch/walk.spec.js.map +1 -0
  297. package/dist/src/platform.d.ts +6 -0
  298. package/dist/src/platform.d.ts.map +1 -1
  299. package/dist/src/platform.spec.d.ts +2 -0
  300. package/dist/src/platform.spec.d.ts.map +1 -0
  301. package/dist/src/platform.spec.js +330 -0
  302. package/dist/src/platform.spec.js.map +1 -0
  303. package/dist/src/serialization/beast.d.ts.map +1 -1
  304. package/dist/src/serialization/beast.js +12 -0
  305. package/dist/src/serialization/beast.js.map +1 -1
  306. package/dist/src/serialization/beast.spec.d.ts +6 -0
  307. package/dist/src/serialization/beast.spec.d.ts.map +1 -0
  308. package/dist/src/serialization/beast.spec.js +406 -0
  309. package/dist/src/serialization/beast.spec.js.map +1 -0
  310. package/dist/src/serialization/beast2/index.d.ts +50 -0
  311. package/dist/src/serialization/beast2/index.d.ts.map +1 -0
  312. package/dist/src/serialization/beast2/index.js +756 -0
  313. package/dist/src/serialization/beast2/index.js.map +1 -0
  314. package/dist/src/serialization/beast2/index.spec.d.ts +6 -0
  315. package/dist/src/serialization/beast2/index.spec.d.ts.map +1 -0
  316. package/dist/src/serialization/beast2/index.spec.js +528 -0
  317. package/dist/src/serialization/beast2/index.spec.js.map +1 -0
  318. package/dist/src/serialization/beast2/sourcemap-table.d.ts +29 -0
  319. package/dist/src/serialization/beast2/sourcemap-table.d.ts.map +1 -0
  320. package/dist/src/serialization/beast2/sourcemap-table.js +82 -0
  321. package/dist/src/serialization/beast2/sourcemap-table.js.map +1 -0
  322. package/dist/src/serialization/beast2/string-table.d.ts +16 -0
  323. package/dist/src/serialization/beast2/string-table.d.ts.map +1 -0
  324. package/dist/src/serialization/beast2/string-table.js +38 -0
  325. package/dist/src/serialization/beast2/string-table.js.map +1 -0
  326. package/dist/src/serialization/beast2/type-table.d.ts +86 -0
  327. package/dist/src/serialization/beast2/type-table.d.ts.map +1 -0
  328. package/dist/src/serialization/beast2/type-table.js +618 -0
  329. package/dist/src/serialization/beast2/type-table.js.map +1 -0
  330. package/dist/src/serialization/beast2/value-table.d.ts +40 -0
  331. package/dist/src/serialization/beast2/value-table.d.ts.map +1 -0
  332. package/dist/src/serialization/beast2/value-table.js +157 -0
  333. package/dist/src/serialization/beast2/value-table.js.map +1 -0
  334. package/dist/src/serialization/binary-utils.d.ts +33 -0
  335. package/dist/src/serialization/binary-utils.d.ts.map +1 -1
  336. package/dist/src/serialization/binary-utils.js +157 -0
  337. package/dist/src/serialization/binary-utils.js.map +1 -1
  338. package/dist/src/serialization/csv.d.ts +17 -17
  339. package/dist/src/serialization/csv.d.ts.map +1 -1
  340. package/dist/src/serialization/csv.js +10 -8
  341. package/dist/src/serialization/csv.js.map +1 -1
  342. package/dist/src/serialization/csv.spec.d.ts +2 -0
  343. package/dist/src/serialization/csv.spec.d.ts.map +1 -0
  344. package/dist/src/serialization/csv.spec.js +556 -0
  345. package/dist/src/serialization/csv.spec.js.map +1 -0
  346. package/dist/src/serialization/east-inferred.spec.d.ts +2 -0
  347. package/dist/src/serialization/east-inferred.spec.d.ts.map +1 -0
  348. package/dist/src/serialization/east-inferred.spec.js +322 -0
  349. package/dist/src/serialization/east-inferred.spec.js.map +1 -0
  350. package/dist/src/serialization/east.d.ts +1 -1
  351. package/dist/src/serialization/east.d.ts.map +1 -1
  352. package/dist/src/serialization/east.js +178 -26
  353. package/dist/src/serialization/east.js.map +1 -1
  354. package/dist/src/serialization/east.spec.d.ts +2 -0
  355. package/dist/src/serialization/east.spec.d.ts.map +1 -0
  356. package/dist/src/serialization/east.spec.js +1548 -0
  357. package/dist/src/serialization/east.spec.js.map +1 -0
  358. package/dist/src/serialization/index.d.ts +1 -2
  359. package/dist/src/serialization/index.d.ts.map +1 -1
  360. package/dist/src/serialization/index.js +1 -2
  361. package/dist/src/serialization/index.js.map +1 -1
  362. package/dist/src/serialization/json.d.ts +1 -1
  363. package/dist/src/serialization/json.d.ts.map +1 -1
  364. package/dist/src/serialization/json.js +123 -24
  365. package/dist/src/serialization/json.js.map +1 -1
  366. package/dist/src/serialization/json.spec.d.ts +2 -0
  367. package/dist/src/serialization/json.spec.d.ts.map +1 -0
  368. package/dist/src/serialization/json.spec.js +1297 -0
  369. package/dist/src/serialization/json.spec.js.map +1 -0
  370. package/dist/src/type_of_type.d.ts +72 -35
  371. package/dist/src/type_of_type.d.ts.map +1 -1
  372. package/dist/src/type_of_type.is_data.spec.d.ts +6 -0
  373. package/dist/src/type_of_type.is_data.spec.d.ts.map +1 -0
  374. package/dist/src/type_of_type.is_data.spec.js +221 -0
  375. package/dist/src/type_of_type.is_data.spec.js.map +1 -0
  376. package/dist/src/type_of_type.js +355 -80
  377. package/dist/src/type_of_type.js.map +1 -1
  378. package/dist/src/type_of_type.to_etv.spec.d.ts +6 -0
  379. package/dist/src/type_of_type.to_etv.spec.d.ts.map +1 -0
  380. package/dist/src/type_of_type.to_etv.spec.js +263 -0
  381. package/dist/src/type_of_type.to_etv.spec.js.map +1 -0
  382. package/dist/src/types.d.ts +82 -12
  383. package/dist/src/types.d.ts.map +1 -1
  384. package/dist/src/types.error.spec.d.ts +2 -0
  385. package/dist/src/types.error.spec.d.ts.map +1 -0
  386. package/dist/src/types.error.spec.js +665 -0
  387. package/dist/src/types.error.spec.js.map +1 -0
  388. package/dist/src/types.js +663 -156
  389. package/dist/src/types.js.map +1 -1
  390. package/dist/src/types.spec.d.ts +2 -0
  391. package/dist/src/types.spec.d.ts.map +1 -0
  392. package/dist/src/types.spec.js +946 -0
  393. package/dist/src/types.spec.js.map +1 -0
  394. package/dist/src/walker.d.ts +65 -0
  395. package/dist/src/walker.d.ts.map +1 -0
  396. package/dist/src/walker.js +165 -0
  397. package/dist/src/walker.js.map +1 -0
  398. package/dist/src/walker.spec.d.ts +6 -0
  399. package/dist/src/walker.spec.d.ts.map +1 -0
  400. package/dist/src/walker.spec.js +109 -0
  401. package/dist/src/walker.spec.js.map +1 -0
  402. package/package.json +16 -38
  403. package/dist/src/serialization/beast2-stream.d.ts +0 -38
  404. package/dist/src/serialization/beast2-stream.d.ts.map +0 -1
  405. package/dist/src/serialization/beast2-stream.js +0 -670
  406. package/dist/src/serialization/beast2-stream.js.map +0 -1
  407. package/dist/src/serialization/beast2.d.ts +0 -41
  408. package/dist/src/serialization/beast2.d.ts.map +0 -1
  409. package/dist/src/serialization/beast2.js +0 -495
  410. package/dist/src/serialization/beast2.js.map +0 -1
@@ -0,0 +1,448 @@
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
+ * composeFor - Combine two sequential patches.
7
+ *
8
+ * @module
9
+ */
10
+ import { toEastTypeValue } from "../type_of_type.js";
11
+ import { isVariant, variant } from "../containers/variant.js";
12
+ import { compareFor } from "../comparison.js";
13
+ import { printFor } from "../serialization/east.js";
14
+ import { SortedMap } from "../containers/sortedmap.js";
15
+ import { ConflictError } from "./types.js";
16
+ import { applyFor } from "./apply.js";
17
+ import { invertFor } from "./invert.js";
18
+ export function composeFor(type, ctx = { compose: [], apply: [], invert: [], types: [], equal: new Map(), print: new Map() }) {
19
+ // Convert to EastTypeValue and use a properly typed variable
20
+ const t = isVariant(type) ? type : toEastTypeValue(type);
21
+ if (t.type === "Never") {
22
+ return (_first, _second) => {
23
+ throw new Error("Cannot compose patches for type Never");
24
+ };
25
+ }
26
+ else if (t.type === "Null" ||
27
+ t.type === "Boolean" ||
28
+ t.type === "Integer" ||
29
+ t.type === "Float" ||
30
+ t.type === "String" ||
31
+ t.type === "DateTime" ||
32
+ t.type === "Blob" ||
33
+ t.type === "Vector" ||
34
+ t.type === "Matrix") {
35
+ return (first, second) => {
36
+ if (first.type === "unchanged") {
37
+ return second;
38
+ }
39
+ else if (second.type === "unchanged") {
40
+ return first;
41
+ }
42
+ else if (first.type === "replace" && second.type === "replace") {
43
+ return variant("replace", { before: first.value.before, after: second.value.after });
44
+ }
45
+ else {
46
+ throw new Error("Invalid patch composition for primitive");
47
+ }
48
+ };
49
+ }
50
+ else if (t.type === "Array") {
51
+ let applyRet;
52
+ let invertRet;
53
+ const composeRet = (first, second) => {
54
+ if (first.type === "unchanged") {
55
+ return second;
56
+ }
57
+ else if (second.type === "unchanged") {
58
+ return first;
59
+ }
60
+ else if (first.type === "replace" && second.type === "replace") {
61
+ return variant("replace", { before: first.value.before, after: second.value.after });
62
+ }
63
+ else if (first.type === "replace" && second.type === "patch") {
64
+ const afterSecond = applyRet(first.value.after, second);
65
+ return variant("replace", { before: first.value.before, after: afterSecond });
66
+ }
67
+ else if (first.type === "patch" && second.type === "replace") {
68
+ const invertedFirst = invertRet(first);
69
+ const originalBefore = applyRet(second.value.before, invertedFirst);
70
+ return variant("replace", { before: originalBefore, after: second.value.after });
71
+ }
72
+ else {
73
+ // patch + patch: concatenate operations
74
+ const p1Ops = first.value;
75
+ const p2Ops = second.value;
76
+ const result = [...p1Ops, ...p2Ops];
77
+ if (result.length === 0) {
78
+ return variant("unchanged", null);
79
+ }
80
+ return variant("patch", result);
81
+ }
82
+ };
83
+ // Push compose context first
84
+ ctx.compose.push(composeRet);
85
+ ctx.types.push(t);
86
+ // Build apply/invert handlers using applyFor/invertFor
87
+ applyRet = applyFor(t, { apply: ctx.apply, types: ctx.types, equal: ctx.equal, print: ctx.print });
88
+ invertRet = invertFor(t, { invert: ctx.invert, types: ctx.types, equal: ctx.equal });
89
+ // Push them so .Recursive lookups work during element compose recursion
90
+ ctx.apply.push(applyRet);
91
+ ctx.invert.push(invertRet);
92
+ // Recurse into element type for compose
93
+ composeFor(t.value, ctx);
94
+ ctx.compose.pop();
95
+ ctx.apply.pop();
96
+ ctx.invert.pop();
97
+ ctx.types.pop();
98
+ return composeRet;
99
+ }
100
+ else if (t.type === "Set") {
101
+ const keyPrint = printFor(t.value);
102
+ const keyCompare = compareFor(t.value);
103
+ // Pass full context so recursive type references can be resolved
104
+ const apply = applyFor(t, { apply: ctx.apply, types: ctx.types, equal: ctx.equal, print: ctx.print });
105
+ const invert = invertFor(t, { invert: ctx.invert, types: ctx.types, equal: ctx.equal });
106
+ return (first, second) => {
107
+ if (first.type === "unchanged") {
108
+ return second;
109
+ }
110
+ else if (second.type === "unchanged") {
111
+ return first;
112
+ }
113
+ else if (first.type === "replace" && second.type === "replace") {
114
+ return variant("replace", { before: first.value.before, after: second.value.after });
115
+ }
116
+ else if (first.type === "patch" && second.type === "patch") {
117
+ const result = new SortedMap(undefined, keyCompare);
118
+ for (const [key, op] of first.value) {
119
+ result.set(key, op);
120
+ }
121
+ for (const [key, op] of second.value) {
122
+ if (result.has(key)) {
123
+ const firstOp = result.get(key);
124
+ if (firstOp.type === "insert" && op.type === "delete") {
125
+ result.delete(key);
126
+ }
127
+ else if (firstOp.type === "delete" && op.type === "insert") {
128
+ result.delete(key);
129
+ }
130
+ else {
131
+ throw new ConflictError(`Cannot compose patches - conflicting operations on key ${keyPrint(key)}`);
132
+ }
133
+ }
134
+ else {
135
+ result.set(key, op);
136
+ }
137
+ }
138
+ if (result.size === 0) {
139
+ return variant("unchanged", null);
140
+ }
141
+ return variant("patch", result);
142
+ }
143
+ else {
144
+ if (first.type === "replace") {
145
+ const afterSecond = apply(first.value.after, second);
146
+ return variant("replace", { before: first.value.before, after: afterSecond });
147
+ }
148
+ else {
149
+ // Compute original before by inverting first and applying to second.before
150
+ const invertedFirst = invert(first);
151
+ const originalBefore = apply(second.value.before, invertedFirst);
152
+ return variant("replace", { before: originalBefore, after: second.value.after });
153
+ }
154
+ }
155
+ };
156
+ }
157
+ else if (t.type === "Dict") {
158
+ let valueCompose;
159
+ let valueApply;
160
+ let applyRet;
161
+ let invertRet;
162
+ const keyPrint = printFor(t.value.key);
163
+ const keyCompare = compareFor(t.value.key);
164
+ const composeRet = (first, second) => {
165
+ if (first.type === "unchanged") {
166
+ return second;
167
+ }
168
+ else if (second.type === "unchanged") {
169
+ return first;
170
+ }
171
+ else if (first.type === "replace" && second.type === "replace") {
172
+ return variant("replace", { before: first.value.before, after: second.value.after });
173
+ }
174
+ else if (first.type === "patch" && second.type === "patch") {
175
+ const result = new SortedMap(undefined, keyCompare);
176
+ for (const [key, op] of first.value) {
177
+ result.set(key, op);
178
+ }
179
+ for (const [key, op] of second.value) {
180
+ if (result.has(key)) {
181
+ const firstOp = result.get(key);
182
+ if (firstOp.type === "insert" && op.type === "delete") {
183
+ result.delete(key);
184
+ }
185
+ else if (firstOp.type === "insert" && op.type === "update") {
186
+ const newValue = valueApply(firstOp.value, op.value);
187
+ result.set(key, variant("insert", newValue));
188
+ }
189
+ else if (firstOp.type === "delete" && op.type === "insert") {
190
+ result.set(key, variant("update", variant("replace", { before: firstOp.value, after: op.value })));
191
+ }
192
+ else if (firstOp.type === "update" && op.type === "delete") {
193
+ throw new ConflictError(`Cannot compose patches - update then delete on key ${keyPrint(key)}`);
194
+ }
195
+ else if (firstOp.type === "update" && op.type === "update") {
196
+ const composed = valueCompose(firstOp.value, op.value);
197
+ result.set(key, variant("update", composed));
198
+ }
199
+ else {
200
+ throw new ConflictError(`Cannot compose patches - conflicting operations on key ${keyPrint(key)}`);
201
+ }
202
+ }
203
+ else {
204
+ result.set(key, op);
205
+ }
206
+ }
207
+ if (result.size === 0) {
208
+ return variant("unchanged", null);
209
+ }
210
+ return variant("patch", result);
211
+ }
212
+ else {
213
+ if (first.type === "replace") {
214
+ const afterSecond = applyRet(first.value.after, second);
215
+ return variant("replace", { before: first.value.before, after: afterSecond });
216
+ }
217
+ else {
218
+ // Compute original before by inverting first and applying to second.before
219
+ const invertedFirst = invertRet(first);
220
+ const originalBefore = applyRet(second.value.before, invertedFirst);
221
+ return variant("replace", { before: originalBefore, after: second.value.after });
222
+ }
223
+ }
224
+ };
225
+ // Push compose context first
226
+ ctx.compose.push(composeRet);
227
+ ctx.types.push(t);
228
+ // Build Dict apply/invert handlers (these recurse internally with their own push/pop)
229
+ applyRet = applyFor(t, { apply: ctx.apply, types: ctx.types, equal: ctx.equal, print: ctx.print });
230
+ invertRet = invertFor(t, { invert: ctx.invert, types: ctx.types, equal: ctx.equal });
231
+ // Push them so .Recursive lookups work during value compose recursion
232
+ ctx.apply.push(applyRet);
233
+ ctx.invert.push(invertRet);
234
+ // Recurse into value type for compose
235
+ valueCompose = composeFor(t.value.value, ctx);
236
+ // Build value apply with proper context (Dict handler is now in ctx.apply)
237
+ valueApply = applyFor(t.value.value, { apply: ctx.apply, types: ctx.types, equal: ctx.equal, print: ctx.print });
238
+ ctx.compose.pop();
239
+ ctx.apply.pop();
240
+ ctx.invert.pop();
241
+ ctx.types.pop();
242
+ return composeRet;
243
+ }
244
+ else if (t.type === "Struct") {
245
+ const fieldComposes = {};
246
+ let applyRet;
247
+ let invertRet;
248
+ const composeRet = (first, second) => {
249
+ if (first.type === "unchanged") {
250
+ return second;
251
+ }
252
+ else if (second.type === "unchanged") {
253
+ return first;
254
+ }
255
+ else if (first.type === "replace" && second.type === "replace") {
256
+ return variant("replace", { before: first.value.before, after: second.value.after });
257
+ }
258
+ else if (first.type === "patch" && second.type === "patch") {
259
+ const result = {};
260
+ let allUnchanged = true;
261
+ for (const { name } of t.value) {
262
+ const composed = fieldComposes[name](first.value[name], second.value[name]);
263
+ result[name] = composed;
264
+ if (composed.type !== "unchanged") {
265
+ allUnchanged = false;
266
+ }
267
+ }
268
+ if (allUnchanged) {
269
+ return variant("unchanged", null);
270
+ }
271
+ return variant("patch", result);
272
+ }
273
+ else {
274
+ if (first.type === "replace") {
275
+ const afterSecond = applyRet(first.value.after, second);
276
+ return variant("replace", { before: first.value.before, after: afterSecond });
277
+ }
278
+ else {
279
+ // Compute original before by inverting first and applying to second.before
280
+ const invertedFirst = invertRet(first);
281
+ const originalBefore = applyRet(second.value.before, invertedFirst);
282
+ return variant("replace", { before: originalBefore, after: second.value.after });
283
+ }
284
+ }
285
+ };
286
+ // Push compose context first
287
+ ctx.compose.push(composeRet);
288
+ ctx.types.push(t);
289
+ // Build apply/invert handlers using applyFor/invertFor
290
+ applyRet = applyFor(t, { apply: ctx.apply, types: ctx.types, equal: ctx.equal, print: ctx.print });
291
+ invertRet = invertFor(t, { invert: ctx.invert, types: ctx.types, equal: ctx.equal });
292
+ // Push them so .Recursive lookups work during field compose recursion
293
+ ctx.apply.push(applyRet);
294
+ ctx.invert.push(invertRet);
295
+ // Recurse into field types for compose
296
+ for (const { name, type: fieldType } of t.value) {
297
+ fieldComposes[name] = composeFor(fieldType, ctx);
298
+ }
299
+ ctx.compose.pop();
300
+ ctx.apply.pop();
301
+ ctx.invert.pop();
302
+ ctx.types.pop();
303
+ return composeRet;
304
+ }
305
+ else if (t.type === "Variant") {
306
+ const caseComposes = {};
307
+ let applyRet;
308
+ let invertRet;
309
+ const composeRet = (first, second) => {
310
+ if (first.type === "unchanged") {
311
+ return second;
312
+ }
313
+ else if (second.type === "unchanged") {
314
+ return first;
315
+ }
316
+ else if (first.type === "replace" && second.type === "replace") {
317
+ return variant("replace", { before: first.value.before, after: second.value.after });
318
+ }
319
+ else if (first.type === "patch" && second.type === "patch") {
320
+ if (first.value.type !== second.value.type) {
321
+ throw new ConflictError(`Cannot compose variant patches for different cases: ${first.value.type} and ${second.value.type}`);
322
+ }
323
+ const caseName = first.value.type;
324
+ const composed = caseComposes[caseName](first.value.value, second.value.value);
325
+ if (composed.type === "unchanged") {
326
+ return variant("unchanged", null);
327
+ }
328
+ return variant("patch", variant(caseName, composed));
329
+ }
330
+ else {
331
+ if (first.type === "replace") {
332
+ const afterSecond = applyRet(first.value.after, second);
333
+ return variant("replace", { before: first.value.before, after: afterSecond });
334
+ }
335
+ else {
336
+ // first is "patch", second is "replace"
337
+ // Compute original before by inverting first and applying to second.before
338
+ const invertedFirst = invertRet(first);
339
+ const originalBefore = applyRet(second.value.before, invertedFirst);
340
+ return variant("replace", { before: originalBefore, after: second.value.after });
341
+ }
342
+ }
343
+ };
344
+ // Push compose context first
345
+ ctx.compose.push(composeRet);
346
+ ctx.types.push(t);
347
+ // Build apply/invert handlers using applyFor/invertFor
348
+ applyRet = applyFor(t, { apply: ctx.apply, types: ctx.types, equal: ctx.equal, print: ctx.print });
349
+ invertRet = invertFor(t, { invert: ctx.invert, types: ctx.types, equal: ctx.equal });
350
+ // Push them so .Recursive lookups work during case compose recursion
351
+ ctx.apply.push(applyRet);
352
+ ctx.invert.push(invertRet);
353
+ // Recurse into case types for compose
354
+ for (const { name, type: caseType } of t.value) {
355
+ caseComposes[name] = composeFor(caseType, ctx);
356
+ }
357
+ ctx.compose.pop();
358
+ ctx.apply.pop();
359
+ ctx.invert.pop();
360
+ ctx.types.pop();
361
+ return composeRet;
362
+ }
363
+ else if (t.type === "Ref") {
364
+ let innerCompose;
365
+ let applyRet;
366
+ let invertRet;
367
+ const composeRet = (first, second) => {
368
+ if (first.type === "unchanged") {
369
+ return second;
370
+ }
371
+ else if (second.type === "unchanged") {
372
+ return first;
373
+ }
374
+ else if (first.type === "replace" && second.type === "replace") {
375
+ return variant("replace", { before: first.value.before, after: second.value.after });
376
+ }
377
+ else if (first.type === "patch" && second.type === "patch") {
378
+ const composed = innerCompose(first.value, second.value);
379
+ if (composed.type === "unchanged") {
380
+ return variant("unchanged", null);
381
+ }
382
+ return variant("patch", composed);
383
+ }
384
+ else {
385
+ if (first.type === "replace") {
386
+ const afterSecond = applyRet(first.value.after, second);
387
+ return variant("replace", { before: first.value.before, after: afterSecond });
388
+ }
389
+ else {
390
+ // Compute original before by inverting first and applying to second.before
391
+ const invertedFirst = invertRet(first);
392
+ const originalBefore = applyRet(second.value.before, invertedFirst);
393
+ return variant("replace", { before: originalBefore, after: second.value.after });
394
+ }
395
+ }
396
+ };
397
+ // Push compose context first
398
+ ctx.compose.push(composeRet);
399
+ ctx.types.push(t);
400
+ // Build Ref apply/invert handlers (these recurse internally with their own push/pop)
401
+ applyRet = applyFor(t, { apply: ctx.apply, types: ctx.types, equal: ctx.equal, print: ctx.print });
402
+ invertRet = invertFor(t, { invert: ctx.invert, types: ctx.types, equal: ctx.equal });
403
+ // Push them so .Recursive lookups work during inner compose recursion
404
+ ctx.apply.push(applyRet);
405
+ ctx.invert.push(invertRet);
406
+ // Recurse into inner type for compose
407
+ innerCompose = composeFor(t.value, ctx);
408
+ ctx.compose.pop();
409
+ ctx.apply.pop();
410
+ ctx.invert.pop();
411
+ ctx.types.pop();
412
+ return composeRet;
413
+ }
414
+ else if (t.type === "Recursive") {
415
+ // Recursive types use replace-only semantics - only unchanged and replace patches
416
+ return (first, second) => {
417
+ if (first.type === "unchanged") {
418
+ return second;
419
+ }
420
+ else if (second.type === "unchanged") {
421
+ return first;
422
+ }
423
+ else if (first.type === "replace" && second.type === "replace") {
424
+ return variant("replace", { before: first.value.before, after: second.value.after });
425
+ }
426
+ else {
427
+ throw new Error(`Invalid patch types for recursive type composition: ${first.type}, ${second.type}`);
428
+ }
429
+ };
430
+ }
431
+ else if (t.type === "Function" || t.type === "AsyncFunction") {
432
+ return (first, second) => {
433
+ if (first.type === "unchanged") {
434
+ return second;
435
+ }
436
+ else if (second.type === "unchanged") {
437
+ return first;
438
+ }
439
+ else {
440
+ return variant("replace", { before: first.value.before, after: second.value.after });
441
+ }
442
+ };
443
+ }
444
+ else {
445
+ throw new Error(`Unhandled type in composeFor: ${t.type}`);
446
+ }
447
+ }
448
+ //# sourceMappingURL=compose.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compose.js","sourceRoot":"","sources":["../../../src/patch/compose.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
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
+ * diffFor - Compute difference between two East values.
7
+ *
8
+ * @module
9
+ */
10
+ import { type EastTypeValue } from "../type_of_type.js";
11
+ import type { EastType, ValueTypeOf } from "../types.js";
12
+ import { type DiffContext } from "./types.js";
13
+ export declare function diffFor(type: EastTypeValue, ctx?: DiffContext): (before: any, after: any) => any;
14
+ export declare function diffFor<T extends EastType>(type: T): (before: ValueTypeOf<T>, after: ValueTypeOf<T>) => any;
15
+ //# sourceMappingURL=diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../src/patch/diff.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AAEH,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAMzD,OAAO,EAAE,KAAK,WAAW,EAAc,MAAM,YAAY,CAAC;AAE1D,wBAAgB,OAAO,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;AAClG,wBAAgB,OAAO,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC"}