@bjornpagen/bumbledb 1.3.0 → 1.3.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 (86) hide show
  1. package/COOKBOOK.md +72 -19
  2. package/README.md +9 -6
  3. package/dist/changes.d.ts +0 -1
  4. package/dist/changes.d.ts.map +1 -1
  5. package/dist/changes.js +2 -8
  6. package/dist/changes.js.map +1 -1
  7. package/dist/codec.d.ts +8 -1
  8. package/dist/codec.d.ts.map +1 -1
  9. package/dist/codec.js +29 -2
  10. package/dist/codec.js.map +1 -1
  11. package/dist/db-native.d.ts +2 -9
  12. package/dist/db-native.d.ts.map +1 -1
  13. package/dist/db-native.js.map +1 -1
  14. package/dist/index.d.ts +2 -3
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +1 -2
  17. package/dist/index.js.map +1 -1
  18. package/dist/internal/log.d.ts +4 -4
  19. package/dist/internal/log.d.ts.map +1 -1
  20. package/dist/internal/log.js +2 -2
  21. package/dist/internal/log.js.map +1 -1
  22. package/dist/native.d.ts +9 -9
  23. package/dist/native.d.ts.map +1 -1
  24. package/dist/query/compute.d.ts +3 -3
  25. package/dist/query/compute.d.ts.map +1 -1
  26. package/dist/query/compute.js +3 -12
  27. package/dist/query/compute.js.map +1 -1
  28. package/dist/query/description.js +4 -4
  29. package/dist/query/description.js.map +1 -1
  30. package/dist/query/lower.d.ts +11 -2
  31. package/dist/query/lower.d.ts.map +1 -1
  32. package/dist/query/lower.js +31 -26
  33. package/dist/query/lower.js.map +1 -1
  34. package/dist/query/parse-ir.d.ts.map +1 -1
  35. package/dist/query/parse-ir.js +4 -4
  36. package/dist/query/parse-ir.js.map +1 -1
  37. package/dist/query/scope.d.ts.map +1 -1
  38. package/dist/query/scope.js +6 -1
  39. package/dist/query/scope.js.map +1 -1
  40. package/dist/runtime-codes.d.ts +1 -1
  41. package/dist/runtime-codes.d.ts.map +1 -1
  42. package/dist/runtime-codes.js +1 -0
  43. package/dist/runtime-codes.js.map +1 -1
  44. package/dist/runtime-errors.d.ts +23 -3
  45. package/dist/runtime-errors.d.ts.map +1 -1
  46. package/dist/runtime-errors.js +16 -3
  47. package/dist/runtime-errors.js.map +1 -1
  48. package/dist/runtime-native.d.ts +3 -8
  49. package/dist/runtime-native.d.ts.map +1 -1
  50. package/dist/runtime-native.js.map +1 -1
  51. package/dist/runtime.d.ts +0 -23
  52. package/dist/runtime.d.ts.map +1 -1
  53. package/dist/runtime.js +0 -36
  54. package/dist/runtime.js.map +1 -1
  55. package/dist/scalar.d.ts +34 -104
  56. package/dist/scalar.d.ts.map +1 -1
  57. package/dist/scalar.js +12 -177
  58. package/dist/scalar.js.map +1 -1
  59. package/dist/schema-file.d.ts +7 -0
  60. package/dist/schema-file.d.ts.map +1 -0
  61. package/dist/schema-file.js +24 -0
  62. package/dist/schema-file.js.map +1 -0
  63. package/pack-provenance.json +4 -4
  64. package/package.json +4 -4
  65. package/src/changes.ts +2 -8
  66. package/src/codec.ts +43 -3
  67. package/src/db-native.ts +2 -10
  68. package/src/index.ts +11 -5
  69. package/src/internal/log.ts +2 -4
  70. package/src/native.ts +7 -7
  71. package/src/query/compute.ts +6 -15
  72. package/src/query/description.ts +4 -4
  73. package/src/query/lower.ts +56 -25
  74. package/src/query/parse-ir.ts +6 -4
  75. package/src/query/scope.ts +8 -1
  76. package/src/runtime-codes.ts +1 -0
  77. package/src/runtime-errors.ts +16 -3
  78. package/src/runtime-native.ts +1 -9
  79. package/src/runtime.ts +1 -70
  80. package/src/scalar.ts +49 -329
  81. package/src/schema-file.ts +38 -0
  82. package/dist/migration.d.ts +0 -31
  83. package/dist/migration.d.ts.map +0 -1
  84. package/dist/migration.js +0 -47
  85. package/dist/migration.js.map +0 -1
  86. package/src/migration.ts +0 -61
