@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/native.js DELETED
@@ -1,123 +0,0 @@
1
- import { createRequire } from "node:module";
2
- import { Result } from "effect";
3
- import { NativeLoadError, NativeOperationError, NativeReportedError } from "#errors.ts";
4
- const SHIPPED_PLATFORMS = ["darwin-arm64", "linux-arm64", "linux-x64"];
5
- const requireNative = createRequire(import.meta.url);
6
- function ensureNativeBinding() {
7
- const loaded = bindingCache;
8
- if (loaded !== undefined) {
9
- return loaded;
10
- }
11
- const next = loadNativeBinding(process.platform, process.arch);
12
- bindingCache = next;
13
- return next;
14
- }
15
- /** Lazy singleton: the addon loads on first native access, not module evaluation. */
16
- const native = new Proxy({}, {
17
- get(_target, property, receiver) {
18
- return Reflect.get(ensureNativeBinding(), property, receiver);
19
- },
20
- set(_target, property, value) {
21
- return Reflect.set(ensureNativeBinding(), property, value);
22
- }
23
- });
24
- let bindingCache;
25
- function nativeBindingIsLoaded() {
26
- return bindingCache !== undefined;
27
- }
28
- function loadNativeBinding(platform, arch) {
29
- const platformPackage = `@bjornpagen/bumbledb-${platform}-${arch}`;
30
- const present = Result.try(() => requireNative.resolve(`${platformPackage}/package.json`));
31
- if (Result.isFailure(present)) {
32
- throw new NativeLoadError({
33
- package: platformPackage,
34
- operation: "resolve",
35
- message: `no native binary for ${platform}-${arch}: @bjornpagen/bumbledb ships ${SHIPPED_PLATFORMS.join(", ")} only`,
36
- cause: present.failure
37
- });
38
- }
39
- const loaded = Result.try(() => requireNative(platformPackage));
40
- if (Result.isFailure(loaded)) {
41
- throw new NativeLoadError({
42
- package: platformPackage,
43
- operation: "load",
44
- message: `load the ${platformPackage} native binary (package present but unloadable)`,
45
- cause: loaded.failure
46
- });
47
- }
48
- return loaded.success;
49
- }
50
- /**
51
- * @internal blake3 of the given bytes via the resident native binding —
52
- * the engine's own hash, lent to the replication driver
53
- * (`@bjornpagen/bumbledb-log`). Not SDK API; the export is deliberately
54
- * undocumented in the package surface. Small identity-sized inputs only.
55
- */
56
- function internalBlake3(data) {
57
- return bridged("bumbledb blake3", function hashBytes() {
58
- return ensureNativeBinding().blake3Hash(data);
59
- });
60
- }
61
- /**
62
- * @internal the engine's own sealed descriptor as data — relation ids,
63
- * field ids and types in sealed order, closed rosters with resolved
64
- * axiom rows, materialized statements in engine order, and the real
65
- * fingerprint. Runs the pure seal path; no store opens. Not SDK API;
66
- * the export is deliberately undocumented in the package surface.
67
- */
68
- function internalDescriptor(spec) {
69
- return bridged("bumbledb descriptor", function sealSpec() {
70
- return ensureNativeBinding().descriptor(spec);
71
- });
72
- }
73
- /**
74
- * @internal the successor identity table emitted by the log core's one
75
- * speller (`bumbledb_log::identities::emit`). Not SDK API.
76
- */
77
- function internalLogIdentities() {
78
- return bridged("bumbledb-log identities", function emitIdentities() {
79
- return ensureNativeBinding().logIdentities();
80
- });
81
- }
82
- /**
83
- * @internal the sealed per-theory log schema off the same `SchemaSpec`
84
- * every other lane speaks — one validated core schema, lent to the
85
- * replication driver (`@bjornpagen/bumbledb-log`). Not SDK API.
86
- */
87
- function internalLogSchema(spec) {
88
- return bridged("bumbledb-log schema", function sealSchema() {
89
- return ensureNativeBinding().logSchema(spec);
90
- });
91
- }
92
- function isEngineThrow(value) {
93
- if (typeof value !== "object" || value === null) {
94
- return false;
95
- }
96
- const rec = value;
97
- return typeof rec.kind === "string" && typeof rec.message === "string";
98
- }
99
- function errorFromThrow(caught) {
100
- if (caught instanceof Error) {
101
- return caught;
102
- }
103
- if (isEngineThrow(caught)) {
104
- return new NativeReportedError({
105
- kind: caught.kind,
106
- message: `bumbledb ${caught.kind}: ${caught.message}`,
107
- cause: caught
108
- });
109
- }
110
- return new NativeReportedError({ kind: "Unknown", message: String(caught), cause: caught });
111
- }
112
- function bridged(context, run) {
113
- try {
114
- return run();
115
- }
116
- catch (caught) {
117
- if (caught instanceof Error)
118
- throw caught;
119
- throw new NativeOperationError({ operation: context, cause: caught });
120
- }
121
- }
122
- export { bridged, errorFromThrow, internalBlake3, internalDescriptor, internalLogIdentities, internalLogSchema, loadNativeBinding, native, nativeBindingIsLoaded, SHIPPED_PLATFORMS };
123
- //# sourceMappingURL=native.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"native.js","sourceRoot":"","sources":["../src/native.ts"],"names":[],"mappings":"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"}
@@ -1,41 +0,0 @@
1
- import { type Infer } from "../fields.js";
2
- import type { SchemaClasses } from "../law.js";
3
- import type { QueryIr, TaggedValue } from "../native.js";
4
- import type { AnyQuery, Query } from "./lower.js";
5
- import { type ParamsRecord } from "./scope.js";
6
- import type { FieldsShape } from "../relation.js";
7
- import type { Schema, SchemaRelations } from "../schema.js";
8
- /** Logical ordinals are scoped to this description and the schema's ordered declarations. */
9
- interface QueryDescription {
10
- readonly ir: QueryIr;
11
- readonly columns: readonly string[];
12
- readonly interiors: readonly DescriptionTable[];
13
- readonly recursion: DescriptionTable | undefined;
14
- readonly parameters: readonly DescriptionParameter[];
15
- }
16
- interface DescriptionTable {
17
- readonly name: string;
18
- readonly columns: readonly string[];
19
- }
20
- interface DescriptionParameter {
21
- readonly name: string;
22
- /** Closed-membership literals generated by the typed builder; absent for supplied parameters. */
23
- readonly members: readonly TaggedValue[] | undefined;
24
- }
25
- type DescriptionRow<F extends FieldsShape> = {
26
- readonly [K in keyof F]: Infer<F[K]>;
27
- };
28
- /** Checked result fields remain exact through v(imported), just as at runtime.
29
- * Carrier classes come from the replayed head and remain runtime-checked. */
30
- type DescriptionHead<F extends FieldsShape> = {
31
- readonly [K in keyof F]: {
32
- readonly field: F[K];
33
- readonly class: string | undefined;
34
- };
35
- };
36
- /** Return an owned logical description; no builder variables or native resource handles escape. */
37
- declare function describeQuery(query: AnyQuery): QueryDescription;
38
- declare function queryFromDescription<Rels extends SchemaRelations, Classes extends SchemaClasses, const F extends FieldsShape>(schema: Schema<Rels, Classes>, input: unknown, result: F): Query<Rels, DescriptionRow<F>, ParamsRecord, Classes, DescriptionHead<F>>;
39
- export type { DescriptionHead, DescriptionParameter, DescriptionRow, DescriptionTable, QueryDescription };
40
- export { describeQuery, queryFromDescription };
41
- //# sourceMappingURL=description.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"description.d.ts","sourceRoot":"","sources":["../../src/query/description.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkC,KAAK,KAAK,EAA6B,MAAM,YAAY,CAAA;AAClG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5C,OAAO,KAAK,EAA2B,OAAO,EAAwB,WAAW,EAAU,MAAM,YAAY,CAAA;AAG7G,OAAO,KAAK,EAAE,QAAQ,EAAgB,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAGpE,OAAO,EAAyD,KAAK,YAAY,EAAK,MAAM,iBAAiB,CAAA;AAE7G,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAY/C,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAIzD,6FAA6F;AAC7F,UAAU,gBAAgB;IACzB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,QAAQ,CAAC,SAAS,EAAE,SAAS,gBAAgB,EAAE,CAAA;IAC/C,QAAQ,CAAC,SAAS,EAAE,gBAAgB,GAAG,SAAS,CAAA;IAChD,QAAQ,CAAC,UAAU,EAAE,SAAS,oBAAoB,EAAE,CAAA;CACpD;AAED,UAAU,gBAAgB;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CACnC;AAED,UAAU,oBAAoB;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,iGAAiG;IACjG,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,GAAG,SAAS,CAAA;CACpD;AAED,KAAK,cAAc,CAAC,CAAC,SAAS,WAAW,IAAI;IAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAA;AAErF;6EAC6E;AAC7E,KAAK,eAAe,CAAC,CAAC,SAAS,WAAW,IAAI;IAC7C,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG;QAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE;CACrF,CAAA;AA0DD,mGAAmG;AACnG,iBAAS,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,gBAAgB,CAiBxD;AA8LD,iBAAS,oBAAoB,CAAC,IAAI,SAAS,eAAe,EAAE,OAAO,SAAS,aAAa,EAAE,KAAK,CAAC,CAAC,SAAS,WAAW,EACrH,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,EAC7B,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,CAAC,GACP,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CA+F3E;AAED,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAA;AACzG,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,CAAA"}
@@ -1,311 +0,0 @@
1
- import { isDeepStrictEqual } from "node:util";
2
- import { sealedFieldsOf } from "#closed.ts";
3
- import { AuthoringError } from "#errors.ts";
4
- import { fieldDescriptor, rosterOf, signaturesAgree } from "#fields.ts";
5
- import { alignedHeadOf, EMPTY_RULE, lowerQuery, makeRawChain, makeRawQuery, taggedCmpLiteral } from "#query/lower.ts";
6
- import { parseQueryIr } from "#query/parse-ir.ts";
7
- import { makeParam, makeSetParam, v } from "#query/scope.ts";
8
- import { difference, intersection } from "#query/segments.ts";
9
- import { handleOf } from "#rows.ts";
10
- import { queryVarLeaf, scalarBinary, scalarCast, scalarFloatPredicate, scalarLiteral, scalarMeasure, scalarMulDiv, scalarNegate } from "#scalar.ts";
11
- import { schemaDescriptor } from "#schema.ts";
12
- import { arrayValue, recordValue, valueDescriptor } from "#values.ts";
13
- function refused(context, expected) {
14
- throw new AuthoringError({
15
- message: `${context}: ${expected}`,
16
- diagnostic: { code: "InvalidQuery", context, expected }
17
- });
18
- }
19
- function name(context, input) {
20
- if (typeof input !== "string" || !input.isWellFormed())
21
- return refused(context, "expected a well-formed string name");
22
- return input;
23
- }
24
- function names(context, input) {
25
- const values = arrayValue(context, input, name);
26
- if (new Set(values).size !== values.length)
27
- refused(context, "names must be unique");
28
- return values;
29
- }
30
- function table(context, input) {
31
- const raw = recordValue(context, input, ["name", "columns"]);
32
- return Object.freeze({ name: name(`${context}.name`, raw.name), columns: names(`${context}.columns`, raw.columns) });
33
- }
34
- function checkedDescription(input) {
35
- const raw = recordValue("query description", input, ["ir", "columns", "interiors", "recursion", "parameters"]);
36
- const ir = parseQueryIr(raw.ir);
37
- const columns = names("query columns", raw.columns);
38
- if (columns.length !== ir.head.length)
39
- refused("query columns", "column names must match the query head width");
40
- const interiors = arrayValue("query interiors", raw.interiors, table);
41
- if (interiors.length !== ir.interiors.length)
42
- refused("query interiors", "names must match the IR interiors");
43
- for (const [ordinal, interior] of interiors.entries()) {
44
- if (interior.columns.length !== ir.interiors[ordinal]?.head.length)
45
- refused(`query interiors[${ordinal}]`, "column names must match the interior head width");
46
- }
47
- const recursion = raw.recursion === undefined ? undefined : table("query recursion", raw.recursion);
48
- if (ir.kind === "cq"
49
- ? recursion !== undefined
50
- : recursion === undefined || recursion.columns.length !== ir.rec.head.length)
51
- refused("query recursion", "recursion names must match the IR recursion head");
52
- const tableNames = [...interiors.map((entry) => entry.name), ...(recursion === undefined ? [] : [recursion.name])];
53
- if (new Set(tableNames).size !== tableNames.length)
54
- refused("query tables", "names must be unique");
55
- const parameters = arrayValue("query parameters", raw.parameters, (context, value) => {
56
- const record = recordValue(context, value, ["name", "members"]);
57
- return Object.freeze({
58
- name: name(`${context}.name`, record.name),
59
- members: record.members === undefined ? undefined : arrayValue(`${context}.members`, record.members, valueDescriptor)
60
- });
61
- });
62
- if (new Set(parameters.map((entry) => entry.name)).size !== parameters.length)
63
- refused("query parameters", "names must be unique");
64
- return Object.freeze({ ir, columns, interiors, recursion, parameters });
65
- }
66
- /** Return an owned logical description; no builder variables or native resource handles escape. */
67
- function describeQuery(query) {
68
- return checkedDescription({
69
- ir: lowerQuery(query),
70
- columns: query.data.finds.map((column) => column.name),
71
- interiors: query.data.interiors.map((entry, ordinal) => ({
72
- name: `interior${ordinal}`,
73
- columns: entry.finds.map((column) => column.name)
74
- })),
75
- recursion: query.data.kind === "cq"
76
- ? undefined
77
- : { name: "recursion", columns: query.data.rec.finds.map((column) => column.name) },
78
- parameters: query.data.params.map((entry) => ({
79
- name: entry.name,
80
- members: entry.membership?.kind === "set" ? entry.membership.values : undefined
81
- }))
82
- });
83
- }
84
- function hostLiteral(field, value, op) {
85
- const roster = rosterOf(field);
86
- let host = "value" in value ? value.value : { start: value.start, end: value.end };
87
- if (roster !== undefined)
88
- host = handleOf("query literal", roster, host);
89
- if (!isDeepStrictEqual(taggedCmpLiteral("query literal", field, host, op), value))
90
- refused("query literal", "literal tag must match the field domain");
91
- return host;
92
- }
93
- /** Rehydrate into the existing checked rule builder, then use its ordinary lowering and execution. */
94
- function replayRule(context, rule, columns, parameters, usedParameters) {
95
- const relations = Object.values(context.theory.relations);
96
- const derived = [
97
- ...context.interiors,
98
- ...("rec" in context && "finds" in context.rec ? [context.rec] : [])
99
- ];
100
- const variables = new Map();
101
- const relationAt = (ordinal) => relations[ordinal] ?? refused("query atom", `unknown relation ordinal ${ordinal}`);
102
- const derivedAt = (ordinal) => derived[ordinal] ?? refused("query atom", `unavailable interior ordinal ${ordinal}`);
103
- const variableAt = (ordinal) => variables.get(ordinal) ?? refused("query variable", `variable ${ordinal} has no positive binding`);
104
- const fieldsAt = (atom) => {
105
- if (atom.source.kind === "edb")
106
- return sealedFieldsOf(relationAt(atom.source.relation));
107
- return derivedAt(atom.source.interior).finds.map((column) => ({
108
- name: column.name,
109
- field: column.slot?.field ?? refused("query interior", "column has no field")
110
- }));
111
- };
112
- // Establish each variable's source domain from a positive occurrence. The
113
- // shared builder verifies every other occurrence and all provenance joins.
114
- for (const atom of rule.atoms) {
115
- const fields = fieldsAt(atom);
116
- const minted = atom.source.kind === "edb"
117
- ? v(relationAt(atom.source.relation))
118
- : v({ schema: context.theory, data: { kind: "cq", finds: derivedAt(atom.source.interior).finds } });
119
- for (const [ordinal, term] of atom.bindings) {
120
- const field = fields[ordinal] ?? refused("query atom", `unknown field ordinal ${ordinal}`);
121
- if (term.kind === "var" && !variables.has(term.var)) {
122
- const variable = minted[field.name] ?? refused("query atom", "variable mint missing");
123
- variables.set(term.var, variable);
124
- }
125
- }
126
- }
127
- let chain = makeRawChain(context, EMPTY_RULE);
128
- const termValue = (term, field, op) => {
129
- if (term.kind === "var")
130
- return variableAt(term.var);
131
- if (term.kind === "literal")
132
- return hostLiteral(field, term.value, op);
133
- const parameter = parameters[term.param] ?? refused("query parameter", `unknown parameter ordinal ${term.param}`);
134
- usedParameters.add(term.param);
135
- if (parameter.members !== undefined) {
136
- if (term.kind !== "paramSet" || op !== "binding")
137
- refused("query parameter", "fixed membership belongs in a set binding");
138
- return parameter.members.map((value) => hostLiteral(field, value, "binding"));
139
- }
140
- return term.kind === "param" ? makeParam(parameter.name) : makeSetParam(parameter.name);
141
- };
142
- const bindingsOf = (atom) => {
143
- const fields = fieldsAt(atom);
144
- return Object.fromEntries(atom.bindings.map(([ordinal, term]) => {
145
- const field = fields[ordinal] ?? refused("query atom", `unknown field ordinal ${ordinal}`);
146
- if (atom.source.kind === "interior" && term.kind !== "var")
147
- refused("query interior", "interior bindings require variables");
148
- return [field.name, termValue(term, field.field, "binding")];
149
- }));
150
- };
151
- for (const atom of rule.atoms) {
152
- chain =
153
- atom.source.kind === "edb"
154
- ? chain.match(relationAt(atom.source.relation), bindingsOf(atom))
155
- : chain.interior(derivedAt(atom.source.interior).name, bindingsOf(atom));
156
- }
157
- for (const atom of rule.negated) {
158
- chain = chain.where(atom.source.kind === "edb"
159
- ? { cond: "not", relation: relationAt(atom.source.relation), bindings: bindingsOf(atom) }
160
- : { cond: "notInterior", name: derivedAt(atom.source.interior).name, bindings: bindingsOf(atom) });
161
- }
162
- const condition = (input) => {
163
- if (input.kind !== "leaf") {
164
- const children = input.children.map(condition);
165
- // This grammar contains comparisons and trees only, never negated atoms.
166
- return {
167
- cond: "tree",
168
- op: input.kind,
169
- children
170
- };
171
- }
172
- const { lhs, rhs, op } = input.cmp;
173
- let anchor;
174
- if (lhs.kind === "var")
175
- anchor = variableAt(lhs.var).field;
176
- else if (rhs.kind === "var")
177
- anchor = variableAt(rhs.var).field;
178
- else
179
- return refused("query comparison", "requires a variable operand");
180
- return {
181
- cond: "cmp",
182
- op: op.kind,
183
- lhs: termValue(lhs, anchor, op.kind),
184
- rhs: termValue(rhs, anchor, op.kind),
185
- mask: op.kind === "allen" ? op.mask : undefined
186
- };
187
- };
188
- for (const input of rule.conditions)
189
- chain = chain.where(condition(input));
190
- const scalar = (input) => {
191
- switch (input.kind) {
192
- case "var": {
193
- const variable = variableAt(input.var);
194
- const kind = variable.field.kind;
195
- if (variable.field.kind === "interval")
196
- return queryVarLeaf(variable, { u64: "intervalU64", i64: "intervalI64", f64: "intervalF64" }[variable.field.element]);
197
- if (rosterOf(variable.field) !== undefined ||
198
- (kind !== "bool" && kind !== "u64" && kind !== "i64" && kind !== "f64"))
199
- refused("query compute", "requires a scalar variable");
200
- return queryVarLeaf(variable, kind);
201
- }
202
- case "literal": {
203
- const value = input.value;
204
- switch (value.kind) {
205
- case "u64":
206
- return scalarLiteral("query-var", { u64: value.value });
207
- case "i64":
208
- return scalarLiteral("query-var", { i64: value.value });
209
- case "f64":
210
- return scalarLiteral("query-var", { f64: value.value });
211
- case "bool":
212
- return scalarLiteral("query-var", { bool: value.value });
213
- default:
214
- return refused("query compute", "requires a scalar literal");
215
- }
216
- }
217
- case "measure":
218
- return scalarMeasure("query compute", scalar(input.expr));
219
- case "mulDiv":
220
- return scalarMulDiv("query compute", scalar(input.a), scalar(input.b), scalar(input.divisor), input.rounding);
221
- case "negate":
222
- return scalarNegate("query compute", scalar(input.expr));
223
- case "isNaN":
224
- case "isFinite":
225
- return scalarFloatPredicate("query compute", input.kind, scalar(input.expr));
226
- case "cast":
227
- return scalarCast("query compute", input.cast, { toI64Exact: "i64", toU64Exact: "u64", toF64: "f64", toF64Exact: "f64" }[input.cast], scalar(input.expr));
228
- default:
229
- return scalarBinary("query compute", input.kind, scalar(input.left), scalar(input.right));
230
- }
231
- };
232
- const finds = Object.fromEntries(rule.finds.map((find, ordinal) => {
233
- const column = columns[ordinal] ?? refused("query find", "column name missing");
234
- let value;
235
- if (find.kind === "var")
236
- value = variableAt(find.var);
237
- else if (find.kind === "compute")
238
- value = scalar(find.expr);
239
- else if (find.kind === "segments")
240
- value = (find.op === "intersection" ? intersection : difference)(variableAt(find.left), variableAt(find.right));
241
- else if (find.kind === "count")
242
- value = { agg: "count" };
243
- else
244
- value = { agg: find.kind === "pack" ? "pack" : find.op.kind, over: variableAt(find.over) };
245
- return [column, value];
246
- }));
247
- return chain.find(finds).rule;
248
- }
249
- function queryFromDescription(schema, input, result) {
250
- const theory = schemaDescriptor(schema);
251
- const description = checkedDescription(input);
252
- const resultRecord = recordValue("query result", result, typeof result === "object" && result !== null ? Object.keys(result) : []);
253
- const fields = Object.fromEntries(Object.entries(resultRecord).map(([name, field]) => [name, fieldDescriptor(`query result.${name}`, field)]));
254
- const interiors = [];
255
- const usedParameters = new Set();
256
- for (const [ordinal, item] of description.ir.interiors.entries()) {
257
- const names = description.interiors[ordinal] ?? refused("query interior", "names missing");
258
- const rules = item.rules.map((rule) => replayRule({ theory, classes: theory.classes, kind: "interior", self: names.name, interiors }, rule, names.columns, description.parameters, usedParameters));
259
- interiors.push(Object.freeze({
260
- name: names.name,
261
- finds: alignedHeadOf(`interior ${names.name}`, rules),
262
- rules: Object.freeze(rules)
263
- }));
264
- }
265
- let rec;
266
- if (description.ir.kind === "reach") {
267
- const names = description.recursion ?? refused("query recursion", "names missing");
268
- const self = { name: names.name };
269
- const base = description.ir.rec.base.map((rule) => replayRule({ theory, classes: theory.classes, kind: "rec-base", self, rec: self, interiors }, rule, names.columns, description.parameters, usedParameters));
270
- const baseHead = alignedHeadOf("recursion base", base);
271
- const first = baseHead[0] ?? refused("query recursion", "requires a nonempty head");
272
- const head = {
273
- name: names.name,
274
- finds: [first, ...baseHead.slice(1)]
275
- };
276
- const steps = description.ir.rec.rec.map((rule) => replayRule({ theory, classes: theory.classes, kind: "rec-arm", self: head, rec: head, interiors }, rule, names.columns, description.parameters, usedParameters));
277
- const finds = alignedHeadOf("recursion", [...base, ...steps]);
278
- const firstFind = finds[0] ?? refused("query recursion", "requires a nonempty head");
279
- const firstBase = base[0] ?? refused("query recursion", "requires a base rule");
280
- const firstStep = steps[0] ?? refused("query recursion", "requires a recursive rule");
281
- rec = Object.freeze({
282
- name: names.name,
283
- finds: Object.freeze([firstFind, ...finds.slice(1)]),
284
- base: Object.freeze([firstBase, ...base.slice(1)]),
285
- rec: Object.freeze([firstStep, ...steps.slice(1)])
286
- });
287
- }
288
- const context = {
289
- theory,
290
- classes: theory.classes,
291
- kind: "query",
292
- interiors,
293
- ...(rec === undefined ? {} : { rec })
294
- };
295
- const rules = description.ir.rules.map((rule) => replayRule(context, rule, description.columns, description.parameters, usedParameters));
296
- const value = makeRawQuery(theory, interiors, rec, rules);
297
- const expected = Object.entries(fields);
298
- if (expected.length !== value.data.finds.length ||
299
- expected.some(([name, field], ordinal) => {
300
- const column = value.data.finds[ordinal];
301
- return column?.name !== name || column.slot === undefined || !signaturesAgree(column.slot.field, field);
302
- }))
303
- refused("query result", "result names and field domains must match the derived query head in order");
304
- if (usedParameters.size !== description.parameters.length)
305
- refused("query parameters", "declared parameter is unused");
306
- // Complete shared lowering also checks tagged literals and ordinal bounds.
307
- lowerQuery(value);
308
- return value;
309
- }
310
- export { describeQuery, queryFromDescription };
311
- //# sourceMappingURL=description.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"description.js","sourceRoot":"","sources":["../../src/query/description.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import type { ParsedQuery } from "../native.js";
2
- /**
3
- * Own and validate the complete wire grammar. The native compiler then
4
- * checks schema membership, binding types, safety and recursion semantics;
5
- * parsing alone does not assert that a query is admitted by a schema.
6
- */
7
- declare function parseQueryIr(input: unknown): ParsedQuery;
8
- export type { ParsedQuery };
9
- export { parseQueryIr };
10
- //# sourceMappingURL=parse-ir.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse-ir.d.ts","sourceRoot":"","sources":["../../src/query/parse-ir.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAMX,WAAW,EAKX,MAAM,YAAY,CAAA;AA0OnB;;;;GAIG;AACH,iBAAS,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAoCjD;AAED,YAAY,EAAE,WAAW,EAAE,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,CAAA"}