@bjornpagen/bumbledb-log 1.2.1 → 1.3.1
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 +152 -63
- package/dist/admin.d.ts +1 -1
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +13 -0
- package/dist/bin.js.map +1 -0
- package/dist/codes.d.ts +1 -1
- package/dist/codes.d.ts.map +1 -1
- package/dist/codes.js +1 -8
- package/dist/codes.js.map +1 -1
- package/dist/errors.d.ts +7 -21
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +11 -45
- package/dist/errors.js.map +1 -1
- package/dist/identity.d.ts +0 -8
- package/dist/identity.d.ts.map +1 -1
- package/dist/identity.js +0 -5
- package/dist/identity.js.map +1 -1
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/machine.d.ts +4 -28
- package/dist/machine.d.ts.map +1 -1
- package/dist/machine.js +183 -246
- package/dist/machine.js.map +1 -1
- package/dist/native.d.ts +59 -154
- package/dist/native.d.ts.map +1 -1
- package/dist/native.js.map +1 -1
- package/dist/options.d.ts +2 -11
- package/dist/options.d.ts.map +1 -1
- package/dist/outcome.d.ts +1 -85
- package/dist/outcome.d.ts.map +1 -1
- package/dist/schema-files.d.ts +16 -0
- package/dist/schema-files.d.ts.map +1 -0
- package/dist/schema-files.js +77 -0
- package/dist/schema-files.js.map +1 -0
- package/dist/schema.d.ts +6 -9
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +8 -8
- package/dist/schema.js.map +1 -1
- package/dist/transition.d.ts +75 -0
- package/dist/transition.d.ts.map +1 -0
- package/dist/transition.js +3 -0
- package/dist/transition.js.map +1 -0
- package/pack-provenance.json +4 -4
- package/package.json +4 -8
- package/dist/migration-ops.d.ts +0 -20
- package/dist/migration-ops.d.ts.map +0 -1
- package/dist/migration-ops.js +0 -7
- package/dist/migration-ops.js.map +0 -1
- package/dist/migrations/bin.d.ts.map +0 -1
- package/dist/migrations/bin.js +0 -30
- package/dist/migrations/bin.js.map +0 -1
- package/dist/migrations/canonical.d.ts +0 -40
- package/dist/migrations/canonical.d.ts.map +0 -1
- package/dist/migrations/canonical.js +0 -156
- package/dist/migrations/canonical.js.map +0 -1
- package/dist/migrations/cli.d.ts +0 -29
- package/dist/migrations/cli.d.ts.map +0 -1
- package/dist/migrations/cli.js +0 -124
- package/dist/migrations/cli.js.map +0 -1
- package/dist/migrations/codec.d.ts +0 -74
- package/dist/migrations/codec.d.ts.map +0 -1
- package/dist/migrations/codec.js +0 -2
- package/dist/migrations/codec.js.map +0 -1
- package/dist/migrations/decode.d.ts +0 -16
- package/dist/migrations/decode.d.ts.map +0 -1
- package/dist/migrations/decode.js +0 -302
- package/dist/migrations/decode.js.map +0 -1
- package/dist/migrations/diff.d.ts +0 -39
- package/dist/migrations/diff.d.ts.map +0 -1
- package/dist/migrations/diff.js +0 -385
- package/dist/migrations/diff.js.map +0 -1
- package/dist/migrations/expr.d.ts +0 -22
- package/dist/migrations/expr.d.ts.map +0 -1
- package/dist/migrations/expr.js +0 -219
- package/dist/migrations/expr.js.map +0 -1
- package/dist/migrations/fail.d.ts +0 -22
- package/dist/migrations/fail.d.ts.map +0 -1
- package/dist/migrations/fail.js +0 -52
- package/dist/migrations/fail.js.map +0 -1
- package/dist/migrations/fsops.d.ts +0 -37
- package/dist/migrations/fsops.d.ts.map +0 -1
- package/dist/migrations/fsops.js +0 -222
- package/dist/migrations/fsops.js.map +0 -1
- package/dist/migrations/generate.d.ts +0 -11
- package/dist/migrations/generate.d.ts.map +0 -1
- package/dist/migrations/generate.js +0 -455
- package/dist/migrations/generate.js.map +0 -1
- package/dist/migrations/index.d.ts +0 -23
- package/dist/migrations/index.d.ts.map +0 -1
- package/dist/migrations/index.js +0 -6
- package/dist/migrations/index.js.map +0 -1
- package/dist/migrations/intent.d.ts +0 -86
- package/dist/migrations/intent.d.ts.map +0 -1
- package/dist/migrations/intent.js +0 -97
- package/dist/migrations/intent.js.map +0 -1
- package/dist/migrations/lock.d.ts +0 -27
- package/dist/migrations/lock.d.ts.map +0 -1
- package/dist/migrations/lock.js +0 -14
- package/dist/migrations/lock.js.map +0 -1
- package/dist/migrations/native.d.ts +0 -26
- package/dist/migrations/native.d.ts.map +0 -1
- package/dist/migrations/native.js +0 -124
- package/dist/migrations/native.js.map +0 -1
- package/dist/migrations/repo.d.ts +0 -38
- package/dist/migrations/repo.d.ts.map +0 -1
- package/dist/migrations/repo.js +0 -191
- package/dist/migrations/repo.js.map +0 -1
- package/dist/migrations/theory.d.ts +0 -21
- package/dist/migrations/theory.d.ts.map +0 -1
- package/dist/migrations/theory.js +0 -107
- package/dist/migrations/theory.js.map +0 -1
- package/dist/migrations/types.d.ts +0 -242
- package/dist/migrations/types.d.ts.map +0 -1
- package/dist/migrations/types.js +0 -2
- package/dist/migrations/types.js.map +0 -1
- package/dist/migrations/workflow.d.ts +0 -11
- package/dist/migrations/workflow.d.ts.map +0 -1
- package/dist/migrations/workflow.js +0 -14
- package/dist/migrations/workflow.js.map +0 -1
- /package/dist/{migrations/bin.d.ts → bin.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Durable named application commands over
|
|
4
4
|
[Bumbledb](https://github.com/bjornpagen/bumbledb): a thin peer of
|
|
5
|
-
`@bjornpagen/bumbledb` (exact peer `1.
|
|
5
|
+
`@bjornpagen/bumbledb` (exact peer `1.3.1`). The package adds a durable
|
|
6
6
|
envelope around the exact core change/read machinery — it never duplicates
|
|
7
7
|
the engine surface. Core types (`ChangeSet`, `QueryReader`, `DbError`,
|
|
8
8
|
`StorageInspection`) are the peer's own exports.
|
|
@@ -20,9 +20,7 @@ The surface is small:
|
|
|
20
20
|
materialization directory beside it. `open` of a missing or unreadable
|
|
21
21
|
configured database never creates a replacement; `create` is the explicit
|
|
22
22
|
constructor: it refuses existing authority and validates a stable
|
|
23
|
-
creation identity plus a
|
|
24
|
-
canonical schema snapshot the migration tooling renders) instead of
|
|
25
|
-
fabricating genesis.
|
|
23
|
+
creation identity plus a native-verified canonical schema snapshot.
|
|
26
24
|
2. **`Command`** — `Command.seal` turns `{ scope, id, changes, precondition,
|
|
27
25
|
result }` into one owned sealed command with a copyable pre-dispatch
|
|
28
26
|
`ref`; `Command.encode`/`Command.decode` are the one bounded versioned
|
|
@@ -36,20 +34,18 @@ The surface is small:
|
|
|
36
34
|
multi-tenant hosts: `make`/`acquire` (a `HistoryBorrow` whose `release`
|
|
37
35
|
frees only the borrow)/`inspect`/`evict`/`close`. `maxOpen` bounds the
|
|
38
36
|
number of open tenants; evicting a borrowed slot refuses.
|
|
39
|
-
5. **Maintenance and
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
under the `./migrations` subpath (below).
|
|
37
|
+
5. **Maintenance and transitions** — explicit checkpoint, receipt, garbage
|
|
38
|
+
collection, backup/restore and erase operations; native `Transition` capture,
|
|
39
|
+
population, inspection, activation and abort. Schema tooling emits bindings;
|
|
40
|
+
applications write their own transformations.
|
|
44
41
|
|
|
45
42
|
## Install
|
|
46
43
|
|
|
47
|
-
This guide follows the 1.
|
|
48
|
-
your installed package.
|
|
49
|
-
the npm command below applies once that version is published.
|
|
44
|
+
This guide follows the 1.3.1 source API. Use the guide from the Git tag matching
|
|
45
|
+
your installed package. Install the matched package family after publication.
|
|
50
46
|
|
|
51
47
|
```sh
|
|
52
|
-
pnpm add @bjornpagen/bumbledb-log@1.
|
|
48
|
+
pnpm add @bjornpagen/bumbledb-log@1.3.1 @bjornpagen/bumbledb@1.3.1 effect@4.0.0-rc.112
|
|
53
49
|
```
|
|
54
50
|
|
|
55
51
|
## Quick start: one durable round trip
|
|
@@ -59,10 +55,10 @@ insert command, submit it to a decided receipt, then reopen the directory
|
|
|
59
55
|
and resolve the retained ref to the exact recorded outcome.
|
|
60
56
|
|
|
61
57
|
```ts
|
|
62
|
-
import * as fs from "node:fs/promises"
|
|
63
58
|
import { ChangeSet, key, NativeRuntime, relation, Schema, schema, str, u64 } from "@bjornpagen/bumbledb"
|
|
64
59
|
import { Command, DatabaseId, IncarnationId, LocalHistory, OperationId, ReceiptEpoch, RequestId } from "@bjornpagen/bumbledb-log"
|
|
65
60
|
import type { DatabaseIdentity, LocalBinding, ReadOptions, SubmitOptions } from "@bjornpagen/bumbledb-log"
|
|
61
|
+
import { schemaSnapshot } from "@bjornpagen/bumbledb-log/schema"
|
|
66
62
|
import { Effect, ManagedRuntime, Result } from "effect"
|
|
67
63
|
|
|
68
64
|
const Entry = relation("Entry", { id: u64, body: str })
|
|
@@ -77,12 +73,7 @@ const unwrap = <A, E>(result: Result.Result<A, E>): A => Result.getOrThrow(resul
|
|
|
77
73
|
|
|
78
74
|
const program = Effect.gen(function* () {
|
|
79
75
|
const compiled = yield* Schema.compile(Ledger)
|
|
80
|
-
|
|
81
|
-
// migration generator wrote to your checked-in repository. Its native
|
|
82
|
-
// fingerprint IS the identity's schemaId — creation re-judges both.
|
|
83
|
-
const artifact: Uint8Array = yield* Effect.tryPromise(() =>
|
|
84
|
-
fs.readFile("bumbledb/migrations/meta/0000.schema.json")
|
|
85
|
-
)
|
|
76
|
+
const artifact = new TextEncoder().encode(yield* schemaSnapshot(Ledger))
|
|
86
77
|
const identity: DatabaseIdentity = {
|
|
87
78
|
databaseId: unwrap(DatabaseId.parse("abababab-abab-abab-abab-abababababab")),
|
|
88
79
|
incarnationId: unwrap(IncarnationId.parse("cdcdcdcd-cdcd-cdcd-cdcd-cdcdcdcdcdcd")),
|
|
@@ -174,7 +165,7 @@ message strings: the core's own `DbError`, unchanged, for core failures
|
|
|
174
165
|
crossing the log; and `ProtocolError` for the log-specific reason roster
|
|
175
166
|
(`protocolErrorCodes` spells it natively — contention, consistency
|
|
176
167
|
not-yet-available, artifact/authority/identity refusals, maintenance
|
|
177
|
-
backpressure,
|
|
168
|
+
backpressure, transition identity). `LogError = DbError | ProtocolError` and
|
|
178
169
|
nothing else. Interruption and finalizer defects stay in `Cause`.
|
|
179
170
|
|
|
180
171
|
The same core `QueryReader` helper that lists a local `Db` snapshot lists a
|
|
@@ -182,7 +173,7 @@ published history snapshot. There is no log-specific query wrapper. The
|
|
|
182
173
|
packed consumer spells this as `readAttempts(snapshot, student)` on
|
|
183
174
|
both `Db.snapshot` and `history.snapshot`.
|
|
184
175
|
|
|
185
|
-
Retain the command or admin `operationId` **before** `submit` / `
|
|
176
|
+
Retain the command or admin `operationId` **before** `submit` / `Transition.begin` /
|
|
186
177
|
`backup` / `restore`. `outcome-unknown` is resolved under that identity.
|
|
187
178
|
A later missing receipt is not proved loss.
|
|
188
179
|
|
|
@@ -252,51 +243,149 @@ activation. Repeating the same operation, target, and backup returns that
|
|
|
252
243
|
original result even if later commands changed the restored database. A different
|
|
253
244
|
operation or backup refuses without overwriting the target.
|
|
254
245
|
|
|
255
|
-
##
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
246
|
+
## Generated bindings, handwritten migrations
|
|
247
|
+
|
|
248
|
+
Log provides two mechanical schema operations:
|
|
249
|
+
|
|
250
|
+
```sh
|
|
251
|
+
pnpm exec bumbledb-log snapshot --schema src/schema.ts --export App --out schema.json
|
|
252
|
+
pnpm exec bumbledb-log bindings --snapshot source.json --out source.ts
|
|
253
|
+
pnpm exec bumbledb-log bindings --snapshot target.json --out target.ts
|
|
254
|
+
pnpm exec tsc --noEmit
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
`schemaSnapshot(schema)` emits native-verified canonical JSON. `schemaBindings(snapshot)`
|
|
258
|
+
emits ordinary SDK declarations for that one snapshot. Historical bindings do
|
|
259
|
+
not load old application modules. The generated field widths, closed handles,
|
|
260
|
+
keys and expanded laws compile to the same native schema identity. Unsupported
|
|
261
|
+
representations refuse before an output file is replaced.
|
|
262
|
+
|
|
263
|
+
Write the transformation yourself in TypeScript. This example uses the generated
|
|
264
|
+
[submission/proof fixtures](https://github.com/bjornpagen/bumbledb/tree/v1.3.1/ts-log/test/fixtures/transition): the old schema has one
|
|
265
|
+
proof relation, while the new schema has one relation for each submission method.
|
|
266
|
+
Both use ordinary `Fact` values, queries and `ChangeSet` batches.
|
|
267
|
+
|
|
268
|
+
```ts
|
|
269
|
+
import { ChangeSet, query, v } from "@bjornpagen/bumbledb"
|
|
270
|
+
import { LocalHistory, Transition } from "@bjornpagen/bumbledb-log"
|
|
271
|
+
import type { History, Population, PublishedSnapshot, TransitionContract } from "@bjornpagen/bumbledb-log"
|
|
272
|
+
import { Effect, Stream } from "effect"
|
|
273
|
+
import * as old from "./source.ts"
|
|
274
|
+
import * as next from "./target.ts"
|
|
275
|
+
|
|
276
|
+
const joined = query(old.schema).rule((r) => {
|
|
277
|
+
const { id, method, recordedAt } = v(old.r1)
|
|
278
|
+
const { reference } = v(old.r2)
|
|
279
|
+
return r.match(old.r1, { id, method, recordedAt })
|
|
280
|
+
.match(old.r2, { submission: id, reference })
|
|
281
|
+
.find({ id, method, recordedAt, reference })
|
|
282
|
+
})
|
|
283
|
+
const documents = query(old.schema).rule((r) => {
|
|
284
|
+
const row = v(old.r3)
|
|
285
|
+
return r.match(old.r3, row).find(row)
|
|
286
|
+
})
|
|
287
|
+
|
|
288
|
+
function transform(source: PublishedSnapshot<typeof old.schema>, target: Population<typeof next.schema>) {
|
|
289
|
+
return Effect.gen(function* () {
|
|
290
|
+
const rows = yield* source.execute(joined, {})
|
|
291
|
+
yield* Stream.runForEach(rows.pages(), (page) => Effect.scoped(Effect.gen(function* () {
|
|
292
|
+
const batch = yield* ChangeSet.builder(next.schema)
|
|
293
|
+
yield* batch.insert(next.r1, page.map(({ id, method, recordedAt }) => ({ id, method, recordedAt })))
|
|
294
|
+
for (const [method, relation] of [["Imported", next.r3], ["Electronic", next.r4], ["Postal", next.r5]] as const) {
|
|
295
|
+
yield* batch.insert(relation, page.filter(row => row.method === method)
|
|
296
|
+
.map(row => ({ submission: row.id, reference: row.reference })))
|
|
297
|
+
}
|
|
298
|
+
yield* target.apply(yield* batch.finish())
|
|
299
|
+
})))
|
|
300
|
+
const unchanged = yield* source.execute(documents, {})
|
|
301
|
+
yield* Stream.runForEach(unchanged.pages(), (page) => Effect.scoped(Effect.gen(function* () {
|
|
302
|
+
const batch = yield* ChangeSet.builder(next.schema)
|
|
303
|
+
yield* batch.insert(next.r2, page)
|
|
304
|
+
yield* target.apply(yield* batch.finish())
|
|
305
|
+
})))
|
|
306
|
+
})
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
// Application policy: compare mapped facts, unchanged documents in both
|
|
310
|
+
// directions, and relevant reports. Counts alone do not prove preservation.
|
|
311
|
+
declare function compare(
|
|
312
|
+
source: PublishedSnapshot<typeof old.schema>,
|
|
313
|
+
target: PublishedSnapshot<typeof next.schema>
|
|
314
|
+
): Effect.Effect<boolean, Error, import("effect").Scope.Scope>
|
|
315
|
+
|
|
316
|
+
function migrate(history: History<typeof old.schema>, contract: TransitionContract) {
|
|
317
|
+
return Effect.scoped(Effect.gen(function* () {
|
|
318
|
+
const start = yield* Transition.begin(history, next.schema, contract)
|
|
319
|
+
if (start.kind === "activated") return start.binding
|
|
320
|
+
if (start.kind === "aborted") return yield* Effect.fail(new Error("Operation was aborted"))
|
|
321
|
+
const ready = start.kind === "ready" ? start : yield* Effect.gen(function* () {
|
|
322
|
+
yield* transform(start.source, start.population)
|
|
323
|
+
return yield* start.population.finish()
|
|
324
|
+
})
|
|
325
|
+
const preserved = yield* Effect.scoped(Effect.gen(function* () {
|
|
326
|
+
const target = yield* LocalHistory.open(ready.binding, next.schema)
|
|
327
|
+
const inspected = yield* Transition.inspect(target, ready.installed)
|
|
328
|
+
return yield* compare(start.source, inspected)
|
|
329
|
+
}))
|
|
330
|
+
if (!preserved) {
|
|
331
|
+
yield* Transition.abort(history, next.schema, contract)
|
|
332
|
+
return yield* Effect.fail(new Error("Application comparison failed"))
|
|
333
|
+
}
|
|
334
|
+
return (yield* Transition.activate(history, next.schema, ready.installed)).binding
|
|
335
|
+
}))
|
|
336
|
+
}
|
|
337
|
+
void migrate
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
Retain `contract` before dispatch: `operation`, full `source` and `target`
|
|
341
|
+
identities, and a 64-digit hexadecimal `commitment` identifying the application's
|
|
342
|
+
chosen transformation. Compile the target bindings to obtain its schema ID;
|
|
343
|
+
choose a fresh target incarnation. Native admission recompiles the supplied
|
|
344
|
+
schema, freezes the exact source decision/state, and accepts only ordinary
|
|
345
|
+
changes into disk-backed unpublished storage. A commitment records intent; it
|
|
346
|
+
does not attest which JavaScript ran.
|
|
347
|
+
|
|
348
|
+
Population applies batches sequentially, including deletions. Identical facts
|
|
349
|
+
deduplicate. `ChangeSet.compose` uses add-wins normalization within one command;
|
|
350
|
+
it is not sequential replay. Parent and child facts can arrive in either order.
|
|
351
|
+
`finish` drains admitted calls, consumes every population alias, performs complete
|
|
352
|
+
law judgment and a canonical hash, then installs one frozen target. Final
|
|
353
|
+
judgment checks declared database laws; it cannot detect omission of unconstrained
|
|
354
|
+
application data. Close the inspection scope before activation and adopt the
|
|
355
|
+
returned binding explicitly. The source stays frozen after activation.
|
|
356
|
+
|
|
357
|
+
On interruption or uncertain installation, call `Transition.resolve` with the
|
|
358
|
+
retained contract first. Reuse a ready target; never rerun the transformation on
|
|
359
|
+
top of it. An abandoned unpublished attempt restarts from empty staging after
|
|
360
|
+
its owner drains. Completed retries return the original activation even after
|
|
361
|
+
new target commands. `Transition.abort` is terminal: it fences the target before
|
|
362
|
+
thawing the matching source, and refuses if activation won. Scope cleanup only
|
|
363
|
+
releases resources; it does not abort a durable operation.
|
|
364
|
+
|
|
365
|
+
Pages bound JavaScript delivery, but queries still seal their complete native
|
|
366
|
+
result before paging. Use existing indexed partitions when results exceed native
|
|
367
|
+
limits, and bound batches by rows and bytes. There is no per-batch whole-target
|
|
368
|
+
judgment or hash, row journal, or exactly-once guarantee for external effects.
|
|
369
|
+
The [public integration tests](https://github.com/bjornpagen/bumbledb/blob/v1.3.1/ts-log/test/transition.test.ts) exercise generated type
|
|
370
|
+
inference, both batch orders, preservation failures, final-law refusals and retry.
|
|
371
|
+
|
|
372
|
+
**1.3.1 deliberately removes the previous migration API and artifact formats.**
|
|
373
|
+
There is no transformation DSL, plan generator, repository manager, generated
|
|
374
|
+
migration chain, replay adapter or compatibility export. Old migration records
|
|
375
|
+
refuse explicitly. Ordinary histories without those retired artifacts retain
|
|
376
|
+
their command, receipt and schema identities. 1.3.0 cannot read the new transition
|
|
377
|
+
records.
|
|
378
|
+
|
|
379
|
+
The TypeScript transition API supports local histories. The native implementation retains the
|
|
380
|
+
existing hosted backend using conditional authority and verified checkpoints.
|
|
381
|
+
Hosted operation claims are permanent authority records; backups preserve
|
|
382
|
+
installed evidence and facts, while writable restore creates a new incarnation.
|
|
383
|
+
Real-S3/IAM deployment and Graviton performance remain unqualified.
|
|
295
384
|
|
|
296
385
|
## Platform and packaging
|
|
297
386
|
|
|
298
387
|
The native engine arrives through the peer `@bjornpagen/bumbledb`
|
|
299
388
|
(darwin-arm64, linux-arm64, linux-x64); this package ships TypeScript only
|
|
300
|
-
and declares both peers exactly (`@bjornpagen/bumbledb 1.
|
|
389
|
+
and declares both peers exactly (`@bjornpagen/bumbledb 1.3.1`, `effect
|
|
301
390
|
4.0.0-rc.112`). Version lockstep across the package family is enforced in
|
|
302
391
|
CI.
|
package/dist/admin.d.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* protocol report and identity (database/epoch/root/barrier/operation) —
|
|
8
8
|
* no generic admin journal, manufactured maintenance receipts, or shared
|
|
9
9
|
* durable state machine is added. Interruption stays in Cause; the retained
|
|
10
|
-
* operation reference
|
|
10
|
+
* operation reference is retained for native inspection and retry.
|
|
11
11
|
*/
|
|
12
12
|
import type { AdminOperations } from "./machine.js";
|
|
13
13
|
export declare const checkpoint: AdminOperations["checkpoint"];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":""}
|
package/dist/bin.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { NativeRuntime } from "@bjornpagen/bumbledb";
|
|
3
|
+
import * as NodeRuntime from "@effect/platform-node/NodeRuntime";
|
|
4
|
+
import { Effect } from "effect";
|
|
5
|
+
import { parseArguments, usage, writeSchemaFile } from "#schema-files.ts";
|
|
6
|
+
const main = Effect.gen(function* () {
|
|
7
|
+
const args = parseArguments(process.argv.slice(2));
|
|
8
|
+
if (args === undefined)
|
|
9
|
+
return yield* Effect.fail(new Error(usage));
|
|
10
|
+
yield* writeSchemaFile(args);
|
|
11
|
+
}).pipe(Effect.provide(NativeRuntime.layer()));
|
|
12
|
+
NodeRuntime.runMain(main);
|
|
13
|
+
//# sourceMappingURL=bin.js.map
|
package/dist/bin.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,KAAK,WAAW,MAAM,mCAAmC,CAAA;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAEzE,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAChC,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAClD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;IACnE,KAAK,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;AAC7B,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;AAE9C,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA"}
|
package/dist/codes.d.ts
CHANGED
|
@@ -6,6 +6,6 @@
|
|
|
6
6
|
* core `DbError` with its own roster. These codes are only the protocol's
|
|
7
7
|
* additions.
|
|
8
8
|
*/
|
|
9
|
-
export declare const protocolErrorCodes: readonly ["ForeignIdentity", "CommandIdentityConflict", "DatabaseDeleted", "DatabaseFrozen", "CommandEpochClosed", "ReceiptExpiredUnknown", "NotInitialized", "DatabaseMissing", "AuthorityExists", "CacheIdentityMismatch", "WrongLineage", "NotYetAvailable", "WitnessUnavailable", "SnapshotExpired", "MaintenanceRequired", "MaterializationStale", "RootCapacityExceeded", "SlotBorrowed", "Contention", "IncompleteRejectionEvidence", "
|
|
9
|
+
export declare const protocolErrorCodes: readonly ["ForeignIdentity", "CommandIdentityConflict", "DatabaseDeleted", "DatabaseFrozen", "CommandEpochClosed", "ReceiptExpiredUnknown", "NotInitialized", "DatabaseMissing", "AuthorityExists", "CacheIdentityMismatch", "WrongLineage", "NotYetAvailable", "WitnessUnavailable", "SnapshotExpired", "MaintenanceRequired", "MaterializationStale", "RootCapacityExceeded", "SlotBorrowed", "Contention", "IncompleteRejectionEvidence", "OperationConflict", "InsufficientLocalDisk", "UnsupportedArtifact", "Corruption", "Backend", "Misuse"];
|
|
10
10
|
export type ProtocolCode = (typeof protocolErrorCodes)[number];
|
|
11
11
|
//# sourceMappingURL=codes.d.ts.map
|
package/dist/codes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codes.d.ts","sourceRoot":"","sources":["../src/codes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,YAE9B,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EAEvB,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EAEjB,qBAAqB,EAKrB,sBAAsB,EACtB,sBAAsB,EACtB,cAAc,EACd,YAAY,EACZ,6BAA6B,EAE7B,mBAAmB,
|
|
1
|
+
{"version":3,"file":"codes.d.ts","sourceRoot":"","sources":["../src/codes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,YAE9B,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EAEvB,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EAEjB,qBAAqB,EAKrB,sBAAsB,EACtB,sBAAsB,EACtB,cAAc,EACd,YAAY,EACZ,6BAA6B,EAE7B,mBAAmB,EAEnB,uBAAuB,EACvB,qBAAqB,EACrB,YAAY,EACZ,SAAS,EACT,QAAQ,CACC,CAAA;AAEV,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAA"}
|
package/dist/codes.js
CHANGED
|
@@ -34,14 +34,7 @@ export const protocolErrorCodes = [
|
|
|
34
34
|
"SlotBorrowed",
|
|
35
35
|
"Contention",
|
|
36
36
|
"IncompleteRejectionEvidence",
|
|
37
|
-
//
|
|
38
|
-
"MigrationRequired",
|
|
39
|
-
"MigrationDrift",
|
|
40
|
-
"MigrationIntentRequired",
|
|
41
|
-
"MigrationUnsupported",
|
|
42
|
-
"MigrationRepository",
|
|
43
|
-
"DatabaseAhead",
|
|
44
|
-
"MigrationOutputMismatch",
|
|
37
|
+
// Native transition identity.
|
|
45
38
|
"OperationConflict",
|
|
46
39
|
// Host feasibility and transport.
|
|
47
40
|
"InsufficientLocalDisk",
|
package/dist/codes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codes.js","sourceRoot":"","sources":["../src/codes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IACjC,mCAAmC;IACnC,iBAAiB;IACjB,yBAAyB;IACzB,iBAAiB;IACjB,gBAAgB;IAChB,oBAAoB;IACpB,uBAAuB;IACvB,gBAAgB;IAChB,iBAAiB;IACjB,iBAAiB;IACjB,uBAAuB;IACvB,0DAA0D;IAC1D,cAAc;IACd,iBAAiB;IACjB,oBAAoB;IACpB,iBAAiB;IACjB,6BAA6B;IAC7B,qBAAqB;IACrB,sEAAsE;IACtE,uEAAuE;IACvE,kEAAkE;IAClE,mEAAmE;IACnE,sBAAsB;IACtB,sBAAsB;IACtB,cAAc;IACd,YAAY;IACZ,6BAA6B;IAC7B,
|
|
1
|
+
{"version":3,"file":"codes.js","sourceRoot":"","sources":["../src/codes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IACjC,mCAAmC;IACnC,iBAAiB;IACjB,yBAAyB;IACzB,iBAAiB;IACjB,gBAAgB;IAChB,oBAAoB;IACpB,uBAAuB;IACvB,gBAAgB;IAChB,iBAAiB;IACjB,iBAAiB;IACjB,uBAAuB;IACvB,0DAA0D;IAC1D,cAAc;IACd,iBAAiB;IACjB,oBAAoB;IACpB,iBAAiB;IACjB,6BAA6B;IAC7B,qBAAqB;IACrB,sEAAsE;IACtE,uEAAuE;IACvE,kEAAkE;IAClE,mEAAmE;IACnE,sBAAsB;IACtB,sBAAsB;IACtB,cAAc;IACd,YAAY;IACZ,6BAA6B;IAC7B,8BAA8B;IAC9B,mBAAmB;IACnB,kCAAkC;IAClC,uBAAuB;IACvB,qBAAqB;IACrB,YAAY;IACZ,SAAS;IACT,QAAQ;CACC,CAAA"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -13,48 +13,34 @@
|
|
|
13
13
|
import { DbError } from "@bjornpagen/bumbledb";
|
|
14
14
|
import { type Cause, Schema } from "effect";
|
|
15
15
|
import { protocolErrorCodes } from "./codes.js";
|
|
16
|
-
declare const structured: readonly ["Contention", "NotYetAvailable", "InsufficientLocalDisk", "MaintenanceRequired", "MaterializationStale"
|
|
16
|
+
declare const structured: readonly ["Contention", "NotYetAvailable", "InsufficientLocalDisk", "MaintenanceRequired", "MaterializationStale"];
|
|
17
17
|
type StructuredTag = (typeof structured)[number];
|
|
18
18
|
type PlainTag = Exclude<(typeof protocolErrorCodes)[number], StructuredTag>;
|
|
19
19
|
export declare const ProtocolReason: Schema.Union<readonly [Schema.Struct<{
|
|
20
20
|
readonly _tag: Schema.Literal<"Contention">;
|
|
21
21
|
readonly attempts: Schema.Number;
|
|
22
|
+
readonly detail: Schema.optional<Schema.String>;
|
|
22
23
|
}>, Schema.Struct<{
|
|
23
24
|
readonly _tag: Schema.Literal<"NotYetAvailable">;
|
|
24
25
|
readonly requestedSeq: Schema.BigInt;
|
|
25
26
|
readonly capturedSeq: Schema.BigInt;
|
|
27
|
+
readonly detail: Schema.optional<Schema.String>;
|
|
26
28
|
}>, Schema.Struct<{
|
|
27
29
|
readonly _tag: Schema.Literal<"InsufficientLocalDisk">;
|
|
28
30
|
readonly requiredBytes: Schema.BigInt;
|
|
29
31
|
readonly availableBytes: Schema.BigInt;
|
|
32
|
+
readonly detail: Schema.optional<Schema.String>;
|
|
30
33
|
}>, Schema.Struct<{
|
|
31
34
|
readonly _tag: Schema.Literal<"MaintenanceRequired">;
|
|
32
35
|
readonly count: Schema.BigInt;
|
|
33
36
|
readonly bytes: Schema.BigInt;
|
|
37
|
+
readonly detail: Schema.optional<Schema.String>;
|
|
34
38
|
}>, Schema.Struct<{
|
|
35
39
|
readonly _tag: Schema.Literal<"MaterializationStale">;
|
|
36
40
|
readonly detail: Schema.String;
|
|
37
|
-
}>, Schema.Struct<{
|
|
38
|
-
readonly _tag: Schema.Literal<"MigrationDrift">;
|
|
39
|
-
readonly detail: Schema.String;
|
|
40
|
-
}>, Schema.Struct<{
|
|
41
|
-
readonly _tag: Schema.Literal<"MigrationUnsupported">;
|
|
42
|
-
readonly detail: Schema.String;
|
|
43
|
-
}>, Schema.Struct<{
|
|
44
|
-
readonly _tag: Schema.Literal<"MigrationRepository">;
|
|
45
|
-
readonly path: Schema.String;
|
|
46
|
-
readonly detail: Schema.String;
|
|
47
|
-
}>, Schema.Struct<{
|
|
48
|
-
readonly _tag: Schema.Literal<"MigrationIntentRequired">;
|
|
49
|
-
readonly requirements: Schema.$Array<Schema.Struct<{
|
|
50
|
-
readonly code: Schema.Literals<readonly ["ambiguous", "destructive", "missing-backfill", "type-change", "unsupported", "stale-intent", "conflicting-intent"]>;
|
|
51
|
-
readonly relation: Schema.String;
|
|
52
|
-
readonly field: Schema.NullOr<Schema.String>;
|
|
53
|
-
readonly detail: Schema.String;
|
|
54
|
-
}>>;
|
|
55
|
-
readonly truncated: Schema.Boolean;
|
|
56
41
|
}>, Schema.Struct<{
|
|
57
42
|
readonly _tag: Schema.Literals<PlainTag[]>;
|
|
43
|
+
readonly detail: Schema.optional<Schema.String>;
|
|
58
44
|
}>]>;
|
|
59
45
|
export type ProtocolReason = typeof ProtocolReason.Type;
|
|
60
46
|
declare const ProtocolErrorBase: Schema.Class<ProtocolError, Schema.TaggedStruct<"ProtocolError", {
|
|
@@ -62,7 +48,7 @@ declare const ProtocolErrorBase: Schema.Class<ProtocolError, Schema.TaggedStruct
|
|
|
62
48
|
reason: typeof ProtocolReason;
|
|
63
49
|
}>, Cause.YieldableError>;
|
|
64
50
|
export declare class ProtocolError extends ProtocolErrorBase {
|
|
65
|
-
get code(): "Contention" | "InsufficientLocalDisk" | "MaintenanceRequired" | "MaterializationStale" | "
|
|
51
|
+
get code(): "Contention" | "InsufficientLocalDisk" | "MaintenanceRequired" | "MaterializationStale" | "NotYetAvailable" | PlainTag;
|
|
66
52
|
}
|
|
67
53
|
export type LogError = DbError | ProtocolError;
|
|
68
54
|
/**
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,OAAO,EAAW,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,OAAO,EAAW,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAoC9C,QAAA,MAAM,UAAU,YACf,YAAY,EACZ,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,CACb,CAAA;AACV,KAAK,aAAa,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAA;AAChD,KAAK,QAAQ,GAAG,OAAO,CAAC,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,CAAA;AAQ3E,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;IAOzB,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,IAAI,CAAA;AAEvD,QAAA,MAAM,iBAAiB,EAAE,MAAM,CAAC,KAAK,CACpC,aAAa,EACb,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE;IAAE,SAAS,EAAE,OAAO,MAAM,CAAC,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,cAAc,CAAA;CAAE,CAAC,EACxG,KAAK,CAAC,cAAc,CAInB,CAAA;AAEF,qBAAa,aAAc,SAAQ,iBAAiB;IACnD,IAAI,IAAI,2HAEP;CACD;AAED,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,aAAa,CAAA;AAS9C;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,QAAQ,CAYtE;AAED,kDAAkD;AAClD,wBAAgB,aAAa,CAC5B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,GAChE,aAAa,CAEf;AAED,2EAA2E;AAC3E,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,sDAAsD;AACtD,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,gFAAgF;AAChF,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEpD"}
|
package/dist/errors.js
CHANGED
|
@@ -15,23 +15,27 @@ import { Schema } from "effect";
|
|
|
15
15
|
import { protocolErrorCodes } from "#codes.ts";
|
|
16
16
|
const Contention = Schema.Struct({
|
|
17
17
|
_tag: Schema.Literal("Contention"),
|
|
18
|
-
attempts: Schema.Number
|
|
18
|
+
attempts: Schema.Number,
|
|
19
|
+
detail: Schema.optional(Schema.String)
|
|
19
20
|
});
|
|
20
21
|
const NotYetAvailable = Schema.Struct({
|
|
21
22
|
_tag: Schema.Literal("NotYetAvailable"),
|
|
22
23
|
requestedSeq: Schema.BigInt,
|
|
23
|
-
capturedSeq: Schema.BigInt
|
|
24
|
+
capturedSeq: Schema.BigInt,
|
|
25
|
+
detail: Schema.optional(Schema.String)
|
|
24
26
|
});
|
|
25
27
|
const InsufficientLocalDisk = Schema.Struct({
|
|
26
28
|
_tag: Schema.Literal("InsufficientLocalDisk"),
|
|
27
29
|
requiredBytes: Schema.BigInt,
|
|
28
|
-
availableBytes: Schema.BigInt
|
|
30
|
+
availableBytes: Schema.BigInt,
|
|
31
|
+
detail: Schema.optional(Schema.String)
|
|
29
32
|
});
|
|
30
33
|
/** Envelope backpressure: the retained tail exceeded its policy. */
|
|
31
34
|
const MaintenanceRequired = Schema.Struct({
|
|
32
35
|
_tag: Schema.Literal("MaintenanceRequired"),
|
|
33
36
|
count: Schema.BigInt,
|
|
34
|
-
bytes: Schema.BigInt
|
|
37
|
+
bytes: Schema.BigInt,
|
|
38
|
+
detail: Schema.optional(Schema.String)
|
|
35
39
|
});
|
|
36
40
|
/**
|
|
37
41
|
* The warm local materialization is behind the checkpoint base. Hydration is
|
|
@@ -43,50 +47,16 @@ const MaterializationStale = Schema.Struct({
|
|
|
43
47
|
_tag: Schema.Literal("MaterializationStale"),
|
|
44
48
|
detail: Schema.String
|
|
45
49
|
});
|
|
46
|
-
const MigrationDrift = Schema.Struct({
|
|
47
|
-
_tag: Schema.Literal("MigrationDrift"),
|
|
48
|
-
detail: Schema.String
|
|
49
|
-
});
|
|
50
|
-
const MigrationUnsupported = Schema.Struct({
|
|
51
|
-
_tag: Schema.Literal("MigrationUnsupported"),
|
|
52
|
-
detail: Schema.String
|
|
53
|
-
});
|
|
54
|
-
const MigrationRepository = Schema.Struct({
|
|
55
|
-
_tag: Schema.Literal("MigrationRepository"),
|
|
56
|
-
path: Schema.String,
|
|
57
|
-
detail: Schema.String
|
|
58
|
-
});
|
|
59
|
-
const MigrationIntentRequired = Schema.Struct({
|
|
60
|
-
_tag: Schema.Literal("MigrationIntentRequired"),
|
|
61
|
-
requirements: Schema.Array(Schema.Struct({
|
|
62
|
-
code: Schema.Literals([
|
|
63
|
-
"ambiguous",
|
|
64
|
-
"destructive",
|
|
65
|
-
"missing-backfill",
|
|
66
|
-
"type-change",
|
|
67
|
-
"unsupported",
|
|
68
|
-
"stale-intent",
|
|
69
|
-
"conflicting-intent"
|
|
70
|
-
]),
|
|
71
|
-
relation: Schema.String,
|
|
72
|
-
field: Schema.NullOr(Schema.String),
|
|
73
|
-
detail: Schema.String
|
|
74
|
-
})),
|
|
75
|
-
truncated: Schema.Boolean
|
|
76
|
-
});
|
|
77
50
|
const structured = [
|
|
78
51
|
"Contention",
|
|
79
52
|
"NotYetAvailable",
|
|
80
53
|
"InsufficientLocalDisk",
|
|
81
54
|
"MaintenanceRequired",
|
|
82
|
-
"MaterializationStale"
|
|
83
|
-
"MigrationDrift",
|
|
84
|
-
"MigrationUnsupported",
|
|
85
|
-
"MigrationRepository",
|
|
86
|
-
"MigrationIntentRequired"
|
|
55
|
+
"MaterializationStale"
|
|
87
56
|
];
|
|
88
57
|
const PlainReason = Schema.Struct({
|
|
89
|
-
_tag: Schema.Literals(protocolErrorCodes.filter((code) => !structured.includes(code)))
|
|
58
|
+
_tag: Schema.Literals(protocolErrorCodes.filter((code) => !structured.includes(code))),
|
|
59
|
+
detail: Schema.optional(Schema.String)
|
|
90
60
|
});
|
|
91
61
|
export const ProtocolReason = Schema.Union([
|
|
92
62
|
Contention,
|
|
@@ -94,10 +64,6 @@ export const ProtocolReason = Schema.Union([
|
|
|
94
64
|
InsufficientLocalDisk,
|
|
95
65
|
MaintenanceRequired,
|
|
96
66
|
MaterializationStale,
|
|
97
|
-
MigrationDrift,
|
|
98
|
-
MigrationUnsupported,
|
|
99
|
-
MigrationRepository,
|
|
100
|
-
MigrationIntentRequired,
|
|
101
67
|
PlainReason
|
|
102
68
|
]);
|
|
103
69
|
const ProtocolErrorBase = Schema.TaggedError()("ProtocolError", {
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAc,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAE9C,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC,MAAM;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/identity.d.ts
CHANGED
|
@@ -39,11 +39,6 @@ declare const rootIdBrand: unique symbol;
|
|
|
39
39
|
export type RootId = string & {
|
|
40
40
|
readonly [rootIdBrand]: typeof rootIdBrand;
|
|
41
41
|
};
|
|
42
|
-
declare const planSetDigestBrand: unique symbol;
|
|
43
|
-
/** The exact ordered pending-suffix commitment (chapter 33). */
|
|
44
|
-
export type PlanSetDigest = string & {
|
|
45
|
-
readonly [planSetDigestBrand]: typeof planSetDigestBrand;
|
|
46
|
-
};
|
|
47
42
|
export interface DatabaseIdentity {
|
|
48
43
|
readonly databaseId: DatabaseId;
|
|
49
44
|
readonly incarnationId: IncarnationId;
|
|
@@ -122,9 +117,6 @@ export declare const DecisionDigest: {
|
|
|
122
117
|
export declare const RootId: {
|
|
123
118
|
readonly fromString: (raw: string) => Result.Result<RootId, DbError>;
|
|
124
119
|
};
|
|
125
|
-
export declare const PlanSetDigest: {
|
|
126
|
-
readonly fromHex: (raw: string) => Result.Result<PlanSetDigest, DbError>;
|
|
127
|
-
};
|
|
128
120
|
/**
|
|
129
121
|
* The schema identity is core-owned; the log validates only the canonical
|
|
130
122
|
* 64-lowercase-hex spelling when a token crosses its own HTTP boundary.
|
package/dist/identity.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAG/B,OAAO,CAAC,MAAM,eAAe,EAAE,OAAO,MAAM,CAAA;AAC5C,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG;IAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,EAAE,OAAO,eAAe,CAAA;CAAE,CAAA;AACtF,OAAO,CAAC,MAAM,kBAAkB,EAAE,OAAO,MAAM,CAAA;AAC/C,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG;IAAE,QAAQ,CAAC,CAAC,kBAAkB,CAAC,EAAE,OAAO,kBAAkB,CAAA;CAAE,CAAA;AAC/F,OAAO,CAAC,MAAM,cAAc,EAAE,OAAO,MAAM,CAAA;AAC3C,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG;IAAE,QAAQ,CAAC,CAAC,cAAc,CAAC,EAAE,OAAO,cAAc,CAAA;CAAE,CAAA;AACnF,OAAO,CAAC,MAAM,gBAAgB,EAAE,OAAO,MAAM,CAAA;AAC7C,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG;IAAE,QAAQ,CAAC,CAAC,gBAAgB,CAAC,EAAE,OAAO,gBAAgB,CAAA;CAAE,CAAA;AACzF,OAAO,CAAC,MAAM,kBAAkB,EAAE,OAAO,MAAM,CAAA;AAC/C,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,kBAAkB,CAAC,EAAE,OAAO,kBAAkB,CAAA;CAAE,CAAA;AACjG,OAAO,CAAC,MAAM,mBAAmB,EAAE,OAAO,MAAM,CAAA;AAChD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,OAAO,mBAAmB,CAAA;CAAE,CAAA;AACpG,OAAO,CAAC,MAAM,WAAW,EAAE,OAAO,MAAM,CAAA;AACxC,kEAAkE;AAClE,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,OAAO,WAAW,CAAA;CAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"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"}
|
package/dist/identity.js
CHANGED
|
@@ -114,11 +114,6 @@ export const RootId = {
|
|
|
114
114
|
return Result.succeed(raw);
|
|
115
115
|
}
|
|
116
116
|
};
|
|
117
|
-
export const PlanSetDigest = {
|
|
118
|
-
fromHex(raw) {
|
|
119
|
-
return Result.map(hex64("PlanSetDigest.fromHex", raw), (hex) => hex);
|
|
120
|
-
}
|
|
121
|
-
};
|
|
122
117
|
/**
|
|
123
118
|
* The schema identity is core-owned; the log validates only the canonical
|
|
124
119
|
* 64-lowercase-hex spelling when a token crosses its own HTTP boundary.
|