@elaraai/east 1.0.83 → 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 (252) 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 +12 -7
  81. package/dist/src/naming.d.ts.map +1 -1
  82. package/dist/src/naming.js +30 -13
  83. package/dist/src/naming.js.map +1 -1
  84. package/dist/src/naming.spec.js +49 -0
  85. package/dist/src/naming.spec.js.map +1 -1
  86. package/dist/src/portable.spec.d.ts +6 -0
  87. package/dist/src/portable.spec.d.ts.map +1 -0
  88. package/dist/src/portable.spec.js +181 -0
  89. package/dist/src/portable.spec.js.map +1 -0
  90. package/dist/src/query/evaluate.d.ts +98 -0
  91. package/dist/src/query/evaluate.d.ts.map +1 -0
  92. package/dist/src/query/evaluate.js +193 -0
  93. package/dist/src/query/evaluate.js.map +1 -0
  94. package/dist/src/query/index.d.ts +17 -0
  95. package/dist/src/query/index.d.ts.map +1 -0
  96. package/dist/src/query/index.js +17 -0
  97. package/dist/src/query/index.js.map +1 -0
  98. package/dist/src/query/jq/catalog.d.ts +174 -0
  99. package/dist/src/query/jq/catalog.d.ts.map +1 -0
  100. package/dist/src/query/jq/catalog.js +1740 -0
  101. package/dist/src/query/jq/catalog.js.map +1 -0
  102. package/dist/src/query/jq/check.d.ts +210 -0
  103. package/dist/src/query/jq/check.d.ts.map +1 -0
  104. package/dist/src/query/jq/check.js +2261 -0
  105. package/dist/src/query/jq/check.js.map +1 -0
  106. package/dist/src/query/jq/complete.d.ts +89 -0
  107. package/dist/src/query/jq/complete.d.ts.map +1 -0
  108. package/dist/src/query/jq/complete.js +320 -0
  109. package/dist/src/query/jq/complete.js.map +1 -0
  110. package/dist/src/query/jq/describe.d.ts +53 -0
  111. package/dist/src/query/jq/describe.d.ts.map +1 -0
  112. package/dist/src/query/jq/describe.js +149 -0
  113. package/dist/src/query/jq/describe.js.map +1 -0
  114. package/dist/src/query/jq/lex.d.ts +118 -0
  115. package/dist/src/query/jq/lex.d.ts.map +1 -0
  116. package/dist/src/query/jq/lex.js +371 -0
  117. package/dist/src/query/jq/lex.js.map +1 -0
  118. package/dist/src/query/jq/literals.d.ts +49 -0
  119. package/dist/src/query/jq/literals.d.ts.map +1 -0
  120. package/dist/src/query/jq/literals.js +78 -0
  121. package/dist/src/query/jq/literals.js.map +1 -0
  122. package/dist/src/query/jq/messages.d.ts +126 -0
  123. package/dist/src/query/jq/messages.d.ts.map +1 -0
  124. package/dist/src/query/jq/messages.js +172 -0
  125. package/dist/src/query/jq/messages.js.map +1 -0
  126. package/dist/src/query/jq/parse.d.ts +70 -0
  127. package/dist/src/query/jq/parse.d.ts.map +1 -0
  128. package/dist/src/query/jq/parse.js +1013 -0
  129. package/dist/src/query/jq/parse.js.map +1 -0
  130. package/dist/src/query/jq/print.d.ts +59 -0
  131. package/dist/src/query/jq/print.d.ts.map +1 -0
  132. package/dist/src/query/jq/print.js +587 -0
  133. package/dist/src/query/jq/print.js.map +1 -0
  134. package/dist/src/query/jq/shapes.d.ts +345 -0
  135. package/dist/src/query/jq/shapes.d.ts.map +1 -0
  136. package/dist/src/query/jq/shapes.js +584 -0
  137. package/dist/src/query/jq/shapes.js.map +1 -0
  138. package/dist/src/query/jq/spans.d.ts +133 -0
  139. package/dist/src/query/jq/spans.d.ts.map +1 -0
  140. package/dist/src/query/jq/spans.js +195 -0
  141. package/dist/src/query/jq/spans.js.map +1 -0
  142. package/dist/src/query/jq/split.d.ts +334 -0
  143. package/dist/src/query/jq/split.d.ts.map +1 -0
  144. package/dist/src/query/jq/split.js +2108 -0
  145. package/dist/src/query/jq/split.js.map +1 -0
  146. package/dist/src/query/jq/strftime.d.ts +20 -0
  147. package/dist/src/query/jq/strftime.d.ts.map +1 -0
  148. package/dist/src/query/jq/strftime.js +65 -0
  149. package/dist/src/query/jq/strftime.js.map +1 -0
  150. package/dist/src/query/jq/summary.d.ts +139 -0
  151. package/dist/src/query/jq/summary.d.ts.map +1 -0
  152. package/dist/src/query/jq/summary.js +222 -0
  153. package/dist/src/query/jq/summary.js.map +1 -0
  154. package/dist/src/query/jq/translate-builtins.d.ts +21 -0
  155. package/dist/src/query/jq/translate-builtins.d.ts.map +1 -0
  156. package/dist/src/query/jq/translate-builtins.js +1873 -0
  157. package/dist/src/query/jq/translate-builtins.js.map +1 -0
  158. package/dist/src/query/jq/translate.d.ts +627 -0
  159. package/dist/src/query/jq/translate.d.ts.map +1 -0
  160. package/dist/src/query/jq/translate.js +3364 -0
  161. package/dist/src/query/jq/translate.js.map +1 -0
  162. package/dist/src/query/types.d.ts +505 -0
  163. package/dist/src/query/types.d.ts.map +1 -0
  164. package/dist/src/query/types.js +231 -0
  165. package/dist/src/query/types.js.map +1 -0
  166. package/dist/src/runner_exec.d.ts +134 -0
  167. package/dist/src/runner_exec.d.ts.map +1 -0
  168. package/dist/src/runner_exec.js +371 -0
  169. package/dist/src/runner_exec.js.map +1 -0
  170. package/dist/src/runner_exec.spec.d.ts +6 -0
  171. package/dist/src/runner_exec.spec.d.ts.map +1 -0
  172. package/dist/src/runner_exec.spec.js +198 -0
  173. package/dist/src/runner_exec.spec.js.map +1 -0
  174. package/dist/src/runner_io.d.ts +370 -0
  175. package/dist/src/runner_io.d.ts.map +1 -0
  176. package/dist/src/runner_io.js +563 -0
  177. package/dist/src/runner_io.js.map +1 -0
  178. package/dist/src/runner_io.spec.d.ts +6 -0
  179. package/dist/src/runner_io.spec.d.ts.map +1 -0
  180. package/dist/src/runner_io.spec.js +224 -0
  181. package/dist/src/runner_io.spec.js.map +1 -0
  182. package/dist/src/runner_merge.d.ts +95 -0
  183. package/dist/src/runner_merge.d.ts.map +1 -0
  184. package/dist/src/runner_merge.js +238 -0
  185. package/dist/src/runner_merge.js.map +1 -0
  186. package/dist/src/runner_protocol.d.ts +60 -6
  187. package/dist/src/runner_protocol.d.ts.map +1 -1
  188. package/dist/src/runner_protocol.js +48 -6
  189. package/dist/src/runner_protocol.js.map +1 -1
  190. package/dist/src/serialization/beast2/index.d.ts +2 -2
  191. package/dist/src/serialization/beast2/index.d.ts.map +1 -1
  192. package/dist/src/serialization/beast2/index.js +1 -1
  193. package/dist/src/serialization/beast2/index.js.map +1 -1
  194. package/dist/src/serialization/beast2/v5/frames.d.ts +10 -6
  195. package/dist/src/serialization/beast2/v5/frames.d.ts.map +1 -1
  196. package/dist/src/serialization/beast2/v5/frames.js +10 -6
  197. package/dist/src/serialization/beast2/v5/frames.js.map +1 -1
  198. package/dist/src/serialization/beast2/v5/frames.spec.d.ts +6 -0
  199. package/dist/src/serialization/beast2/v5/frames.spec.d.ts.map +1 -0
  200. package/dist/src/serialization/beast2/v5/frames.spec.js +42 -0
  201. package/dist/src/serialization/beast2/v5/frames.spec.js.map +1 -0
  202. package/dist/src/serialization/beast2/v5/index.spec.js +108 -0
  203. package/dist/src/serialization/beast2/v5/index.spec.js.map +1 -1
  204. package/dist/src/serialization/beast2/v5/lazy.d.ts +74 -7
  205. package/dist/src/serialization/beast2/v5/lazy.d.ts.map +1 -1
  206. package/dist/src/serialization/beast2/v5/lazy.js +129 -27
  207. package/dist/src/serialization/beast2/v5/lazy.js.map +1 -1
  208. package/dist/src/serialization/beast2/v5/lazy.spec.js +251 -16
  209. package/dist/src/serialization/beast2/v5/lazy.spec.js.map +1 -1
  210. package/dist/src/serialization/beast2/v5/stream.d.ts +139 -23
  211. package/dist/src/serialization/beast2/v5/stream.d.ts.map +1 -1
  212. package/dist/src/serialization/beast2/v5/stream.js +196 -44
  213. package/dist/src/serialization/beast2/v5/stream.js.map +1 -1
  214. package/dist/src/serialization/beast2/v5/type-section.d.ts.map +1 -1
  215. package/dist/src/serialization/beast2/v5/type-section.js +25 -12
  216. package/dist/src/serialization/beast2/v5/type-section.js.map +1 -1
  217. package/dist/src/serialization/beast2/v5/type-section.spec.d.ts +6 -0
  218. package/dist/src/serialization/beast2/v5/type-section.spec.d.ts.map +1 -0
  219. package/dist/src/serialization/beast2/v5/type-section.spec.js +41 -0
  220. package/dist/src/serialization/beast2/v5/type-section.spec.js.map +1 -0
  221. package/dist/src/serialization/beast2/v5/weight.d.ts +36 -0
  222. package/dist/src/serialization/beast2/v5/weight.d.ts.map +1 -0
  223. package/dist/src/serialization/beast2/v5/weight.js +238 -0
  224. package/dist/src/serialization/beast2/v5/weight.js.map +1 -0
  225. package/dist/src/serialization/crc32.d.ts +38 -0
  226. package/dist/src/serialization/crc32.d.ts.map +1 -0
  227. package/dist/src/serialization/crc32.js +70 -0
  228. package/dist/src/serialization/crc32.js.map +1 -0
  229. package/dist/src/serialization/crc32.spec.d.ts +6 -0
  230. package/dist/src/serialization/crc32.spec.d.ts.map +1 -0
  231. package/dist/src/serialization/crc32.spec.js +92 -0
  232. package/dist/src/serialization/crc32.spec.js.map +1 -0
  233. package/dist/src/serialization/east-inferred.spec.js +4 -0
  234. package/dist/src/serialization/east-inferred.spec.js.map +1 -1
  235. package/dist/src/serialization/east.d.ts.map +1 -1
  236. package/dist/src/serialization/east.js +134 -110
  237. package/dist/src/serialization/east.js.map +1 -1
  238. package/dist/src/serialization/east.spec.js +185 -4
  239. package/dist/src/serialization/east.spec.js.map +1 -1
  240. package/dist/src/serialization/east_text.d.ts +25 -0
  241. package/dist/src/serialization/east_text.d.ts.map +1 -0
  242. package/dist/src/serialization/east_text.js +29 -0
  243. package/dist/src/serialization/east_text.js.map +1 -0
  244. package/dist/src/serialization/index.d.ts +1 -1
  245. package/dist/src/serialization/index.d.ts.map +1 -1
  246. package/dist/src/serialization/index.js +1 -1
  247. package/dist/src/serialization/index.js.map +1 -1
  248. package/dist/src/types.d.ts +1 -1
  249. package/dist/src/types.d.ts.map +1 -1
  250. package/dist/src/types.js +7 -6
  251. package/dist/src/types.js.map +1 -1
  252. package/package.json +7 -4
