@superbee/core 0.1.6 → 0.2.0-pre.10

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 (248) hide show
  1. package/README.md +127 -0
  2. package/dist/artifact-contract.d.ts +90 -0
  3. package/dist/artifact-contract.d.ts.map +1 -0
  4. package/dist/artifact-contract.js +205 -0
  5. package/dist/artifact-contract.js.map +1 -0
  6. package/dist/backend.d.ts +16 -1
  7. package/dist/backend.d.ts.map +1 -1
  8. package/dist/backend.js +112 -47
  9. package/dist/backend.js.map +1 -1
  10. package/dist/bundle-ops.d.ts +42 -0
  11. package/dist/bundle-ops.d.ts.map +1 -0
  12. package/dist/bundle-ops.js +88 -0
  13. package/dist/bundle-ops.js.map +1 -0
  14. package/dist/bundle.d.ts +10 -28
  15. package/dist/bundle.d.ts.map +1 -1
  16. package/dist/bundle.js +12 -69
  17. package/dist/bundle.js.map +1 -1
  18. package/dist/document-codec.d.ts +6 -1
  19. package/dist/document-codec.d.ts.map +1 -1
  20. package/dist/document-codec.js +8 -4
  21. package/dist/document-codec.js.map +1 -1
  22. package/dist/document-field-actions.d.ts +107 -0
  23. package/dist/document-field-actions.d.ts.map +1 -0
  24. package/dist/document-field-actions.js +302 -0
  25. package/dist/document-field-actions.js.map +1 -0
  26. package/dist/document-mutation.d.ts +61 -3
  27. package/dist/document-mutation.d.ts.map +1 -1
  28. package/dist/document-mutation.js +116 -25
  29. package/dist/document-mutation.js.map +1 -1
  30. package/dist/document-write-policy.d.ts +0 -1
  31. package/dist/document-write-policy.d.ts.map +1 -1
  32. package/dist/document-write-policy.js +7 -4
  33. package/dist/document-write-policy.js.map +1 -1
  34. package/dist/engine.d.ts +3 -1
  35. package/dist/engine.d.ts.map +1 -1
  36. package/dist/engine.js +6 -4
  37. package/dist/engine.js.map +1 -1
  38. package/dist/file-journaled-backend-internal.d.ts +19 -0
  39. package/dist/file-journaled-backend-internal.d.ts.map +1 -0
  40. package/dist/file-journaled-backend-internal.js +10 -0
  41. package/dist/file-journaled-backend-internal.js.map +1 -0
  42. package/dist/file-journaled-backend.d.ts +162 -0
  43. package/dist/file-journaled-backend.d.ts.map +1 -0
  44. package/dist/file-journaled-backend.js +1113 -0
  45. package/dist/file-journaled-backend.js.map +1 -0
  46. package/dist/filesystem-host.d.ts +15 -0
  47. package/dist/filesystem-host.d.ts.map +1 -0
  48. package/dist/filesystem-host.js +20 -0
  49. package/dist/filesystem-host.js.map +1 -0
  50. package/dist/filesystem-identity.d.ts +86 -4
  51. package/dist/filesystem-identity.d.ts.map +1 -1
  52. package/dist/filesystem-identity.js +338 -102
  53. package/dist/filesystem-identity.js.map +1 -1
  54. package/dist/filesystem-lock.d.ts +16 -3
  55. package/dist/filesystem-lock.d.ts.map +1 -1
  56. package/dist/filesystem-lock.js +323 -77
  57. package/dist/filesystem-lock.js.map +1 -1
  58. package/dist/filesystem-push-role.d.ts +77 -0
  59. package/dist/filesystem-push-role.d.ts.map +1 -0
  60. package/dist/filesystem-push-role.js +165 -0
  61. package/dist/filesystem-push-role.js.map +1 -0
  62. package/dist/filesystem.d.ts +17 -0
  63. package/dist/filesystem.d.ts.map +1 -0
  64. package/dist/filesystem.js +18 -0
  65. package/dist/filesystem.js.map +1 -0
  66. package/dist/freshness.d.ts +10 -7
  67. package/dist/freshness.d.ts.map +1 -1
  68. package/dist/freshness.js +14 -11
  69. package/dist/freshness.js.map +1 -1
  70. package/dist/frontmatter-contract.d.ts +2 -2
  71. package/dist/frontmatter-contract.js +2 -2
  72. package/dist/frontmatter.d.ts +11 -1
  73. package/dist/frontmatter.d.ts.map +1 -1
  74. package/dist/frontmatter.js +20 -7
  75. package/dist/frontmatter.js.map +1 -1
  76. package/dist/governed-body-write.d.ts +106 -0
  77. package/dist/governed-body-write.d.ts.map +1 -0
  78. package/dist/governed-body-write.js +251 -0
  79. package/dist/governed-body-write.js.map +1 -0
  80. package/dist/heads-digest.d.ts +32 -0
  81. package/dist/heads-digest.d.ts.map +1 -0
  82. package/dist/heads-digest.js +37 -0
  83. package/dist/heads-digest.js.map +1 -0
  84. package/dist/host-policy-snapshot.d.ts +9 -0
  85. package/dist/host-policy-snapshot.d.ts.map +1 -0
  86. package/dist/host-policy-snapshot.js +33 -0
  87. package/dist/host-policy-snapshot.js.map +1 -0
  88. package/dist/host-text.d.ts +31 -0
  89. package/dist/host-text.d.ts.map +1 -0
  90. package/dist/host-text.js +77 -0
  91. package/dist/host-text.js.map +1 -0
  92. package/dist/hosted-transport/answer-rows.d.ts +216 -0
  93. package/dist/hosted-transport/answer-rows.d.ts.map +1 -0
  94. package/dist/hosted-transport/answer-rows.js +396 -0
  95. package/dist/hosted-transport/answer-rows.js.map +1 -0
  96. package/dist/hosted-transport/carrier.d.ts +142 -0
  97. package/dist/hosted-transport/carrier.d.ts.map +1 -0
  98. package/dist/hosted-transport/carrier.js +241 -0
  99. package/dist/hosted-transport/carrier.js.map +1 -0
  100. package/dist/hosted-transport/history-pages.d.ts +55 -0
  101. package/dist/hosted-transport/history-pages.d.ts.map +1 -0
  102. package/dist/hosted-transport/history-pages.js +69 -0
  103. package/dist/hosted-transport/history-pages.js.map +1 -0
  104. package/dist/hosted-transport/index.d.ts +18 -0
  105. package/dist/hosted-transport/index.d.ts.map +1 -0
  106. package/dist/hosted-transport/index.js +18 -0
  107. package/dist/hosted-transport/index.js.map +1 -0
  108. package/dist/hosted-transport/operations.d.ts +85 -0
  109. package/dist/hosted-transport/operations.d.ts.map +1 -0
  110. package/dist/hosted-transport/operations.js +128 -0
  111. package/dist/hosted-transport/operations.js.map +1 -0
  112. package/dist/hosted-transport/paged-reads.d.ts +87 -0
  113. package/dist/hosted-transport/paged-reads.d.ts.map +1 -0
  114. package/dist/hosted-transport/paged-reads.js +238 -0
  115. package/dist/hosted-transport/paged-reads.js.map +1 -0
  116. package/dist/hosted-transport/read-adapter.d.ts +250 -0
  117. package/dist/hosted-transport/read-adapter.d.ts.map +1 -0
  118. package/dist/hosted-transport/read-adapter.js +557 -0
  119. package/dist/hosted-transport/read-adapter.js.map +1 -0
  120. package/dist/hosted-transport/root-write.d.ts +114 -0
  121. package/dist/hosted-transport/root-write.d.ts.map +1 -0
  122. package/dist/hosted-transport/root-write.js +171 -0
  123. package/dist/hosted-transport/root-write.js.map +1 -0
  124. package/dist/hosted-transport/whole-document-transport.d.ts +174 -0
  125. package/dist/hosted-transport/whole-document-transport.d.ts.map +1 -0
  126. package/dist/hosted-transport/whole-document-transport.js +411 -0
  127. package/dist/hosted-transport/whole-document-transport.js.map +1 -0
  128. package/dist/index.d.ts +29 -8
  129. package/dist/index.d.ts.map +1 -1
  130. package/dist/index.js +26 -6
  131. package/dist/index.js.map +1 -1
  132. package/dist/indexeddb-backend.d.ts +197 -0
  133. package/dist/indexeddb-backend.d.ts.map +1 -0
  134. package/dist/indexeddb-backend.js +1183 -0
  135. package/dist/indexeddb-backend.js.map +1 -0
  136. package/dist/journaled-backend.d.ts +467 -0
  137. package/dist/journaled-backend.d.ts.map +1 -0
  138. package/dist/journaled-backend.js +389 -0
  139. package/dist/journaled-backend.js.map +1 -0
  140. package/dist/kind-coverage.d.ts +99 -0
  141. package/dist/kind-coverage.d.ts.map +1 -0
  142. package/dist/kind-coverage.js +186 -0
  143. package/dist/kind-coverage.js.map +1 -0
  144. package/dist/kind-field-mutation.d.ts +15 -0
  145. package/dist/kind-field-mutation.d.ts.map +1 -0
  146. package/dist/kind-field-mutation.js +160 -0
  147. package/dist/kind-field-mutation.js.map +1 -0
  148. package/dist/kinds.d.ts +31 -1
  149. package/dist/kinds.d.ts.map +1 -1
  150. package/dist/kinds.js +86 -17
  151. package/dist/kinds.js.map +1 -1
  152. package/dist/links.d.ts +1 -1
  153. package/dist/links.d.ts.map +1 -1
  154. package/dist/links.js +5 -10
  155. package/dist/links.js.map +1 -1
  156. package/dist/managed-document-metadata.d.ts +2 -0
  157. package/dist/managed-document-metadata.d.ts.map +1 -0
  158. package/dist/managed-document-metadata.js +9 -0
  159. package/dist/managed-document-metadata.js.map +1 -0
  160. package/dist/meaningful-change-time.d.ts +6 -6
  161. package/dist/meaningful-change-time.d.ts.map +1 -1
  162. package/dist/meaningful-change-time.js +12 -13
  163. package/dist/meaningful-change-time.js.map +1 -1
  164. package/dist/memory-backend.d.ts +2 -2
  165. package/dist/memory-backend.d.ts.map +1 -1
  166. package/dist/memory-backend.js +32 -16
  167. package/dist/memory-backend.js.map +1 -1
  168. package/dist/mutation.d.ts.map +1 -1
  169. package/dist/mutation.js +2 -2
  170. package/dist/mutation.js.map +1 -1
  171. package/dist/page.d.ts.map +1 -1
  172. package/dist/page.js +2 -1
  173. package/dist/page.js.map +1 -1
  174. package/dist/paths.d.ts +6 -2
  175. package/dist/paths.d.ts.map +1 -1
  176. package/dist/paths.js +35 -33
  177. package/dist/paths.js.map +1 -1
  178. package/dist/platform.d.ts +239 -0
  179. package/dist/platform.d.ts.map +1 -0
  180. package/dist/platform.js +82 -0
  181. package/dist/platform.js.map +1 -0
  182. package/dist/portable-export.d.ts +119 -0
  183. package/dist/portable-export.d.ts.map +1 -0
  184. package/dist/portable-export.js +501 -0
  185. package/dist/portable-export.js.map +1 -0
  186. package/dist/publication-filesystem.d.ts +1 -1
  187. package/dist/publication-filesystem.d.ts.map +1 -1
  188. package/dist/publication-filesystem.js +1 -1
  189. package/dist/publication-filesystem.js.map +1 -1
  190. package/dist/query-filter.d.ts +7 -2
  191. package/dist/query-filter.d.ts.map +1 -1
  192. package/dist/query-filter.js +24 -1
  193. package/dist/query-filter.js.map +1 -1
  194. package/dist/query-order.d.ts +22 -0
  195. package/dist/query-order.d.ts.map +1 -0
  196. package/dist/query-order.js +42 -0
  197. package/dist/query-order.js.map +1 -0
  198. package/dist/recipes.d.ts +3 -1
  199. package/dist/recipes.d.ts.map +1 -1
  200. package/dist/recipes.js +4 -4
  201. package/dist/recipes.js.map +1 -1
  202. package/dist/remote-backend.d.ts +114 -22
  203. package/dist/remote-backend.d.ts.map +1 -1
  204. package/dist/remote-backend.js +285 -44
  205. package/dist/remote-backend.js.map +1 -1
  206. package/dist/remote-document-codec.d.ts +15 -0
  207. package/dist/remote-document-codec.d.ts.map +1 -0
  208. package/dist/remote-document-codec.js +103 -0
  209. package/dist/remote-document-codec.js.map +1 -0
  210. package/dist/remote-error.d.ts +38 -0
  211. package/dist/remote-error.d.ts.map +1 -0
  212. package/dist/remote-error.js +59 -0
  213. package/dist/remote-error.js.map +1 -0
  214. package/dist/remote-operations.d.ts +63 -0
  215. package/dist/remote-operations.d.ts.map +1 -0
  216. package/dist/remote-operations.js +125 -0
  217. package/dist/remote-operations.js.map +1 -0
  218. package/dist/remote-parsers.d.ts +86 -0
  219. package/dist/remote-parsers.d.ts.map +1 -0
  220. package/dist/remote-parsers.js +181 -0
  221. package/dist/remote-parsers.js.map +1 -0
  222. package/dist/remote.d.ts +7 -2
  223. package/dist/remote.d.ts.map +1 -1
  224. package/dist/remote.js +6 -1
  225. package/dist/remote.js.map +1 -1
  226. package/dist/sha256.d.ts +21 -0
  227. package/dist/sha256.d.ts.map +1 -0
  228. package/dist/sha256.js +114 -0
  229. package/dist/sha256.js.map +1 -0
  230. package/dist/storage.d.ts +8 -2
  231. package/dist/storage.d.ts.map +1 -1
  232. package/dist/storage.js +11 -2
  233. package/dist/storage.js.map +1 -1
  234. package/dist/types.d.ts +40 -5
  235. package/dist/types.d.ts.map +1 -1
  236. package/dist/uncertain-write.d.ts +178 -0
  237. package/dist/uncertain-write.d.ts.map +1 -0
  238. package/dist/uncertain-write.js +198 -0
  239. package/dist/uncertain-write.js.map +1 -0
  240. package/dist/version-transport.d.ts +7 -0
  241. package/dist/version-transport.d.ts.map +1 -1
  242. package/dist/version-transport.js +9 -0
  243. package/dist/version-transport.js.map +1 -1
  244. package/dist/versioning.d.ts +18 -7
  245. package/dist/versioning.d.ts.map +1 -1
  246. package/dist/versioning.js +23 -14
  247. package/dist/versioning.js.map +1 -1
  248. package/package.json +75 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexeddb-backend.js","sourceRoot":"","sources":["../src/indexeddb-backend.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,467 @@
