@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.
Files changed (76) hide show
  1. package/dist/braids.d.ts +28 -0
  2. package/dist/braids.d.ts.map +1 -0
  3. package/{src/braids.ts → dist/braids.js} +22 -29
  4. package/dist/braids.js.map +1 -0
  5. package/dist/bytes.d.ts +26 -0
  6. package/dist/bytes.d.ts.map +1 -0
  7. package/dist/bytes.js +86 -0
  8. package/dist/bytes.js.map +1 -0
  9. package/dist/chain.d.ts +56 -0
  10. package/dist/chain.d.ts.map +1 -0
  11. package/dist/chain.js +137 -0
  12. package/dist/chain.js.map +1 -0
  13. package/dist/codec.d.ts +71 -0
  14. package/dist/codec.d.ts.map +1 -0
  15. package/dist/codec.js +179 -0
  16. package/dist/codec.js.map +1 -0
  17. package/dist/descriptor.d.ts +61 -0
  18. package/dist/descriptor.d.ts.map +1 -0
  19. package/dist/descriptor.js +160 -0
  20. package/dist/descriptor.js.map +1 -0
  21. package/dist/errors.d.ts +202 -0
  22. package/dist/errors.d.ts.map +1 -0
  23. package/dist/errors.js +122 -0
  24. package/dist/errors.js.map +1 -0
  25. package/dist/index.d.ts +34 -0
  26. package/dist/index.d.ts.map +1 -0
  27. package/dist/index.js +24 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/keys.d.ts +52 -0
  30. package/dist/keys.d.ts.map +1 -0
  31. package/dist/keys.js +166 -0
  32. package/dist/keys.js.map +1 -0
  33. package/dist/manifest.d.ts +42 -0
  34. package/dist/manifest.d.ts.map +1 -0
  35. package/dist/manifest.js +116 -0
  36. package/dist/manifest.js.map +1 -0
  37. package/dist/replica.d.ts +154 -0
  38. package/dist/replica.d.ts.map +1 -0
  39. package/dist/replica.js +820 -0
  40. package/dist/replica.js.map +1 -0
  41. package/dist/store-s3.d.ts +31 -0
  42. package/dist/store-s3.d.ts.map +1 -0
  43. package/dist/store-s3.js +299 -0
  44. package/dist/store-s3.js.map +1 -0
  45. package/dist/store.d.ts +129 -0
  46. package/dist/store.d.ts.map +1 -0
  47. package/dist/store.js +577 -0
  48. package/dist/store.js.map +1 -0
  49. package/dist/tenants.d.ts +56 -0
  50. package/dist/tenants.d.ts.map +1 -0
  51. package/dist/tenants.js +333 -0
  52. package/dist/tenants.js.map +1 -0
  53. package/dist/tilde-family.json +21 -0
  54. package/dist/vector.d.ts +31 -0
  55. package/dist/vector.d.ts.map +1 -0
  56. package/dist/vector.js +87 -0
  57. package/dist/vector.js.map +1 -0
  58. package/dist/writer.d.ts +106 -0
  59. package/dist/writer.d.ts.map +1 -0
  60. package/dist/writer.js +677 -0
  61. package/dist/writer.js.map +1 -0
  62. package/package.json +12 -7
  63. package/src/bytes.ts +0 -115
  64. package/src/chain.ts +0 -181
  65. package/src/codec.ts +0 -252
  66. package/src/descriptor.ts +0 -240
  67. package/src/errors.ts +0 -309
  68. package/src/index.ts +0 -57
  69. package/src/keys.ts +0 -218
  70. package/src/manifest.ts +0 -161
  71. package/src/replica.ts +0 -1061
  72. package/src/store-s3.ts +0 -377
  73. package/src/store.ts +0 -727
  74. package/src/tenants.ts +0 -414
  75. package/src/vector.ts +0 -103
  76. package/src/writer.ts +0 -977
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writer.js","sourceRoot":"","sources":["../src/writer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,20 +1,24 @@
1
1
  {
2
2
  "name": "@bjornpagen/bumbledb-log",
3
- "version": "0.20.0",
3
+ "version": "0.20.2",
4
4
  "description": "Braided object-store replication for bumbledb: the command codec, theory-derived braids, and replica/writer over five store verbs",
5
5
  "type": "module",
6
6
  "exports": {
7
7
  ".": {
8
- "types": "./src/index.ts",
9
- "default": "./src/index.ts"
8
+ "types": "./dist/index.d.ts",
9
+ "default": "./dist/index.js"
10
10
  }
11
11
  },
12
12
  "imports": {
13
13
  "#test/*.ts": "./test/*.ts",
14
- "#*.ts": "./src/*.ts"
14
+ "#*.ts": {
15
+ "bumbledb-src": "./src/*.ts",
16
+ "types": "./dist/*.d.ts",
17
+ "default": "./dist/*.js"
18
+ }
15
19
  },
16
20
  "files": [
17
- "src",
21
+ "dist",
18
22
  "README.md"
19
23
  ],
20
24
  "keywords": [
@@ -37,7 +41,7 @@
37
41
  "arkregex": "^0.0.8"
38
42
  },
39
43
  "peerDependencies": {
40
- "@bjornpagen/bumbledb": "^0.20.0"
44
+ "@bjornpagen/bumbledb": "^0.20.2"
41
45
  },
42
46
  "devDependencies": {
43
47
  "@biomejs/biome": "2.5.4",
@@ -53,8 +57,9 @@
53
57
  },
54
58
  "private": false,
55
59
  "scripts": {
60
+ "build": "node scripts/build.ts",
56
61
  "typecheck": "tsc --noEmit",
57
62
  "lint": "biome check .",
58
- "test": "node --test 'test/**/*.test.ts'"
63
+ "test": "pnpm run build && node --test 'test/**/*.test.ts'"
59
64
  }
60
65
  }
