@bjornpagen/bumbledb 1.3.0 → 2.0.0-rc.1

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 (290) hide show
  1. package/COOKBOOK.md +224 -95
  2. package/README.md +114 -45
  3. package/dist/alternatives.d.ts +5 -6
  4. package/dist/alternatives.d.ts.map +1 -1
  5. package/dist/alternatives.js +5 -6
  6. package/dist/alternatives.js.map +1 -1
  7. package/dist/bin.d.ts +3 -0
  8. package/dist/bin.d.ts.map +1 -0
  9. package/dist/bin.js +85 -0
  10. package/dist/bin.js.map +1 -0
  11. package/dist/capacity.d.ts +14 -17
  12. package/dist/capacity.d.ts.map +1 -1
  13. package/dist/capacity.js +7 -7
  14. package/dist/capacity.js.map +1 -1
  15. package/dist/changes.d.ts +32 -41
  16. package/dist/changes.d.ts.map +1 -1
  17. package/dist/changes.js +86 -110
  18. package/dist/changes.js.map +1 -1
  19. package/dist/closed.d.ts +2 -2
  20. package/dist/closed.d.ts.map +1 -1
  21. package/dist/closed.js +5 -5
  22. package/dist/closed.js.map +1 -1
  23. package/dist/codec.d.ts +20 -27
  24. package/dist/codec.d.ts.map +1 -1
  25. package/dist/codec.js +48 -22
  26. package/dist/codec.js.map +1 -1
  27. package/dist/compile.d.ts +26 -50
  28. package/dist/compile.d.ts.map +1 -1
  29. package/dist/compile.js +75 -64
  30. package/dist/compile.js.map +1 -1
  31. package/dist/database/database.d.ts +98 -0
  32. package/dist/database/database.d.ts.map +1 -0
  33. package/dist/database/database.js +249 -0
  34. package/dist/database/database.js.map +1 -0
  35. package/dist/database/driver.d.ts +40 -0
  36. package/dist/database/driver.d.ts.map +1 -0
  37. package/dist/database/driver.js +68 -0
  38. package/dist/database/driver.js.map +1 -0
  39. package/dist/database/fs.d.ts +12 -0
  40. package/dist/database/fs.d.ts.map +1 -0
  41. package/dist/database/fs.js +120 -0
  42. package/dist/database/fs.js.map +1 -0
  43. package/dist/database/generate.d.ts +26 -0
  44. package/dist/database/generate.d.ts.map +1 -0
  45. package/dist/database/generate.js +102 -0
  46. package/dist/database/generate.js.map +1 -0
  47. package/dist/database/hosted.d.ts +32 -0
  48. package/dist/database/hosted.d.ts.map +1 -0
  49. package/dist/database/hosted.js +44 -0
  50. package/dist/database/hosted.js.map +1 -0
  51. package/dist/database/io.d.ts +94 -0
  52. package/dist/database/io.d.ts.map +1 -0
  53. package/dist/database/io.js +35 -0
  54. package/dist/database/io.js.map +1 -0
  55. package/dist/database/mem.d.ts +26 -0
  56. package/dist/database/mem.d.ts.map +1 -0
  57. package/dist/database/mem.js +67 -0
  58. package/dist/database/mem.js.map +1 -0
  59. package/dist/database/migration.d.ts +55 -0
  60. package/dist/database/migration.d.ts.map +1 -0
  61. package/dist/database/migration.js +46 -0
  62. package/dist/database/migration.js.map +1 -0
  63. package/dist/database/s3.d.ts +36 -0
  64. package/dist/database/s3.d.ts.map +1 -0
  65. package/dist/database/s3.js +141 -0
  66. package/dist/database/s3.js.map +1 -0
  67. package/dist/db.d.ts +44 -128
  68. package/dist/db.d.ts.map +1 -1
  69. package/dist/db.js +163 -287
  70. package/dist/db.js.map +1 -1
  71. package/dist/engine.d.ts +7 -0
  72. package/dist/engine.d.ts.map +1 -0
  73. package/dist/engine.js +2 -0
  74. package/dist/engine.js.map +1 -0
  75. package/dist/errors.d.ts +152 -46
  76. package/dist/errors.d.ts.map +1 -1
  77. package/dist/errors.js +107 -19
  78. package/dist/errors.js.map +1 -1
  79. package/dist/face.d.ts +5 -5
  80. package/dist/face.d.ts.map +1 -1
  81. package/dist/face.js +6 -6
  82. package/dist/face.js.map +1 -1
  83. package/dist/fields.d.ts +4 -5
  84. package/dist/fields.d.ts.map +1 -1
  85. package/dist/fields.js +3 -3
  86. package/dist/fields.js.map +1 -1
  87. package/dist/index.d.ts +60 -58
  88. package/dist/index.d.ts.map +1 -1
  89. package/dist/index.js +27 -29
  90. package/dist/index.js.map +1 -1
  91. package/dist/judgment.d.ts +1 -1
  92. package/dist/judgment.js +1 -1
  93. package/dist/law.d.ts +16 -68
  94. package/dist/law.d.ts.map +1 -1
  95. package/dist/law.js +3 -3
  96. package/dist/law.js.map +1 -1
  97. package/dist/lower.d.ts +3 -3
  98. package/dist/lower.d.ts.map +1 -1
  99. package/dist/lower.js +35 -39
  100. package/dist/lower.js.map +1 -1
  101. package/dist/native/addon.d.ts +23 -0
  102. package/dist/native/addon.d.ts.map +1 -0
  103. package/dist/native/addon.js +15 -0
  104. package/dist/native/addon.js.map +1 -0
  105. package/dist/native/binding.d.ts +996 -0
  106. package/dist/native/json.d.ts +14 -0
  107. package/dist/native/json.d.ts.map +1 -0
  108. package/dist/native/json.js +73 -0
  109. package/dist/native/json.js.map +1 -0
  110. package/dist/native/load.d.ts +9 -0
  111. package/dist/native/load.d.ts.map +1 -0
  112. package/dist/native/load.js +30 -0
  113. package/dist/native/load.js.map +1 -0
  114. package/dist/native/op.d.ts +29 -0
  115. package/dist/native/op.d.ts.map +1 -0
  116. package/dist/native/op.js +50 -0
  117. package/dist/native/op.js.map +1 -0
  118. package/dist/query/atom.d.ts +13 -14
  119. package/dist/query/atom.d.ts.map +1 -1
  120. package/dist/query/atom.js +2 -2
  121. package/dist/query/atom.js.map +1 -1
  122. package/dist/query/compute.d.ts +7 -7
  123. package/dist/query/compute.d.ts.map +1 -1
  124. package/dist/query/compute.js +7 -16
  125. package/dist/query/compute.js.map +1 -1
  126. package/dist/query/find.d.ts +8 -8
  127. package/dist/query/find.d.ts.map +1 -1
  128. package/dist/query/find.js +1 -1
  129. package/dist/query/lower.d.ts +31 -17
  130. package/dist/query/lower.d.ts.map +1 -1
  131. package/dist/query/lower.js +260 -368
  132. package/dist/query/lower.js.map +1 -1
  133. package/dist/query/run.d.ts +5 -5
  134. package/dist/query/run.d.ts.map +1 -1
  135. package/dist/query/run.js +32 -15
  136. package/dist/query/run.js.map +1 -1
  137. package/dist/query/scope.d.ts +20 -28
  138. package/dist/query/scope.d.ts.map +1 -1
  139. package/dist/query/scope.js +13 -8
  140. package/dist/query/scope.js.map +1 -1
  141. package/dist/query/segments.d.ts +2 -2
  142. package/dist/query/segments.d.ts.map +1 -1
  143. package/dist/query/segments.js +3 -3
  144. package/dist/query/segments.js.map +1 -1
  145. package/dist/relation.d.ts +1 -1
  146. package/dist/relation.d.ts.map +1 -1
  147. package/dist/relation.js +4 -4
  148. package/dist/relation.js.map +1 -1
  149. package/dist/result.d.ts +15 -22
  150. package/dist/result.d.ts.map +1 -1
  151. package/dist/result.js +30 -39
  152. package/dist/result.js.map +1 -1
  153. package/dist/rows.d.ts +9 -33
  154. package/dist/rows.d.ts.map +1 -1
  155. package/dist/rows.js +8 -12
  156. package/dist/rows.js.map +1 -1
  157. package/dist/runtime.d.ts +17 -43
  158. package/dist/runtime.d.ts.map +1 -1
  159. package/dist/runtime.js +41 -241
  160. package/dist/runtime.js.map +1 -1
  161. package/dist/scalar.d.ts +36 -106
  162. package/dist/scalar.d.ts.map +1 -1
  163. package/dist/scalar.js +36 -185
  164. package/dist/scalar.js.map +1 -1
  165. package/dist/schema.d.ts +7 -18
  166. package/dist/schema.d.ts.map +1 -1
  167. package/dist/schema.js +18 -228
  168. package/dist/schema.js.map +1 -1
  169. package/dist/selection.d.ts +4 -4
  170. package/dist/selection.d.ts.map +1 -1
  171. package/dist/selection.js +5 -5
  172. package/dist/selection.js.map +1 -1
  173. package/dist/shape.d.ts +5 -5
  174. package/dist/shape.d.ts.map +1 -1
  175. package/dist/spec.d.ts +7 -79
  176. package/dist/spec.d.ts.map +1 -1
  177. package/dist/spec.js.map +1 -1
  178. package/dist/statements.d.ts +3 -3
  179. package/dist/statements.d.ts.map +1 -1
  180. package/dist/statements.js +10 -10
  181. package/dist/statements.js.map +1 -1
  182. package/dist/uuid.d.ts +1 -1
  183. package/dist/uuid.d.ts.map +1 -1
  184. package/dist/uuid.js +1 -1
  185. package/dist/uuid.js.map +1 -1
  186. package/dist/values.d.ts +2 -2
  187. package/dist/values.d.ts.map +1 -1
  188. package/dist/values.js +2 -2
  189. package/dist/values.js.map +1 -1
  190. package/package.json +18 -18
  191. package/src/alternatives.ts +7 -8
  192. package/src/bin.ts +82 -0
  193. package/src/capacity.ts +20 -23
  194. package/src/changes.ts +134 -197
  195. package/src/closed.ts +5 -5
  196. package/src/codec.ts +77 -51
  197. package/src/compile.ts +91 -113
  198. package/src/database/database.ts +413 -0
  199. package/src/database/driver.ts +134 -0
  200. package/src/database/fs.ts +119 -0
  201. package/src/database/generate.ts +116 -0
  202. package/src/database/hosted.ts +102 -0
  203. package/src/database/io.ts +134 -0
  204. package/src/database/mem.ts +113 -0
  205. package/src/database/migration.ts +107 -0
  206. package/src/database/s3.ts +231 -0
  207. package/src/db.ts +290 -547
  208. package/src/engine.ts +14 -0
  209. package/src/errors.ts +118 -39
  210. package/src/face.ts +9 -9
  211. package/src/fields.ts +6 -7
  212. package/src/index.ts +102 -109
  213. package/src/judgment.ts +1 -1
  214. package/src/law.ts +18 -70
  215. package/src/lower.ts +61 -72
  216. package/src/native/addon.ts +54 -0
  217. package/src/native/binding.d.ts +996 -0
  218. package/src/native/json.ts +100 -0
  219. package/src/native/load.ts +31 -0
  220. package/src/native/op.ts +73 -0
  221. package/src/query/atom.ts +15 -16
  222. package/src/query/compute.ts +13 -22
  223. package/src/query/find.ts +8 -8
  224. package/src/query/lower.ts +323 -414
  225. package/src/query/run.ts +42 -21
  226. package/src/query/scope.ts +37 -38
  227. package/src/query/segments.ts +4 -4
  228. package/src/relation.ts +4 -4
  229. package/src/result.ts +53 -80
  230. package/src/rows.ts +18 -46
  231. package/src/runtime.ts +50 -346
  232. package/src/scalar.ts +76 -336
  233. package/src/schema.ts +23 -284
  234. package/src/selection.ts +6 -6
  235. package/src/shape.ts +5 -5
  236. package/src/spec.ts +7 -85
  237. package/src/statements.ts +11 -11
  238. package/src/uuid.ts +1 -1
  239. package/src/values.ts +4 -4
  240. package/dist/close.d.ts +0 -24
  241. package/dist/close.d.ts.map +0 -1
  242. package/dist/close.js +0 -34
  243. package/dist/close.js.map +0 -1
  244. package/dist/db-native.d.ts +0 -196
  245. package/dist/db-native.d.ts.map +0 -1
  246. package/dist/db-native.js +0 -13
  247. package/dist/db-native.js.map +0 -1
  248. package/dist/internal/log.d.ts +0 -26
  249. package/dist/internal/log.d.ts.map +0 -1
  250. package/dist/internal/log.js +0 -12
  251. package/dist/internal/log.js.map +0 -1
  252. package/dist/migration.d.ts +0 -31
  253. package/dist/migration.d.ts.map +0 -1
  254. package/dist/migration.js +0 -47
  255. package/dist/migration.js.map +0 -1
  256. package/dist/native.d.ts +0 -562
  257. package/dist/native.d.ts.map +0 -1
  258. package/dist/native.js +0 -123
  259. package/dist/native.js.map +0 -1
  260. package/dist/query/description.d.ts +0 -41
  261. package/dist/query/description.d.ts.map +0 -1
  262. package/dist/query/description.js +0 -311
  263. package/dist/query/description.js.map +0 -1
  264. package/dist/query/parse-ir.d.ts +0 -10
  265. package/dist/query/parse-ir.d.ts.map +0 -1
  266. package/dist/query/parse-ir.js +0 -280
  267. package/dist/query/parse-ir.js.map +0 -1
  268. package/dist/runtime-codes.d.ts +0 -2
  269. package/dist/runtime-codes.d.ts.map +0 -1
  270. package/dist/runtime-codes.js +0 -18
  271. package/dist/runtime-codes.js.map +0 -1
  272. package/dist/runtime-errors.d.ts +0 -118
  273. package/dist/runtime-errors.d.ts.map +0 -1
  274. package/dist/runtime-errors.js +0 -98
  275. package/dist/runtime-errors.js.map +0 -1
  276. package/dist/runtime-native.d.ts +0 -141
  277. package/dist/runtime-native.d.ts.map +0 -1
  278. package/dist/runtime-native.js +0 -5
  279. package/dist/runtime-native.js.map +0 -1
  280. package/pack-provenance.json +0 -7
  281. package/src/close.ts +0 -53
  282. package/src/db-native.ts +0 -243
  283. package/src/internal/log.ts +0 -48
  284. package/src/migration.ts +0 -61
  285. package/src/native.ts +0 -736
  286. package/src/query/description.ts +0 -424
  287. package/src/query/parse-ir.ts +0 -291
  288. package/src/runtime-codes.ts +0 -17
  289. package/src/runtime-errors.ts +0 -109
  290. package/src/runtime-native.ts +0 -189