1
+ /**
2
+ * The journaled-backend seam: what a storage adapter must add to {@link StorageBackend} to host
3
+ * a browser-local working copy whose synchronization is a durable intent journal. The engine
4
+ * reads and writes through `StorageBackend`; the sync runtime reads and writes through this
5
+ * seam. Any adapter that implements it and passes the journal rows of the contract kit can hold
6
+ * the working copy, whatever it persists to.
7
+ *
8
+ * The contract a second adapter must meet:
9
+ *
10
+ * - {@link JournaledBackend.writeJournaled} is ONE transaction over documents, intents, and
11
+ * meta: the document compare-and-swap of `write`, plus (optionally) deleting a superseded
12
+ * intent, recording a new intent for the written bytes, and putting meta rows. Every step is
13
+ * conditional on every other: a failed document CAS records no intent, and a superseded
14
+ * intent whose state or attempts moved fails the whole write with {@link IntentStateConflict}
15
+ * so the caller composes against fresh state. With `requireSettled`, an unsettled intent on
16
+ * the target fails it with {@link IntentHoldConflict} before the document is touched; the
17
+ * check runs inside the write's own transaction, so an intent committed while the caller was
18
+ * awaiting the network still holds the target. A recorded intent starts `pending` with zero
19
+ * attempts, carries the written bytes as `content` and their version as `local`, and takes
20
+ * the next value of a monotonic per-store sequence. The sequence advances only for a write
21
+ * that commits.
22
+ * - {@link JournaledBackend.deleteJournaled} is the deletion counterpart: ONE transaction that
23
+ * removes the document record under the same compare-and-swap, puts and removes meta rows
24
+ * with it, optionally supersedes an intent and records a deletion intent
25
+ * ({@link DOCUMENT_DELETE_KIND}) exactly as `writeJournaled` does for a write, and honours
26
+ * `requireSettled` the same way, so a document the authority deleted
27
+ * leaves the working copy together with its shared base and never while a local edit holds
28
+ * it. An absent target is not a conflict: the meta changes still apply and the result says
29
+ * `absent`, as the plain `delete` answers absence with `false`. With `onHeld`, a hold is not a
30
+ * rejection but the third outcome: the deletion and its own meta changes do not apply, the
31
+ * `onHeld` meta rows apply instead, in the same transaction as the hold check, and the result
32
+ * says `held` and names the holder. A caller that must rewrite a held document's shared base
33
+ * (a pull reconciling a remote deletion) does it there, so no other realm can settle the
34
+ * holding intent between the refusal and the rewrite.
35
+ * - `resolveIntents` on either journaled mutation requires document CAS and the exact complete
36
+ * unsettled target journal. It retires those records atomically with the document, meta, and
37
+ * optional replacement intent, leaving acknowledged history untouched. Recovery may retire a
38
+ * chain whose head is a recorded conflict or refusal, with conflicted, refused, and
39
+ * never-attempted pending successors behind it, never uncertain delivery. The caller
40
+ * preserves recovery evidence in meta; retirement does not assert remote acceptance.
41
+ * - {@link JournaledBackend.retireAcknowledged}, when an adapter offers it, is ONE transaction
42
+ * that removes named acknowledged intents of one target, and named meta rows, under the full
43
+ * guard of that target. Every named intent must be acknowledged in the guard, and the guard is
44
+ * compared in the same transaction, so an intent another realm moved since the caller's read is
45
+ * never removed. Unsettled work is never retired this way. What a retained successor may
46
+ * still need from a retired row is the caller's rule; the adapter only enforces the premise.
47
+ * - {@link JournaledBackend.readWithJournal} is ONE snapshot: the document, every intent
48
+ * targeting it, and the named meta rows, read in one readonly transaction, so a write in
49
+ * another realm between separate reads can never show a caller a document of one moment
50
+ * beside a journal of another. Intents come back in local commit order (by `sequence`).
51
+ * - {@link JournaledBackend.readHeads} is that snapshot over every document at once: each
52
+ * record's head (id, version, writer, time), its leading frontmatter parsed as `read` parses
53
+ * it, its exact bytes, every intent targeting it, and the meta rows the caller names for it,
54
+ * all from ONE readonly transaction, so every row describes the same moment. Bodies are
55
+ * never parsed. A record whose leading block does not parse is a row with `frontmatter`
56
+ * null and the parser's error, never a dropped row and never a failed listing. A caller that
57
+ * keeps less than the row (a version and a provenance, say) passes `project`, which maps
58
+ * each row as it is read so the listing over a large store never holds every document's
59
+ * stored bytes at once; the journal is read whole before the walk, so intents and the
60
+ * content they carry are held for its duration, as a single read holds them. Keys every row
61
+ * needs go in `shared`, read once. Rows come back in the order `list` orders ids.
62
+ * - {@link JournaledBackend.updateIntent} is a compare-and-swap on the intent's `state`: the
63
+ * patch applies only while the record is in `expectedState`, together with any meta rows, in
64
+ * one transaction. A different state or a missing record rejects with
65
+ * {@link IntentStateConflict} and writes nothing, so two realms (a stale tab, a worker) cannot
66
+ * both settle or both replace one intent.
67
+ * - {@link JournaledBackend.listIntents} returns intents in local commit order (ascending
68
+ * `sequence`), optionally restricted to one or more states.
69
+ * - {@link JournaledBackend.readMeta} and {@link JournaledBackend.writeMeta} are an opaque
70
+ * key-value store; what the rows mean belongs to the sync component that writes them.
71
+ *
72
+ * This module imports no Node builtin so it bundles for the browser. The IndexedDB adapter is
73
+ * the shipping implementation; a test-only in-memory adapter proves the seam is not a
74
+ * description of that one class.
75
+ */
76
+ import type { MalformedDocumentError } from "./frontmatter-contract.js";
77
+ import type { OperationIntent, OperationState } from "./uncertain-write.js";
78
+ import type { ConceptId, DeleteOptions, Frontmatter, OkfDocument, ReadResult, StorageBackend, Version, WriteOptions } from "./types.js";
79
+ /**
80
+ * The intent kind of a journaled local deletion: the document leaves at exactly the intent's
81
+ * base. A deletion carries no bytes, so its `content` is {@link DELETION_CONTENT} and its `local`
82
+ * is {@link DELETION_VERSION}, the version of empty bytes, which no document can have (every
83
+ * document has frontmatter). A conflict can therefore never name a deletion's own `local` and
84
+ * read as its commit.
85
+ */
86
+ export declare const DOCUMENT_DELETE_KIND = "document.delete";
87
+ export declare const DELETION_CONTENT = "";
88
+ export declare const DELETION_VERSION: Version;
89
+ /** Presence is independent of value: a stored undefined is not an absent row. */
90
+ export type MetaExpectation = {
91
+ present: false;
92
+ } | {
93
+ present: true;
94
+ value: unknown;
95
+ };
96
+ /** A complete target snapshot and the explicitly named metadata premises for a mutation. */
97
+ export interface JournalGuard {
98
+ target: ConceptId;
99
+ document: {
100
+ version: Version;
101
+ raw: string;
102
+ } | null;
103
+ intents: IntentRecord[];
104
+ meta: {
105
+ key: string;
106
+ expected: MetaExpectation;
107
+ }[];
108
+ }
109
+ /** A full snapshot or metadata admission premise changed; nothing was written. */
110
+ export declare class JournalGuardConflict extends Error {
111
+ readonly name = "JournalGuardConflict";
112
+ readonly target: string;
113
+ constructor(target: string);
114
+ }
115
+ /**
116
+ * Guard values are acyclic plain records, arrays, and primitive values (including undefined).
117
+ * Symbols, accessors, functions, and objects with other prototypes are refused. This restriction
118
+ * applies only to guarded operations; the unguarded metadata store remains opaque.
119
+ */
120
+ export declare function captureJournalValue<T>(value: T): T;
121
+ export declare function captureJournalGuard(value: JournalGuard, target?: ConceptId): JournalGuard;
122
+ /** Only omission or undefined selects the unguarded compatibility path. */
123
+ export declare function captureJournalGuardOption(options: {
124
+ guard?: JournalGuard;
125
+ }, target?: ConceptId): JournalGuard | undefined;
126
+ /** Compare all target records, including acknowledged history, and exact named row presence. */
127
+ export declare function assertJournalGuard(expected: JournalGuard, current: JournalGuard): void;
128
+ export interface IntentUpdateOptions {
129
+ meta?: MetaRecord[];
130
+ guard?: JournalGuard;
131
+ /** Replaces persisted content without authoring metadata changes; requires a full guard. */
132
+ document?: OkfDocument;
133
+ }
134
+ export interface MetaWriteOptions {
135
+ expected?: MetaExpectation;
136
+ /** Admission succeeds only when the entire journal is empty, in the same transaction. */
137
+ requireEmptyJournal?: boolean;
138
+ }
139
+ /** Capture guarded updates before any asynchronous adapter work and protect original history. */
140
+ export declare function captureIntentUpdate(patch: IntentPatch, options: IntentUpdateOptions): {
141
+ patch: IntentPatch;
142
+ options: IntentUpdateOptions;
143
+ };
144
+ export declare function captureMetaWrite(options: MetaWriteOptions): MetaWriteOptions;
145
+ export declare function assertMetaWrite(key: string, options: MetaWriteOptions, actual: MetaExpectation, intents: readonly IntentRecord[]): void;
146
+ /** Metadata removal is admitted only with an explicit full-snapshot premise. */
147
+ export declare function assertJournalMetaChanges(guard: JournalGuard | undefined, puts: readonly MetaRecord[], removals: readonly string[] | undefined): void;
148
+ /** A guarded write owns one target and creates a globally fresh journal identity. */
149
+ export declare function assertJournalIntentChanges(guard: JournalGuard | undefined, existingIdentity: IntentRecord | undefined, superseded: IntentRecord | undefined): void;
150
+ /** Options for {@link JournaledBackend.retireAcknowledged}. */
151
+ export interface RetireAcknowledgedOptions {
152
+ /** The full target snapshot the retirement was composed against, compared in its transaction. */
153
+ guard: JournalGuard;
154
+ /** Acknowledged intents of the guard's target to remove; at least one, each named once. */
155
+ requestIds: readonly string[];
156
+ /** Meta rows the guard names, removed in the same transaction. */
157
+ removeMeta?: readonly string[];
158
+ }
159
+ /**
160
+ * Capture a retirement before any adapter work: the guard is required and complete, every
161
+ * named intent is in it and acknowledged, and every removed meta row is one the guard names.
162
+ */
163
+ export declare function captureRetireAcknowledged(target: ConceptId, options: RetireAcknowledgedOptions): RetireAcknowledgedOptions;
164
+ /** Capture write options while retaining the existing synchronous metadata producer. */
165
+ export declare function captureJournalWriteOptions(options: JournaledWriteOptions): JournaledWriteOptions;
166
+ /** Capture every guarded deletion branch before evaluating held or absent state. */
167
+ export declare function captureJournalDeleteOptions(target: ConceptId, options: JournaledDeleteOptions): JournaledDeleteOptions;
168
+ /**
169
+ * An intent's journal state was not the one the caller expected, or the intent is gone. Settling
170
+ * and superseding are compare-and-swap operations on the intent's own record so two realms (a
171
+ * stale tab, a worker) cannot both settle or both replace one intent.
172
+ */
173
+ export declare class IntentStateConflict extends Error {
174
+ readonly name = "IntentStateConflict";
175
+ readonly requestId: string;
176
+ readonly expected: OperationState;
177
+ readonly actual: OperationState | null;
178
+ constructor(requestId: string, expected: OperationState, actual: OperationState | null);
179
+ }
180
+ /**
181
+ * A journaled write required that no unsettled intent hold its target, and one does. The local
182
+ * edit that intent describes would otherwise be replaced while the authority has not accepted
183
+ * it. The check runs inside the write's own transaction, so an intent committed while the caller
184
+ * was awaiting the network still holds the target.
185
+ */
186
+ export declare class IntentHoldConflict extends Error {
187
+ readonly name = "IntentHoldConflict";
188
+ readonly target: ConceptId;
189
+ readonly requestId: string;
190
+ readonly state: OperationState;
191
+ constructor(target: ConceptId, requestId: string, state: OperationState);
192
+ }
193
+ /**
194
+ * A journaled local write: the shared primitive's {@link OperationIntent} plus what the
195
+ * working copy keeps for reconciliation. `sequence` is the local commit order; `after` names a
196
+ * predecessor intent on the same target that must be acknowledged before this one is delivered.
197
+ */
198
+ export interface IntentRecord extends OperationIntent {
199
+ sequence: number;
200
+ updatedAt: string;
201
+ /** The serialized document at `base`, when the working copy held it; the three-way baseline. */
202
+ baseContent: string | null;
203
+ after?: string;
204
+ /** Set when the authority committed the intent; equals `local` for a content-addressed token. */
205
+ acknowledgedVersion?: Version;
206
+ /**
207
+ * The shared head observed when the intent entered conflict. With `version: null` (deleted
208
+ * remotely), `tombstone` is the deletion the authority named, when it named one: what a
209
+ * deliberate re-create acknowledges. It is never a version a read serves.
210
+ */
211
+ remote?: {
212
+ version: Version | null;
213
+ content: string | null;
214
+ tombstone?: Version;
215
+ };
216
+ refusal?: {
217
+ code: string;
218
+ message: string;
219
+ };
220
+ /** A recorded observation the caller should surface, such as an acknowledged version that differs from `local`. */
221
+ finding?: string;
222
+ }
223
+ /** The caller-supplied part of a new intent; the adapter fills content, version, sequence, and state. */
224
+ export type NewIntentRecord = Pick<IntentRecord, "requestId" | "kind" | "target" | "base" | "baseContent" | "createdAt"> & Partial<Pick<IntentRecord, "after" | "recreates">>;
225
+ /** An opaque key-value row in the meta store (bootstrap marker, per-document base, pause flag). */
226
+ export interface MetaRecord {
227
+ key: string;
228
+ value: unknown;
229
+ }
230
+ /** Recovery was composed against a different or unsafe unsettled journal snapshot. */
231
+ export declare class JournalSnapshotConflict extends Error {
232
+ readonly name = "JournalSnapshotConflict";
233
+ readonly target: ConceptId;
234
+ constructor(target: ConceptId);
235
+ }
236
+ /**
237
+ * The deletion intent a journaled deletion records, refused before any adapter work when it is
238
+ * not one: another kind, another target, or combined with a guard (a guarded deletion journals
239
+ * nothing). The adapter fills content, local version, sequence and state.
240
+ */
241
+ export declare function assertDeletionIntent(target: ConceptId, options: JournaledDeleteOptions): void;
242
+ /** The record a journaled deletion adds for `intent`. */
243
+ export declare function deletionIntentRecord(intent: NewIntentRecord, sequence: number, now: string): IntentRecord;
244
+ export declare function assertJournalResolutionOptions(target: ConceptId, options: JournaledWriteOptions | JournaledDeleteOptions): void;
245
+ /**
246
+ * Compare full records, not only state: a changed outcome or retry is new recovery evidence.
247
+ * The head of the set (its lowest sequence) must hold a recorded terminal answer, `conflict` or
248
+ * `refused`; every later row must be `conflict`, `refused` or never-attempted `pending`. An
249
+ * `unknown`, `in_flight` or attempted `pending` head is uncertain delivery and stays refused.
250
+ */
251
+ export declare function assertJournalSnapshot(target: ConceptId, expected: IntentRecord[], current: IntentRecord[], freshRequestId?: string): void;
252
+ /** Options for {@link JournaledBackend.writeJournaled}. */
253
+ export interface JournaledWriteOptions extends WriteOptions {
254
+ /** Full document, journal, and named metadata CAS, evaluated before any mutation. */
255
+ guard?: JournalGuard;
256
+ /** Remove named metadata in the guarded write; keys must not also be put by this write. */
257
+ removeMeta?: readonly string[];
258
+ /** Retire this exact complete unsettled target snapshot atomically with document and meta writes. */
259
+ resolveIntents?: {
260
+ expected: IntentRecord[];
261
+ };
262
+ /** Record this intent in the same transaction as the document write. */
263
+ intent?: NewIntentRecord;
264
+ /** An unsettled intent this write composes over; deleted only while its state and attempts still match. */
265
+ supersede?: {
266
+ requestId: string;
267
+ expectedState: OperationState;
268
+ expectedAttempts: number;
269
+ };
270
+ /** Meta rows to put in the same transaction, given the written bytes when a function. */
271
+ meta?: MetaRecord[] | ((written: {
272
+ version: Version;
273
+ raw: string;
274
+ }) => MetaRecord[]);
275
+ /**
276
+ * Abort with {@link IntentHoldConflict} when any intent targeting `id` is in a state other than
277
+ * `acknowledged`, read in the same transaction as the document write. A refresh from the
278
+ * authority uses this so a local edit committed during its network round trip is never
279
+ * replaced.
280
+ */
281
+ requireSettled?: boolean;
282
+ }
283
+ /** Options for {@link JournaledBackend.deleteJournaled}. */
284
+ export interface JournaledDeleteOptions extends DeleteOptions {
285
+ /** Compare the full target and named metadata before any deleted, absent, or held outcome. */
286
+ guard?: JournalGuard;
287
+ /** As write recovery; requires document CAS even when the target is absent. */
288
+ resolveIntents?: {
289
+ expected: IntentRecord[];
290
+ };
291
+ /** Meta rows to put in the same transaction; they apply only when the deletion applies or the target is absent. */
292
+ meta?: MetaRecord[];
293
+ /** Meta keys to remove in the same transaction; a key with no row is not an error. Applied as `meta` is. */
294
+ removeMeta?: readonly string[];
295
+ /**
296
+ * Record this deletion intent in the same transaction, as `writeJournaled` records a write's:
297
+ * `pending`, zero attempts, the next sequence, with {@link DELETION_CONTENT} and
298
+ * {@link DELETION_VERSION}. Its kind must be {@link DOCUMENT_DELETE_KIND}. It is recorded when
299
+ * the deletion applies, including over an absent record (a resolution re-deleting a document
300
+ * the working copy no longer holds), and never when the deletion is held.
301
+ */
302
+ intent?: NewIntentRecord;
303
+ /** An unsettled intent this deletion composes over; removed only while its state and attempts still match, as for `writeJournaled`. */
304
+ supersede?: {
305
+ requestId: string;
306
+ expectedState: OperationState;
307
+ expectedAttempts: number;
308
+ };
309
+ /**
310
+ * Refuse the deletion when any intent targeting `id` is in a state other than `acknowledged`,
311
+ * read in the same transaction as the deletion. A pull that reconciles a remote deletion uses
312
+ * this so a local edit is never discarded. Without `onHeld` the refusal rejects with
313
+ * {@link IntentHoldConflict}; with it, the refusal is the `held` outcome.
314
+ */
315
+ requireSettled?: boolean;
316
+ /**
317
+ * What to apply instead when `requireSettled` refuses the deletion: these meta rows are put in
318
+ * the same transaction as the hold check, and nothing else in the options applies. Only
319
+ * meaningful with `requireSettled`.
320
+ */
321
+ onHeld?: {
322
+ meta: MetaRecord[];
323
+ };
324
+ }
325
+ /** What {@link JournaledBackend.deleteJournaled} did, in one transaction. */
326
+ export type JournaledDeleteResult =
327
+ /** A record was removed; `meta` and `removeMeta` applied, and `intent` recorded when one was given. */
328
+ {
329
+ outcome: "deleted";
330
+ intent?: IntentRecord;
331
+ }
332
+ /** No record to remove; `meta` and `removeMeta` still applied, and `intent` recorded when one was given. */
333
+ | {
334
+ outcome: "absent";
335
+ intent?: IntentRecord;
336
+ }
337
+ /** An unsettled intent holds the target and `onHeld` was given: its meta rows applied, nothing else did. */
338
+ | {
339
+ outcome: "held";
340
+ requestId: string;
341
+ state: OperationState;
342
+ };
343
+ /** One document with everything the journal holds about it, read in one transaction. See {@link JournaledBackend.readWithJournal}. */
344
+ export interface JournaledReadResult {
345
+ /** The parsed document and its version, or `null` when the store holds no record. */
346
+ document: ReadResult | null;
347
+ /** The exact stored serialization, the bytes `version` names; `null` when absent. */
348
+ raw: string | null;
349
+ /** Every intent targeting the id, in local commit order, whatever its state. */
350
+ intents: IntentRecord[];
351
+ /** The requested meta rows' values by key; a key with no row is absent from the map. */
352
+ meta: Map<string, unknown>;
353
+ }
354
+ /**
355
+ * One document's head with everything the journal holds about it, as {@link JournaledBackend.readHeads}
356
+ * reads it: the stored record's identity and version, its leading frontmatter, its exact
357
+ * bytes, its intents, and the meta rows the caller named for it. Nothing of the body is parsed.
358
+ * The frontmatter is what `read` parses for the record under the bundle's edition; when the
359
+ * leading block does not parse it is `null` and `malformed` carries the parser's error.
360
+ */
361
+ export type JournaledHead = {
362
+ id: ConceptId;
363
+ /** The version of the stored bytes, the token `read` reports for the document. */
364
+ version: Version;
365
+ /** The actor recorded for the stored revision. */
366
+ updatedBy: string;
367
+ /** When the stored revision was written, as an ISO instant. */
368
+ updatedAt: string;
369
+ /** The exact stored serialization, the bytes `version` names. */
370
+ raw: string;
371
+ /** Every intent targeting the id, in local commit order, whatever its state. */
372
+ intents: IntentRecord[];
373
+ /** The meta rows `meta` named for this id, by key; a key with no row is absent from the map. */
374
+ meta: Map<string, unknown>;
375
+ } & ({
376
+ frontmatter: Frontmatter;
377
+ malformed?: undefined;
378
+ } | {
379
+ frontmatter: null;
380
+ malformed: MalformedDocumentError;
381
+ });
382
+ /** Options for {@link JournaledBackend.readHeads}. */
383
+ export interface JournaledHeadsOptions<T> {
384
+ /** The meta keys to read for one document, given its id and its intents; none by default. Read per row and released with it. */
385
+ meta?: (id: ConceptId, intents: readonly IntentRecord[]) => readonly string[];
386
+ /** Meta keys read once for the whole listing, in the same transaction, and present in every row's `meta`; a key named here is not read again when `meta` names it for a row. */
387
+ shared?: readonly string[];
388
+ /**
389
+ * Maps each head as it is read; only the projection is kept, so a listing over a large store
390
+ * holds one document's stored bytes at a time (the journal, read whole, is held throughout).
391
+ * Omitted, the heads themselves are returned. A projection that throws rejects the whole
392
+ * listing with its error.
393
+ */
394
+ project?: (head: JournaledHead) => T;
395
+ }
396
+ /** Fields a caller may change when settling or reclaiming an intent. */
397
+ export type IntentPatch = Partial<Omit<IntentRecord, "requestId" | "sequence" | "createdAt" | "kind" | "target">>;
398
+ /**
399
+ * A {@link StorageBackend} that also journals local writes as intents and keeps opaque meta
400
+ * rows, with the transaction and compare-and-swap guarantees stated in this module's header.
401
+ */
402
+ export interface JournaledBackend extends StorageBackend {
403
+ /** All guarded writes, updates, replacements, and metadata admission share atomic CAS. */
404
+ readonly journalSnapshotCas?: true;
405
+ /**
406
+ * One transaction over documents, intents, and meta: the document compare-and-swap of
407
+ * `write`, plus (optionally) deleting a superseded intent, recording a new intent for the
408
+ * written bytes, and putting meta rows. Every step is conditional on every other: a failed
409
+ * document CAS records no intent, and a superseded intent whose state or attempts moved fails
410
+ * the whole write with {@link IntentStateConflict} so the caller composes against fresh state. With
411
+ * `requireSettled`, an unsettled intent on the target fails it with
412
+ * {@link IntentHoldConflict} before the document is touched.
413
+ */
414
+ writeJournaled(id: ConceptId, doc: OkfDocument, options?: JournaledWriteOptions): Promise<{
415
+ version: Version;
416
+ raw: string;
417
+ intent: IntentRecord | null;
418
+ }>;
419
+ /**
420
+ * One transaction over documents, intents, and meta: the document compare-and-swap of
421
+ * `delete`, plus putting and removing meta rows. With `requireSettled`, an unsettled intent on
422
+ * the target refuses it before anything is touched: a rejection with
423
+ * {@link IntentHoldConflict}, or, with `onHeld`, the `held` outcome with the `onHeld` meta rows
424
+ * applied in the same transaction. Resolves `deleted` when a record was removed and `absent`
425
+ * when the target was already absent; the meta changes apply in both of those cases, and a
426
+ * mismatched `expectedVersion` against a present record rejects with `VersionConflict` and
427
+ * changes nothing.
428
+ */
429
+ deleteJournaled(id: ConceptId, options?: JournaledDeleteOptions): Promise<JournaledDeleteResult>;
430
+ /**
431
+ * The document, every intent targeting it, and the named meta rows, from ONE readonly
432
+ * transaction. A caller deriving where a document stands (its bytes against its shared base
433
+ * and its journal) reads them here so a write in another realm between separate reads can
434
+ * never show it a document of one moment beside a journal of another; with this snapshot a
435
+ * mismatch is a genuine working-copy defect.
436
+ */
437
+ readWithJournal(id: ConceptId, options?: {
438
+ meta?: readonly string[];
439
+ }): Promise<JournaledReadResult>;
440
+ /**
441
+ * Every document's head, its leading frontmatter, its bytes, its intents, and the meta rows
442
+ * `meta` names for it, from ONE readonly transaction, in the order `list` orders ids. A
443
+ * caller that lists or counts the working copy reads here so every row describes the same
444
+ * moment and no body is parsed; `project` keeps the listing's memory at one document at a
445
+ * time. A record whose leading block does not parse is reported, not dropped.
446
+ */
447
+ readHeads<T = JournaledHead>(options?: JournaledHeadsOptions<T>): Promise<T[]>;
448
+ /** Intents in local commit order, optionally restricted to one or more states. */
449
+ listIntents(state?: OperationState | readonly OperationState[]): Promise<IntentRecord[]>;
450
+ readIntent(requestId: string): Promise<IntentRecord | undefined>;
451
+ /**
452
+ * Remove acknowledged intents of one target, and named meta rows, in ONE transaction under
453
+ * the target's full guard ({@link RetireAcknowledgedOptions}). A guard that no longer matches
454
+ * rejects with {@link JournalGuardConflict} and removes nothing. Optional: a caller that finds
455
+ * no such method keeps acknowledged history, as every adapter did before it existed.
456
+ */
457
+ retireAcknowledged?(target: ConceptId, options: RetireAcknowledgedOptions): Promise<void>;
458
+ /**
459
+ * Compare-and-swap on an intent's `state`: the patch applies only while the record is in
460
+ * `expectedState`, together with any meta rows, in one transaction. A different state or a
461
+ * missing record rejects with {@link IntentStateConflict} and writes nothing.
462
+ */
463
+ updateIntent(requestId: string, expectedState: OperationState, patch: IntentPatch, options?: IntentUpdateOptions): Promise<IntentRecord>;
464
+ readMeta<T = unknown>(key: string): Promise<T | undefined>;
465
+ writeMeta(key: string, value: unknown, options?: MetaWriteOptions): Promise<void>;
466
+ }
467
+ //# sourceMappingURL=journaled-backend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"journaled-backend.d.ts","sourceRoot":"","sources":["../src/journaled-backend.ts"],"names":[],"mappings":"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"}