@bjornpagen/bumbledb-log 0.20.2 → 1.0.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/README.md +275 -114
- package/dist/admin.d.ts +24 -0
- package/dist/admin.d.ts.map +1 -0
- package/dist/admin.js +12 -0
- package/dist/admin.js.map +1 -0
- package/dist/bridge.d.ts +30 -0
- package/dist/bridge.d.ts.map +1 -0
- package/dist/bridge.js +92 -0
- package/dist/bridge.js.map +1 -0
- package/dist/codes.d.ts +11 -0
- package/dist/codes.d.ts.map +1 -0
- package/dist/codes.js +53 -0
- package/dist/codes.js.map +1 -0
- package/dist/command.d.ts +21 -0
- package/dist/command.d.ts.map +1 -0
- package/dist/command.js +12 -0
- package/dist/command.js.map +1 -0
- package/dist/errors.d.ts +78 -197
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +144 -114
- package/dist/errors.js.map +1 -1
- package/dist/history.d.ts +22 -0
- package/dist/history.d.ts.map +1 -0
- package/dist/history.js +12 -0
- package/dist/history.js.map +1 -0
- package/dist/identity.d.ts +144 -0
- package/dist/identity.d.ts.map +1 -0
- package/dist/identity.js +223 -0
- package/dist/identity.js.map +1 -0
- package/dist/index.d.ts +24 -31
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -21
- package/dist/index.js.map +1 -1
- package/dist/machine.d.ts +151 -0
- package/dist/machine.d.ts.map +1 -0
- package/dist/machine.js +1128 -0
- package/dist/machine.js.map +1 -0
- package/dist/migration-ops.d.ts +20 -0
- package/dist/migration-ops.d.ts.map +1 -0
- package/dist/migration-ops.js +7 -0
- package/dist/migration-ops.js.map +1 -0
- package/dist/migrations/bin.d.ts +3 -0
- package/dist/migrations/bin.d.ts.map +1 -0
- package/dist/migrations/bin.js +43 -0
- package/dist/migrations/bin.js.map +1 -0
- package/dist/migrations/canonical.d.ts +40 -0
- package/dist/migrations/canonical.d.ts.map +1 -0
- package/dist/migrations/canonical.js +156 -0
- package/dist/migrations/canonical.js.map +1 -0
- package/dist/migrations/cli.d.ts +32 -0
- package/dist/migrations/cli.d.ts.map +1 -0
- package/dist/migrations/cli.js +147 -0
- package/dist/migrations/cli.js.map +1 -0
- package/dist/migrations/codec.d.ts +74 -0
- package/dist/migrations/codec.d.ts.map +1 -0
- package/dist/migrations/codec.js +2 -0
- package/dist/migrations/codec.js.map +1 -0
- package/dist/migrations/decode.d.ts +16 -0
- package/dist/migrations/decode.d.ts.map +1 -0
- package/dist/migrations/decode.js +302 -0
- package/dist/migrations/decode.js.map +1 -0
- package/dist/migrations/diff.d.ts +39 -0
- package/dist/migrations/diff.d.ts.map +1 -0
- package/dist/migrations/diff.js +385 -0
- package/dist/migrations/diff.js.map +1 -0
- package/dist/migrations/expr.d.ts +22 -0
- package/dist/migrations/expr.d.ts.map +1 -0
- package/dist/migrations/expr.js +228 -0
- package/dist/migrations/expr.js.map +1 -0
- package/dist/migrations/fail.d.ts +34 -0
- package/dist/migrations/fail.d.ts.map +1 -0
- package/dist/migrations/fail.js +69 -0
- package/dist/migrations/fail.js.map +1 -0
- package/dist/migrations/fsops.d.ts +37 -0
- package/dist/migrations/fsops.d.ts.map +1 -0
- package/dist/migrations/fsops.js +222 -0
- package/dist/migrations/fsops.js.map +1 -0
- package/dist/migrations/generate.d.ts +11 -0
- package/dist/migrations/generate.d.ts.map +1 -0
- package/dist/migrations/generate.js +479 -0
- package/dist/migrations/generate.js.map +1 -0
- package/dist/migrations/index.d.ts +25 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +6 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/migrations/intent.d.ts +86 -0
- package/dist/migrations/intent.d.ts.map +1 -0
- package/dist/migrations/intent.js +97 -0
- package/dist/migrations/intent.js.map +1 -0
- package/dist/migrations/lock.d.ts +27 -0
- package/dist/migrations/lock.d.ts.map +1 -0
- package/dist/migrations/lock.js +14 -0
- package/dist/migrations/lock.js.map +1 -0
- package/dist/migrations/native.d.ts +37 -0
- package/dist/migrations/native.d.ts.map +1 -0
- package/dist/migrations/native.js +135 -0
- package/dist/migrations/native.js.map +1 -0
- package/dist/migrations/repo.d.ts +38 -0
- package/dist/migrations/repo.d.ts.map +1 -0
- package/dist/migrations/repo.js +191 -0
- package/dist/migrations/repo.js.map +1 -0
- package/dist/migrations/theory.d.ts +21 -0
- package/dist/migrations/theory.d.ts.map +1 -0
- package/dist/migrations/theory.js +107 -0
- package/dist/migrations/theory.js.map +1 -0
- package/dist/migrations/types.d.ts +243 -0
- package/dist/migrations/types.d.ts.map +1 -0
- package/dist/migrations/types.js +2 -0
- package/dist/migrations/types.js.map +1 -0
- package/dist/migrations/workflow.d.ts +11 -0
- package/dist/migrations/workflow.d.ts.map +1 -0
- package/dist/migrations/workflow.js +14 -0
- package/dist/migrations/workflow.js.map +1 -0
- package/dist/native.d.ts +600 -0
- package/dist/native.d.ts.map +1 -0
- package/dist/native.js +8 -0
- package/dist/native.js.map +1 -0
- package/dist/options.d.ts +106 -0
- package/dist/options.d.ts.map +1 -0
- package/dist/options.js +2 -0
- package/dist/options.js.map +1 -0
- package/dist/outcome.d.ts +291 -0
- package/dist/outcome.d.ts.map +1 -0
- package/dist/outcome.js +2 -0
- package/dist/outcome.js.map +1 -0
- package/dist/production.d.ts +12 -0
- package/dist/production.d.ts.map +1 -0
- package/dist/production.js +29 -0
- package/dist/production.js.map +1 -0
- package/dist/schema.d.ts +10 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +9 -0
- package/dist/schema.js.map +1 -0
- package/dist/surface.d.ts +80 -0
- package/dist/surface.d.ts.map +1 -0
- package/dist/surface.js +2 -0
- package/dist/surface.js.map +1 -0
- package/dist/tenants.d.ts +20 -52
- package/dist/tenants.d.ts.map +1 -1
- package/dist/tenants.js +11 -330
- package/dist/tenants.js.map +1 -1
- package/pack-provenance.json +7 -0
- package/package.json +20 -23
- package/dist/braids.d.ts +0 -28
- package/dist/braids.d.ts.map +0 -1
- package/dist/braids.js +0 -45
- package/dist/braids.js.map +0 -1
- package/dist/bytes.d.ts +0 -26
- package/dist/bytes.d.ts.map +0 -1
- package/dist/bytes.js +0 -86
- package/dist/bytes.js.map +0 -1
- package/dist/chain.d.ts +0 -56
- package/dist/chain.d.ts.map +0 -1
- package/dist/chain.js +0 -137
- package/dist/chain.js.map +0 -1
- package/dist/codec.d.ts +0 -71
- package/dist/codec.d.ts.map +0 -1
- package/dist/codec.js +0 -179
- package/dist/codec.js.map +0 -1
- package/dist/descriptor.d.ts +0 -61
- package/dist/descriptor.d.ts.map +0 -1
- package/dist/descriptor.js +0 -160
- package/dist/descriptor.js.map +0 -1
- package/dist/keys.d.ts +0 -52
- package/dist/keys.d.ts.map +0 -1
- package/dist/keys.js +0 -166
- package/dist/keys.js.map +0 -1
- package/dist/manifest.d.ts +0 -42
- package/dist/manifest.d.ts.map +0 -1
- package/dist/manifest.js +0 -116
- package/dist/manifest.js.map +0 -1
- package/dist/replica.d.ts +0 -154
- package/dist/replica.d.ts.map +0 -1
- package/dist/replica.js +0 -820
- package/dist/replica.js.map +0 -1
- package/dist/store-s3.d.ts +0 -31
- package/dist/store-s3.d.ts.map +0 -1
- package/dist/store-s3.js +0 -299
- package/dist/store-s3.js.map +0 -1
- package/dist/store.d.ts +0 -129
- package/dist/store.d.ts.map +0 -1
- package/dist/store.js +0 -577
- package/dist/store.js.map +0 -1
- package/dist/tilde-family.json +0 -21
- package/dist/vector.d.ts +0 -31
- package/dist/vector.d.ts.map +0 -1
- package/dist/vector.js +0 -87
- package/dist/vector.js.map +0 -1
- package/dist/writer.d.ts +0 -106
- package/dist/writer.d.ts.map +0 -1
- package/dist/writer.js +0 -677
- package/dist/writer.js.map +0 -1
package/dist/vector.js
DELETED
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The per-braid generation map. Sum, domination, checkpoint order, and
|
|
3
|
-
* apply's increment live here. Overflow is a refusal of `sum` and of
|
|
4
|
-
* nowhere else.
|
|
5
|
-
*/
|
|
6
|
-
import { U64_MAX } from "#bytes.ts";
|
|
7
|
-
import { generation } from "#keys.ts";
|
|
8
|
-
const Overflow = { tag: "overflow" };
|
|
9
|
-
/** Applied counts keyed by braid. Any vector is a legal restore point. */
|
|
10
|
-
class Vector {
|
|
11
|
-
#counts;
|
|
12
|
-
constructor(entries = []) {
|
|
13
|
-
const counts = new Map();
|
|
14
|
-
for (const [braid, g] of [...entries].sort(function byBraid(left, right) {
|
|
15
|
-
if (left[0] < right[0]) {
|
|
16
|
-
return -1;
|
|
17
|
-
}
|
|
18
|
-
if (left[0] > right[0]) {
|
|
19
|
-
return 1;
|
|
20
|
-
}
|
|
21
|
-
return 0;
|
|
22
|
-
})) {
|
|
23
|
-
counts.set(braid, g);
|
|
24
|
-
}
|
|
25
|
-
this.#counts = counts;
|
|
26
|
-
}
|
|
27
|
-
static from(map) {
|
|
28
|
-
return new Vector(map);
|
|
29
|
-
}
|
|
30
|
-
/** The wholeness arithmetic. The one overflow site. */
|
|
31
|
-
sum() {
|
|
32
|
-
let acc = 0n;
|
|
33
|
-
for (const g of this.#counts.values()) {
|
|
34
|
-
const next = acc + g;
|
|
35
|
-
if (next > U64_MAX) {
|
|
36
|
-
return Overflow;
|
|
37
|
-
}
|
|
38
|
-
acc = next;
|
|
39
|
-
}
|
|
40
|
-
return acc;
|
|
41
|
-
}
|
|
42
|
-
/** Pointwise `this[braid] >= other[braid]`; an absent braid is zero. */
|
|
43
|
-
dominates(other) {
|
|
44
|
-
for (const [braid, g] of other.#counts) {
|
|
45
|
-
if (this.at(braid) < g) {
|
|
46
|
-
return false;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
return true;
|
|
50
|
-
}
|
|
51
|
-
/** The total order the manifest CAS installs. */
|
|
52
|
-
order(other) {
|
|
53
|
-
const left = this.sum();
|
|
54
|
-
const right = other.sum();
|
|
55
|
-
const leftOverflow = typeof left !== "bigint";
|
|
56
|
-
const rightOverflow = typeof right !== "bigint";
|
|
57
|
-
if (leftOverflow && rightOverflow) {
|
|
58
|
-
return "equal";
|
|
59
|
-
}
|
|
60
|
-
if (leftOverflow) {
|
|
61
|
-
return "after";
|
|
62
|
-
}
|
|
63
|
-
if (rightOverflow) {
|
|
64
|
-
return "before";
|
|
65
|
-
}
|
|
66
|
-
if (left < right) {
|
|
67
|
-
return "before";
|
|
68
|
-
}
|
|
69
|
-
if (left > right) {
|
|
70
|
-
return "after";
|
|
71
|
-
}
|
|
72
|
-
return "equal";
|
|
73
|
-
}
|
|
74
|
-
/** The applied count for `braid`; absent is zero. */
|
|
75
|
-
at(braid) {
|
|
76
|
-
return generation(this.#counts.get(braid) ?? 0n);
|
|
77
|
-
}
|
|
78
|
-
/** Apply's one mutation: this braid's count advances by one. */
|
|
79
|
-
advance(braid) {
|
|
80
|
-
const next = new Map(this.#counts);
|
|
81
|
-
const current = next.get(braid) ?? 0n;
|
|
82
|
-
next.set(braid, current === U64_MAX ? U64_MAX : current + 1n);
|
|
83
|
-
return new Vector(next);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
export { Overflow, Vector };
|
|
87
|
-
//# sourceMappingURL=vector.js.map
|
package/dist/vector.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vector.js","sourceRoot":"","sources":["../src/vector.ts"],"names":[],"mappings":"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"}
|
package/dist/writer.d.ts
DELETED
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The writer (60): a replica plus the right to create log objects. Role
|
|
3
|
-
* is a field on the handle. `openWriter(options)` births the store;
|
|
4
|
-
* `openWriter(replica)` wraps a born replica and settles an inherited
|
|
5
|
-
* pending without drawing id leases. A replica never births —
|
|
6
|
-
* ManifestMissing is its refusal. One commit path and one loss path: a
|
|
7
|
-
* lost slot's byte-equal occupant is an ambiguous PUT absorbed; anything
|
|
8
|
-
* else discards the local directory, re-opens through the replica to the
|
|
9
|
-
* current tip, and re-judges the recorded ops once — the verdict IS a
|
|
10
|
-
* serial execution, performed. Each loop iteration races once at the
|
|
11
|
-
* then-tip, so a historical loss is structurally uncountable, and bounded
|
|
12
|
-
* live-tip losses surface as ErrContention carrying the terminal
|
|
13
|
-
* re-judgment's own violation or the racing tip.
|
|
14
|
-
*/
|
|
15
|
-
import { type Admission, type Fact, type FreshKeys, type FreshRange, type MemberRelation, type MutationReport, type SchemaRelations } from "@bjornpagen/bumbledb";
|
|
16
|
-
import type { Digest32 } from "./bytes.js";
|
|
17
|
-
import type { Braid, Theory } from "./descriptor.js";
|
|
18
|
-
import type { Generation } from "./keys.js";
|
|
19
|
-
import type { CheckpointFacts } from "./manifest.js";
|
|
20
|
-
import type { OpenReplicaOptions, Replica } from "./replica.js";
|
|
21
|
-
import type { ObjectStore } from "./store.js";
|
|
22
|
-
type Durability = "published" | "local-pending";
|
|
23
|
-
/** Where an accepted commit landed on its braid: the slot (the braid
|
|
24
|
-
* position — never the store-wide sum) and how durable the batch is. */
|
|
25
|
-
interface Landing {
|
|
26
|
-
readonly slot: Generation;
|
|
27
|
-
readonly durability: Durability;
|
|
28
|
-
}
|
|
29
|
-
/** The accepted payload of `commit`: the body's value plus the landing. */
|
|
30
|
-
interface CommitReceipt<R> extends Landing {
|
|
31
|
-
readonly value: R;
|
|
32
|
-
readonly braid: Braid;
|
|
33
|
-
}
|
|
34
|
-
/** The empty commit is not a commit: a body that records no ops names no
|
|
35
|
-
* braid, so the refusal is its own outcome — never a slot, never a
|
|
36
|
-
* thrown surprise. The body's value rides out, the way an abandoned
|
|
37
|
-
* write's payload does in the engine. */
|
|
38
|
-
interface EmptyCommit<R> {
|
|
39
|
-
readonly tag: "empty";
|
|
40
|
-
readonly value: R;
|
|
41
|
-
}
|
|
42
|
-
/** The engine's Admission sum carrying the log's receipt in its accepted
|
|
43
|
-
* arm; the rejected arm is the engine's violations, shell and payload. */
|
|
44
|
-
type Commit<Rels extends SchemaRelations, R> = Admission<Rels, CommitReceipt<R>> | EmptyCommit<R>;
|
|
45
|
-
/** One braid's verdict inside a split commit: the engine's Admission
|
|
46
|
-
* carrying the landing, beside the braid it judged. */
|
|
47
|
-
interface BraidOutcome<Rels extends SchemaRelations> {
|
|
48
|
-
readonly braid: Braid;
|
|
49
|
-
readonly admission: Admission<Rels, Landing>;
|
|
50
|
-
}
|
|
51
|
-
type CommitSplit<Rels extends SchemaRelations, R> = {
|
|
52
|
-
readonly tag: "split";
|
|
53
|
-
readonly value: R;
|
|
54
|
-
readonly outcomes: readonly BraidOutcome<Rels>[];
|
|
55
|
-
} | EmptyCommit<R>;
|
|
56
|
-
/**
|
|
57
|
-
* The recorder: the engine `WriteTx`'s write surface, verbatim — insert,
|
|
58
|
-
* delete, and reserve carry the engine's own signatures, so a write-only
|
|
59
|
-
* body typechecks against both dialects. `contains`/`get` are absent by
|
|
60
|
-
* law: the journaled dialect is a pure recorder, and change is judged at
|
|
61
|
-
* commit, so a report's `changed` is 0n at record time. Reservations
|
|
62
|
-
* never appear in the log; the resulting inserts carry concrete values.
|
|
63
|
-
*/
|
|
64
|
-
interface Batch<Rels extends SchemaRelations> {
|
|
65
|
-
insert<Rel extends MemberRelation<Rels>>(relation: Rel, facts: Iterable<Fact<Rel>>): MutationReport;
|
|
66
|
-
delete<Rel extends MemberRelation<Rels>>(relation: Rel, facts: Iterable<Fact<Rel>>): MutationReport;
|
|
67
|
-
reserve<Rel extends MemberRelation<Rels>>(relation: Rel, field: FreshKeys<Rel> & string, count: bigint): FreshRange;
|
|
68
|
-
}
|
|
69
|
-
/** Ownership of a slot, read from the winner's header. */
|
|
70
|
-
interface Deposition {
|
|
71
|
-
readonly braid: Braid;
|
|
72
|
-
readonly slot: Generation;
|
|
73
|
-
readonly resident: bigint;
|
|
74
|
-
readonly usurper: bigint;
|
|
75
|
-
}
|
|
76
|
-
interface Writer<Rels extends SchemaRelations> {
|
|
77
|
-
readonly role: "writer";
|
|
78
|
-
readonly replica: Replica<Rels>;
|
|
79
|
-
deposition(): Deposition | null;
|
|
80
|
-
commit<R>(body: (batch: Batch<Rels>) => R | Promise<R>): Promise<Commit<Rels, R>>;
|
|
81
|
-
commitSplit<R>(body: (batch: Batch<Rels>) => R | Promise<R>): Promise<CommitSplit<Rels, R>>;
|
|
82
|
-
}
|
|
83
|
-
type PublishRefusal = "manifest-missing" | "manifest" | "checkpoint-doc-missing" | "checkpoint";
|
|
84
|
-
type Published = {
|
|
85
|
-
readonly tag: "replaced";
|
|
86
|
-
} | {
|
|
87
|
-
readonly tag: "kept";
|
|
88
|
-
readonly incumbent: Digest32;
|
|
89
|
-
} | {
|
|
90
|
-
readonly tag: "refused";
|
|
91
|
-
readonly reason: PublishRefusal;
|
|
92
|
-
};
|
|
93
|
-
/**
|
|
94
|
-
* Publishes `candidate` under the checkpoint order. The digest is the
|
|
95
|
-
* blake3 of the full bytes, `prev` included. A scratch lease
|
|
96
|
-
* `{dir}/~lease/ckpt-scratch` names the candidate for the publish
|
|
97
|
-
* window; a crash leaves that lease and a successor sweep reclaims
|
|
98
|
-
* it. `Kept` and every refused publish delete the candidate's `ckpt`
|
|
99
|
-
* pair.
|
|
100
|
-
*/
|
|
101
|
-
declare function publishCheckpoint(store: ObjectStore, prefix: string, dir: string, theory: Theory, candidate: CheckpointFacts, mdb: Uint8Array): Promise<Published>;
|
|
102
|
-
declare function openWriter<Rels extends SchemaRelations>(replica: Replica<Rels>): Promise<Writer<Rels>>;
|
|
103
|
-
declare function openWriter<Rels extends SchemaRelations>(options: OpenReplicaOptions<Rels>): Promise<Writer<Rels>>;
|
|
104
|
-
export type { Batch, BraidOutcome, Commit, CommitReceipt, CommitSplit, Deposition, Durability, EmptyCommit, Landing, Writer };
|
|
105
|
-
export { openWriter, publishCheckpoint };
|
|
106
|
-
//# sourceMappingURL=writer.d.ts.map
|
package/dist/writer.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../src/writer.ts"],"names":[],"mappings":"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"}
|