package/dist/scalar.js CHANGED
@@ -1,20 +1,5 @@
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
- */
1
+ /** Query scalar nodes, with cached kind and depth. Construction is constant
2
+ * work; native preparation binds variables and evaluates the expressions. */
18
3
  import { AuthoringError } from "#errors.ts";
19
4
  const MAX_SCALAR_DEPTH = 128;
20
5
  const U64_MAX = (1n << 64n) - 1n;
@@ -93,37 +78,17 @@ function assertNumeric(where, kind) {
93
78
  function assertSameKind(where, left, right) {
94
79
  if (left !== right) {
95
80
  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)`
81
+ message: `${where}: operand kinds differ (${left} vs ${right}) — the engine has no mixed promotion; cast explicitly (Compute.toF64/ toF64Exact/ toI64Exact/ toU64Exact)`
97
82
  });
98
83
  }
99
84
  return left;
100
85
  }
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
86
  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
87
  assertNumeric(where, left);
120
88
  assertNumeric(where, right);
121
89
  return assertSameKind(where, left, right);
122
90
  }
123
91
  function negateKind(where, inner) {
124
- if (inner === "unresolved") {
125
- return "unresolved";
126
- }
127
92
  if (inner !== "i64" && inner !== "f64") {
128
93
  throw new AuthoringError({
129
94
  message: `${where}: the operand is ${inner} — negation is defined over i64 and f64 only`
@@ -132,70 +97,39 @@ function negateKind(where, inner) {
132
97
  return inner;
133
98
  }
134
99
  function assertCastOperand(where, inner) {
135
- if (inner === "unresolved") {
136
- return;
137
- }
138
100
  assertNumeric(where, inner);
139
101
  }
140
102
  function assertFloatOperand(where, inner) {
141
- if (inner === "unresolved") {
142
- return;
143
- }
144
103
  if (inner !== "f64") {
145
104
  throw new AuthoringError({ message: `${where}: the operand is ${inner} — the float predicates read f64` });
146
105
  }
147
106
  }
148
107
  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
- });
108
+ return typeof value === "object" && value !== null && "kind" in value && "result" in value && "depth" in value;
171
109
  }
172
110
  /** Query-var leaf — kind is the variable's schema kind, already known. */
173
111
  function queryVarLeaf(ref, kind) {
174
- return admit("Scalar.queryVar", {
112
+ return admit("Compute.variable", {
175
113
  kind: "var",
176
114
  ref,
177
- scope: "query-var",
178
115
  result: kind,
179
116
  depth: 1
180
117
  });
181
118
  }
182
- function scalarLiteral(scope, value) {
119
+ function scalarLiteral(value) {
183
120
  const kind = literalKindOf(value);
184
- return admit("Scalar.literal", {
121
+ return admit("Compute.literal", {
185
122
  kind: "literal",
186
123
  value: literalValue(value),
187
- scope,
188
124
  result: kind,
189
125
  depth: 1
190
126
  });
191
127
  }
192
128
  function scalarBinary(where, op, left, right) {
193
- const scope = assertScope(where, left, right);
194
129
  return admit(where, {
195
130
  kind: op,
196
131
  left,
197
132
  right,
198
- scope,
199
133
  result: combineNumeric(where, left.result, right.result),
200
134
  depth: Math.max(left.depth, right.depth) + 1
201
135
  });
@@ -206,12 +140,8 @@ function roundingMode(value) {
206
140
  return value;
207
141
  }
208
142
  function scalarMulDiv(where, a, b, divisor, rounding) {
209
- const scope = assertScope(where, a, b);
210
- assertScope(where, a, divisor);
211
143
  let known;
212
144
  for (const operand of [a, b, divisor]) {
213
- if (operand.result === "unresolved")
214
- continue;
215
145
  if ((operand.result !== "i64" && operand.result !== "u64") || (known !== undefined && known !== operand.result))
216
146
  throw new AuthoringError({ message: `${where}: operands must have one matching integer kind` });
217
147
  known = operand.result;
@@ -222,22 +152,18 @@ function scalarMulDiv(where, a, b, divisor, rounding) {
222
152
  b,
223
153
  divisor,
224
154
  rounding: roundingMode(rounding),
225
- scope,
226
- result: a.result === "unresolved" || b.result === "unresolved" || divisor.result === "unresolved"
227
- ? "unresolved"
228
- : a.result,
155
+ result: a.result,
229
156
  depth: Math.max(a.depth, b.depth, divisor.depth) + 1
230
157
  });
231
158
  }
232
159
  function scalarMeasure(where, expr) {
233
160
  const kind = expr.result;
234
- if (kind !== "unresolved" && kind !== "intervalU64" && kind !== "intervalI64" && kind !== "intervalF64")
161
+ if (kind !== "intervalU64" && kind !== "intervalI64" && kind !== "intervalF64")
235
162
  throw new AuthoringError({ message: `${where}: measure requires an interval` });
236
163
  return admit(where, {
237
164
  kind: "measure",
238
165
  expr,
239
- scope: expr.scope,
240
- result: { unresolved: "unresolved", intervalF64: "f64", intervalI64: "u64", intervalU64: "u64" }[kind],
166
+ result: { intervalF64: "f64", intervalI64: "u64", intervalU64: "u64" }[kind],
241
167
  depth: expr.depth + 1
242
168
  });
243
169
  }
@@ -245,7 +171,6 @@ function scalarNegate(where, expr) {
245
171
  return admit(where, {
246
172
  kind: "negate",
247
173
  expr,
248
- scope: expr.scope,
249
174
  result: negateKind(where, expr.result),
250
175
  depth: expr.depth + 1
251
176
  });
@@ -256,7 +181,6 @@ function scalarCast(where, cast, result, expr) {
256
181
  kind: "cast",
257
182
  cast,
258
183
  expr,
259
- scope: expr.scope,
260
184
  result,
261
185
  depth: expr.depth + 1
262
186
  });
@@ -266,7 +190,6 @@ function scalarFloatPredicate(where, op, expr) {
266
190
  return admit(where, {
267
191
  kind: op,
268
192
  expr,
269
- scope: expr.scope,
270
193
  result: "bool",
271
194
  depth: expr.depth + 1
272
195
  });
@@ -302,81 +225,15 @@ function queryVarsOf(node) {
302
225
  case "divide":
303
226
  pending.push(next.left, next.right);
304
227
  break;
305
- default:
306
- throw new AuthoringError({
307
- message: "queryVarsOf: a query-var tree cannot carry a source-field leaf"
308
- });
309
228
  }
310
229
  }
311
230
  return vars;
312
231
  }
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. */
232
+ /** Lower each query variable through its existing binding. */
375
233
  function scalarWire(node, leaf) {
376
234
  const walk = (expr) => scalarWire(expr, leaf);
377
235
  switch (node.kind) {
378
236
  case "var":
379
- case "field":
380
237
  return { kind: "var", var: leaf(node) };
381
238
  case "literal":
382
239
  return { kind: "literal", value: literalWireOf(node.value) };
@@ -396,27 +253,5 @@ function scalarWire(node, leaf) {
396
253
  return { kind: node.kind, left: walk(node.left), right: walk(node.right) };
397
254
  }
398
255
  }
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 };
256
+ 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
257
  //# 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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"}
@@ -0,0 +1,7 @@
1
+ import { Effect } from "effect";
2
+ import { DbError } from "./runtime-errors.js";
3
+ import type { SchemaSpec } from "./spec.js";
4
+ declare const internalSchemaSnapshot: (spec: SchemaSpec) => Effect.Effect<string, DbError, import("./runtime.js").NativeRuntime>;
5
+ declare const internalSchemaBindings: (snapshot: string) => Effect.Effect<string, DbError, import("./runtime.js").NativeRuntime>;
6
+ export { internalSchemaBindings, internalSchemaSnapshot };
7
+ //# sourceMappingURL=schema-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-file.d.ts","sourceRoot":"","sources":["../src/schema-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAG/B,OAAO,EAAE,OAAO,EAAW,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAS1C,QAAA,MAAM,sBAAsB,2FAQ1B,CAAA;AAEF,QAAA,MAAM,sBAAsB,2FAY1B,CAAA;AAEF,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,CAAA"}
@@ -0,0 +1,24 @@
1
+ import { Effect } from "effect";
2
+ import { dbNative } from "#db-native.ts";
3
+ import { nativeOperationWith, runtimeHandle } from "#runtime.ts";
4
+ import { DbError, dbError } from "#runtime-errors.ts";
5
+ const decoder = new TextDecoder("utf-8", { fatal: true });
6
+ function text(operation, bytes) {
7
+ if (bytes === null)
8
+ throw dbError(operation, { _tag: "Internal" });
9
+ return decoder.decode(bytes);
10
+ }
11
+ const internalSchemaSnapshot = Effect.fn("internalSchemaSnapshot")(function* (spec) {
12
+ const runtime = yield* runtimeHandle();
13
+ return yield* nativeOperationWith("internalSchemaSnapshot", (callback) => dbNative.runtimeSchemaSnapshot(runtime, spec, callback), dbNative.runtimeBytesTake, (bytes) => text("internalSchemaSnapshot", bytes));
14
+ });
15
+ const internalSchemaBindings = Effect.fn("internalSchemaBindings")(function* (snapshot) {
16
+ if (typeof snapshot !== "string" || !snapshot.isWellFormed()) {
17
+ return yield* Effect.fail(new DbError({ operation: "internalSchemaBindings", reason: { _tag: "InvalidArgument" } }));
18
+ }
19
+ const runtime = yield* runtimeHandle();
20
+ const bytes = new TextEncoder().encode(snapshot);
21
+ return yield* nativeOperationWith("internalSchemaBindings", (callback) => dbNative.runtimeSchemaBindings(runtime, bytes, callback), dbNative.runtimeBytesTake, (bytes) => text("internalSchemaBindings", bytes));
22
+ });
23
+ export { internalSchemaBindings, internalSchemaSnapshot };
24
+ //# sourceMappingURL=schema-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-file.js","sourceRoot":"","sources":["../src/schema-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAGrD,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;AAEzD,SAAS,IAAI,CAAC,SAAiB,EAAE,KAAwB;IACxD,IAAI,KAAK,KAAK,IAAI;QAAE,MAAM,OAAO,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;IAClE,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC7B,CAAC;AAED,MAAM,sBAAsB,GAAG,MAAM,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAgB;IAC7F,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,aAAa,EAAE,CAAA;IACtC,OAAO,KAAK,CAAC,CAAC,mBAAmB,CAChC,wBAAwB,EACxB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,EACrE,QAAQ,CAAC,gBAAgB,EACzB,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAChD,CAAA;AACF,CAAC,CAAC,CAAA;AAEF,MAAM,sBAAsB,GAAG,MAAM,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC,EAAE,QAAgB;IAC7F,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC;QAC9D,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,EAAE,SAAS,EAAE,wBAAwB,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAA;IACrH,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,aAAa,EAAE,CAAA;IACtC,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAChD,OAAO,KAAK,CAAC,CAAC,mBAAmB,CAChC,wBAAwB,EACxB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,EACtE,QAAQ,CAAC,gBAAgB,EACzB,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAChD,CAAA;AACF,CAAC,CAAC,CAAA;AAEF,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,CAAA"}
@@ -1,7 +1,7 @@
1
1
  {
2
- "candidateSourceDigest": "cf0cd07de3f8596acc7b15601063911472272a859f0fad176c3f75cd48f95719",
3
- "specificationRevision": "87e9a83ee21d1f843c73ac6e7057b2b740db75aae70a553b8053b4f38e87bd2d",
4
- "stagedAt": "2026-09-11T16:23:11.093Z",
2
+ "candidateSourceDigest": "7109ef17978c17a195301260c8b4cd2736ce785646c46c61d61bf7850c4299da",
3
+ "specificationRevision": "91f64ebf5ccf285a072aeff41ca364d1e837259e4273f9be12a0a5959c38a45e",
4
+ "stagedAt": "2026-09-12T00:04:00.990Z",
5
5
  "package": "@bjornpagen/bumbledb",
6
- "version": "1.3.0"
6
+ "version": "1.3.1"
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bjornpagen/bumbledb",
3
- "version": "1.3.0",
3
+ "version": "1.3.1",
4
4
  "description": "Effect-native embedded relational database for TypeScript: typed schemas and queries, exact floats, commit-time constraints",
5
5
  "type": "module",
6
6
  "exports": {
@@ -57,8 +57,8 @@
57
57
  },
58
58
  "private": false,
59
59
  "optionalDependencies": {
60
- "@bjornpagen/bumbledb-darwin-arm64": "1.3.0",
61
- "@bjornpagen/bumbledb-linux-arm64": "1.3.0",
62
- "@bjornpagen/bumbledb-linux-x64": "1.3.0"
60
+ "@bjornpagen/bumbledb-darwin-arm64": "1.3.1",
61
+ "@bjornpagen/bumbledb-linux-arm64": "1.3.1",
62
+ "@bjornpagen/bumbledb-linux-x64": "1.3.1"
63
63
  }
64
64
  }
package/src/changes.ts CHANGED
@@ -93,7 +93,6 @@ interface DraftState {
93
93
  interface ChangesInternal {
94
94
  readonly handle: ChangesHandle
95
95
  readonly schemaId: SchemaId
96
- closed: boolean
97
96
  }
98
97
 
99
98
  const changesInternals = new WeakMap<object, ChangesInternal>()
@@ -320,7 +319,6 @@ function acquireChanges<S extends AnySchema>(
320
319
  Effect.suspend(() => {
321
320
  const internal = changesInternals.get(changes)
322
321
  if (internal === undefined) return Effect.void
323
- internal.closed = true
324
322
  return releaseOwner("ChangeSet.close", (callback) => dbNative.runtimeChangesClose(internal.handle, callback))
325
323
  }),
326
324
  { interruptible: true }
@@ -330,7 +328,7 @@ function acquireChanges<S extends AnySchema>(
330
328
  function makeChangeSet<S extends AnySchema>(theory: S, wire: ChangesWire, schemaId: SchemaId): ChangeSet<S> {
331
329
  const handle = wire.changes
332
330
  const relations = Object.values(theory.relations)
333
- const internal: ChangesInternal = { handle, schemaId, closed: false }
331
+ const internal: ChangesInternal = { handle, schemaId }
334
332
  const value: ChangeSet<S> = {
335
333
  schemaId,
336
334
  counts: Object.freeze({ ...wire.counts }),
@@ -351,7 +349,6 @@ function makeChangeSet<S extends AnySchema>(theory: S, wire: ChangesWire, schema
351
349
  const right = internalChanges(other)
352
350
  if (right === undefined || right.schemaId !== schemaId)
353
351
  return Effect.fail(refusal("ChangeSet.compose", "InvalidArgument"))
354
- if (internal.closed || right.closed) return Effect.fail(refusal("ChangeSet.compose", "ClosedHandle"))
355
352
  return acquireChanges(
356
353
  theory,
357
354
  schemaId,
@@ -365,10 +362,7 @@ function makeChangeSet<S extends AnySchema>(theory: S, wire: ChangesWire, schema
365
362
  })
366
363
  },
367
364
  close() {
368
- return Effect.suspend(() => {
369
- internal.closed = true
370
- return drainClose("ChangeSet.close", (callback) => dbNative.runtimeChangesClose(handle, callback))
371
- })
365
+ return drainClose("ChangeSet.close", (callback) => dbNative.runtimeChangesClose(handle, callback))
372
366
  }
373
367
  }
374
368
  Object.freeze(value)
package/src/codec.ts CHANGED
@@ -3,7 +3,7 @@ import { membersAgree } from "#closed.ts"
3
3
  import { schemaTables } from "#compile.ts"
4
4
  import { dbNative } from "#db-native.ts"
5
5
  import { AuthoringError } from "#errors.ts"
6
- import type { AnyField } from "#fields.ts"
6
+ import { type AnyField, fieldDescriptor, type Infer } from "#fields.ts"
7
7
  import { lower } from "#lower.ts"
8
8
  import { type AnyRelation, type Fact, relationDescriptor, relationFields } from "#relation.ts"
9
9
  import type { CellValue } from "#rows.ts"
@@ -141,7 +141,8 @@ function decodeTaggedF64(value: unknown): number | undefined {
141
141
  }
142
142
 
143
143
  /** Decode representation, then judge the value through the shared interpreter. */
144
- function decodeBoundaryValue(context: string, field: AnyField, input: unknown): unknown {
144
+ function decodeBoundaryValue<F extends AnyField>(context: string, field: F, input: unknown): Infer<F>
145
+ function decodeBoundaryValue(context: string, field: AnyField, input: unknown): Infer<AnyField> {
145
146
  if ("closed" in field) return fieldValue(context, field, input)
146
147
  let decoded: unknown = input
147
148
  switch (field.kind) {
@@ -167,6 +168,35 @@ function decodeBoundaryValue(context: string, field: AnyField, input: unknown):
167
168
  return fieldValue(context, field, decoded)
168
169
  }
169
170
 
171
+ /** The host-value schema, using the same interpreter as facts and row codecs. */
172
+ function fieldSchema<F extends AnyField>(field: F) {
173
+ const descriptor = fieldDescriptor("fieldSchema", field)
174
+ return EffectSchema.declare((value: unknown): value is Infer<F> => {
175
+ try {
176
+ fieldValue("fieldSchema", descriptor, value)
177
+ return true
178
+ } catch {
179
+ return false
180
+ }
181
+ })
182
+ }
183
+
184
+ /** Encode one field's host value in the canonical JSON-boundary form. */
185
+ function encodeBoundaryField<F extends AnyField>(field: F, value: Infer<F>): Result.Result<unknown, DbError> {
186
+ return Result.try({
187
+ try: () => encodeBoundaryValue("encodeBoundaryField", fieldDescriptor("encodeBoundaryField", field), value),
188
+ catch: (cause) => argumentError("encodeBoundaryField", cause)
189
+ })
190
+ }
191
+
192
+ /** Strict JSON-boundary decoding, returning the field's canonical host value. */
193
+ function decodeBoundaryField<F extends AnyField>(field: F, input: unknown): Result.Result<Infer<F>, DbError> {
194
+ return Result.try({
195
+ try: () => decodeBoundaryValue("decodeBoundaryField", fieldDescriptor("decodeBoundaryField", field), input),
196
+ catch: (cause) => argumentError("decodeBoundaryField", cause)
197
+ })
198
+ }
199
+
170
200
  /** Pure schema-tagged JSON encoding of complete rows. */
171
201
  function encodeBoundaryRows<R extends AnyRelation>(
172
202
  relation: R,
@@ -286,4 +316,14 @@ const decodeRows = Effect.fn("decodeRows")(function* <R extends AnyRelation>(sha
286
316
  })
287
317
 
288
318
  export type { RowShape }
289
- export { decodeBoundaryRows, decodeRows, encodeBoundaryRows, encodeRows, rowSchema, rowShape }
319
+ export {
320
+ decodeBoundaryField,
321
+ decodeBoundaryRows,
322
+ decodeRows,
323
+ encodeBoundaryField,
324
+ encodeBoundaryRows,
325
+ encodeRows,
326
+ fieldSchema,
327
+ rowSchema,
328
+ rowShape
329
+ }
package/src/db-native.ts CHANGED
@@ -226,16 +226,8 @@ interface DbBridge {
226
226
  bytes: Uint8Array,
227
227
  callback: () => void
228
228
  ): OperationHandle
229
-
230
- /**
231
- * Read-only migration-codec integration over native `schema_file` and
232
- * `migration::{plan, manifest}` through the shared executor: bounded
233
- * owned input, bounded owned JSON response bytes, one registered
234
- * cancellable operation. Neither verb opens, initializes, freezes or
235
- * migrates a database.
236
- */
237
- runtimeMigrationSchema(runtime: RuntimeHandle, spec: SchemaSpec, callback: () => void): OperationHandle
238
- runtimeMigrationRead(runtime: RuntimeHandle, request: Uint8Array, callback: () => void): OperationHandle
229
+ runtimeSchemaSnapshot(runtime: RuntimeHandle, spec: SchemaSpec, callback: () => void): OperationHandle
230
+ runtimeSchemaBindings(runtime: RuntimeHandle, snapshot: Uint8Array, callback: () => void): OperationHandle
239
231
  }
240
232
 
241
233
  // The fresh-addon roster test pins this private declaration exactly as it
package/src/index.ts CHANGED
@@ -28,7 +28,17 @@ export type {
28
28
  } from "#closed.ts"
29
29
  export { closed, closedId } from "#closed.ts"
30
30
  export type { RowShape } from "#codec.ts"
31
- export { decodeBoundaryRows, decodeRows, encodeBoundaryRows, encodeRows, rowSchema, rowShape } from "#codec.ts"
31
+ export {
32
+ decodeBoundaryField,
33
+ decodeBoundaryRows,
34
+ decodeRows,
35
+ encodeBoundaryField,
36
+ encodeBoundaryRows,
37
+ encodeRows,
38
+ fieldSchema,
39
+ rowSchema,
40
+ rowShape
41
+ } from "#codec.ts"
32
42
  export type { CompiledSchema, SchemaId } from "#compile.ts"
33
43
  export { Schema } from "#compile.ts"
34
44
  export type {
@@ -175,17 +185,13 @@ export type {
175
185
  IntervalKind,
176
186
  NumericCast,
177
187
  Rounding,
178
- ScalarExpr,
179
- ScalarFieldRef,
180
188
  ScalarInputKind,
181
189
  ScalarKind,
182
- ScalarLeafScope,
183
190
  ScalarLiteral,
184
191
  ScalarNode,
185
192
  ScalarResultKind,
186
193
  ScalarValue
187
194
  } from "#scalar.ts"
188
- export { Scalar } from "#scalar.ts"
189
195
  export type { AnySchema, Schema as SchemaDeclaration, SchemaRelation, SchemaRelations } from "#schema.ts"
190
196
  export { schema } from "#schema.ts"
191
197
  export type { AnySelected, FieldsOf, Selected, SelectionBinding, SelectionInput } from "#selection.ts"
@@ -12,7 +12,6 @@ export type { PreparedQuery, QueryReader } from "#db.ts"
12
12
  export { Db, internalPublishedReader } from "#db.ts"
13
13
  export type { SnapshotHandle } from "#db-native.ts"
14
14
  export { lower } from "#lower.ts"
15
- export { internalMigrationRead, internalMigrationSchema } from "#migration.ts"
16
15
  export {
17
16
  internalBlake3,
18
17
  internalDescriptor,
@@ -22,11 +21,10 @@ export {
22
21
  } from "#native.ts"
23
22
  export type { CompleteResult } from "#result.ts"
24
23
  export { factCellsOf } from "#rows.ts"
25
- export type { NativeRuntimeOptions, RepositoryLock } from "#runtime.ts"
24
+ export type { NativeRuntimeOptions } from "#runtime.ts"
26
25
  export {
27
26
  finalizeClose,
28
27
  hashChunk,
29
- internalAcquireRepositoryLock,
30
28
  NativeRuntime,
31
29
  nativeOperation,
32
30
  nativeOperationWith,
@@ -41,8 +39,8 @@ export type {
41
39
  InspectionWire,
42
40
  NativeKind,
43
41
  OperationHandle,
44
- RepositoryLockHandle,
45
42
  RuntimeHandle
46
43
  } from "#runtime-native.ts"
47
44
  export { runtimeNative } from "#runtime-native.ts"
48
45
  export { schemasAgree } from "#schema.ts"
46
+ export { internalSchemaBindings, internalSchemaSnapshot } from "#schema-file.ts"