package/dist/scalar.js CHANGED
@@ -1,26 +1,12 @@
1
- /**
2
- * The ONE leaf-scoped scalar AST (C1/C8): one tagged literal grammar and
3
- * operator roster, parameterized by {@link ScalarLeafScope}. TypeScript never
4
- * evaluates — the native compiler binds source fields and the engine
5
- * `ScalarEvaluator` executes. Construction is constant work against cached
6
- * depth/kind summaries; it does not re-walk the tree.
7
- *
8
- * Query-var leaves carry a known schema kind. Source-field leaves stay
9
- * `unresolved` until native snapshot binding. A result kind is recorded only
10
- * when it is derivable from known operands; otherwise it stays unresolved.
11
- * Known incompatible kinds refuse here. Unresolved trees are inert metadata,
12
- * not typechecked programs.
13
- *
14
- * Wire spellings (the grammar arms, not a second flattened interpretation):
15
- * migration plan JSON — field/literal/operator nodes; one-arm literals (`{ u64: n }`)
16
- * query IR — `{ kind: "literal", value: ValueSpec }` via `literalWireOf`
17
- */
18
- import { AuthoringError } from "#errors.ts";
1
+ /** Query scalar nodes, with cached kind and depth. Construction is constant
2
+ * work; native preparation binds variables and evaluates the expressions. */
3
+ import { AuthoringError } from "./errors.js";
4
+ import { valueIn } from "./native/json.js";
19
5
  const MAX_SCALAR_DEPTH = 128;
