@bjornpagen/bumbledb 0.1.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.
- package/LICENSE +12 -0
- package/README.md +84 -0
- package/dist/brand.d.ts +59 -0
- package/dist/brand.d.ts.map +1 -0
- package/dist/brand.js +47 -0
- package/dist/brand.js.map +1 -0
- package/dist/closed.d.ts +97 -0
- package/dist/closed.d.ts.map +1 -0
- package/dist/closed.js +107 -0
- package/dist/closed.js.map +1 -0
- package/dist/count.d.ts +55 -0
- package/dist/count.d.ts.map +1 -0
- package/dist/count.js +92 -0
- package/dist/count.js.map +1 -0
- package/dist/db.d.ts +341 -0
- package/dist/db.d.ts.map +1 -0
- package/dist/db.js +1016 -0
- package/dist/db.js.map +1 -0
- package/dist/exhume.d.ts +130 -0
- package/dist/exhume.d.ts.map +1 -0
- package/dist/exhume.js +145 -0
- package/dist/exhume.js.map +1 -0
- package/dist/face.d.ts +91 -0
- package/dist/face.d.ts.map +1 -0
- package/dist/face.js +69 -0
- package/dist/face.js.map +1 -0
- package/dist/fields.d.ts +187 -0
- package/dist/fields.d.ts.map +1 -0
- package/dist/fields.js +204 -0
- package/dist/fields.js.map +1 -0
- package/dist/index.d.ts +49 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +31 -0
- package/dist/index.js.map +1 -0
- package/dist/lower.d.ts +34 -0
- package/dist/lower.d.ts.map +1 -0
- package/dist/lower.js +105 -0
- package/dist/lower.js.map +1 -0
- package/dist/marshal.d.ts +79 -0
- package/dist/marshal.d.ts.map +1 -0
- package/dist/marshal.js +167 -0
- package/dist/marshal.js.map +1 -0
- package/dist/native.d.ts +532 -0
- package/dist/native.d.ts.map +1 -0
- package/dist/native.js +64 -0
- package/dist/native.js.map +1 -0
- package/dist/query/atom.d.ts +285 -0
- package/dist/query/atom.d.ts.map +1 -0
- package/dist/query/atom.js +281 -0
- package/dist/query/atom.js.map +1 -0
- package/dist/query/lower.d.ts +145 -0
- package/dist/query/lower.d.ts.map +1 -0
- package/dist/query/lower.js +604 -0
- package/dist/query/lower.js.map +1 -0
- package/dist/query/predicate.d.ts +101 -0
- package/dist/query/predicate.d.ts.map +1 -0
- package/dist/query/predicate.js +85 -0
- package/dist/query/predicate.js.map +1 -0
- package/dist/query/run.d.ts +30 -0
- package/dist/query/run.d.ts.map +1 -0
- package/dist/query/run.js +94 -0
- package/dist/query/run.js.map +1 -0
- package/dist/query/scope.d.ts +168 -0
- package/dist/query/scope.d.ts.map +1 -0
- package/dist/query/scope.js +134 -0
- package/dist/query/scope.js.map +1 -0
- package/dist/query/select.d.ts +106 -0
- package/dist/query/select.d.ts.map +1 -0
- package/dist/query/select.js +69 -0
- package/dist/query/select.js.map +1 -0
- package/dist/relation.d.ts +120 -0
- package/dist/relation.d.ts.map +1 -0
- package/dist/relation.js +108 -0
- package/dist/relation.js.map +1 -0
- package/dist/schema.d.ts +50 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +235 -0
- package/dist/schema.js.map +1 -0
- package/dist/spec.d.ts +218 -0
- package/dist/spec.d.ts.map +1 -0
- package/dist/spec.js +154 -0
- package/dist/spec.js.map +1 -0
- package/dist/statements.d.ts +91 -0
- package/dist/statements.d.ts.map +1 -0
- package/dist/statements.js +101 -0
- package/dist/statements.js.map +1 -0
- package/package.json +66 -0
- package/src/brand.ts +82 -0
- package/src/closed.ts +228 -0
- package/src/count.ts +117 -0
- package/src/db.ts +1519 -0
- package/src/exhume.ts +243 -0
- package/src/face.ts +161 -0
- package/src/fields.ts +385 -0
- package/src/index.ts +185 -0
- package/src/lower.ts +118 -0
- package/src/marshal.ts +220 -0
- package/src/native.ts +576 -0
- package/src/query/atom.ts +556 -0
- package/src/query/lower.ts +855 -0
- package/src/query/predicate.ts +195 -0
- package/src/query/run.ts +106 -0
- package/src/query/scope.ts +301 -0
- package/src/query/select.ts +140 -0
- package/src/relation.ts +252 -0
- package/src/schema.ts +297 -0
- package/src/spec.ts +325 -0
- package/src/statements.ts +148 -0
package/dist/db.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
|
package/dist/exhume.d.ts
ADDED
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The exhume surface — the SDK's ONE schema-independent read path
|
|
3
|
+
* (docs/course-serialization/prd-02-sdk-exhume-surface.md; engine
|
|
4
|
+
* 70-api.md § exhume): a read-only, theory-less open returning the store's
|
|
5
|
+
* SELF-DESCRIBED relation shapes and raw facts by relation name. The
|
|
6
|
+
* sighting it exists for: a run store whose creating schema has since
|
|
7
|
+
* evolved — the record outlives the schema, and exhume is how the record
|
|
8
|
+
* is read back for rebirth (exhume the old store, create the successor
|
|
9
|
+
* under the new theory, copy by NAME, re-derive).
|
|
10
|
+
*
|
|
11
|
+
* DELIBERATELY UNTYPED: no branded type appears anywhere on this surface.
|
|
12
|
+
* The caller's schema is the wrong theory for an exhumed store BY
|
|
13
|
+
* DEFINITION (a store the current theory could open would never need
|
|
14
|
+
* exhuming), so every value crosses as its plain natural JS form and every
|
|
15
|
+
* fact is keyed by field NAME. The SDK never reconstructs a `Schema` value
|
|
16
|
+
* from the descriptor — that inverse mapping is deliberately out of scope;
|
|
17
|
+
* the rebirth tool keys by name.
|
|
18
|
+
*
|
|
19
|
+
* ZERO CLOSABLES: no value here carries a close, dispose, or release
|
|
20
|
+
* spelling. The engine-side handle (and the store's exclusive advisory
|
|
21
|
+
* lock) is reclaimed when the `Exhumed` value is garbage-collected —
|
|
22
|
+
* reclamation only, never correctness: the store is never written through
|
|
23
|
+
* this surface, so there is nothing to flush.
|
|
24
|
+
*/
|
|
25
|
+
import type { FactValue } from "#native.ts";
|
|
26
|
+
import type { ValueTypeSpec } from "#spec.ts";
|
|
27
|
+
/**
|
|
28
|
+
* The typed `descriptorMissing` refusal: the store predates self-describing
|
|
29
|
+
* stores and has not been adopted. The remedy is in the message — one
|
|
30
|
+
* fingerprint-matching `Db.open` under the creating schema back-fills the
|
|
31
|
+
* descriptor (engine 50-storage.md § the `_meta` block) and the store is
|
|
32
|
+
* self-describing forever. Match with `errors.is`.
|
|
33
|
+
*/
|
|
34
|
+
declare const ErrExhumeNoDescriptor: Error;
|
|
35
|
+
/**
|
|
36
|
+
* The typed `formatMismatch` refusal: the store's on-disk format version is
|
|
37
|
+
* not this engine's (no migration path exists, as everywhere). Match with
|
|
38
|
+
* `errors.is`.
|
|
39
|
+
*/
|
|
40
|
+
declare const ErrExhumeFormatMismatch: Error;
|
|
41
|
+
/**
|
|
42
|
+
* The typed `corruption` refusal: the persisted descriptor fails its
|
|
43
|
+
* integrity gates (the stored bytes hash to something other than the stored
|
|
44
|
+
* fingerprint, or the bytes do not decode and re-encode faithfully). Match
|
|
45
|
+
* with `errors.is`.
|
|
46
|
+
*/
|
|
47
|
+
declare const ErrExhumeCorruption: Error;
|
|
48
|
+
/**
|
|
49
|
+
* One exhumed fact as a plain name-keyed record of natural JS values —
|
|
50
|
+
* deliberately untyped (module doc): `bigint` for u64/i64, `string` for
|
|
51
|
+
* str, `boolean` for bool, `Uint8Array` for bytes<N>, a `{ start, end }`
|
|
52
|
+
* bigint pair for intervals. Closed-relation rows open with the synthetic
|
|
53
|
+
* `id` field, exactly as the descriptor's sealed field list declares.
|
|
54
|
+
*/
|
|
55
|
+
type ExhumedFact = Readonly<Record<string, FactValue>>;
|
|
56
|
+
/**
|
|
57
|
+
* One field of an exhumed relation, exactly as the store's creator declared
|
|
58
|
+
* it: the name and the structural type tag (byte width on `fixedBytes`,
|
|
59
|
+
* element and optional width on `interval`).
|
|
60
|
+
*/
|
|
61
|
+
interface ExhumedField {
|
|
62
|
+
readonly name: string;
|
|
63
|
+
readonly valueType: ValueTypeSpec;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* One ground axiom of an exhumed closed relation: the handle (the row's
|
|
67
|
+
* identity, never a column), the declaration-order row id, and the declared
|
|
68
|
+
* payload columns by name.
|
|
69
|
+
*/
|
|
70
|
+
interface ExhumedAxiom {
|
|
71
|
+
readonly handle: string;
|
|
72
|
+
readonly id: bigint;
|
|
73
|
+
readonly values: ExhumedFact;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* One relation of an exhumed store: the name, the SEALED field list in
|
|
77
|
+
* declaration order (a closed relation opens with the synthetic (`id`,
|
|
78
|
+
* u64) handle field), and — exactly on closed relations — the roster of
|
|
79
|
+
* ground axioms. Scan rows come back in this field order, so pairing a
|
|
80
|
+
* row's positions against `fields` is the name-keyed reading `scan`
|
|
81
|
+
* performs.
|
|
82
|
+
*/
|
|
83
|
+
interface ExhumedRelation {
|
|
84
|
+
readonly name: string;
|
|
85
|
+
readonly fields: readonly ExhumedField[];
|
|
86
|
+
readonly roster: readonly ExhumedAxiom[] | undefined;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* The exhumed store's schema as declared, decoded from the store's own
|
|
90
|
+
* persisted descriptor: relations in engine-id order (declaration order
|
|
91
|
+
* mints every id), each with its ordered field descriptions and closed
|
|
92
|
+
* roster — enough for a caller to key facts by name and re-insert them
|
|
93
|
+
* into a differently-fingerprinted successor store. No branded type
|
|
94
|
+
* appears here (module doc: exhumed data is deliberately untyped).
|
|
95
|
+
*/
|
|
96
|
+
interface ExhumedDescriptor {
|
|
97
|
+
readonly relations: readonly ExhumedRelation[];
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* One exhumed store: the self-described relation shapes and the raw facts
|
|
101
|
+
* by relation name. Read-only by construction — no write verb, no prepare
|
|
102
|
+
* verb, no close (zero closables; the engine handle is GC-reclaimed).
|
|
103
|
+
*/
|
|
104
|
+
interface Exhumed {
|
|
105
|
+
/** The store's own persisted schema, as its creator declared it. */
|
|
106
|
+
readonly descriptor: ExhumedDescriptor;
|
|
107
|
+
/**
|
|
108
|
+
* Full-relation export in row-id order, each row decoded per the
|
|
109
|
+
* STORED descriptor to a name-keyed record of natural values (str
|
|
110
|
+
* resolved through the engine's `_dict` before crossing; a closed
|
|
111
|
+
* relation scans its sealed roster). Each call reads one consistent
|
|
112
|
+
* snapshot. An unknown relation name is a typed error — the
|
|
113
|
+
* descriptor is the caller's roster.
|
|
114
|
+
*/
|
|
115
|
+
scan(relation: string): readonly ExhumedFact[];
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Opens one exhumed store at an ALREADY-CANONICAL path (`Db.exhume` is the
|
|
119
|
+
* public spelling — the path law lives in db.ts beside `open`/`create`).
|
|
120
|
+
* The bridge's three domain refusals become the typed error constants
|
|
121
|
+
* ({@link ErrExhumeNoDescriptor}, {@link ErrExhumeFormatMismatch},
|
|
122
|
+
* {@link ErrExhumeCorruption}), each carrying the engine's message in its
|
|
123
|
+
* wrap. The returned value is NOT cached: exhume is a forensic read, and
|
|
124
|
+
* caching would pin the store's exclusive lock for the process's life —
|
|
125
|
+
* GC reclamation is the whole lifecycle.
|
|
126
|
+
*/
|
|
127
|
+
declare function exhumeStore(canonical: string): Exhumed;
|
|
128
|
+
export type { Exhumed, ExhumedAxiom, ExhumedDescriptor, ExhumedFact, ExhumedField, ExhumedRelation };
|
|
129
|
+
export { ErrExhumeCorruption, ErrExhumeFormatMismatch, ErrExhumeNoDescriptor, exhumeStore };
|
|
130
|
+
//# sourceMappingURL=exhume.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exhume.d.ts","sourceRoot":"","sources":["../src/exhume.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAY,MAAM,YAAY,CAAA;AAErD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAE7C;;;;;;GAMG;AACH,QAAA,MAAM,qBAAqB,OAE1B,CAAA;AAED;;;;GAIG;AACH,QAAA,MAAM,uBAAuB,OAE5B,CAAA;AAED;;;;;GAKG;AACH,QAAA,MAAM,mBAAmB,OAA2F,CAAA;AAEpH;;;;;;GAMG;AACH,KAAK,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA;AAEtD;;;;GAIG;AACH,UAAU,YAAY;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAA;CACjC;AAED;;;;GAIG;AACH,UAAU,YAAY;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAC5B;AAED;;;;;;;GAOG;AACH,UAAU,eAAe;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAA;IACxC,QAAQ,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,CAAA;CACpD;AAED;;;;;;;GAOG;AACH,UAAU,iBAAiB;IAC1B,QAAQ,CAAC,SAAS,EAAE,SAAS,eAAe,EAAE,CAAA;CAC9C;AAED;;;;GAIG;AACH,UAAU,OAAO;IAChB,oEAAoE;IACpE,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAA;IACtC;;;;;;;OAOG;IACH,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,WAAW,EAAE,CAAA;CAC9C;AA6CD;;;;;;;;;GASG;AACH,iBAAS,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAqD/C;AAED,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,CAAA;AACpG,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,WAAW,EAAE,CAAA"}
|
package/dist/exhume.js
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The exhume surface — the SDK's ONE schema-independent read path
|
|
3
|
+
* (docs/course-serialization/prd-02-sdk-exhume-surface.md; engine
|
|
4
|
+
* 70-api.md § exhume): a read-only, theory-less open returning the store's
|
|
5
|
+
* SELF-DESCRIBED relation shapes and raw facts by relation name. The
|
|
6
|
+
* sighting it exists for: a run store whose creating schema has since
|
|
7
|
+
* evolved — the record outlives the schema, and exhume is how the record
|
|
8
|
+
* is read back for rebirth (exhume the old store, create the successor
|
|
9
|
+
* under the new theory, copy by NAME, re-derive).
|
|
10
|
+
*
|
|
11
|
+
* DELIBERATELY UNTYPED: no branded type appears anywhere on this surface.
|
|
12
|
+
* The caller's schema is the wrong theory for an exhumed store BY
|
|
13
|
+
* DEFINITION (a store the current theory could open would never need
|
|
14
|
+
* exhuming), so every value crosses as its plain natural JS form and every
|
|
15
|
+
* fact is keyed by field NAME. The SDK never reconstructs a `Schema` value
|
|
16
|
+
* from the descriptor — that inverse mapping is deliberately out of scope;
|
|
17
|
+
* the rebirth tool keys by name.
|
|
18
|
+
*
|
|
19
|
+
* ZERO CLOSABLES: no value here carries a close, dispose, or release
|
|
20
|
+
* spelling. The engine-side handle (and the store's exclusive advisory
|
|
21
|
+
* lock) is reclaimed when the `Exhumed` value is garbage-collected —
|
|
22
|
+
* reclamation only, never correctness: the store is never written through
|
|
23
|
+
* this surface, so there is nothing to flush.
|
|
24
|
+
*/
|
|
25
|
+
import * as errors from "@superbuilders/errors";
|
|
26
|
+
import { native } from "#native.ts";
|
|
27
|
+
/**
|
|
28
|
+
* The typed `descriptorMissing` refusal: the store predates self-describing
|
|
29
|
+
* stores and has not been adopted. The remedy is in the message — one
|
|
30
|
+
* fingerprint-matching `Db.open` under the creating schema back-fills the
|
|
31
|
+
* descriptor (engine 50-storage.md § the `_meta` block) and the store is
|
|
32
|
+
* self-describing forever. Match with `errors.is`.
|
|
33
|
+
*/
|
|
34
|
+
const ErrExhumeNoDescriptor = errors.new("bumbledb exhume: the store carries no schema descriptor (not yet adopted) — open it once under its creating schema (one fingerprint-matching Db.open back-fills the descriptor; engine 50-storage.md)");
|
|
35
|
+
/**
|
|
36
|
+
* The typed `formatMismatch` refusal: the store's on-disk format version is
|
|
37
|
+
* not this engine's (no migration path exists, as everywhere). Match with
|
|
38
|
+
* `errors.is`.
|
|
39
|
+
*/
|
|
40
|
+
const ErrExhumeFormatMismatch = errors.new("bumbledb exhume: storage format version mismatch — the store was written by a different engine format");
|
|
41
|
+
/**
|
|
42
|
+
* The typed `corruption` refusal: the persisted descriptor fails its
|
|
43
|
+
* integrity gates (the stored bytes hash to something other than the stored
|
|
44
|
+
* fingerprint, or the bytes do not decode and re-encode faithfully). Match
|
|
45
|
+
* with `errors.is`.
|
|
46
|
+
*/
|
|
47
|
+
const ErrExhumeCorruption = errors.new("bumbledb exhume: the persisted schema descriptor fails its integrity gates");
|
|
48
|
+
/**
|
|
49
|
+
* The bridge guard (db.ts's twin over this module's calls): runs one
|
|
50
|
+
* native call and wraps anything it throws, so marshal-shape and
|
|
51
|
+
* handle-lifecycle refusals cross as genuine typed failures, never bare
|
|
52
|
+
* foreign errors.
|
|
53
|
+
*/
|
|
54
|
+
function bridged(context, run) {
|
|
55
|
+
const result = errors.trySync(run);
|
|
56
|
+
if (result.error) {
|
|
57
|
+
throw errors.wrap(result.error, context);
|
|
58
|
+
}
|
|
59
|
+
return result.data;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Shapes the bridge's manifest rendering of the stored descriptor into the
|
|
63
|
+
* SDK's {@link ExhumedDescriptor}: same relations in the same engine-id
|
|
64
|
+
* order, extension rows re-keyed by column name. Pure reshaping — no
|
|
65
|
+
* re-validation of engine-decoded values happens here (the bridge stays
|
|
66
|
+
* dumb and so does this).
|
|
67
|
+
*/
|
|
68
|
+
function descriptorOf(manifest) {
|
|
69
|
+
const relations = manifest.relations.map(function relationOf(relation) {
|
|
70
|
+
const fields = relation.fields.map(function fieldOf(field) {
|
|
71
|
+
return Object.freeze({ name: field.name, valueType: field.valueType });
|
|
72
|
+
});
|
|
73
|
+
let roster;
|
|
74
|
+
if (relation.extension !== undefined) {
|
|
75
|
+
roster = Object.freeze(relation.extension.map(function axiomOf(row) {
|
|
76
|
+
const values = {};
|
|
77
|
+
for (const cell of row.values) {
|
|
78
|
+
values[cell.name] = cell.value;
|
|
79
|
+
}
|
|
80
|
+
return Object.freeze({ handle: row.handle, id: row.id, values: Object.freeze(values) });
|
|
81
|
+
}));
|
|
82
|
+
}
|
|
83
|
+
return Object.freeze({ name: relation.name, fields: Object.freeze(fields), roster });
|
|
84
|
+
});
|
|
85
|
+
return Object.freeze({ relations: Object.freeze(relations) });
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Opens one exhumed store at an ALREADY-CANONICAL path (`Db.exhume` is the
|
|
89
|
+
* public spelling — the path law lives in db.ts beside `open`/`create`).
|
|
90
|
+
* The bridge's three domain refusals become the typed error constants
|
|
91
|
+
* ({@link ErrExhumeNoDescriptor}, {@link ErrExhumeFormatMismatch},
|
|
92
|
+
* {@link ErrExhumeCorruption}), each carrying the engine's message in its
|
|
93
|
+
* wrap. The returned value is NOT cached: exhume is a forensic read, and
|
|
94
|
+
* caching would pin the store's exclusive lock for the process's life —
|
|
95
|
+
* GC reclamation is the whole lifecycle.
|
|
96
|
+
*/
|
|
97
|
+
function exhumeStore(canonical) {
|
|
98
|
+
const outcome = bridged(`exhume bumbledb store at ${canonical}`, function callExhume() {
|
|
99
|
+
return native.dbExhume(canonical);
|
|
100
|
+
});
|
|
101
|
+
if (!outcome.ok) {
|
|
102
|
+
switch (outcome.kind) {
|
|
103
|
+
case "descriptorMissing":
|
|
104
|
+
throw errors.wrap(ErrExhumeNoDescriptor, `exhume ${canonical}: ${outcome.message}`);
|
|
105
|
+
case "formatMismatch":
|
|
106
|
+
throw errors.wrap(ErrExhumeFormatMismatch, `exhume ${canonical}: ${outcome.message}`);
|
|
107
|
+
case "corruption":
|
|
108
|
+
throw errors.wrap(ErrExhumeCorruption, `exhume ${canonical}: ${outcome.message}`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
const handle = outcome.exhume;
|
|
112
|
+
const manifest = bridged("read bumbledb exhumed descriptor", function callDescriptor() {
|
|
113
|
+
return native.exhumeDescriptor(handle);
|
|
114
|
+
});
|
|
115
|
+
const descriptor = descriptorOf(manifest);
|
|
116
|
+
const fieldNames = new Map();
|
|
117
|
+
for (const relation of descriptor.relations) {
|
|
118
|
+
fieldNames.set(relation.name, relation.fields.map(function nameOf(field) {
|
|
119
|
+
return field.name;
|
|
120
|
+
}));
|
|
121
|
+
}
|
|
122
|
+
function scan(relation) {
|
|
123
|
+
const names = fieldNames.get(relation);
|
|
124
|
+
if (names === undefined) {
|
|
125
|
+
throw errors.new(`bumbledb exhume: the store's descriptor declares no relation ${relation}`);
|
|
126
|
+
}
|
|
127
|
+
const rows = bridged(`scan bumbledb exhumed relation ${relation}`, function callScan() {
|
|
128
|
+
return native.exhumeScan(handle, relation);
|
|
129
|
+
});
|
|
130
|
+
return Object.freeze(rows.map(function factOf(row) {
|
|
131
|
+
const fact = {};
|
|
132
|
+
names.forEach(function pair(name, index) {
|
|
133
|
+
const cell = row[index];
|
|
134
|
+
if (cell === undefined) {
|
|
135
|
+
throw errors.new(`bumbledb exhume drift: relation ${relation} row has no value at position ${index} (${name})`);
|
|
136
|
+
}
|
|
137
|
+
fact[name] = cell;
|
|
138
|
+
});
|
|
139
|
+
return Object.freeze(fact);
|
|
140
|
+
}));
|
|
141
|
+
}
|
|
142
|
+
return Object.freeze({ descriptor, scan });
|
|
143
|
+
}
|
|
144
|
+
export { ErrExhumeCorruption, ErrExhumeFormatMismatch, ErrExhumeNoDescriptor, exhumeStore };
|
|
145
|
+
//# sourceMappingURL=exhume.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exhume.js","sourceRoot":"","sources":["../src/exhume.ts"],"names":[],"mappings":"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"}
|
package/dist/face.d.ts
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Faces — the projection-with-selection value both containments and
|
|
3
|
+
* windows consume: `on(Account, "holder")`, `on(Account.where({ kind:
|
|
4
|
+
* Kind.Savings }), "id")`, `on(Kind, "id")` (a closed relation's sealed
|
|
5
|
+
* shape opens with its synthetic `id`). Projection is positional: tuple
|
|
6
|
+
* order is preserved in the type, and the statement constructors pair the
|
|
7
|
+
* two sides' tuples by arity (`SameArity`).
|
|
8
|
+
*/
|
|
9
|
+
import type { AnyClosed } from "#closed.ts";
|
|
10
|
+
import type { AnyRelation, AnySelected, SelectionBinding } from "#relation.ts";
|
|
11
|
+
/**
|
|
12
|
+
* A disjunctive literal set for a selection binding — `field == {A, B}`.
|
|
13
|
+
* The signature of {@link oneOf} demands two leading literals, so the
|
|
14
|
+
* one-element set (banned: it is the bare literal) and the empty set
|
|
15
|
+
* (banned: it selects nothing) are unwritable.
|
|
16
|
+
*/
|
|
17
|
+
interface OneOf<V> {
|
|
18
|
+
readonly literals: readonly [V, V, ...V[]];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Constructs a literal set (read disjunctively) for a `where()` binding.
|
|
22
|
+
* Two leading arguments by signature: the degenerate sets have no spelling
|
|
23
|
+
* (the canonical-utterance law, `docs/architecture/70-api.md`).
|
|
24
|
+
*/
|
|
25
|
+
declare function oneOf<V>(first: V, second: V, ...rest: V[]): OneOf<V>;
|
|
26
|
+
/** The relation a face projects from — ordinary or closed. */
|
|
27
|
+
type FaceOwner = AnyRelation | AnyClosed;
|
|
28
|
+
/** A face's runtime description: owner, π (written order), σ (resolved bindings). */
|
|
29
|
+
interface FaceData {
|
|
30
|
+
readonly owner: FaceOwner;
|
|
31
|
+
readonly projection: readonly string[];
|
|
32
|
+
readonly selection: readonly SelectionBinding[];
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* A face value. `P` is the projection tuple as written — the statement
|
|
36
|
+
* constructors read its length for positional-arity pairing.
|
|
37
|
+
*/
|
|
38
|
+
interface Face<P extends readonly string[]> {
|
|
39
|
+
readonly projection: P;
|
|
40
|
+
readonly data: FaceData;
|
|
41
|
+
}
|
|
42
|
+
/** Any face value, whatever its projection. */
|
|
43
|
+
type AnyFace = Face<readonly string[]>;
|
|
44
|
+
/** What `on()` accepts: a relation, a selected relation, or a closed relation. */
|
|
45
|
+
type FaceSource = AnyRelation | AnyClosed | AnySelected;
|
|
46
|
+
/**
|
|
47
|
+
* The field names a face over `S` may project: a relation's declared
|
|
48
|
+
* fields; a selected relation's underlying fields; a closed relation's
|
|
49
|
+
* SEALED shape — the synthetic `id` plus its declared payload columns
|
|
50
|
+
* (`docs/architecture/70-api.md`: statement field names address the sealed
|
|
51
|
+
* shape).
|
|
52
|
+
*/
|
|
53
|
+
type FaceFields<S extends FaceSource> = S extends AnySelected ? keyof S["relation"]["fields"] & string : S extends AnyRelation ? keyof S["fields"] & string : S extends {
|
|
54
|
+
readonly axioms: Readonly<Record<string, infer Row>>;
|
|
55
|
+
} ? "id" | (keyof Row & string) : never;
|
|
56
|
+
/** The projection arity of a face. */
|
|
57
|
+
type Arity<F extends AnyFace> = F["projection"]["length"];
|
|
58
|
+
/**
|
|
59
|
+
* The legible arity-mismatch verdict: when the two faces of a containment,
|
|
60
|
+
* bijection, or window project different numbers of fields, this type is
|
|
61
|
+
* intersected into the second face's parameter and names both arities.
|
|
62
|
+
*/
|
|
63
|
+
interface FaceArityMismatch<Left, Right> {
|
|
64
|
+
readonly "face arity mismatch — positional pairing requires both sides to project equally many fields": readonly [
|
|
65
|
+
Left,
|
|
66
|
+
Right
|
|
67
|
+
];
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Resolves to `unknown` (a no-op intersection) when the two faces project
|
|
71
|
+
* equally many fields, and to {@link FaceArityMismatch} otherwise — the
|
|
72
|
+
* named helper the statement constructors constrain with.
|
|
73
|
+
*/
|
|
74
|
+
type SameArity<A extends AnyFace, B extends AnyFace> = Arity<A> extends Arity<B> ? Arity<B> extends Arity<A> ? unknown : FaceArityMismatch<Arity<A>, Arity<B>> : FaceArityMismatch<Arity<A>, Arity<B>>;
|
|
75
|
+
/**
|
|
76
|
+
* Projects a face: `on(Account, "holder")`, `on(Account.where({...}),
|
|
77
|
+
* "id")`. Field names are typechecked against the source; tuple order is
|
|
78
|
+
* preserved (positional pairing with the other side, macro parity). At
|
|
79
|
+
* least one field by signature — an empty projection has no meaning in the
|
|
80
|
+
* statement grammar.
|
|
81
|
+
*/
|
|
82
|
+
declare function on<S extends FaceSource, const P extends readonly [FaceFields<S>, ...FaceFields<S>[]]>(source: S, ...projection: P): Face<P>;
|
|
83
|
+
/**
|
|
84
|
+
* Renders one face in the exact macro notation — `Name(p1, p2 | f == lit,
|
|
85
|
+
* g == {a, b})`, the selection block only when σ is nonempty (the engine
|
|
86
|
+
* renderer's own shape, `schema/render.rs`).
|
|
87
|
+
*/
|
|
88
|
+
declare function renderFace(face: FaceData): string;
|
|
89
|
+
export type { AnyFace, Arity, Face, FaceArityMismatch, FaceData, FaceFields, FaceOwner, FaceSource, OneOf, SameArity };
|
|
90
|
+
export { on, oneOf, renderFace };
|
|
91
|
+
//# sourceMappingURL=face.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"face.d.ts","sourceRoot":"","sources":["../src/face.ts"],"names":[],"mappings":"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"}
|
package/dist/face.js
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Faces — the projection-with-selection value both containments and
|
|
3
|
+
* windows consume: `on(Account, "holder")`, `on(Account.where({ kind:
|
|
4
|
+
* Kind.Savings }), "id")`, `on(Kind, "id")` (a closed relation's sealed
|
|
5
|
+
* shape opens with its synthetic `id`). Projection is positional: tuple
|
|
6
|
+
* order is preserved in the type, and the statement constructors pair the
|
|
7
|
+
* two sides' tuples by arity (`SameArity`).
|
|
8
|
+
*/
|
|
9
|
+
import { renderLiteralSet } from "#spec.ts";
|
|
10
|
+
/** The empty σ of a selection-free face, shared by every bare projection. */
|
|
11
|
+
const emptySelection = Object.freeze([]);
|
|
12
|
+
/**
|
|
13
|
+
* Splits a face source into its owner and σ: a selected relation carries
|
|
14
|
+
* its own bindings (`relation` is the discriminant — the property exists on
|
|
15
|
+
* no relation or closed value, and `closed()` reserves the name against
|
|
16
|
+
* handle collisions); a bare relation or closed relation carries none.
|
|
17
|
+
*/
|
|
18
|
+
function faceParts(source) {
|
|
19
|
+
if ("relation" in source) {
|
|
20
|
+
return { owner: source.relation, selection: source.selection };
|
|
21
|
+
}
|
|
22
|
+
return { owner: source, selection: emptySelection };
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Constructs a literal set (read disjunctively) for a `where()` binding.
|
|
26
|
+
* Two leading arguments by signature: the degenerate sets have no spelling
|
|
27
|
+
* (the canonical-utterance law, `docs/architecture/70-api.md`).
|
|
28
|
+
*/
|
|
29
|
+
function oneOf(first, second, ...rest) {
|
|
30
|
+
const literals = [first, second, ...rest];
|
|
31
|
+
Object.freeze(literals);
|
|
32
|
+
return Object.freeze({ literals });
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Projects a face: `on(Account, "holder")`, `on(Account.where({...}),
|
|
36
|
+
* "id")`. Field names are typechecked against the source; tuple order is
|
|
37
|
+
* preserved (positional pairing with the other side, macro parity). At
|
|
38
|
+
* least one field by signature — an empty projection has no meaning in the
|
|
39
|
+
* statement grammar.
|
|
40
|
+
*/
|
|
41
|
+
function on(source, ...projection) {
|
|
42
|
+
const parts = faceParts(source);
|
|
43
|
+
Object.freeze(projection);
|
|
44
|
+
const data = Object.freeze({
|
|
45
|
+
owner: parts.owner,
|
|
46
|
+
projection,
|
|
47
|
+
selection: parts.selection
|
|
48
|
+
});
|
|
49
|
+
return Object.freeze({ projection, data });
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Renders one face in the exact macro notation — `Name(p1, p2 | f == lit,
|
|
53
|
+
* g == {a, b})`, the selection block only when σ is nonempty (the engine
|
|
54
|
+
* renderer's own shape, `schema/render.rs`).
|
|
55
|
+
*/
|
|
56
|
+
function renderFace(face) {
|
|
57
|
+
const projection = face.projection.join(", ");
|
|
58
|
+
if (face.selection.length === 0) {
|
|
59
|
+
return `${face.owner.name}(${projection})`;
|
|
60
|
+
}
|
|
61
|
+
const bindings = face.selection
|
|
62
|
+
.map(function renderBinding(binding) {
|
|
63
|
+
return `${binding.field} == ${renderLiteralSet(binding.set)}`;
|
|
64
|
+
})
|
|
65
|
+
.join(", ");
|
|
66
|
+
return `${face.owner.name}(${projection} | ${bindings})`;
|
|
67
|
+
}
|
|
68
|
+
export { on, oneOf, renderFace };
|
|
69
|
+
//# sourceMappingURL=face.js.map
|
package/dist/face.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"face.js","sourceRoot":"","sources":["../src/face.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAE3C,6EAA6E;AAC7E,MAAM,cAAc,GAAgC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AAErE;;;;;GAKG;AACH,SAAS,SAAS,CAAC,MAAkB;IAIpC,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;QAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAA;IAC/D,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,CAAA;AACpD,CAAC;AAYD;;;;GAIG;AACH,SAAS,KAAK,CAAI,KAAQ,EAAE,MAAS,EAAE,GAAG,IAAS;IAClD,MAAM,QAAQ,GAA4B,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAA;IAClE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IACvB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;AACnC,CAAC;AAqED;;;;;;GAMG;AACH,SAAS,EAAE,CACV,MAAS,EACT,GAAG,UAAa;IAEhB,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;IAC/B,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACzB,MAAM,IAAI,GAAa,MAAM,CAAC,MAAM,CAAC;QACpC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,UAAU;QACV,SAAS,EAAE,KAAK,CAAC,SAAS;KAC1B,CAAC,CAAA;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;AAC3C,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU,CAAC,IAAc;IACjC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC7C,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,UAAU,GAAG,CAAA;IAC3C,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS;SAC7B,GAAG,CAAC,SAAS,aAAa,CAAC,OAAO;QAClC,OAAO,GAAG,OAAO,CAAC,KAAK,OAAO,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAA;IAC9D,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAA;IACZ,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,UAAU,MAAM,QAAQ,GAAG,CAAA;AACzD,CAAC;AAGD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAA"}
|