package/src/bytes.ts DELETED
@@ -1,115 +0,0 @@
1
- /**
2
- * Byte primitives beside the one grammar: the hex spelling every
3
- * document digest walks (32 bytes, 64 lowercase hex characters), the
4
- * `Digest32` brand, byte equality, and the u64 arithmetic the vector
5
- * and lease algebras share. The wire's own cursors live in
6
- * `crates/bumbledb-log`; nothing here reads or writes protocol bytes.
7
- */
8
-
9
- import * as errors from "@superbuilders/errors"
10
-
11
- const U64_MAX = 0xffffffffffffffffn
12
-
13
- const utf8Encoder = new TextEncoder()
14
- /** Fatal UTF-8. ignoreBOM is true: a leading U+FEFF is a character, not a stripped BOM. */
15
- const utf8StrictDecoder = new TextDecoder("utf-8", { fatal: true, ignoreBOM: true })
16
-
17
- declare const digest32Brand: unique symbol
18
- type Digest32 = Uint8Array & { readonly [digest32Brand]: typeof digest32Brand }
19
-
20
- function bytesEqual(a: Uint8Array, b: Uint8Array): boolean {
21
- if (a.length !== b.length) {
22
- return false
23
- }
24
- for (let i = 0; i < a.length; i++) {
25
- if (a[i] !== b[i]) {
26
- return false
27
- }
28
- }
29
- return true
30
- }
31
-
32
- const HEX_DIGITS = "0123456789abcdef"
33
-
34
- function hexNibble(byte: number): number | undefined {
35
- if (byte >= 0x30 && byte <= 0x39) {
36
- return byte - 0x30
37
- }
38
- if (byte >= 0x61 && byte <= 0x66) {
39
- return byte - 0x61 + 10
40
- }
41
- return undefined
42
- }
43
-
44
- function toHex(bytes: Uint8Array): string {
45
- let out = ""
46
- for (const byte of bytes) {
47
- out += HEX_DIGITS[byte >>> 4]
48
- out += HEX_DIGITS[byte & 0xf]
49
- }
50
- return out
51
- }
52
-
53
- function fromHex(hex: string): Uint8Array {
54
- const raw = utf8Encoder.encode(hex)
55
- if (raw.length % 2 !== 0) {
56
- throw errors.new(`not lowercase hex: ${hex}`)
57
- }
58
- const out = new Uint8Array(raw.length / 2)
59
- for (let i = 0, j = 0; i < raw.length; i += 2, j++) {
60
- const hiByte = raw[i]
61
- const loByte = raw[i + 1]
62
- if (hiByte === undefined || loByte === undefined) {
63
- throw errors.new(`not lowercase hex: ${hex}`)
64
- }
65
- const hi = hexNibble(hiByte)
66
- const lo = hexNibble(loByte)
67
- if (hi === undefined || lo === undefined) {
68
- throw errors.new(`not lowercase hex: ${hex}`)
69
- }
70
- out[j] = (hi << 4) | lo
71
- }
72
- return out
73
- }
74
-
75
- function digest32(bytes: Uint8Array): Digest32 {
76
- if (bytes.length !== 32) {
77
- throw errors.new(`digest is not 32 bytes: ${bytes.length}`)
78
- }
79
- const out = new Uint8Array(32)
80
- out.set(bytes)
81
- return out as Digest32
82
- }
83
-
84
- function digest32FromHex(hex: string): Digest32 {
85
- return digest32(fromHex(hex))
86
- }
87
-
88
- function hex32(bytes: Digest32): string {
89
- return toHex(bytes)
90
- }
91
-
92
- function saturatingAddU64(a: bigint, b: bigint): bigint {
93
- const sum = a + b
94
- return sum > U64_MAX ? U64_MAX : sum
95
- }
96
-
97
- function checkedAddU64(a: bigint, b: bigint): bigint | undefined {
98
- const sum = a + b
99
- return sum > U64_MAX ? undefined : sum
100
- }
101
-
102
- export type { Digest32 }
103
- export {
104
- bytesEqual,
105
- checkedAddU64,
106
- digest32,
107
- digest32FromHex,
108
- fromHex,
109
- hex32,
110
- saturatingAddU64,
111
- toHex,
112
- U64_MAX,
113
- utf8Encoder,
114
- utf8StrictDecoder
115
- }
package/src/chain.ts DELETED
@@ -1,181 +0,0 @@
1
- /**
2
- * The chain sidecar in `dir/chain`: a floor cache of chain position,
3
- * written atomically (temp + rename, fsync). The chain is Settled or
4
- * Pending — generation is the vector sum, plus one exactly when the
5
- * value is Pending. The byte grammar has one implementation —
6
- * `crates/bumbledb-log` behind the napi bridge — so parse and render
7
- * are marshal walks over the sealed codec handle; the file IO half
8
- * lives here. The content address is blake3 of the rendered bytes.
9
- */
10
-
11
- import * as crypto from "node:crypto"
12
- import * as fs from "node:fs/promises"
13
- import * as path from "node:path"
14
- import type { LogChain, LogCodecHandle, LogSidecarKind } from "@bjornpagen/bumbledb"
15
- import { internalLogParseSidecar, internalLogRenderSidecar } from "@bjornpagen/bumbledb"
16
- import * as errors from "@superbuilders/errors"
17
- import type { Digest32 } from "#bytes.ts"
18
- import { digest32, saturatingAddU64, U64_MAX } from "#bytes.ts"
19
- import type { Braid } from "#descriptor.ts"
20
- import { braidHex } from "#descriptor.ts"
21
- import { refuse } from "#errors.ts"
22
- import type { Generation } from "#keys.ts"
23
- import { generation } from "#keys.ts"
24
- import { Vector } from "#vector.ts"
25
-
26
- /** The sidecar's file name inside a replica directory. */
27
- const CHAIN_FILE = "chain"
28
-
29
- /** One braid's chain coordinate: the applied count, the applied
30
- * batch's content address, its timestamp. */
31
- interface ChainEntry {
32
- readonly g: Generation
33
- readonly prev: Digest32
34
- readonly ts: bigint
35
- }
36
-
37
- interface Pending {
38
- readonly braid: Braid
39
- readonly slot: Generation
40
- readonly bytes: Uint8Array
41
- }
42
-
43
- type Chain =
44
- | { readonly tag: "settled"; readonly entries: ReadonlyMap<Braid, ChainEntry> }
45
- | { readonly tag: "pending"; readonly entries: ReadonlyMap<Braid, ChainEntry>; readonly batch: Pending }
46
-
47
- type SidecarRead =
48
- | { readonly tag: "absent" }
49
- | { readonly tag: "fault"; readonly io: Error }
50
- | { readonly tag: "corrupt"; readonly parse: Error }
51
- | { readonly tag: "read"; readonly chain: Chain }
52
-
53
- function codeOf(error: Error): string | undefined {
54
- return (error as NodeJS.ErrnoException).code
55
- }
56
-
57
- function braidIdOf(id: Braid): number {
58
- return Number.parseInt(id.slice(1), 16)
59
- }
60
-
61
- function vectorOf(entries: ReadonlyMap<Braid, { readonly g: bigint }>): Vector {
62
- const counts = new Map<Braid, bigint>()
63
- for (const [braid, entry] of entries) {
64
- counts.set(braid, entry.g)
65
- }
66
- return Vector.from(counts)
67
- }
68
-
69
- function chainSum(chain: Chain): bigint {
70
- const sum = vectorOf(chain.entries).sum()
71
- return typeof sum === "bigint" ? sum : U64_MAX
72
- }
73
-
74
- function chainGeneration(chain: Chain): bigint {
75
- const sum = chainSum(chain)
76
- return chain.tag === "settled" ? sum : saturatingAddU64(sum, 1n)
77
- }
78
-
79
- /**
80
- * Remints a bridge refusal row as the driver's typed refusal. The
81
- * boundary carries `{ kind, message }` only: the kind is the log
82
- * core's own identity string, so the cause payload holds the data this
83
- * side owns — the document's length, its version byte (byte 0 of every
84
- * v:3 document). The raw braid id of an `UnknownBraid` rides the
85
- * message.
86
- */
87
- function refuseBridged(kind: LogSidecarKind, message: string, bytes: Uint8Array): never {
88
- switch (kind) {
89
- case "Version":
90
- return refuse({ kind: "Version", version: bytes[0] ?? 0 }, message)
91
- case "Overflow":
92
- return refuse({ kind: "Overflow" }, message)
93
- case "UnknownBraid":
94
- return refuse({ kind: "UnknownBraid" }, message)
95
- case "Malformed":
96
- return refuse({ kind: "Malformed", at: bytes.length }, message)
97
- }
98
- }
99
-
100
- function renderSidecar(codec: LogCodecHandle, chain: Chain): Uint8Array {
101
- const entries = [...chain.entries.entries()]
102
- .sort(function ascending(a, b) {
103
- return braidIdOf(a[0]) - braidIdOf(b[0])
104
- })
105
- .map(function entryOf([id, entry]) {
106
- return { braid: braidIdOf(id), g: entry.g, prev: entry.prev, ts: entry.ts }
107
- })
108
- const doc: LogChain =
109
- chain.tag === "settled"
110
- ? { entries }
111
- : {
112
- entries,
113
- pending: { braid: braidIdOf(chain.batch.braid), slot: chain.batch.slot, bytes: chain.batch.bytes }
114
- }
115
- return internalLogRenderSidecar(codec, doc)
116
- }
117
-
118
- function parseSidecar(codec: LogCodecHandle, bytes: Uint8Array): Chain {
119
- const parsed = internalLogParseSidecar(codec, bytes)
120
- if (!parsed.ok) {
121
- refuseBridged(parsed.kind, parsed.message, bytes)
122
- }
123
- const entries = new Map<Braid, ChainEntry>()
124
- for (const entry of parsed.value.entries) {
125
- entries.set(braidHex(entry.braid), { g: generation(entry.g), prev: digest32(entry.prev), ts: entry.ts })
126
- }
127
- const pending = parsed.value.pending
128
- if (pending === undefined) {
129
- return { tag: "settled", entries }
130
- }
131
- return {
132
- tag: "pending",
133
- entries,
134
- batch: { braid: braidHex(pending.braid), slot: generation(pending.slot), bytes: pending.bytes }
135
- }
136
- }
137
-
138
- async function readSidecar(codec: LogCodecHandle, file: string): Promise<SidecarRead> {
139
- const read = await errors.try(fs.readFile(file))
140
- if (read.error) {
141
- if (codeOf(read.error) === "ENOENT") {
142
- return { tag: "absent" }
143
- }
144
- return { tag: "fault", io: read.error }
145
- }
146
- const parsed = errors.trySync(function parse() {
147
- return parseSidecar(codec, read.data)
148
- })
149
- if (parsed.error) {
150
- return { tag: "corrupt", parse: parsed.error }
151
- }
152
- return { tag: "read", chain: parsed.data }
153
- }
154
-
155
- async function writeSidecar(codec: LogCodecHandle, file: string, chain: Chain): Promise<void> {
156
- const dir = path.dirname(file)
157
- await fs.mkdir(dir, { recursive: true })
158
- const temp = path.join(dir, `.chain-${process.pid}-${crypto.randomBytes(4).toString("hex")}`)
159
- const handle = await fs.open(temp, "wx")
160
- const written = await errors.try(
161
- (async function writeAll() {
162
- await handle.writeFile(renderSidecar(codec, chain))
163
- await handle.sync()
164
- })()
165
- )
166
- await handle.close()
167
- if (written.error) {
168
- await fs.rm(temp, { force: true })
169
- throw errors.wrap(written.error, `write sidecar ${file}`)
170
- }
171
- await fs.rename(temp, file)
172
- const dirHandle = await fs.open(dir, "r")
173
- const synced = await errors.try(dirHandle.sync())
174
- await dirHandle.close()
175
- if (synced.error) {
176
- throw errors.wrap(synced.error, `fsync sidecar directory ${dir}`)
177
- }
178
- }
179
-
180
- export type { Chain, ChainEntry, Pending }
181
- export { CHAIN_FILE, chainGeneration, chainSum, parseSidecar, readSidecar, renderSidecar, writeSidecar }
package/src/codec.ts DELETED
@@ -1,252 +0,0 @@
1
- /**
2
- * The command codec seat (20): one implementation reads and writes the
3
- * batch wire — `crates/bumbledb-log`, reached through the sealed
4
- * per-theory `LogCodec` handle the descriptor parse mints
5
- * (`descriptor.codec`). This module is typed payload construction only:
6
- * raw rows tag by the descriptor's layout on the way in, decoded rows
7
- * cross exactly as the engine's `ValueOut` walk, and every grammar
8
- * refusal carries the log core's own identity kind, minted through the
9
- * bridge's `log-identities.json` table. The chain discipline
10
- * (`verifyChain`) is pure slot algebra over decoded headers and stays
11
- * host-side; no byte grammar lives here.
12
- */
13
-
14
- import type {
15
- FactValue,
16
- LogBatchDecodeKind,
17
- LogBatchEncodeKind,
18
- LogOpIn,
19
- ValueSpec,
20
- ValueTypeSpec
21
- } from "@bjornpagen/bumbledb"
22
- import { internalLogDecodeBatch, internalLogEncodeBatch } from "@bjornpagen/bumbledb"
23
- import * as errors from "@superbuilders/errors"
24
- import type { Digest32 } from "#bytes.ts"
25
- import { bytesEqual, digest32 } from "#bytes.ts"
26
- import type { ChainEntry } from "#chain.ts"
27
- import type { Braid, Descriptor, Theory } from "#descriptor.ts"
28
- import { braidHex, descriptorOf } from "#descriptor.ts"
29
- import { refuse, refuseChain } from "#errors.ts"
30
- import type { Generation } from "#keys.ts"
31
- import { generation } from "#keys.ts"
32
-
33
- interface Op {
34
- readonly op: "insert" | "delete"
35
- readonly relation: string
36
- readonly rows: ReadonlyArray<readonly FactValue[]>
37
- }
38
-
39
- interface BatchHeader {
40
- readonly fingerprint: Digest32
41
- readonly braid: Braid
42
- readonly braidGen: Generation
43
- readonly prev: Digest32
44
- readonly writer: bigint
45
- readonly timestamp: bigint
46
- }
47
-
48
- /**
49
- * Encode input. The handle is the fingerprint authority, so no
50
- * fingerprint field exists here — encode fills the wire's from the
51
- * sealed codec. `prev` is raw bytes so a short digest reaches the named
52
- * `DigestWidth` refuse at this gate instead of dying at `Digest32`
53
- * construction. Decode still produces a branded `BatchHeader`.
54
- */
55
- interface EncodeHeader {
56
- readonly braid: Braid
57
- readonly braidGen: Generation
58
- readonly prev: Uint8Array
59
- readonly writer: bigint
60
- readonly timestamp: bigint
61
- }
62
-
63
- interface DecodedBatch {
64
- readonly header: BatchHeader
65
- readonly ops: readonly Op[]
66
- }
67
-
68
- function braidIdOf(id: Braid): number {
69
- return Number.parseInt(id.slice(1), 16)
70
- }
71
-
72
- function asDigest(bytes: Uint8Array, at: string): Digest32 {
73
- if (bytes.length !== 32) {
74
- refuse({ kind: "DigestWidth" }, `${at} is not 32 bytes`)
75
- }
76
- return digest32(bytes)
77
- }
78
-
79
- /** A bridge refusal row surfaces as `ErrRefused` carrying the core's identity kind. */
80
- function refuseBridge(kind: LogBatchDecodeKind | LogBatchEncodeKind, message: string): never {
81
- refuse({ kind }, message)
82
- }
83
-
84
- /**
85
- * Tags one raw cell by the field's declared layout — the bridge's
86
- * inbound spelling. Only the JS shape is judged here (the tag must be
87
- * constructible); range, width, and interval emptiness are the core's
88
- * own `Value` refusal.
89
- */
90
- function taggedCell(where: string, type: ValueTypeSpec, value: FactValue): ValueSpec {
91
- switch (type.kind) {
92
- case "bool": {
93
- if (typeof value !== "boolean") {
94
- throw errors.new(`${where}: expected boolean`)
95
- }
96
- return { kind: "bool", value }
97
- }
98
- case "u64": {
99
- if (typeof value !== "bigint") {
100
- throw errors.new(`${where}: expected u64 bigint`)
101
- }
102
- return { kind: "u64", value }
103
- }
104
- case "i64": {
105
- if (typeof value !== "bigint") {
106
- throw errors.new(`${where}: expected i64 bigint`)
107
- }
108
- return { kind: "i64", value }
109
- }
110
- case "string": {
111
- if (typeof value !== "string") {
112
- throw errors.new(`${where}: expected well-formed string`)
113
- }
114
- if (!value.isWellFormed()) {
115
- throw errors.new(`${where}: string cell is not well-formed UTF-8`)
116
- }
117
- return { kind: "string", value }
118
- }
119
- case "fixedBytes": {
120
- if (!(value instanceof Uint8Array)) {
121
- throw errors.new(`${where}: expected ${type.len}-byte Uint8Array`)
122
- }
123
- return { kind: "fixedBytes", value }
124
- }
125
- case "interval": {
126
- if (typeof value !== "object" || value instanceof Uint8Array) {
127
- throw errors.new(`${where}: expected interval value`)
128
- }
129
- return type.element === "u64"
130
- ? { kind: "intervalU64", start: value.start, end: value.end }
131
- : { kind: "intervalI64", start: value.start, end: value.end }
132
- }
133
- }
134
- }
135
-
136
- /**
137
- * Ops to the bridge's spelling: relation names resolve through the
138
- * descriptor's vocabulary (the core never sees a name), cells tag by
139
- * the layout. A cell past the layout's width has no type to tag by and
140
- * refuses `Arity` here; every other judgment is the core's.
141
- */
142
- function opsIn(descriptor: Descriptor, ops: readonly Op[]): LogOpIn[] {
143
- return ops.map(function opIn(op, opIndex) {
144
- const relation = descriptor.relationByName.get(op.relation)
145
- if (relation === undefined) {
146
- throw errors.new(`op cites unknown relation ${op.relation}`)
147
- }
148
- const rows = op.rows.map(function rowIn(row, rowIndex) {
149
- return row.map(function cellIn(value, ordinal) {
150
- const field = relation.fields[ordinal]
151
- if (field === undefined) {
152
- refuse(
153
- { kind: "Arity", op: opIndex, relation: relation.name, row: rowIndex },
154
- `op ${opIndex} relation ${relation.name} row ${rowIndex} cell ${ordinal} is outside the ${relation.fields.length}-field layout`
155
- )
156
- }
157
- return taggedCell(`relation ${relation.name} field ${field.name}`, field.type, value)
158
- })
159
- })
160
- return { kind: op.op, relation: relation.id, rows }
161
- })
162
- }
163
-
164
- /**
165
- * Encodes one batch through the sealed codec. The handle is the
166
- * fingerprint authority: encode fills the wire's fingerprint from the
167
- * sealed codec, so none rides the bridge (a short `prev` is
168
- * `DigestWidth` at this gate). Braid membership, closedness, arity, and
169
- * value validity are the core's refusals, crossing with their identity
170
- * kinds.
171
- */
172
- function encodeBatch(theory: Theory, header: EncodeHeader, ops: readonly Op[]): Uint8Array {
173
- const descriptor = descriptorOf(theory)
174
- const prev = asDigest(header.prev, "prev")
175
- const outcome = internalLogEncodeBatch(
176
- descriptor.codec,
177
- {
178
- braid: braidIdOf(header.braid),
179
- braidGen: header.braidGen,
180
- prev,
181
- writer: header.writer,
182
- timestamp: header.timestamp
183
- },
184
- opsIn(descriptor, ops)
185
- )
186
- if (!outcome.ok) {
187
- refuseBridge(outcome.kind, outcome.message)
188
- }
189
- return outcome.value
190
- }
191
-
192
- /** Full parse of a batch object by the one grammar; refusals cross typed, never partial reads. */
193
- function decodeBatch(theory: Theory, bytes: Uint8Array): DecodedBatch {
194
- const descriptor = descriptorOf(theory)
195
- const outcome = internalLogDecodeBatch(descriptor.codec, bytes)
196
- if (!outcome.ok) {
197
- refuseBridge(outcome.kind, outcome.message)
198
- }
199
- const batch = outcome.value
200
- const ops = batch.ops.map(function opOut(op) {
201
- const relation = descriptor.relations[op.relation]
202
- if (relation === undefined) {
203
- throw errors.new(`decoded op cites relation ${op.relation} outside the descriptor`)
204
- }
205
- return { op: op.kind, relation: relation.name, rows: op.rows }
206
- })
207
- return {
208
- header: {
209
- // Decode already refused any batch whose fingerprint is not
210
- // the handle's own, so the descriptor's is the batch's.
211
- fingerprint: digest32(descriptor.fingerprintBytes),
212
- braid: braidHex(batch.header.braid),
213
- braidGen: generation(batch.header.braidGen),
214
- prev: digest32(batch.header.prev),
215
- writer: batch.header.writer,
216
- timestamp: batch.header.timestamp
217
- },
218
- ops
219
- }
220
- }
221
-
222
- /**
223
- * The chain discipline (20 apply, step 1): one identity, three proved
224
- * causes — the header's slot identity (braid and generation, both
225
- * halves of the key the object was fetched from), its `prev` vs the
226
- * chain head, its timestamp vs the head's. Corruption-class; the header
227
- * names the misbehaving writer, and the refusal data names the fetched
228
- * braid.
229
- */
230
- function verifyChain(header: BatchHeader, braid: Braid, slot: Generation, chain: ChainEntry): void {
231
- if (header.braid !== braid || header.braidGen !== slot) {
232
- refuseChain(
233
- { cause: "slot", braid, slot, writer: header.writer },
234
- `braid ${braid}: header slot identity ${header.braid}/${header.braidGen} ≠ the fetched key's ${braid}/${slot}`
235
- )
236
- }
237
- if (!bytesEqual(header.prev, chain.prev)) {
238
- refuseChain(
239
- { cause: "prev", braid, slot, writer: header.writer },
240
- `braid ${braid} slot ${slot}: prev does not cite the predecessor`
241
- )
242
- }
243
- if (header.timestamp < chain.ts) {
244
- refuseChain(
245
- { cause: "timestamp", braid, slot, writer: header.writer },
246
- `braid ${braid} slot ${slot}: timestamp regresses below the predecessor`
247
- )
248
- }
249
- }
250
-
251
- export type { BatchHeader, ChainEntry, DecodedBatch, EncodeHeader, Op }
252
- export { decodeBatch, encodeBatch, verifyChain }