20
6
  const U64_MAX = (1n << 64n) - 1n;
21
7
  const I64_MIN = -(1n << 63n);
22
8
  const I64_MAX = (1n << 63n) - 1n;
23
- /** Constructor admissions only — not descendant visits. D27 construction-work pin. */
9
+ /** Constructor admissions only, not descendant visits. */
24
10
  let authoringWork = 0;
25
11
  function scalarAuthoringWork() {
26
12
  return authoringWork;
@@ -93,37 +79,17 @@ function assertNumeric(where, kind) {
93
79
  function assertSameKind(where, left, right) {
94
80
  if (left !== right) {
95
81
  throw new AuthoringError({
96
- message: `${where}: operand kinds differ (${left} vs ${right}) — the engine has no mixed promotion; cast explicitly (Scalar.toF64/ toF64Exact/ toI64Exact/ toU64Exact)`
82
+ message: `${where}: operand kinds differ (${left} vs ${right}) — the engine has no mixed promotion; cast explicitly (Compute.toF64/ toF64Exact/ toI64Exact/ toU64Exact)`
97
83
  });
98
84
  }
99
85
  return left;
100
86
  }
101
- function assertScope(where, left, right) {
102
- if (left.scope !== right.scope) {
103
- throw new AuthoringError({
104
- message: `${where}: leaf scopes differ (${left.scope} vs ${right.scope}) — query-var and source-field trees do not mix`
105
- });
106
- }
107
- return left.scope;
108
- }
109
87
  function combineNumeric(where, left, right) {
110
- if (left === "unresolved" || right === "unresolved") {
111
- if (left !== "unresolved") {
112
- assertNumeric(where, left);
113
- }
114
- if (right !== "unresolved") {
115
- assertNumeric(where, right);
116
- }
117
- return "unresolved";
118
- }
119
88
  assertNumeric(where, left);
120
89
  assertNumeric(where, right);
121
90
  return assertSameKind(where, left, right);
122
91
  }
123
92
  function negateKind(where, inner) {
124
- if (inner === "unresolved") {
125
- return "unresolved";
126
- }
127
93
  if (inner !== "i64" && inner !== "f64") {
128
94
  throw new AuthoringError({
129
95
  message: `${where}: the operand is ${inner} — negation is defined over i64 and f64 only`
@@ -132,70 +98,39 @@ function negateKind(where, inner) {
132
98
  return inner;
133
99
  }
134
100
  function assertCastOperand(where, inner) {
135
- if (inner === "unresolved") {
136
- return;
137
- }
138
101
  assertNumeric(where, inner);
139
102
  }
140
103
  function assertFloatOperand(where, inner) {
141
- if (inner === "unresolved") {
142
- return;
143
- }
144
104
  if (inner !== "f64") {
145
105
  throw new AuthoringError({ message: `${where}: the operand is ${inner} — the float predicates read f64` });
146
106
  }
147
107
  }
148
108
  function isScalarNode(value) {
149
- return (typeof value === "object" &&
150
- value !== null &&
151
- "kind" in value &&
152
- "scope" in value &&
153
- "result" in value &&
154
- "depth" in value);
155
- }
156
- function isUnresolvedScalar(node) {
157
- return node.result === "unresolved";
158
- }
159
- /** Source-field leaf — unresolved until L14 binds it against the verified snapshot. */
160
- function sourceField(name) {
161
- if (typeof name !== "string" || name.length === 0) {
162
- throw new AuthoringError({ message: "scalar field(...) names a nonempty source field" });
163
- }
164
- return admit("Scalar.field", {
165
- kind: "field",
166
- name,
167
- scope: "source-field",
168
- result: "unresolved",
169
- depth: 1
170
- });
109
+ return typeof value === "object" && value !== null && "kind" in value && "result" in value && "depth" in value;
171
110
  }
172
111
  /** Query-var leaf — kind is the variable's schema kind, already known. */
173
112
  function queryVarLeaf(ref, kind) {
174
- return admit("Scalar.queryVar", {
113
+ return admit("Compute.variable", {
175
114
  kind: "var",
176
115
  ref,
177
- scope: "query-var",
178
116
  result: kind,
179
117
  depth: 1
180
118
  });
181
119
  }
182
- function scalarLiteral(scope, value) {
120
+ function scalarLiteral(value) {
183
121
  const kind = literalKindOf(value);
184
- return admit("Scalar.literal", {
122
+ return admit("Compute.literal", {
185
123
  kind: "literal",
186
124
  value: literalValue(value),
187
- scope,
188
125
  result: kind,
189
126
  depth: 1
190
127
  });
191
128
  }
192
129
  function scalarBinary(where, op, left, right) {
193
- const scope = assertScope(where, left, right);
194
130
  return admit(where, {
195
131
  kind: op,
196
132
  left,
197
133
  right,
198
- scope,
199
134
  result: combineNumeric(where, left.result, right.result),
200
135
  depth: Math.max(left.depth, right.depth) + 1
201
136
  });
@@ -206,12 +141,8 @@ function roundingMode(value) {
206
141
  return value;
207
142
  }
208
143
  function scalarMulDiv(where, a, b, divisor, rounding) {
209
- const scope = assertScope(where, a, b);
210
- assertScope(where, a, divisor);
211
144
  let known;
212
145
  for (const operand of [a, b, divisor]) {
213
- if (operand.result === "unresolved")
214
- continue;
215
146
  if ((operand.result !== "i64" && operand.result !== "u64") || (known !== undefined && known !== operand.result))
216
147
  throw new AuthoringError({ message: `${where}: operands must have one matching integer kind` });
217
148
  known = operand.result;
@@ -222,22 +153,18 @@ function scalarMulDiv(where, a, b, divisor, rounding) {
222
153
  b,
223
154
  divisor,
224
155
  rounding: roundingMode(rounding),
225
- scope,
226
- result: a.result === "unresolved" || b.result === "unresolved" || divisor.result === "unresolved"
227
- ? "unresolved"
228
- : a.result,
156
+ result: a.result,
229
157
  depth: Math.max(a.depth, b.depth, divisor.depth) + 1
230
158
  });
231
159
  }
232
160
  function scalarMeasure(where, expr) {
233
161
  const kind = expr.result;
234
- if (kind !== "unresolved" && kind !== "intervalU64" && kind !== "intervalI64" && kind !== "intervalF64")
162
+ if (kind !== "intervalU64" && kind !== "intervalI64" && kind !== "intervalF64")
235
163
  throw new AuthoringError({ message: `${where}: measure requires an interval` });
236
164
  return admit(where, {
237
165
  kind: "measure",
238
166
  expr,
239
- scope: expr.scope,
240
- result: { unresolved: "unresolved", intervalF64: "f64", intervalI64: "u64", intervalU64: "u64" }[kind],
167
+ result: { intervalF64: "f64", intervalI64: "u64", intervalU64: "u64" }[kind],
241
168
  depth: expr.depth + 1
242
169
  });
243
170
  }
@@ -245,7 +172,6 @@ function scalarNegate(where, expr) {
245
172
  return admit(where, {
246
173
  kind: "negate",
247
174
  expr,
248
- scope: expr.scope,
249
175
  result: negateKind(where, expr.result),
250
176
  depth: expr.depth + 1
251
177
  });
@@ -256,7 +182,6 @@ function scalarCast(where, cast, result, expr) {
256
182
  kind: "cast",
257
183
  cast,
258
184
  expr,
259
- scope: expr.scope,
260
185
  result,
261
186
  depth: expr.depth + 1
262
187
  });
@@ -266,7 +191,6 @@ function scalarFloatPredicate(where, op, expr) {
266
191
  return admit(where, {
267
192
  kind: op,
268
193
  expr,
269
- scope: expr.scope,
270
194
  result: "bool",
271
195
  depth: expr.depth + 1
272
196
  });
@@ -302,121 +226,48 @@ function queryVarsOf(node) {
302
226
  case "divide":
303
227
  pending.push(next.left, next.right);
304
228
  break;
305
- default:
306
- throw new AuthoringError({
307
- message: "queryVarsOf: a query-var tree cannot carry a source-field leaf"
308
- });
309
229
  }
310
230
  }
311
231
  return vars;
312
232
  }
313
- function field(name) {
314
- return sourceField(name);
315
- }
316
- function literal(value) {
317
- return scalarLiteral("source-field", value);
318
- }
319
- function u64(value) {
320
- checkU64(value, "Scalar.u64");
321
- return scalarLiteral("source-field", { u64: value });
322
- }
323
- function i64(value) {
324
- checkI64(value, "Scalar.i64");
325
- return scalarLiteral("source-field", { i64: value });
326
- }
327
- function f64(value) {
328
- checkF64(value, "Scalar.f64");
329
- return scalarLiteral("source-field", { f64: value });
330
- }
331
- function bool(value) {
332
- checkBool(value, "Scalar.bool");
333
- return scalarLiteral("source-field", { bool: value });
334
- }
335
- function negate(expr) {
336
- return scalarNegate("Scalar.negate", expr);
337
- }
338
- function add(left, right) {
339
- return scalarBinary("Scalar.add", "add", left, right);
340
- }
341
- function subtract(left, right) {
342
- return scalarBinary("Scalar.subtract", "subtract", left, right);
343
- }
344
- function multiply(left, right) {
345
- return scalarBinary("Scalar.multiply", "multiply", left, right);
346
- }
347
- function divide(left, right) {
348
- return scalarBinary("Scalar.divide", "divide", left, right);
349
- }
350
- function mulDiv(a, b, divisor, rounding) {
351
- return scalarMulDiv("Scalar.mulDiv", a, b, divisor, rounding);
352
- }
353
- function measure(expr) {
354
- return scalarMeasure("Scalar.measure", expr);
355
- }
356
- function toF64(expr) {
357
- return scalarCast("Scalar.toF64", "toF64", "f64", expr);
358
- }
359
- function toF64Exact(expr) {
360
- return scalarCast("Scalar.toF64Exact", "toF64Exact", "f64", expr);
361
- }
362
- function toI64Exact(expr) {
363
- return scalarCast("Scalar.toI64Exact", "toI64Exact", "i64", expr);
364
- }
365
- function toU64Exact(expr) {
366
- return scalarCast("Scalar.toU64Exact", "toU64Exact", "u64", expr);
367
- }
368
- function isNaNExpr(expr) {
369
- return scalarFloatPredicate("Scalar.isNaN", "isNaN", expr);
370
- }
371
- function isFiniteExpr(expr) {
372
- return scalarFloatPredicate("Scalar.isFinite", "isFinite", expr);
373
- }
374
- /** One lowering walk for query variables and row-field bindings. */
233
+ /** Lower each query variable through its existing binding. */
234
+ const ROUNDING = {
235
+ towardZero: "TowardZero",
236
+ nearestTiesAwayFromZero: "NearestTiesAwayFromZero",
237
+ nearestTiesToEven: "NearestTiesToEven"
238
+ };
239
+ const CAST = { toF64: "ToF64", toF64Exact: "ToF64Exact", toI64Exact: "ToI64Exact", toU64Exact: "ToU64Exact" };
240
+ const UNARY = { measure: "Measure", negate: "Negate", isNaN: "IsNaN", isFinite: "IsFinite" };
241
+ const BINARY = { add: "Add", subtract: "Subtract", multiply: "Multiply", divide: "Divide" };
242
+ /** Lowers a scalar expression to the addon's `ScalarExprIn`; `leaf` numbers the rule variables. */
375
243
  function scalarWire(node, leaf) {
376
244
  const walk = (expr) => scalarWire(expr, leaf);
377
245
  switch (node.kind) {
378
246
  case "var":
379
- case "field":
380
- return { kind: "var", var: leaf(node) };
247
+ return { kind: "Var", var: leaf(node) };
381
248
  case "literal":
382
- return { kind: "literal", value: literalWireOf(node.value) };
249
+ return { kind: "Literal", value: valueIn(literalWireOf(node.value)) };
383
250
  case "measure":
384
251
  case "negate":
385
252
  case "isNaN":
386
253
  case "isFinite":
387
- return { kind: node.kind, expr: walk(node.expr) };
254
+ return { kind: UNARY[node.kind], expr: walk(node.expr) };
388
255
  case "cast":
389
- return { kind: node.kind, cast: node.cast, expr: walk(node.expr) };
256
+ return { kind: "Cast", cast: CAST[node.cast], expr: walk(node.expr) };
390
257
  case "mulDiv":
391
- return { kind: node.kind, a: walk(node.a), b: walk(node.b), divisor: walk(node.divisor), rounding: node.rounding };
258
+ return {
259
+ kind: "MulDiv",
260
+ a: walk(node.a),
261
+ b: walk(node.b),
262
+ divisor: walk(node.divisor),
263
+ rounding: ROUNDING[node.rounding]
264
+ };
392
265
  case "add":
393
266
  case "subtract":
394
267
  case "multiply":
395
268
  case "divide":
396
- return { kind: node.kind, left: walk(node.left), right: walk(node.right) };
269
+ return { kind: BINARY[node.kind], left: walk(node.left), right: walk(node.right) };
397
270
  }
398
271
  }
399
- /** The authoring namespace: `Scalar.field("units")`, `Scalar.add(...)`. */
400
- const Scalar = Object.freeze({
401
- field,
402
- literal,
403
- u64,
404
- i64,
405
- f64,
406
- bool,
407
- negate,
408
- add,
409
- subtract,
410
- multiply,
411
- divide,
412
- mulDiv,
413
- measure,
414
- toF64,
415
- toF64Exact,
416
- toI64Exact,
417
- toU64Exact,
418
- isNaN: isNaNExpr,
419
- isFinite: isFiniteExpr
420
- });
421
- export { assertDepth, assertNumeric, assertSameKind, checkBool, checkF64, checkI64, checkU64, isScalarNode, isUnresolvedScalar, literalKindOf, literalValue, literalWireOf, MAX_SCALAR_DEPTH, queryVarLeaf, queryVarsOf, roundingMode, Scalar, scalarAuthoringWork, scalarBinary, scalarCast, scalarFloatPredicate, scalarLiteral, scalarMeasure, scalarMulDiv, scalarNegate, scalarWire };
272
+ export { assertDepth, assertNumeric, assertSameKind, checkBool, checkF64, checkI64, checkU64, isScalarNode, literalKindOf, literalValue, literalWireOf, MAX_SCALAR_DEPTH, queryVarLeaf, queryVarsOf, roundingMode, scalarAuthoringWork, scalarBinary, scalarCast, scalarFloatPredicate, scalarLiteral, scalarMeasure, scalarMulDiv, scalarNegate, scalarWire };
422
273
  //# sourceMappingURL=scalar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scalar.js","sourceRoot":"","sources":["../src/scalar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scalar.js","sourceRoot":"","sources":["../src/scalar.ts"],"names":[],"mappings":"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"}
package/dist/schema.d.ts CHANGED
@@ -1,23 +1,12 @@
1
1
  /**
2
- * `schema` — assembles relations and statements into a theory value (the
3
- * `Theory` analog; what `Db.create`/`Db.open` take). Construction-time
4
- * validation is the macro-EXPANSION-boundary analog: membership,
5
- * implied-key duplicates, duplicate statements, a belt-and-braces handle
6
- * re-verification — and the TARGET-KEY WALL ({@link verifyTargetKeys}),
7
- * the value tier of the two-tier containment law
8
- * (60-containment-parity): every containment/mirrors/capacity target
9
- * projection must set-match a key of its relation, judged HERE with the
10
- * engine's exact rule so `lower` never emits an engine-refused
11
- * containment. The type tier is `law.ts`'s `TargetKeyWall` (best effort,
12
- * statically known tuples); every OTHER semantic judgment (key-internal
13
- * legality, …) stays the engine's `SchemaError` at
14
- * `Db.create` — the engine is the final authority for every boundary,
15
- * this wall just makes the SDK agree with it first.
2
+ * `schema` assembles relations and statements into a schema value and has the engine compile it.
3
+ * The SDK checks only what the engine cannot see: that every statement names this schema's own
4
+ * relation values. Every other judgment is the engine's, reported as an `AuthoringError`.
16
5
  */
17
- import type { AnyClosed } from "./closed.js";
18
- import { type ClassesOf, type LawfulStatements, type SchemaClasses } from "./law.js";
19
- import type { AnyRelation } from "./relation.js";
20
- import { type Statement } from "./statements.js";
6
+ import type { AnyClosed } from "./closed.ts";
7
+ import { type ClassesOf, type LawfulStatements, type SchemaClasses } from "./law.ts";
8
+ import type { AnyRelation } from "./relation.ts";
9
+ import { type Statement } from "./statements.ts";
21
10
  type SchemaRelation = AnyRelation | AnyClosed;
22
11
  type SchemaRelations = Record<string, SchemaRelation>;
23
12
  interface Schema<Rels extends SchemaRelations, Classes extends SchemaClasses = SchemaClasses> {
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAK3C,OAAO,EAAE,KAAK,SAAS,EAAmC,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,SAAS,CAAA;AACpH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C,OAAO,EAAmB,KAAK,SAAS,EAAuB,MAAM,gBAAgB,CAAA;AAmRrF,KAAK,cAAc,GAAG,WAAW,GAAG,SAAS,CAAA;AAE7C,KAAK,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;AAErD,UAAU,MAAM,CAAC,IAAI,SAAS,eAAe,EAAE,OAAO,SAAS,aAAa,GAAG,aAAa;IAC3F,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAA;IACxB,QAAQ,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAA;IACzC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CACzB;AAED,KAAK,SAAS,GAAG,MAAM,CAAC,eAAe,CAAC,CAAA;AAExC;;;;GAIG;AACH,iBAAS,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,GAAG,OAAO,CA0B1E;AAID,iBAAS,gBAAgB,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAA;AAC3D,iBAAS,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAA;AAsBpD,KAAK,gBAAgB,CAAC,CAAC,SAAS,aAAa,IAAI,CAAC,SAAS,aAAa,GACrE;IAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG;QAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE;CAAE,GACpE,KAAK,CAAA;AAaR,iBAAS,MAAM,CAAC,KAAK,CAAC,IAAI,SAAS,eAAe,EAAE,KAAK,CAAC,KAAK,SAAS,SAAS,SAAS,EAAE,EAC3F,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,IAAI,EACf,UAAU,EAAE,KAAK,GAAG,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,GAC/C,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CA2BxD;AAED,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,CAAA"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAI5C,OAAO,EAAE,KAAK,SAAS,EAAmC,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAA;AACrH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAmB,KAAK,SAAS,EAAuB,MAAM,iBAAiB,CAAA;AAwCtF,KAAK,cAAc,GAAG,WAAW,GAAG,SAAS,CAAA;AAE7C,KAAK,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;AAErD,UAAU,MAAM,CAAC,IAAI,SAAS,eAAe,EAAE,OAAO,SAAS,aAAa,GAAG,aAAa;IAC3F,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAA;IACxB,QAAQ,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAA;IACzC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CACzB;AAED,KAAK,SAAS,GAAG,MAAM,CAAC,eAAe,CAAC,CAAA;AAExC;;;;GAIG;AACH,iBAAS,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,GAAG,OAAO,CA0B1E;AAID,iBAAS,gBAAgB,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAA;AAC3D,iBAAS,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAA;AAsBpD,KAAK,gBAAgB,CAAC,CAAC,SAAS,aAAa,IAAI,CAAC,SAAS,aAAa,GACrE;IAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG;QAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE;CAAE,GACpE,KAAK,CAAA;AAaR,iBAAS,MAAM,CAAC,KAAK,CAAC,IAAI,SAAS,eAAe,EAAE,KAAK,CAAC,KAAK,SAAS,SAAS,SAAS,EAAE,EAC3F,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,IAAI,EACf,UAAU,EAAE,KAAK,GAAG,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,GAC/C,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAaxD;AAED,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,CAAA"}