@bjornpagen/bumbledb 1.1.0 → 1.2.0

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 (148) hide show
  1. package/COOKBOOK.md +114 -11
  2. package/README.md +52 -9
  3. package/dist/capacity.d.ts +15 -55
  4. package/dist/capacity.d.ts.map +1 -1
  5. package/dist/capacity.js +63 -12
  6. package/dist/capacity.js.map +1 -1
  7. package/dist/changes.d.ts +26 -3
  8. package/dist/changes.d.ts.map +1 -1
  9. package/dist/changes.js +89 -44
  10. package/dist/changes.js.map +1 -1
  11. package/dist/closed.d.ts +23 -51
  12. package/dist/closed.d.ts.map +1 -1
  13. package/dist/closed.js +110 -168
  14. package/dist/closed.js.map +1 -1
  15. package/dist/codec.d.ts +4 -9
  16. package/dist/codec.d.ts.map +1 -1
  17. package/dist/codec.js +108 -183
  18. package/dist/codec.js.map +1 -1
  19. package/dist/compile.d.ts +16 -16
  20. package/dist/compile.d.ts.map +1 -1
  21. package/dist/compile.js +36 -15
  22. package/dist/compile.js.map +1 -1
  23. package/dist/db-native.d.ts +39 -0
  24. package/dist/db-native.d.ts.map +1 -1
  25. package/dist/db-native.js +8 -0
  26. package/dist/db-native.js.map +1 -1
  27. package/dist/db.d.ts +28 -8
  28. package/dist/db.d.ts.map +1 -1
  29. package/dist/db.js +91 -38
  30. package/dist/db.js.map +1 -1
  31. package/dist/errors.d.ts +11 -3
  32. package/dist/errors.d.ts.map +1 -1
  33. package/dist/errors.js +13 -1
  34. package/dist/errors.js.map +1 -1
  35. package/dist/face.d.ts +19 -25
  36. package/dist/face.d.ts.map +1 -1
  37. package/dist/face.js +30 -24
  38. package/dist/face.js.map +1 -1
  39. package/dist/fields.d.ts +13 -26
  40. package/dist/fields.d.ts.map +1 -1
  41. package/dist/fields.js +89 -116
  42. package/dist/fields.js.map +1 -1
  43. package/dist/immutable.d.ts +10 -0
  44. package/dist/immutable.d.ts.map +1 -0
  45. package/dist/immutable.js +75 -0
  46. package/dist/immutable.js.map +1 -0
  47. package/dist/index.d.ts +14 -10
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +5 -3
  50. package/dist/index.js.map +1 -1
  51. package/dist/internal/log.d.ts +2 -0
  52. package/dist/internal/log.d.ts.map +1 -1
  53. package/dist/internal/log.js +2 -0
  54. package/dist/internal/log.js.map +1 -1
  55. package/dist/law.d.ts +10 -10
  56. package/dist/law.d.ts.map +1 -1
  57. package/dist/law.js +1 -1
  58. package/dist/law.js.map +1 -1
  59. package/dist/lower.d.ts.map +1 -1
  60. package/dist/lower.js +11 -6
  61. package/dist/lower.js.map +1 -1
  62. package/dist/native.d.ts +1 -1
  63. package/dist/native.d.ts.map +1 -1
  64. package/dist/native.js.map +1 -1
  65. package/dist/query/atom.d.ts +1 -1
  66. package/dist/query/atom.d.ts.map +1 -1
  67. package/dist/query/atom.js.map +1 -1
  68. package/dist/query/description.d.ts +33 -0
  69. package/dist/query/description.d.ts.map +1 -0
  70. package/dist/query/description.js +302 -0
  71. package/dist/query/description.js.map +1 -0
  72. package/dist/query/lower.d.ts +60 -4
  73. package/dist/query/lower.d.ts.map +1 -1
  74. package/dist/query/lower.js +126 -161
  75. package/dist/query/lower.js.map +1 -1
  76. package/dist/query/parse-ir.d.ts +7 -2
  77. package/dist/query/parse-ir.d.ts.map +1 -1
  78. package/dist/query/parse-ir.js +240 -53
  79. package/dist/query/parse-ir.js.map +1 -1
  80. package/dist/query/run.d.ts.map +1 -1
  81. package/dist/query/run.js +8 -10
  82. package/dist/query/run.js.map +1 -1
  83. package/dist/query/scope.d.ts +3 -4
  84. package/dist/query/scope.d.ts.map +1 -1
  85. package/dist/query/scope.js +5 -10
  86. package/dist/query/scope.js.map +1 -1
  87. package/dist/relation.d.ts +22 -48
  88. package/dist/relation.d.ts.map +1 -1
  89. package/dist/relation.js +30 -82
  90. package/dist/relation.js.map +1 -1
  91. package/dist/rows.d.ts +7 -4
  92. package/dist/rows.d.ts.map +1 -1
  93. package/dist/rows.js +44 -198
  94. package/dist/rows.js.map +1 -1
  95. package/dist/runtime-errors.d.ts +26 -2
  96. package/dist/runtime-errors.d.ts.map +1 -1
  97. package/dist/runtime-errors.js +43 -3
  98. package/dist/runtime-errors.js.map +1 -1
  99. package/dist/schema.d.ts +9 -1
  100. package/dist/schema.d.ts.map +1 -1
  101. package/dist/schema.js +85 -24
  102. package/dist/schema.js.map +1 -1
  103. package/dist/selection.d.ts +27 -0
  104. package/dist/selection.d.ts.map +1 -0
  105. package/dist/selection.js +104 -0
  106. package/dist/selection.js.map +1 -0
  107. package/dist/shape.d.ts +6 -9
  108. package/dist/shape.d.ts.map +1 -1
  109. package/dist/statements.d.ts +17 -52
  110. package/dist/statements.d.ts.map +1 -1
  111. package/dist/statements.js +92 -111
  112. package/dist/statements.js.map +1 -1
  113. package/dist/values.d.ts +25 -0
  114. package/dist/values.d.ts.map +1 -0
  115. package/dist/values.js +203 -0
  116. package/dist/values.js.map +1 -0
  117. package/pack-provenance.json +3 -3
  118. package/package.json +4 -4
  119. package/src/capacity.ts +86 -76
  120. package/src/changes.ts +183 -54
  121. package/src/closed.ts +161 -314
  122. package/src/codec.ts +116 -190
  123. package/src/compile.ts +56 -32
  124. package/src/db-native.ts +42 -0
  125. package/src/db.ts +134 -52
  126. package/src/errors.ts +16 -1
  127. package/src/face.ts +44 -74
  128. package/src/fields.ts +100 -146
  129. package/src/immutable.ts +76 -0
  130. package/src/index.ts +34 -28
  131. package/src/internal/log.ts +2 -0
  132. package/src/law.ts +13 -13
  133. package/src/lower.ts +13 -10
  134. package/src/native.ts +2 -0
  135. package/src/query/atom.ts +1 -0
  136. package/src/query/description.ts +394 -0
  137. package/src/query/lower.ts +139 -173
  138. package/src/query/parse-ir.ts +247 -54
  139. package/src/query/run.ts +15 -9
  140. package/src/query/scope.ts +10 -18
  141. package/src/relation.ts +58 -142
  142. package/src/rows.ts +62 -205
  143. package/src/runtime-errors.ts +47 -3
  144. package/src/schema.ts +99 -29
  145. package/src/selection.ts +124 -0
  146. package/src/shape.ts +9 -9
  147. package/src/statements.ts +138 -189
  148. package/src/values.ts +223 -0
