@superbee/core 0.1.6 → 0.2.0-pre.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/backend.d.ts.map +1 -1
- package/dist/backend.js +38 -13
- package/dist/backend.js.map +1 -1
- package/dist/bundle-ops.d.ts +42 -0
- package/dist/bundle-ops.d.ts.map +1 -0
- package/dist/bundle-ops.js +88 -0
- package/dist/bundle-ops.js.map +1 -0
- package/dist/bundle.d.ts +8 -27
- package/dist/bundle.d.ts.map +1 -1
- package/dist/bundle.js +9 -66
- package/dist/bundle.js.map +1 -1
- package/dist/document-field-actions.d.ts +95 -0
- package/dist/document-field-actions.d.ts.map +1 -0
- package/dist/document-field-actions.js +261 -0
- package/dist/document-field-actions.js.map +1 -0
- package/dist/document-mutation.d.ts +46 -2
- package/dist/document-mutation.d.ts.map +1 -1
- package/dist/document-mutation.js +79 -19
- package/dist/document-mutation.js.map +1 -1
- package/dist/document-write-policy.d.ts +0 -1
- package/dist/document-write-policy.d.ts.map +1 -1
- package/dist/document-write-policy.js +3 -2
- package/dist/document-write-policy.js.map +1 -1
- package/dist/engine.d.ts +2 -0
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +2 -1
- package/dist/engine.js.map +1 -1
- package/dist/freshness.d.ts +10 -7
- package/dist/freshness.d.ts.map +1 -1
- package/dist/freshness.js +14 -11
- package/dist/freshness.js.map +1 -1
- package/dist/frontmatter-contract.d.ts +2 -2
- package/dist/frontmatter-contract.js +2 -2
- package/dist/frontmatter.d.ts +3 -1
- package/dist/frontmatter.d.ts.map +1 -1
- package/dist/frontmatter.js +7 -4
- package/dist/frontmatter.js.map +1 -1
- package/dist/heads-digest.d.ts +32 -0
- package/dist/heads-digest.d.ts.map +1 -0
- package/dist/heads-digest.js +37 -0
- package/dist/heads-digest.js.map +1 -0
- package/dist/index.d.ts +13 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -3
- package/dist/index.js.map +1 -1
- package/dist/indexeddb-backend.d.ts +175 -0
- package/dist/indexeddb-backend.d.ts.map +1 -0
- package/dist/indexeddb-backend.js +804 -0
- package/dist/indexeddb-backend.js.map +1 -0
- package/dist/journaled-backend.d.ts +238 -0
- package/dist/journaled-backend.d.ts.map +1 -0
- package/dist/journaled-backend.js +88 -0
- package/dist/journaled-backend.js.map +1 -0
- package/dist/kind-field-mutation.d.ts +15 -0
- package/dist/kind-field-mutation.d.ts.map +1 -0
- package/dist/kind-field-mutation.js +160 -0
- package/dist/kind-field-mutation.js.map +1 -0
- package/dist/kinds.d.ts.map +1 -1
- package/dist/kinds.js +3 -1
- package/dist/kinds.js.map +1 -1
- package/dist/meaningful-change-time.d.ts +6 -6
- package/dist/meaningful-change-time.d.ts.map +1 -1
- package/dist/meaningful-change-time.js +12 -13
- package/dist/meaningful-change-time.js.map +1 -1
- package/dist/memory-backend.d.ts.map +1 -1
- package/dist/memory-backend.js +6 -5
- package/dist/memory-backend.js.map +1 -1
- package/dist/mutation.d.ts.map +1 -1
- package/dist/mutation.js +2 -2
- package/dist/mutation.js.map +1 -1
- package/dist/page.d.ts.map +1 -1
- package/dist/page.js +2 -1
- package/dist/page.js.map +1 -1
- package/dist/paths.d.ts +6 -2
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +35 -33
- package/dist/paths.js.map +1 -1
- package/dist/platform.d.ts +232 -0
- package/dist/platform.d.ts.map +1 -0
- package/dist/platform.js +82 -0
- package/dist/platform.js.map +1 -0
- package/dist/recipes.d.ts +3 -1
- package/dist/recipes.d.ts.map +1 -1
- package/dist/recipes.js +4 -4
- package/dist/recipes.js.map +1 -1
- package/dist/remote-backend.d.ts +94 -2
- package/dist/remote-backend.d.ts.map +1 -1
- package/dist/remote-backend.js +280 -7
- package/dist/remote-backend.js.map +1 -1
- package/dist/remote-operations.d.ts +60 -0
- package/dist/remote-operations.d.ts.map +1 -0
- package/dist/remote-operations.js +110 -0
- package/dist/remote-operations.js.map +1 -0
- package/dist/remote.d.ts +3 -1
- package/dist/remote.d.ts.map +1 -1
- package/dist/remote.js +1 -0
- package/dist/remote.js.map +1 -1
- package/dist/sha256.d.ts +21 -0
- package/dist/sha256.d.ts.map +1 -0
- package/dist/sha256.js +114 -0
- package/dist/sha256.js.map +1 -0
- package/dist/storage.d.ts +8 -2
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +11 -2
- package/dist/storage.js.map +1 -1
- package/dist/types.d.ts +12 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/uncertain-write.d.ts +142 -0
- package/dist/uncertain-write.d.ts.map +1 -0
- package/dist/uncertain-write.js +174 -0
- package/dist/uncertain-write.js.map +1 -0
- package/dist/version-transport.d.ts +7 -0
- package/dist/version-transport.d.ts.map +1 -1
- package/dist/version-transport.js +9 -0
- package/dist/version-transport.js.map +1 -1
- package/dist/versioning.d.ts +9 -3
- package/dist/versioning.d.ts.map +1 -1
- package/dist/versioning.js +14 -10
- package/dist/versioning.js.map +1 -1
- package/package.json +42 -3
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The platform contract an application programs against, above the two execution
|
|
3
|
+
* implementations: request-driven (every verb is a request to the shared authority) and
|
|
4
|
+
* browser-local (every verb runs against the page's own working copy, related to the authority
|
|
5
|
+
* by synchronization). A presentation receives a {@link PlatformRuntime} and nothing else; it
|
|
6
|
+
* never touches a backend, a transport, or a store.
|
|
7
|
+
*
|
|
8
|
+
* Provenance is the explicit result difference the two implementations are allowed to have.
|
|
9
|
+
* Every read, query row, validation, and commit states where its answer stands with respect to
|
|
10
|
+
* the shared authority:
|
|
11
|
+
*
|
|
12
|
+
* - `shared-confirmed`: the authority acknowledged or served exactly this content at the
|
|
13
|
+
* runtime's last exchange with it. It may only be produced from an authority acknowledgement
|
|
14
|
+
* (a write the authority answered, or an intent it acknowledged under its request identity)
|
|
15
|
+
* or from an authority read (a request-driven read, or a working copy refreshed from the
|
|
16
|
+
* authority with no local edit outstanding). A local write never produces it, so no
|
|
17
|
+
* presentation can report shared confirmation without an acknowledgement. It says nothing
|
|
18
|
+
* about what the authority holds now: request-driven's last exchange is the request itself,
|
|
19
|
+
* browser-local's is its last sync, and the authority may have moved (or deleted the document)
|
|
20
|
+
* since. A document the authority deleted disappears from a browser-local working copy at
|
|
21
|
+
* its next sync (pull reconciles deletions against the authority's heads) unless a local
|
|
22
|
+
* edit holds it, in which case pull retains the local content and rewrites its base to an
|
|
23
|
+
* absent shared version, and the document reads `local-pending` until push delivers the edit
|
|
24
|
+
* and settles the authority's conflict answer (a 412 whose actual version is `null`) as a
|
|
25
|
+
* conflict against an absent remote, from which point it reads `local-conflict` with
|
|
26
|
+
* `remote: null`; request-driven answers absence directly. Between syncs a deleted document
|
|
27
|
+
* still reads `shared-confirmed` at its last served version, so a presentation must not read
|
|
28
|
+
* `shared-confirmed` as proof of present existence.
|
|
29
|
+
* - `local-pending`: the working copy holds a local edit the authority has not accepted;
|
|
30
|
+
* `requestId` names the journaled intent that will deliver it and `base` the shared version
|
|
31
|
+
* the edit was made against.
|
|
32
|
+
* - `local-conflict`: the authority's head moved under a local edit; `remote` is the version the
|
|
33
|
+
* authority held when the conflict was recorded, and the local content is retained. Any
|
|
34
|
+
* conflict intent on a document decides its provenance, even after further local edits
|
|
35
|
+
* chained behind it.
|
|
36
|
+
*
|
|
37
|
+
* One token space per runtime. In every provenance state `version` is the runtime's own premise
|
|
38
|
+
* token: the value an application may pass back as `expectedVersion`, equal to the `version` of
|
|
39
|
+
* a query row for the same document. For browser-local that is the working copy's document
|
|
40
|
+
* version; for request-driven it is the authority's. `shared-confirmed` also carries
|
|
41
|
+
* `acknowledged`, the token the authority mints for the same content, which differs from
|
|
42
|
+
* `version` whenever the authority hashes bytes the working copy normalizes differently (a
|
|
43
|
+
* filesystem authority over hand-authored files). An application compares `acknowledged` to the
|
|
44
|
+
* authority and `version` to its own runtime, never one to the other.
|
|
45
|
+
*
|
|
46
|
+
* Model semantics (what a document is, how a query filters, what a kind warns about, when a
|
|
47
|
+
* commit changes nothing) are identical across implementations; the contract kit in
|
|
48
|
+
* `@superbee/browser-local` proves that by running one row table against both.
|
|
49
|
+
*
|
|
50
|
+
* This module carries types and pure helpers only: no behaviour, no Node builtins, so it
|
|
51
|
+
* bundles for the browser (see `test/browser-bundle.test.ts`).
|
|
52
|
+
*/
|
|
53
|
+
import type { ConceptId, Frontmatter, OkfDocument, QueryFilter, Version } from "./types.js";
|
|
54
|
+
import type { ValidationWarning } from "./validation.js";
|
|
55
|
+
/** Which execution implementation answers a runtime's verbs. */
|
|
56
|
+
export type ExecutionMode = "request-driven" | "browser-local";
|
|
57
|
+
/** Where a result stands with respect to the shared authority. */
|
|
58
|
+
export type Provenance = {
|
|
59
|
+
state: "shared-confirmed";
|
|
60
|
+
version: Version;
|
|
61
|
+
acknowledged: Version;
|
|
62
|
+
} | {
|
|
63
|
+
state: "local-pending";
|
|
64
|
+
version: Version;
|
|
65
|
+
base: Version | null;
|
|
66
|
+
requestId: string;
|
|
67
|
+
} | {
|
|
68
|
+
state: "local-conflict";
|
|
69
|
+
version: Version;
|
|
70
|
+
base: Version | null;
|
|
71
|
+
remote: Version | null;
|
|
72
|
+
requestId: string;
|
|
73
|
+
};
|
|
74
|
+
/** The three words a presentation shows for a provenance. */
|
|
75
|
+
export type ProvenanceLabel = "shared" | "pending" | "conflict";
|
|
76
|
+
/** What an implementation can do; a presentation adapts its affordances to these, never to the mode name. */
|
|
77
|
+
export interface PlatformCapabilities {
|
|
78
|
+
mode: ExecutionMode;
|
|
79
|
+
/** Commits succeed without the authority reachable. */
|
|
80
|
+
offlineCommits: boolean;
|
|
81
|
+
/** Documents and pending edits survive a reload of the host. */
|
|
82
|
+
localPersistence: boolean;
|
|
83
|
+
}
|
|
84
|
+
export interface PlatformDocument {
|
|
85
|
+
doc: OkfDocument;
|
|
86
|
+
provenance: Provenance;
|
|
87
|
+
}
|
|
88
|
+
export interface PlatformQueryRow {
|
|
89
|
+
id: ConceptId;
|
|
90
|
+
version: Version;
|
|
91
|
+
frontmatter: Frontmatter;
|
|
92
|
+
provenance: Provenance;
|
|
93
|
+
}
|
|
94
|
+
export interface PlatformValidation {
|
|
95
|
+
id: ConceptId;
|
|
96
|
+
/** Kind warnings for this document against the bundle's own conventions; empty when it conforms or no kind governs it. */
|
|
97
|
+
warnings: ValidationWarning[];
|
|
98
|
+
provenance: Provenance;
|
|
99
|
+
}
|
|
100
|
+
/** A body edit; `expectedVersion` is the version the application read and is editing over. */
|
|
101
|
+
export interface PlatformEdit {
|
|
102
|
+
body: string;
|
|
103
|
+
/**
|
|
104
|
+
* The version the edit was made against: the `version` a read, query row, or commit of this
|
|
105
|
+
* runtime reported. Omitted, the runtime reads, decides and writes with its own retry. Given,
|
|
106
|
+
* the commit is a single compare-and-swap at that premise: request-driven
|
|
107
|
+
* rejects a stale premise with `VersionConflict` at commit time; browser-local applies the edit
|
|
108
|
+
* to the working copy at that local premise and surfaces a moved shared head as
|
|
109
|
+
* `local-conflict` when it synchronizes.
|
|
110
|
+
*/
|
|
111
|
+
expectedVersion?: Version;
|
|
112
|
+
}
|
|
113
|
+
export interface PlatformCommit {
|
|
114
|
+
id: ConceptId;
|
|
115
|
+
/** False when the engine found nothing to change; the provenance is then the document's existing one. */
|
|
116
|
+
changed: boolean;
|
|
117
|
+
provenance: Provenance;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Why a browser-local sync applied none of the deletions a verified listing implied:
|
|
121
|
+
* `empty-listing` names no document while the working copy holds some, `over-half` names so
|
|
122
|
+
* few that more than half of the working copy would go. Only a listing that would remove at
|
|
123
|
+
* least eight documents is bounded; fewer are applied on the authority's word.
|
|
124
|
+
*/
|
|
125
|
+
export type RefusedDeletionsReason = "empty-listing" | "over-half";
|
|
126
|
+
/**
|
|
127
|
+
* The deletions a browser-local sync refused to apply, exactly as recorded on its last pull.
|
|
128
|
+
* `digest` names the listing that implied them; a caller that has judged the shrink genuine
|
|
129
|
+
* passes the record back as {@link PlatformSyncOptions.acceptRefusedDeletions}.
|
|
130
|
+
*/
|
|
131
|
+
export interface RefusedDeletions {
|
|
132
|
+
/** How many documents the listing would have removed from the working copy. */
|
|
133
|
+
deletions: number;
|
|
134
|
+
reason: RefusedDeletionsReason;
|
|
135
|
+
/** The heads digest of the listing that was refused. */
|
|
136
|
+
digest: string;
|
|
137
|
+
}
|
|
138
|
+
/** How the runtime's last sync ended; see {@link PlatformSyncStatus.lastSync}. */
|
|
139
|
+
export interface PlatformSyncOutcome {
|
|
140
|
+
/** False when the sync rejected (a carrier failure, or an authority answer the runtime could not apply). */
|
|
141
|
+
ok: boolean;
|
|
142
|
+
/** The rejection's `name: message` when `ok` is false. */
|
|
143
|
+
error?: string;
|
|
144
|
+
/** The deletions the last completed pull refused; present until a pull applies or clears them. */
|
|
145
|
+
refusedDeletions?: RefusedDeletions;
|
|
146
|
+
}
|
|
147
|
+
export interface PlatformSyncOptions {
|
|
148
|
+
/**
|
|
149
|
+
* The refusal the last sync reported (`lastSync.refusedDeletions`), passed back to say the
|
|
150
|
+
* shrink it describes is genuine. Browser-local applies the deletions only when the
|
|
151
|
+
* authority's current listing still carries the same digest, count and reason; a listing
|
|
152
|
+
* that has moved since is refused afresh. Request-driven ignores it: nothing is ever
|
|
153
|
+
* refused there.
|
|
154
|
+
*/
|
|
155
|
+
acceptRefusedDeletions?: RefusedDeletions;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* The runtime's relation to the authority as of its last exchange. `online` reports the
|
|
159
|
+
* carrier: it turns false only when a request could not reach the authority, never on an
|
|
160
|
+
* answer the authority gave. `lastSync` reports the sync verb itself, and is the field a
|
|
161
|
+
* presentation must show to distinguish "synchronized" from "tried and failed": `ok` is false
|
|
162
|
+
* whenever `sync` rejected, whatever the cause, with the rejection's text in `error`.
|
|
163
|
+
*
|
|
164
|
+
* Browser-local applies a verified heads listing on the authority's word, including the
|
|
165
|
+
* documents it no longer names, with one bound: a listing that would remove at least eight
|
|
166
|
+
* documents and more than half of the working copy (or every document) is refused as a whole.
|
|
167
|
+
* The refreshes in that sync still apply, nothing is removed, `lastSync.ok` stays true, and
|
|
168
|
+
* `lastSync.refusedDeletions` carries the refusal until a later pull applies or clears it. A
|
|
169
|
+
* genuine shrink of that size therefore never reconciles on its own; the recovery path is to
|
|
170
|
+
* pass the recorded refusal back as `sync({ acceptRefusedDeletions })`, which applies the
|
|
171
|
+
* deletions if the authority still lists the same state and refuses afresh if it has moved.
|
|
172
|
+
* Request-driven has no working copy and leaves `lastSync` undefined: the status is the answer
|
|
173
|
+
* to the request that produced it.
|
|
174
|
+
*/
|
|
175
|
+
export interface PlatformSyncStatus {
|
|
176
|
+
mode: ExecutionMode;
|
|
177
|
+
/** Whether the last request to the authority succeeded; `null` before any was made. */
|
|
178
|
+
online: boolean | null;
|
|
179
|
+
/** Local edits the authority has not yet acknowledged (pending, in flight, or of unknown outcome). */
|
|
180
|
+
pending: number;
|
|
181
|
+
conflicts: number;
|
|
182
|
+
refused: number;
|
|
183
|
+
/**
|
|
184
|
+
* Working-copy documents whose bytes neither a recorded shared base nor an intent accounts
|
|
185
|
+
* for: a defect in the working copy, since every local write journals an intent. `query`
|
|
186
|
+
* omits such a document and `read` rejects it; this count is where it surfaces. Always 0 in
|
|
187
|
+
* request-driven mode, which has no working copy.
|
|
188
|
+
*/
|
|
189
|
+
unconfirmed: number;
|
|
190
|
+
/** Delivery is paused (an authorization refusal); `pausedReason` says why. */
|
|
191
|
+
paused: boolean;
|
|
192
|
+
pausedReason?: string;
|
|
193
|
+
/** The runtime's working set is complete: the authority's for request-driven, a finished bootstrap for browser-local. */
|
|
194
|
+
complete: boolean;
|
|
195
|
+
/**
|
|
196
|
+
* How the last sync ended, and any deletions its pull refused. Browser-local fills it from
|
|
197
|
+
* the sync's own outcome and the pull marker (so a refusal recorded before this runtime was
|
|
198
|
+
* created still shows); request-driven leaves it undefined. Absent before any sync.
|
|
199
|
+
*/
|
|
200
|
+
lastSync?: PlatformSyncOutcome;
|
|
201
|
+
}
|
|
202
|
+
export interface PlatformRuntime {
|
|
203
|
+
capabilities(): PlatformCapabilities;
|
|
204
|
+
/** Rejects ENOENT-shaped for an absent id and with `InvalidInputError` for an invalid one. */
|
|
205
|
+
read(id: ConceptId): Promise<PlatformDocument>;
|
|
206
|
+
/** Rows ordered by id, as the engine orders them. */
|
|
207
|
+
query(filter?: QueryFilter): Promise<PlatformQueryRow[]>;
|
|
208
|
+
validate(id: ConceptId): Promise<PlatformValidation>;
|
|
209
|
+
commit(id: ConceptId, edit: PlatformEdit): Promise<PlatformCommit>;
|
|
210
|
+
syncStatus(): Promise<PlatformSyncStatus>;
|
|
211
|
+
/**
|
|
212
|
+
* Push pending work and pull the authority's changes; a no-op returning the status in
|
|
213
|
+
* request-driven mode. `options` carries the recovery path for refused deletions; see
|
|
214
|
+
* {@link PlatformSyncOptions}.
|
|
215
|
+
*/
|
|
216
|
+
sync(options?: PlatformSyncOptions): Promise<PlatformSyncStatus>;
|
|
217
|
+
}
|
|
218
|
+
/** The word a presentation shows for a provenance. */
|
|
219
|
+
export declare function provenanceLabel(provenance: Provenance): ProvenanceLabel;
|
|
220
|
+
/** True only when the authority acknowledged or served this content at the runtime's last exchange with it. */
|
|
221
|
+
export declare function isSharedConfirmed(provenance: Provenance): provenance is Extract<Provenance, {
|
|
222
|
+
state: "shared-confirmed";
|
|
223
|
+
}>;
|
|
224
|
+
/**
|
|
225
|
+
* A confirmation from an authority answer; callers must hold that answer, never infer it from a
|
|
226
|
+
* local write. `version` is the runtime's own premise token and `acknowledged` the authority's
|
|
227
|
+
* token for the same content; omitted, the two are the same token space.
|
|
228
|
+
*/
|
|
229
|
+
export declare function sharedConfirmed(version: Version, acknowledged?: Version): Provenance;
|
|
230
|
+
export declare function localPending(version: Version, base: Version | null, requestId: string): Provenance;
|
|
231
|
+
export declare function localConflict(version: Version, base: Version | null, remote: Version | null, requestId: string): Provenance;
|
|
232
|
+
//# sourceMappingURL=platform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
package/dist/platform.js
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The platform contract an application programs against, above the two execution
|
|
3
|
+
* implementations: request-driven (every verb is a request to the shared authority) and
|
|
4
|
+
* browser-local (every verb runs against the page's own working copy, related to the authority
|
|
5
|
+
* by synchronization). A presentation receives a {@link PlatformRuntime} and nothing else; it
|
|
6
|
+
* never touches a backend, a transport, or a store.
|
|
7
|
+
*
|
|
8
|
+
* Provenance is the explicit result difference the two implementations are allowed to have.
|
|
9
|
+
* Every read, query row, validation, and commit states where its answer stands with respect to
|
|
10
|
+
* the shared authority:
|
|
11
|
+
*
|
|
12
|
+
* - `shared-confirmed`: the authority acknowledged or served exactly this content at the
|
|
13
|
+
* runtime's last exchange with it. It may only be produced from an authority acknowledgement
|
|
14
|
+
* (a write the authority answered, or an intent it acknowledged under its request identity)
|
|
15
|
+
* or from an authority read (a request-driven read, or a working copy refreshed from the
|
|
16
|
+
* authority with no local edit outstanding). A local write never produces it, so no
|
|
17
|
+
* presentation can report shared confirmation without an acknowledgement. It says nothing
|
|
18
|
+
* about what the authority holds now: request-driven's last exchange is the request itself,
|
|
19
|
+
* browser-local's is its last sync, and the authority may have moved (or deleted the document)
|
|
20
|
+
* since. A document the authority deleted disappears from a browser-local working copy at
|
|
21
|
+
* its next sync (pull reconciles deletions against the authority's heads) unless a local
|
|
22
|
+
* edit holds it, in which case pull retains the local content and rewrites its base to an
|
|
23
|
+
* absent shared version, and the document reads `local-pending` until push delivers the edit
|
|
24
|
+
* and settles the authority's conflict answer (a 412 whose actual version is `null`) as a
|
|
25
|
+
* conflict against an absent remote, from which point it reads `local-conflict` with
|
|
26
|
+
* `remote: null`; request-driven answers absence directly. Between syncs a deleted document
|
|
27
|
+
* still reads `shared-confirmed` at its last served version, so a presentation must not read
|
|
28
|
+
* `shared-confirmed` as proof of present existence.
|
|
29
|
+
* - `local-pending`: the working copy holds a local edit the authority has not accepted;
|
|
30
|
+
* `requestId` names the journaled intent that will deliver it and `base` the shared version
|
|
31
|
+
* the edit was made against.
|
|
32
|
+
* - `local-conflict`: the authority's head moved under a local edit; `remote` is the version the
|
|
33
|
+
* authority held when the conflict was recorded, and the local content is retained. Any
|
|
34
|
+
* conflict intent on a document decides its provenance, even after further local edits
|
|
35
|
+
* chained behind it.
|
|
36
|
+
*
|
|
37
|
+
* One token space per runtime. In every provenance state `version` is the runtime's own premise
|
|
38
|
+
* token: the value an application may pass back as `expectedVersion`, equal to the `version` of
|
|
39
|
+
* a query row for the same document. For browser-local that is the working copy's document
|
|
40
|
+
* version; for request-driven it is the authority's. `shared-confirmed` also carries
|
|
41
|
+
* `acknowledged`, the token the authority mints for the same content, which differs from
|
|
42
|
+
* `version` whenever the authority hashes bytes the working copy normalizes differently (a
|
|
43
|
+
* filesystem authority over hand-authored files). An application compares `acknowledged` to the
|
|
44
|
+
* authority and `version` to its own runtime, never one to the other.
|
|
45
|
+
*
|
|
46
|
+
* Model semantics (what a document is, how a query filters, what a kind warns about, when a
|
|
47
|
+
* commit changes nothing) are identical across implementations; the contract kit in
|
|
48
|
+
* `@superbee/browser-local` proves that by running one row table against both.
|
|
49
|
+
*
|
|
50
|
+
* This module carries types and pure helpers only: no behaviour, no Node builtins, so it
|
|
51
|
+
* bundles for the browser (see `test/browser-bundle.test.ts`).
|
|
52
|
+
*/
|
|
53
|
+
/** The word a presentation shows for a provenance. */
|
|
54
|
+
export function provenanceLabel(provenance) {
|
|
55
|
+
switch (provenance.state) {
|
|
56
|
+
case "shared-confirmed":
|
|
57
|
+
return "shared";
|
|
58
|
+
case "local-pending":
|
|
59
|
+
return "pending";
|
|
60
|
+
case "local-conflict":
|
|
61
|
+
return "conflict";
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/** True only when the authority acknowledged or served this content at the runtime's last exchange with it. */
|
|
65
|
+
export function isSharedConfirmed(provenance) {
|
|
66
|
+
return provenance.state === "shared-confirmed";
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* A confirmation from an authority answer; callers must hold that answer, never infer it from a
|
|
70
|
+
* local write. `version` is the runtime's own premise token and `acknowledged` the authority's
|
|
71
|
+
* token for the same content; omitted, the two are the same token space.
|
|
72
|
+
*/
|
|
73
|
+
export function sharedConfirmed(version, acknowledged = version) {
|
|
74
|
+
return { state: "shared-confirmed", version, acknowledged };
|
|
75
|
+
}
|
|
76
|
+
export function localPending(version, base, requestId) {
|
|
77
|
+
return { state: "local-pending", version, base, requestId };
|
|
78
|
+
}
|
|
79
|
+
export function localConflict(version, base, remote, requestId) {
|
|
80
|
+
return { state: "local-conflict", version, base, remote, requestId };
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=platform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AA2KH,sDAAsD;AACtD,MAAM,UAAU,eAAe,CAAC,UAAsB;IACpD,QAAQ,UAAU,CAAC,KAAK,EAAE,CAAC;QACzB,KAAK,kBAAkB;YACrB,OAAO,QAAQ,CAAC;QAClB,KAAK,eAAe;YAClB,OAAO,SAAS,CAAC;QACnB,KAAK,gBAAgB;YACnB,OAAO,UAAU,CAAC;IACtB,CAAC;AACH,CAAC;AAED,+GAA+G;AAC/G,MAAM,UAAU,iBAAiB,CAAC,UAAsB;IACtD,OAAO,UAAU,CAAC,KAAK,KAAK,kBAAkB,CAAC;AACjD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,OAAgB,EAAE,eAAwB,OAAO;IAC/E,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAgB,EAAE,IAAoB,EAAE,SAAiB;IACpF,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAgB,EAAE,IAAoB,EAAE,MAAsB,EAAE,SAAiB;IAC7G,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACvE,CAAC"}
|
package/dist/recipes.d.ts
CHANGED
|
@@ -59,5 +59,7 @@ export type LoadResult = {
|
|
|
59
59
|
* Structural recipe errors return a failed LoadResult; malformed YAML throws
|
|
60
60
|
* MalformedDocumentError, as in the shared document codec.
|
|
61
61
|
*/
|
|
62
|
-
export declare function parseRecipeFiles(files: RecipeFile[], source: string
|
|
62
|
+
export declare function parseRecipeFiles(files: RecipeFile[], source: string, options?: {
|
|
63
|
+
okfVersion?: string;
|
|
64
|
+
}): LoadResult;
|
|
63
65
|
//# sourceMappingURL=recipes.d.ts.map
|
package/dist/recipes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipes.d.ts","sourceRoot":"","sources":["../src/recipes.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAYzD,wFAAwF;AACxF,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,mEAAmE;AACnE,MAAM,WAAW,UAAU;IACzB,uHAAuH;IACvH,QAAQ,EAAE,WAAW,CAAC;IACtB,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;CACd;AAED,kFAAkF;AAClF,MAAM,WAAW,eAAe;IAC9B,kEAAkE;IAClE,GAAG,EAAE,WAAW,CAAC;CAClB;AAED,8FAA8F;AAC9F,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,iGAAiG;IACjG,KAAK,EAAE,MAAM,CAAC;IACd,iFAAiF;IACjF,MAAM,EAAE,MAAM,CAAC;IACf,4FAA4F;IAC5F,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,sFAAsF;IACtF,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,6FAA6F;IAC7F,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,2FAA2F;IAC3F,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,8FAA8F;IAC9F,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,+FAA+F;IAC/F,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CAC/B;AAED,MAAM,MAAM,eAAe,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,cAAc,GAAG,oBAAoB,CAAC;AAE9G,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,UAAU,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAE,CAAC;AA6LhG;;;;GAIG;AACH,wBAAgB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"recipes.d.ts","sourceRoot":"","sources":["../src/recipes.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAYzD,wFAAwF;AACxF,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,mEAAmE;AACnE,MAAM,WAAW,UAAU;IACzB,uHAAuH;IACvH,QAAQ,EAAE,WAAW,CAAC;IACtB,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;CACd;AAED,kFAAkF;AAClF,MAAM,WAAW,eAAe;IAC9B,kEAAkE;IAClE,GAAG,EAAE,WAAW,CAAC;CAClB;AAED,8FAA8F;AAC9F,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,iGAAiG;IACjG,KAAK,EAAE,MAAM,CAAC;IACd,iFAAiF;IACjF,MAAM,EAAE,MAAM,CAAC;IACf,4FAA4F;IAC5F,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,sFAAsF;IACtF,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,6FAA6F;IAC7F,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,2FAA2F;IAC3F,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,8FAA8F;IAC9F,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,+FAA+F;IAC/F,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CAC/B;AAED,MAAM,MAAM,eAAe,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,cAAc,GAAG,oBAAoB,CAAC;AAE9G,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,UAAU,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAE,CAAC;AA6LhG;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,UAAU,EAAE,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GACpC,UAAU,CAwSZ"}
|
package/dist/recipes.js
CHANGED
|
@@ -175,7 +175,7 @@ function parsePageDeclarations(manifest, recipeId, source) {
|
|
|
175
175
|
* Structural recipe errors return a failed LoadResult; malformed YAML throws
|
|
176
176
|
* MalformedDocumentError, as in the shared document codec.
|
|
177
177
|
*/
|
|
178
|
-
export function parseRecipeFiles(files, source) {
|
|
178
|
+
export function parseRecipeFiles(files, source, options = {}) {
|
|
179
179
|
const manifestFile = files.find((f) => f.path === "recipe.md");
|
|
180
180
|
if (!manifestFile) {
|
|
181
181
|
return {
|
|
@@ -281,7 +281,7 @@ export function parseRecipeFiles(files, source) {
|
|
|
281
281
|
error: { code: "RECIPE_UNSAFE_PATH", message: `recipe '${id}' contains a reserved filename: '${file.path}'` },
|
|
282
282
|
};
|
|
283
283
|
}
|
|
284
|
-
const { frontmatter, body } = parseMarkdown(file.bytes);
|
|
284
|
+
const { frontmatter, body } = parseMarkdown(file.bytes, undefined, options);
|
|
285
285
|
const doc = { id: conceptId, frontmatter, body };
|
|
286
286
|
// Mirror loadKinds' own skip-with-warning semantics (a doc that is not `type: Convention`, or
|
|
287
287
|
// has an empty `governs`, is not a kind declaration at all) WITHOUT seeding a backend.
|
|
@@ -371,7 +371,7 @@ export function parseRecipeFiles(files, source) {
|
|
|
371
371
|
error: { code: "RECIPE_MALFORMED", message: `recipe '${id}': View entry '${declaration.entry}' is empty` },
|
|
372
372
|
};
|
|
373
373
|
}
|
|
374
|
-
const { frontmatter, body } = parseMarkdown(registryFile.bytes);
|
|
374
|
+
const { frontmatter, body } = parseMarkdown(registryFile.bytes, undefined, options);
|
|
375
375
|
if (!isPageTypeName(frontmatter.type)) {
|
|
376
376
|
return {
|
|
377
377
|
ok: false,
|
|
@@ -425,7 +425,7 @@ export function parseRecipeFiles(files, source) {
|
|
|
425
425
|
},
|
|
426
426
|
};
|
|
427
427
|
}
|
|
428
|
-
const { frontmatter, body } = parseMarkdown(referenceFile.bytes);
|
|
428
|
+
const { frontmatter, body } = parseMarkdown(referenceFile.bytes, undefined, options);
|
|
429
429
|
if (frontmatter.type !== "Reference") {
|
|
430
430
|
return {
|
|
431
431
|
ok: false,
|
package/dist/recipes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipes.js","sourceRoot":"","sources":["../src/recipes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"recipes.js","sourceRoot":"","sources":["../src/recipes.ts"],"names":[],"mappings":"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"}
|
package/dist/remote-backend.d.ts
CHANGED
|
@@ -40,7 +40,9 @@
|
|
|
40
40
|
* This module touches NO filesystem and parses NO markdown — like {@link MemoryBackend},
|
|
41
41
|
* it proves the engine leaks no assumptions beyond the {@link StorageBackend} contract.
|
|
42
42
|
*/
|
|
43
|
-
import
|
|
43
|
+
import { type DocumentHead } from "./heads-digest.js";
|
|
44
|
+
import { type Outcome } from "./uncertain-write.js";
|
|
45
|
+
import type { BlobKey, ConceptId, DeleteOptions, Frontmatter, HeadResult, OkfDocument, QueryFilter, ReadBlobResult, ReadResult, ReservedFilename, ReservedReadResult, StorageBackend, Version, VersionInfo, WriteOptions } from "./types.js";
|
|
44
46
|
/**
|
|
45
47
|
* An injectable fetch-like transport: given a `Request`, resolve a `Response`. This
|
|
46
48
|
* is exactly the shape {@link createRouter} (in `@superbee/server`) returns,
|
|
@@ -85,7 +87,58 @@ export declare class RemoteError extends Error {
|
|
|
85
87
|
readonly code: string;
|
|
86
88
|
/** The raw HTTP status that produced this error. */
|
|
87
89
|
readonly status: number;
|
|
88
|
-
constructor(message: string, code: string, status: number);
|
|
90
|
+
constructor(message: string, code: string, status: number, cause?: unknown);
|
|
91
|
+
}
|
|
92
|
+
/** The deployment-scoped capability booleans a wire authority reports (`docs/WIRE-PROTOCOL.md`). */
|
|
93
|
+
export interface WireCapabilities {
|
|
94
|
+
history: boolean;
|
|
95
|
+
enforced_cas: boolean;
|
|
96
|
+
projections: boolean;
|
|
97
|
+
backlinks: boolean;
|
|
98
|
+
blobs: boolean;
|
|
99
|
+
/** Whether document writes carrying `Idempotency-Key` are recorded and readable by lookup. */
|
|
100
|
+
operations: boolean;
|
|
101
|
+
/** Whether `GET /heads` answers every document id and version under one digest, with `304`. */
|
|
102
|
+
heads: boolean;
|
|
103
|
+
/** Whether `GET /snapshot` streams every document as terminated NDJSON. */
|
|
104
|
+
snapshot: boolean;
|
|
105
|
+
}
|
|
106
|
+
/** Options for {@link RemoteBackend.heads}. */
|
|
107
|
+
export interface HeadsOptions {
|
|
108
|
+
/** A digest from an earlier `heads` or `snapshot` answer; the authority answers `304` when it still holds it. */
|
|
109
|
+
ifNoneMatch?: string;
|
|
110
|
+
}
|
|
111
|
+
/** A `200` from `GET /heads`: every document id and version, and the digest over them. */
|
|
112
|
+
export interface HeadsResult {
|
|
113
|
+
digest: string;
|
|
114
|
+
heads: DocumentHead[];
|
|
115
|
+
}
|
|
116
|
+
/** The snapshot's first line: how many documents follow and the digest `heads` would return for this state. */
|
|
117
|
+
export interface SnapshotHeader {
|
|
118
|
+
count: number;
|
|
119
|
+
digest: string;
|
|
120
|
+
}
|
|
121
|
+
/** One `doc` line of a snapshot. */
|
|
122
|
+
export interface SnapshotDocument {
|
|
123
|
+
id: ConceptId;
|
|
124
|
+
version: Version;
|
|
125
|
+
frontmatter: Frontmatter;
|
|
126
|
+
body: string;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* A snapshot as {@link RemoteBackend.snapshot} hands it over: the header, already parsed, and
|
|
130
|
+
* the documents as they stream. Iterating `docs` to completion is the completeness signal: the
|
|
131
|
+
* loop ends only after the `end` line arrived with the announced count and the digest recomputed
|
|
132
|
+
* over the received `{ id, version }` rows equals the header's, and it throws
|
|
133
|
+
* `SNAPSHOT_TRUNCATED` (the body ended or failed first) or `SNAPSHOT_DIGEST_MISMATCH` (the body
|
|
134
|
+
* was whole but describes a state the header did not announce) otherwise, so a consumer that
|
|
135
|
+
* writes batches as they arrive has one control path and never needs to inspect a terminator
|
|
136
|
+
* or a digest itself. A consumer records the header digest as matched only after the loop
|
|
137
|
+
* ended normally.
|
|
138
|
+
*/
|
|
139
|
+
export interface RemoteSnapshot {
|
|
140
|
+
header: SnapshotHeader;
|
|
141
|
+
docs: AsyncIterable<SnapshotDocument>;
|
|
89
142
|
}
|
|
90
143
|
/**
|
|
91
144
|
* The client half of the wire-protocol v0 contract: implements {@link StorageBackend}
|
|
@@ -99,6 +152,8 @@ export declare class RemoteBackend implements StorageBackend {
|
|
|
99
152
|
private readonly authToken?;
|
|
100
153
|
private readonly maxRetries;
|
|
101
154
|
constructor(options: RemoteBackendOptions);
|
|
155
|
+
/** The authority's base URL as configured, without a trailing slash. */
|
|
156
|
+
get origin(): string;
|
|
102
157
|
/** Build the absolute URL for a bundle-relative wire path (e.g. `/docs/concepts/x`). */
|
|
103
158
|
private url;
|
|
104
159
|
private send;
|
|
@@ -107,6 +162,43 @@ export declare class RemoteBackend implements StorageBackend {
|
|
|
107
162
|
read(id: ConceptId): Promise<ReadResult>;
|
|
108
163
|
readMany(ids: ConceptId[]): Promise<ReadResult[]>;
|
|
109
164
|
write(id: ConceptId, doc: OkfDocument, options?: WriteOptions): Promise<Version>;
|
|
165
|
+
/**
|
|
166
|
+
* `GET /v0/capabilities`, deployment-scoped: what this authority implements. `operations` says
|
|
167
|
+
* whether it records outcomes by request identity. A host without it ignores `Idempotency-Key`
|
|
168
|
+
* and answers the lookup route with a route-miss `404`, which {@link lookupOperation} cannot
|
|
169
|
+
* tell from "never recorded"; a consumer that relies on identity checks this once before it
|
|
170
|
+
* sends any intent. Missing booleans read as `false`.
|
|
171
|
+
*/
|
|
172
|
+
wireCapabilities(): Promise<WireCapabilities>;
|
|
173
|
+
/**
|
|
174
|
+
* `GET /heads`: every document id and version the authority holds, under one digest, or
|
|
175
|
+
* `null` when `ifNoneMatch` named the digest it still holds (a `304`: nothing changed). A
|
|
176
|
+
* `200` is diffed against the caller's own copy: an id missing from `heads` was deleted, a
|
|
177
|
+
* differing version changed. A `200` without a well-formed digest, whose `count` and rows
|
|
178
|
+
* disagree, or whose rows digest by the documented recipe to something other than the served
|
|
179
|
+
* digest, is rejected rather than trusted, as is a `304` to a request that sent no
|
|
180
|
+
* `ifNoneMatch`. The recomputation is what stops a listing that is whole by its own count
|
|
181
|
+
* but not the state its digest names (a shortened listing under the real digest) from being
|
|
182
|
+
* diffed as a mass deletion. Not part of the {@link StorageBackend} seam.
|
|
183
|
+
*/
|
|
184
|
+
heads(options?: HeadsOptions): Promise<HeadsResult | null>;
|
|
185
|
+
/**
|
|
186
|
+
* `GET /snapshot`: the whole bundle in one response. The header line is parsed before this
|
|
187
|
+
* resolves, so a non-2xx or a body without a header rejects here with the usual typed error;
|
|
188
|
+
* the documents then stream through {@link RemoteSnapshot.docs}. Transient retry applies only
|
|
189
|
+
* to obtaining the response: a body cut mid-stream is reported to the consumer as
|
|
190
|
+
* `SNAPSHOT_TRUNCATED`, a whole body whose heads do not digest to the header's announcement as
|
|
191
|
+
* `SNAPSHOT_DIGEST_MISMATCH`, and re-requesting is the consumer's decision. Reserved files are
|
|
192
|
+
* not part of a snapshot. Not part of the {@link StorageBackend} seam.
|
|
193
|
+
*/
|
|
194
|
+
snapshot(): Promise<RemoteSnapshot>;
|
|
195
|
+
/**
|
|
196
|
+
* `GET /operations/{requestId}`: the authority's recorded outcome for an identified write, or
|
|
197
|
+
* `null` when it holds nothing under that identity (never recorded, or recorded and expired;
|
|
198
|
+
* the wire cannot tell those apart). Any other non-2xx is the usual typed error. Not part of
|
|
199
|
+
* the {@link StorageBackend} seam: only a remote authority records outcomes by request identity.
|
|
200
|
+
*/
|
|
201
|
+
lookupOperation(requestId: string): Promise<Outcome | null>;
|
|
110
202
|
exists(id: ConceptId): Promise<boolean>;
|
|
111
203
|
/**
|
|
112
204
|
* THE `GET /docs` cursor pager — the pagination contract (the `cursor` param, the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-backend.d.ts","sourceRoot":"","sources":["../src/remote-backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;
|
|
1
|
+
{"version":3,"file":"remote-backend.d.ts","sourceRoot":"","sources":["../src/remote-backend.ts"],"names":[],"mappings":"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"}
|