@elaraai/east 1.0.84 → 1.0.86

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 (247) hide show
  1. package/dist/src/analyze.d.ts.map +1 -1
  2. package/dist/src/analyze.js +48 -0
  3. package/dist/src/analyze.js.map +1 -1
  4. package/dist/src/ast_to_ir.coerce_to.spec.js +4 -4
  5. package/dist/src/ast_to_ir.coerce_to.spec.js.map +1 -1
  6. package/dist/src/ast_to_ir.d.ts +6 -1
  7. package/dist/src/ast_to_ir.d.ts.map +1 -1
  8. package/dist/src/ast_to_ir.js +20 -7
  9. package/dist/src/ast_to_ir.js.map +1 -1
  10. package/dist/src/builtins.d.ts +1 -1
  11. package/dist/src/builtins.d.ts.map +1 -1
  12. package/dist/src/builtins.js +52 -0
  13. package/dist/src/builtins.js.map +1 -1
  14. package/dist/src/codegen/canonical.d.ts +37 -0
  15. package/dist/src/codegen/canonical.d.ts.map +1 -0
  16. package/dist/src/codegen/canonical.js +208 -0
  17. package/dist/src/codegen/canonical.js.map +1 -0
  18. package/dist/src/codegen/codegen.spec.js +132 -201
  19. package/dist/src/codegen/codegen.spec.js.map +1 -1
  20. package/dist/src/codegen/printer.d.ts.map +1 -1
  21. package/dist/src/codegen/printer.js +142 -24
  22. package/dist/src/codegen/printer.js.map +1 -1
  23. package/dist/src/codegen/spellings.d.ts +4 -1
  24. package/dist/src/codegen/spellings.d.ts.map +1 -1
  25. package/dist/src/codegen/spellings.js +5 -1
  26. package/dist/src/codegen/spellings.js.map +1 -1
  27. package/dist/src/compile/builtins/index.d.ts.map +1 -1
  28. package/dist/src/compile/builtins/index.js +2 -0
  29. package/dist/src/compile/builtins/index.js.map +1 -1
  30. package/dist/src/compile/builtins/primitives.d.ts.map +1 -1
  31. package/dist/src/compile/builtins/primitives.js +2 -1
  32. package/dist/src/compile/builtins/primitives.js.map +1 -1
  33. package/dist/src/compile/builtins/query.d.ts +10 -0
  34. package/dist/src/compile/builtins/query.d.ts.map +1 -0
  35. package/dist/src/compile/builtins/query.js +5 -0
  36. package/dist/src/compile/builtins/query.js.map +1 -0
  37. package/dist/src/expr/block.d.ts.map +1 -1
  38. package/dist/src/expr/block.js +2 -1
  39. package/dist/src/expr/block.js.map +1 -1
  40. package/dist/src/expr/index.d.ts +75 -47
  41. package/dist/src/expr/index.d.ts.map +1 -1
  42. package/dist/src/expr/index.js +31 -0
  43. package/dist/src/expr/index.js.map +1 -1
  44. package/dist/src/expr/libs/datetime.d.ts +20 -20
  45. package/dist/src/expr/libs/datetime.d.ts.map +1 -1
  46. package/dist/src/expr/libs/datetime.js +208 -167
  47. package/dist/src/expr/libs/datetime.js.map +1 -1
  48. package/dist/src/expr/libs/float.d.ts +15 -15
  49. package/dist/src/expr/libs/float.d.ts.map +1 -1
  50. package/dist/src/expr/libs/float.js +298 -267
  51. package/dist/src/expr/libs/float.js.map +1 -1
  52. package/dist/src/expr/libs/integer.d.ts +12 -12
  53. package/dist/src/expr/libs/integer.d.ts.map +1 -1
  54. package/dist/src/expr/libs/integer.js +219 -194
  55. package/dist/src/expr/libs/integer.js.map +1 -1
  56. package/dist/src/expr/libs/lazy.d.ts +28 -0
  57. package/dist/src/expr/libs/lazy.d.ts.map +1 -0
  58. package/dist/src/expr/libs/lazy.js +55 -0
  59. package/dist/src/expr/libs/lazy.js.map +1 -0
  60. package/dist/src/expr/libs/lazy.spec.d.ts +6 -0
  61. package/dist/src/expr/libs/lazy.spec.d.ts.map +1 -0
  62. package/dist/src/expr/libs/lazy.spec.js +102 -0
  63. package/dist/src/expr/libs/lazy.spec.js.map +1 -0
  64. package/dist/src/expr/query.d.ts +60 -0
  65. package/dist/src/expr/query.d.ts.map +1 -0
  66. package/dist/src/expr/query.js +84 -0
  67. package/dist/src/expr/query.js.map +1 -0
  68. package/dist/src/functions.crossimport.spec.js +8 -0
  69. package/dist/src/functions.crossimport.spec.js.map +1 -1
  70. package/dist/src/functions.d.ts +45 -8
  71. package/dist/src/functions.d.ts.map +1 -1
  72. package/dist/src/functions.js +138 -28
  73. package/dist/src/functions.js.map +1 -1
  74. package/dist/src/functions.spec.js +60 -2
  75. package/dist/src/functions.spec.js.map +1 -1
  76. package/dist/src/index.d.ts +3 -0
  77. package/dist/src/index.d.ts.map +1 -1
  78. package/dist/src/index.js +3 -0
  79. package/dist/src/index.js.map +1 -1
  80. package/dist/src/internal.d.ts +4 -0
  81. package/dist/src/internal.d.ts.map +1 -1
  82. package/dist/src/internal.js +9 -0
  83. package/dist/src/internal.js.map +1 -1
  84. package/dist/src/location.d.ts +22 -0
  85. package/dist/src/location.d.ts.map +1 -1
  86. package/dist/src/location.js +31 -0
  87. package/dist/src/location.js.map +1 -1
  88. package/dist/src/naming.d.ts +5 -3
  89. package/dist/src/naming.d.ts.map +1 -1
  90. package/dist/src/naming.js.map +1 -1
  91. package/dist/src/portable.spec.d.ts +6 -0
  92. package/dist/src/portable.spec.d.ts.map +1 -0
  93. package/dist/src/portable.spec.js +181 -0
  94. package/dist/src/portable.spec.js.map +1 -0
  95. package/dist/src/query/evaluate.d.ts +98 -0
  96. package/dist/src/query/evaluate.d.ts.map +1 -0
  97. package/dist/src/query/evaluate.js +193 -0
  98. package/dist/src/query/evaluate.js.map +1 -0
  99. package/dist/src/query/index.d.ts +17 -0
  100. package/dist/src/query/index.d.ts.map +1 -0
  101. package/dist/src/query/index.js +17 -0
  102. package/dist/src/query/index.js.map +1 -0
  103. package/dist/src/query/jq/catalog.d.ts +174 -0
  104. package/dist/src/query/jq/catalog.d.ts.map +1 -0
  105. package/dist/src/query/jq/catalog.js +1740 -0
  106. package/dist/src/query/jq/catalog.js.map +1 -0
  107. package/dist/src/query/jq/check.d.ts +210 -0
  108. package/dist/src/query/jq/check.d.ts.map +1 -0
  109. package/dist/src/query/jq/check.js +2261 -0
  110. package/dist/src/query/jq/check.js.map +1 -0
  111. package/dist/src/query/jq/complete.d.ts +89 -0
  112. package/dist/src/query/jq/complete.d.ts.map +1 -0
  113. package/dist/src/query/jq/complete.js +320 -0
  114. package/dist/src/query/jq/complete.js.map +1 -0
  115. package/dist/src/query/jq/describe.d.ts +53 -0
  116. package/dist/src/query/jq/describe.d.ts.map +1 -0
  117. package/dist/src/query/jq/describe.js +149 -0
  118. package/dist/src/query/jq/describe.js.map +1 -0
  119. package/dist/src/query/jq/lex.d.ts +118 -0
  120. package/dist/src/query/jq/lex.d.ts.map +1 -0
  121. package/dist/src/query/jq/lex.js +371 -0
  122. package/dist/src/query/jq/lex.js.map +1 -0
  123. package/dist/src/query/jq/literals.d.ts +49 -0
  124. package/dist/src/query/jq/literals.d.ts.map +1 -0
  125. package/dist/src/query/jq/literals.js +78 -0
  126. package/dist/src/query/jq/literals.js.map +1 -0
  127. package/dist/src/query/jq/messages.d.ts +126 -0
  128. package/dist/src/query/jq/messages.d.ts.map +1 -0
  129. package/dist/src/query/jq/messages.js +172 -0
  130. package/dist/src/query/jq/messages.js.map +1 -0
  131. package/dist/src/query/jq/parse.d.ts +70 -0
  132. package/dist/src/query/jq/parse.d.ts.map +1 -0
  133. package/dist/src/query/jq/parse.js +1013 -0
  134. package/dist/src/query/jq/parse.js.map +1 -0
  135. package/dist/src/query/jq/print.d.ts +59 -0
  136. package/dist/src/query/jq/print.d.ts.map +1 -0
  137. package/dist/src/query/jq/print.js +587 -0
  138. package/dist/src/query/jq/print.js.map +1 -0
  139. package/dist/src/query/jq/shapes.d.ts +345 -0
  140. package/dist/src/query/jq/shapes.d.ts.map +1 -0
  141. package/dist/src/query/jq/shapes.js +584 -0
  142. package/dist/src/query/jq/shapes.js.map +1 -0
  143. package/dist/src/query/jq/spans.d.ts +133 -0
  144. package/dist/src/query/jq/spans.d.ts.map +1 -0
  145. package/dist/src/query/jq/spans.js +195 -0
  146. package/dist/src/query/jq/spans.js.map +1 -0
  147. package/dist/src/query/jq/split.d.ts +334 -0
  148. package/dist/src/query/jq/split.d.ts.map +1 -0
  149. package/dist/src/query/jq/split.js +2108 -0
  150. package/dist/src/query/jq/split.js.map +1 -0
  151. package/dist/src/query/jq/strftime.d.ts +20 -0
  152. package/dist/src/query/jq/strftime.d.ts.map +1 -0
  153. package/dist/src/query/jq/strftime.js +65 -0
  154. package/dist/src/query/jq/strftime.js.map +1 -0
  155. package/dist/src/query/jq/summary.d.ts +139 -0
  156. package/dist/src/query/jq/summary.d.ts.map +1 -0
  157. package/dist/src/query/jq/summary.js +222 -0
  158. package/dist/src/query/jq/summary.js.map +1 -0
  159. package/dist/src/query/jq/translate-builtins.d.ts +21 -0
  160. package/dist/src/query/jq/translate-builtins.d.ts.map +1 -0
  161. package/dist/src/query/jq/translate-builtins.js +1873 -0
  162. package/dist/src/query/jq/translate-builtins.js.map +1 -0
  163. package/dist/src/query/jq/translate.d.ts +627 -0
  164. package/dist/src/query/jq/translate.d.ts.map +1 -0
  165. package/dist/src/query/jq/translate.js +3364 -0
  166. package/dist/src/query/jq/translate.js.map +1 -0
  167. package/dist/src/query/types.d.ts +505 -0
  168. package/dist/src/query/types.d.ts.map +1 -0
  169. package/dist/src/query/types.js +231 -0
  170. package/dist/src/query/types.js.map +1 -0
  171. package/dist/src/runner_exec.d.ts +134 -0
  172. package/dist/src/runner_exec.d.ts.map +1 -0
  173. package/dist/src/runner_exec.js +371 -0
  174. package/dist/src/runner_exec.js.map +1 -0
  175. package/dist/src/runner_exec.spec.d.ts +6 -0
  176. package/dist/src/runner_exec.spec.d.ts.map +1 -0
  177. package/dist/src/runner_exec.spec.js +198 -0
  178. package/dist/src/runner_exec.spec.js.map +1 -0
  179. package/dist/src/runner_io.d.ts +370 -0
  180. package/dist/src/runner_io.d.ts.map +1 -0
  181. package/dist/src/runner_io.js +563 -0
  182. package/dist/src/runner_io.js.map +1 -0
  183. package/dist/src/runner_io.spec.d.ts +6 -0
  184. package/dist/src/runner_io.spec.d.ts.map +1 -0
  185. package/dist/src/runner_io.spec.js +224 -0
  186. package/dist/src/runner_io.spec.js.map +1 -0
  187. package/dist/src/runner_merge.d.ts +95 -0
  188. package/dist/src/runner_merge.d.ts.map +1 -0
  189. package/dist/src/runner_merge.js +238 -0
  190. package/dist/src/runner_merge.js.map +1 -0
  191. package/dist/src/runner_protocol.d.ts +11 -4
  192. package/dist/src/runner_protocol.d.ts.map +1 -1
  193. package/dist/src/runner_protocol.js +11 -4
  194. package/dist/src/runner_protocol.js.map +1 -1
  195. package/dist/src/serialization/beast2/index.d.ts +1 -1
  196. package/dist/src/serialization/beast2/index.d.ts.map +1 -1
  197. package/dist/src/serialization/beast2/index.js.map +1 -1
  198. package/dist/src/serialization/beast2/v5/frames.d.ts +10 -6
  199. package/dist/src/serialization/beast2/v5/frames.d.ts.map +1 -1
  200. package/dist/src/serialization/beast2/v5/frames.js +10 -6
  201. package/dist/src/serialization/beast2/v5/frames.js.map +1 -1
  202. package/dist/src/serialization/beast2/v5/frames.spec.d.ts +6 -0
  203. package/dist/src/serialization/beast2/v5/frames.spec.d.ts.map +1 -0
  204. package/dist/src/serialization/beast2/v5/frames.spec.js +42 -0
  205. package/dist/src/serialization/beast2/v5/frames.spec.js.map +1 -0
  206. package/dist/src/serialization/beast2/v5/index.spec.js +108 -0
  207. package/dist/src/serialization/beast2/v5/index.spec.js.map +1 -1
  208. package/dist/src/serialization/beast2/v5/lazy.d.ts +12 -7
  209. package/dist/src/serialization/beast2/v5/lazy.d.ts.map +1 -1
  210. package/dist/src/serialization/beast2/v5/lazy.js +16 -6
  211. package/dist/src/serialization/beast2/v5/lazy.js.map +1 -1
  212. package/dist/src/serialization/beast2/v5/lazy.spec.js +159 -18
  213. package/dist/src/serialization/beast2/v5/lazy.spec.js.map +1 -1
  214. package/dist/src/serialization/beast2/v5/stream.d.ts +110 -21
  215. package/dist/src/serialization/beast2/v5/stream.d.ts.map +1 -1
  216. package/dist/src/serialization/beast2/v5/stream.js +153 -42
  217. package/dist/src/serialization/beast2/v5/stream.js.map +1 -1
  218. package/dist/src/serialization/beast2/v5/weight.d.ts +36 -0
  219. package/dist/src/serialization/beast2/v5/weight.d.ts.map +1 -0
  220. package/dist/src/serialization/beast2/v5/weight.js +238 -0
  221. package/dist/src/serialization/beast2/v5/weight.js.map +1 -0
  222. package/dist/src/serialization/crc32.d.ts +38 -0
  223. package/dist/src/serialization/crc32.d.ts.map +1 -0
  224. package/dist/src/serialization/crc32.js +70 -0
  225. package/dist/src/serialization/crc32.js.map +1 -0
  226. package/dist/src/serialization/crc32.spec.d.ts +6 -0
  227. package/dist/src/serialization/crc32.spec.d.ts.map +1 -0
  228. package/dist/src/serialization/crc32.spec.js +92 -0
  229. package/dist/src/serialization/crc32.spec.js.map +1 -0
  230. package/dist/src/serialization/east-inferred.spec.js +4 -0
  231. package/dist/src/serialization/east-inferred.spec.js.map +1 -1
  232. package/dist/src/serialization/east.d.ts.map +1 -1
  233. package/dist/src/serialization/east.js +134 -110
  234. package/dist/src/serialization/east.js.map +1 -1
  235. package/dist/src/serialization/east.spec.js +185 -4
  236. package/dist/src/serialization/east.spec.js.map +1 -1
  237. package/dist/src/serialization/east_text.d.ts +25 -0
  238. package/dist/src/serialization/east_text.d.ts.map +1 -0
  239. package/dist/src/serialization/east_text.js +29 -0
  240. package/dist/src/serialization/east_text.js.map +1 -0
  241. package/dist/src/serialization/index.d.ts +1 -1
  242. package/dist/src/serialization/index.d.ts.map +1 -1
  243. package/dist/src/types.d.ts +1 -1
  244. package/dist/src/types.d.ts.map +1 -1
  245. package/dist/src/types.js +7 -6
  246. package/dist/src/types.js.map +1 -1
  247. package/package.json +6 -3
