@elaraai/east 1.0.84 → 1.0.85

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 (239) 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/index.d.ts +3 -0
  69. package/dist/src/index.d.ts.map +1 -1
  70. package/dist/src/index.js +3 -0
  71. package/dist/src/index.js.map +1 -1
  72. package/dist/src/internal.d.ts +4 -0
  73. package/dist/src/internal.d.ts.map +1 -1
  74. package/dist/src/internal.js +9 -0
  75. package/dist/src/internal.js.map +1 -1
  76. package/dist/src/location.d.ts +22 -0
  77. package/dist/src/location.d.ts.map +1 -1
  78. package/dist/src/location.js +31 -0
  79. package/dist/src/location.js.map +1 -1
  80. package/dist/src/naming.d.ts +5 -3
  81. package/dist/src/naming.d.ts.map +1 -1
  82. package/dist/src/naming.js.map +1 -1
  83. package/dist/src/portable.spec.d.ts +6 -0
  84. package/dist/src/portable.spec.d.ts.map +1 -0
  85. package/dist/src/portable.spec.js +181 -0
  86. package/dist/src/portable.spec.js.map +1 -0
  87. package/dist/src/query/evaluate.d.ts +98 -0
  88. package/dist/src/query/evaluate.d.ts.map +1 -0
  89. package/dist/src/query/evaluate.js +193 -0
  90. package/dist/src/query/evaluate.js.map +1 -0
  91. package/dist/src/query/index.d.ts +17 -0
  92. package/dist/src/query/index.d.ts.map +1 -0
  93. package/dist/src/query/index.js +17 -0
  94. package/dist/src/query/index.js.map +1 -0
  95. package/dist/src/query/jq/catalog.d.ts +174 -0
  96. package/dist/src/query/jq/catalog.d.ts.map +1 -0
  97. package/dist/src/query/jq/catalog.js +1740 -0
  98. package/dist/src/query/jq/catalog.js.map +1 -0
  99. package/dist/src/query/jq/check.d.ts +210 -0
  100. package/dist/src/query/jq/check.d.ts.map +1 -0
  101. package/dist/src/query/jq/check.js +2261 -0
  102. package/dist/src/query/jq/check.js.map +1 -0
  103. package/dist/src/query/jq/complete.d.ts +89 -0
  104. package/dist/src/query/jq/complete.d.ts.map +1 -0
  105. package/dist/src/query/jq/complete.js +320 -0
  106. package/dist/src/query/jq/complete.js.map +1 -0
  107. package/dist/src/query/jq/describe.d.ts +53 -0
  108. package/dist/src/query/jq/describe.d.ts.map +1 -0
  109. package/dist/src/query/jq/describe.js +149 -0
  110. package/dist/src/query/jq/describe.js.map +1 -0
  111. package/dist/src/query/jq/lex.d.ts +118 -0
  112. package/dist/src/query/jq/lex.d.ts.map +1 -0
  113. package/dist/src/query/jq/lex.js +371 -0
  114. package/dist/src/query/jq/lex.js.map +1 -0
  115. package/dist/src/query/jq/literals.d.ts +49 -0
  116. package/dist/src/query/jq/literals.d.ts.map +1 -0
  117. package/dist/src/query/jq/literals.js +78 -0
  118. package/dist/src/query/jq/literals.js.map +1 -0
  119. package/dist/src/query/jq/messages.d.ts +126 -0
  120. package/dist/src/query/jq/messages.d.ts.map +1 -0
  121. package/dist/src/query/jq/messages.js +172 -0
  122. package/dist/src/query/jq/messages.js.map +1 -0
  123. package/dist/src/query/jq/parse.d.ts +70 -0
  124. package/dist/src/query/jq/parse.d.ts.map +1 -0
  125. package/dist/src/query/jq/parse.js +1013 -0
  126. package/dist/src/query/jq/parse.js.map +1 -0
  127. package/dist/src/query/jq/print.d.ts +59 -0
  128. package/dist/src/query/jq/print.d.ts.map +1 -0
  129. package/dist/src/query/jq/print.js +587 -0
  130. package/dist/src/query/jq/print.js.map +1 -0
  131. package/dist/src/query/jq/shapes.d.ts +345 -0
  132. package/dist/src/query/jq/shapes.d.ts.map +1 -0
  133. package/dist/src/query/jq/shapes.js +584 -0
  134. package/dist/src/query/jq/shapes.js.map +1 -0
  135. package/dist/src/query/jq/spans.d.ts +133 -0
  136. package/dist/src/query/jq/spans.d.ts.map +1 -0
  137. package/dist/src/query/jq/spans.js +195 -0
  138. package/dist/src/query/jq/spans.js.map +1 -0
  139. package/dist/src/query/jq/split.d.ts +334 -0
  140. package/dist/src/query/jq/split.d.ts.map +1 -0
  141. package/dist/src/query/jq/split.js +2108 -0
  142. package/dist/src/query/jq/split.js.map +1 -0
  143. package/dist/src/query/jq/strftime.d.ts +20 -0
  144. package/dist/src/query/jq/strftime.d.ts.map +1 -0
  145. package/dist/src/query/jq/strftime.js +65 -0
  146. package/dist/src/query/jq/strftime.js.map +1 -0
  147. package/dist/src/query/jq/summary.d.ts +139 -0
  148. package/dist/src/query/jq/summary.d.ts.map +1 -0
  149. package/dist/src/query/jq/summary.js +222 -0
  150. package/dist/src/query/jq/summary.js.map +1 -0
  151. package/dist/src/query/jq/translate-builtins.d.ts +21 -0
  152. package/dist/src/query/jq/translate-builtins.d.ts.map +1 -0
  153. package/dist/src/query/jq/translate-builtins.js +1873 -0
  154. package/dist/src/query/jq/translate-builtins.js.map +1 -0
  155. package/dist/src/query/jq/translate.d.ts +627 -0
  156. package/dist/src/query/jq/translate.d.ts.map +1 -0
  157. package/dist/src/query/jq/translate.js +3364 -0
  158. package/dist/src/query/jq/translate.js.map +1 -0
  159. package/dist/src/query/types.d.ts +505 -0
  160. package/dist/src/query/types.d.ts.map +1 -0
  161. package/dist/src/query/types.js +231 -0
  162. package/dist/src/query/types.js.map +1 -0
  163. package/dist/src/runner_exec.d.ts +134 -0
  164. package/dist/src/runner_exec.d.ts.map +1 -0
  165. package/dist/src/runner_exec.js +371 -0
  166. package/dist/src/runner_exec.js.map +1 -0
  167. package/dist/src/runner_exec.spec.d.ts +6 -0
  168. package/dist/src/runner_exec.spec.d.ts.map +1 -0
  169. package/dist/src/runner_exec.spec.js +198 -0
  170. package/dist/src/runner_exec.spec.js.map +1 -0
  171. package/dist/src/runner_io.d.ts +370 -0
  172. package/dist/src/runner_io.d.ts.map +1 -0
  173. package/dist/src/runner_io.js +563 -0
  174. package/dist/src/runner_io.js.map +1 -0
  175. package/dist/src/runner_io.spec.d.ts +6 -0
  176. package/dist/src/runner_io.spec.d.ts.map +1 -0
  177. package/dist/src/runner_io.spec.js +224 -0
  178. package/dist/src/runner_io.spec.js.map +1 -0
  179. package/dist/src/runner_merge.d.ts +95 -0
  180. package/dist/src/runner_merge.d.ts.map +1 -0
  181. package/dist/src/runner_merge.js +238 -0
  182. package/dist/src/runner_merge.js.map +1 -0
  183. package/dist/src/runner_protocol.d.ts +11 -4
  184. package/dist/src/runner_protocol.d.ts.map +1 -1
  185. package/dist/src/runner_protocol.js +11 -4
  186. package/dist/src/runner_protocol.js.map +1 -1
  187. package/dist/src/serialization/beast2/index.d.ts +1 -1
  188. package/dist/src/serialization/beast2/index.d.ts.map +1 -1
  189. package/dist/src/serialization/beast2/index.js.map +1 -1
  190. package/dist/src/serialization/beast2/v5/frames.d.ts +10 -6
  191. package/dist/src/serialization/beast2/v5/frames.d.ts.map +1 -1
  192. package/dist/src/serialization/beast2/v5/frames.js +10 -6
  193. package/dist/src/serialization/beast2/v5/frames.js.map +1 -1
  194. package/dist/src/serialization/beast2/v5/frames.spec.d.ts +6 -0
  195. package/dist/src/serialization/beast2/v5/frames.spec.d.ts.map +1 -0
  196. package/dist/src/serialization/beast2/v5/frames.spec.js +42 -0
  197. package/dist/src/serialization/beast2/v5/frames.spec.js.map +1 -0
  198. package/dist/src/serialization/beast2/v5/index.spec.js +108 -0
  199. package/dist/src/serialization/beast2/v5/index.spec.js.map +1 -1
  200. package/dist/src/serialization/beast2/v5/lazy.d.ts +12 -7
  201. package/dist/src/serialization/beast2/v5/lazy.d.ts.map +1 -1
  202. package/dist/src/serialization/beast2/v5/lazy.js +16 -6
  203. package/dist/src/serialization/beast2/v5/lazy.js.map +1 -1
  204. package/dist/src/serialization/beast2/v5/lazy.spec.js +159 -18
  205. package/dist/src/serialization/beast2/v5/lazy.spec.js.map +1 -1
  206. package/dist/src/serialization/beast2/v5/stream.d.ts +110 -21
  207. package/dist/src/serialization/beast2/v5/stream.d.ts.map +1 -1
  208. package/dist/src/serialization/beast2/v5/stream.js +153 -42
  209. package/dist/src/serialization/beast2/v5/stream.js.map +1 -1
  210. package/dist/src/serialization/beast2/v5/weight.d.ts +36 -0
  211. package/dist/src/serialization/beast2/v5/weight.d.ts.map +1 -0
  212. package/dist/src/serialization/beast2/v5/weight.js +238 -0
  213. package/dist/src/serialization/beast2/v5/weight.js.map +1 -0
  214. package/dist/src/serialization/crc32.d.ts +38 -0
  215. package/dist/src/serialization/crc32.d.ts.map +1 -0
  216. package/dist/src/serialization/crc32.js +70 -0
  217. package/dist/src/serialization/crc32.js.map +1 -0
  218. package/dist/src/serialization/crc32.spec.d.ts +6 -0
  219. package/dist/src/serialization/crc32.spec.d.ts.map +1 -0
  220. package/dist/src/serialization/crc32.spec.js +92 -0
  221. package/dist/src/serialization/crc32.spec.js.map +1 -0
  222. package/dist/src/serialization/east-inferred.spec.js +4 -0
  223. package/dist/src/serialization/east-inferred.spec.js.map +1 -1
  224. package/dist/src/serialization/east.d.ts.map +1 -1
  225. package/dist/src/serialization/east.js +134 -110
  226. package/dist/src/serialization/east.js.map +1 -1
  227. package/dist/src/serialization/east.spec.js +185 -4
  228. package/dist/src/serialization/east.spec.js.map +1 -1
  229. package/dist/src/serialization/east_text.d.ts +25 -0
  230. package/dist/src/serialization/east_text.d.ts.map +1 -0
  231. package/dist/src/serialization/east_text.js +29 -0
  232. package/dist/src/serialization/east_text.js.map +1 -0
  233. package/dist/src/serialization/index.d.ts +1 -1
  234. package/dist/src/serialization/index.d.ts.map +1 -1
  235. package/dist/src/types.d.ts +1 -1
  236. package/dist/src/types.d.ts.map +1 -1
  237. package/dist/src/types.js +7 -6
  238. package/dist/src/types.js.map +1 -1
  239. package/package.json +6 -3