package/dist/rows.js CHANGED
@@ -1,19 +1,13 @@
1
1
  import { AuthoringError, SdkInvariantError } from "#errors.ts";
2
- import { isFloatIntervalValue, isIntervalValue, literalShapeError, rosterOf } from "#fields.ts";
3
- import { Uuid } from "#uuid.ts";
2
+ import { literalShapeError, rosterOf } from "#fields.ts";
3
+ import { relationFields } from "#relation.ts";
4
+ import { fieldValue, recordValue } from "#values.ts";
4
5
  function recordOf(fact) {
5
- if (typeof fact !== "object" && typeof fact !== "function") {
6
- throw new AuthoringError({ message: "fact object is not string-indexable" });
6
+ if (typeof fact !== "object" || fact === null) {
7
+ throw new AuthoringError({ message: "expected a fact record" });
7
8
  }
8
9
  return fact;
9
10
  }
10
- function refuseShared(context, value) {
11
- if (!(value.buffer instanceof ArrayBuffer)) {
12
- throw new AuthoringError({
13
- message: `${context}: SharedArrayBuffer-backed views are refused — make a synchronized stable copy into ordinary unshared input first`
14
- });
15
- }
16
- }
17
11
  /**
18
12
  * Approximate payload size for host batching, not a memory allowance.
19
13
  * Strings use two bytes per UTF-16 code unit, not their UTF-8 wire size.
@@ -36,25 +30,11 @@ function hostCellCharge(value) {
36
30
  }
37
31
  return 0n;
38
32
  }
39
- /**
40
- * The write half of the closed bijection: one handle NAME to its u64 row
41
- * id (declaration order = row ids). An unknown name is a pointed refusal
42
- * naming the vocabulary and its roster.
43
- */
44
- function closedCellOf(context, closed, name) {
45
- const id = closed.handles.indexOf(name);
46
- if (id === -1) {
47
- throw new AuthoringError({
48
- message: `${context}: "${name}" is not a handle of ${closed.name} — the roster is ${closed.handles.join(", ")}`
49
- });
50
- }
51
- return BigInt(id);
52
- }
53
33
  function handleOf(context, closed, cell) {
54
34
  if (typeof cell !== "bigint") {
55
35
  throw literalShapeError(context, `a ${closed.name} handle id (bigint)`, cell);
56
36
  }
57
- const handle = closed.handles[Number(cell)];
37
+ const handle = cell < 0n || cell >= BigInt(closed.handles.length) ? undefined : closed.handles[Number(cell)];
58
38
  if (handle === undefined) {
59
39
  throw new AuthoringError({
60
40
  message: `${context}: id ${cell} is outside the ${closed.name} roster (${closed.handles.join(", ")})`
@@ -63,86 +43,14 @@ function handleOf(context, closed, cell) {
63
43
  return handle;
64
44
  }
65
45
  function cellOf(context, field, value) {
66
- const roster = rosterOf(field);
67
- if (roster !== undefined) {
68
- if (typeof value !== "string") {
69
- throw literalShapeError(context, `a ${roster.name} handle name (string)`, value);
70
- }
71
- return closedCellOf(context, roster, value);
72
- }
73
- switch (field.kind) {
74
- case "bool": {
75
- if (typeof value !== "boolean") {
76
- throw literalShapeError(context, "boolean", value);
77
- }
78
- return value;
79
- }
80
- case "u64":
81
- case "i64": {
82
- if (typeof value !== "bigint") {
83
- throw literalShapeError(context, "bigint", value);
84
- }
85
- return value;
86
- }
87
- case "str": {
88
- if (typeof value !== "string") {
89
- throw literalShapeError(context, "string", value);
90
- }
91
- if (!value.isWellFormed()) {
92
- throw literalShapeError(context, "well-formed string", value);
93
- }
94
- return value;
95
- }
96
- case "f64": {
97
- if (typeof value !== "number") {
98
- throw literalShapeError(context, "number", value);
99
- }
100
- return value;
101
- }
102
- case "uuid": {
103
- if (!Uuid.isUuid(value)) {
104
- throw literalShapeError(context, "a UUID (canonical UUID text)", value);
105
- }
106
- // UUIDs cross as canonical hyphenated text, not raw bytes.
107
- return value;
108
- }
109
- case "bytes": {
110
- if (!(value instanceof Uint8Array)) {
111
- throw literalShapeError(context, "Uint8Array", value);
112
- }
113
- refuseShared(context, value);
114
- if (value.byteLength !== field.width) {
115
- throw new AuthoringError({
116
- message: `${context}: bytes<${field.width}> takes exactly ${field.width} bytes (got ${value.byteLength})`
117
- });
118
- }
119
- // Owned copy at the ownership boundary: later caller mutation
120
- // cannot change an accepted cell.
121
- return Uint8Array.from(value);
122
- }
123
- case "interval": {
124
- if (field.element === "f64") {
125
- if (!isFloatIntervalValue(value)) {
126
- throw literalShapeError(context, "float interval ({ start, end } numbers)", value);
127
- }
128
- if (Number.isNaN(value.start) || Number.isNaN(value.end)) {
129
- throw new AuthoringError({ message: `${context}: a float interval endpoint cannot be NaN` });
130
- }
131
- const start = Object.is(value.start, -0) ? 0 : value.start;
132
- const end = Object.is(value.end, -0) ? 0 : value.end;
133
- if (!(start < end)) {
134
- throw new AuthoringError({
135
- message: `${context}: a float interval is half-open and nonempty (start < end strictly)`
136
- });
137
- }
138
- return { start, end };
139
- }
140
- if (!isIntervalValue(value)) {
141
- throw literalShapeError(context, "interval ({ start, end } bigints)", value);
142
- }
143
- return { start: value.start, end: value.end };
144
- }
46
+ if ("closed" in field) {
47
+ return BigInt(field.closed.handles.indexOf(fieldValue(context, field, value)));
145
48
  }
49
+ return fieldValue(context, field, value);
50
+ }
51
+ function factCellsOf(data, fact) {
52
+ const record = recordValue(`relation ${data.name}`, fact, relationFields(data).map((declared) => declared.name));
53
+ return relationFields(data).map((declared) => cellOf(`relation ${data.name} field ${declared.name}`, declared.field, record[declared.name]));
146
54
  }
147
55
  /**
148
56
  * The flat projector: every fact's cells land in ONE row-major cell array
@@ -154,109 +62,37 @@ function flatRowsOf(data, facts) {
154
62
  const cells = [];
155
63
  let rows = 0n;
156
64
  for (const fact of facts) {
157
- rows += 1n;
158
- const record = recordOf(fact);
159
- for (const declared of data.fields) {
160
- const value = record[declared.name];
161
- if (value === undefined) {
162
- throw new AuthoringError({ message: `relation ${data.name}: fact is missing field ${declared.name}` });
163
- }
164
- const cell = cellOf(`relation ${data.name} field ${declared.name}`, declared.field, value);
65
+ for (const cell of factCellsOf(data, fact))
165
66
  cells.push(cell);
166
- }
67
+ rows += 1n;
167
68
  }
168
69
  return { rows, cells };
169
70
  }
170
- function keyCellsOf(data, projection, key) {
171
- for (const supplied of Object.keys(key)) {
172
- if (key[supplied] !== undefined && !projection.includes(supplied)) {
173
- throw new AuthoringError({
174
- message: `relation ${data.name}: key object carries field ${supplied} outside the primary key projection (${projection.join(", ")})`
175
- });
176
- }
177
- }
71
+ function keyCellsOf(data, projection, input) {
72
+ const key = recordValue(`relation ${data.name} key`, input, projection);
178
73
  return projection.map(function marshalKeyCell(fieldName) {
179
- const declared = data.fields.find(function byName(candidate) {
180
- return candidate.name === fieldName;
181
- });
74
+ const declared = relationFields(data).find((candidate) => candidate.name === fieldName);
182
75
  if (declared === undefined) {
183
- throw new AuthoringError({
184
- message: `relation ${data.name}: key projection cites unknown field ${fieldName}`
185
- });
186
- }
187
- const value = key[fieldName];
188
- if (value === undefined) {
189
- throw new AuthoringError({
190
- message: `relation ${data.name}: key object is missing field ${fieldName} — get reads through the primary (first-declared) key, whose projection is (${projection.join(", ")})`
191
- });
76
+ throw new AuthoringError({ message: `relation ${data.name}: key projection cites unknown field ${fieldName}` });
192
77
  }
193
- return cellOf(`relation ${data.name} key field ${fieldName}`, declared.field, value);
78
+ return cellOf(`relation ${data.name} key field ${fieldName}`, declared.field, key[fieldName]);
194
79
  });
195
80
  }
196
81
  function decodeCell(context, field, cell) {
197
82
  const roster = rosterOf(field);
198
- if (roster !== undefined) {
83
+ if (roster !== undefined)
199
84
  return handleOf(context, roster, cell);
85
+ try {
86
+ return fieldValue(context, field, cell);
200
87
  }
201
- switch (field.kind) {
202
- case "bool": {
203
- if (typeof cell !== "boolean") {
204
- throw new SdkInvariantError({ message: `${context}: expected boolean cell` });
205
- }
206
- return cell;
207
- }
208
- case "u64":
209
- case "i64": {
210
- if (typeof cell !== "bigint") {
211
- throw new SdkInvariantError({ message: `${context}: expected bigint cell` });
212
- }
213
- return cell;
214
- }
215
- case "f64": {
216
- if (typeof cell !== "number") {
217
- throw new SdkInvariantError({ message: `${context}: expected number cell` });
218
- }
219
- return cell;
220
- }
221
- case "str": {
222
- if (typeof cell !== "string") {
223
- throw new SdkInvariantError({ message: `${context}: expected string cell` });
224
- }
225
- return cell;
226
- }
227
- case "uuid": {
228
- // The native renderer spells uuid as the canonical
229
- // canonical hyphenated UUID string (marshal.rs `uuid_hex`); the read
230
- // side revalidates the spelling and keeps the string value.
231
- if (!Uuid.isUuid(cell)) {
232
- throw new SdkInvariantError({
233
- message: `${context}: expected an uuid cell (canonical UUID text)`
234
- });
235
- }
236
- return cell;
237
- }
238
- case "bytes": {
239
- if (!(cell instanceof Uint8Array)) {
240
- throw new SdkInvariantError({ message: `${context}: expected owned bytes` });
241
- }
242
- return cell;
243
- }
244
- case "interval": {
245
- if (field.element === "f64") {
246
- if (!isFloatIntervalValue(cell)) {
247
- throw new SdkInvariantError({ message: `${context}: expected a float interval cell` });
248
- }
249
- return Object.freeze({ start: cell.start, end: cell.end });
250
- }
251
- if (!isIntervalValue(cell)) {
252
- throw new SdkInvariantError({ message: `${context}: expected an integer interval cell` });
253
- }
254
- return Object.freeze({ start: cell.start, end: cell.end });
255
- }
88
+ catch (cause) {
89
+ if (cause instanceof AuthoringError)
90
+ throw new SdkInvariantError({ message: cause.message });
91
+ throw cause;
256
92
  }
257
93
  }
258
94
  function isCompleteFact(relation, decoded) {
259
- return relation.data.fields.every(function present(declared) {
95
+ return relationFields(relation).every(function present(declared) {
260
96
  return decoded[declared.name] !== undefined;
261
97
  });
262
98
  }
@@ -265,21 +101,22 @@ function isCompleteFact(relation, decoded) {
265
101
  * declared field order: stable field names and shapes, no Proxy or per-cell closures.
266
102
  */
267
103
  function factOfCells(relation, row) {
268
- const data = relation.data;
269
- if (row.length !== data.fields.length) {
104
+ const data = relation;
105
+ if (row.length !== relationFields(data).length) {
270
106
  throw new SdkInvariantError({
271
- message: `relation ${data.name}: row arity ${row.length} does not match the ${data.fields.length} declared fields`
107
+ message: `relation ${data.name}: row arity ${row.length} does not match the ${relationFields(data).length} declared fields`
272
108
  });
273
109
  }
274
110
  const decoded = {};
275
- data.fields.forEach(function decodeOne(declared, ordinal) {
111
+ relationFields(data).forEach(function decodeOne(declared, ordinal) {
276
112
  const cell = row[ordinal];
277
113
  if (cell === undefined) {
278
114
  throw new SdkInvariantError({
279
115
  message: `relation ${data.name}: row cell ${ordinal} (${declared.name}) is absent`
280
116
  });
281
117
  }
282
- decoded[declared.name] = decodeCell(`relation ${data.name} field ${declared.name}`, declared.field, cell);
118
+ const value = decodeCell(`relation ${data.name} field ${declared.name}`, declared.field, cell);
119
+ setOwnField(decoded, declared.name, value);
283
120
  });
284
121
  Object.freeze(decoded);
285
122
  if (!isCompleteFact(relation, decoded)) {
@@ -287,5 +124,14 @@ function factOfCells(relation, row) {
287
124
  }
288
125
  return decoded;
289
126
  }
290
- export { cellOf, decodeCell, factOfCells, flatRowsOf, handleOf, hostCellCharge, keyCellsOf, recordOf };
127
+ /** Preserve every declared name as data, including JavaScript's prototype setter. */
128
+ function setOwnField(record, name, value) {
129
+ if (name === "__proto__") {
130
+ Object.defineProperty(record, name, { value, enumerable: true, writable: true, configurable: true });
131
+ }
132
+ else {
133
+ record[name] = value;
134
+ }
135
+ }
136
+ export { cellOf, decodeCell, factCellsOf, factOfCells, flatRowsOf, handleOf, hostCellCharge, keyCellsOf, recordOf, setOwnField };
291
137
  //# sourceMappingURL=rows.js.map
package/dist/rows.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"rows.js","sourceRoot":"","sources":["../src/rows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAmB9D,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAE/F,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAwB/B,SAAS,QAAQ,CAAC,IAAY;IAC7B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;QAC5D,MAAM,IAAI,cAAc,CAAC,EAAE,OAAO,EAAE,qCAAqC,EAAE,CAAC,CAAA;IAC7E,CAAC;IACD,OAAO,IAAyC,CAAA;AACjD,CAAC;AAED,SAAS,YAAY,CAAC,OAAe,EAAE,KAAiB;IACvD,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,YAAY,WAAW,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,cAAc,CAAC;YACxB,OAAO,EAAE,GAAG,OAAO,mHAAmH;SACtI,CAAC,CAAA;IACH,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,KAAc;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAA;IACjC,CAAC;IACD,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IAChC,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,EAAE,CAAA;IACV,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5D,OAAO,EAAE,CAAA;IACV,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;QACvF,OAAO,GAAG,CAAA;IACX,CAAC;IACD,OAAO,EAAE,CAAA;AACV,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,OAAe,EAAE,MAAuB,EAAE,IAAY;IAC3E,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACvC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;QACf,MAAM,IAAI,cAAc,CAAC;YACxB,OAAO,EAAE,GAAG,OAAO,MAAM,IAAI,wBAAwB,MAAM,CAAC,IAAI,oBAAoB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SAC/G,CAAC,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAC,EAAE,CAAC,CAAA;AAClB,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe,EAAE,MAAuB,EAAE,IAAa;IACxE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,iBAAiB,CAAC,OAAO,EAAE,KAAK,MAAM,CAAC,IAAI,qBAAqB,EAAE,IAAI,CAAC,CAAA;IAC9E,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;IAC3C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,cAAc,CAAC;YACxB,OAAO,EAAE,GAAG,OAAO,QAAQ,IAAI,mBAAmB,MAAM,CAAC,IAAI,YAAY,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;SACrG,CAAC,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACd,CAAC;AAED,SAAS,MAAM,CAAC,OAAe,EAAE,KAAe,EAAE,KAAc;IAC/D,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC9B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,iBAAiB,CAAC,OAAO,EAAE,KAAK,MAAM,CAAC,IAAI,uBAAuB,EAAE,KAAK,CAAC,CAAA;QACjF,CAAC;QACD,OAAO,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;IAC5C,CAAC;IACD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,MAAM,EAAE,CAAC;YACb,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;gBAChC,MAAM,iBAAiB,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;YACnD,CAAC;YACD,OAAO,KAAK,CAAA;QACb,CAAC;QACD,KAAK,KAAK,CAAC;QACX,KAAK,KAAK,EAAE,CAAC;YACZ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC/B,MAAM,iBAAiB,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;YAClD,CAAC;YACD,OAAO,KAAK,CAAA;QACb,CAAC;QACD,KAAK,KAAK,EAAE,CAAC;YACZ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC/B,MAAM,iBAAiB,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;YAClD,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,CAAC;gBAC3B,MAAM,iBAAiB,CAAC,OAAO,EAAE,oBAAoB,EAAE,KAAK,CAAC,CAAA;YAC9D,CAAC;YACD,OAAO,KAAK,CAAA;QACb,CAAC;QACD,KAAK,KAAK,EAAE,CAAC;YACZ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC/B,MAAM,iBAAiB,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;YAClD,CAAC;YACD,OAAO,KAAK,CAAA;QACb,CAAC;QACD,KAAK,MAAM,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,iBAAiB,CAAC,OAAO,EAAE,8BAA8B,EAAE,KAAK,CAAC,CAAA;YACxE,CAAC;YACD,2DAA2D;YAC3D,OAAO,KAAK,CAAA;QACb,CAAC;QACD,KAAK,OAAO,EAAE,CAAC;YACd,IAAI,CAAC,CAAC,KAAK,YAAY,UAAU,CAAC,EAAE,CAAC;gBACpC,MAAM,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,CAAA;YACtD,CAAC;YACD,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YAC5B,IAAI,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;gBACtC,MAAM,IAAI,cAAc,CAAC;oBACxB,OAAO,EAAE,GAAG,OAAO,WAAW,KAAK,CAAC,KAAK,mBAAmB,KAAK,CAAC,KAAK,eAAe,KAAK,CAAC,UAAU,GAAG;iBACzG,CAAC,CAAA;YACH,CAAC;YACD,8DAA8D;YAC9D,kCAAkC;YAClC,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC9B,CAAC;QACD,KAAK,UAAU,EAAE,CAAC;YACjB,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBAC7B,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;oBAClC,MAAM,iBAAiB,CAAC,OAAO,EAAE,yCAAyC,EAAE,KAAK,CAAC,CAAA;gBACnF,CAAC;gBACD,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC1D,MAAM,IAAI,cAAc,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,2CAA2C,EAAE,CAAC,CAAA;gBAC7F,CAAC;gBACD,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAA;gBAC1D,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAA;gBACpD,IAAI,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC;oBACpB,MAAM,IAAI,cAAc,CAAC;wBACxB,OAAO,EAAE,GAAG,OAAO,qEAAqE;qBACxF,CAAC,CAAA;gBACH,CAAC;gBACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;YACtB,CAAC;YACD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7B,MAAM,iBAAiB,CAAC,OAAO,EAAE,mCAAmC,EAAE,KAAK,CAAC,CAAA;YAC7E,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAA;QAC9C,CAAC;IACF,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,SAAS,UAAU,CAAC,IAAkB,EAAE,KAAuB;IAC9D,MAAM,KAAK,GAAgB,EAAE,CAAA;IAC7B,IAAI,IAAI,GAAG,EAAE,CAAA;IACb,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,IAAI,EAAE,CAAA;QACV,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC7B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YACnC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACzB,MAAM,IAAI,cAAc,CAAC,EAAE,OAAO,EAAE,YAAY,IAAI,CAAC,IAAI,2BAA2B,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;YACvG,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,IAAI,CAAC,IAAI,UAAU,QAAQ,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YAC1F,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACjB,CAAC;IACF,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;AACvB,CAAC;AAED,SAAS,UAAU,CAClB,IAAkB,EAClB,UAA6B,EAC7B,GAAsC;IAEtC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,cAAc,CAAC;gBACxB,OAAO,EAAE,YAAY,IAAI,CAAC,IAAI,8BAA8B,QAAQ,wCAAwC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;aACpI,CAAC,CAAA;QACH,CAAC;IACF,CAAC;IACD,OAAO,UAAU,CAAC,GAAG,CAAC,SAAS,cAAc,CAAC,SAAS;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,SAAS;YAC1D,OAAO,SAAS,CAAC,IAAI,KAAK,SAAS,CAAA;QACpC,CAAC,CAAC,CAAA;QACF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,cAAc,CAAC;gBACxB,OAAO,EAAE,YAAY,IAAI,CAAC,IAAI,wCAAwC,SAAS,EAAE;aACjF,CAAC,CAAA;QACH,CAAC;QACD,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,CAAA;QAC5B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,cAAc,CAAC;gBACxB,OAAO,EAAE,YAAY,IAAI,CAAC,IAAI,iCAAiC,SAAS,+EAA+E,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;aAC/K,CAAC,CAAA;QACH,CAAC;QACD,OAAO,MAAM,CAAC,YAAY,IAAI,CAAC,IAAI,cAAc,SAAS,EAAE,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IACrF,CAAC,CAAC,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,OAAe,EAAE,KAAe,EAAE,IAAa;IAClE,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC9B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IACvC,CAAC;IACD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,MAAM,EAAE,CAAC;YACb,IAAI,OAAO,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC/B,MAAM,IAAI,iBAAiB,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,yBAAyB,EAAE,CAAC,CAAA;YAC9E,CAAC;YACD,OAAO,IAAI,CAAA;QACZ,CAAC;QACD,KAAK,KAAK,CAAC;QACX,KAAK,KAAK,EAAE,CAAC;YACZ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,IAAI,iBAAiB,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,wBAAwB,EAAE,CAAC,CAAA;YAC7E,CAAC;YACD,OAAO,IAAI,CAAA;QACZ,CAAC;QACD,KAAK,KAAK,EAAE,CAAC;YACZ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,IAAI,iBAAiB,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,wBAAwB,EAAE,CAAC,CAAA;YAC7E,CAAC;YACD,OAAO,IAAI,CAAA;QACZ,CAAC;QACD,KAAK,KAAK,EAAE,CAAC;YACZ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,IAAI,iBAAiB,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,wBAAwB,EAAE,CAAC,CAAA;YAC7E,CAAC;YACD,OAAO,IAAI,CAAA;QACZ,CAAC;QACD,KAAK,MAAM,EAAE,CAAC;YACb,mDAAmD;YACnD,qEAAqE;YACrE,4DAA4D;YAC5D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,iBAAiB,CAAC;oBAC3B,OAAO,EAAE,GAAG,OAAO,+CAA+C;iBAClE,CAAC,CAAA;YACH,CAAC;YACD,OAAO,IAAI,CAAA;QACZ,CAAC;QACD,KAAK,OAAO,EAAE,CAAC;YACd,IAAI,CAAC,CAAC,IAAI,YAAY,UAAU,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,iBAAiB,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,wBAAwB,EAAE,CAAC,CAAA;YAC7E,CAAC;YACD,OAAO,IAAI,CAAA;QACZ,CAAC;QACD,KAAK,UAAU,EAAE,CAAC;YACjB,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBAC7B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjC,MAAM,IAAI,iBAAiB,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,kCAAkC,EAAE,CAAC,CAAA;gBACvF,CAAC;gBACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;YAC3D,CAAC;YACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,iBAAiB,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,qCAAqC,EAAE,CAAC,CAAA;YAC1F,CAAC;YACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;QAC3D,CAAC;IACF,CAAC;AACF,CAAC;AAED,SAAS,cAAc,CACtB,QAAW,EACX,OAA0C;IAE1C,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,OAAO,CAAC,QAAQ;QAC1D,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,SAAS,CAAA;IAC5C,CAAC,CAAC,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAwB,QAAW,EAAE,GAAuB;IAC/E,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAA;IAC1B,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACvC,MAAM,IAAI,iBAAiB,CAAC;YAC3B,OAAO,EAAE,YAAY,IAAI,CAAC,IAAI,eAAe,GAAG,CAAC,MAAM,uBAAuB,IAAI,CAAC,MAAM,CAAC,MAAM,kBAAkB;SAClH,CAAC,CAAA;IACH,CAAC;IACD,MAAM,OAAO,GAA4B,EAAE,CAAA;IAC3C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,SAAS,CAAC,QAAQ,EAAE,OAAO;QACvD,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,CAAA;QACzB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,iBAAiB,CAAC;gBAC3B,OAAO,EAAE,YAAY,IAAI,CAAC,IAAI,cAAc,OAAO,KAAK,QAAQ,CAAC,IAAI,aAAa;aAClF,CAAC,CAAA;QACH,CAAC;QACD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,YAAY,IAAI,CAAC,IAAI,UAAU,QAAQ,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAC1G,CAAC,CAAC,CAAA;IACF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACtB,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,iBAAiB,CAAC,EAAE,OAAO,EAAE,YAAY,IAAI,CAAC,IAAI,sCAAsC,EAAE,CAAC,CAAA;IACtG,CAAC;IACD,OAAO,OAAO,CAAA;AACf,CAAC;AAGD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAA"}
1
+ {"version":3,"file":"rows.js","sourceRoot":"","sources":["../src/rows.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,17 @@ export declare const DbReason: Schema.Union<readonly [Schema.Struct<{
15
15
  readonly kind: Schema.String;
16
16
  readonly message: Schema.String;
17
17
  }>, Schema.Struct<{
18
- readonly _tag: Schema.Literals<("Cancelled" | "ClosedHandle" | "DirectoryBusy" | "ForeignRuntime" | "Internal" | "InvalidArgument" | "InvalidPath" | "QueueFull" | "RuntimeAlreadyLive" | "SpentHandle" | "WriterBusy")[]>;
18
+ readonly _tag: Schema.Literal<"InvalidArgument">;
19
+ readonly detail: Schema.optional<Schema.Struct<{
20
+ readonly message: Schema.String;
21
+ readonly diagnostic: Schema.optional<Schema.Struct<{
22
+ readonly code: Schema.Literals<readonly ["InvalidValue", "InvalidRecord", "UnknownField", "MissingField", "InvalidDeclaration", "InvalidQuery"]>;
23
+ readonly context: Schema.String;
24
+ readonly expected: Schema.String;
25
+ }>>;
26
+ }>>;
27
+ }>, Schema.Struct<{
28
+ readonly _tag: Schema.Literals<("Cancelled" | "ClosedHandle" | "DirectoryBusy" | "ForeignRuntime" | "Internal" | "InvalidPath" | "QueueFull" | "RuntimeAlreadyLive" | "SpentHandle" | "WriterBusy")[]>;
19
29
  }>]>;
20
30
  declare const DbError_base: Schema.Class<DbError, Schema.TaggedStruct<"DbError", {
21
31
  readonly operation: Schema.String;
@@ -34,13 +44,27 @@ declare const DbError_base: Schema.Class<DbError, Schema.TaggedStruct<"DbError",
34
44
  readonly kind: Schema.String;
35
45
  readonly message: Schema.String;
36
46
  }>, Schema.Struct<{
37
- readonly _tag: Schema.Literals<("Cancelled" | "ClosedHandle" | "DirectoryBusy" | "ForeignRuntime" | "Internal" | "InvalidArgument" | "InvalidPath" | "QueueFull" | "RuntimeAlreadyLive" | "SpentHandle" | "WriterBusy")[]>;
47
+ readonly _tag: Schema.Literal<"InvalidArgument">;
48
+ readonly detail: Schema.optional<Schema.Struct<{
49
+ readonly message: Schema.String;
50
+ readonly diagnostic: Schema.optional<Schema.Struct<{
51
+ readonly code: Schema.Literals<readonly ["InvalidValue", "InvalidRecord", "UnknownField", "MissingField", "InvalidDeclaration", "InvalidQuery"]>;
52
+ readonly context: Schema.String;
53
+ readonly expected: Schema.String;
54
+ }>>;
55
+ }>>;
56
+ }>, Schema.Struct<{
57
+ readonly _tag: Schema.Literals<("Cancelled" | "ClosedHandle" | "DirectoryBusy" | "ForeignRuntime" | "Internal" | "InvalidPath" | "QueueFull" | "RuntimeAlreadyLive" | "SpentHandle" | "WriterBusy")[]>;
38
58
  }>]>;
39
59
  }>, import("effect/Cause").YieldableError>;
40
60
  export declare class DbError extends DbError_base {
41
61
  get code(): "Cancelled" | "ClosedHandle" | "DirectoryBusy" | "Engine" | "ForeignRuntime" | "Internal" | "InvalidArgument" | "InvalidPath" | "Io" | "QueueFull" | "ResourceLimit" | "RuntimeAlreadyLive" | "SpentHandle" | "WriterBusy";
62
+ /** Safe default display; callers explicitly inspect structured detail. */
63
+ get message(): string;
42
64
  }
43
65
  export declare function dbError(operation: string, cause: unknown): DbError;
66
+ /** Host input failures retain authoring details without displaying values. */
67
+ export declare function argumentError(operation: string, cause: unknown): DbError;
44
68
  declare const Outstanding: Schema.Struct<{
45
69
  readonly phase: Schema.Literals<readonly ["open", "closing", "closed"]>;
46
70
  readonly queued: Schema.BigInt;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-errors.d.ts","sourceRoot":"","sources":["../src/runtime-errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAG/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAyBrD,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;IAAyD,CAAA;;;;;;;;;;;;;;;;;;;;;AAC9E,qBAAa,OAAQ,SAAQ,YAG3B;IACD,IAAI,IAAI,+NAEP;CACD;AAGD,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAGlE;AAED,QAAA,MAAM,WAAW;;;;;;;;EAQf,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,OAAO,WAAW,CAAC,IAAI,CAAA;AACrD,QAAA,MAAM,KAAK;;;;;;;;;;;;;;;;IAIT,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;AAE3C,qBAAa,YAAa,SAAQ,iBAGhC;CAAG"}
1
+ {"version":3,"file":"runtime-errors.d.ts","sourceRoot":"","sources":["../src/runtime-errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAI/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAoCrD,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;IAA0E,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAC/F,qBAAa,OAAQ,SAAQ,YAG3B;IACD,IAAI,IAAI,+NAEP;IACD,0EAA0E;IAC1E,IAAa,OAAO,IAAI,MAAM,CAE7B;CACD;AAGD,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAkBlE;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAUxE;AAED,QAAA,MAAM,WAAW;;;;;;;;EAQf,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,OAAO,WAAW,CAAC,IAAI,CAAA;AACrD,QAAA,MAAM,KAAK;;;;;;;;;;;;;;;;IAIT,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;AAE3C,qBAAa,YAAa,SAAQ,iBAGhC;CAAG"}
@@ -1,4 +1,5 @@
1
1
  import { Schema } from "effect";
2
+ import { AuthoringDiagnostic, AuthoringError } from "#errors.ts";
2
3
  import { runtimeErrorCodes } from "#runtime-codes.ts";
3
4
  export { runtimeErrorCodes } from "#runtime-codes.ts";
4
5
  const ResourceLimit = Schema.Struct({
@@ -9,7 +10,14 @@ const ResourceLimit = Schema.Struct({
9
10
  limit: Schema.BigInt
10
11
  });
11
12
  const PlainReason = Schema.Struct({
12
- _tag: Schema.Literals(runtimeErrorCodes.filter((code) => code !== "ResourceLimit" && code !== "Io" && code !== "Engine"))
13
+ _tag: Schema.Literals(runtimeErrorCodes.filter((code) => code !== "ResourceLimit" && code !== "Io" && code !== "Engine" && code !== "InvalidArgument"))
14
+ });
15
+ const InvalidArgument = Schema.Struct({
16
+ _tag: Schema.Literal("InvalidArgument"),
17
+ detail: Schema.optional(Schema.Struct({
18
+ message: Schema.String,
19
+ diagnostic: Schema.optional(AuthoringDiagnostic)
20
+ }))
13
21
  });
14
22
  const Io = Schema.Struct({
15
23
  _tag: Schema.Literal("Io"),
@@ -22,7 +30,7 @@ const Engine = Schema.Struct({
22
30
  kind: Schema.String,
23
31
  message: Schema.String
24
32
  });
25
- export const DbReason = Schema.Union([ResourceLimit, Io, Engine, PlainReason]);
33
+ export const DbReason = Schema.Union([ResourceLimit, Io, Engine, InvalidArgument, PlainReason]);
26
34
  export class DbError extends Schema.TaggedError()("DbError", {
27
35
  operation: Schema.String,
28
36
  reason: DbReason
@@ -30,11 +38,43 @@ export class DbError extends Schema.TaggedError()("DbError", {
30
38
  get code() {
31
39
  return this.reason._tag;
32
40
  }
41
+ /** Safe default display; callers explicitly inspect structured detail. */
42
+ get message() {
43
+ return `${this.operation}: ${this.code}`;
44
+ }
33
45
  }
34
46
  const decodeReason = Schema.decodeUnknownOption(DbReason);
35
47
  export function dbError(operation, cause) {
48
+ if (cause instanceof DbError)
49
+ return cause;
50
+ if (cause instanceof AuthoringError)
51
+ return argumentError(operation, cause);
36
52
  const decoded = decodeReason(cause);
37
- return new DbError({ operation, reason: decoded._tag === "Some" ? decoded.value : { _tag: "Internal" } });
53
+ if (decoded._tag === "Some")
54
+ return new DbError({ operation, reason: decoded.value });
55
+ // Synchronous native schema/marshalling refusals precede the executor's
56
+ // tagged error wire. Preserve their engine family instead of losing it.
57
+ if (typeof cause === "object" &&
58
+ cause !== null &&
59
+ "kind" in cause &&
60
+ typeof cause.kind === "string" &&
61
+ "message" in cause &&
62
+ typeof cause.message === "string") {
63
+ return new DbError({ operation, reason: { _tag: "Engine", kind: cause.kind, message: cause.message } });
64
+ }
65
+ return new DbError({ operation, reason: { _tag: "Internal" } });
66
+ }
67
+ /** Host input failures retain authoring details without displaying values. */
68
+ export function argumentError(operation, cause) {
69
+ if (cause instanceof DbError)
70
+ return cause;
71
+ if (cause instanceof AuthoringError) {
72
+ const detail = cause.diagnostic === undefined
73
+ ? { message: cause.message }
74
+ : { message: cause.message, diagnostic: cause.diagnostic };
75
+ return new DbError({ operation, reason: { _tag: "InvalidArgument", detail } });
76
+ }
77
+ return new DbError({ operation, reason: { _tag: "InvalidArgument" } });
38
78
  }
39
79
  const Outstanding = Schema.Struct({
40
80
  phase: Schema.Literals(["open", "closing", "closed"]),
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-errors.js","sourceRoot":"","sources":["../src/runtime-errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-errors.js","sourceRoot":"","sources":["../src/runtime-errors.ts"],"names":[],"mappings":"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"}
package/dist/schema.d.ts CHANGED
@@ -27,6 +27,14 @@ interface Schema<Rels extends SchemaRelations, Classes extends SchemaClasses = S
27
27
  readonly classes: Classes;
28
28
  }
29
29
  type AnySchema = Schema<SchemaRelations>;
30
+ /**
31
+ * Logical schema equivalence, including the ordered native ordinals and
32
+ * host decoding domains. Schema display names do not change the theory.
33
+ * A database/snapshot still has its own resource identity and lifetime.
34
+ */
35
+ declare function schemasAgree(leftInput: AnySchema, rightInput: AnySchema): boolean;
36
+ declare function schemaDescriptor<S extends AnySchema>(input: S): S;
37
+ declare function schemaDescriptor(input: unknown): AnySchema;
30
38
  type EvaluatedClasses<C extends SchemaClasses> = C extends SchemaClasses ? {
31
39
  readonly [N in keyof C]: {
32
40
  readonly [F in keyof C[N]]: C[N][F];
@@ -34,5 +42,5 @@ type EvaluatedClasses<C extends SchemaClasses> = C extends SchemaClasses ? {
34
42
  } : never;
35
43
  declare function schema<const Rels extends SchemaRelations, const Stmts extends readonly Statement[]>(name: string, relations: Rels, statements: Stmts & LawfulStatements<Rels, Stmts>): Schema<Rels, EvaluatedClasses<ClassesOf<Rels, Stmts>>>;
36
44
  export type { AnySchema, Schema, SchemaRelation, SchemaRelations };
37
- export { schema };
45
+ export { schema, schemaDescriptor, schemasAgree };
38
46
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAI3C,OAAO,EAAE,KAAK,SAAS,EAAmC,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,SAAS,CAAA;AACpH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C,OAAO,EAAgC,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAkR7E,KAAK,cAAc,GAAG,WAAW,GAAG,SAAS,CAAA;AAE7C,KAAK,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;AAErD,UAAU,MAAM,CAAC,IAAI,SAAS,eAAe,EAAE,OAAO,SAAS,aAAa,GAAG,aAAa;IAC3F,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAA;IACxB,QAAQ,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAA;IACzC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CACzB;AAED,KAAK,SAAS,GAAG,MAAM,CAAC,eAAe,CAAC,CAAA;AAExC,KAAK,gBAAgB,CAAC,CAAC,SAAS,aAAa,IAAI,CAAC,SAAS,aAAa,GACrE;IAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG;QAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE;CAAE,GACpE,KAAK,CAAA;AAER,iBAAS,MAAM,CAAC,KAAK,CAAC,IAAI,SAAS,eAAe,EAAE,KAAK,CAAC,KAAK,SAAS,SAAS,SAAS,EAAE,EAC3F,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,IAAI,EACf,UAAU,EAAE,KAAK,GAAG,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,GAC/C,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CA6BxD;AAED,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,CAAA"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAK3C,OAAO,EAAE,KAAK,SAAS,EAAmC,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,SAAS,CAAA;AACpH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C,OAAO,EAAmB,KAAK,SAAS,EAAuB,MAAM,gBAAgB,CAAA;AAmRrF,KAAK,cAAc,GAAG,WAAW,GAAG,SAAS,CAAA;AAE7C,KAAK,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;AAErD,UAAU,MAAM,CAAC,IAAI,SAAS,eAAe,EAAE,OAAO,SAAS,aAAa,GAAG,aAAa;IAC3F,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAA;IACxB,QAAQ,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAA;IACzC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CACzB;AAED,KAAK,SAAS,GAAG,MAAM,CAAC,eAAe,CAAC,CAAA;AAExC;;;;GAIG;AACH,iBAAS,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,GAAG,OAAO,CA0B1E;AAID,iBAAS,gBAAgB,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAA;AAC3D,iBAAS,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAA;AAsBpD,KAAK,gBAAgB,CAAC,CAAC,SAAS,aAAa,IAAI,CAAC,SAAS,aAAa,GACrE;IAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG;QAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE;CAAE,GACpE,KAAK,CAAA;AAaR,iBAAS,MAAM,CAAC,KAAK,CAAC,IAAI,SAAS,eAAe,EAAE,KAAK,CAAC,KAAK,SAAS,SAAS,SAAS,EAAE,EAC3F,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,IAAI,EACf,UAAU,EAAE,KAAK,GAAG,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,GAC/C,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CA2BxD;AAED,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,CAAA"}