@@ -0,0 +1,505 @@
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
+ * The wire types of typed jq queries over East values.
7
+ *
8
+ * A query's text is parsed into a {@link JqType} tree, the program as
9
+ * written, each constant in it a typed East value. A query's types are never
10
+ * kept with it: they are what checking the program against the data it reads
11
+ * gives, and every place that needs them checks the program (#1138). In code,
12
+ * the `Query` builtin carries the program and a root's input names
13
+ * ({@link QueryCallType}) beside the query's translation, whose function type
14
+ * carries the types, and a runtime runs the translation (#1041), so no
15
+ * runtime reads query text.
16
+ *
17
+ * Struct fields are declared alphabetically, as `FunctionManifestType`'s are,
18
+ * and the python twins in `east/query/types.py` declare the same types, so a
19
+ * type encodes to the same bytes in either language. `devdocs/QUERY.md` is the
20
+ * normative account of what the values mean.
21
+ *
22
+ * @packageDocumentation
23
+ */
24
+ import { ArrayType, BooleanType, FloatType, IntegerType, NullType, OptionType, RecursiveType, StringType, StructType, VariantType } from "../types.js";
25
+ /**
26
+ * A constant a jq program writes, as the East value it is.
27
+ *
28
+ * @remarks
29
+ * - `boolean` — `true` or `false`.
30
+ * - `float` — a number written with a `.` or an exponent: `1001.0`, `1e2`.
31
+ * - `integer` — a number written as digits alone, `1001`: a 64-bit Integer.
32
+ * - `null` — `null`.
33
+ * - `string` — a string with no interpolation, `"C01"`.
34
+ *
35
+ * A literal is the constant as written. Where the checker reads it as
36
+ * another type — an Integer where a Float is, an ISO-8601 string where a
37
+ * DateTime is — the program still holds it as written, and its translation
38
+ * gives the value that type has (`devdocs/QUERY.md` §7).
39
+ */
40
+ export declare const JqLiteralType: VariantType<{
41
+ readonly boolean: BooleanType;
42
+ readonly float: FloatType;
43
+ readonly integer: IntegerType;
44
+ readonly null: NullType;
45
+ readonly string: StringType;
46
+ }>;
47
+ /**
48
+ * A destructuring pattern, as `as`, `reduce` and `foreach` bind one.
49
+ *
50
+ * @remarks
51
+ * - `array` — `[$a, $b]`: each element pattern matches the element at its
52
+ * index.
53
+ * - `object` — `{name: $n, $id}`: each entry reads the field named by `key`
54
+ * and matches it against `value`; an entry with no `value` binds the
55
+ * variable named `key` (`$id` reads `.id`). Keys are literal in this version.
56
+ * - `variable` — `$x`, named without its `$`.
57
+ *
58
+ * `?//` alternatives are a list of patterns on the binding that uses them
59
+ * (see {@link JqType}'s `bind` case).
60
+ */
61
+ export declare const JqPatternType: RecursiveType<VariantType<{
62
+ readonly array: ArrayType<import("../types.js").RecursiveTypeMarker>;
63
+ readonly object: ArrayType<StructType<{
64
+ readonly key: StringType;
65
+ readonly value: OptionType<import("../types.js").RecursiveTypeMarker>;
66
+ }>>;
67
+ readonly variable: StringType;
68
+ }>>;
69
+ /**
70
+ * A jq program, as a tree.
71
+ *
72
+ * @remarks
73
+ * The parser keeps jq's sugar rather than desugaring it, so printing a parsed
74
+ * program gives back what was written: `.a.b` is two `field` nodes and `f?` is
75
+ * a `try` with no `catch`. Operators, builtin names and error codes are
76
+ * strings, so a new one never changes this type.
77
+ *
78
+ * - `alternative` — `left // right`.
79
+ * - `array` — `[f]`, or `[]` when there is no body.
80
+ * - `binary` — `left op right`, for `op` one of `+ - * / % == != < <= > >=
81
+ * and or`.
82
+ * - `bind` — `source as $p ?// $q | body`: the first of `patterns` that
83
+ * matches binds.
84
+ * - `break` — `break $name`, named without its `$`.
85
+ * - `call` — a builtin or a `def` by name, with its `;`-separated arguments.
86
+ * - `comma` — `left, right`.
87
+ * - `def` — `def name(params): body; rest`.
88
+ * - `descend` — `..`, every nested value in pre-order.
89
+ * - `field` — `target.name`, or `target.name?` when `optional`.
90
+ * - `foreach` — `foreach source as pattern (init; update; extract)`.
91
+ * - `format` — `@name`, or `@name "…"` applied to a string.
92
+ * - `identity` — `.`.
93
+ * - `if` — `if c then t elif … else e end`; `otherwise` is the `else`.
94
+ * - `index` — `target[index]`: an index on an array, a key on a dict,
95
+ * decided by the target's type; `optional` is a trailing `?`.
96
+ * - `iterate` — `target[]`, or `target[]?` when `optional`.
97
+ * - `label` — `label $name | body`, named without its `$`.
98
+ * - `literal` — a constant, as the typed East value it is
99
+ * ({@link JqLiteralType}): `1001` is an Integer, `1001.0` a Float.
100
+ * - `negate` — `-f`.
101
+ * - `object` — `{…}`: a key is a `name` (`{a: f}`, or `{a}` with no value),
102
+ * a `variable` (`{$x}`, named without its `$`) or `computed` (`{(k): v}`).
103
+ * - `pipe` — `left | right`.
104
+ * - `reduce` — `reduce source as pattern (init; update)`.
105
+ * - `slice` — `target[from:to]`, either bound optional.
106
+ * - `string` — a string with interpolations, `"a\(f)b"`, as its parts.
107
+ * - `try` — `try body catch handler`; `f?` is `try f` with no `catch`.
108
+ * - `update` — `path op value`, for `op` one of `= |= += -= *= /= %= //=`.
109
+ * - `variable` — `$x`, named without its `$`.
110
+ */
111
+ export declare const JqType: RecursiveType<VariantType<{
112
+ readonly alternative: StructType<{
113
+ readonly left: import("../types.js").RecursiveTypeMarker;
114
+ readonly right: import("../types.js").RecursiveTypeMarker;
115
+ }>;
116
+ readonly array: OptionType<import("../types.js").RecursiveTypeMarker>;
117
+ readonly binary: StructType<{
118
+ readonly left: import("../types.js").RecursiveTypeMarker;
119
+ readonly op: StringType;
120
+ readonly right: import("../types.js").RecursiveTypeMarker;
121
+ }>;
122
+ readonly bind: StructType<{
123
+ readonly body: import("../types.js").RecursiveTypeMarker;
124
+ readonly patterns: ArrayType<RecursiveType<VariantType<{
125
+ readonly array: ArrayType<import("../types.js").RecursiveTypeMarker>;
126
+ readonly object: ArrayType<StructType<{
127
+ readonly key: StringType;
128
+ readonly value: OptionType<import("../types.js").RecursiveTypeMarker>;
129
+ }>>;
130
+ readonly variable: StringType;
131
+ }>>>;
132
+ readonly source: import("../types.js").RecursiveTypeMarker;
133
+ }>;
134
+ readonly break: StringType;
135
+ readonly call: StructType<{
136
+ readonly args: ArrayType<import("../types.js").RecursiveTypeMarker>;
137
+ readonly name: StringType;
138
+ }>;
139
+ readonly comma: StructType<{
140
+ readonly left: import("../types.js").RecursiveTypeMarker;
141
+ readonly right: import("../types.js").RecursiveTypeMarker;
142
+ }>;
143
+ readonly def: StructType<{
144
+ readonly body: import("../types.js").RecursiveTypeMarker;
145
+ readonly name: StringType;
146
+ readonly params: ArrayType<StringType>;
147
+ readonly rest: import("../types.js").RecursiveTypeMarker;
148
+ }>;
149
+ readonly descend: NullType;
150
+ readonly field: StructType<{
151
+ readonly name: StringType;
152
+ readonly optional: BooleanType;
153
+ readonly target: import("../types.js").RecursiveTypeMarker;
154
+ }>;
155
+ readonly foreach: StructType<{
156
+ readonly extract: OptionType<import("../types.js").RecursiveTypeMarker>;
157
+ readonly init: import("../types.js").RecursiveTypeMarker;
158
+ readonly pattern: RecursiveType<VariantType<{
159
+ readonly array: ArrayType<import("../types.js").RecursiveTypeMarker>;
160
+ readonly object: ArrayType<StructType<{
161
+ readonly key: StringType;
162
+ readonly value: OptionType<import("../types.js").RecursiveTypeMarker>;
163
+ }>>;
164
+ readonly variable: StringType;
165
+ }>>;
166
+ readonly source: import("../types.js").RecursiveTypeMarker;
167
+ readonly update: import("../types.js").RecursiveTypeMarker;
168
+ }>;
169
+ readonly format: StructType<{
170
+ readonly name: StringType;
171
+ readonly string: OptionType<import("../types.js").RecursiveTypeMarker>;
172
+ }>;
173
+ readonly identity: NullType;
174
+ readonly if: StructType<{
175
+ readonly branches: ArrayType<StructType<{
176
+ readonly condition: import("../types.js").RecursiveTypeMarker;
177
+ readonly then: import("../types.js").RecursiveTypeMarker;
178
+ }>>;
179
+ readonly otherwise: OptionType<import("../types.js").RecursiveTypeMarker>;
180
+ }>;
181
+ readonly index: StructType<{
182
+ readonly index: import("../types.js").RecursiveTypeMarker;
183
+ readonly optional: BooleanType;
184
+ readonly target: import("../types.js").RecursiveTypeMarker;
185
+ }>;
186
+ readonly iterate: StructType<{
187
+ readonly optional: BooleanType;
188
+ readonly target: import("../types.js").RecursiveTypeMarker;
189
+ }>;
190
+ readonly label: StructType<{
191
+ readonly body: import("../types.js").RecursiveTypeMarker;
192
+ readonly name: StringType;
193
+ }>;
194
+ readonly literal: VariantType<{
195
+ readonly boolean: BooleanType;
196
+ readonly float: FloatType;
197
+ readonly integer: IntegerType;
198
+ readonly null: NullType;
199
+ readonly string: StringType;
200
+ }>;
201
+ readonly negate: import("../types.js").RecursiveTypeMarker;
202
+ readonly object: ArrayType<StructType<{
203
+ readonly key: VariantType<{
204
+ readonly computed: import("../types.js").RecursiveTypeMarker;
205
+ readonly name: StringType;
206
+ readonly variable: StringType;
207
+ }>;
208
+ readonly value: OptionType<import("../types.js").RecursiveTypeMarker>;
209
+ }>>;
210
+ readonly pipe: StructType<{
211
+ readonly left: import("../types.js").RecursiveTypeMarker;
212
+ readonly right: import("../types.js").RecursiveTypeMarker;
213
+ }>;
214
+ readonly reduce: StructType<{
215
+ readonly init: import("../types.js").RecursiveTypeMarker;
216
+ readonly pattern: RecursiveType<VariantType<{
217
+ readonly array: ArrayType<import("../types.js").RecursiveTypeMarker>;
218
+ readonly object: ArrayType<StructType<{
219
+ readonly key: StringType;
220
+ readonly value: OptionType<import("../types.js").RecursiveTypeMarker>;
221
+ }>>;
222
+ readonly variable: StringType;
223
+ }>>;
224
+ readonly source: import("../types.js").RecursiveTypeMarker;
225
+ readonly update: import("../types.js").RecursiveTypeMarker;
226
+ }>;
227
+ readonly slice: StructType<{
228
+ readonly from: OptionType<import("../types.js").RecursiveTypeMarker>;
229
+ readonly optional: BooleanType;
230
+ readonly target: import("../types.js").RecursiveTypeMarker;
231
+ readonly to: OptionType<import("../types.js").RecursiveTypeMarker>;
232
+ }>;
233
+ readonly string: ArrayType<VariantType<{
234
+ readonly interpolate: import("../types.js").RecursiveTypeMarker;
235
+ readonly text: StringType;
236
+ }>>;
237
+ readonly try: StructType<{
238
+ readonly body: import("../types.js").RecursiveTypeMarker;
239
+ readonly catch: OptionType<import("../types.js").RecursiveTypeMarker>;
240
+ }>;
241
+ readonly update: StructType<{
242
+ readonly op: StringType;
243
+ readonly path: import("../types.js").RecursiveTypeMarker;
244
+ readonly value: import("../types.js").RecursiveTypeMarker;
245
+ }>;
246
+ readonly variable: StringType;
247
+ }>>;
248
+ /**
249
+ * How many outputs a query gives: `one` exactly, `maybe` none or one, or
250
+ * `many`.
251
+ *
252
+ * @remarks
253
+ * A checked query's result is its element type `T` for `one`, `Option<T>` for
254
+ * `maybe`, and `Array<T>` (the stream collected in order) for `many`. A
255
+ * runtime enforces the multiplicity: a `one` query that yields no output, or
256
+ * two, is a runtime error.
257
+ */
258
+ export declare const QueryMultiplicityType: VariantType<{
259
+ readonly many: NullType;
260
+ readonly maybe: NullType;
261
+ readonly one: NullType;
262
+ }>;
263
+ /**
264
+ * A query as the `Query` builtin carries it in code (#1041): the program as
265
+ * written, and a root's input names.
266
+ *
267
+ * @remarks
268
+ * - `inputs` — the names of a root's fields, one per input of the
269
+ * translation, in order; `none` for a query of one input.
270
+ * - `program` — the program as written ({@link JqType}).
271
+ *
272
+ * The builtin's type parameter, the translation's function type, carries the
273
+ * query's input and result types, so they are not held twice. A structural
274
+ * change is a new case that sorts after `v1` (a variant's cases are ordered
275
+ * by name, and inserting one before an existing case renumbers it), and
276
+ * readers accept every released version.
277
+ */
278
+ export declare const QueryCallType: VariantType<{
279
+ readonly v1: StructType<{
280
+ readonly inputs: OptionType<ArrayType<StringType>>;
281
+ readonly program: RecursiveType<VariantType<{
282
+ readonly alternative: StructType<{
283
+ readonly left: import("../types.js").RecursiveTypeMarker;
284
+ readonly right: import("../types.js").RecursiveTypeMarker;
285
+ }>;
286
+ readonly array: OptionType<import("../types.js").RecursiveTypeMarker>;
287
+ readonly binary: StructType<{
288
+ readonly left: import("../types.js").RecursiveTypeMarker;
289
+ readonly op: StringType;
290
+ readonly right: import("../types.js").RecursiveTypeMarker;
291
+ }>;
292
+ readonly bind: StructType<{
293
+ readonly body: import("../types.js").RecursiveTypeMarker;
294
+ readonly patterns: ArrayType<RecursiveType<VariantType<{
295
+ readonly array: ArrayType<import("../types.js").RecursiveTypeMarker>;
296
+ readonly object: ArrayType<StructType<{
297
+ readonly key: StringType;
298
+ readonly value: OptionType<import("../types.js").RecursiveTypeMarker>;
299
+ }>>;
300
+ readonly variable: StringType;
301
+ }>>>;
302
+ readonly source: import("../types.js").RecursiveTypeMarker;
303
+ }>;
304
+ readonly break: StringType;
305
+ readonly call: StructType<{
306
+ readonly args: ArrayType<import("../types.js").RecursiveTypeMarker>;
307
+ readonly name: StringType;
308
+ }>;
309
+ readonly comma: StructType<{
310
+ readonly left: import("../types.js").RecursiveTypeMarker;
311
+ readonly right: import("../types.js").RecursiveTypeMarker;
312
+ }>;
313
+ readonly def: StructType<{
314
+ readonly body: import("../types.js").RecursiveTypeMarker;
315
+ readonly name: StringType;
316
+ readonly params: ArrayType<StringType>;
317
+ readonly rest: import("../types.js").RecursiveTypeMarker;
318
+ }>;
319
+ readonly descend: NullType;
320
+ readonly field: StructType<{
321
+ readonly name: StringType;
322
+ readonly optional: BooleanType;
323
+ readonly target: import("../types.js").RecursiveTypeMarker;
324
+ }>;
325
+ readonly foreach: StructType<{
326
+ readonly extract: OptionType<import("../types.js").RecursiveTypeMarker>;
327
+ readonly init: import("../types.js").RecursiveTypeMarker;
328
+ readonly pattern: RecursiveType<VariantType<{
329
+ readonly array: ArrayType<import("../types.js").RecursiveTypeMarker>;
330
+ readonly object: ArrayType<StructType<{
331
+ readonly key: StringType;
332
+ readonly value: OptionType<import("../types.js").RecursiveTypeMarker>;
333
+ }>>;
334
+ readonly variable: StringType;
335
+ }>>;
336
+ readonly source: import("../types.js").RecursiveTypeMarker;
337
+ readonly update: import("../types.js").RecursiveTypeMarker;
338
+ }>;
339
+ readonly format: StructType<{
340
+ readonly name: StringType;
341
+ readonly string: OptionType<import("../types.js").RecursiveTypeMarker>;
342
+ }>;
343
+ readonly identity: NullType;
344
+ readonly if: StructType<{
345
+ readonly branches: ArrayType<StructType<{
346
+ readonly condition: import("../types.js").RecursiveTypeMarker;
347
+ readonly then: import("../types.js").RecursiveTypeMarker;
348
+ }>>;
349
+ readonly otherwise: OptionType<import("../types.js").RecursiveTypeMarker>;
350
+ }>;
351
+ readonly index: StructType<{
352
+ readonly index: import("../types.js").RecursiveTypeMarker;
353
+ readonly optional: BooleanType;
354
+ readonly target: import("../types.js").RecursiveTypeMarker;
355
+ }>;
356
+ readonly iterate: StructType<{
357
+ readonly optional: BooleanType;
358
+ readonly target: import("../types.js").RecursiveTypeMarker;
359
+ }>;
360
+ readonly label: StructType<{
361
+ readonly body: import("../types.js").RecursiveTypeMarker;
362
+ readonly name: StringType;
363
+ }>;
364
+ readonly literal: VariantType<{
365
+ readonly boolean: BooleanType;
366
+ readonly float: FloatType;
367
+ readonly integer: IntegerType;
368
+ readonly null: NullType;
369
+ readonly string: StringType;
370
+ }>;
371
+ readonly negate: import("../types.js").RecursiveTypeMarker;
372
+ readonly object: ArrayType<StructType<{
373
+ readonly key: VariantType<{
374
+ readonly computed: import("../types.js").RecursiveTypeMarker;
375
+ readonly name: StringType;
376
+ readonly variable: StringType;
377
+ }>;
378
+ readonly value: OptionType<import("../types.js").RecursiveTypeMarker>;
379
+ }>>;
380
+ readonly pipe: StructType<{
381
+ readonly left: import("../types.js").RecursiveTypeMarker;
382
+ readonly right: import("../types.js").RecursiveTypeMarker;
383
+ }>;
384
+ readonly reduce: StructType<{
385
+ readonly init: import("../types.js").RecursiveTypeMarker;
386
+ readonly pattern: RecursiveType<VariantType<{
387
+ readonly array: ArrayType<import("../types.js").RecursiveTypeMarker>;
388
+ readonly object: ArrayType<StructType<{
389
+ readonly key: StringType;
390
+ readonly value: OptionType<import("../types.js").RecursiveTypeMarker>;
391
+ }>>;
392
+ readonly variable: StringType;
393
+ }>>;
394
+ readonly source: import("../types.js").RecursiveTypeMarker;
395
+ readonly update: import("../types.js").RecursiveTypeMarker;
396
+ }>;
397
+ readonly slice: StructType<{
398
+ readonly from: OptionType<import("../types.js").RecursiveTypeMarker>;
399
+ readonly optional: BooleanType;
400
+ readonly target: import("../types.js").RecursiveTypeMarker;
401
+ readonly to: OptionType<import("../types.js").RecursiveTypeMarker>;
402
+ }>;
403
+ readonly string: ArrayType<VariantType<{
404
+ readonly interpolate: import("../types.js").RecursiveTypeMarker;
405
+ readonly text: StringType;
406
+ }>>;
407
+ readonly try: StructType<{
408
+ readonly body: import("../types.js").RecursiveTypeMarker;
409
+ readonly catch: OptionType<import("../types.js").RecursiveTypeMarker>;
410
+ }>;
411
+ readonly update: StructType<{
412
+ readonly op: StringType;
413
+ readonly path: import("../types.js").RecursiveTypeMarker;
414
+ readonly value: import("../types.js").RecursiveTypeMarker;
415
+ }>;
416
+ readonly variable: StringType;
417
+ }>>;
418
+ }>;
419
+ }>;
420
+ /**
421
+ * A range of query text.
422
+ *
423
+ * @remarks
424
+ * Offsets and lengths count UTF-16 code units, the unit browsers and
425
+ * TypeScript index strings in; python converts from code points, so a program
426
+ * holding characters outside the Basic Multilingual Plane gets the same span
427
+ * in both front ends.
428
+ *
429
+ * - `column` — 1-based, in UTF-16 code units of its line.
430
+ * - `length` — in UTF-16 code units.
431
+ * - `line` — 1-based.
432
+ * - `offset` — 0-based, in UTF-16 code units of the whole text.
433
+ */
434
+ export declare const QuerySpanType: StructType<{
435
+ readonly column: IntegerType;
436
+ readonly length: IntegerType;
437
+ readonly line: IntegerType;
438
+ readonly offset: IntegerType;
439
+ }>;
440
+ /**
441
+ * One text edit: replace `length` UTF-16 code units at `offset` with
442
+ * `insert`.
443
+ */
444
+ export declare const QueryEditType: StructType<{
445
+ readonly insert: StringType;
446
+ readonly length: IntegerType;
447
+ readonly offset: IntegerType;
448
+ }>;
449
+ /**
450
+ * A one-click fix for a diagnostic: its `label` ("Use .demand") and the text
451
+ * `edits` that make it, applied together.
452
+ *
453
+ * @remarks
454
+ * A fix is text edits so every client applies it the same way. The edits of
455
+ * one fix do not overlap.
456
+ */
457
+ export declare const QueryFixType: StructType<{
458
+ readonly edits: ArrayType<StructType<{
459
+ readonly insert: StringType;
460
+ readonly length: IntegerType;
461
+ readonly offset: IntegerType;
462
+ }>>;
463
+ readonly label: StringType;
464
+ }>;
465
+ /**
466
+ * A diagnostic from checking a query, or an error from evaluating one.
467
+ *
468
+ * @remarks
469
+ * - `code` — `syntax`, `unknown_field`, `unknown_case`, `unknown_function`,
470
+ * `type_mismatch`, `not_iterable`, `not_indexable`, `arity`,
471
+ * `ambiguous_output`, `cannot_infer`, `unsupported` or
472
+ * `array_builtin_on_element`, or a lint (`duplicate_outputs`,
473
+ * `duplicate_key`, `never_missing`, `long_range`); `devdocs/QUERY.md` §12
474
+ * lists each message's template. An error a query raised as it ran is
475
+ * `runtime` (§15).
476
+ * - `fixes` — one-click fixes, best first.
477
+ * - `message` — one sentence, the same wherever the checker runs.
478
+ * - `severity` — `error`, or `warning` for a lint.
479
+ * - `span` — the text it is about, when it is about some.
480
+ * - `suggestions` — replacement texts for the span, best first.
481
+ */
482
+ export declare const QueryErrorType: StructType<{
483
+ readonly code: StringType;
484
+ readonly fixes: ArrayType<StructType<{
485
+ readonly edits: ArrayType<StructType<{
486
+ readonly insert: StringType;
487
+ readonly length: IntegerType;
488
+ readonly offset: IntegerType;
489
+ }>>;
490
+ readonly label: StringType;
491
+ }>>;
492
+ readonly message: StringType;
493
+ readonly severity: VariantType<{
494
+ readonly error: NullType;
495
+ readonly warning: NullType;
496
+ }>;
497
+ readonly span: OptionType<StructType<{
498
+ readonly column: IntegerType;
499
+ readonly length: IntegerType;
500
+ readonly line: IntegerType;
501
+ readonly offset: IntegerType;
502
+ }>>;
503
+ readonly suggestions: ArrayType<StringType>;
504
+ }>;
505
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/query/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEvJ;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,aAAa;;;;;;EAMxB,CAAC;AAEH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,aAAa;;;;;;;GAIvB,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BhB,CAAC;AAEJ;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB;;;;EAAkE,CAAC;AAErG;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKxB,CAAC;AAEH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,aAAa;;;;;EAKxB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;EAA+E,CAAC;AAE1G;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY;;;;;;;EAAqE,CAAC;AAE/F;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;EAOzB,CAAC"}