@@ -275,6 +275,37 @@ let captureEnabled = true;
275
275
  export function setLocationCapture(enabled) {
276
276
  captureEnabled = enabled;
277
277
  }
278
+ /**
279
+ * Builds with source-location capture switched on or off, then switches it
280
+ * back as it was.
281
+ *
282
+ * @param enabled - `false` to build without capturing locations, `true` to
283
+ * capture them
284
+ * @param build - what to build
285
+ * @returns what `build` returns
286
+ *
287
+ * @remarks
288
+ * A program whose bytes must not depend on the code that built it is built
289
+ * with capture off: one that e3 caches by its hash, which a browser and a
290
+ * server, or two builds of an app, must give alike. Locations given
291
+ * explicitly, as a query's are, still name their place.
292
+ *
293
+ * @example
294
+ * ```ts
295
+ * // The same bytes wherever and however often it is built.
296
+ * const ir = withLocationCapture(false, () => encodeEastIR(fn().toIR()));
297
+ * ```
298
+ */
299
+ export function withLocationCapture(enabled, build) {
300
+ const previous = captureEnabled;
301
+ captureEnabled = enabled;
302
+ try {
303
+ return build();
304
+ }
305
+ finally {
306
+ captureEnabled = previous;
307
+ }
308
+ }
278
309
  function capture_stack_frames() {
279
310
  if (!captureEnabled)
280
311
  return [];
@@ -1 +1 @@
1
- {"version":3,"file":"location.js","sourceRoot":"","sources":["../../src/location.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"location.js","sourceRoot":"","sources":["../../src/location.ts"],"names":[],"mappings":"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"}
@@ -21,9 +21,11 @@
21
21
  * browser, a project without TypeScript, a TypeScript whose package carries no
22
22
  * parser (TypeScript 7's exports its version alone) — or a source cannot be
23
23
  * read (a REPL line that is gone, a native function), the name stays `_N`,
24
- * exactly as before: East's own libraries build functions as they are
25
- * imported, so a parser that fails here would fail the import. Uniqueness is
26
- * the lowering's job (`ast_to_ir` suffixes a collision), not this module's.
24
+ * exactly as before: every function's build reads its parameters' names, East's
25
+ * own library functions' too, the first time each is read, so a parser that
26
+ * fails here would fail them all. Nothing is built as East is imported, so
27
+ * importing it loads no compiler (#1127). Uniqueness is the lowering's job
28
+ * (`ast_to_ir` suffixes a collision), not this module's.
27
29
  */
28
30
  import type { Location } from "./location.js";
29
31
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../../src/naming.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAmC9C;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,IAAI,CAyB3D;AAgHD;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,GAAG,MAAM,GAAG,IAAI,CAiBxE"}
1
+ {"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../../src/naming.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAmC9C;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,IAAI,CAyB3D;AAgHD;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,GAAG,MAAM,GAAG,IAAI,CAiBxE"}
@@ -1 +1 @@
1
- {"version":3,"file":"naming.js","sourceRoot":"","sources":["../../src/naming.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"naming.js","sourceRoot":"","sources":["../../src/naming.ts"],"names":[],"mappings":"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"}
@@ -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=portable.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portable.spec.d.ts","sourceRoot":"","sources":["../../src/portable.spec.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,181 @@
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
+ * What a browser loads to run a unit reaches no Node module (#1023).
7
+ *
8
+ * `executeUnit`, the `UnitIO` it works over and the merge of a unit's parts run
9
+ * in a browser's Web Worker as they run under east-node. So every module they
10
+ * reach — walked from them through each import and export the compiler keeps,
11
+ * and each dynamic `import()` — imports only east's own modules and the
12
+ * packages a browser loads as they are, and uses neither the `Buffer` nor the
13
+ * `process` global. A module reaches Node only through a guarded
14
+ * `globalThis.process?.getBuiltinModule`, which a browser answers with
15
+ * `undefined`, as the frame layer reaches zlib.
16
+ *
17
+ * A type-only import is erased, so it reaches nothing; `import { type X }` is
18
+ * kept under `verbatimModuleSyntax` as a side-effect import, so it does.
19
+ */
20
+ import { describe, it } from "node:test";
21
+ import assert from "node:assert/strict";
22
+ import { existsSync, readFileSync } from "node:fs";
23
+ import { join, posix } from "node:path";
24
+ import { fileURLToPath } from "node:url";
25
+ import ts from "typescript";
26
+ /** east's sources: the spec runs from `dist/src`. */
27
+ const SRC = fileURLToPath(new URL("../../src/", import.meta.url));
28
+ /** The modules a browser loads to run a unit. */
29
+ const ENTRIES = ["runner_exec.ts", "runner_io.ts", "runner_merge.ts"];
30
+ /** The packages a module may import besides east's own modules: east's one
31
+ * dependency, which a browser loads as it is. */
32
+ const PACKAGES = new Set(["sorted-btree"]);
33
+ /** The Node globals no module may use. */
34
+ const GLOBALS = new Set(["Buffer", "process"]);
35
+ /** Whether an identifier named for a global is a use of that global: not a
36
+ * property or member named so (`globalThis.process`), not a binding of that
37
+ * name, and not in a type, which is erased. */
38
+ function usesGlobal(node) {
39
+ const parent = node.parent;
40
+ if (ts.isPropertyAccessExpression(parent) && parent.name === node)
41
+ return false;
42
+ if ((ts.isPropertyAssignment(parent) || ts.isPropertyDeclaration(parent) || ts.isPropertySignature(parent) ||
43
+ ts.isMethodDeclaration(parent) || ts.isMethodSignature(parent) || ts.isGetAccessorDeclaration(parent) ||
44
+ ts.isSetAccessorDeclaration(parent) || ts.isEnumMember(parent)) && parent.name === node)
45
+ return false;
46
+ if ((ts.isVariableDeclaration(parent) || ts.isParameter(parent) || ts.isFunctionDeclaration(parent) ||
47
+ ts.isClassDeclaration(parent)) && parent.name === node)
48
+ return false;
49
+ if (ts.isBindingElement(parent) && (parent.name === node || parent.propertyName === node))
50
+ return false;
51
+ for (let at = parent; !ts.isSourceFile(at); at = at.parent) {
52
+ if (ts.isTypeNode(at))
53
+ return false;
54
+ }
55
+ return true;
56
+ }
57
+ /**
58
+ * Walks every module `entries` reach and says what in them reaches Node.
59
+ *
60
+ * @param entries - the modules to start from, by their paths under the source
61
+ * root, forward-slashed
62
+ * @param source - a module's source, or `undefined` when there is none
63
+ * @returns the modules reached, and each import of a module that is neither
64
+ * east's own nor a package in {@link PACKAGES}, and each use of a global in
65
+ * {@link GLOBALS}, as `<module> imports <specifier>` and
66
+ * `<module>:<line> uses the <name> global`
67
+ */
68
+ function walk(entries, source) {
69
+ const reached = [];
70
+ const problems = [];
71
+ const seen = new Set();
72
+ const pending = [...entries];
73
+ while (pending.length > 0) {
74
+ const module = pending.shift();
75
+ if (seen.has(module))
76
+ continue;
77
+ seen.add(module);
78
+ const text = source(module);
79
+ if (text === undefined) {
80
+ problems.push(`${module} is not there`);
81
+ continue;
82
+ }
83
+ reached.push(module);
84
+ const file = ts.createSourceFile(module, text, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
85
+ const imports = (specifier) => {
86
+ if (specifier === undefined)
87
+ return;
88
+ if (!ts.isStringLiteral(specifier)) {
89
+ problems.push(`${module} imports a module it computes`);
90
+ }
91
+ else if (specifier.text.startsWith(".")) {
92
+ pending.push(posix.normalize(posix.join(posix.dirname(module), specifier.text)).replace(/\.js$/, ".ts"));
93
+ }
94
+ else if (!PACKAGES.has(specifier.text)) {
95
+ problems.push(`${module} imports ${specifier.text}`);
96
+ }
97
+ };
98
+ const visit = (node) => {
99
+ if (ts.isImportDeclaration(node)) {
100
+ if (!node.importClause?.isTypeOnly)
101
+ imports(node.moduleSpecifier);
102
+ return;
103
+ }
104
+ if (ts.isExportDeclaration(node)) {
105
+ if (!node.isTypeOnly)
106
+ imports(node.moduleSpecifier);
107
+ return;
108
+ }
109
+ if (ts.isImportEqualsDeclaration(node)) {
110
+ if (!node.isTypeOnly && ts.isExternalModuleReference(node.moduleReference))
111
+ imports(node.moduleReference.expression);
112
+ return;
113
+ }
114
+ if (ts.isCallExpression(node) && node.expression.kind === ts.SyntaxKind.ImportKeyword)
115
+ imports(node.arguments[0]);
116
+ if (ts.isIdentifier(node) && GLOBALS.has(node.text) && usesGlobal(node)) {
117
+ const { line } = file.getLineAndCharacterOfPosition(node.getStart(file));
118
+ problems.push(`${module}:${line + 1} uses the ${node.text} global`);
119
+ }
120
+ ts.forEachChild(node, visit);
121
+ };
122
+ visit(file);
123
+ }
124
+ return { reached, problems };
125
+ }
126
+ /** A module of east's sources, by its path under `src/`. */
127
+ function eastSource(module) {
128
+ const file = join(SRC, module);
129
+ return existsSync(file) ? readFileSync(file, "utf8") : undefined;
130
+ }
131
+ describe("what a browser loads to run a unit", () => {
132
+ it("reaches no Node module and uses no Node global", () => {
133
+ const { reached, problems } = walk(ENTRIES, eastSource);
134
+ assert.deepEqual(problems, [], "these reach Node: reach it through a guarded globalThis.process?.getBuiltinModule, or not at all");
135
+ // The walk reaches the compiler and the collection layer, the frame layer
136
+ // among them, which reaches zlib the guarded way.
137
+ for (const module of ["eastir.ts", "compile/runtime.ts", "serialization/beast2/v5/lazy.ts", "serialization/beast2/v5/frames.ts", "serialization/beast2/v5/frame-pool.ts"]) {
138
+ assert.ok(reached.includes(module), `the walk reaches ${module}`);
139
+ }
140
+ });
141
+ it("names a planted Node import, however it is written, and each use of a Node global", () => {
142
+ const modules = new Map([
143
+ ["entry.ts", [
144
+ 'import { helper } from "./helpers/helper.js";',
145
+ 'import type { Stats } from "node:fs";',
146
+ 'export const run = (stats?: Stats): unknown => helper(stats);',
147
+ ].join("\n")],
148
+ ["helpers/helper.ts", [
149
+ 'import { readFileSync } from "node:fs";',
150
+ 'export function helper(_x: unknown): unknown {',
151
+ ' return Buffer.from(process.env.X ?? "");',
152
+ '}',
153
+ 'export { type Worker } from "node:worker_threads";',
154
+ 'export const later = () => import("node:os");',
155
+ ].join("\n")],
156
+ ]);
157
+ const { reached, problems } = walk(["entry.ts"], (module) => modules.get(module));
158
+ assert.deepEqual(reached, ["entry.ts", "helpers/helper.ts"]);
159
+ assert.deepEqual(problems, [
160
+ "helpers/helper.ts imports node:fs",
161
+ "helpers/helper.ts:3 uses the Buffer global",
162
+ "helpers/helper.ts:3 uses the process global",
163
+ "helpers/helper.ts imports node:worker_threads",
164
+ "helpers/helper.ts imports node:os",
165
+ ]);
166
+ });
167
+ it("passes Node reached through a guarded globalThis.process, and Node named only in types", () => {
168
+ const modules = new Map([
169
+ ["entry.ts", [
170
+ 'import type { Buffer as NodeBuffer } from "node:buffer";',
171
+ 'const zlib = (globalThis as { process?: { getBuiltinModule?: (id: string) => unknown } }).process?.getBuiltinModule?.("node:zlib") ?? null;',
172
+ 'export type Gauge = { process?: { cwd?: () => string } };',
173
+ 'export const bytes = (b: NodeBuffer | Buffer): number => b.length + (zlib === null ? 0 : 1);',
174
+ 'export const named = { process: 1, Buffer: 2 };',
175
+ 'export const read = ({ process: p }: { process: number }): number => p;',
176
+ ].join("\n")],
177
+ ]);
178
+ assert.deepEqual(walk(["entry.ts"], (module) => modules.get(module)).problems, []);
179
+ });
180
+ });
181
+ //# sourceMappingURL=portable.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portable.spec.js","sourceRoot":"","sources":["../../src/portable.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
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 { PlatformFunction } from "../platform.js";
6
+ import type { EastType, ValueTypeOf } from "../types.js";
7
+ import type { QueryErrorType } from "./types.js";
8
+ import { type CheckJqResult } from "./jq/check.js";
9
+ /** A diagnostic of a query: the checker's, or an error its run raised. */
10
+ export type QueryDiagnostic = ValueTypeOf<typeof QueryErrorType>;
11
+ /**
12
+ * A query that does not check, or whose run raised an error: its diagnostics,
13
+ * and a message that lists each error with its line and column in the jq text.
14
+ *
15
+ * @remarks
16
+ * `diagnostics` holds the checker's diagnostics, lints included, when the
17
+ * query does not check; for an error raised while it ran, one `runtime`
18
+ * diagnostic whose message is the East error's and whose span is the jq
19
+ * node that raised it.
20
+ */
21
+ export declare class QueryError extends Error {
22
+ /** The diagnostics, in the order found. */
23
+ readonly diagnostics: QueryDiagnostic[];
24
+ /**
25
+ * @param diagnostics - the diagnostics; the message lists those of error severity
26
+ */
27
+ constructor(diagnostics: QueryDiagnostic[]);
28
+ }
29
+ /** Options for {@link evaluateJq}. */
30
+ export interface EvaluateJqOptions {
31
+ /** The input's type: required with a program's text. */
32
+ inputType?: EastType;
33
+ /** The input is an e3 root, a struct of datasets: each field the query reads is passed alone, so a lazy one stays lazy. */
34
+ root?: boolean;
35
+ /** Allow the tooling-only builtins, whose platform functions `platform` gives (`devdocs/QUERY.md` §15.9). */
36
+ tooling?: boolean;
37
+ /** Platform functions, for function values in the input that need them. */
38
+ platform?: PlatformFunction[];
39
+ }
40
+ /**
41
+ * Checks, translates, compiles and runs a jq query over a value.
42
+ *
43
+ * @param program - the query's text, or what {@link checkJq} made of it
44
+ * @param input - the input: a decoded value, or a lazy one
45
+ * @param options - `inputType` with text; `root` for an e3 root; `tooling`;
46
+ * `platform` for function values that need one
47
+ * @returns the result: the element for a `one` query, an option for `maybe`,
48
+ * an array for `many`
49
+ * @throws {QueryError} When the query does not check, carrying the
50
+ * checker's diagnostics; or when its run raises an error, as one `runtime`
51
+ * diagnostic at the jq node that raised it.
52
+ *
53
+ * @remarks
54
+ * The compiled function is cached by the query's canonical text, its input
55
+ * type and the options, so a query run again compiles once. With `root`, the
56
+ * input is a struct and each field the query reads is its own argument.
57
+ *
58
+ * @example
59
+ * ```ts
60
+ * const Order = StructType({ id: IntegerType, total: FloatType });
61
+ * const orders = [{ id: 1n, total: 250.0 }, { id: 2n, total: 1200.0 }];
62
+ * evaluateJq("[.[] | select(.total > 1000) | .id]", orders, { inputType: ArrayType(Order) });
63
+ * // [2n]
64
+ * ```
65
+ */
66
+ export declare function evaluateJq(program: string | CheckJqResult, input: unknown, options?: EvaluateJqOptions): unknown;
67
+ /**
68
+ * The `runtime` diagnostic for an error a query's run raised: its message, at
69
+ * the jq node that raised it.
70
+ *
71
+ * @param checked - what {@link checkJq} made of the query that ran
72
+ * @param message - the error's message, as the runtime raised it
73
+ * @param at - the 1-based line and column in the jq text the error names, when
74
+ * it names one: a translation's IR carries each node's place in the jq, which
75
+ * a runtime reports with the error (`at jq:2:26`)
76
+ * @returns the diagnostic: `runtime`, its message led by the code, and its span
77
+ * the node that raised it — `none` when the error names no place in the jq
78
+ *
79
+ * @remarks
80
+ * The node that raised it is the innermost that starts at that line and
81
+ * column and can raise: a literal, `.` or a variable, which can start at the
82
+ * same place, cannot. When no node that can raise starts there, the span is
83
+ * empty, at that place. {@link evaluateJq} places the errors of the runs it
84
+ * makes so, and a host that runs a query elsewhere — as one-shot runs a
85
+ * translation — places what the runtime reported the same way.
86
+ *
87
+ * @example
88
+ * ```ts
89
+ * const checked = checkJq("[.[] | 10 / .]", ArrayType(IntegerType));
90
+ * runtimeErrorAt(checked, "Division by zero", { line: 1, column: 8 });
91
+ * // { code: "runtime", message: "runtime: Division by zero", span: some({ line: 1n, column: 8n, offset: 7n, length: 6n }), … }
92
+ * ```
93
+ */
94
+ export declare function runtimeErrorAt(checked: CheckJqResult, message: string, at?: {
95
+ readonly line: number;
96
+ readonly column: number;
97
+ }): QueryDiagnostic;
98
+ //# sourceMappingURL=evaluate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../../../src/query/evaluate.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGvD,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAW,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAM5D,0EAA0E;AAC1E,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,OAAO,cAAc,CAAC,CAAC;AAEjE;;;;;;;;;GASG;AACH,qBAAa,UAAW,SAAQ,KAAK;IACnC,2CAA2C;IAC3C,QAAQ,CAAC,WAAW,EAAE,eAAe,EAAE,CAAC;IAExC;;OAEG;gBACS,WAAW,EAAE,eAAe,EAAE;CAS3C;AAED,sCAAsC;AACtC,MAAM,WAAW,iBAAiB;IAChC,wDAAwD;IACxD,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,2HAA2H;IAC3H,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,6GAA6G;IAC7G,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAcD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAYpH;AA8BD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,eAAe,CAahJ"}
@@ -0,0 +1,193 @@
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
+ * Running a jq query from a host: checked, translated to East IR, compiled
7
+ * once and cached, then called (`devdocs/QUERY.md` §15).
8
+ *
9
+ * @packageDocumentation
10
+ */
11
+ import { EastError } from "../error.js";
12
+ import { printFor } from "../serialization/east.js";
13
+ import { EastTypeType, canonicalTypeValue, toEastTypeValue } from "../type_of_type.js";
14
+ import { checkJq } from "./jq/check.js";
15
+ import { report } from "./jq/messages.js";
16
+ import { printJq } from "./jq/print.js";
17
+ import { childPath, jqChildren } from "./jq/spans.js";
18
+ import { translateJq } from "./jq/translate.js";
19
+ /**
20
+ * A query that does not check, or whose run raised an error: its diagnostics,
21
+ * and a message that lists each error with its line and column in the jq text.
22
+ *
23
+ * @remarks
24
+ * `diagnostics` holds the checker's diagnostics, lints included, when the
25
+ * query does not check; for an error raised while it ran, one `runtime`
26
+ * diagnostic whose message is the East error's and whose span is the jq
27
+ * node that raised it.
28
+ */
29
+ export class QueryError extends Error {
30
+ /** The diagnostics, in the order found. */
31
+ diagnostics;
32
+ /**
33
+ * @param diagnostics - the diagnostics; the message lists those of error severity
34
+ */
35
+ constructor(diagnostics) {
36
+ const errors = diagnostics.filter(d => d.severity.type === "error");
37
+ super((errors.length > 0 ? errors : diagnostics).map(d => {
38
+ const where = d.span.type === "some" ? `jq ${d.span.value.line}:${d.span.value.column}: ` : "";
39
+ return `${where}${d.message}`;
40
+ }).join("\n"));
41
+ this.name = "QueryError";
42
+ this.diagnostics = diagnostics;
43
+ }
44
+ }
45
+ /** Compiled queries by their canonical text, input type and options, the oldest dropped past {@link CACHE_SIZE}. */
46
+ const cache = new Map();
47
+ const CACHE_SIZE = 64;
48
+ const printTypeValue = printFor(EastTypeType);
49
+ /**
50
+ * Checks, translates, compiles and runs a jq query over a value.
51
+ *
52
+ * @param program - the query's text, or what {@link checkJq} made of it
53
+ * @param input - the input: a decoded value, or a lazy one
54
+ * @param options - `inputType` with text; `root` for an e3 root; `tooling`;
55
+ * `platform` for function values that need one
56
+ * @returns the result: the element for a `one` query, an option for `maybe`,
57
+ * an array for `many`
58
+ * @throws {QueryError} When the query does not check, carrying the
59
+ * checker's diagnostics; or when its run raises an error, as one `runtime`
60
+ * diagnostic at the jq node that raised it.
61
+ *
62
+ * @remarks
63
+ * The compiled function is cached by the query's canonical text, its input
64
+ * type and the options, so a query run again compiles once. With `root`, the
65
+ * input is a struct and each field the query reads is its own argument.
66
+ *
67
+ * @example
68
+ * ```ts
69
+ * const Order = StructType({ id: IntegerType, total: FloatType });
70
+ * const orders = [{ id: 1n, total: 250.0 }, { id: 2n, total: 1200.0 }];
71
+ * evaluateJq("[.[] | select(.total > 1000) | .id]", orders, { inputType: ArrayType(Order) });
72
+ * // [2n]
73
+ * ```
74
+ */
75
+ export function evaluateJq(program, input, options = {}) {
76
+ const compiled = compile(program, options);
77
+ const args = compiled.translation.inputs.map(i => i.name === null ? input : input[i.name]);
78
+ try {
79
+ return compiled.run(...args);
80
+ }
81
+ catch (e) {
82
+ if (e instanceof EastError) {
83
+ const at = e.location.find((l) => l.filename === "jq");
84
+ throw new QueryError([runtimeErrorAt(compiled.checked, e.eastMessage, at === undefined ? undefined : { line: Number(at.line), column: Number(at.column) })]);
85
+ }
86
+ throw e;
87
+ }
88
+ }
89
+ /** A query checked, translated and compiled, from the cache when it was before. */
90
+ function compile(program, options) {
91
+ let checked;
92
+ let key;
93
+ if (typeof program === "string") {
94
+ if (options.inputType === undefined)
95
+ throw new TypeError("evaluateJq: a query's text needs options.inputType");
96
+ const typeKey = printTypeValue(canonicalTypeValue(toEastTypeValue(options.inputType)));
97
+ key = `${program}\u0000${typeKey}\u0000${options.root === true}\u0000${options.tooling === true}`;
98
+ const hit = cache.get(key);
99
+ if (hit !== undefined)
100
+ return hit;
101
+ checked = checkJq(program, options.inputType, { root: options.root === true, tooling: options.tooling === true });
102
+ }
103
+ else {
104
+ checked = program;
105
+ if (checked.program === null)
106
+ throw new QueryError(checked.diagnostics);
107
+ const typeKey = printTypeValue(canonicalTypeValue(toEastTypeValue(checked.inputType)));
108
+ key = `${printJq(checked.program).text}\u0000${typeKey}\u0000${checked.source.root}\u0000${options.tooling === true}`;
109
+ const hit = cache.get(key);
110
+ if (hit !== undefined)
111
+ return hit;
112
+ }
113
+ if (checked.program === null)
114
+ throw new QueryError(checked.diagnostics);
115
+ const translation = translateJq(checked, { tooling: options.tooling === true });
116
+ const run = translation.fn().toIR().compile(options.platform ?? []);
117
+ const compiled = { translation, checked, run };
118
+ if (cache.size >= CACHE_SIZE)
119
+ cache.delete(cache.keys().next().value);
120
+ cache.set(key, compiled);
121
+ return compiled;
122
+ }
123
+ /**
124
+ * The `runtime` diagnostic for an error a query's run raised: its message, at
125
+ * the jq node that raised it.
126
+ *
127
+ * @param checked - what {@link checkJq} made of the query that ran
128
+ * @param message - the error's message, as the runtime raised it
129
+ * @param at - the 1-based line and column in the jq text the error names, when
130
+ * it names one: a translation's IR carries each node's place in the jq, which
131
+ * a runtime reports with the error (`at jq:2:26`)
132
+ * @returns the diagnostic: `runtime`, its message led by the code, and its span
133
+ * the node that raised it — `none` when the error names no place in the jq
134
+ *
135
+ * @remarks
136
+ * The node that raised it is the innermost that starts at that line and
137
+ * column and can raise: a literal, `.` or a variable, which can start at the
138
+ * same place, cannot. When no node that can raise starts there, the span is
139
+ * empty, at that place. {@link evaluateJq} places the errors of the runs it
140
+ * makes so, and a host that runs a query elsewhere — as one-shot runs a
141
+ * translation — places what the runtime reported the same way.
142
+ *
143
+ * @example
144
+ * ```ts
145
+ * const checked = checkJq("[.[] | 10 / .]", ArrayType(IntegerType));
146
+ * runtimeErrorAt(checked, "Division by zero", { line: 1, column: 8 });
147
+ * // { code: "runtime", message: "runtime: Division by zero", span: some({ line: 1n, column: 8n, offset: 7n, length: 6n }), … }
148
+ * ```
149
+ */
150
+ export function runtimeErrorAt(checked, message, at) {
151
+ const text = checked.source.text;
152
+ let range;
153
+ if (at !== undefined) {
154
+ const offset = offsetOf(text, at.line, at.column);
155
+ const kinds = checked.program === null ? new Map() : nodeKinds(checked.program);
156
+ for (const [path, span] of checked.source.spans) {
157
+ if (span.from !== offset || LEAVES.has(kinds.get(path) ?? ""))
158
+ continue;
159
+ if (range === undefined || span.to - span.from < range.to - range.from)
160
+ range = span;
161
+ }
162
+ range ??= { from: offset, to: offset };
163
+ }
164
+ return report(text, "runtime", range, `runtime: ${message}`);
165
+ }
166
+ /** The kinds of node that cannot raise an error. */
167
+ const LEAVES = new Set(["identity", "literal", "variable"]);
168
+ /** Each node's kind, by its path. */
169
+ function nodeKinds(program) {
170
+ const kinds = new Map();
171
+ const visit = (node, path) => {
172
+ kinds.set(path, node.type);
173
+ for (const child of jqChildren(node))
174
+ if (child.node !== undefined)
175
+ visit(child.node, childPath(path, child.step));
176
+ };
177
+ visit(program, "");
178
+ return kinds;
179
+ }
180
+ /** The offset of a line and column in a text, both 1-based, as `toQuerySpan` counts them. */
181
+ function offsetOf(text, line, column) {
182
+ let current = 1;
183
+ let start = 0;
184
+ for (let i = 0; i < text.length && current < line; i++) {
185
+ const c = text.charCodeAt(i);
186
+ if (c === 10 || (c === 13 && text.charCodeAt(i + 1) !== 10)) {
187
+ current += 1;
188
+ start = i + 1;
189
+ }
190
+ }
191
+ return Math.min(text.length, start + column - 1);
192
+ }
193
+ //# sourceMappingURL=evaluate.js.map