@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/runtime.js CHANGED
@@ -1,252 +1,52 @@
1
- import { Context, Duration, Effect, Exit, Layer } from "effect";
2
- import { CloseFailure, DbError, dbError } from "#runtime-errors.ts";
3
- import { runtimeNative } from "#runtime-native.ts";
4
- const owners = new WeakMap();
5
- function invalid(operation) {
6
- return new DbError({ operation, reason: { _tag: "InvalidArgument" } });
7
- }
8
- function count(value, operation) {
9
- if (!Number.isSafeInteger(value) || value <= 0 || value > 0xffffffff)
10
- throw invalid(operation);
11
- return value;
12
- }
13
- function millis(value, operation) {
14
- const duration = Duration.toMillis(value);
15
- if (!Number.isFinite(duration) || duration < 0 || duration > 0xffffffff)
16
- throw invalid(operation);
17
- return Math.ceil(duration);
18
- }
19
- function options(value) {
20
- const operation = "NativeRuntime.acquire";
21
- return {
22
- workers: value.workers === undefined ? undefined : count(value.workers, operation),
23
- queueCapacity: value.queueCapacity === undefined ? undefined : count(value.queueCapacity, operation),
24
- cleanupCapacity: value.cleanupCapacity === undefined ? undefined : count(value.cleanupCapacity, operation),
25
- ownerCapacity: value.ownerCapacity === undefined ? undefined : count(value.ownerCapacity, operation),
26
- nativeHandleCapacity: value.nativeHandleCapacity === undefined ? undefined : count(value.nativeHandleCapacity, operation),
27
- cleanupTimeoutMs: value.cleanupTimeout === undefined ? undefined : count(millis(value.cleanupTimeout, operation), operation)
28
- };
29
- }
30
- function failure(operation, cause) {
31
- return cause instanceof DbError ? cause : dbError(operation, cause);
32
- }
33
- function closeReport(operation, report) {
34
- // A payload-less native "failed" drain (cleanup capacity exhausted, or
35
- // owner teardown failed) decodes as the core `Internal` reason — the
36
- // same mapping the log bridge applies, so one wire arm has one meaning.
37
- // It is deliberately NOT `QueueFull`: a failed drain is never retryable
38
- // submit backpressure.
39
- return report.kind === "failed" ? { kind: "failed", error: dbError(operation, { _tag: "Internal" }) } : report;
40
- }
41
- function drain(operation, start) {
42
- return Effect.callback((resume) => {
43
- try {
44
- start((report) => resume(Effect.succeed(closeReport(operation, report))));
45
- }
46
- catch (cause) {
47
- resume(Effect.succeed({ kind: "failed", error: failure(operation, cause) }));
48
- }
49
- }).pipe(Effect.uninterruptible);
50
- }
51
- export function finalizeClose(operation, report) {
52
- return report.kind === "closed" ? Effect.void : Effect.die(new CloseFailure({ operation, report }));
53
- }
54
- /**
55
- * Effect.callback's returned finalizer is interruption cleanup only
56
- * (`asyncFinalizer` runs solely on interrupt Cause). If that finalizer
57
- * dies, the original interrupt is dropped. Join the native drain here and
58
- * always succeed so the interrupt Cause is kept; attach CloseFailure via
59
- * `onExit` so both appear in the final Cause.
60
- */
61
- function joinInterruptDrain(operation, start, stash) {
62
- return drain(operation, start).pipe(Effect.tap((report) => {
63
- stash.report = report;
64
- return Effect.void;
65
- }), Effect.asVoid);
66
- }
67
- function attachInterruptClose(operation, stash) {
68
- return (effect) => effect.pipe(Effect.onExit((exit) => {
69
- if (!Exit.hasInterrupts(exit)) {
70
- return Effect.void;
71
- }
72
- const report = stash.report;
73
- if (report === undefined || report.kind === "closed") {
74
- return Effect.void;
75
- }
76
- return Effect.die(new CloseFailure({ operation, report }));
77
- }));
78
- }
79
- function afterClose(operation, report, effect) {
80
- if (report.kind === "closed") {
81
- return effect;
1
+ import { Context, Duration, Effect, Layer } from "effect";
2
+ import { DbError, dbError } from "./errors.js";
3
+ import { addon } from "./native/addon.js";
4
+ import { call, scoped } from "./native/op.js";
5
+ function wire(options) {
6
+ const timeout = options.cleanupTimeout === undefined ? undefined : Duration.toMillis(options.cleanupTimeout);
7
+ if (timeout !== undefined && !Number.isFinite(timeout)) {
8
+ throw new DbError({ operation: "Bumble.layer", reason: { _tag: "InvalidArgument" } });
82
9
  }
83
- return effect.pipe(Effect.onExit(() => Effect.die(new CloseFailure({ operation, report }))));
84
- }
85
- function close(handle) {
86
- return drain("NativeRuntime.close", (callback) => runtimeNative.runtimeClose(handle, callback));
87
- }
88
- /** Kick `runtimeCancel` without joining. Used when the completion
89
- * callback arrives after abort: JS must not `take`; L12 drain reclaims
90
- * queued Page/Rows. A second call is native-idempotent (Committed
91
- * mutations stay; only unpublished delivery is dropped).
92
- */
93
- function startCancelDrain(operation, lease, stash) {
94
- try {
95
- runtimeNative.runtimeCancel(lease, (report) => {
96
- stash.report = closeReport(operation, report);
10
+ const input = {
11
+ ...(options.workers === undefined ? {} : { workers: options.workers }),
12
+ ...(options.queueCapacity === undefined ? {} : { queueCapacity: options.queueCapacity }),
13
+ ...(options.cleanupCapacity === undefined ? {} : { cleanupCapacity: options.cleanupCapacity }),
14
+ ...(options.ownerCapacity === undefined ? {} : { ownerCapacity: options.ownerCapacity }),
15
+ ...(options.nativeHandleCapacity === undefined ? {} : { nativeHandleCapacity: options.nativeHandleCapacity }),
16
+ ...(timeout === undefined ? {} : { cleanupTimeoutMs: Math.ceil(timeout) })
17
+ };
18
+ return JSON.stringify(input);
19
+ }
20
+ /** The live native runtime: one worker pool and handle registry per process. */
21
+ export class Runtime {
22
+ #handle;
23
+ /** The runtime's outstanding native work, after every operation queued before it settles. */
24
+ inspect;
25
+ constructor(handle) {
26
+ this.#handle = handle;
27
+ this.inspect = Effect.fn("Bumble.inspect")(function* () {
28
+ yield* call("Bumble.inspect", (done) => addon.runtimeReady(handle, done), addon.runtimeTake);
29
+ return addon.runtimeInspect(handle);
97
30
  });
98
31
  }
99
- catch (cause) {
100
- stash.report = { kind: "failed", error: failure(operation, cause) };
32
+ static handle(runtime) {
33
+ return runtime.#handle;
101
34
  }
102
35
  }
103
- /** Registration returns the native lease before any completion can run in JS.
104
- * Interruption cancels and joins that lease, including a late successful result.
105
- * No Promise or libuv job is created for ordinary native work.
106
- */
107
- export function nativeOperation(operation, start, accept) {
108
- return nativeOperationWith(operation, start, runtimeNative.runtimeTake, accept);
109
- }
110
- export function nativeOperationWith(operation, start, take, accept) {
111
- const stash = {};
112
- const cancelOp = `${operation}.cancel`;
113
- return attachInterruptClose(cancelOp, stash)(Effect.callback((resume, signal) => {
114
- let lease;
115
- try {
116
- lease = start(() => {
117
- if (signal.aborted) {
118
- startCancelDrain(cancelOp, lease, stash);
119
- return;
120
- }
121
- try {
122
- resume(Effect.succeed(accept(take(lease))));
123
- }
124
- catch (cause) {
125
- resume(Effect.fail(failure(operation, cause)));
126
- }
127
- });
128
- }
129
- catch (cause) {
130
- resume(Effect.fail(failure(operation, cause)));
131
- return;
132
- }
133
- return joinInterruptDrain(cancelOp, (callback) => runtimeNative.runtimeCancel(lease, callback), stash);
134
- }));
135
- }
136
- const acquire = Effect.fn("NativeRuntime.acquire")(function* (configuration) {
137
- return yield* Effect.acquireRelease(Effect.suspend(() => {
138
- const stash = {};
139
- return attachInterruptClose("NativeRuntime.acquire.cancel", stash)(Effect.callback((resume, signal) => {
140
- let handle;
141
- try {
142
- const wire = options(configuration);
143
- handle = runtimeNative.runtimeOpen(wire);
144
- const owner = handle;
145
- const lease = runtimeNative.runtimeReady(owner, () => {
146
- if (signal.aborted) {
147
- try {
148
- runtimeNative.runtimeClose(owner, (report) => {
149
- stash.report = closeReport("NativeRuntime.acquire.cancel", report);
150
- });
151
- }
152
- catch (cause) {
153
- stash.report = { kind: "failed", error: failure("NativeRuntime.acquire.cancel", cause) };
154
- }
155
- return;
156
- }
157
- try {
158
- runtimeNative.runtimeTake(lease);
159
- const service = {
160
- close: () => close(owner),
161
- inspect: Effect.fn("NativeRuntime.inspect")(function* () {
162
- yield* nativeOperation("NativeRuntime.inspect", (callback) => runtimeNative.runtimeReady(owner, callback), () => undefined);
163
- return runtimeNative.runtimeInspect(owner);
164
- })
165
- };
166
- owners.set(service, owner);
167
- resume(Effect.succeed(service));
168
- }
169
- catch (cause) {
170
- const error = failure("NativeRuntime.acquire", cause);
171
- resume(close(owner).pipe(Effect.flatMap((report) => afterClose("NativeRuntime.acquire", report, Effect.fail(error)))));
172
- }
173
- });
174
- }
175
- catch (cause) {
176
- const error = failure("NativeRuntime.acquire", cause);
177
- resume(handle === undefined
178
- ? Effect.fail(error)
179
- : close(handle).pipe(Effect.flatMap((report) => afterClose("NativeRuntime.acquire", report, Effect.fail(error)))));
180
- }
181
- return handle === undefined
182
- ? Effect.void
183
- : joinInterruptDrain("NativeRuntime.acquire.cancel", (callback) => runtimeNative.runtimeClose(handle, callback), stash);
184
- }));
185
- }), (service) => service.close().pipe(Effect.flatMap((report) => finalizeClose("NativeRuntime.release", report))), { interruptible: true });
36
+ const acquire = Effect.fn("Bumble.layer")(function* (options) {
37
+ const input = yield* Effect.try({ try: () => wire(options), catch: (cause) => dbError("Bumble.layer", cause) });
38
+ const handle = yield* scoped("Bumble.release", Effect.try({ try: () => addon.runtimeOpen(input), catch: (cause) => dbError("Bumble.layer", cause) }), (owner) => (done) => addon.runtimeClose(owner, done));
39
+ yield* call("Bumble.layer", (done) => addon.runtimeReady(handle, done), addon.runtimeTake);
40
+ return new Runtime(handle);
186
41
  });
187
- export class NativeRuntime extends Context.Service()("@bjornpagen/bumbledb/NativeRuntime") {
42
+ /** The native runtime as an Effect service. Provide `Bumble.layer()` once in the application graph. */
43
+ export class Bumble extends Context.Service()("@bjornpagen/bumbledb/Bumble") {
188
44
  static layer(options = {}) {
189
- return Layer.effect(NativeRuntime, acquire(options));
45
+ return Layer.effect(Bumble, acquire(options));
190
46
  }
191
47
  }
192
- /** Private core/log integration: captures the already acquired shared service. */
193
- export const runtimeHandle = Effect.fn("NativeRuntime.handle")(function* () {
194
- const runtime = yield* NativeRuntime;
195
- const handle = owners.get(runtime);
196
- if (handle === undefined)
197
- return yield* Effect.fail(invalid("NativeRuntime.handle"));
198
- return handle;
199
- });
200
- function joinLockRelease(operation, owner) {
201
- return drain(operation, (callback) => runtimeNative.logRepositoryLockRelease(owner, callback)).pipe(Effect.flatMap((report) => finalizeClose(operation, report)));
202
- }
203
- /**
204
- * Internal log seam: stamped mint only. Cleanup is registered before
205
- * the interruptible acquire: `acquireRelease({ interruptible })`
206
- * installs the finalizer only after acquire succeeds. Interrupt, defect,
207
- * and acquire failure all run the same slot finalizer — empty slot is
208
- * a no-op. No `runtimeDirectoryAcquire`, no core `Db`, no JS bookkeeping.
209
- */
210
- export const internalAcquireRepositoryLock = Effect.fn("internalAcquireRepositoryLock")(function* (operation, directory) {
211
- if (directory.length === 0) {
212
- return yield* Effect.fail(invalid(operation));
213
- }
214
- const runtime = yield* runtimeHandle();
215
- const closeOp = `${operation}.repositoryLock`;
216
- return yield* Effect.uninterruptibleMask((restore) => Effect.gen(function* () {
217
- const slot = { owner: undefined };
218
- const release = Effect.suspend(() => {
219
- const held = slot.owner;
220
- if (held === undefined) {
221
- return Effect.void;
222
- }
223
- return joinLockRelease(closeOp, held).pipe(Effect.ensuring(Effect.sync(() => {
224
- slot.owner = undefined;
225
- })));
226
- });
227
- yield* Effect.addFinalizer(() => release);
228
- const owner = yield* restore(nativeOperationWith(operation, (callback) => runtimeNative.logRepositoryLockAcquire(runtime, directory, callback), runtimeNative.logRepositoryLockTake, (value) => value));
229
- slot.owner = owner;
230
- return Object.freeze({
231
- directory,
232
- release
233
- });
234
- }));
235
- });
236
- /** Internal first executor consumer; not a replacement row codec or public hash API. */
237
- export const hashChunk = Effect.fn("bumbledb.hashChunk")(function* (input) {
238
- const runtime = yield* NativeRuntime;
239
- const handle = owners.get(runtime);
240
- if (handle === undefined)
241
- return yield* Effect.fail(invalid("hashChunk"));
242
- return yield* nativeOperation("hashChunk", (callback) => {
243
- if (!(input instanceof Uint8Array) || !(input.buffer instanceof ArrayBuffer))
244
- throw invalid("hashChunk");
245
- return runtimeNative.runtimeHash(handle, input, callback);
246
- }, (value) => {
247
- if (value === null)
248
- throw dbError("hashChunk", { _tag: "Internal" });
249
- return value;
250
- });
48
+ /** The provided runtime's native handle. */
49
+ export const runtimeHandle = Effect.gen(function* () {
50
+ return Runtime.handle(yield* Bumble);
251
51
  });
252
52
  //# sourceMappingURL=runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
package/dist/scalar.d.ts CHANGED
@@ -1,26 +1,16 @@
1
- import type { ScalarExprIr } from "./native.js";
2
- import type { ValueSpec } from "./spec.js";
3
- /** F0: leaf scope for the shared AST (C1). Query vars are typed; source fields stay unresolved. */
4
- export type ScalarLeafScope = "query-var" | "source-field";
1
+ import type { ScalarExprIn } from "./native/binding.d.ts";
2
+ import type { ValueSpec } from "./spec.ts";
5
3
  /** The engine's scalar result vocabulary — distinct at the type level. */
6
4
  type ScalarKind = "u64" | "i64" | "f64" | "bool";
7
5
  /** Cached result kind: known only when derivable; otherwise honestly unresolved. */
8
6
  type IntervalKind = "intervalU64" | "intervalI64" | "intervalF64";
9
7
  type ScalarInputKind = ScalarKind | IntervalKind;
10
- type ScalarResultKind = ScalarInputKind | "unresolved";
8
+ type ScalarResultKind = ScalarInputKind;
11
9
  type Rounding = "towardZero" | "nearestTiesAwayFromZero" | "nearestTiesToEven";
12
10
  /** Host value for a derived scalar kind. */
13
11
  type ScalarValue<K extends ScalarKind> = K extends "f64" ? number : K extends "bool" ? boolean : bigint;
14
12
  type NumericCast = "toF64" | "toF64Exact" | "toI64Exact" | "toU64Exact";
15
13
  type NumericKind = "u64" | "i64" | "f64";
16
- type NumericOrUnresolved = NumericKind | "unresolved";
17
- /**
18
- * Combine known numeric kinds, or stay unresolved when a source-field leaf
19
- * still needs native binding. Distinct known kinds collapse to `never`
20
- * (static refusal) and throw at the constructor.
21
- */
22
- type CombineNumeric<L, R> = L extends "unresolved" ? R extends "bool" ? never : "unresolved" : R extends "unresolved" ? L extends "bool" ? never : "unresolved" : L extends R ? L : never;
23
- /** The tagged literal subset shared by every leaf scope. */
24
14
  type ScalarLiteral = {
25
15
  readonly bool: boolean;
26
16
  } | {
@@ -46,71 +36,53 @@ type QueryVarLeaf = {
46
36
  readonly kind: "var";
47
37
  readonly ref: ScalarQueryVar;
48
38
  };
49
- type SourceFieldLeaf = {
50
- readonly kind: "field";
51
- readonly name: string;
52
- };
53
- type ScalarLeaf<S extends ScalarLeafScope> = S extends "query-var" ? QueryVarLeaf : SourceFieldLeaf;
54
- type ScalarNodeBody<S extends ScalarLeafScope> = {
39
+ type ScalarNodeBody = {
55
40
  readonly kind: "measure";
56
- readonly expr: ScalarNode<S>;
41
+ readonly expr: ScalarNode;
57
42
  } | {
58
43
  readonly kind: "mulDiv";
59
- readonly a: ScalarNode<S>;
60
- readonly b: ScalarNode<S>;
61
- readonly divisor: ScalarNode<S>;
44
+ readonly a: ScalarNode;
45
+ readonly b: ScalarNode;
46
+ readonly divisor: ScalarNode;
62
47
  readonly rounding: Rounding;
63
- } | ScalarLeaf<S> | {
48
+ } | QueryVarLeaf | {
64
49
  readonly kind: "literal";
65
50
  readonly value: ScalarLiteral;
66
51
  } | {
67
52
  readonly kind: "negate";
68
- readonly expr: ScalarNode<S>;
53
+ readonly expr: ScalarNode;
69
54
  } | {
70
55
  readonly kind: "isNaN";
71
- readonly expr: ScalarNode<S>;
56
+ readonly expr: ScalarNode;
72
57
  } | {
73
58
  readonly kind: "isFinite";
74
- readonly expr: ScalarNode<S>;
59
+ readonly expr: ScalarNode;
75
60
  } | {
76
61
  readonly kind: "add";
77
- readonly left: ScalarNode<S>;
78
- readonly right: ScalarNode<S>;
62
+ readonly left: ScalarNode;
63
+ readonly right: ScalarNode;
79
64
  } | {
80
65
  readonly kind: "subtract";
81
- readonly left: ScalarNode<S>;
82
- readonly right: ScalarNode<S>;
66
+ readonly left: ScalarNode;
67
+ readonly right: ScalarNode;
83
68
  } | {
84
69
  readonly kind: "multiply";
85
- readonly left: ScalarNode<S>;
86
- readonly right: ScalarNode<S>;
70
+ readonly left: ScalarNode;
71
+ readonly right: ScalarNode;
87
72
  } | {
88
73
  readonly kind: "divide";
89
- readonly left: ScalarNode<S>;
90
- readonly right: ScalarNode<S>;
74
+ readonly left: ScalarNode;
75
+ readonly right: ScalarNode;
91
76
  } | {
92
77
  readonly kind: "cast";
93
78
  readonly cast: NumericCast;
94
- readonly expr: ScalarNode<S>;
79
+ readonly expr: ScalarNode;
95
80
  };
96
- /**
97
- * One authored node: roster arms plus cached `scope` / `result` / `depth`.
98
- * Summaries are construction metadata; lowering and L17 serialization read
99
- * the grammar arms and ignore the summaries.
100
- */
101
- type ScalarNode<S extends ScalarLeafScope = ScalarLeafScope, K extends ScalarResultKind = ScalarResultKind> = ScalarNodeBody<S> & {
102
- readonly scope: S;
81
+ /** Cached summaries never replace the expression grammar. */
82
+ type ScalarNode<K extends ScalarResultKind = ScalarResultKind> = ScalarNodeBody & {
103
83
  readonly result: K;
104
84
  readonly depth: number;
105
85
  };
106
- /**
107
- * Migration authoring expression (source-field scope). `K` is the cached
108
- * result kind, not a host value type: I64 and U64 remain distinct even
109
- * though both use bigint in JavaScript.
110
- */
111
- type ScalarExpr<K extends ScalarResultKind = ScalarResultKind> = ScalarNode<"source-field", K>;
112
- /** A migration field read: unresolved until native snapshot binding. */
113
- type ScalarFieldRef = ScalarNode<"source-field", "unresolved"> & SourceFieldLeaf;
114
86
  declare const MAX_SCALAR_DEPTH = 128;
115
87
  declare function scalarAuthoringWork(): number;
116
88
  declare function checkU64(value: bigint, where: string): void;
@@ -125,63 +97,21 @@ declare function assertDepth(where: string, depth: number): void;
125
97
  declare function assertNumeric(where: string, kind: ScalarInputKind): asserts kind is NumericKind;
126
98
  declare function assertSameKind(where: string, left: ScalarInputKind, right: ScalarInputKind): ScalarInputKind;
127
99
  declare function isScalarNode(value: unknown): value is ScalarNode;
128
- declare function isUnresolvedScalar(node: ScalarNode): boolean;
129
100
  /** Query-var leaf — kind is the variable's schema kind, already known. */
130
- declare function queryVarLeaf<K extends ScalarInputKind>(ref: ScalarQueryVar, kind: K): ScalarNode<"query-var", K>;
131
- declare function scalarLiteral<S extends ScalarLeafScope>(scope: S, value: ScalarLiteral): ScalarNode<S, ScalarKind>;
101
+ declare function queryVarLeaf<K extends ScalarInputKind>(ref: ScalarQueryVar, kind: K): ScalarNode<K>;
102
+ declare function scalarLiteral(value: ScalarLiteral): ScalarNode<ScalarKind>;
132
103
  type BinaryOp = "add" | "subtract" | "multiply" | "divide";
133
- declare function scalarBinary<S extends ScalarLeafScope>(where: string, op: BinaryOp, left: ScalarNode<S>, right: ScalarNode<S>): ScalarNode<S, ScalarResultKind>;
104
+ declare function scalarBinary(where: string, op: BinaryOp, left: ScalarNode, right: ScalarNode): ScalarNode;
134
105
  declare function roundingMode(value: unknown): Rounding;
135
- declare function scalarMulDiv<S extends ScalarLeafScope>(where: string, a: ScalarNode<S>, b: ScalarNode<S>, divisor: ScalarNode<S>, rounding: Rounding): ScalarNode<S>;
136
- declare function scalarMeasure<S extends ScalarLeafScope>(where: string, expr: ScalarNode<S>): ScalarNode<S>;
137
- declare function scalarNegate<S extends ScalarLeafScope>(where: string, expr: ScalarNode<S>): ScalarNode<S, ScalarResultKind>;
138
- declare function scalarCast<S extends ScalarLeafScope>(where: string, cast: NumericCast, result: ScalarKind, expr: ScalarNode<S>): ScalarNode<S, ScalarKind>;
139
- declare function scalarFloatPredicate<S extends ScalarLeafScope>(where: string, op: "isNaN" | "isFinite", expr: ScalarNode<S>): ScalarNode<S, "bool">;
106
+ declare function scalarMulDiv(where: string, a: ScalarNode, b: ScalarNode, divisor: ScalarNode, rounding: Rounding): ScalarNode;
107
+ declare function scalarMeasure(where: string, expr: ScalarNode): ScalarNode;
108
+ declare function scalarNegate(where: string, expr: ScalarNode): ScalarNode;
109
+ declare function scalarCast(where: string, cast: NumericCast, result: ScalarKind, expr: ScalarNode): ScalarNode<ScalarKind>;
110
+ declare function scalarFloatPredicate(where: string, op: "isNaN" | "isFinite", expr: ScalarNode): ScalarNode<"bool">;
140
111
  /** Query-var leaves collected once at find-binding time — not during construction. */
141
- declare function queryVarsOf(node: ScalarNode<"query-var">): readonly ScalarQueryVar[];
142
- declare function field(name: string): ScalarFieldRef;
143
- declare function literal(value: ScalarLiteral): ScalarExpr<ScalarKind>;
144
- declare function u64(value: bigint): ScalarExpr<"u64">;
145
- declare function i64(value: bigint): ScalarExpr<"i64">;
146
- declare function f64(value: number): ScalarExpr<"f64">;
147
- declare function bool(value: boolean): ScalarExpr<"bool">;
148
- declare function negate<K extends "i64" | "f64" | "unresolved">(expr: ScalarExpr<K>): ScalarExpr<K>;
149
- declare function add<L extends NumericOrUnresolved, R extends CombineNumeric<L, R> extends never ? never : NumericOrUnresolved>(left: ScalarExpr<L>, right: ScalarExpr<R>): ScalarExpr<CombineNumeric<L, R>>;
150
- declare function subtract<L extends NumericOrUnresolved, R extends CombineNumeric<L, R> extends never ? never : NumericOrUnresolved>(left: ScalarExpr<L>, right: ScalarExpr<R>): ScalarExpr<CombineNumeric<L, R>>;
151
- declare function multiply<L extends NumericOrUnresolved, R extends CombineNumeric<L, R> extends never ? never : NumericOrUnresolved>(left: ScalarExpr<L>, right: ScalarExpr<R>): ScalarExpr<CombineNumeric<L, R>>;
152
- declare function divide<L extends NumericOrUnresolved, R extends CombineNumeric<L, R> extends never ? never : NumericOrUnresolved>(left: ScalarExpr<L>, right: ScalarExpr<R>): ScalarExpr<CombineNumeric<L, R>>;
153
- declare function mulDiv<L extends "i64" | "u64" | "unresolved", R extends CombineNumeric<L, R> extends never ? never : "i64" | "u64" | "unresolved", D extends CombineNumeric<L, D> extends never ? never : CombineNumeric<R, D> extends never ? never : "i64" | "u64" | "unresolved">(a: ScalarExpr<L>, b: ScalarExpr<R>, divisor: ScalarExpr<D>, rounding: Rounding): ScalarExpr<CombineNumeric<CombineNumeric<L, R>, D>>;
154
- declare function measure(expr: ScalarFieldRef): ScalarExpr<"unresolved">;
155
- declare function toF64(expr: ScalarExpr<NumericOrUnresolved>): ScalarExpr<"f64">;
156
- declare function toF64Exact(expr: ScalarExpr<NumericOrUnresolved>): ScalarExpr<"f64">;
157
- declare function toI64Exact(expr: ScalarExpr<NumericOrUnresolved>): ScalarExpr<"i64">;
158
- declare function toU64Exact(expr: ScalarExpr<NumericOrUnresolved>): ScalarExpr<"u64">;
159
- declare function isNaNExpr(expr: ScalarExpr<"f64" | "unresolved">): ScalarExpr<"bool">;
160
- declare function isFiniteExpr(expr: ScalarExpr<"f64" | "unresolved">): ScalarExpr<"bool">;
161
- /** One lowering walk for query variables and row-field bindings. */
162
- declare function scalarWire(node: ScalarNode, leaf: (node: QueryVarLeaf | SourceFieldLeaf) => number): ScalarExprIr;
163
- /** The authoring namespace: `Scalar.field("units")`, `Scalar.add(...)`. */
164
- declare const Scalar: Readonly<{
165
- field: typeof field;
166
- literal: typeof literal;
167
- u64: typeof u64;
168
- i64: typeof i64;
169
- f64: typeof f64;
170
- bool: typeof bool;
171
- negate: typeof negate;
172
- add: typeof add;
173
- subtract: typeof subtract;
174
- multiply: typeof multiply;
175
- divide: typeof divide;
176
- mulDiv: typeof mulDiv;
177
- measure: typeof measure;
178
- toF64: typeof toF64;
179
- toF64Exact: typeof toF64Exact;
180
- toI64Exact: typeof toI64Exact;
181
- toU64Exact: typeof toU64Exact;
182
- isNaN: typeof isNaNExpr;
183
- isFinite: typeof isFiniteExpr;
184
- }>;
185
- export type { CombineNumeric, IntervalKind, NumericCast, NumericKind, NumericOrUnresolved, QueryVarLeaf, Rounding, ScalarExpr, ScalarFieldRef, ScalarInputKind, ScalarKind, ScalarLiteral, ScalarNode, ScalarOpKind, ScalarQueryVar, ScalarResultKind, ScalarValue, SourceFieldLeaf };
186
- 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 };
112
+ declare function queryVarsOf(node: ScalarNode): readonly ScalarQueryVar[];
113
+ /** Lowers a scalar expression to the addon's `ScalarExprIn`; `leaf` numbers the rule variables. */
114
+ declare function scalarWire(node: ScalarNode, leaf: (node: QueryVarLeaf) => number): ScalarExprIn;
115
+ export type { IntervalKind, NumericCast, NumericKind, QueryVarLeaf, Rounding, ScalarInputKind, ScalarKind, ScalarLiteral, ScalarNode, ScalarOpKind, ScalarQueryVar, ScalarResultKind, ScalarValue };
116
+ 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 };
187
117
  //# sourceMappingURL=scalar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scalar.d.ts","sourceRoot":"","sources":["../src/scalar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scalar.d.ts","sourceRoot":"","sources":["../src/scalar.ts"],"names":[],"mappings":"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"}