@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/closed.js CHANGED
@@ -1,187 +1,129 @@
1
1
  import { AuthoringError } from "#errors.ts";
2
- import { assertDeclarationOrderKey, assertDeclarationRecord, literalOf } from "#fields.ts";
3
- import { resolveSelection } from "#relation.ts";
2
+ import { assertDeclarationOrderKey, assertDeclarationRecord, ownHandles, signaturesAgree } from "#fields.ts";
3
+ import { descriptorCache } from "#immutable.ts";
4
+ import { ownFields, relationDescriptor, relationFields } from "#relation.ts";
5
+ import { fieldValue, recordValue } from "#values.ts";
4
6
  function isClosedMember(member) {
5
- return "handles" in member.data;
7
+ return member.kind === "closed";
6
8
  }
7
- function sealedFieldsOf(member) {
8
- if (isClosedMember(member)) {
9
- return Object.freeze([Object.freeze({ name: "id", field: member.id }), ...member.data.columns]);
10
- }
11
- return member.data.fields;
12
- }
13
- function sealedFieldOf(member, fieldName) {
14
- const declared = sealedFieldsOf(member).find(function byName(candidate) {
15
- return candidate.name === fieldName;
16
- });
17
- return declared?.field;
18
- }
19
- function isHandleTuple(shape) {
20
- return (Array.isArray(shape) &&
21
- shape.length > 0 &&
22
- shape.every(function stringHandle(handle) {
23
- return typeof handle === "string";
24
- }));
25
- }
26
- /**
27
- * The trusted seam of the payload tier: the handle tuple and the axioms
28
- * record are the same finite set — every tuple name is an own key, and
29
- * every own key is in the tuple.
30
- */
31
- function handleKeysOwn(axioms, names) {
32
- const listed = new Set(names);
33
- return (names.every(function ownHandle(name) {
34
- return Object.hasOwn(axioms, name);
35
- }) &&
36
- Object.keys(axioms).every(function listedHandle(name) {
37
- return listed.has(name);
38
- }));
39
- }
40
- /**
41
- * The trusted seam of the axiom-readback mint: every handle carries an own
42
- * frozen row and every row carries every declared column as an own
43
- * property — verified before the record is admitted as the typed
44
- * {@link Axioms} (the trusted-admission-seam pattern — its home is
45
- * `isTypedScope` in query/lower.ts).
46
- */
47
- function axiomsMinted(record, handles, cols) {
48
- return handles.every(function rowMinted(handle) {
49
- const row = record[handle];
50
- return (row !== undefined &&
51
- cols.every(function columnMinted(column) {
52
- return Object.hasOwn(row, column.name);
53
- }));
9
+ /** The synthetic id is an ordinary field descriptor, derived from the declared roster. */
10
+ function closedId(member) {
11
+ recordValue("closed relation", member, ["kind", "name", "handles", "columns", "axioms"]);
12
+ assertDeclarationOrderKey("closed relation", member.name);
13
+ return Object.freeze({
14
+ kind: "u64",
15
+ closed: Object.freeze({ name: member.name, handles: ownHandles(`closed relation ${member.name}`, member.handles) })
54
16
  });
55
17
  }
56
- function mintAxioms(name, handles, cols, axioms) {
57
- const out = {};
58
- for (const handle of handles) {
59
- const row = Object.freeze({ ...axioms[handle] });
60
- Object.defineProperty(out, handle, { value: row, enumerable: true });
61
- }
62
- Object.freeze(out);
63
- if (!axiomsMinted(out, handles, cols)) {
64
- throw new AuthoringError({ message: `closed relation ${name}: axiom-row minting incomplete` });
65
- }
66
- return out;
18
+ function closedDescriptor(input) {
19
+ return checkedClosed(input);
67
20
  }
68
- function closed(name, handles, columns, axioms) {
69
- if (!Array.isArray(handles)) {
21
+ const checkedClosed = descriptorCache((input) => {
22
+ const raw = recordValue("closed relation", input, ["kind", "name", "handles", "columns", "axioms"]);
23
+ if (raw.kind !== "closed" || typeof raw.name !== "string")
24
+ throw new AuthoringError({ message: "closed relation: expected a closed declaration" });
25
+ assertDeclarationOrderKey("closed relation", raw.name);
26
+ const handles = ownHandles(`closed relation ${raw.name}`, raw.handles);
27
+ const columns = ownFields(`closed relation ${raw.name} columns`, raw.columns);
28
+ if (Object.hasOwn(columns, "id"))
70
29
  throw new AuthoringError({
71
- message: `closed relation ${name}: payload columns declared without ground axioms — the payload tier is spelled closed(name, handles, columns, axioms)`
30
+ message: `closed relation ${raw.name}: payload column id collides with the synthetic id`
72
31
  });
73
- }
74
- if (!isHandleTuple(handles)) {
75
- throw new AuthoringError({
76
- message: `closed relation ${name}: at least one handle is required (an empty vocabulary declares nothing)`
32
+ const axioms = recordValue(`closed relation ${raw.name} axioms`, raw.axioms, handles);
33
+ const names = Object.keys(columns);
34
+ const owned = Object.fromEntries(handles.map((handle) => {
35
+ const row = recordValue(`closed relation ${raw.name}.${handle}`, axioms[handle], names);
36
+ return [
37
+ handle,
38
+ Object.freeze(Object.fromEntries(Object.entries(columns).map(([name, field]) => [
39
+ name,
40
+ fieldValue(`closed relation ${raw.name}.${handle}.${name}`, field, row[name])
41
+ ])))
42
+ ];
43
+ }));
44
+ return Object.freeze({ kind: "closed", name: raw.name, handles, columns, axioms: Object.freeze(owned) });
45
+ });
46
+ function closed(name, handles, columns, axioms) {
47
+ if (columns === undefined && axioms === undefined) {
48
+ const roster = ownHandles(`closed relation ${name}`, handles);
49
+ return closedDescriptor({
50
+ kind: "closed",
51
+ name,
52
+ handles: roster,
53
+ columns: {},
54
+ axioms: Object.fromEntries(roster.map((handle) => [handle, {}]))
77
55
  });
78
56
  }
79
- if (columns === undefined) {
80
- if (axioms !== undefined) {
81
- throw new AuthoringError({
82
- message: `closed relation ${name}: the bare tier declares no columns, so ground axioms are inadmissible`
83
- });
84
- }
85
- return closedBare(name, handles);
86
- }
87
- if (axioms === undefined) {
57
+ if (columns === undefined || axioms === undefined)
88
58
  throw new AuthoringError({
89
- message: `closed relation ${name}: payload columns declared without ground axioms the payload tier is spelled closed(name, handles, columns, axioms)`
59
+ message: `closed relation ${name}: payload columns and ground axioms must be supplied together`
90
60
  });
91
- }
92
- return closedPayload(name, handles, columns, axioms);
61
+ return closedDescriptor({ kind: "closed", name, handles, columns, axioms });
93
62
  }
94
- function closedBare(name, handles) {
95
- const empty = {};
96
- for (const handle of handles) {
97
- /** A duplicated name mints one row; the roster's own duplicate refusal in {@link mintClosed} stays the judge. */
98
- if (!Object.hasOwn(empty, handle)) {
99
- Object.defineProperty(empty, handle, { value: Object.freeze({}), enumerable: true });
100
- }
101
- }
102
- Object.freeze(empty);
103
- if (!axiomsMinted(empty, handles, [])) {
104
- throw new AuthoringError({ message: `closed relation ${name}: bare-tier axiom-row minting incomplete` });
105
- }
106
- return mintClosed(name, handles, {}, empty);
63
+ function memberDescriptor(input) {
64
+ if (typeof input !== "object" || input === null)
65
+ throw new AuthoringError({ message: "relation: expected a declaration record" });
66
+ assertDeclarationRecord("relation", input);
67
+ if ("kind" in input && input.kind === "closed")
68
+ return closedDescriptor(input);
69
+ return relationDescriptor(input);
107
70
  }
108
- function closedPayload(name, handles, columns, axioms) {
109
- assertDeclarationRecord(`closed relation ${name} columns`, columns);
110
- for (const columnName of Object.keys(columns)) {
111
- assertDeclarationOrderKey(`closed relation ${name} column`, columnName);
112
- }
113
- assertDeclarationRecord(`closed relation ${name} axioms`, axioms);
114
- for (const handle of handles) {
115
- assertDeclarationOrderKey(`closed relation ${name} handle`, handle);
116
- }
117
- if (!handleKeysOwn(axioms, handles)) {
118
- throw new AuthoringError({ message: `closed relation ${name}: handle enumeration incomplete` });
71
+ function sealedFieldsOf(member) {
72
+ return isClosedMember(member)
73
+ ? [
74
+ { name: "id", field: closedId(member) },
75
+ ...Object.entries(member.columns).map(([name, field]) => ({ name, field }))
76
+ ]
77
+ : relationFields(member);
78
+ }
79
+ function sealedFieldOf(member, name) {
80
+ if (isClosedMember(member)) {
81
+ if (name === "id")
82
+ return closedId(member);
83
+ return Object.hasOwn(member.columns, name) ? member.columns[name] : undefined;
119
84
  }
120
- return mintClosed(name, handles, columns, axioms);
85
+ return Object.hasOwn(member.fields, name) ? member.fields[name] : undefined;
121
86
  }
122
- function surfaceMinted(value, cols) {
123
- const selectable = "where" in value && typeof value.where === "function";
124
- return cols.length > 0 ? selectable : !selectable;
87
+ function sameValue(a, b) {
88
+ if (Object.is(a, b))
89
+ return true;
90
+ if (a instanceof Uint8Array && b instanceof Uint8Array)
91
+ return a.length === b.length && a.every((byte, i) => byte === b[i]);
92
+ if (typeof a === "object" &&
93
+ a !== null &&
94
+ typeof b === "object" &&
95
+ b !== null &&
96
+ "start" in a &&
97
+ "end" in a &&
98
+ "start" in b &&
99
+ "end" in b)
100
+ return Object.is(a.start, b.start) && Object.is(a.end, b.end);
101
+ return false;
125
102
  }
126
- function mintClosed(name, handles, columns, axioms) {
127
- assertDeclarationOrderKey("closed relation", name);
128
- const seen = new Set();
129
- for (const handle of handles) {
130
- if (seen.has(handle)) {
131
- throw new AuthoringError({ message: `closed relation ${name}: duplicate handle ${handle}` });
132
- }
133
- seen.add(handle);
134
- }
135
- const handleList = Object.freeze(handles);
136
- const roster = Object.freeze({ name, handles: handleList });
137
- const cols = [];
138
- for (const [columnName, field] of Object.entries(columns)) {
139
- assertDeclarationOrderKey(`closed relation ${name} column`, columnName);
140
- if (columnName === "id") {
141
- throw new AuthoringError({
142
- message: `closed relation ${name}: the payload column id collides with the sealed shape's synthetic id (the relation mints its own id at ordinal 0; name the column something else)`
143
- });
144
- }
145
- cols.push(Object.freeze({ name: columnName, field }));
146
- }
147
- Object.freeze(cols);
148
- const rows = handleList.map(function lowerRow(handle) {
149
- const row = axioms[handle];
150
- const values = cols.map(function lowerAxiomLiteral(column) {
151
- return Object.freeze(literalOf(column.field, row[column.name]));
152
- });
153
- return Object.freeze({ handle, values: Object.freeze(values) });
154
- });
155
- const data = Object.freeze({
156
- name,
157
- handles: roster.handles,
158
- columns: cols,
159
- rows: Object.freeze(rows)
160
- });
161
- const id = Object.freeze({ kind: "u64", closed: roster });
162
- const axiomsOut = mintAxioms(name, handleList, cols, axioms);
163
- const columnsOut = { ...columns };
164
- Object.freeze(columnsOut);
165
- const holder = { value: undefined };
166
- function where(selection) {
167
- const owner = holder.value;
168
- if (owner === undefined) {
169
- throw new AuthoringError({
170
- message: `closed relation ${name}: self-reference read before construction completed`
171
- });
172
- }
173
- return Object.freeze({
174
- relation: owner,
175
- selection: resolveSelection(name, cols, Object.entries(selection))
176
- });
177
- }
178
- const core = { name, id, data, axioms: axiomsOut, columns: columnsOut };
179
- const value = cols.length > 0 ? Object.freeze({ ...core, where }) : Object.freeze(core);
180
- if (!surfaceMinted(value, cols)) {
181
- throw new AuthoringError({ message: `closed relation ${name}: ergonomic-surface minting incomplete` });
182
- }
183
- holder.value = value;
184
- return value;
103
+ /** Equal names must denote equal ordered declarations, never constructor identities. */
104
+ function membersAgree(left, right) {
105
+ if (left === undefined)
106
+ return false;
107
+ const a = memberDescriptor(left);
108
+ const b = memberDescriptor(right);
109
+ if (a === b)
110
+ return true;
111
+ if (a.kind !== b.kind || a.name !== b.name)
112
+ return false;
113
+ const af = sealedFieldsOf(a);
114
+ const bf = sealedFieldsOf(b);
115
+ if (af.length !== bf.length ||
116
+ !af.every((field, i) => {
117
+ const other = bf[i];
118
+ return other !== undefined && field.name === other.name && signaturesAgree(field.field, other.field);
119
+ }))
120
+ return false;
121
+ if (isClosedMember(a) && isClosedMember(b)) {
122
+ return (a.handles.length === b.handles.length &&
123
+ a.handles.every((handle, i) => handle === b.handles[i] &&
124
+ Object.keys(a.columns).every((name) => sameValue(a.axioms[handle]?.[name], b.axioms[handle]?.[name]))));
125
+ }
126
+ return true;
185
127
  }
186
- export { closed, isClosedMember, sealedFieldOf, sealedFieldsOf };
128
+ export { closed, closedDescriptor, closedId, isClosedMember, memberDescriptor, membersAgree, sealedFieldOf, sealedFieldsOf };
187
129
  //# sourceMappingURL=closed.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"closed.js","sourceRoot":"","sources":["../src/closed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAGN,yBAAyB,EACzB,uBAAuB,EAKvB,SAAS,EACT,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,gBAAgB,EAA8C,MAAM,cAAc,CAAA;AAmF3F,SAAS,cAAc,CAAC,MAA+B;IACtD,OAAO,SAAS,IAAI,MAAM,CAAC,IAAI,CAAA;AAChC,CAAC;AAED,SAAS,cAAc,CAAC,MAA+B;IACtD,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;IAChG,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAA;AAC1B,CAAC;AAED,SAAS,aAAa,CAAC,MAA+B,EAAE,SAAiB;IACxE,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,SAAS;QACrE,OAAO,SAAS,CAAC,IAAI,KAAK,SAAS,CAAA;IACpC,CAAC,CAAC,CAAA;IACF,OAAO,QAAQ,EAAE,KAAK,CAAA;AACvB,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACpC,OAAO,CACN,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACpB,KAAK,CAAC,MAAM,GAAG,CAAC;QAChB,KAAK,CAAC,KAAK,CAAC,SAAS,YAAY,CAAC,MAAM;YACvC,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAA;QAClC,CAAC,CAAC,CACF,CAAA;AACF,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CACrB,MAA2C,EAC3C,KAAyB;IAEzB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAS,KAAK,CAAC,CAAA;IACrC,OAAO,CACN,KAAK,CAAC,KAAK,CAAC,SAAS,SAAS,CAAC,IAAI;QAClC,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACnC,CAAC,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,SAAS,YAAY,CAAC,IAAI;YACnD,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACxB,CAAC,CAAC,CACF,CAAA;AACF,CAAC;AAED;;;;;;GAMG;AACH,SAAS,YAAY,CACpB,MAAwC,EACxC,OAA2B,EAC3B,IAA6B;IAE7B,OAAO,OAAO,CAAC,KAAK,CAAC,SAAS,SAAS,CAAC,MAAM;QAC7C,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;QAC1B,OAAO,CACN,GAAG,KAAK,SAAS;YACjB,IAAI,CAAC,KAAK,CAAC,SAAS,YAAY,CAAC,MAAM;gBACtC,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;YACvC,CAAC,CAAC,CACF,CAAA;IACF,CAAC,CAAC,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAClB,IAAY,EACZ,OAA2B,EAC3B,IAA6B,EAC7B,MAA6B;IAE7B,MAAM,GAAG,GAA2B,EAAE,CAAA;IACtC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAChD,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;IACrE,CAAC;IACD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAClB,IAAI,CAAC,YAAY,CAAgB,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,cAAc,CAAC,EAAE,OAAO,EAAE,mBAAmB,IAAI,gCAAgC,EAAE,CAAC,CAAA;IAC/F,CAAC;IACD,OAAO,GAAG,CAAA;AACX,CAAC;AAcD,SAAS,MAAM,CACd,IAAU,EACV,OAAgB,EAChB,OAAc,EACd,MAAsC;IAEtC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,cAAc,CAAC;YACxB,OAAO,EAAE,mBAAmB,IAAI,uHAAuH;SACvJ,CAAC,CAAA;IACH,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,cAAc,CAAC;YACxB,OAAO,EAAE,mBAAmB,IAAI,0EAA0E;SAC1G,CAAC,CAAA;IACH,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC3B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,cAAc,CAAC;gBACxB,OAAO,EAAE,mBAAmB,IAAI,wEAAwE;aACxG,CAAC,CAAA;QACH,CAAC;QACD,OAAO,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACjC,CAAC;IACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,cAAc,CAAC;YACxB,OAAO,EAAE,mBAAmB,IAAI,uHAAuH;SACvJ,CAAC,CAAA;IACH,CAAC;IACD,OAAO,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;AACrD,CAAC;AAED,SAAS,UAAU,CAClB,IAAU,EACV,OAAW;IAEX,MAAM,KAAK,GAA2B,EAAE,CAAA;IACxC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC9B,iHAAiH;QACjH,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;QACrF,CAAC;IACF,CAAC;IACD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACpB,IAAI,CAAC,YAAY,CAAmC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,cAAc,CAAC,EAAE,OAAO,EAAE,mBAAmB,IAAI,0CAA0C,EAAE,CAAC,CAAA;IACzG,CAAC;IACD,OAAO,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,CAAA;AAC5C,CAAC;AAED,SAAS,aAAa,CACrB,IAAU,EACV,OAAgB,EAChB,OAAa,EACb,MAAqC;IAErC,uBAAuB,CAAC,mBAAmB,IAAI,UAAU,EAAE,OAAO,CAAC,CAAA;IACnE,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/C,yBAAyB,CAAC,mBAAmB,IAAI,SAAS,EAAE,UAAU,CAAC,CAAA;IACxE,CAAC;IACD,uBAAuB,CAAC,mBAAmB,IAAI,SAAS,EAAE,MAAM,CAAC,CAAA;IACjE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC9B,yBAAyB,CAAC,mBAAmB,IAAI,SAAS,EAAE,MAAM,CAAC,CAAA;IACpE,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,cAAc,CAAC,EAAE,OAAO,EAAE,mBAAmB,IAAI,iCAAiC,EAAE,CAAC,CAAA;IAChG,CAAC;IACD,OAAO,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;AAClD,CAAC;AAED,SAAS,aAAa,CAKrB,KAAsC,EACtC,IAA6B;IAE7B,MAAM,UAAU,GAAG,OAAO,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,UAAU,CAAA;IACxE,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;AAClD,CAAC;AAED,SAAS,UAAU,CAClB,IAAU,EACV,OAAgB,EAChB,OAAa,EACb,MAAqC;IAErC,yBAAyB,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAA;IAClD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,cAAc,CAAC,EAAE,OAAO,EAAE,mBAAmB,IAAI,sBAAsB,MAAM,EAAE,EAAE,CAAC,CAAA;QAC7F,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACjB,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACzC,MAAM,MAAM,GAAgC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAA;IACxF,MAAM,IAAI,GAAmB,EAAE,CAAA;IAC/B,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3D,yBAAyB,CAAC,mBAAmB,IAAI,SAAS,EAAE,UAAU,CAAC,CAAA;QACvE,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACzB,MAAM,IAAI,cAAc,CAAC;gBACxB,OAAO,EAAE,mBAAmB,IAAI,oJAAoJ;aACpL,CAAC,CAAA;QACH,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;IACtD,CAAC;IACD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACnB,MAAM,IAAI,GAAgB,UAAU,CAAC,GAAG,CAAC,SAAS,QAAQ,CAAC,MAAuB;QACjF,MAAM,GAAG,GAAsC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,iBAAiB,CAAC,MAAM;YACxD,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAChE,CAAC,CAAC,CAAA;QACF,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;IACF,MAAM,IAAI,GAAe,MAAM,CAAC,MAAM,CAAC;QACtC,IAAI;QACJ,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;KACzB,CAAC,CAAA;IACF,MAAM,EAAE,GAAiC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IAEvF,MAAM,SAAS,GAAG,UAAU,CAAwB,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IACnF,MAAM,UAAU,GAAS,EAAE,GAAG,OAAO,EAAE,CAAA;IACvC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACzB,MAAM,MAAM,GAAuD,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;IAEvF,SAAS,KAAK,CAAC,SAAqC;QACnD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;QAC1B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,cAAc,CAAC;gBACxB,OAAO,EAAE,mBAAmB,IAAI,qDAAqD;aACrF,CAAC,CAAA;QACH,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC;YACpB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAClE,CAAC,CAAA;IACH,CAAC;IACD,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,CAAA;IACvE,MAAM,KAAK,GACV,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC1E,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,cAAc,CAAC,EAAE,OAAO,EAAE,mBAAmB,IAAI,wCAAwC,EAAE,CAAC,CAAA;IACvG,CAAC;IACD,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,OAAO,KAAK,CAAA;AACb,CAAC;AAiBD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,CAAA"}
1
+ {"version":3,"file":"closed.js","sourceRoot":"","sources":["../src/closed.ts"],"names":[],"mappings":"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"}
package/dist/codec.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Effect, Schema as EffectSchema, Result } from "effect";
2
- import type { AnyRelation, Fact } from "./relation.js";
2
+ import { type AnyRelation, type Fact } from "./relation.js";
3
3
  import { DbError } from "./runtime-errors.js";
4
4
  import type { AnySchema } from "./schema.js";
5
5
  import type { Rel } from "./shape.js";
@@ -30,16 +30,11 @@ interface RowShape<R extends AnyRelation> {
30
30
  readonly relation: R;
31
31
  }
32
32
  declare function rowShape<S extends AnySchema, R extends Rel<S>>(schema: S, relation: R): RowShape<R>;
33
- /** Pure schema-tagged JSON encoding of owned rows (bounded per call). */
33
+ /** Pure schema-tagged JSON encoding of complete rows. */
34
34
  declare function encodeBoundaryRows<R extends AnyRelation>(relation: R, rows: Iterable<Fact<R>>): Result.Result<ReadonlyArray<Readonly<Record<string, unknown>>>, DbError>;
35
- /** Pure strict decoding of schema-tagged JSON rows; any refusal is typed. */
35
+ /** Pure strict decoding; malformed records, getters and values fail as data. */
36
36
  declare function decodeBoundaryRows<R extends AnyRelation>(relation: R, input: unknown): Result.Result<ReadonlyArray<Fact<R>>, DbError>;
37
- /**
38
- * An Effect Schema for one relation's typed row, DERIVED from the core
39
- * descriptors (a validation-only declaration; the canonical `$f64`/decimal
40
- * wire form stays this module's explicit codec — Effect Schema's generic
41
- * JSON number encoding is not Bumbledb's `$f64` codec).
42
- */
37
+ /** An Effect Schema derived from the same complete-row value interpreter. */
43
38
  declare function rowSchema<R extends AnyRelation>(relation: R): EffectSchema.declare<Fact<R>, Fact<R>>;
44
39
  /**
45
40
  * The canonical native row codec (chapter 35 roster): owned bytes
@@ -1 +1 @@
1
- {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAM/D,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAIrD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAIpC;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,+DAA+D;AAC/D,UAAU,QAAQ,CAAC,CAAC,SAAS,WAAW;IACvC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;CACpB;AAED,iBAAS,QAAQ,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAE5F;AAuLD,yEAAyE;AACzE,iBAAS,kBAAkB,CAAC,CAAC,SAAS,WAAW,EAChD,QAAQ,EAAE,CAAC,EACX,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GACrB,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAkB1E;AAED,6EAA6E;AAC7E,iBAAS,kBAAkB,CAAC,CAAC,SAAS,WAAW,EAChD,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,OAAO,GACZ,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CA0BhD;AAED;;;;;GAKG;AACH,iBAAS,SAAS,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,EAAE,CAAC,0CAmBpD;AAED;;;;;;GAMG;AACH,QAAA,MAAM,UAAU,GAAsC,CAAC,SAAS,WAAW,0IAqBzE,CAAA;AAEF,QAAA,MAAM,UAAU,GAAsC,CAAC,SAAS,WAAW,4IAiBzE,CAAA;AAEF,YAAY,EAAE,QAAQ,EAAE,CAAA;AACxB,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAA"}
1
+ {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAO/D,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,IAAI,EAAsC,MAAM,cAAc,CAAA;AAI9F,OAAO,EAAiB,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE3C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAIpC;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,+DAA+D;AAC/D,UAAU,QAAQ,CAAC,CAAC,SAAS,WAAW;IACvC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;CACpB;AAED,iBAAS,QAAQ,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAI5F;AAuHD,yDAAyD;AACzD,iBAAS,kBAAkB,CAAC,CAAC,SAAS,WAAW,EAChD,QAAQ,EAAE,CAAC,EACX,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GACrB,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAuB1E;AAED,gFAAgF;AAChF,iBAAS,kBAAkB,CAAC,CAAC,SAAS,WAAW,EAChD,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,OAAO,GACZ,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAsBhD;AAED,6EAA6E;AAC7E,iBAAS,SAAS,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,EAAE,CAAC,0CAapD;AAED;;;;;;GAMG;AACH,QAAA,MAAM,UAAU,GAAsC,CAAC,SAAS,WAAW,0IAmBzE,CAAA;AAEF,QAAA,MAAM,UAAU,GAAsC,CAAC,SAAS,WAAW,4IAezE,CAAA;AAEF,YAAY,EAAE,QAAQ,EAAE,CAAA;AACxB,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAA"}