@interop/was-client 0.30.0 → 0.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -25,6 +25,7 @@
25
25
  - [Registering a Bring-Your-Own-Storage backend](#registering-a-bring-your-own-storage-backend)
26
26
  - [Encrypted collections (EDV-over-WAS): pass-through encryption via the WAS client (recommended)](#encrypted-collections-edv-over-was-pass-through-encryption-via-the-was-client-recommended)
27
27
  - [Cross-replica sync](#cross-replica-sync)
28
+ - [Resource logs (co-managed key resources)](#resource-logs-co-managed-key-resources)
28
29
  - [Export and import](#export-and-import)
29
30
  - [The manual-request escape hatch](#the-manual-request-escape-hatch)
30
31
  - [Errors and the 404/null caveat](#errors-and-the-404null-caveat)
@@ -745,6 +746,34 @@ graph. To sync an encrypted collection, keep the same port and swap in
745
746
  `createEdvDocCipher` -- the change feed and the port ship the envelope bytes
746
747
  unchanged either way, so the server never sees plaintext.
747
748
 
749
+ ### Resource logs (co-managed key resources)
750
+
751
+ The opt-in `@interop/was-client/log` subpath is the transport layer for resource
752
+ logs -- the hash-linked, JSON Lines log format (the App Connect spec's Resource
753
+ Log Profile) governing key resources co-managed between a wallet's clients and
754
+ the storage server, such as encryption descriptors and key rosters. It is
755
+ transport only: chain verification (SCID, entry hashes, proofs, authorization,
756
+ the chain-head pin) lives in the consuming verifier.
757
+
758
+ - **`parseResourceLog` / `serializeResourceLog`** -- strict JSON Lines: a
759
+ non-object line is a parse failure, not a skip.
760
+ - **`resourceLogStore({ resource })`** -- the log-store seam over a WAS Resource
761
+ (stored as `text/jsonl`): read-with-etag of the full log, compare-and-swap
762
+ append conditioned on that etag, and the guarded create of a genesis entry.
763
+ Appends carry the prior lines' bytes forward verbatim. Both writes ride the
764
+ backend's `conditional-writes` feature, which the profile requires.
765
+ - **`confirmAppend({ store, entry })`** -- the profile's "acknowledgement is a
766
+ promise" rule: read the log back after an acked append and check the entry is
767
+ actually in the served history (else `LogNotConfirmedError`) before treating
768
+ the append as durable.
769
+ - **`writeLogProjection({ resource, state, history })`** -- the point-state
770
+ document a non-verifying consumer reads: the verified head entry's `state`
771
+ plus the `history: { method, resource }` dispatch hint. The log is the source
772
+ of truth; the projection follows it.
773
+
774
+ The subpath is crypto-free and re-exports the wire types (`ResourceLogEntry` et
775
+ al.) from `@interop/storage-core`.
776
+
748
777
  ### Export and import
749
778
 
750
779
  ```ts
@@ -1,27 +1,4 @@
1
- import type { CollectionEncryption, CollectionEncryptionEpochsMac, CollectionEncryptionEpochsSig } from '../types.js';
2
- /**
3
- * A caller-supplied signer for the `epochsSig` member: given the canonical
4
- * signature payload bytes ({@link epochsSigPayload} over the descriptor being
5
- * written), it returns the full signature member to stamp. The signing key --
6
- * and the root of trust the reader resolves its `kid` against -- are entirely
7
- * the caller's; this module only defines the payload and where the result
8
- * lands.
9
- */
10
- export type EpochsSigner = (options: {
11
- payload: Uint8Array;
12
- }) => Promise<CollectionEncryptionEpochsSig>;
13
- /**
14
- * Builds the payload bytes an `epochsSig` signs: `UTF8(
15
- * "was-epoch-config-sig/v1." + epochsConfigJson(descriptor))` -- the same
16
- * epoch configuration the MAC covers, under its own domain-separation prefix.
17
- * Exported so a signing caller and a verifying reader construct
18
- * byte-identical input from the descriptor alone.
19
- *
20
- * @param descriptor {CollectionEncryption} the descriptor whose epoch
21
- * configuration is being signed or verified
22
- * @returns {Uint8Array}
23
- */
24
- export declare function epochsSigPayload(descriptor: CollectionEncryption): Uint8Array;
1
+ import type { CollectionEncryption, CollectionEncryptionEpochsMac } from '../types.js';
25
2
  /**
26
3
  * Computes the `epochsMac` field for a descriptor under the current epoch's
27
4
  * secret. Compute this over the exact descriptor state being written (member
@@ -1 +1 @@
1
- {"version":3,"file":"epochMac.d.ts","sourceRoot":"","sources":["../../src/edv/epochMac.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EACV,oBAAoB,EACpB,6BAA6B,EAC7B,6BAA6B,EAC9B,MAAM,aAAa,CAAA;AAmBpB;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE;IACnC,OAAO,EAAE,UAAU,CAAA;CACpB,KAAK,OAAO,CAAC,6BAA6B,CAAC,CAAA;AAuE5C;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,oBAAoB,GAAG,UAAU,CAE7E;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CAAC,EACrC,UAAU,EACV,WAAW,EACZ,EAAE;IACD,UAAU,EAAE,oBAAoB,CAAA;IAChC,WAAW,EAAE,UAAU,CAAA;CACxB,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAYzC;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CAAC,EACpC,UAAU,EACV,WAAW,EACZ,EAAE;IACD,UAAU,EAAE,oBAAoB,CAAA;IAChC,WAAW,EAAE,UAAU,CAAA;CACxB,GAAG,OAAO,CAAC,OAAO,CAAC,CAkBnB"}
1
+ {"version":3,"file":"epochMac.d.ts","sourceRoot":"","sources":["../../src/edv/epochMac.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EACV,oBAAoB,EACpB,6BAA6B,EAC9B,MAAM,aAAa,CAAA;AAiFpB;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CAAC,EACrC,UAAU,EACV,WAAW,EACZ,EAAE;IACD,UAAU,EAAE,oBAAoB,CAAA;IAChC,WAAW,EAAE,UAAU,CAAA;CACxB,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAYzC;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CAAC,EACpC,UAAU,EACV,WAAW,EACZ,EAAE;IACD,UAAU,EAAE,oBAAoB,CAAA;IAChC,WAAW,EAAE,UAAU,CAAA;CACxB,GAAG,OAAO,CAAC,OAAO,CAAC,CAkBnB"}
@@ -18,6 +18,12 @@
18
18
  * replay an ENTIRE prior consistent configuration (an old epoch list with its
19
19
  * matching old MAC). Detecting that needs client-side monotonic state, which is
20
20
  * out of scope here.
21
+ *
22
+ * The MAC deliberately survives the move to log-governed descriptors (the
23
+ * Resource Log Profile): a verified log entry's proof covers the full epoch
24
+ * configuration for any reader that verifies the log, but the MAC is the only
25
+ * guard that travels with the point-state projection, which non-log readers
26
+ * still consume. Its prefix and payload bytes are frozen.
21
27
  */
22
28
  import { base64urlnopad } from '@scure/base';
23
29
  import { ENCODER } from '../internal/content.js';
@@ -29,12 +35,6 @@ const MAC_KEY_INFO = ENCODER.encode('was-epoch-config-mac/v1');
29
35
  * The domain-separation prefix prepended to the JSON payload before it is MACed.
30
36
  */
31
37
  const MAC_PAYLOAD_PREFIX = 'was-epoch-config/v1.';
32
- /**
33
- * The domain-separation prefix of the detached `epochsSig` signature payload --
34
- * distinct from the MAC prefix so a signature can never be replayed as a MAC
35
- * input or vice versa.
36
- */
37
- const SIG_PAYLOAD_PREFIX = 'was-epoch-config-sig/v1.';
38
38
  /**
39
39
  * Derives the HMAC-SHA256 key from a 32-byte epoch secret:
40
40
  * HKDF-SHA256(ikm = the epoch secret, salt = empty, info =
@@ -55,10 +55,10 @@ async function deriveMacKey(epochSecret) {
55
55
  }
56
56
  /**
57
57
  * The canonical JSON text of a descriptor's epoch configuration -- the part
58
- * both the MAC and the detached signature cover: `{ scheme, version,
59
- * currentEpoch, epochs }`, with `version` normalized to `null` when absent and
60
- * `epochs` the ordered list of epoch id strings. The object member order is
61
- * fixed so both sides serialize identically.
58
+ * the MAC covers: `{ scheme, version, currentEpoch, epochs }`, with `version`
59
+ * normalized to `null` when absent and `epochs` the ordered list of epoch id
60
+ * strings. The object member order is fixed so both sides serialize
61
+ * identically.
62
62
  *
63
63
  * @param descriptor {CollectionEncryption} the descriptor whose epoch
64
64
  * configuration is being authenticated
@@ -84,20 +84,6 @@ function macPayload(descriptor) {
84
84
  const bytes = ENCODER.encode(MAC_PAYLOAD_PREFIX + epochsConfigJson(descriptor));
85
85
  return bytes.buffer.slice(bytes.byteOffset, bytes.byteOffset + bytes.byteLength);
86
86
  }
87
- /**
88
- * Builds the payload bytes an `epochsSig` signs: `UTF8(
89
- * "was-epoch-config-sig/v1." + epochsConfigJson(descriptor))` -- the same
90
- * epoch configuration the MAC covers, under its own domain-separation prefix.
91
- * Exported so a signing caller and a verifying reader construct
92
- * byte-identical input from the descriptor alone.
93
- *
94
- * @param descriptor {CollectionEncryption} the descriptor whose epoch
95
- * configuration is being signed or verified
96
- * @returns {Uint8Array}
97
- */
98
- export function epochsSigPayload(descriptor) {
99
- return ENCODER.encode(SIG_PAYLOAD_PREFIX + epochsConfigJson(descriptor));
100
- }
101
87
  /**
102
88
  * Computes the `epochsMac` field for a descriptor under the current epoch's
103
89
  * secret. Compute this over the exact descriptor state being written (member
@@ -1 +1 @@
1
- {"version":3,"file":"epochMac.js","sourceRoot":"","sources":["../../src/edv/epochMac.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"epochMac.js","sourceRoot":"","sources":["../../src/edv/epochMac.ts"],"names":[],"mappings":"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"}
@@ -43,8 +43,7 @@ export { isEd25519DidKey, x25519RecipientFromDidKey } from './didKeyRecipient.js
43
43
  export { collectionDescriptorStore, resourceDescriptorStore } from './descriptorStore.js';
44
44
  export type { EncryptionDescriptorStore } from './descriptorStore.js';
45
45
  export { mintEpoch, epochKeyIdFor, unwrapEpochSecret, wrapEpochSecret } from './epochCrypto.js';
46
- export { computeEpochsMac, epochsSigPayload, verifyEpochsMac } from './epochMac.js';
47
- export type { EpochsSigner } from './epochMac.js';
46
+ export { computeEpochsMac, verifyEpochsMac } from './epochMac.js';
48
47
  export { resolveEpochKeys } from './epochKeys.js';
49
48
  export type { ResolvedEpochKeys } from './epochKeys.js';
50
49
  export { createEdvDocCipher, ownerRecipient, UnknownEpochError, isEncryptedEnvelope } from './docCipher.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/edv/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7D,YAAY,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACtE,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,eAAe,EACf,gBAAgB,EACjB,MAAM,iBAAiB,CAAA;AACxB,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EACL,eAAe,EACf,yBAAyB,EAC1B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AACrE,OAAO,EACL,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,eAAe,EAChB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EAChB,MAAM,eAAe,CAAA;AACtB,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,gBAAgB,CAAA;AACvB,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/edv/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7D,YAAY,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACtE,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,eAAe,EACf,gBAAgB,EACjB,MAAM,iBAAiB,CAAA;AACxB,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EACL,eAAe,EACf,yBAAyB,EAC1B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AACrE,OAAO,EACL,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,eAAe,EAChB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,gBAAgB,CAAA;AACvB,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA"}
package/dist/edv/index.js CHANGED
@@ -40,7 +40,7 @@ export { ensureFirstEpoch, initRecipients, addRecipient, removeRecipient, replac
40
40
  export { isEd25519DidKey, x25519RecipientFromDidKey } from './didKeyRecipient.js';
41
41
  export { collectionDescriptorStore, resourceDescriptorStore } from './descriptorStore.js';
42
42
  export { mintEpoch, epochKeyIdFor, unwrapEpochSecret, wrapEpochSecret } from './epochCrypto.js';
43
- export { computeEpochsMac, epochsSigPayload, verifyEpochsMac } from './epochMac.js';
43
+ export { computeEpochsMac, verifyEpochsMac } from './epochMac.js';
44
44
  export { resolveEpochKeys } from './epochKeys.js';
45
45
  export { createEdvDocCipher, ownerRecipient, UnknownEpochError, isEncryptedEnvelope } from './docCipher.js';
46
46
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/edv/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACtE,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,eAAe,EACf,gBAAgB,EACjB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACL,eAAe,EACf,yBAAyB,EAC1B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EACL,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,eAAe,EAChB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EAChB,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEjD,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/edv/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACtE,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,eAAe,EACf,gBAAgB,EACjB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACL,eAAe,EACf,yBAAyB,EAC1B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EACL,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,eAAe,EAChB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEjD,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,gBAAgB,CAAA"}
@@ -36,7 +36,6 @@ import type { Collection } from '../Collection.js';
36
36
  import type { Space } from '../Space.js';
37
37
  import type { EncryptionDescriptorStore } from './descriptorStore.js';
38
38
  import type { CollectionEncryption, IDelegatedZcap } from '../types.js';
39
- import type { EpochsSigner } from './epochMac.js';
40
39
  import type { RecipientPublicKey } from './epochCrypto.js';
41
40
  export type { RecipientPublicKey } from './epochCrypto.js';
42
41
  /**
@@ -71,18 +70,14 @@ export type { RecipientPublicKey } from './epochCrypto.js';
71
70
  * @param [options.store] {EncryptionDescriptorStore} an explicit descriptor store
72
71
  * @param options.recipients {RecipientPublicKey[]} the initial readers' public
73
72
  * key-agreement keys (each `id` is the reader's `kid`)
74
- * @param [options.signEpochs] {EpochsSigner} signs the epoch configuration
75
- * being written, stamping the descriptor's `epochsSig` beside its
76
- * `epochsMac`
77
73
  * @returns {Promise<{ descriptor: CollectionEncryption, installed: boolean }>}
78
74
  * the collection's epoch-bearing descriptor, and whether this call installed
79
75
  * its epoch[0] (`false` means an existing roster was adopted)
80
76
  */
81
- export declare function ensureFirstEpoch({ collection, store, recipients, signEpochs }: {
77
+ export declare function ensureFirstEpoch({ collection, store, recipients }: {
82
78
  collection?: Collection;
83
79
  store?: EncryptionDescriptorStore;
84
80
  recipients: RecipientPublicKey[];
85
- signEpochs?: EpochsSigner;
86
81
  }): Promise<{
87
82
  descriptor: CollectionEncryption;
88
83
  installed: boolean;
@@ -113,12 +108,9 @@ export declare function ensureFirstEpoch({ collection, store, recipients, signEp
113
108
  * whose epoch key already exists (e.g. a per-user key being enrolled into
114
109
  * its wrap-set roster). The `epochId` must be the key's did:key and `secret`
115
110
  * its raw 32-byte private key, exactly what {@link mintEpoch} returns.
116
- * @param [options.signEpochs] {EpochsSigner} signs the epoch configuration
117
- * being written, stamping the descriptor's `epochsSig` beside its
118
- * `epochsMac`
119
111
  * @returns {Promise<CollectionEncryption>} the new descriptor
120
112
  */
121
- export declare function initRecipients({ collection, store, recipients, epoch: premintedEpoch, signEpochs }: {
113
+ export declare function initRecipients({ collection, store, recipients, epoch: premintedEpoch }: {
122
114
  collection?: Collection;
123
115
  store?: EncryptionDescriptorStore;
124
116
  recipients: RecipientPublicKey[];
@@ -126,7 +118,6 @@ export declare function initRecipients({ collection, store, recipients, epoch: p
126
118
  epochId: string;
127
119
  secret: Uint8Array;
128
120
  };
129
- signEpochs?: EpochsSigner;
130
121
  }): Promise<CollectionEncryption>;
131
122
  /**
132
123
  * Adds a reader to a multi-recipient encrypted Collection. Escrow semantics: the
@@ -209,12 +200,9 @@ export declare function addRecipient({ collection, store, recipient, owner }: {
209
200
  * self-describing `did:key`. May resolve `null` to signal drop-this-kid:
210
201
  * the rotation then excludes that entry from the fresh epoch instead of
211
202
  * throwing (subject to the no-recipients-remaining guard).
212
- * @param [options.signEpochs] {EpochsSigner} signs the rotated epoch
213
- * configuration, stamping the descriptor's `epochsSig` beside its
214
- * `epochsMac`
215
203
  * @returns {Promise<CollectionEncryption>} the new descriptor
216
204
  */
217
- export declare function removeRecipient({ collection, store, space, recipientId, revoke, pull, resolveRecipientKey, signEpochs }: {
205
+ export declare function removeRecipient({ collection, store, space, recipientId, revoke, pull, resolveRecipientKey }: {
218
206
  collection?: Collection;
219
207
  store?: EncryptionDescriptorStore;
220
208
  space?: Space;
@@ -222,7 +210,6 @@ export declare function removeRecipient({ collection, store, space, recipientId,
222
210
  revoke?: IDelegatedZcap | IDelegatedZcap[];
223
211
  pull?: () => Promise<void>;
224
212
  resolveRecipientKey?: (kid: string) => Promise<RecipientPublicKey | null>;
225
- signEpochs?: EpochsSigner;
226
213
  }): Promise<CollectionEncryption>;
227
214
  /**
228
215
  * Replaces one reader (or several) with another in ONE descriptor write -- the
@@ -273,12 +260,9 @@ export declare function removeRecipient({ collection, store, space, recipientId,
273
260
  * recipient's kid for the fresh epoch, `null` to drop it -- the
274
261
  * {@link removeRecipient} contract (the incoming recipient never routes
275
262
  * through it)
276
- * @param [options.signEpochs] {EpochsSigner} signs the rotated epoch
277
- * configuration, stamping the descriptor's `epochsSig` beside its
278
- * `epochsMac` (an escrow-only write leaves both untouched)
279
263
  * @returns {Promise<CollectionEncryption>} the new descriptor
280
264
  */
281
- export declare function replaceRecipient({ collection, store, space, retire, recipient, owner, revoke, pull, resolveRecipientKey, signEpochs }: {
265
+ export declare function replaceRecipient({ collection, store, space, retire, recipient, owner, revoke, pull, resolveRecipientKey }: {
282
266
  collection?: Collection;
283
267
  store?: EncryptionDescriptorStore;
284
268
  space?: Space;
@@ -290,6 +274,5 @@ export declare function replaceRecipient({ collection, store, space, retire, rec
290
274
  revoke?: IDelegatedZcap | IDelegatedZcap[];
291
275
  pull?: () => Promise<void>;
292
276
  resolveRecipientKey?: (kid: string) => Promise<RecipientPublicKey | null>;
293
- signEpochs?: EpochsSigner;
294
277
  }): Promise<CollectionEncryption>;
295
278
  //# sourceMappingURL=recipients.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"recipients.d.ts","sourceRoot":"","sources":["../../src/edv/recipients.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recipients.d.ts","sourceRoot":"","sources":["../../src/edv/recipients.ts"],"names":[],"mappings":"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"}
@@ -2,40 +2,28 @@ import { EDV_SCHEME_VERSION } from './constants.js';
2
2
  import { PreconditionFailedError, ValidationError } from '../errors.js';
3
3
  import { collectionDescriptorStore } from './descriptorStore.js';
4
4
  import { didKeyResolver, mintEpoch, unwrapEpochSecret, wrapEpochSecret } from './epochCrypto.js';
5
- import { computeEpochsMac, epochsSigPayload } from './epochMac.js';
5
+ import { computeEpochsMac } from './epochMac.js';
6
6
  /**
7
7
  * How many times a recipient CAS write retries a stale (`412`) description
8
8
  * before surfacing {@link PreconditionFailedError}.
9
9
  */
10
10
  const MAX_CAS_ATTEMPTS = 3;
11
11
  /**
12
- * Stamps the epoch-configuration authenticators onto a descriptor about to be
13
- * written: the `epochsMac` under the current epoch's secret always, and the
14
- * detached `epochsSig` when the caller supplied a signer. Without a signer any
15
- * prior `epochsSig` is dropped rather than carried forward -- the epoch
16
- * configuration just changed, so a stale signature over the old configuration
17
- * would only ever fail verification.
12
+ * Stamps the `epochsMac` epoch-configuration authenticator onto a descriptor
13
+ * about to be written, keyed from the current epoch's secret and computed over
14
+ * the exact descriptor state being written (a compare-and-swap retry re-reads
15
+ * and re-stamps).
18
16
  *
19
17
  * @param options {object}
20
18
  * @param options.descriptor {CollectionEncryption} the exact descriptor
21
19
  * state being written (epochs / currentEpoch already updated)
22
20
  * @param options.epochSecret {Uint8Array} the current epoch's 32-byte secret
23
- * @param [options.signEpochs] {EpochsSigner} the caller's epoch-config signer
24
21
  * @returns {Promise<CollectionEncryption>} the descriptor with `epochsMac`
25
- * (and `epochsSig`, when signed) stamped
22
+ * stamped
26
23
  */
27
- async function stampEpochsAuth({ descriptor, epochSecret, signEpochs }) {
24
+ async function stampEpochsMac({ descriptor, epochSecret }) {
28
25
  const epochsMac = await computeEpochsMac({ descriptor, epochSecret });
29
- const stamped = { ...descriptor, epochsMac };
30
- if (signEpochs) {
31
- stamped.epochsSig = await signEpochs({
32
- payload: epochsSigPayload(stamped)
33
- });
34
- }
35
- else {
36
- delete stamped.epochsSig;
37
- }
38
- return stamped;
26
+ return { ...descriptor, epochsMac };
39
27
  }
40
28
  /**
41
29
  * Escrows a recipient into every epoch it is not already a recipient of: for
@@ -133,22 +121,16 @@ async function rotateEpoch({ epochId, secret, remaining, resolveRecipientKey })
133
121
  * wrapped to its recipients
134
122
  * @param options.secret {Uint8Array} the epoch's 32-byte secret, keying the
135
123
  * `epochsMac`
136
- * @param [options.signEpochs] {EpochsSigner} signs the epoch configuration,
137
- * stamping `epochsSig` beside `epochsMac`
138
124
  * @returns {Promise<CollectionEncryption>} the descriptor to write
139
125
  */
140
- async function withFirstEpoch({ descriptor, epoch, secret, signEpochs }) {
126
+ async function withFirstEpoch({ descriptor, epoch, secret }) {
141
127
  const next = {
142
128
  ...descriptor,
143
129
  version: descriptor.version ?? EDV_SCHEME_VERSION,
144
130
  epochs: [epoch],
145
131
  currentEpoch: epoch.id
146
132
  };
147
- return stampEpochsAuth({
148
- descriptor: next,
149
- epochSecret: secret,
150
- signEpochs
151
- });
133
+ return stampEpochsMac({ descriptor: next, epochSecret: secret });
152
134
  }
153
135
  /**
154
136
  * Mints a fresh random epoch key and wraps it to each initial recipient,
@@ -205,14 +187,11 @@ async function mintFirstEpoch({ recipients, preminted }) {
205
187
  * @param [options.store] {EncryptionDescriptorStore} an explicit descriptor store
206
188
  * @param options.recipients {RecipientPublicKey[]} the initial readers' public
207
189
  * key-agreement keys (each `id` is the reader's `kid`)
208
- * @param [options.signEpochs] {EpochsSigner} signs the epoch configuration
209
- * being written, stamping the descriptor's `epochsSig` beside its
210
- * `epochsMac`
211
190
  * @returns {Promise<{ descriptor: CollectionEncryption, installed: boolean }>}
212
191
  * the collection's epoch-bearing descriptor, and whether this call installed
213
192
  * its epoch[0] (`false` means an existing roster was adopted)
214
193
  */
215
- export async function ensureFirstEpoch({ collection, store, recipients, signEpochs }) {
194
+ export async function ensureFirstEpoch({ collection, store, recipients }) {
216
195
  if (recipients.length === 0) {
217
196
  throw new ValidationError('ensureFirstEpoch needs at least one recipient to wrap the epoch key to.');
218
197
  }
@@ -233,7 +212,7 @@ export async function ensureFirstEpoch({ collection, store, recipients, signEpoc
233
212
  installed = true;
234
213
  staged ??= mintFirstEpoch({ recipients });
235
214
  const { epoch, secret } = await staged;
236
- return withFirstEpoch({ descriptor, epoch, secret, signEpochs });
215
+ return withFirstEpoch({ descriptor, epoch, secret });
237
216
  }
238
217
  });
239
218
  return { descriptor, installed };
@@ -264,12 +243,9 @@ export async function ensureFirstEpoch({ collection, store, recipients, signEpoc
264
243
  * whose epoch key already exists (e.g. a per-user key being enrolled into
265
244
  * its wrap-set roster). The `epochId` must be the key's did:key and `secret`
266
245
  * its raw 32-byte private key, exactly what {@link mintEpoch} returns.
267
- * @param [options.signEpochs] {EpochsSigner} signs the epoch configuration
268
- * being written, stamping the descriptor's `epochsSig` beside its
269
- * `epochsMac`
270
246
  * @returns {Promise<CollectionEncryption>} the new descriptor
271
247
  */
272
- export async function initRecipients({ collection, store, recipients, epoch: premintedEpoch, signEpochs }) {
248
+ export async function initRecipients({ collection, store, recipients, epoch: premintedEpoch }) {
273
249
  if (recipients.length === 0) {
274
250
  throw new ValidationError('initRecipients needs at least one recipient to wrap the epoch key to.');
275
251
  }
@@ -289,7 +265,7 @@ export async function initRecipients({ collection, store, recipients, epoch: pre
289
265
  throw new ValidationError('This collection already has key epochs; use addRecipient to add a ' +
290
266
  'reader instead of initRecipients.');
291
267
  }
292
- return withFirstEpoch({ descriptor, epoch, secret, signEpochs });
268
+ return withFirstEpoch({ descriptor, epoch, secret });
293
269
  }
294
270
  });
295
271
  }
@@ -386,12 +362,9 @@ export async function addRecipient({ collection, store, recipient, owner }) {
386
362
  * self-describing `did:key`. May resolve `null` to signal drop-this-kid:
387
363
  * the rotation then excludes that entry from the fresh epoch instead of
388
364
  * throwing (subject to the no-recipients-remaining guard).
389
- * @param [options.signEpochs] {EpochsSigner} signs the rotated epoch
390
- * configuration, stamping the descriptor's `epochsSig` beside its
391
- * `epochsMac`
392
365
  * @returns {Promise<CollectionEncryption>} the new descriptor
393
366
  */
394
- export async function removeRecipient({ collection, store, space, recipientId, revoke, pull, resolveRecipientKey = defaultResolveRecipientKey, signEpochs }) {
367
+ export async function removeRecipient({ collection, store, space, recipientId, revoke, pull, resolveRecipientKey = defaultResolveRecipientKey }) {
395
368
  const descriptorStore = descriptorStoreFor({ collection, store });
396
369
  // Resolve the pull axis up front, before any rotation, so a malformed call
397
370
  // fails before the descriptor is mutated.
@@ -458,11 +431,7 @@ export async function removeRecipient({ collection, store, space, recipientId, r
458
431
  epochs: [...epochs, newEpoch],
459
432
  currentEpoch: epochId
460
433
  };
461
- return stampEpochsAuth({
462
- descriptor: next,
463
- epochSecret: secret,
464
- signEpochs
465
- });
434
+ return stampEpochsMac({ descriptor: next, epochSecret: secret });
466
435
  }
467
436
  });
468
437
  // 2. Pull axis: withdraw the reader's server-side access AFTER the rotation
@@ -519,12 +488,9 @@ export async function removeRecipient({ collection, store, space, recipientId, r
519
488
  * recipient's kid for the fresh epoch, `null` to drop it -- the
520
489
  * {@link removeRecipient} contract (the incoming recipient never routes
521
490
  * through it)
522
- * @param [options.signEpochs] {EpochsSigner} signs the rotated epoch
523
- * configuration, stamping the descriptor's `epochsSig` beside its
524
- * `epochsMac` (an escrow-only write leaves both untouched)
525
491
  * @returns {Promise<CollectionEncryption>} the new descriptor
526
492
  */
527
- export async function replaceRecipient({ collection, store, space, retire, recipient, owner, revoke, pull, resolveRecipientKey = defaultResolveRecipientKey, signEpochs }) {
493
+ export async function replaceRecipient({ collection, store, space, retire, recipient, owner, revoke, pull, resolveRecipientKey = defaultResolveRecipientKey }) {
528
494
  const descriptorStore = descriptorStoreFor({ collection, store });
529
495
  const pullAxis = resolvePullAxis({ space, revoke, pull });
530
496
  const retiring = Array.isArray(retire) ? retire : [retire];
@@ -581,11 +547,7 @@ export async function replaceRecipient({ collection, store, space, retire, recip
581
547
  epochs: [...escrowed, newEpoch],
582
548
  currentEpoch: epochId
583
549
  };
584
- return stampEpochsAuth({
585
- descriptor: next,
586
- epochSecret: secret,
587
- signEpochs
588
- });
550
+ return stampEpochsMac({ descriptor: next, epochSecret: secret });
589
551
  }
590
552
  });
591
553
  await pullAxis();
@@ -1 +1 @@
1
- {"version":3,"file":"recipients.js","sourceRoot":"","sources":["../../src/edv/recipients.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recipients.js","sourceRoot":"","sources":["../../src/edv/recipients.ts"],"names":[],"mappings":"AAoCA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAOhE,OAAO,EACL,cAAc,EACd,SAAS,EACT,iBAAiB,EACjB,eAAe,EAChB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAKhD;;;GAGG;AACH,MAAM,gBAAgB,GAAG,CAAC,CAAA;AAE1B;;;;;;;;;;;;GAYG;AACH,KAAK,UAAU,cAAc,CAAC,EAC5B,UAAU,EACV,WAAW,EAIZ;IACC,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAA;IACrE,OAAO,EAAE,GAAG,UAAU,EAAE,SAAS,EAAE,CAAA;AACrC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,KAAK,UAAU,gBAAgB,CAAC,EAC9B,MAAM,EACN,SAAS,EACT,KAAK,EACL,SAAS,EACT,MAAM,EAOP;IACC,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAsC,EAAE;QAC7D,sEAAsE;QACtE,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;YACtE,OAAO,KAAK,CAAA;QACd,CAAC;QACD,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CACpC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,KAAK,CAAC,eAAe,CAAC,EAAE,CACvD,CAAA;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,eAAe,CACvB,UAAU,SAAS,2CAA2C;gBAC5D,IAAI,KAAK,CAAC,EAAE,qDAAqD;gBACjE,UAAU,MAAM,UAAU,CAC7B,CAAA;QACH,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC;YAC1C,KAAK,EAAE,QAAQ;YACf,eAAe,EAAE,KAAK,CAAC,eAAe;SACvC,CAAC,CAAA;QACF,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,eAAe,CACvB,UAAU,SAAS,uBAAuB,KAAK,CAAC,EAAE,aAAa;gBAC7D,oCAAoC,CACvC,CAAA;QACH,CAAC;QACD,OAAO,GAAG,IAAI,CAAA;QACd,OAAO;YACL,GAAG,KAAK;YACR,UAAU,EAAE;gBACV,GAAG,KAAK,CAAC,UAAU;gBACnB,MAAM,eAAe,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;aAClD;SACF,CAAA;IACH,CAAC,CAAC,CACH,CAAA;IACD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;AACtC,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,KAAK,UAAU,WAAW,CAAC,EACzB,OAAO,EACP,MAAM,EACN,SAAS,EACT,mBAAmB,EAMpB;IACC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,KAAK,EAAC,GAAG,EAAC,EAAE;QAC7B,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,GAAG,CAAC,CAAA;QAChD,OAAO,SAAS,KAAK,IAAI;YACvB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,eAAe,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAA;IACzD,CAAC,CAAC,CACH,CAAA;IACD,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE,CAAA;AAC7E,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,KAAK,UAAU,cAAc,CAAC,EAC5B,UAAU,EACV,KAAK,EACL,MAAM,EAKP;IACC,MAAM,IAAI,GAAyB;QACjC,GAAG,UAAU;QACb,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,kBAAkB;QACjD,MAAM,EAAE,CAAC,KAAK,CAAC;QACf,YAAY,EAAE,KAAK,CAAC,EAAE;KACvB,CAAA;IACD,OAAO,cAAc,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAA;AAClE,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,KAAK,UAAU,cAAc,CAAC,EAC5B,UAAU,EACV,SAAS,EAIV;IACC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,IAAI,CAAC,MAAM,SAAS,EAAE,CAAC,CAAA;IAC5D,MAAM,KAAK,GAA8B;QACvC,EAAE,EAAE,OAAO;QACX,UAAU,EAAE,MAAM,OAAO,CAAC,GAAG,CAC3B,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CACzB,eAAe,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CACpD,CACF;KACF,CAAA;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;AAC1B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EACrC,UAAU,EACV,KAAK,EACL,UAAU,EAKX;IACC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,eAAe,CACvB,yEAAyE,CAC1E,CAAA;IACH,CAAC;IACD,IAAI,SAAS,GAAG,KAAK,CAAA;IACrB,2EAA2E;IAC3E,sEAAsE;IACtE,IAAI,MAAM,GAGE,IAAI,CAAA;IAChB,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC;QAC3C,KAAK,EAAE,kBAAkB,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QAChD,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE;QACpD,MAAM,EAAE,KAAK,EAAC,UAAU,EAAC,EAAE;YACzB,IAAI,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtD,qEAAqE;gBACrE,mEAAmE;gBACnE,SAAS,GAAG,KAAK,CAAA;gBACjB,OAAO,IAAI,CAAA;YACb,CAAC;YACD,SAAS,GAAG,IAAI,CAAA;YAChB,MAAM,KAAK,cAAc,CAAC,EAAE,UAAU,EAAE,CAAC,CAAA;YACzC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAA;YACtC,OAAO,cAAc,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QACtD,CAAC;KACF,CAAC,CAAA;IACF,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAA;AAClC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,EACnC,UAAU,EACV,KAAK,EACL,UAAU,EACV,KAAK,EAAE,cAAc,EAMtB;IACC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,eAAe,CACvB,uEAAuE,CACxE,CAAA;IACH,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC;QAC7C,UAAU;QACV,SAAS,EAAE,cAAc;KAC1B,CAAC,CAAA;IACF,OAAO,mBAAmB,CAAC;QACzB,KAAK,EAAE,kBAAkB,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QAChD,sEAAsE;QACtE,+DAA+D;QAC/D,uEAAuE;QACvE,YAAY;QACZ,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE;QACpD,MAAM,EAAE,KAAK,EAAC,UAAU,EAAC,EAAE;YACzB,IAAI,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtD,MAAM,IAAI,eAAe,CACvB,oEAAoE;oBAClE,mCAAmC,CACtC,CAAA;YACH,CAAC;YACD,OAAO,cAAc,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QACtD,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EACjC,UAAU,EACV,KAAK,EACL,SAAS,EACT,KAAK,EAMN;IACC,OAAO,mBAAmB,CAAC;QACzB,KAAK,EAAE,kBAAkB,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QAChD,MAAM,EAAE,KAAK,EAAC,UAAU,EAAC,EAAE;YACzB,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;YAChC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,eAAe,CACvB,+DAA+D;oBAC7D,uBAAuB,CAC1B,CAAA;YACH,CAAC;YACD,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,gBAAgB,CAAC;gBACpD,MAAM;gBACN,SAAS;gBACT,KAAK;gBACL,SAAS,EAAE,cAAc;gBACzB,MAAM,EAAE,KAAK;aACd,CAAC,CAAA;YACF,OAAO,EAAE,GAAG,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,CAAA;QAC9C,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EACpC,UAAU,EACV,KAAK,EACL,KAAK,EACL,WAAW,EACX,MAAM,EACN,IAAI,EACJ,mBAAmB,GAAG,0BAA0B,EASjD;IACC,MAAM,eAAe,GAAG,kBAAkB,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAA;IACjE,2EAA2E;IAC3E,0CAA0C;IAC1C,MAAM,QAAQ,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IACzD,0EAA0E;IAC1E,6EAA6E;IAC7E,wEAAwE;IACxE,4EAA4E;IAC5E,wEAAwE;IACxE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,EAAE,CAAA;IAC7C,MAAM,iBAAiB,GAAG,MAAM,mBAAmB,CAAC;QAClD,KAAK,EAAE,eAAe;QACtB,MAAM,EAAE,KAAK,EAAC,UAAU,EAAC,EAAE;YACzB,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;YAChC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,eAAe,CACvB,4DAA4D,CAC7D,CAAA;YACH,CAAC;YACD,0EAA0E;YAC1E,0EAA0E;YAC1E,wEAAwE;YACxE,0EAA0E;YAC1E,2EAA2E;YAC3E,gDAAgD;YAChD,MAAM,YAAY,GAChB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,UAAU,CAAC,YAAY,CAAC;gBAC1D,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAA;YAC5B,sEAAsE;YACtE,iEAAiE;YACjE,mEAAmE;YACnE,kEAAkE;YAClE,sDAAsD;YACtD,IACE,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,WAAW,CAAC,EACxE,CAAC;gBACD,OAAO,IAAI,CAAA;YACb,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAA;YACnC,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;gBAC5C,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;oBACrC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBACjC,CAAC;YACH,CAAC;YACD,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,eAAe,CACvB,+DAA+D;oBAC7D,8DAA8D,CACjE,CAAA;YACH,CAAC;YACD,yEAAyE;YACzE,sEAAsE;YACtE,uEAAuE;YACvE,6BAA6B;YAC7B,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC;gBACjC,OAAO;gBACP,MAAM;gBACN,SAAS;gBACT,mBAAmB;aACpB,CAAC,CAAA;YACF,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,eAAe,CACvB,+DAA+D;oBAC7D,8DAA8D;oBAC9D,yDAAyD,CAC5D,CAAA;YACH,CAAC;YACD,uEAAuE;YACvE,2EAA2E;YAC3E,qEAAqE;YACrE,MAAM,IAAI,GAAyB;gBACjC,GAAG,UAAU;gBACb,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,QAAQ,CAAC;gBAC7B,YAAY,EAAE,OAAO;aACtB,CAAA;YACD,OAAO,cAAc,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAA;QAClE,CAAC;KACF,CAAC,CAAA;IAEF,4EAA4E;IAC5E,4EAA4E;IAC5E,MAAM,QAAQ,EAAE,CAAA;IAEhB,OAAO,iBAAiB,CAAA;AAC1B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EACrC,UAAU,EACV,KAAK,EACL,KAAK,EACL,MAAM,EACN,SAAS,EACT,KAAK,EACL,MAAM,EACN,IAAI,EACJ,mBAAmB,GAAG,0BAA0B,EAWjD;IACC,MAAM,eAAe,GAAG,kBAAkB,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAA;IACjE,MAAM,QAAQ,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IACzD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IAC1D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,eAAe,CACvB,kEAAkE;YAChE,iCAAiC,CACpC,CAAA;IACH,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,eAAe,CACvB,+DAA+D,CAChE,CAAA;IACH,CAAC;IACD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,EAAE,CAAA;IAC7C,MAAM,iBAAiB,GAAG,MAAM,mBAAmB,CAAC;QAClD,KAAK,EAAE,eAAe;QACtB,MAAM,EAAE,KAAK,EAAC,UAAU,EAAC,EAAE;YACzB,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;YAChC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,eAAe,CACvB,6DAA6D,CAC9D,CAAA;YACH,CAAC;YACD,oEAAoE;YACpE,kEAAkE;YAClE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,GAChD,MAAM,gBAAgB,CAAC;gBACrB,MAAM;gBACN,SAAS;gBACT,KAAK;gBACL,SAAS,EAAE,kBAAkB;gBAC7B,MAAM,EAAE,UAAU;aACnB,CAAC,CAAA;YACJ,wEAAwE;YACxE,gEAAgE;YAChE,MAAM,YAAY,GAChB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,UAAU,CAAC,YAAY,CAAC;gBAC5D,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAE,CAAA;YAChC,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CACpD,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CACpC,CAAA;YACD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;YACnE,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAA;YACnC,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;gBAC5C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;oBACzC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBACjC,CAAC;YACH,CAAC;YACD,wEAAwE;YACxE,yEAAyE;YACzE,wEAAwE;YACxE,qBAAqB;YACrB,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC;gBACjC,OAAO;gBACP,MAAM;gBACN,SAAS;gBACT,mBAAmB,EAAE,KAAK,EAAC,GAAG,EAAC,EAAE,CAC/B,GAAG,KAAK,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC;aAC9D,CAAC,CAAA;YACF,MAAM,IAAI,GAAyB;gBACjC,GAAG,UAAU;gBACb,MAAM,EAAE,CAAC,GAAG,QAAQ,EAAE,QAAQ,CAAC;gBAC/B,YAAY,EAAE,OAAO;aACtB,CAAA;YACD,OAAO,cAAc,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAA;QAClE,CAAC;KACF,CAAC,CAAA;IAEF,MAAM,QAAQ,EAAE,CAAA;IAEhB,OAAO,iBAAiB,CAAA;AAC1B,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,eAAe,CAAC,EACvB,KAAK,EACL,MAAM,EACN,IAAI,EAKL;IACC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAChD,MAAM,IAAI,eAAe,CACvB,gEAAgE;gBAC9D,qEAAqE,CACxE,CAAA;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAChD,MAAM,IAAI,eAAe,CACvB,sEAAsE;YACpE,sDAAsD,CACzD,CAAA;IACH,CAAC;IACD,6EAA6E;IAC7E,2EAA2E;IAC3E,oEAAoE;IACpE,2EAA2E;IAC3E,4EAA4E;IAC5E,4EAA4E;IAC5E,+BAA+B;IAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IAC1D,OAAO,KAAK,UAAU,WAAW;QAC/B,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAC1B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,eAAe,EAAE,CAAC;oBACnC,SAAQ;gBACV,CAAC;gBACD,MAAM,GAAG,CAAA;YACX,CAAC;QACH,CAAC;IACH,CAAC,CAAA;AACH,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,0BAA0B,CACvC,GAAW;IAEX,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;IAClD,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB,EAAE,CAAA;AAC7E,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,kBAAkB,CAAC,EAC1B,UAAU,EACV,KAAK,EAIN;IACC,IAAI,UAAU,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACpD,MAAM,IAAI,eAAe,CACvB,iEAAiE;YAC/D,kEAAkE,CACrE,CAAA;IACH,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,yBAAyB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAA;IAClD,CAAC;IACD,MAAM,IAAI,eAAe,CACvB,wEAAwE;QACtE,UAAU,CACb,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,KAAK,UAAU,mBAAmB,CAAC,EACjC,KAAK,EACL,MAAM,EACN,IAAI,EAOL;IACC,IAAI,SAAkB,CAAA;IACtB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,gBAAgB,EAAE,OAAO,EAAE,EAAE,CAAC;QAC5D,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAA;QAClC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,MAAM,IAAI,eAAe,CACvB,sEAAsE;oBACpE,4CAA4C,CAC/C,CAAA;YACH,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC/B,MAAM,IAAI,eAAe,CACvB,0EAA0E;oBACxE,oCAAoC,CACvC,CAAA;YACH,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAA;YAClC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,OAAO,IAAI,CAAA;YACb,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;gBAC3B,OAAO,OAAO,CAAA;YAChB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,uBAAuB,EAAE,CAAC;oBAC3C,gEAAgE;oBAChE,YAAY;oBACZ,SAAS,GAAG,GAAG,CAAA;oBACf,SAAQ;gBACV,CAAC;gBACD,MAAM,GAAG,CAAA;YACX,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QAC7C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,uEAAuE;YACvE,OAAO,OAAO,CAAC,UAAU,CAAA;QAC3B,CAAC;QACD,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;YACpD,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,uBAAuB,EAAE,CAAC;gBAC3C,oEAAoE;gBACpE,SAAS,GAAG,GAAG,CAAA;gBACf,SAAQ;YACV,CAAC;YACD,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;IACD,MAAM,IAAI,uBAAuB,CAC/B,yDAAyD,gBAAgB,GAAG;QAC1E,iEAAiE;QACjE,sBAAsB,EACxB,EAAE,KAAK,EAAE,SAAkB,EAAE,CAC9B,CAAA;AACH,CAAC"}
package/dist/errors.d.ts CHANGED
@@ -74,6 +74,16 @@ export declare class ConflictError extends WasError {
74
74
  export declare class PreconditionFailedError extends WasError {
75
75
  name: string;
76
76
  }
77
+ /**
78
+ * A resource-log append was acknowledged by the host but the read-back did not
79
+ * contain the appended entry (the profile's "acknowledgement is a promise"
80
+ * rule): the served log is shorter than the appended entry's ordinal, or the
81
+ * entry at that ordinal differs from what was written. Recover by re-reading,
82
+ * re-verifying, and re-appending on the current head.
83
+ */
84
+ export declare class LogNotConfirmedError extends WasError {
85
+ name: string;
86
+ }
77
87
  /**
78
88
  * A single upload exceeded the target backend's `maxUploadBytes` constraint
79
89
  * (HTTP 413). Unlike `QuotaExceededError`, this is per-request -- a smaller
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAWA;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;gBAEP,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB;CAU3D;AAED;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,QAAQ;IAChC,IAAI,SAAkB;CAChC;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,QAAQ;IAClC,IAAI,SAAoB;CAClC;AAED;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,QAAQ;IACpC,IAAI,SAAsB;CACpC;AAED;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,QAAQ;IACtC,IAAI,SAAwB;CACtC;AAED;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,QAAQ;IAChC,IAAI,SAAkB;CAChC;AAED;;;;;;;GAOG;AACH,qBAAa,uBAAwB,SAAQ,QAAQ;IAC1C,IAAI,SAA4B;CAC1C;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,QAAQ;IACvC,IAAI,SAAyB;CACvC;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,QAAQ;IACrC,IAAI,SAAuB;CACrC;AAED;;;;;;;;GAQG;AACH,qBAAa,eAAgB,SAAQ,QAAQ;IAClC,IAAI,SAAoB;CAClC;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,cAAe,SAAQ,eAAe;IACxC,IAAI,SAAmB;CACjC;AAED;;;;;;;;;;GAUG;AACH,qBAAa,cAAe,SAAQ,eAAe;IACxC,IAAI,SAAmB;CACjC;AAED;;;;;;;;GAQG;AACH,qBAAa,oBAAqB,SAAQ,uBAAuB;gBAE7D,OAAO,SAA+C,EACtD,OAAO,GAAE,eAAoB;CAKhC;AAED;;;;;;GAMG;AACH,qBAAa,oBAAqB,SAAQ,aAAa;gBAEnD,OAAO,SAA4B,EACnC,OAAO,GAAE,eAAoB;CAKhC;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,QAAQ;IACjC,IAAI,SAAmB;CACjC;AAED;;;;;;;GAOG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,EACV,YAAY,EACZ,IAAI,EACL,EAAE;QACD,YAAY,EAAE,MAAM,CAAA;QACpB,IAAI,EAAE,MAAM,EAAE,CAAA;KACf;CAUF;AA4DD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAG3D;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ,CA2D/C"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAWA;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;gBAEP,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB;CAU3D;AAED;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,QAAQ;IAChC,IAAI,SAAkB;CAChC;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,QAAQ;IAClC,IAAI,SAAoB;CAClC;AAED;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,QAAQ;IACpC,IAAI,SAAsB;CACpC;AAED;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,QAAQ;IACtC,IAAI,SAAwB;CACtC;AAED;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,QAAQ;IAChC,IAAI,SAAkB;CAChC;AAED;;;;;;;GAOG;AACH,qBAAa,uBAAwB,SAAQ,QAAQ;IAC1C,IAAI,SAA4B;CAC1C;AAED;;;;;;GAMG;AACH,qBAAa,oBAAqB,SAAQ,QAAQ;IACvC,IAAI,SAAyB;CACvC;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,QAAQ;IACvC,IAAI,SAAyB;CACvC;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,QAAQ;IACrC,IAAI,SAAuB;CACrC;AAED;;;;;;;;GAQG;AACH,qBAAa,eAAgB,SAAQ,QAAQ;IAClC,IAAI,SAAoB;CAClC;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,cAAe,SAAQ,eAAe;IACxC,IAAI,SAAmB;CACjC;AAED;;;;;;;;;;GAUG;AACH,qBAAa,cAAe,SAAQ,eAAe;IACxC,IAAI,SAAmB;CACjC;AAED;;;;;;;;GAQG;AACH,qBAAa,oBAAqB,SAAQ,uBAAuB;gBAE7D,OAAO,SAA+C,EACtD,OAAO,GAAE,eAAoB;CAKhC;AAED;;;;;;GAMG;AACH,qBAAa,oBAAqB,SAAQ,aAAa;gBAEnD,OAAO,SAA4B,EACnC,OAAO,GAAE,eAAoB;CAKhC;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,QAAQ;IACjC,IAAI,SAAmB;CACjC;AAED;;;;;;;GAOG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,EACV,YAAY,EACZ,IAAI,EACL,EAAE;QACD,YAAY,EAAE,MAAM,CAAA;QACpB,IAAI,EAAE,MAAM,EAAE,CAAA;KACf;CAUF;AA4DD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAG3D;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ,CA2D/C"}
package/dist/errors.js CHANGED
@@ -77,6 +77,16 @@ export class ConflictError extends WasError {
77
77
  export class PreconditionFailedError extends WasError {
78
78
  name = 'PreconditionFailedError';
79
79
  }
80
+ /**
81
+ * A resource-log append was acknowledged by the host but the read-back did not
82
+ * contain the appended entry (the profile's "acknowledgement is a promise"
83
+ * rule): the served log is shorter than the appended entry's ordinal, or the
84
+ * entry at that ordinal differs from what was written. Recover by re-reading,
85
+ * re-verifying, and re-appending on the current head.
86
+ */
87
+ export class LogNotConfirmedError extends WasError {
88
+ name = 'LogNotConfirmedError';
89
+ }
80
90
  /**
81
91
  * A single upload exceeded the target backend's `maxUploadBytes` constraint
82
92
  * (HTTP 413). Unlike `QuotaExceededError`, this is per-request -- a smaller
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -13,7 +13,7 @@ export { parseSpaceTarget } from './internal/paths.js';
13
13
  export type { ParsedSpacePath } from './internal/paths.js';
14
14
  export { readEtag, writeHeaders } from './internal/conditional.js';
15
15
  export type { WritePrecondition } from './internal/conditional.js';
16
- export { WasError, NotFoundError, ValidationError, AuthRequiredError, NotImplementedError, ConflictError, PreconditionFailedError, PayloadTooLargeError, QuotaExceededError, EncryptionError, KeyUnwrapError, IntegrityError, WasSyncConflictError, WasSyncNotFoundError, WasServerError, mapError } from './errors.js';
16
+ export { WasError, NotFoundError, ValidationError, AuthRequiredError, NotImplementedError, ConflictError, PreconditionFailedError, LogNotConfirmedError, PayloadTooLargeError, QuotaExceededError, EncryptionError, KeyUnwrapError, IntegrityError, WasSyncConflictError, WasSyncNotFoundError, WasServerError, mapError } from './errors.js';
17
17
  export type { ResourceCodec, EncryptionProvider, EncodedWrite, ResponseLike } from './codec.js';
18
- export type { Json, JsonPrimitive, JsonObject, JsonArray, ResourceData, Action, ActionInput, SpaceDescription, CollectionDescription, CollectionWritableFields, CollectionEncryption, CollectionEncryptionEpoch, CollectionEncryptionEpochsSig, CollectionEncryptionRecipient, CollectionSummary, CollectionsList, SpaceSummary, SpaceListing, ResourceSummary, CollectionResourcesList, ResourceMetadata, ResourceMetadataCustom, AddResult, ImportStats, PolicyDocument, LinkSet, LinkSetEntry, HandleOptions, EncryptionOverride, BackendReference, BackendDescriptor, BackendRegistration, BackendConnectionInput, BackendConnectionPublic, StorageLimit, CollectionUsage, BackendUsage, SpaceQuotaReport, GrantOptions, RequestInput, IZcap, IDelegatedZcap, ISigner } from './types.js';
18
+ export type { Json, JsonPrimitive, JsonObject, JsonArray, ResourceData, Action, ActionInput, SpaceDescription, CollectionDescription, CollectionWritableFields, CollectionEncryption, CollectionEncryptionEpoch, CollectionEncryptionRecipient, CollectionSummary, CollectionsList, SpaceSummary, SpaceListing, ResourceSummary, CollectionResourcesList, ResourceMetadata, ResourceMetadataCustom, AddResult, ImportStats, PolicyDocument, LinkSet, LinkSetEntry, HandleOptions, EncryptionOverride, BackendReference, BackendDescriptor, BackendRegistration, BackendConnectionInput, BackendConnectionPublic, StorageLimit, CollectionUsage, BackendUsage, SpaceQuotaReport, GrantOptions, RequestInput, IZcap, IDelegatedZcap, ISigner } from './types.js';
19
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAClE,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAElE,OAAO,EACL,QAAQ,EACR,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,QAAQ,EACT,MAAM,aAAa,CAAA;AAEpB,YAAY,EACV,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACb,MAAM,YAAY,CAAA;AAEnB,YAAY,EACV,IAAI,EACJ,aAAa,EACb,UAAU,EACV,SAAS,EACT,YAAY,EACZ,MAAM,EACN,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,yBAAyB,EACzB,6BAA6B,EAC7B,6BAA6B,EAC7B,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,uBAAuB,EACvB,gBAAgB,EAChB,sBAAsB,EACtB,SAAS,EACT,WAAW,EACX,cAAc,EACd,OAAO,EACP,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,KAAK,EACL,cAAc,EACd,OAAO,EACR,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAClE,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAElE,OAAO,EACL,QAAQ,EACR,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,QAAQ,EACT,MAAM,aAAa,CAAA;AAEpB,YAAY,EACV,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACb,MAAM,YAAY,CAAA;AAEnB,YAAY,EACV,IAAI,EACJ,aAAa,EACb,UAAU,EACV,SAAS,EACT,YAAY,EACZ,MAAM,EACN,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,yBAAyB,EACzB,6BAA6B,EAC7B,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,uBAAuB,EACvB,gBAAgB,EAChB,sBAAsB,EACtB,SAAS,EACT,WAAW,EACX,cAAc,EACd,OAAO,EACP,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,KAAK,EACL,cAAc,EACd,OAAO,EACR,MAAM,YAAY,CAAA"}
package/dist/index.js CHANGED
@@ -11,5 +11,5 @@ export { Collection } from './Collection.js';
11
11
  export { Resource } from './Resource.js';
12
12
  export { parseSpaceTarget } from './internal/paths.js';
13
13
  export { readEtag, writeHeaders } from './internal/conditional.js';
14
- export { WasError, NotFoundError, ValidationError, AuthRequiredError, NotImplementedError, ConflictError, PreconditionFailedError, PayloadTooLargeError, QuotaExceededError, EncryptionError, KeyUnwrapError, IntegrityError, WasSyncConflictError, WasSyncNotFoundError, WasServerError, mapError } from './errors.js';
14
+ export { WasError, NotFoundError, ValidationError, AuthRequiredError, NotImplementedError, ConflictError, PreconditionFailedError, LogNotConfirmedError, PayloadTooLargeError, QuotaExceededError, EncryptionError, KeyUnwrapError, IntegrityError, WasSyncConflictError, WasSyncNotFoundError, WasServerError, mapError } from './errors.js';
15
15
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAEtD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAGlE,OAAO,EACL,QAAQ,EACR,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,QAAQ,EACT,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAEtD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAGlE,OAAO,EACL,QAAQ,EACR,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,QAAQ,EACT,MAAM,aAAa,CAAA"}
@@ -0,0 +1,25 @@
1
+ /*!
2
+ * Copyright (c) 2026 Interop Alliance. All rights reserved.
3
+ */
4
+ /**
5
+ * The `@interop/was-client/log` subpath entry: transport for resource logs
6
+ * (the Resource Log Profile, App Connect spec `#resource-log-profile`) -- the
7
+ * hash-linked log format governing key resources co-managed between a
8
+ * wallet's clients and the storage server. Deliberately crypto-free and kept
9
+ * off the `/edv` graph: what lives here is the wire level (strict JSON Lines
10
+ * parse/serialize), the log-store seam (read-with-etag, compare-and-swap
11
+ * append, guarded genesis create, the read-back `confirmAppend`), and the
12
+ * point-state projection write. Chain verification -- SCID and entry-hash
13
+ * recomputation, proofs, the external-authorization rule, the chain-head pin
14
+ * -- lives in the consuming verifier, which reads and appends through the
15
+ * seam. The wire types themselves come from `@interop/storage-core` and are
16
+ * re-exported here so a consumer imports one package.
17
+ */
18
+ export { parseResourceLog, serializeResourceLog, serializeResourceLogEntry } from './jsonl.js';
19
+ export { LOG_CONTENT_TYPE, resourceLogStore, confirmAppend } from './logStore.js';
20
+ export type { ResourceLogStore } from './logStore.js';
21
+ export { writeLogProjection } from './projection.js';
22
+ export { LogNotConfirmedError } from '../errors.js';
23
+ export { WAS_RESOURCE_LOG_METHOD } from '@interop/storage-core';
24
+ export type { ResourceLogEntry, ResourceLogEntryProof, ResourceLogGenesisParameters, ResourceLogTerminalParameters, ResourceLogParameters } from '@interop/storage-core';
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/log/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;GAaG;AACH,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACd,MAAM,eAAe,CAAA;AACtB,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,YAAY,EACV,gBAAgB,EAChB,qBAAqB,EACrB,4BAA4B,EAC5B,6BAA6B,EAC7B,qBAAqB,EACtB,MAAM,uBAAuB,CAAA"}
@@ -0,0 +1,23 @@
1
+ /*!
2
+ * Copyright (c) 2026 Interop Alliance. All rights reserved.
3
+ */
4
+ /**
5
+ * The `@interop/was-client/log` subpath entry: transport for resource logs
6
+ * (the Resource Log Profile, App Connect spec `#resource-log-profile`) -- the
7
+ * hash-linked log format governing key resources co-managed between a
8
+ * wallet's clients and the storage server. Deliberately crypto-free and kept
9
+ * off the `/edv` graph: what lives here is the wire level (strict JSON Lines
10
+ * parse/serialize), the log-store seam (read-with-etag, compare-and-swap
11
+ * append, guarded genesis create, the read-back `confirmAppend`), and the
12
+ * point-state projection write. Chain verification -- SCID and entry-hash
13
+ * recomputation, proofs, the external-authorization rule, the chain-head pin
14
+ * -- lives in the consuming verifier, which reads and appends through the
15
+ * seam. The wire types themselves come from `@interop/storage-core` and are
16
+ * re-exported here so a consumer imports one package.
17
+ */
18
+ export { parseResourceLog, serializeResourceLog, serializeResourceLogEntry } from './jsonl.js';
19
+ export { LOG_CONTENT_TYPE, resourceLogStore, confirmAppend } from './logStore.js';
20
+ export { writeLogProjection } from './projection.js';
21
+ export { LogNotConfirmedError } from '../errors.js';
22
+ export { WAS_RESOURCE_LOG_METHOD } from '@interop/storage-core';
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/log/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;GAaG;AACH,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACd,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA"}
@@ -0,0 +1,49 @@
1
+ /*!
2
+ * Copyright (c) 2026 Interop Alliance. All rights reserved.
3
+ */
4
+ /**
5
+ * Strict JSON Lines parse/serialize for resource logs (the Resource Log
6
+ * Profile, App Connect spec `#resource-log-profile`): one log entry as one
7
+ * JSON object per line, lines separated by U+000A LINE FEED, with a single
8
+ * terminating LINE FEED after the last line. Strict on purpose -- a non-object
9
+ * line is a parse failure, not a skip, so a truncated or doctored log surfaces
10
+ * as an error instead of a silently shorter history.
11
+ *
12
+ * Wire level only: the parse guarantees each line is one JSON object and
13
+ * nothing deeper. The profile's verifier-side rules (the five-member entry
14
+ * shape, `parameters` per position, SCID and chain-hash recomputation, proofs,
15
+ * authorization) belong to the consuming verifier, which runs over the parsed
16
+ * entries.
17
+ */
18
+ import type { ResourceLogEntry } from '@interop/storage-core';
19
+ /**
20
+ * Parses a resource-log body into its entries, strictly: the text must be one
21
+ * JSON object per line, with an optional single trailing newline. Any empty
22
+ * line, non-JSON line, or line holding a non-object JSON value (an array, a
23
+ * string, a number, `null`) fails the whole parse. An empty body fails too --
24
+ * a log has at least its genesis entry (an absent resource is the store
25
+ * seam's `null`, not an empty body).
26
+ *
27
+ * @param text {string} the log resource's body
28
+ * @returns {ResourceLogEntry[]} the parsed entries, first line first
29
+ */
30
+ export declare function parseResourceLog(text: string): ResourceLogEntry[];
31
+ /**
32
+ * Serializes one log entry as its single JSON Lines line, without the line
33
+ * separator. `JSON.stringify` escapes any newline inside string values, so the
34
+ * result never contains an embedded U+000A.
35
+ *
36
+ * @param entry {ResourceLogEntry}
37
+ * @returns {string}
38
+ */
39
+ export declare function serializeResourceLogEntry(entry: ResourceLogEntry): string;
40
+ /**
41
+ * Serializes a full resource log as JSON Lines: one entry per line, in order,
42
+ * with a terminating newline. Refuses an empty log (a log carries at least
43
+ * its genesis entry).
44
+ *
45
+ * @param entries {ResourceLogEntry[]}
46
+ * @returns {string}
47
+ */
48
+ export declare function serializeResourceLog(entries: ResourceLogEntry[]): string;
49
+ //# sourceMappingURL=jsonl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonl.d.ts","sourceRoot":"","sources":["../../src/log/jsonl.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAG7D;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,EAAE,CA6BjE;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAEzE;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAOxE"}
@@ -0,0 +1,60 @@
1
+ import { ValidationError } from '../errors.js';
2
+ /**
3
+ * Parses a resource-log body into its entries, strictly: the text must be one
4
+ * JSON object per line, with an optional single trailing newline. Any empty
5
+ * line, non-JSON line, or line holding a non-object JSON value (an array, a
6
+ * string, a number, `null`) fails the whole parse. An empty body fails too --
7
+ * a log has at least its genesis entry (an absent resource is the store
8
+ * seam's `null`, not an empty body).
9
+ *
10
+ * @param text {string} the log resource's body
11
+ * @returns {ResourceLogEntry[]} the parsed entries, first line first
12
+ */
13
+ export function parseResourceLog(text) {
14
+ const body = text.endsWith('\n') ? text.slice(0, -1) : text;
15
+ if (body === '') {
16
+ throw new ValidationError('Cannot parse resource log: the body is empty (a log carries at least ' +
17
+ 'its genesis entry).');
18
+ }
19
+ return body.split('\n').map((line, index) => {
20
+ let parsed;
21
+ try {
22
+ parsed = JSON.parse(line);
23
+ }
24
+ catch (err) {
25
+ throw new ValidationError(`Cannot parse resource log: line ${index + 1} is not valid JSON.`, { cause: err });
26
+ }
27
+ if (parsed === null ||
28
+ typeof parsed !== 'object' ||
29
+ Array.isArray(parsed)) {
30
+ throw new ValidationError(`Cannot parse resource log: line ${index + 1} is not a JSON object.`);
31
+ }
32
+ return parsed;
33
+ });
34
+ }
35
+ /**
36
+ * Serializes one log entry as its single JSON Lines line, without the line
37
+ * separator. `JSON.stringify` escapes any newline inside string values, so the
38
+ * result never contains an embedded U+000A.
39
+ *
40
+ * @param entry {ResourceLogEntry}
41
+ * @returns {string}
42
+ */
43
+ export function serializeResourceLogEntry(entry) {
44
+ return JSON.stringify(entry);
45
+ }
46
+ /**
47
+ * Serializes a full resource log as JSON Lines: one entry per line, in order,
48
+ * with a terminating newline. Refuses an empty log (a log carries at least
49
+ * its genesis entry).
50
+ *
51
+ * @param entries {ResourceLogEntry[]}
52
+ * @returns {string}
53
+ */
54
+ export function serializeResourceLog(entries) {
55
+ if (entries.length === 0) {
56
+ throw new ValidationError('Cannot serialize resource log: a log carries at least its genesis entry.');
57
+ }
58
+ return entries.map(serializeResourceLogEntry).join('\n') + '\n';
59
+ }
60
+ //# sourceMappingURL=jsonl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonl.js","sourceRoot":"","sources":["../../src/log/jsonl.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC3D,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QAChB,MAAM,IAAI,eAAe,CACvB,uEAAuE;YACrE,qBAAqB,CACxB,CAAA;IACH,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC1C,IAAI,MAAe,CAAA;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,eAAe,CACvB,mCAAmC,KAAK,GAAG,CAAC,qBAAqB,EACjE,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAA;QACH,CAAC;QACD,IACE,MAAM,KAAK,IAAI;YACf,OAAO,MAAM,KAAK,QAAQ;YAC1B,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EACrB,CAAC;YACD,MAAM,IAAI,eAAe,CACvB,mCAAmC,KAAK,GAAG,CAAC,wBAAwB,CACrE,CAAA;QACH,CAAC;QACD,OAAO,MAAqC,CAAA;IAC9C,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAAuB;IAC/D,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;AAC9B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAA2B;IAC9D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,eAAe,CACvB,0EAA0E,CAC3E,CAAA;IACH,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;AACjE,CAAC"}
@@ -0,0 +1,95 @@
1
+ import type { ResourceLogEntry } from '@interop/storage-core';
2
+ import type { Resource } from '../Resource.js';
3
+ /**
4
+ * The content type a resource log is stored under (JSON Lines, not JSON --
5
+ * load-bearing: a JSON content type would have the request layer parse and
6
+ * re-serialize the body, losing the line framing).
7
+ */
8
+ export declare const LOG_CONTENT_TYPE = "text/jsonl";
9
+ /**
10
+ * Where a resource log lives: a read-with-validator, a compare-and-swap
11
+ * append, and a guarded genesis create. Implementations host the log anywhere
12
+ * a versioned text resource can live; the shipped adapter is
13
+ * {@link resourceLogStore}.
14
+ */
15
+ export interface ResourceLogStore {
16
+ /**
17
+ * Reads the full log together with the opaque `etag` validator the next
18
+ * {@link append} must be compare-and-swapped against. Resolves `null` when
19
+ * the log resource does not exist yet (the pre-genesis state -- see
20
+ * {@link create}); throws on a body that does not parse as strict JSON
21
+ * Lines. `etag` is absent against a backend that does not version resources
22
+ * -- a caller MUST NOT append without one (the profile forbids falling back
23
+ * to an unconditional write).
24
+ *
25
+ * @returns {Promise<{ entries: ResourceLogEntry[]; etag?: string } | null>}
26
+ */
27
+ read(): Promise<{
28
+ entries: ResourceLogEntry[];
29
+ etag?: string;
30
+ } | null>;
31
+ /**
32
+ * Appends one entry to the log read by the most recent {@link read} on this
33
+ * store instance, compare-and-swapped against `ifMatch` (the validator that
34
+ * read returned); a stale validator throws `PreconditionFailedError` (412),
35
+ * and the caller re-reads, re-verifies, rebases the entry on the new head,
36
+ * and retries. The prior entries' bytes are carried forward verbatim from
37
+ * the read, with the new entry's line appended -- an append never
38
+ * re-serializes history.
39
+ *
40
+ * @param entry {ResourceLogEntry} the entry extending the log
41
+ * @param options {object}
42
+ * @param options.ifMatch {string} the validator from the prior read
43
+ * @returns {Promise<void>}
44
+ */
45
+ append(entry: ResourceLogEntry, options: {
46
+ ifMatch: string;
47
+ }): Promise<void>;
48
+ /**
49
+ * Creates the log with its genesis entry where {@link read} resolved `null`,
50
+ * guarded create-if-absent (`If-None-Match: *`); throws
51
+ * `PreconditionFailedError` (412) when a concurrent writer created the log
52
+ * first.
53
+ *
54
+ * @param entry {ResourceLogEntry} the genesis entry
55
+ * @returns {Promise<void>}
56
+ */
57
+ create(entry: ResourceLogEntry): Promise<void>;
58
+ }
59
+ /**
60
+ * The WAS Resource adapter: the log is the resource's entire body, stored as
61
+ * `text/jsonl`. Host the resource in a plaintext collection -- on an encrypted
62
+ * collection the EDV codec computes the write preconditions itself, so this
63
+ * store's `ifMatch` / create guard would not be honored.
64
+ *
65
+ * @param options {object}
66
+ * @param options.resource {Resource}
67
+ * @returns {ResourceLogStore}
68
+ */
69
+ export declare function resourceLogStore({ resource }: {
70
+ resource: Resource;
71
+ }): ResourceLogStore;
72
+ /**
73
+ * The profile's "acknowledgement is a promise" rule, mechanically: after an
74
+ * acked {@link ResourceLogStore.append} (or `create`), reads the log back and
75
+ * checks the served history actually contains the written entry at its
76
+ * ordinal, throwing {@link LogNotConfirmedError} when it does not (the log is
77
+ * missing, shorter than the entry's ordinal, or holds a different entry
78
+ * there). Returns the read-back log so the caller can run full chain
79
+ * verification over exactly what was confirmed -- containment here is a
80
+ * byte-level check (JCS equality), not a verification.
81
+ *
82
+ * @param options {object}
83
+ * @param options.store {ResourceLogStore}
84
+ * @param options.entry {ResourceLogEntry} the entry the append wrote
85
+ * @returns {Promise<{ entries: ResourceLogEntry[]; etag?: string }>} the
86
+ * read-back log containing the entry
87
+ */
88
+ export declare function confirmAppend({ store, entry }: {
89
+ store: ResourceLogStore;
90
+ entry: ResourceLogEntry;
91
+ }): Promise<{
92
+ entries: ResourceLogEntry[];
93
+ etag?: string;
94
+ }>;
95
+ //# sourceMappingURL=logStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logStore.d.ts","sourceRoot":"","sources":["../../src/log/logStore.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAS9C;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,eAAe,CAAA;AAE5C;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;;;OAUG;IACH,IAAI,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAA;IAEtE;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE5E;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC/C;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACT,EAAE;IACD,QAAQ,EAAE,QAAQ,CAAA;CACnB,GAAG,gBAAgB,CAoDnB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,aAAa,CAAC,EAClC,KAAK,EACL,KAAK,EACN,EAAE;IACD,KAAK,EAAE,gBAAgB,CAAA;IACvB,KAAK,EAAE,gBAAgB,CAAA;CACxB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAuB1D"}
@@ -0,0 +1,123 @@
1
+ /*!
2
+ * Copyright (c) 2026 Interop Alliance. All rights reserved.
3
+ */
4
+ /**
5
+ * The log-store seam: where a resource log lives and how it is extended --
6
+ * read-with-etag of the full log, compare-and-swap append conditioned on that
7
+ * etag, and the guarded create of a genesis entry. The seam is transport only,
8
+ * the log-side sibling of the descriptor-store seam (`edv/descriptorStore.ts`):
9
+ * chain verification (SCID, entry hashes, proofs, authorization, the chain-head
10
+ * pin) lives in the consuming verifier, which reads through this seam, verifies
11
+ * the parsed entries, builds the next entry against the verified head, and
12
+ * appends through it.
13
+ *
14
+ * Both the append and the create ride the backend's `conditional-writes`
15
+ * feature -- the profile requires it (without the precondition, concurrent
16
+ * appends silently overwrite one another instead of failing into the caller's
17
+ * rebase-and-retry loop). `confirmAppend` is the profile's "acknowledgement is
18
+ * a promise" rule: after an acked append, read the log back and check the
19
+ * entry is actually in the served history before treating the append -- or any
20
+ * ceremony step gated on it -- as durable.
21
+ */
22
+ import { canonicalize } from 'json-canonicalize';
23
+ import { LogNotConfirmedError, ValidationError } from '../errors.js';
24
+ import { ENCODER } from '../internal/content.js';
25
+ import { parseResourceLog, serializeResourceLog, serializeResourceLogEntry } from './jsonl.js';
26
+ /**
27
+ * The content type a resource log is stored under (JSON Lines, not JSON --
28
+ * load-bearing: a JSON content type would have the request layer parse and
29
+ * re-serialize the body, losing the line framing).
30
+ */
31
+ export const LOG_CONTENT_TYPE = 'text/jsonl';
32
+ /**
33
+ * The WAS Resource adapter: the log is the resource's entire body, stored as
34
+ * `text/jsonl`. Host the resource in a plaintext collection -- on an encrypted
35
+ * collection the EDV codec computes the write preconditions itself, so this
36
+ * store's `ifMatch` / create guard would not be honored.
37
+ *
38
+ * @param options {object}
39
+ * @param options.resource {Resource}
40
+ * @returns {ResourceLogStore}
41
+ */
42
+ export function resourceLogStore({ resource }) {
43
+ // The raw body observed by the most recent read; an append extends these
44
+ // bytes verbatim instead of re-serializing the parsed entries. Safe to carry
45
+ // even if stale: the append is pinned to the same read's ETag, so a
46
+ // concurrent append fails the CAS instead.
47
+ let lastReadBody;
48
+ return {
49
+ async read() {
50
+ const current = await resource.getWithEtag();
51
+ if (current === null) {
52
+ return null;
53
+ }
54
+ const body = current.data instanceof Blob
55
+ ? await current.data.text()
56
+ : typeof current.data === 'string'
57
+ ? current.data
58
+ : undefined;
59
+ if (body === undefined) {
60
+ throw new ValidationError(`Cannot read resource log: the resource "${resource.id}" does not ` +
61
+ 'hold a text body (is it stored as JSON instead of JSON Lines?).');
62
+ }
63
+ const entries = parseResourceLog(body);
64
+ lastReadBody = body;
65
+ return { entries, etag: current.etag };
66
+ },
67
+ async append(entry, { ifMatch }) {
68
+ if (lastReadBody === undefined) {
69
+ throw new ValidationError('Cannot append to resource log: append must follow a read on the ' +
70
+ 'same store instance.');
71
+ }
72
+ const separator = lastReadBody.endsWith('\n') ? '' : '\n';
73
+ const extended = lastReadBody + separator + serializeResourceLogEntry(entry) + '\n';
74
+ await resource.put(ENCODER.encode(extended), {
75
+ contentType: LOG_CONTENT_TYPE,
76
+ ifMatch
77
+ });
78
+ lastReadBody = extended;
79
+ },
80
+ async create(entry) {
81
+ await resource.put(ENCODER.encode(serializeResourceLog([entry])), {
82
+ contentType: LOG_CONTENT_TYPE,
83
+ ifNoneMatch: true
84
+ });
85
+ lastReadBody = serializeResourceLog([entry]);
86
+ }
87
+ };
88
+ }
89
+ /**
90
+ * The profile's "acknowledgement is a promise" rule, mechanically: after an
91
+ * acked {@link ResourceLogStore.append} (or `create`), reads the log back and
92
+ * checks the served history actually contains the written entry at its
93
+ * ordinal, throwing {@link LogNotConfirmedError} when it does not (the log is
94
+ * missing, shorter than the entry's ordinal, or holds a different entry
95
+ * there). Returns the read-back log so the caller can run full chain
96
+ * verification over exactly what was confirmed -- containment here is a
97
+ * byte-level check (JCS equality), not a verification.
98
+ *
99
+ * @param options {object}
100
+ * @param options.store {ResourceLogStore}
101
+ * @param options.entry {ResourceLogEntry} the entry the append wrote
102
+ * @returns {Promise<{ entries: ResourceLogEntry[]; etag?: string }>} the
103
+ * read-back log containing the entry
104
+ */
105
+ export async function confirmAppend({ store, entry }) {
106
+ const ordinal = Number.parseInt(entry.versionId, 10);
107
+ if (!Number.isInteger(ordinal) || ordinal < 1) {
108
+ throw new ValidationError(`Cannot confirm append: the entry's versionId "${entry.versionId}" ` +
109
+ 'does not start with a 1-based ordinal.');
110
+ }
111
+ const current = await store.read();
112
+ if (current === null) {
113
+ throw new LogNotConfirmedError('Resource-log append not confirmed: the log resource is missing on ' +
114
+ 'read-back.');
115
+ }
116
+ const served = current.entries[ordinal - 1];
117
+ if (served === undefined || canonicalize(served) !== canonicalize(entry)) {
118
+ throw new LogNotConfirmedError(`Resource-log append not confirmed: the served log does not contain ` +
119
+ `the appended entry at ordinal ${ordinal}.`);
120
+ }
121
+ return current;
122
+ }
123
+ //# sourceMappingURL=logStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logStore.js","sourceRoot":"","sources":["../../src/log/logStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /*!
2
+ * Copyright (c) 2026 Interop Alliance. All rights reserved.
3
+ */
4
+ /**
5
+ * The point-state projection write: the descriptor document a non-verifying
6
+ * consumer reads, written from the verified head entry's `state` plus the
7
+ * `history` dispatch hint, after a log append has succeeded and been
8
+ * confirmed. The log is the source of truth and the projection follows it --
9
+ * a consumer that needs trust verifies the log and acts on the projection
10
+ * only where it equals the verified head's `state` (after removing
11
+ * `history`); a mismatch is an integrity failure, not a race resolved in the
12
+ * projection's favor. Because the log settles every race, the write is
13
+ * deliberately unconditional: a stale projection left behind by a lost race
14
+ * is repaired by the next writer's projection, and never trusted meanwhile.
15
+ */
16
+ import type { ResourceLogEntry } from '@interop/storage-core';
17
+ import type { Resource } from '../Resource.js';
18
+ /**
19
+ * Writes a log's point-state projection: the resource's content becomes the
20
+ * head entry's `state` with the `history: { method, resource }` dispatch hint
21
+ * added. Refuses a `state` that already carries a `history` member (the
22
+ * profile forbids one inside a log entry, so its presence means the caller is
23
+ * projecting something that was never a valid entry state).
24
+ *
25
+ * @param options {object}
26
+ * @param options.resource {Resource} the point-state document's resource
27
+ * @param options.state {ResourceLogEntry['state']} the VERIFIED head
28
+ * entry's state -- callers project only what chain verification returned
29
+ * @param options.history {object} the dispatch hint
30
+ * @param options.history.method {string} the log's format identifier (the
31
+ * genesis `parameters.method`, which the log itself must confirm)
32
+ * @param options.history.resource {string} the log resource's URL
33
+ * @returns {Promise<void>}
34
+ */
35
+ export declare function writeLogProjection({ resource, state, history }: {
36
+ resource: Resource;
37
+ state: ResourceLogEntry['state'];
38
+ history: {
39
+ method: string;
40
+ resource: string;
41
+ };
42
+ }): Promise<void>;
43
+ //# sourceMappingURL=projection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../src/log/projection.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAI9C;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,kBAAkB,CAAC,EACvC,QAAQ,EACR,KAAK,EACL,OAAO,EACR,EAAE;IACD,QAAQ,EAAE,QAAQ,CAAA;IAClB,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAChC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;CAC9C,GAAG,OAAO,CAAC,IAAI,CAAC,CAShB"}
@@ -0,0 +1,27 @@
1
+ import { ValidationError } from '../errors.js';
2
+ /**
3
+ * Writes a log's point-state projection: the resource's content becomes the
4
+ * head entry's `state` with the `history: { method, resource }` dispatch hint
5
+ * added. Refuses a `state` that already carries a `history` member (the
6
+ * profile forbids one inside a log entry, so its presence means the caller is
7
+ * projecting something that was never a valid entry state).
8
+ *
9
+ * @param options {object}
10
+ * @param options.resource {Resource} the point-state document's resource
11
+ * @param options.state {ResourceLogEntry['state']} the VERIFIED head
12
+ * entry's state -- callers project only what chain verification returned
13
+ * @param options.history {object} the dispatch hint
14
+ * @param options.history.method {string} the log's format identifier (the
15
+ * genesis `parameters.method`, which the log itself must confirm)
16
+ * @param options.history.resource {string} the log resource's URL
17
+ * @returns {Promise<void>}
18
+ */
19
+ export async function writeLogProjection({ resource, state, history }) {
20
+ if ('history' in state) {
21
+ throw new ValidationError('Cannot write log projection: the head state already carries a ' +
22
+ '`history` member (a log entry state must not have one).');
23
+ }
24
+ const projection = { ...state, history };
25
+ await resource.put(projection, {});
26
+ }
27
+ //# sourceMappingURL=projection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projection.js","sourceRoot":"","sources":["../../src/log/projection.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,EACvC,QAAQ,EACR,KAAK,EACL,OAAO,EAKR;IACC,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;QACvB,MAAM,IAAI,eAAe,CACvB,gEAAgE;YAC9D,yDAAyD,CAC5D,CAAA;IACH,CAAC;IACD,MAAM,UAAU,GAAG,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,CAAA;IACxC,MAAM,QAAQ,CAAC,GAAG,CAAC,UAAmC,EAAE,EAAE,CAAC,CAAA;AAC7D,CAAC"}
package/dist/types.d.ts CHANGED
@@ -22,7 +22,7 @@ export type { IZcap, IDelegatedZcap, IRootZcap, ISigner };
22
22
  * `ResourceListing`) and the collections-in-a-space listing is `CollectionsList`
23
23
  * (formerly `CollectionListing`).
24
24
  */
25
- export type { Action, ActionInput, SpaceDescription, CollectionDescription, CollectionEncryption, CollectionEncryptionEpoch, CollectionEncryptionEpochsMac, CollectionEncryptionEpochsSig, CollectionEncryptionRecipient, PolicyDocument, LinkSet, LinkSetEntry, CollectionSummary, CollectionsList, SpaceSummary, SpaceListing, ResourceSummary, CollectionResourcesList, ResourceMetadata, ResourceMetadataCustom, ImportStats, BackendReference, BackendDescriptor, BackendRegistration, BackendConnectionInput, BackendConnectionPublic, StorageLimit, CollectionUsage, BackendUsage, SpaceQuotaReport } from '@interop/storage-core';
25
+ export type { Action, ActionInput, SpaceDescription, CollectionDescription, CollectionEncryption, CollectionEncryptionEpoch, CollectionEncryptionEpochsMac, CollectionEncryptionRecipient, PolicyDocument, LinkSet, LinkSetEntry, CollectionSummary, CollectionsList, SpaceSummary, SpaceListing, ResourceSummary, CollectionResourcesList, ResourceMetadata, ResourceMetadataCustom, ImportStats, BackendReference, BackendDescriptor, BackendRegistration, BackendConnectionInput, BackendConnectionPublic, StorageLimit, CollectionUsage, BackendUsage, SpaceQuotaReport } from '@interop/storage-core';
26
26
  import type { BackendReference, CollectionEncryption } from '@interop/storage-core';
27
27
  /**
28
28
  * The client-writable fields of a Collection Description -- the shape shared
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@interop/was-client",
3
3
  "description": "A developer-friendly client for Wallet Attached Storage (WAS) servers.",
4
- "version": "0.30.0",
4
+ "version": "0.31.0",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "build": "pnpm run clear && tsc",
@@ -36,6 +36,12 @@
36
36
  "import": "./dist/edv/index.js",
37
37
  "default": "./dist/edv/index.js"
38
38
  },
39
+ "./log": {
40
+ "types": "./dist/log/index.d.ts",
41
+ "react-native": "./dist/log/index.js",
42
+ "import": "./dist/log/index.js",
43
+ "default": "./dist/log/index.js"
44
+ },
39
45
  "./sync": {
40
46
  "types": "./dist/sync/index.d.ts",
41
47
  "react-native": "./dist/sync/index.js",
@@ -54,7 +60,7 @@
54
60
  "@interop/ezcap": "^7.4.1",
55
61
  "@interop/http-client": "^1.0.5",
56
62
  "@interop/minimal-cipher": "^7.8.1",
57
- "@interop/storage-core": "^0.3.13",
63
+ "@interop/storage-core": "^0.4.0",
58
64
  "@interop/x25519-key-agreement-key": "^5.2.1",
59
65
  "@noble/hashes": "^2.3.0",
60
66
  "@scure/base": "^2.3.0",