@bjornpagen/bumbledb-log 0.20.0 → 0.20.2
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/dist/braids.d.ts +28 -0
- package/dist/braids.d.ts.map +1 -0
- package/{src/braids.ts → dist/braids.js} +22 -29
- package/dist/braids.js.map +1 -0
- package/dist/bytes.d.ts +26 -0
- package/dist/bytes.d.ts.map +1 -0
- package/dist/bytes.js +86 -0
- package/dist/bytes.js.map +1 -0
- package/dist/chain.d.ts +56 -0
- package/dist/chain.d.ts.map +1 -0
- package/dist/chain.js +137 -0
- package/dist/chain.js.map +1 -0
- package/dist/codec.d.ts +71 -0
- package/dist/codec.d.ts.map +1 -0
- package/dist/codec.js +179 -0
- package/dist/codec.js.map +1 -0
- package/dist/descriptor.d.ts +61 -0
- package/dist/descriptor.d.ts.map +1 -0
- package/dist/descriptor.js +160 -0
- package/dist/descriptor.js.map +1 -0
- package/dist/errors.d.ts +202 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +122 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/keys.d.ts +52 -0
- package/dist/keys.d.ts.map +1 -0
- package/dist/keys.js +166 -0
- package/dist/keys.js.map +1 -0
- package/dist/manifest.d.ts +42 -0
- package/dist/manifest.d.ts.map +1 -0
- package/dist/manifest.js +116 -0
- package/dist/manifest.js.map +1 -0
- package/dist/replica.d.ts +154 -0
- package/dist/replica.d.ts.map +1 -0
- package/dist/replica.js +820 -0
- package/dist/replica.js.map +1 -0
- package/dist/store-s3.d.ts +31 -0
- package/dist/store-s3.d.ts.map +1 -0
- package/dist/store-s3.js +299 -0
- package/dist/store-s3.js.map +1 -0
- package/dist/store.d.ts +129 -0
- package/dist/store.d.ts.map +1 -0
- package/dist/store.js +577 -0
- package/dist/store.js.map +1 -0
- package/dist/tenants.d.ts +56 -0
- package/dist/tenants.d.ts.map +1 -0
- package/dist/tenants.js +333 -0
- package/dist/tenants.js.map +1 -0
- package/dist/tilde-family.json +21 -0
- package/dist/vector.d.ts +31 -0
- package/dist/vector.d.ts.map +1 -0
- package/dist/vector.js +87 -0
- package/dist/vector.js.map +1 -0
- package/dist/writer.d.ts +106 -0
- package/dist/writer.d.ts.map +1 -0
- package/dist/writer.js +677 -0
- package/dist/writer.js.map +1 -0
- package/package.json +12 -7
- package/src/bytes.ts +0 -115
- package/src/chain.ts +0 -181
- package/src/codec.ts +0 -252
- package/src/descriptor.ts +0 -240
- package/src/errors.ts +0 -309
- package/src/index.ts +0 -57
- package/src/keys.ts +0 -218
- package/src/manifest.ts +0 -161
- package/src/replica.ts +0 -1061
- package/src/store-s3.ts +0 -377
- package/src/store.ts +0 -727
- package/src/tenants.ts +0 -414
- package/src/vector.ts +0 -103
- package/src/writer.ts +0 -977
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The replica: a local store that is a materialized view of the
|
|
3
|
+
* braids' prefixes, plus the loop that keeps it current. Disposable by
|
|
4
|
+
* construction — the sidecar is a floor cache with one wholeness
|
|
5
|
+
* check; recovery IS the catch-up loop (L10). Generation is a total
|
|
6
|
+
* function of the chain: Settled sums the vector, Pending is that sum
|
|
7
|
+
* plus one. A replica that finds no manifest refuses; only a writer
|
|
8
|
+
* births a store.
|
|
9
|
+
*/
|
|
10
|
+
import type { Db, Schema, SchemaRelations, WriteOutcome } from "@bjornpagen/bumbledb";
|
|
11
|
+
import type { Digest32 } from "./bytes.js";
|
|
12
|
+
import type { Chain, ChainEntry, Pending } from "./chain.js";
|
|
13
|
+
import type { Op } from "./codec.js";
|
|
14
|
+
import type { Braid, Descriptor } from "./descriptor.js";
|
|
15
|
+
import type { Generation } from "./keys.js";
|
|
16
|
+
import type { CheckpointFacts } from "./manifest.js";
|
|
17
|
+
import type { Etag, ObjectStore } from "./store.js";
|
|
18
|
+
declare const ZERO_HASH: Digest32;
|
|
19
|
+
type ReplicaState = {
|
|
20
|
+
readonly tag: "bootstrapped";
|
|
21
|
+
} | {
|
|
22
|
+
readonly tag: "checkpoint-seeded";
|
|
23
|
+
readonly catalog: Digest32;
|
|
24
|
+
} | {
|
|
25
|
+
readonly tag: "sidecar-resumed";
|
|
26
|
+
readonly floor: ReadonlyMap<Braid, Generation>;
|
|
27
|
+
};
|
|
28
|
+
type RefreshOutcome = {
|
|
29
|
+
readonly tag: "advanced";
|
|
30
|
+
readonly vector: ReadonlyMap<Braid, Generation>;
|
|
31
|
+
} | {
|
|
32
|
+
readonly tag: "wedged";
|
|
33
|
+
readonly braid: Braid;
|
|
34
|
+
readonly cause: string;
|
|
35
|
+
} | {
|
|
36
|
+
readonly tag: "reseed";
|
|
37
|
+
readonly cause: string;
|
|
38
|
+
} | {
|
|
39
|
+
readonly tag: "refused";
|
|
40
|
+
readonly detail: string;
|
|
41
|
+
};
|
|
42
|
+
/** The full waitFor sum: a wedged braid the target needs is an
|
|
43
|
+
* outcome, never an infinite poll. */
|
|
44
|
+
type Waited = {
|
|
45
|
+
readonly tag: "reached";
|
|
46
|
+
readonly vector: ReadonlyMap<Braid, Generation>;
|
|
47
|
+
} | {
|
|
48
|
+
readonly tag: "wedged";
|
|
49
|
+
readonly braid: Braid;
|
|
50
|
+
readonly cause: string;
|
|
51
|
+
} | {
|
|
52
|
+
readonly tag: "refused";
|
|
53
|
+
readonly detail: string;
|
|
54
|
+
};
|
|
55
|
+
interface OpenReplicaOptions<Rels extends SchemaRelations> {
|
|
56
|
+
readonly store: ObjectStore;
|
|
57
|
+
readonly prefix: string;
|
|
58
|
+
readonly dir: string;
|
|
59
|
+
readonly theory: Schema<Rels>;
|
|
60
|
+
}
|
|
61
|
+
interface Replica<Rels extends SchemaRelations> extends AsyncDisposable {
|
|
62
|
+
readonly db: Db<Rels>;
|
|
63
|
+
readonly vector: ReadonlyMap<Braid, Generation>;
|
|
64
|
+
refresh(braid?: Braid): Promise<ReadonlyMap<Braid, Generation>>;
|
|
65
|
+
waitFor(vector: ReadonlyMap<Braid, Generation>): Promise<Waited>;
|
|
66
|
+
}
|
|
67
|
+
interface Core<Rels extends SchemaRelations> {
|
|
68
|
+
readonly store: ObjectStore;
|
|
69
|
+
readonly prefix: string;
|
|
70
|
+
readonly dir: string;
|
|
71
|
+
readonly theory: Schema<Rels>;
|
|
72
|
+
readonly descriptor: Descriptor;
|
|
73
|
+
db: Db<Rels>;
|
|
74
|
+
/** Settled|Pending. Generation is chainGeneration(this.chain) — a
|
|
75
|
+
* total function of the sum. There is no pending Option beside the
|
|
76
|
+
* vector and no 0|1 addend a reader can skip (§30). */
|
|
77
|
+
chain: Chain;
|
|
78
|
+
manifestEtag: Etag | null;
|
|
79
|
+
checkpoint: CheckpointFacts | null;
|
|
80
|
+
checkpointDigest: Digest32 | null;
|
|
81
|
+
passes: number;
|
|
82
|
+
closed: boolean;
|
|
83
|
+
storeName: string;
|
|
84
|
+
gate: Promise<unknown>;
|
|
85
|
+
wedged: Map<Braid, string>;
|
|
86
|
+
provenance: ReplicaState;
|
|
87
|
+
}
|
|
88
|
+
declare function coreOf<Rels extends SchemaRelations>(replica: Replica<Rels>): Core<Rels>;
|
|
89
|
+
/** One asynchronous door per replica: refreshes, commits, and disposal serialize. */
|
|
90
|
+
declare function withGate<Rels extends SchemaRelations, R>(core: Core<Rels>, body: () => Promise<R>): Promise<R>;
|
|
91
|
+
declare function entriesOf<Rels extends SchemaRelations>(core: Core<Rels>): Map<Braid, ChainEntry>;
|
|
92
|
+
declare function chainEntry<Rels extends SchemaRelations>(core: Core<Rels>, braid: Braid): ChainEntry;
|
|
93
|
+
declare function generationOf<Rels extends SchemaRelations>(core: Core<Rels>): bigint;
|
|
94
|
+
/** Pending-arm payload: recorded ops and the batch header's timestamp
|
|
95
|
+
* ride on the batch, not a third Option beside the vector. Wire
|
|
96
|
+
* Pending is {braid,gen,bytes}; ops/ts are the in-memory fields of
|
|
97
|
+
* that arm (§30) — null on a batch adopted as bytes the seat has not
|
|
98
|
+
* decoded. */
|
|
99
|
+
type HeldBatch = Pending & {
|
|
100
|
+
readonly ops: readonly Op[] | null;
|
|
101
|
+
readonly ts: bigint | null;
|
|
102
|
+
};
|
|
103
|
+
declare function holdPending<Rels extends SchemaRelations>(core: Core<Rels>, batch: Pending, ops: readonly Op[] | null, ts: bigint | null): void;
|
|
104
|
+
declare function pendingOf<Rels extends SchemaRelations>(core: Core<Rels>): HeldBatch | null;
|
|
105
|
+
declare function persistSidecar<Rels extends SchemaRelations>(core: Core<Rels>): Promise<void>;
|
|
106
|
+
declare function clearPending<Rels extends SchemaRelations>(core: Core<Rels>): Promise<void>;
|
|
107
|
+
/** One `db.write` applying ops in listed order, rows in listed order.
|
|
108
|
+
* The positional row → named fact lift is the engine's `factOf` —
|
|
109
|
+
* closed-ref handles included. */
|
|
110
|
+
declare function applyOps<Rels extends SchemaRelations>(core: Core<Rels>, ops: readonly Op[]): WriteOutcome<Rels, number>;
|
|
111
|
+
/**
|
|
112
|
+
* The published checkpoint vector is the one floor: a slot at or
|
|
113
|
+
* below it is retired, and a create must not touch the store.
|
|
114
|
+
*/
|
|
115
|
+
declare function belowFloor<Rels extends SchemaRelations>(core: Core<Rels>, braid: Braid, slot: Generation): boolean;
|
|
116
|
+
/**
|
|
117
|
+
* Classification of a pending batch against occupant, store
|
|
118
|
+
* generation, and the floor. BelowFloor is published (`Clear`) — the
|
|
119
|
+
* slot is already in the trusted history, not a candidate to re-judge.
|
|
120
|
+
*/
|
|
121
|
+
type PendingFold = {
|
|
122
|
+
readonly tag: "ours";
|
|
123
|
+
} | {
|
|
124
|
+
readonly tag: "theirs-unapplied";
|
|
125
|
+
} | {
|
|
126
|
+
readonly tag: "theirs-applied";
|
|
127
|
+
} | {
|
|
128
|
+
readonly tag: "absent-unapplied";
|
|
129
|
+
} | {
|
|
130
|
+
readonly tag: "absent-applied";
|
|
131
|
+
} | {
|
|
132
|
+
readonly tag: "below-floor";
|
|
133
|
+
} | {
|
|
134
|
+
readonly tag: "phantom";
|
|
135
|
+
};
|
|
136
|
+
declare function foldPending(sum: bigint, generation: bigint, occupant: Uint8Array | null, pendingBytes: Uint8Array, covered: boolean): PendingFold;
|
|
137
|
+
/** The disposable law: the directory is cache, never truth. The local
|
|
138
|
+
* LMDB path rotates because the engine has no close verb — the old
|
|
139
|
+
* environment is left for GC while the fresh pull takes a new path.
|
|
140
|
+
* initializeStore writes Settled, so the open-identity is
|
|
141
|
+
* chainGeneration(core.chain) — there is no addend a reader can skip. */
|
|
142
|
+
declare function discardAndReopen<Rels extends SchemaRelations>(core: Core<Rels>): Promise<void>;
|
|
143
|
+
/**
|
|
144
|
+
* Re-addresses an applied-but-unpublished batch at the braid's current
|
|
145
|
+
* tip: fresh slot, `prev` citing the new predecessor, timestamp
|
|
146
|
+
* re-clamped — the ops are exactly the recorded ops the re-judgment
|
|
147
|
+
* just accepted. Publication itself retries on the next commit (60).
|
|
148
|
+
*/
|
|
149
|
+
declare function readdressPending<Rels extends SchemaRelations>(core: Core<Rels>, ops: readonly Op[], writerId: bigint): Promise<void>;
|
|
150
|
+
declare function maxBigint(a: bigint, b: bigint): bigint;
|
|
151
|
+
declare function openReplica<Rels extends SchemaRelations>(options: OpenReplicaOptions<Rels>): Promise<Replica<Rels>>;
|
|
152
|
+
export type { Core, OpenReplicaOptions, RefreshOutcome, Replica, Waited };
|
|
153
|
+
export { applyOps, belowFloor, chainEntry, clearPending, coreOf, discardAndReopen, entriesOf, foldPending, generationOf, holdPending, maxBigint, openReplica, pendingOf, persistSidecar, readdressPending, withGate, ZERO_HASH };
|
|
154
|
+
//# sourceMappingURL=replica.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replica.d.ts","sourceRoot":"","sources":["../src/replica.ts"],"names":[],"mappings":"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"}
|