@@ -1 +1 @@
1
- {"version":3,"file":"integer.js","sourceRoot":"","sources":["../../../../src/expr/libs/integer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"integer.js","sourceRoot":"","sources":["../../../../src/expr/libs/integer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
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
+ * Makes each getter of a library build its function the first time it is
7
+ * read, as an import of East used to build it, and keep it.
8
+ *
9
+ * @remarks
10
+ * A function is built with no location captured and under a source map of
11
+ * its own, as it was built at import: every frame of a library's body is
12
+ * East's own, which a captured location leaves out, and no other function is
13
+ * being built while a module is imported. Built inside a reader's function
14
+ * otherwise, it would take the reader's frames for its own, and the names its
15
+ * `$.let`s bind from the reader's line. So the IR a program gets from a
16
+ * library function is the IR it got when East built them all at import.
17
+ *
18
+ * A property that is no getter — a builder the library re-exports — stays as
19
+ * it is.
20
+ *
21
+ * @typeParam L - The library: its functions as getters
22
+ * @param library - The library, each of whose getters builds one function
23
+ * @returns The library, each getter now building its function once, the first
24
+ * time it is read, after which the function is a property of its own
25
+ * @internal
26
+ */
27
+ export declare function lazyLibrary<L extends object>(library: L): L;
28
+ //# sourceMappingURL=lazy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../../../src/expr/libs/lazy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAeH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAe3D"}
@@ -0,0 +1,55 @@
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
+ * Standard libraries whose functions are built on first use (#1127).
7
+ *
8
+ * Importing East used to build every function of its integer, float and
9
+ * datetime libraries — tracing each body, checking its types and reading its
10
+ * parameters' names, which loads the TypeScript compiler — whether or not the
11
+ * process used one. A library is written as an object whose functions are
12
+ * getters, and {@link lazyLibrary} has each build its function the first time
13
+ * it is read.
14
+ */
15
+ import { SourceMap, with_source_map, withLocationCapture } from "../../location.js";
16
+ /**
17
+ * Makes each getter of a library build its function the first time it is
18
+ * read, as an import of East used to build it, and keep it.
19
+ *
20
+ * @remarks
21
+ * A function is built with no location captured and under a source map of
22
+ * its own, as it was built at import: every frame of a library's body is
23
+ * East's own, which a captured location leaves out, and no other function is
24
+ * being built while a module is imported. Built inside a reader's function
25
+ * otherwise, it would take the reader's frames for its own, and the names its
26
+ * `$.let`s bind from the reader's line. So the IR a program gets from a
27
+ * library function is the IR it got when East built them all at import.
28
+ *
29
+ * A property that is no getter — a builder the library re-exports — stays as
30
+ * it is.
31
+ *
32
+ * @typeParam L - The library: its functions as getters
33
+ * @param library - The library, each of whose getters builds one function
34
+ * @returns The library, each getter now building its function once, the first
35
+ * time it is read, after which the function is a property of its own
36
+ * @internal
37
+ */
38
+ export function lazyLibrary(library) {
39
+ for (const [name, descriptor] of Object.entries(Object.getOwnPropertyDescriptors(library))) {
40
+ const build = descriptor.get;
41
+ if (build === undefined)
42
+ continue;
43
+ Object.defineProperty(library, name, {
44
+ enumerable: descriptor.enumerable ?? true,
45
+ configurable: true,
46
+ get: () => {
47
+ const built = with_source_map(new SourceMap(), () => withLocationCapture(false, () => build.call(library)));
48
+ Object.defineProperty(library, name, { value: built, enumerable: descriptor.enumerable ?? true, writable: false, configurable: false });
49
+ return built;
50
+ },
51
+ });
52
+ }
53
+ return library;
54
+ }
55
+ //# sourceMappingURL=lazy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazy.js","sourceRoot":"","sources":["../../../../src/expr/libs/lazy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;GASG;AAEH,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEpF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,WAAW,CAAmB,OAAU;IACtD,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QAC3F,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC;QAC7B,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE;YACnC,UAAU,EAAE,UAAU,CAAC,UAAU,IAAI,IAAI;YACzC,YAAY,EAAE,IAAI;YAClB,GAAG,EAAE,GAAG,EAAE;gBACR,MAAM,KAAK,GAAY,eAAe,CAAC,IAAI,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACrH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,UAAU,IAAI,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;gBACxI,OAAO,KAAK,CAAC;YACf,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,6 @@
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
+ export {};
6
+ //# sourceMappingURL=lazy.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazy.spec.d.ts","sourceRoot":"","sources":["../../../../src/expr/libs/lazy.spec.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ /**
6
+ * East's integer, float and datetime libraries build each function the first
7
+ * time it is read (#1127): importing East builds none of them and loads no
8
+ * TypeScript, and a function's IR is the same whoever reads it first.
9
+ */
10
+ import { describe, test } from "node:test";
11
+ import assert from "node:assert/strict";
12
+ import { spawnSync } from "node:child_process";
13
+ import { East } from "../../index.js";
14
+ import { lazyLibrary } from "./lazy.js";
15
+ /** East's entry, as a child process imports it. */
16
+ const EAST = JSON.stringify(new URL("../../index.js", import.meta.url).href);
17
+ /**
18
+ * Runs `script`, an ES module, in a process of its own, and gives what it
19
+ * printed, as JSON.
20
+ *
21
+ * @param script - The module's source
22
+ * @param env - Variables the process is given beside the test's own
23
+ * @returns What the script printed, parsed
24
+ */
25
+ function inProcess(script, env = {}) {
26
+ const run = spawnSync(process.execPath, ["--input-type=module", "-e", script], { encoding: "utf8", env: { ...process.env, ...env } });
27
+ assert.equal(run.status, 0, `the script failed:\n${run.stderr}`);
28
+ return JSON.parse(run.stdout);
29
+ }
30
+ describe("East's standard libraries", () => {
31
+ test("importing East builds none of their functions, and loads no TypeScript until a function is built", () => {
32
+ const seen = inProcess([
33
+ 'import { createRequire } from "node:module";',
34
+ `const { East, IntegerType } = await import(${EAST});`,
35
+ "const typescript = () => Object.keys(createRequire(import.meta.url).cache).some((path) => /[\\\\/]typescript[\\\\/]/.test(path));",
36
+ "let waiting = 0;",
37
+ "const built = [];",
38
+ 'for (const lib of ["Integer", "Float", "DateTime"]) {',
39
+ " for (const [name, property] of Object.entries(Object.getOwnPropertyDescriptors(East[lib]))) {",
40
+ " if (property.get !== undefined) waiting++;",
41
+ ' else if (typeof property.value?.toIR === "function") built.push(`${lib}.${name}`);',
42
+ " }",
43
+ "}",
44
+ "const atImport = typescript();",
45
+ "East.function([IntegerType], IntegerType, ($, count) => count);",
46
+ "console.log(JSON.stringify({ waiting, built, atImport, afterBuild: typescript() }));",
47
+ ].join("\n"));
48
+ assert.deepEqual(seen.built, [], "no library function is built at import");
49
+ assert.equal(seen.waiting, 47, "every one waits to be read: 12 integer, 15 float and 20 datetime functions");
50
+ assert.equal(seen.atImport, false, "importing East loads no TypeScript");
51
+ assert.equal(seen.afterBuild, true, "a function's build loads it, to read its parameters' names");
52
+ });
53
+ test("a function is built the first time it is read, and kept", () => {
54
+ const waiting = Object.getOwnPropertyDescriptor(East.Float, "printFixed");
55
+ assert.ok(waiting?.get !== undefined, "nothing in this process has read it yet");
56
+ const first = East.Float.printFixed;
57
+ assert.equal(East.Float.printFixed, first, "a second read gives the same function");
58
+ const kept = Object.getOwnPropertyDescriptor(East.Float, "printFixed");
59
+ assert.ok(kept !== undefined && kept.get === undefined && kept.value === first && kept.writable === false, "the function is a property of its own once built");
60
+ assert.equal(East.DateTime.fromEpochMilliseconds.name, "fromEpochMilliseconds", "a builder the library re-exports stays as it is");
61
+ });
62
+ test("a function's IR is the same whoever reads it first: a caller that builds it takes none of the caller's locations", () => {
63
+ // One script, run twice: once reading each function before its caller is
64
+ // built, and once reading it first inside the caller's body. The callers'
65
+ // own nodes are built from the same lines both times.
66
+ const script = [
67
+ `const { East, DateTimeType, FloatType, IntegerType, StringType, encodeEastIR, sha256Hex } = await import(${EAST});`,
68
+ "const irOf = (fn) => sha256Hex(encodeEastIR(fn.toIR()));",
69
+ 'if (process.env.READ_FIRST === "outside") void [East.Integer.printOrdinal, East.Float.printFixed, East.DateTime.roundUpWeek];',
70
+ "const callers = [",
71
+ " East.function([IntegerType], StringType, ($, x) => East.Integer.printOrdinal(x)),",
72
+ " East.function([FloatType, IntegerType], StringType, ($, x, decimals) => East.Float.printFixed(x, decimals)),",
73
+ " East.function([DateTimeType, IntegerType], DateTimeType, ($, at, step) => East.DateTime.roundUpWeek(at, step)),",
74
+ "];",
75
+ "const own = [East.Integer.printOrdinal, East.Float.printFixed, East.DateTime.roundUpWeek];",
76
+ "console.log(JSON.stringify({ own: own.map(irOf), callers: callers.map(irOf) }));",
77
+ ].join("\n");
78
+ const outside = inProcess(script, { READ_FIRST: "outside" });
79
+ const inside = inProcess(script, { READ_FIRST: "inside" });
80
+ assert.deepEqual(inside.own, outside.own, "each function's own IR, its source map included");
81
+ assert.deepEqual(inside.callers, outside.callers, "and its callers' IR");
82
+ });
83
+ });
84
+ describe("lazyLibrary", () => {
85
+ test("builds each getter's value once, the first time it is read, and leaves a property that is no getter as it is", () => {
86
+ let builds = 0;
87
+ const library = lazyLibrary({
88
+ kept: 1,
89
+ get built() {
90
+ builds++;
91
+ return { at: builds };
92
+ },
93
+ });
94
+ assert.equal(builds, 0, "nothing is built until it is read");
95
+ const first = library.built;
96
+ assert.equal(library.built, first);
97
+ assert.equal(builds, 1, "built once");
98
+ assert.equal(library.kept, 1);
99
+ assert.deepEqual(Object.keys(library), ["kept", "built"], "both stay enumerable, in order");
100
+ });
101
+ });
102
+ //# sourceMappingURL=lazy.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazy.spec.js","sourceRoot":"","sources":["../../../../src/expr/libs/lazy.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ import { type EastType } from "../types.js";
6
+ import { Expr } from "./expr.js";
7
+ import type { ExprType } from "./types.js";
8
+ /**
9
+ * A jq query over East values, as East code: the query is parsed, checked
10
+ * against its inputs' types and translated to ordinary East IR when the
11
+ * program is built, so it runs wherever East runs.
12
+ *
13
+ * @typeParam T - the query's result type
14
+ * @param input - the query's input: an expression, or an object of named
15
+ * expressions, which the query reads as an e3 root (`.orders` is the
16
+ * `orders` input, read alone, so a lazy input stays lazy)
17
+ * @param program - the jq text
18
+ * @param resultType - the query's result type: its outputs' type for a query
19
+ * that gives one output, an `Option` of it for one that gives at most one,
20
+ * an `Array` of it for one that gives any number. The query must check to
21
+ * exactly this type, and it types the expression.
22
+ * @returns the query's result, an expression of `resultType`
23
+ * @throws {QueryError} When the query does not check, with the checker's
24
+ * diagnostics; or when it does not check to `resultType`, naming both
25
+ * types.
26
+ * @throws East runtime error if the query raises one as it runs: `error(v)`,
27
+ * an integer division by zero, a date that does not parse; the error names
28
+ * its line and column in the jq text.
29
+ *
30
+ * @remarks
31
+ * The expression is a call of the `Query` builtin (#1041), whose arguments
32
+ * are the program as written and a root's input names, a typed constant, and
33
+ * its translation, an East function of the inputs; the call's arguments are
34
+ * the inputs, each named input among them whether the query reads it or not.
35
+ * Running the call runs the translation, and printers print it back as
36
+ * `East.jq(…)` from its program.
37
+ *
38
+ * @example
39
+ * ```ts
40
+ * const Order = StructType({ id: IntegerType, total: FloatType });
41
+ * const bigOrders = East.function([ArrayType(Order)], ArrayType(IntegerType), ($, orders) =>
42
+ * East.jq(orders, "[.[] | select(.total > 1000) | .id]", ArrayType(IntegerType)));
43
+ * const compiled = East.compile(bigOrders, []);
44
+ * compiled([{ id: 1n, total: 250.0 }, { id: 2n, total: 1200.0 }]); // [2n]
45
+ * ```
46
+ *
47
+ * @example
48
+ * ```ts
49
+ * // The result is an expression of its result type (here an ArrayExpr<FloatType>), so its methods chain.
50
+ * const Order = StructType({ id: IntegerType, total: FloatType });
51
+ * const revenue = East.function([ArrayType(Order)], FloatType, ($, orders) =>
52
+ * East.jq(orders, "map(.total)", ArrayType(FloatType)).sum());
53
+ * const compiled = East.compile(revenue, []);
54
+ * compiled([{ id: 1n, total: 250.0 }, { id: 2n, total: 1200.0 }]); // 1450.0
55
+ * ```
56
+ */
57
+ export declare function jq<T extends EastType>(input: Expr | {
58
+ readonly [name: string]: Expr;
59
+ }, program: string, resultType: T): ExprType<T>;
60
+ //# sourceMappingURL=query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/expr/query.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,OAAO,EAA2B,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,wBAAgB,EAAE,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,IAAI,GAAG;IAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAenI"}
@@ -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
+ /**
6
+ * `East.jq`: a typed jq query as East code, translated when the program is
7
+ * built (`devdocs/QUERY.md` §15).
8
+ *
9
+ * @packageDocumentation
10
+ */
11
+ import { QueryError } from "../query/evaluate.js";
12
+ import { checkJq } from "../query/jq/check.js";
13
+ import { report } from "../query/jq/messages.js";
14
+ import { translateJq } from "../query/jq/translate.js";
15
+ import { describeType } from "../query/jq/shapes.js";
16
+ import { StructType, isTypeEqual } from "../types.js";
17
+ import { Expr } from "./expr.js";
18
+ /**
19
+ * A jq query over East values, as East code: the query is parsed, checked
20
+ * against its inputs' types and translated to ordinary East IR when the
21
+ * program is built, so it runs wherever East runs.
22
+ *
23
+ * @typeParam T - the query's result type
24
+ * @param input - the query's input: an expression, or an object of named
25
+ * expressions, which the query reads as an e3 root (`.orders` is the
26
+ * `orders` input, read alone, so a lazy input stays lazy)
27
+ * @param program - the jq text
28
+ * @param resultType - the query's result type: its outputs' type for a query
29
+ * that gives one output, an `Option` of it for one that gives at most one,
30
+ * an `Array` of it for one that gives any number. The query must check to
31
+ * exactly this type, and it types the expression.
32
+ * @returns the query's result, an expression of `resultType`
33
+ * @throws {QueryError} When the query does not check, with the checker's
34
+ * diagnostics; or when it does not check to `resultType`, naming both
35
+ * types.
36
+ * @throws East runtime error if the query raises one as it runs: `error(v)`,
37
+ * an integer division by zero, a date that does not parse; the error names
38
+ * its line and column in the jq text.
39
+ *
40
+ * @remarks
41
+ * The expression is a call of the `Query` builtin (#1041), whose arguments
42
+ * are the program as written and a root's input names, a typed constant, and
43
+ * its translation, an East function of the inputs; the call's arguments are
44
+ * the inputs, each named input among them whether the query reads it or not.
45
+ * Running the call runs the translation, and printers print it back as
46
+ * `East.jq(…)` from its program.
47
+ *
48
+ * @example
49
+ * ```ts
50
+ * const Order = StructType({ id: IntegerType, total: FloatType });
51
+ * const bigOrders = East.function([ArrayType(Order)], ArrayType(IntegerType), ($, orders) =>
52
+ * East.jq(orders, "[.[] | select(.total > 1000) | .id]", ArrayType(IntegerType)));
53
+ * const compiled = East.compile(bigOrders, []);
54
+ * compiled([{ id: 1n, total: 250.0 }, { id: 2n, total: 1200.0 }]); // [2n]
55
+ * ```
56
+ *
57
+ * @example
58
+ * ```ts
59
+ * // The result is an expression of its result type (here an ArrayExpr<FloatType>), so its methods chain.
60
+ * const Order = StructType({ id: IntegerType, total: FloatType });
61
+ * const revenue = East.function([ArrayType(Order)], FloatType, ($, orders) =>
62
+ * East.jq(orders, "map(.total)", ArrayType(FloatType)).sum());
63
+ * const compiled = East.compile(revenue, []);
64
+ * compiled([{ id: 1n, total: 250.0 }, { id: 2n, total: 1200.0 }]); // 1450.0
65
+ * ```
66
+ */
67
+ export function jq(input, program, resultType) {
68
+ const named = !(input instanceof Expr);
69
+ const names = named ? Object.keys(input) : [];
70
+ const values = named ? names.map(n => input[n]) : [input];
71
+ const inputType = named
72
+ ? StructType(Object.fromEntries(names.map((n, i) => [n, Expr.type(values[i])])))
73
+ : Expr.type(input);
74
+ const checked = checkJq(program, inputType, { root: named });
75
+ if (checked.program === null)
76
+ throw new QueryError(checked.diagnostics);
77
+ const translation = translateJq(checked);
78
+ if (!isTypeEqual(resultType, translation.resultType)) {
79
+ const message = `type_mismatch: the query gives ${describeType(translation.resultType)}, not the ${describeType(resultType)} it was given.`;
80
+ throw new QueryError([report(program, "type_mismatch", undefined, message)]);
81
+ }
82
+ return translation.call(...values);
83
+ }
84
+ //# sourceMappingURL=query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/expr/query.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAiB,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,MAAM,UAAU,EAAE,CAAqB,KAA+C,EAAE,OAAe,EAAE,UAAa;IACpH,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,KAA8B,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACrF,MAAM,SAAS,GAAG,KAAK;QACrB,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAE,CAAa,CAAC,CAAC,CAAC,CAAC;QAC7F,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAa,CAAC;IACjC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI;QAAE,MAAM,IAAI,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACxE,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,kCAAkC,YAAY,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,YAAY,CAAC,UAAU,CAAC,gBAAgB,CAAC;QAC5I,MAAM,IAAI,UAAU,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,MAAM,CAAgB,CAAC;AACpD,CAAC"}
@@ -36,6 +36,14 @@ describe("cross-language import: python-authored functions in TypeScript", () =>
36
36
  const run = new EastIR(ir).compile([]);
37
37
  assert.equal(run([{ qty: 2n, price: 1.5 }, { qty: 3n, price: 2.0 }], "hi"), "hi!hi! 9.0 6.0");
38
38
  });
39
+ test("the linked program's map names the python source of the functions it embeds", () => {
40
+ const greet = East.importFunction("crosslang_py", "greet", FunctionType([StringType, IntegerType], StringType));
41
+ const user = East.function([StringType], StringType, ($, name) => greet(name, 2n));
42
+ const { sourceMap } = East.linkImports(user, [manifest]);
43
+ assert.ok(sourceMap !== null);
44
+ const files = new Set(sourceMap.entries().flatMap(stack => stack.map(l => l.filename)));
45
+ assert.ok([...files].some(f => f.endsWith("crosslang_functions.py")), [...files].join(", "));
46
+ });
39
47
  test("a wrong declared type is refused with both types named", () => {
40
48
  const score = East.importFunction("crosslang_py", "score", FunctionType([Row], IntegerType));
41
49
  const user = East.function([Row], IntegerType, ($, r) => score(r));
@@ -1 +1 @@
1
- {"version":3,"file":"functions.crossimport.spec.js","sourceRoot":"","sources":["../../src/functions.crossimport.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"functions.crossimport.spec.js","sourceRoot":"","sources":["../../src/functions.crossimport.spec.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EACL,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,GACtF,MAAM,YAAY,CAAC;AAEpB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,yCAAyC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpF,MAAM,GAAG,GAAG,UAAU,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;AAE/D,QAAQ,CAAC,gEAAgE,EAAE,GAAG,EAAE;IAC9E,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAEpF,IAAI,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC5D,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAC/C,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACnF,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC9E,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QAC3F,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QACtG,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;QAChH,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;YACrF,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC7H,OAAO,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1G,CAAC,CAAC,CAAC;QACH,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3D,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACxE,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,EAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,gBAAgB,CAAC,CAAC;IAChG,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,6EAA6E,EAAE,GAAG,EAAE;QACvF,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;QAChH,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QACnF,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzD,MAAM,CAAC,EAAE,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxF,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/F,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAClE,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;QAC7F,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,uDAAuD,CAAC,CAAC;IACnH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -6,8 +6,9 @@
6
6
  * Cross-language East functions (#628): export, import, link.
7
7
  *
8
8
  * A function authored in one host language is exported as pure IR — its
9
- * `Function` node, the declared `FunctionType`, and the platform functions
10
- * it calls — in a **function manifest** (`FunctionManifestType`, one beast2
9
+ * `Function` node, the declared `FunctionType`, the platform functions it
10
+ * calls, and the source map its locations index — in a **function
11
+ * manifest** (`FunctionManifestType`, one beast2
11
12
  * value per package). Code in the other language refers to it with
12
13
  * `East.importFunction(package, name, type)`: a typed, callable function
13
14
  * expression whose IR is a `Platform` node named {@link IMPORT_PLATFORM}
@@ -27,6 +28,7 @@ import { type EastTypeValue } from "./type_of_type.js";
27
28
  import { type IR } from "./ir.js";
28
29
  import type { CallableFunctionExpr } from "./expr/function.js";
29
30
  import type { CallableAsyncFunctionExpr } from "./expr/asyncfunction.js";
31
+ import { SourceMap } from "./location.js";
30
32
  /** The platform name an unresolved `East.importFunction` carries in IR. */
31
33
  export declare const IMPORT_PLATFORM = "east.importFunction";
32
34
  /**
@@ -169,7 +171,12 @@ export declare const PlatformDependencyType: StructType<{
169
171
  readonly Matrix: import("./types.js").RecursiveTypeMarker;
170
172
  }>>>;
171
173
  }>;
172
- /** One exported function: its IR, declared type, and platform dependencies. */
174
+ /**
175
+ * One exported function: its IR, declared type, platform dependencies, and
176
+ * the source map its IR's loc_ids index — every location stack the IR names,
177
+ * entry 0 the empty one — so its frames name the exporter's source wherever
178
+ * it is linked.
179
+ */
173
180
  export declare const FunctionExportType: StructType<{
174
181
  readonly ir: import("./types.js").RecursiveType<import("./types.js").VariantType<{
175
182
  readonly Error: StructType<{
@@ -2030,6 +2037,11 @@ export declare const FunctionExportType: StructType<{
2030
2037
  readonly Matrix: import("./types.js").RecursiveTypeMarker;
2031
2038
  }>>>;
2032
2039
  }>>;
2040
+ readonly source_map: ArrayType<ArrayType<StructType<{
2041
+ readonly filename: StringType;
2042
+ readonly line: import("./types.js").IntegerType;
2043
+ readonly column: import("./types.js").IntegerType;
2044
+ }>>>;
2033
2045
  readonly type: import("./types.js").RecursiveType<import("./types.js").VariantType<{
2034
2046
  readonly Never: NullType;
2035
2047
  readonly Null: NullType;
@@ -3935,6 +3947,11 @@ export declare const FunctionManifestType: StructType<{
3935
3947
  readonly Matrix: import("./types.js").RecursiveTypeMarker;
3936
3948
  }>>>;
3937
3949
  }>>;
3950
+ readonly source_map: ArrayType<ArrayType<StructType<{
3951
+ readonly filename: StringType;
3952
+ readonly line: import("./types.js").IntegerType;
3953
+ readonly column: import("./types.js").IntegerType;
3954
+ }>>>;
3938
3955
  readonly type: import("./types.js").RecursiveType<import("./types.js").VariantType<{
3939
3956
  readonly Never: NullType;
3940
3957
  readonly Null: NullType;
@@ -4001,6 +4018,13 @@ export interface Linked {
4001
4018
  ir: IR;
4002
4019
  /** The imports that were resolved, in first-use order. */
4003
4020
  imports: LinkedImport[];
4021
+ /**
4022
+ * The source map the linked IR's loc_ids index: the importer's, with the
4023
+ * embedded functions' locations added, so an error or a profile names the
4024
+ * exporter's source. Null when the importer carried no map, in which case
4025
+ * the embedded functions carry no locations.
4026
+ */
4027
+ sourceMap: SourceMap | null;
4004
4028
  }
4005
4029
  /**
4006
4030
  * The IR value behind an `East.function` result, an `EastIR` bundle, or an
@@ -4031,8 +4055,11 @@ export interface ExportFunctionsOptions {
4031
4055
  *
4032
4056
  * Every function exports as a closed value: a function with captures (a
4033
4057
  * closure over the enclosing body) is rejected, as is one that itself holds
4034
- * an unresolved import — link before exporting; v1 does not chain. The
4035
- * exported IR carries no location ids (a manifest has no source map).
4058
+ * an unresolved import — link before exporting; v1 does not chain. Each
4059
+ * function carries the locations its IR names, renumbered into a source map
4060
+ * of its own, so the frames of an error or a profile name its source
4061
+ * wherever it is linked; a bare IR value, which carries no map, exports
4062
+ * without locations.
4036
4063
  *
4037
4064
  * @param pkg - The exporting package's name (what importers name)
4038
4065
  * @param version - Its version
@@ -4055,7 +4082,15 @@ export declare function exportFunctions(pkg: string, version: string, functions:
4055
4082
  * `linkImports` read, in either language.
4056
4083
  */
4057
4084
  export declare function encodeFunctionManifest(manifest: FunctionManifest): Uint8Array;
4058
- /** Decodes a function manifest written by either language. */
4085
+ /**
4086
+ * Decodes a function manifest written by either language.
4087
+ *
4088
+ * @param data - The manifest's beast2 bytes
4089
+ * @returns The manifest value
4090
+ * @throws {Error} For a manifest an earlier release wrote — its functions
4091
+ * carry no source map — naming the fix: re-export it. Any other blob fails
4092
+ * as beast2 refuses it.
4093
+ */
4059
4094
  export declare function decodeFunctionManifest(data: Uint8Array): FunctionManifest;
4060
4095
  /**
4061
4096
  * Refers to a function exported by another package (in either language) as a
@@ -4092,11 +4127,13 @@ export declare function importFunction<I extends EastType[], O extends EastType>
4092
4127
  * import (and, for a type mismatch, both types). The exported IR becomes a
4093
4128
  * `Let`-bound constant at the top of the importing function's body; a use
4094
4129
  * inside a nested function captures it, so the nested functions' `captures`
4095
- * are extended. The result is self-contained IR with no import left.
4130
+ * are extended. The result is self-contained IR with no import left. The
4131
+ * embedded functions keep their locations: their stacks join a copy of the
4132
+ * importer's source map, which the result carries.
4096
4133
  *
4097
4134
  * @param fnOrIr - A function expression, its `toIR()`, or an IR value
4098
4135
  * @param manifests - The exporting packages' manifests
4099
- * @returns The linked IR and the imports it resolved (with their platform dependencies)
4136
+ * @returns The linked IR, the imports it resolved (with their platform dependencies) and the source map its loc_ids index
4100
4137
  * @throws {Error} For an unresolvable import or a type mismatch
4101
4138
  */
4102
4139
  export declare function linkImports(fnOrIr: unknown, manifests: FunctionManifest[]): Linked;