@interop/was-client 0.18.0 → 0.20.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 +88 -0
- package/dist/Collection.d.ts +1 -46
- package/dist/Collection.d.ts.map +1 -1
- package/dist/Collection.js +77 -79
- package/dist/Collection.js.map +1 -1
- package/dist/Resource.d.ts +1 -51
- package/dist/Resource.d.ts.map +1 -1
- package/dist/Resource.js +55 -55
- package/dist/Resource.js.map +1 -1
- package/dist/Space.d.ts +1 -27
- package/dist/Space.d.ts.map +1 -1
- package/dist/Space.js +65 -65
- package/dist/Space.js.map +1 -1
- package/dist/WasClient.d.ts +1 -12
- package/dist/WasClient.d.ts.map +1 -1
- package/dist/WasClient.js +15 -15
- package/dist/WasClient.js.map +1 -1
- package/dist/edv/EdvCodec.d.ts +1 -139
- package/dist/edv/EdvCodec.d.ts.map +1 -1
- package/dist/edv/EdvCodec.js +57 -58
- package/dist/edv/EdvCodec.js.map +1 -1
- package/dist/edv/WasTransport.d.ts +1 -53
- package/dist/edv/WasTransport.d.ts.map +1 -1
- package/dist/edv/WasTransport.js +29 -29
- package/dist/edv/WasTransport.js.map +1 -1
- package/dist/edv/docCipher.d.ts +111 -0
- package/dist/edv/docCipher.d.ts.map +1 -0
- package/dist/edv/docCipher.js +236 -0
- package/dist/edv/docCipher.js.map +1 -0
- package/dist/edv/epochKeys.js +2 -2
- package/dist/edv/epochKeys.js.map +1 -1
- package/dist/edv/index.d.ts +2 -0
- package/dist/edv/index.d.ts.map +1 -1
- package/dist/edv/index.js +1 -0
- package/dist/edv/index.js.map +1 -1
- package/dist/errors.d.ts +22 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +28 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/codec.d.ts +1 -2
- package/dist/internal/codec.d.ts.map +1 -1
- package/dist/internal/codec.js +10 -10
- package/dist/internal/codec.js.map +1 -1
- package/dist/internal/features.d.ts +1 -12
- package/dist/internal/features.d.ts.map +1 -1
- package/dist/internal/features.js +8 -8
- package/dist/internal/features.js.map +1 -1
- package/dist/internal/pagination.d.ts +1 -1
- package/dist/internal/pagination.js +1 -1
- package/dist/sync/cid.d.ts +31 -0
- package/dist/sync/cid.d.ts.map +1 -0
- package/dist/sync/cid.js +55 -0
- package/dist/sync/cid.js.map +1 -0
- package/dist/sync/envelope.d.ts +20 -0
- package/dist/sync/envelope.d.ts.map +1 -0
- package/dist/sync/envelope.js +17 -0
- package/dist/sync/envelope.js.map +1 -0
- package/dist/sync/index.d.ts +29 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +28 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/sync/plaintextCipher.d.ts +16 -0
- package/dist/sync/plaintextCipher.d.ts.map +1 -0
- package/dist/sync/plaintextCipher.js +36 -0
- package/dist/sync/plaintextCipher.js.map +1 -0
- package/dist/sync/port.d.ts +78 -0
- package/dist/sync/port.d.ts.map +1 -0
- package/dist/sync/port.js +204 -0
- package/dist/sync/port.js.map +1 -0
- package/dist/sync/provisioning.d.ts +44 -0
- package/dist/sync/provisioning.d.ts.map +1 -0
- package/dist/sync/provisioning.js +46 -0
- package/dist/sync/provisioning.js.map +1 -0
- package/dist/sync/types.d.ts +166 -0
- package/dist/sync/types.d.ts.map +1 -0
- package/dist/sync/types.js +2 -0
- package/dist/sync/types.js.map +1 -0
- package/dist/types.d.ts +1 -1
- package/package.json +10 -2
package/dist/edv/EdvCodec.d.ts
CHANGED
|
@@ -9,33 +9,8 @@ import type { Json, ResourceData, ResourceMetadataCustom } from '../types.js';
|
|
|
9
9
|
* collection handle.
|
|
10
10
|
*/
|
|
11
11
|
export declare class EdvCodec implements ResourceCodec {
|
|
12
|
+
#private;
|
|
12
13
|
readonly conditionalWrites = true;
|
|
13
|
-
private readonly _edv;
|
|
14
|
-
private readonly _writeKey;
|
|
15
|
-
/**
|
|
16
|
-
* The static JWE recipient descriptor every write encrypts to (the write
|
|
17
|
-
* key's `{ kid, alg }` header; the ephemeral `epk` is minted later inside
|
|
18
|
-
* `encrypt`). Deterministic per codec, so computed once here instead of per
|
|
19
|
-
* write.
|
|
20
|
-
*/
|
|
21
|
-
private readonly _recipients;
|
|
22
|
-
private readonly _readKeys;
|
|
23
|
-
private readonly _writeEpoch?;
|
|
24
|
-
private readonly _contentType;
|
|
25
|
-
private readonly _maxBlobBytes;
|
|
26
|
-
private readonly _idDerivation;
|
|
27
|
-
/**
|
|
28
|
-
* The EDV-over-WAS scheme version this codec binds into every envelope's
|
|
29
|
-
* `was.v` protected-header parameter (the marker's `version`, `1` when
|
|
30
|
-
* absent). Read side rejects an envelope stamped with a greater version.
|
|
31
|
-
*/
|
|
32
|
-
private readonly _version;
|
|
33
|
-
/**
|
|
34
|
-
* Whether this codec's collection has key epochs. When it does, an envelope's
|
|
35
|
-
* `was.epoch` binding is checked on decode against the epoch of the key that
|
|
36
|
-
* actually decrypted it.
|
|
37
|
-
*/
|
|
38
|
-
private readonly _hasEpochs;
|
|
39
14
|
/**
|
|
40
15
|
* @param options {object}
|
|
41
16
|
* @param options.edv {EdvClientCore} holds the cipher + key resolver
|
|
@@ -89,58 +64,6 @@ export declare class EdvCodec implements ResourceCodec {
|
|
|
89
64
|
data?: unknown;
|
|
90
65
|
json(): Promise<unknown>;
|
|
91
66
|
}, expectedId?: string): Promise<Json | Blob>;
|
|
92
|
-
/**
|
|
93
|
-
* Decrypts a stored EDV envelope, selecting which read key to use by matching
|
|
94
|
-
* the envelope's JWE recipient `kid` against this reader's candidate keys
|
|
95
|
-
* (one per epoch it can unwrap). On a single-key collection there is exactly
|
|
96
|
-
* one candidate; on a multi-recipient collection a resource written under an
|
|
97
|
-
* older epoch selects that epoch's key, so history stays readable.
|
|
98
|
-
*
|
|
99
|
-
* A stored envelope naming an epoch this reader holds no key for (it was never
|
|
100
|
-
* a recipient of that epoch, or was removed and the epoch rotated) fails with
|
|
101
|
-
* {@link KeyUnwrapError} -- the **read** axis only; it says nothing about
|
|
102
|
-
* whether the server will still serve (pull) the ciphertext.
|
|
103
|
-
*
|
|
104
|
-
* Also returns the `id` of the key that actually decrypted the envelope (its
|
|
105
|
-
* JWE recipient `kid`), so {@link _verifyBinding} can check a `was.epoch`
|
|
106
|
-
* binding against the epoch of the decrypting key.
|
|
107
|
-
*
|
|
108
|
-
* @param encryptedDoc {IEncryptedDocument}
|
|
109
|
-
* @returns {Promise<{ content?: unknown; meta?: Record<string, unknown>;
|
|
110
|
-
* keyId?: string }>}
|
|
111
|
-
*/
|
|
112
|
-
private _decrypt;
|
|
113
|
-
/**
|
|
114
|
-
* Verifies the AEAD-authenticated `was` binding on a successfully-decrypted
|
|
115
|
-
* envelope (spec "Request Body Integrity"'s envelope half). Decrypt success
|
|
116
|
-
* proves the protected header authentic, so this runs only after a decrypt
|
|
117
|
-
* succeeds. Enforces, in order:
|
|
118
|
-
*
|
|
119
|
-
* - No `was` parameter at all: a legacy envelope, accepted unchanged (this
|
|
120
|
-
* client wrote it before the binding existed, or a foreign EDV writer did).
|
|
121
|
-
* - `was.v` greater than this codec's scheme version: a future-scheme envelope
|
|
122
|
-
* this client does not implement -- {@link EncryptionError}.
|
|
123
|
-
* - `was.resource` present and the expected id known: a mismatch is a server-side
|
|
124
|
-
* swap of two resources' envelopes -- {@link IntegrityError}.
|
|
125
|
-
* - `was` present but `resource` absent (a content-derived write) and the expected
|
|
126
|
-
* id known: the envelope's ciphertext must re-derive to the expected id
|
|
127
|
-
* ({@link EdvDocumentCipher.deriveId}); a mismatch means the envelope was
|
|
128
|
-
* copied under a different id -- {@link IntegrityError}. This check is NEVER
|
|
129
|
-
* applied to an envelope with no `was` at all (a legacy random-id envelope
|
|
130
|
-
* would fail it wrongly).
|
|
131
|
-
* - On a collection with epochs, `was.epoch` present: it must equal the epoch
|
|
132
|
-
* (the `did:key` before the `#`) of the key that actually decrypted -- a
|
|
133
|
-
* mismatch is a replay under a different epoch's key -- {@link IntegrityError}.
|
|
134
|
-
*
|
|
135
|
-
* @param options {object}
|
|
136
|
-
* @param options.jwe {unknown} the envelope's JWE (its `protected` header is
|
|
137
|
-
* parsed for `was`)
|
|
138
|
-
* @param [options.expectedId] {string} the resource id the read targeted
|
|
139
|
-
* @param [options.keyId] {string} the id of the key that decrypted, for the
|
|
140
|
-
* epoch check
|
|
141
|
-
* @returns {Promise<void>}
|
|
142
|
-
*/
|
|
143
|
-
private _verifyBinding;
|
|
144
67
|
/**
|
|
145
68
|
* @inheritdoc
|
|
146
69
|
*
|
|
@@ -167,67 +90,6 @@ export declare class EdvCodec implements ResourceCodec {
|
|
|
167
90
|
decodeMeta({ custom }: {
|
|
168
91
|
custom?: unknown;
|
|
169
92
|
}, expectedId?: string): Promise<ResourceMetadataCustom>;
|
|
170
|
-
/**
|
|
171
|
-
* Asserts that a document read from an encrypted collection is an EDV envelope
|
|
172
|
-
* (`{ jwe, ... }`) before it is handed to the cipher. A plaintext or foreign
|
|
173
|
-
* resource -- one written without this codec -- carries no `jwe`, which would
|
|
174
|
-
* otherwise make the EDV core throw a raw `TypeError`. Surfacing a typed
|
|
175
|
-
* `EncryptionError` keeps the fail-closed contract legible to callers.
|
|
176
|
-
*
|
|
177
|
-
* For an `update`, the envelope's `sequence` is also validated: the cipher
|
|
178
|
-
* requires a non-negative safe integer to advance from, so a foreign envelope
|
|
179
|
-
* without one (or with a malformed one) must fail here as a typed
|
|
180
|
-
* `EncryptionError` rather than as the cipher's raw `Error`.
|
|
181
|
-
*
|
|
182
|
-
* @param doc {unknown}
|
|
183
|
-
* @param context {string} the operation in progress (`read` / `update`),
|
|
184
|
-
* for the message
|
|
185
|
-
* @returns {asserts doc is IEncryptedDocument}
|
|
186
|
-
*/
|
|
187
|
-
private _assertEnvelope;
|
|
188
|
-
/**
|
|
189
|
-
* Splits a caller value into a decrypted EDV document `{ content, meta }`,
|
|
190
|
-
* carrying the plaintext content type and inline-encoding discriminator in
|
|
191
|
-
* `meta`. Three cases:
|
|
192
|
-
*
|
|
193
|
-
* 1. JSON object/array to `content` verbatim, `meta = { contentType }` (no
|
|
194
|
-
* `encoding`); the shape of `content` is never inspected on read, so a
|
|
195
|
-
* caller object shaped like `{ text }` / `{ bytes }` round-trips as itself.
|
|
196
|
-
* 2. Text (`Blob`/`Uint8Array` of a text-family type that is valid UTF-8)
|
|
197
|
-
* to `content = { text }`, `meta = { contentType, encoding: 'utf-8' }`;
|
|
198
|
-
* stored legibly with no base64 inflation.
|
|
199
|
-
* 3. Binary (any other `Blob`/`Uint8Array`) to `content = { bytes: base64 }`,
|
|
200
|
-
* `meta = { contentType, encoding: 'base64' }`.
|
|
201
|
-
*
|
|
202
|
-
* A bare primitive is rejected (mirroring the plaintext `prepareBody`
|
|
203
|
-
* contract). The binary/text detection and content-type precedence are the
|
|
204
|
-
* shared `resolvePayload` rules, so the plaintext and encrypted write paths
|
|
205
|
-
* cannot drift.
|
|
206
|
-
*
|
|
207
|
-
* @param data {ResourceData}
|
|
208
|
-
* @param [contentType] {string} caller-supplied content type
|
|
209
|
-
* @param [id] {string} resource id, for the extension guess
|
|
210
|
-
* @returns {Promise<{ content: Record<string, unknown>; meta:
|
|
211
|
-
* Record<string, unknown> }>}
|
|
212
|
-
*/
|
|
213
|
-
private _toDocument;
|
|
214
|
-
/**
|
|
215
|
-
* Reconstructs a caller value from a decrypted EDV document, discriminating
|
|
216
|
-
* on `meta.encoding`:
|
|
217
|
-
*
|
|
218
|
-
* - `'utf-8'` to a `Blob` typed `meta.contentType` from `content.text`.
|
|
219
|
-
* - `'base64'` to a `Blob` typed `meta.contentType` from `content.bytes`.
|
|
220
|
-
* - absent (or `meta` absent) to `content` returned verbatim as JSON.
|
|
221
|
-
*
|
|
222
|
-
* A malformed inner shape (an encoding that does not match its container key's
|
|
223
|
-
* type) throws {@link EncryptionError} -- the decrypted-document analogue of
|
|
224
|
-
* `_assertEnvelope`'s outer guard.
|
|
225
|
-
*
|
|
226
|
-
* @param content {unknown}
|
|
227
|
-
* @param [meta] {Record<string, unknown>}
|
|
228
|
-
* @returns {Json | Blob}
|
|
229
|
-
*/
|
|
230
|
-
private _fromDocument;
|
|
231
93
|
}
|
|
232
94
|
/**
|
|
233
95
|
* The per-collection key material an EDV codec is built from.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EdvCodec.d.ts","sourceRoot":"","sources":["../../src/edv/EdvCodec.ts"],"names":[],"mappings":"AAuDA,OAAO,EAAE,aAAa,EAAe,MAAM,qBAAqB,CAAA;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EAEV,gBAAgB,EAChB,YAAY,EAEb,MAAM,8BAA8B,CAAA;AACrC,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACd,MAAM,aAAa,CAAA;AAiBpB,OAAO,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAyD7E;;;;GAIG;AACH,qBAAa,QAAS,YAAW,aAAa
|
|
1
|
+
{"version":3,"file":"EdvCodec.d.ts","sourceRoot":"","sources":["../../src/edv/EdvCodec.ts"],"names":[],"mappings":"AAuDA,OAAO,EAAE,aAAa,EAAe,MAAM,qBAAqB,CAAA;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EAEV,gBAAgB,EAChB,YAAY,EAEb,MAAM,8BAA8B,CAAA;AACrC,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACd,MAAM,aAAa,CAAA;AAiBpB,OAAO,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAyD7E;;;;GAIG;AACH,qBAAa,QAAS,YAAW,aAAa;;IAC5C,QAAQ,CAAC,iBAAiB,QAAO;IA4BjC;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;gBACS,EACV,GAAG,EACH,eAAe,EACf,QAAQ,EACR,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,SAAS,EACV,EAAE;QACD,GAAG,EAAE,aAAa,CAAA;QAClB,eAAe,EAAE,gBAAgB,CAAA;QACjC,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAA;QAC7B,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,WAAW,EAAE,MAAM,CAAA;QACnB,YAAY,EAAE,MAAM,CAAA;QACpB,YAAY,EAAE,QAAQ,GAAG,SAAS,CAAA;QAClC,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,SAAS,CAAC,EAAE,OAAO,CAAA;KACpB;IAaD;;OAEG;IACG,MAAM,CAAC,EACX,EAAE,EACF,IAAI,EACJ,WAAW,EACX,OAAO,EACR,EAAE;QACD,EAAE,CAAC,EAAE,MAAM,CAAA;QACX,IAAI,EAAE,YAAY,CAAA;QAClB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;KAC9B,GAAG,OAAO,CAAC,YAAY,CAAC;IA0GzB;;OAEG;IACG,MAAM,CACV,QAAQ,EAAE;QACR,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;KACzB,EACD,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAwLvB;;;;;;;;OAQG;IACG,UAAU,CAAC,EACf,MAAM,EACN,EAAE,EAAE,UAAU,EACf,EAAE;QACD,MAAM,EAAE,sBAAsB,CAAA;QAC9B,EAAE,CAAC,EAAE,MAAM,CAAA;KACZ,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IA0B/B;;;;;;;OAOG;IACG,UAAU,CACd,EACE,MAAM,EACP,EAAE;QACD,MAAM,CAAC,EAAE,OAAO,CAAA;KACjB,EACD,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,sBAAsB,CAAC;CAkMnC;AAoDD;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,eAAe,EAAE,gBAAgB,CAAA;IACjC,WAAW,EAAE,YAAY,CAAA;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,WAAW,EACX,WAAkC,EAClC,YAAqC,EACrC,YAAuB,EACxB,EAAE;IACD,WAAW,EAAE,CAAC,GAAG,EAAE;QACjB,OAAO,EAAE,MAAM,CAAA;QACf,YAAY,EAAE,MAAM,CAAA;KACrB,KAAK,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;CACpC,GAAG,kBAAkB,CA+DrB"}
|
package/dist/edv/EdvCodec.js
CHANGED
|
@@ -116,32 +116,31 @@ function isKeyMiss(err) {
|
|
|
116
116
|
*/
|
|
117
117
|
export class EdvCodec {
|
|
118
118
|
conditionalWrites = true;
|
|
119
|
-
|
|
120
|
-
_writeKey;
|
|
119
|
+
#edv;
|
|
121
120
|
/**
|
|
122
121
|
* The static JWE recipient descriptor every write encrypts to (the write
|
|
123
122
|
* key's `{ kid, alg }` header; the ephemeral `epk` is minted later inside
|
|
124
123
|
* `encrypt`). Deterministic per codec, so computed once here instead of per
|
|
125
124
|
* write.
|
|
126
125
|
*/
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
126
|
+
#recipients;
|
|
127
|
+
#readKeys;
|
|
128
|
+
#writeEpoch;
|
|
129
|
+
#contentType;
|
|
130
|
+
#maxBlobBytes;
|
|
131
|
+
#idDerivation;
|
|
133
132
|
/**
|
|
134
133
|
* The EDV-over-WAS scheme version this codec binds into every envelope's
|
|
135
134
|
* `was.v` protected-header parameter (the marker's `version`, `1` when
|
|
136
135
|
* absent). Read side rejects an envelope stamped with a greater version.
|
|
137
136
|
*/
|
|
138
|
-
|
|
137
|
+
#version;
|
|
139
138
|
/**
|
|
140
139
|
* Whether this codec's collection has key epochs. When it does, an envelope's
|
|
141
140
|
* `was.epoch` binding is checked on decode against the epoch of the key that
|
|
142
141
|
* actually decrypted it.
|
|
143
142
|
*/
|
|
144
|
-
|
|
143
|
+
#hasEpochs;
|
|
145
144
|
/**
|
|
146
145
|
* @param options {object}
|
|
147
146
|
* @param options.edv {EdvClientCore} holds the cipher + key resolver
|
|
@@ -169,17 +168,16 @@ export class EdvCodec {
|
|
|
169
168
|
* decrypting key's epoch (defaults to `false`)
|
|
170
169
|
*/
|
|
171
170
|
constructor({ edv, keyAgreementKey, readKeys, writeEpoch, contentType, maxBlobBytes, idDerivation, version, hasEpochs }) {
|
|
172
|
-
this
|
|
173
|
-
this
|
|
174
|
-
this._recipients =
|
|
171
|
+
this.#edv = edv;
|
|
172
|
+
this.#recipients =
|
|
175
173
|
edv.documentCipher.createDefaultRecipients(keyAgreementKey);
|
|
176
|
-
this
|
|
177
|
-
this
|
|
178
|
-
this
|
|
179
|
-
this
|
|
180
|
-
this
|
|
181
|
-
this
|
|
182
|
-
this
|
|
174
|
+
this.#readKeys = readKeys ?? [keyAgreementKey];
|
|
175
|
+
this.#writeEpoch = writeEpoch;
|
|
176
|
+
this.#contentType = contentType;
|
|
177
|
+
this.#maxBlobBytes = maxBlobBytes;
|
|
178
|
+
this.#idDerivation = idDerivation;
|
|
179
|
+
this.#version = version ?? 1;
|
|
180
|
+
this.#hasEpochs = hasEpochs ?? false;
|
|
183
181
|
}
|
|
184
182
|
/**
|
|
185
183
|
* @inheritdoc
|
|
@@ -203,10 +201,10 @@ export class EdvCodec {
|
|
|
203
201
|
// mode -- leave it unset and stamp the content-derived id after encryption
|
|
204
202
|
// (the id is a function of the ciphertext, which does not exist yet).
|
|
205
203
|
let docId = id ??
|
|
206
|
-
(this
|
|
204
|
+
(this.#idDerivation === 'content'
|
|
207
205
|
? undefined
|
|
208
|
-
: (await this.
|
|
209
|
-
const { content, meta } = await this
|
|
206
|
+
: (await this.#edv.generateId()));
|
|
207
|
+
const { content, meta } = await this.#toDocument(data, contentType, docId);
|
|
210
208
|
// When the write path pre-read a current envelope, advance `sequence` from
|
|
211
209
|
// its prior value (`encrypt({ update: true })` increments it) and pin the
|
|
212
210
|
// write to the server's current ETag with `If-Match`. With no prior envelope
|
|
@@ -215,10 +213,10 @@ export class EdvCodec {
|
|
|
215
213
|
let priorDoc = null;
|
|
216
214
|
if (current) {
|
|
217
215
|
const read = await readJsonData(current);
|
|
218
|
-
this
|
|
216
|
+
this.#assertEnvelope(read, 'update');
|
|
219
217
|
priorDoc = read;
|
|
220
218
|
}
|
|
221
|
-
const { documentCipher } = this
|
|
219
|
+
const { documentCipher } = this.#edv;
|
|
222
220
|
// Bind an AEAD-authenticated `was` parameter into the JWE protected header:
|
|
223
221
|
// the scheme version, the resource id when known at encrypt time (omitted
|
|
224
222
|
// for a content-derived id, which does not exist until after encryption),
|
|
@@ -226,13 +224,13 @@ export class EdvCodec {
|
|
|
226
224
|
// two envelopes between ids (or replays one under a rolled-back epoch) is
|
|
227
225
|
// then detected on decrypt.
|
|
228
226
|
const was = {
|
|
229
|
-
v: this
|
|
227
|
+
v: this.#version
|
|
230
228
|
};
|
|
231
229
|
if (docId !== undefined) {
|
|
232
230
|
was.resource = docId;
|
|
233
231
|
}
|
|
234
|
-
if (this
|
|
235
|
-
was.epoch = this
|
|
232
|
+
if (this.#writeEpoch !== undefined) {
|
|
233
|
+
was.epoch = this.#writeEpoch;
|
|
236
234
|
}
|
|
237
235
|
const encrypted = await documentCipher.encrypt({
|
|
238
236
|
doc: {
|
|
@@ -244,8 +242,8 @@ export class EdvCodec {
|
|
|
244
242
|
meta,
|
|
245
243
|
...(priorDoc && { sequence: priorDoc.sequence })
|
|
246
244
|
},
|
|
247
|
-
recipients: this
|
|
248
|
-
keyResolver: this.
|
|
245
|
+
recipients: this.#recipients,
|
|
246
|
+
keyResolver: this.#edv.keyResolver,
|
|
249
247
|
hmac: undefined,
|
|
250
248
|
update: priorDoc !== null,
|
|
251
249
|
additionalProtectedParams: { was }
|
|
@@ -260,7 +258,7 @@ export class EdvCodec {
|
|
|
260
258
|
return {
|
|
261
259
|
id: docId,
|
|
262
260
|
body: envelopeBytes(encrypted),
|
|
263
|
-
contentType: this
|
|
261
|
+
contentType: this.#contentType,
|
|
264
262
|
// Surface the plaintext content type (the server-opaque envelope type stays
|
|
265
263
|
// `contentType`) so `add()` reports the real resource type.
|
|
266
264
|
resourceContentType: meta.contentType,
|
|
@@ -280,7 +278,7 @@ export class EdvCodec {
|
|
|
280
278
|
// Stamp the key epoch this write encrypted under (the `currentEpoch`), so
|
|
281
279
|
// the server records it and a reader can pick the epoch key. Absent on a
|
|
282
280
|
// single-key collection.
|
|
283
|
-
...(this
|
|
281
|
+
...(this.#writeEpoch !== undefined && { epoch: this.#writeEpoch })
|
|
284
282
|
};
|
|
285
283
|
}
|
|
286
284
|
/**
|
|
@@ -288,14 +286,14 @@ export class EdvCodec {
|
|
|
288
286
|
*/
|
|
289
287
|
async decode(response, expectedId) {
|
|
290
288
|
const encryptedDoc = await readJsonData(response);
|
|
291
|
-
this
|
|
292
|
-
const decrypted = await this
|
|
293
|
-
await this
|
|
289
|
+
this.#assertEnvelope(encryptedDoc, 'read');
|
|
290
|
+
const decrypted = await this.#decrypt(encryptedDoc);
|
|
291
|
+
await this.#verifyBinding({
|
|
294
292
|
jwe: encryptedDoc.jwe,
|
|
295
293
|
expectedId,
|
|
296
294
|
keyId: decrypted.keyId
|
|
297
295
|
});
|
|
298
|
-
return this
|
|
296
|
+
return this.#fromDocument(decrypted.content, decrypted.meta);
|
|
299
297
|
}
|
|
300
298
|
/**
|
|
301
299
|
* Decrypts a stored EDV envelope, selecting which read key to use by matching
|
|
@@ -317,7 +315,7 @@ export class EdvCodec {
|
|
|
317
315
|
* @returns {Promise<{ content?: unknown; meta?: Record<string, unknown>;
|
|
318
316
|
* keyId?: string }>}
|
|
319
317
|
*/
|
|
320
|
-
async
|
|
318
|
+
async #decrypt(encryptedDoc) {
|
|
321
319
|
const recipients = encryptedDoc.jwe.recipients ?? [];
|
|
322
320
|
const kids = new Set(recipients
|
|
323
321
|
.map(recipient => recipient.header?.kid)
|
|
@@ -329,11 +327,11 @@ export class EdvCodec {
|
|
|
329
327
|
// exact-match partition is empty even though a candidate can still unwrap it.
|
|
330
328
|
// For a well-formed epoch envelope the exact match always hits, so `rest` is
|
|
331
329
|
// normally unreached.
|
|
332
|
-
const preferred = this.
|
|
333
|
-
const rest = this.
|
|
330
|
+
const preferred = this.#readKeys.filter(key => kids.has(key.id));
|
|
331
|
+
const rest = this.#readKeys.filter(key => !kids.has(key.id));
|
|
334
332
|
for (const keyAgreementKey of [...preferred, ...rest]) {
|
|
335
333
|
try {
|
|
336
|
-
const decrypted = await this.
|
|
334
|
+
const decrypted = await this.#edv.documentCipher.decrypt({
|
|
337
335
|
encryptedDoc,
|
|
338
336
|
keyAgreementKey
|
|
339
337
|
});
|
|
@@ -394,16 +392,16 @@ export class EdvCodec {
|
|
|
394
392
|
* epoch check
|
|
395
393
|
* @returns {Promise<void>}
|
|
396
394
|
*/
|
|
397
|
-
async
|
|
395
|
+
async #verifyBinding({ jwe, expectedId, keyId }) {
|
|
398
396
|
const was = parseWasHeader(jwe);
|
|
399
397
|
if (was === undefined) {
|
|
400
398
|
// Legacy envelope (no `was`): accept unchanged for back-compat.
|
|
401
399
|
return;
|
|
402
400
|
}
|
|
403
|
-
if (typeof was.v === 'number' && was.v > this
|
|
401
|
+
if (typeof was.v === 'number' && was.v > this.#version) {
|
|
404
402
|
throw new EncryptionError(`Cannot decrypt this resource: its envelope is stamped with ` +
|
|
405
403
|
`EDV-over-WAS scheme version ${was.v}, which this client (version ` +
|
|
406
|
-
`${this
|
|
404
|
+
`${this.#version}) does not implement. Upgrade the client.`);
|
|
407
405
|
}
|
|
408
406
|
if (typeof was.resource === 'string') {
|
|
409
407
|
if (expectedId !== undefined && was.resource !== expectedId) {
|
|
@@ -415,7 +413,8 @@ export class EdvCodec {
|
|
|
415
413
|
else if (expectedId !== undefined) {
|
|
416
414
|
// Content-derived write (no `resource`): the id is a function of the
|
|
417
415
|
// ciphertext, so re-derive and compare.
|
|
418
|
-
const
|
|
416
|
+
const { documentCipher } = this.#edv;
|
|
417
|
+
const derived = await documentCipher.deriveId({
|
|
419
418
|
jwe: jwe
|
|
420
419
|
});
|
|
421
420
|
if (derived !== expectedId) {
|
|
@@ -424,7 +423,7 @@ export class EdvCodec {
|
|
|
424
423
|
'served this envelope under an id it was not written for.');
|
|
425
424
|
}
|
|
426
425
|
}
|
|
427
|
-
if (this
|
|
426
|
+
if (this.#hasEpochs && typeof was.epoch === 'string' && keyId) {
|
|
428
427
|
const decryptedEpoch = keyId.split('#')[0];
|
|
429
428
|
if (decryptedEpoch !== was.epoch) {
|
|
430
429
|
throw new IntegrityError(`Cannot decrypt this resource: its envelope is bound to key epoch ` +
|
|
@@ -444,25 +443,25 @@ export class EdvCodec {
|
|
|
444
443
|
* envelope), so each write re-encrypts fresh with no `update`.
|
|
445
444
|
*/
|
|
446
445
|
async encodeMeta({ custom, id: resourceId }) {
|
|
447
|
-
const { documentCipher } = this
|
|
446
|
+
const { documentCipher } = this.#edv;
|
|
448
447
|
// The document needs an EDV id (the cipher asserts one on decrypt). It is
|
|
449
448
|
// opaque to the server -- carried inside the un-decryptable envelope -- and
|
|
450
449
|
// minted fresh each write, since the metadata envelope is never updated in
|
|
451
450
|
// place (concurrency is the server's plaintext `metaVersion`, Decision 3).
|
|
452
|
-
const id = (await this.
|
|
451
|
+
const id = (await this.#edv.generateId());
|
|
453
452
|
// Bind the `was` parameter to the RESOURCE id (not the metadata envelope's
|
|
454
453
|
// own random EDV id), so a server-side swap of two resources' metadata is
|
|
455
454
|
// AEAD-detected on decode. The metadata envelope always knows the resource
|
|
456
455
|
// id at encrypt time, so `resource` is always present here (never content-
|
|
457
456
|
// derived) and it carries no `epoch`.
|
|
458
|
-
const was = { v: this
|
|
457
|
+
const was = { v: this.#version };
|
|
459
458
|
if (resourceId !== undefined) {
|
|
460
459
|
was.resource = resourceId;
|
|
461
460
|
}
|
|
462
461
|
const encrypted = await documentCipher.encrypt({
|
|
463
462
|
doc: { id, content: custom },
|
|
464
|
-
recipients: this
|
|
465
|
-
keyResolver: this.
|
|
463
|
+
recipients: this.#recipients,
|
|
464
|
+
keyResolver: this.#edv.keyResolver,
|
|
466
465
|
hmac: undefined,
|
|
467
466
|
additionalProtectedParams: { was }
|
|
468
467
|
});
|
|
@@ -480,10 +479,10 @@ export class EdvCodec {
|
|
|
480
479
|
if (custom === undefined || custom === null) {
|
|
481
480
|
return {};
|
|
482
481
|
}
|
|
483
|
-
this
|
|
482
|
+
this.#assertEnvelope(custom, 'read');
|
|
484
483
|
const encryptedDoc = custom;
|
|
485
|
-
const decrypted = await this
|
|
486
|
-
await this
|
|
484
|
+
const decrypted = await this.#decrypt(encryptedDoc);
|
|
485
|
+
await this.#verifyBinding({
|
|
487
486
|
jwe: encryptedDoc.jwe,
|
|
488
487
|
expectedId,
|
|
489
488
|
keyId: decrypted.keyId
|
|
@@ -507,7 +506,7 @@ export class EdvCodec {
|
|
|
507
506
|
* for the message
|
|
508
507
|
* @returns {asserts doc is IEncryptedDocument}
|
|
509
508
|
*/
|
|
510
|
-
|
|
509
|
+
#assertEnvelope(doc, context) {
|
|
511
510
|
const jwe = doc !== null && typeof doc === 'object'
|
|
512
511
|
? doc.jwe
|
|
513
512
|
: undefined;
|
|
@@ -554,16 +553,16 @@ export class EdvCodec {
|
|
|
554
553
|
* @returns {Promise<{ content: Record<string, unknown>; meta:
|
|
555
554
|
* Record<string, unknown> }>}
|
|
556
555
|
*/
|
|
557
|
-
async
|
|
556
|
+
async #toDocument(data, contentType, id) {
|
|
558
557
|
const payload = resolvePayload({ data, contentType, id });
|
|
559
558
|
if (payload.kind === 'binary') {
|
|
560
559
|
const bytes = isBlob(payload.data)
|
|
561
560
|
? new Uint8Array(await payload.data.arrayBuffer())
|
|
562
561
|
: payload.data;
|
|
563
562
|
const resolvedType = payload.contentType;
|
|
564
|
-
if (bytes.length > this
|
|
563
|
+
if (bytes.length > this.#maxBlobBytes) {
|
|
565
564
|
throw new ValidationError(`Encrypted binary write of ${bytes.length} bytes exceeds the ` +
|
|
566
|
-
`single-document limit of ${this
|
|
565
|
+
`single-document limit of ${this.#maxBlobBytes} bytes. The codec ` +
|
|
567
566
|
'seam is a single-request transform and cannot chunk. To store a ' +
|
|
568
567
|
'blob this large, write it through the chunked-stream path -- ' +
|
|
569
568
|
'`EdvClientCore.insert({ doc, stream, transport })` with a ' +
|
|
@@ -615,7 +614,7 @@ export class EdvCodec {
|
|
|
615
614
|
* @param [meta] {Record<string, unknown>}
|
|
616
615
|
* @returns {Json | Blob}
|
|
617
616
|
*/
|
|
618
|
-
|
|
617
|
+
#fromDocument(content, meta) {
|
|
619
618
|
const encoding = meta?.encoding;
|
|
620
619
|
const contentType = typeof meta?.contentType === 'string' ? meta.contentType : undefined;
|
|
621
620
|
if (encoding === 'utf-8') {
|
package/dist/edv/EdvCodec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EdvCodec.js","sourceRoot":"","sources":["../../src/edv/EdvCodec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EdvCodec.js","sourceRoot":"","sources":["../../src/edv/EdvCodec.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAahE,OAAO,EACL,eAAe,EACf,cAAc,EACd,cAAc,EACd,eAAe,EAChB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EACL,OAAO,EACP,MAAM,EACN,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACf,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAEpE;;;;;;;;;GASG;AACH,MAAM,sBAAsB,GAAG,GAAG,GAAG,IAAI,CAAA;AAEzC;;;;;;;;GAQG;AACH,MAAM,YAAY,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;AAE/E;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,SAAS,SAAS,CAAC,GAAY;IAC7B,OAAO,CACL,GAAG,YAAY,cAAc;QAC7B,CAAC,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,CAAC,CACtD,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,QAAQ;IACV,iBAAiB,GAAG,IAAI,CAAA;IAExB,IAAI,CAAe;IAC5B;;;;;OAKG;IACM,WAAW,CAAsB;IACjC,SAAS,CAAoB;IAC7B,WAAW,CAAS;IACpB,YAAY,CAAQ;IACpB,aAAa,CAAQ;IACrB,aAAa,CAAsB;IAC5C;;;;OAIG;IACM,QAAQ,CAAQ;IACzB;;;;OAIG;IACM,UAAU,CAAS;IAE5B;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,YAAY,EACV,GAAG,EACH,eAAe,EACf,QAAQ,EACR,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,SAAS,EAWV;QACC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;QACf,IAAI,CAAC,WAAW;YACd,GAAG,CAAC,cAAc,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAA;QAC7D,IAAI,CAAC,SAAS,GAAG,QAAQ,IAAI,CAAC,eAAe,CAAC,CAAA;QAC9C,IAAI,CAAC,WAAW,GAAG,UAAU,CAAA;QAC7B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAA;QAC/B,IAAI,CAAC,aAAa,GAAG,YAAY,CAAA;QACjC,IAAI,CAAC,aAAa,GAAG,YAAY,CAAA;QACjC,IAAI,CAAC,QAAQ,GAAG,OAAO,IAAI,CAAC,CAAA;QAC5B,IAAI,CAAC,UAAU,GAAG,SAAS,IAAI,KAAK,CAAA;IACtC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,EACX,EAAE,EACF,IAAI,EACJ,WAAW,EACX,OAAO,EAMR;QACC,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,uEAAuE;gBACvE,wEAAwE;gBACxE,8DAA8D;gBAC9D,WAAW,CAAC,EAAE,CAAC,CAAA;YACjB,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,IAAI,eAAe,CACvB,qCAAqC,EAAE,oBAAoB;oBACzD,iEAAiE;oBACjE,gEAAgE;oBAChE,oBAAoB,CACvB,CAAA;YACH,CAAC;QACH,CAAC;QACD,0EAA0E;QAC1E,2EAA2E;QAC3E,sEAAsE;QACtE,IAAI,KAAK,GACP,EAAE;YACF,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS;gBAC/B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAE,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAY,CAAC,CAAA;QACjD,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,CAAA;QAE1E,2EAA2E;QAC3E,0EAA0E;QAC1E,6EAA6E;QAC7E,uEAAuE;QACvE,wEAAwE;QACxE,IAAI,QAAQ,GAA8B,IAAI,CAAA;QAC9C,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,YAAY,CAC7B,OAA6C,CAC9C,CAAA;YACD,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;YACpC,QAAQ,GAAG,IAAI,CAAA;QACjB,CAAC;QAED,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,IAAI,CAAA;QACpC,4EAA4E;QAC5E,0EAA0E;QAC1E,0EAA0E;QAC1E,2EAA2E;QAC3E,0EAA0E;QAC1E,4BAA4B;QAC5B,MAAM,GAAG,GAAqD;YAC5D,CAAC,EAAE,IAAI,CAAC,QAAQ;SACjB,CAAA;QACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAA;QACtB,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACnC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAA;QAC9B,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC;YAC7C,GAAG,EAAE;gBACH,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;gBACzC,OAAO;gBACP,0EAA0E;gBAC1E,sEAAsE;gBACtE,gEAAgE;gBAChE,IAAI;gBACJ,GAAG,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC;aACjD;YACD,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW;YAClC,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,QAAQ,KAAK,IAAI;YACzB,yBAAyB,EAAE,EAAE,GAAG,EAAE;SACnC,CAAC,CAAA;QACF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,0EAA0E;YAC1E,yEAAyE;YACzE,+BAA+B;YAC/B,KAAK,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,CAAA;YAC7D,SAAS,CAAC,EAAE,GAAG,KAAK,CAAA;QACtB,CAAC;QACD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC;YAC9B,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,4EAA4E;YAC5E,4DAA4D;YAC5D,mBAAmB,EAAE,IAAI,CAAC,WAAqB;YAC/C,wEAAwE;YACxE,2EAA2E;YAC3E,oEAAoE;YACpE,oEAAoE;YACpE,0EAA0E;YAC1E,gEAAgE;YAChE,yEAAyE;YACzE,wEAAwE;YACxE,yEAAyE;YACzE,qDAAqD;YACrD,GAAG,CAAC,QAAQ;gBACV,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE;gBACxC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;YAC1B,0EAA0E;YAC1E,yEAAyE;YACzE,yBAAyB;YACzB,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;SACnE,CAAA;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,QAGC,EACD,UAAmB;QAEnB,MAAM,YAAY,GAAG,MAAM,YAAY,CACrC,QAA8C,CAC/C,CAAA;QACD,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;QAC1C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;QACnD,MAAM,IAAI,CAAC,cAAc,CAAC;YACxB,GAAG,EAAE,YAAY,CAAC,GAAG;YACrB,UAAU;YACV,KAAK,EAAE,SAAS,CAAC,KAAK;SACvB,CAAC,CAAA;QACF,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;IAC9D,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,KAAK,CAAC,QAAQ,CAAC,YAAgC;QAK7C,MAAM,UAAU,GAEZ,YAAY,CAAC,GAGd,CAAC,UAAU,IAAI,EAAE,CAAA;QACpB,MAAM,IAAI,GAAG,IAAI,GAAG,CAClB,UAAU;aACP,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC;aACvC,MAAM,CAAC,CAAC,GAAG,EAAiB,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAC3D,CAAA;QACD,uEAAuE;QACvE,6EAA6E;QAC7E,sEAAsE;QACtE,uEAAuE;QACvE,8EAA8E;QAC9E,6EAA6E;QAC7E,sBAAsB;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QAC5D,KAAK,MAAM,eAAe,IAAI,CAAC,GAAG,SAAS,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YACtD,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;oBACvD,YAAY;oBACZ,eAAe;iBAChB,CAAC,CAAA;gBACF,OAAO,EAAE,GAAG,SAAS,EAAE,KAAK,EAAE,eAAe,CAAC,EAAE,EAAE,CAAA;YACpD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;oBACnB,mEAAmE;oBACnE,6DAA6D;oBAC7D,SAAQ;gBACV,CAAC;gBACD,mEAAmE;gBACnE,sEAAsE;gBACtE,oEAAoE;gBACpE,uEAAuE;gBACvE,sEAAsE;gBACtE,kEAAkE;gBAClE,MAAM,IAAI,cAAc,CACtB,sEAAsE;oBACpE,mEAAmE;oBACnE,qEAAqE;oBACrE,iEAAiE;oBACjE,OAAO,EACT,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAA;YACH,CAAC;QACH,CAAC;QACD,MAAM,IAAI,cAAc,CACtB,wEAAwE;YACtE,sEAAsE;YACtE,sEAAsE;YACtE,uEAAuE;YACvE,uEAAuE,CAC1E,CAAA;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,KAAK,CAAC,cAAc,CAAC,EACnB,GAAG,EACH,UAAU,EACV,KAAK,EAKN;QACC,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAAA;QAC/B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,gEAAgE;YAChE,OAAM;QACR,CAAC;QACD,IAAI,OAAO,GAAG,CAAC,CAAC,KAAK,QAAQ,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvD,MAAM,IAAI,eAAe,CACvB,6DAA6D;gBAC3D,+BAA+B,GAAG,CAAC,CAAC,+BAA+B;gBACnE,GAAG,IAAI,CAAC,QAAQ,2CAA2C,CAC9D,CAAA;QACH,CAAC;QACD,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACrC,IAAI,UAAU,KAAK,SAAS,IAAI,GAAG,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;gBAC5D,MAAM,IAAI,cAAc,CACtB,kEAAkE;oBAChE,2BAA2B,GAAG,CAAC,QAAQ,4BAA4B;oBACnE,KAAK,UAAU,kDAAkD,CACpE,CAAA;YACH,CAAC;QACH,CAAC;aAAM,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YACpC,qEAAqE;YACrE,wCAAwC;YACxC,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,IAAI,CAAA;YACpC,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC;gBAC5C,GAAG,EAAE,GAA2D;aACjE,CAAC,CAAA;YACF,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;gBAC3B,MAAM,IAAI,cAAc,CACtB,0DAA0D,OAAO,KAAK;oBACpE,qCAAqC,UAAU,iBAAiB;oBAChE,0DAA0D,CAC7D,CAAA;YACH,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,EAAE,CAAC;YAC9D,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1C,IAAI,cAAc,KAAK,GAAG,CAAC,KAAK,EAAE,CAAC;gBACjC,MAAM,IAAI,cAAc,CACtB,mEAAmE;oBACjE,IAAI,GAAG,CAAC,KAAK,4CAA4C;oBACzD,IAAI,cAAc,8CAA8C;oBAChE,QAAQ,CACX,CAAA;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,UAAU,CAAC,EACf,MAAM,EACN,EAAE,EAAE,UAAU,EAIf;QACC,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,IAAI,CAAA;QACpC,0EAA0E;QAC1E,4EAA4E;QAC5E,2EAA2E;QAC3E,2EAA2E;QAC3E,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAW,CAAA;QACnD,2EAA2E;QAC3E,0EAA0E;QAC1E,2EAA2E;QAC3E,2EAA2E;QAC3E,sCAAsC;QACtC,MAAM,GAAG,GAAqC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAA;QAClE,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,GAAG,CAAC,QAAQ,GAAG,UAAU,CAAA;QAC3B,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC;YAC7C,GAAG,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,MAAiC,EAAE;YACvD,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW;YAClC,IAAI,EAAE,SAAS;YACf,yBAAyB,EAAE,EAAE,GAAG,EAAE;SACnC,CAAC,CAAA;QACF,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;IAC9B,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,UAAU,CACd,EACE,MAAM,EAGP,EACD,UAAmB;QAEnB,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAC5C,OAAO,EAAE,CAAA;QACX,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACpC,MAAM,YAAY,GAAG,MAA4B,CAAA;QACjD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;QACnD,MAAM,IAAI,CAAC,cAAc,CAAC;YACxB,GAAG,EAAE,YAAY,CAAC,GAAG;YACrB,UAAU;YACV,KAAK,EAAE,SAAS,CAAC,KAAK;SACvB,CAAC,CAAA;QACF,OAAO,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE,CAA2B,CAAA;IAC5D,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,eAAe,CACb,GAAY,EACZ,OAAe;QAEf,MAAM,GAAG,GACP,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ;YACrC,CAAC,CAAE,GAAyB,CAAC,GAAG;YAChC,CAAC,CAAC,SAAS,CAAA;QACf,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5C,MAAM,IAAI,eAAe,CACvB,UAAU,OAAO,qDAAqD;gBACpE,qEAAqE;gBACrE,+DAA+D;gBAC/D,aAAa,CAChB,CAAA;QACH,CAAC;QACD,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzB,MAAM,EAAE,QAAQ,EAAE,GAAG,GAA6B,CAAA;YAClD,IACE,OAAO,QAAQ,KAAK,QAAQ;gBAC5B,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC;gBAC/B,QAAQ,GAAG,CAAC,EACZ,CAAC;gBACD,MAAM,IAAI,eAAe,CACvB,+DAA+D;oBAC7D,8DAA8D;oBAC9D,8DAA8D;oBAC9D,uDAAuD,CAC1D,CAAA;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,KAAK,CAAC,WAAW,CACf,IAAkB,EAClB,WAAoB,EACpB,EAAW;QAKX,MAAM,OAAO,GAAG,cAAc,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAA;QAEzD,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;gBAChC,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBAClD,CAAC,CAAC,OAAO,CAAC,IAAI,CAAA;YAChB,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,CAAA;YACxC,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBACtC,MAAM,IAAI,eAAe,CACvB,6BAA6B,KAAK,CAAC,MAAM,qBAAqB;oBAC5D,4BAA4B,IAAI,CAAC,aAAa,oBAAoB;oBAClE,kEAAkE;oBAClE,+DAA+D;oBAC/D,4DAA4D;oBAC5D,iEAAiE;oBACjE,yDAAyD,CAC5D,CAAA;YACH,CAAC;YACD,2EAA2E;YAC3E,uEAAuE;YACvE,2DAA2D;YAC3D,IAAI,iBAAiB,CAAC,YAAY,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;gBAC9B,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAClB,OAAO;wBACL,OAAO,EAAE,EAAE,IAAI,EAAE;wBACjB,IAAI,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE;qBACvD,CAAA;gBACH,CAAC;YACH,CAAC;YACD,OAAO;gBACL,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBACxC,IAAI,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE;aACxD,CAAA;QACH,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC5B,4EAA4E;YAC5E,qEAAqE;YACrE,0EAA0E;YAC1E,OAAO;gBACL,OAAO,EAAE,IAA+B;gBACxC,IAAI,EAAE,EAAE,WAAW,EAAE,WAAW,IAAI,kBAAkB,EAAE;aACzD,CAAA;QACH,CAAC;QAED,MAAM,IAAI,eAAe,CACvB,mEAAmE;YACjE,2BAA2B,CAC9B,CAAA;IACH,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,aAAa,CAAC,OAAgB,EAAE,IAA8B;QAC5D,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,CAAA;QAC/B,MAAM,WAAW,GACf,OAAO,IAAI,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAA;QACtE,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,MAAM,IAAI,GAAI,OAAqC,EAAE,IAAI,CAAA;YACzD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,MAAM,IAAI,eAAe,CACvB,kEAAkE;oBAChE,+BAA+B,CAClC,CAAA;YACH,CAAC;YACD,OAAO,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAa,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAA;QAC5E,CAAC;QACD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,MAAM,UAAU,GAAI,OAAsC,EAAE,KAAK,CAAA;YACjE,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;gBACnC,MAAM,IAAI,eAAe,CACvB,qEAAqE;oBACnE,gCAAgC,CACnC,CAAA;YACH,CAAC;YACD,OAAO,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAa,CAAC,EAAE;gBACvD,IAAI,EAAE,WAAW;aAClB,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,OAAe,CAAA;IACxB,CAAC;CACF;AAED;;;;;;GAMG;AACH,SAAS,UAAU,CAAC,KAAiB;IACnC,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,cAAc,CAAC,GAAY;IAClC,MAAM,eAAe,GAAI,GAAsC,EAAE,SAAS,CAAA;IAC1E,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,MAAe,CAAA;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CACjB,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CACjE,CAAA;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,GAAG,GAAI,MAAmC,EAAE,GAAG,CAAA;IACrD,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,GAA8B,CAAA;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,GAAG,KAAK,CAAA;AAUxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAClC,WAAW,EACX,WAAW,GAAG,oBAAoB,EAClC,YAAY,GAAG,sBAAsB,EACrC,YAAY,GAAG,QAAQ,EASxB;IACC,OAAO;QACL,KAAK,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE;YAChE,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC1B,OAAO,IAAI,CAAA;YACb,CAAC;YACD,qEAAqE;YACrE,wEAAwE;YACxE,MAAM,aAAa,GAAG,UAAU,EAAE,OAAO,CAAA;YACzC,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;gBAC3D,MAAM,IAAI,eAAe,CACvB,cAAc,OAAO,IAAI,YAAY,gCAAgC;oBACnE,WAAW,aAAa,2CAA2C;oBACnE,gCAAgC,CACnC,CAAA;YACH,CAAC;YACD,iEAAiE;YACjE,MAAM,QAAQ,GACX,IAA4B;gBAC7B,CAAC,MAAM,WAAW,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAA;YAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,IAAI,CAAA;YACb,CAAC;YACD,oEAAoE;YACpE,oDAAoD;YACpD,IAAI,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAA;YAC9C,IAAI,WAAW,GAAiB,QAAQ,CAAC,WAAW,CAAA;YACpD,IAAI,QAAwC,CAAA;YAC5C,IAAI,UAA8B,CAAA;YAClC,yEAAyE;YACzE,wEAAwE;YACxE,wEAAwE;YACxE,sEAAsE;YACtE,oCAAoC;YACpC,IAAI,UAAU,EAAE,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvD,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC;oBACvC,UAAU;oBACV,eAAe,EAAE,QAAQ,CAAC,eAAe;iBAC1C,CAAC,CAAA;gBACF,IAAI,SAAS,EAAE,CAAC;oBACd,kEAAkE;oBAClE,mEAAmE;oBACnE,uEAAuE;oBACvE,eAAe,GAAG,SAAS,CAAC,QAAQ,CAAA;oBACpC,WAAW,GAAG,cAAc,CAAA;oBAC5B,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAA;oBAC7B,UAAU,GAAG,SAAS,CAAC,UAAU,CAAA;gBACnC,CAAC;YACH,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,aAAa,CAAC,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC,CAAA;YAC/D,OAAO,IAAI,QAAQ,CAAC;gBAClB,GAAG;gBACH,eAAe;gBACf,QAAQ;gBACR,UAAU;gBACV,WAAW;gBACX,YAAY;gBACZ,YAAY;gBACZ,OAAO,EAAE,aAAa,IAAI,CAAC;gBAC3B,SAAS,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;aAClE,CAAC,CAAA;QACJ,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -55,11 +55,10 @@ export { JOSE_CONTENT_TYPE };
|
|
|
55
55
|
*/
|
|
56
56
|
type WasRequester = Pick<WasClient, 'request'>;
|
|
57
57
|
export declare class WasTransport extends Transport {
|
|
58
|
+
#private;
|
|
58
59
|
readonly spaceId: string;
|
|
59
60
|
readonly collectionId: string;
|
|
60
61
|
readonly contentType: string;
|
|
61
|
-
private readonly _was;
|
|
62
|
-
private readonly _features;
|
|
63
62
|
/**
|
|
64
63
|
* @param options {object}
|
|
65
64
|
* @param options.was {WasClient} a WAS client holding the signer
|
|
@@ -76,28 +75,6 @@ export declare class WasTransport extends Transport {
|
|
|
76
75
|
collectionId: string;
|
|
77
76
|
contentType?: string;
|
|
78
77
|
});
|
|
79
|
-
/**
|
|
80
|
-
* The WAS resource path for a document id, delegating to was-client's
|
|
81
|
-
* internal `resourcePath` builder so the percent-encoding and trailing-slash
|
|
82
|
-
* rules stay defined in one place (no trailing slash -- get/put/delete by
|
|
83
|
-
* id).
|
|
84
|
-
*
|
|
85
|
-
* @param id {string} the EDV document id (= WAS resource id)
|
|
86
|
-
* @returns {string}
|
|
87
|
-
*/
|
|
88
|
-
private _resourcePath;
|
|
89
|
-
/**
|
|
90
|
-
* Writes an encrypted document to its WAS resource path as
|
|
91
|
-
* `application/jose+json` (the envelope serialized to bytes so the stored
|
|
92
|
-
* content type is exact).
|
|
93
|
-
*
|
|
94
|
-
* @param id {string}
|
|
95
|
-
* @param encrypted {IEncryptedDocument}
|
|
96
|
-
* @param [headers] {Record<string, string>} extra request headers (e.g. a
|
|
97
|
-
* conditional-write precondition)
|
|
98
|
-
* @returns {Promise<HttpResponse>}
|
|
99
|
-
*/
|
|
100
|
-
private _put;
|
|
101
78
|
/**
|
|
102
79
|
* @inheritdoc
|
|
103
80
|
*
|
|
@@ -153,25 +130,6 @@ export declare class WasTransport extends Transport {
|
|
|
153
130
|
get({ id }?: {
|
|
154
131
|
id?: string;
|
|
155
132
|
}): Promise<IEncryptedDocument>;
|
|
156
|
-
/**
|
|
157
|
-
* Throws a `NotSupportedError` (the name `EdvClientCore` dispatches on)
|
|
158
|
-
* unless the collection's backend advertises the given affordance token --
|
|
159
|
-
* the shared gate in front of every optional-feature operation.
|
|
160
|
-
*
|
|
161
|
-
* @param feature {string} the affordance token (e.g. `chunked-streams`)
|
|
162
|
-
* @param what {string} the operation name, for the message
|
|
163
|
-
* @returns {Promise<void>}
|
|
164
|
-
*/
|
|
165
|
-
private _requireFeature;
|
|
166
|
-
/**
|
|
167
|
-
* Resolves to `true` if a resource exists at the document's path, via a
|
|
168
|
-
* bodiless `HEAD` (the stored envelope is not needed, only its existence). A
|
|
169
|
-
* 404 resolves to `false`; any other error propagates.
|
|
170
|
-
*
|
|
171
|
-
* @param id {string}
|
|
172
|
-
* @returns {Promise<boolean>}
|
|
173
|
-
*/
|
|
174
|
-
private _exists;
|
|
175
133
|
/**
|
|
176
134
|
* @inheritdoc
|
|
177
135
|
*
|
|
@@ -207,16 +165,6 @@ export declare class WasTransport extends Transport {
|
|
|
207
165
|
* bind this to.
|
|
208
166
|
*/
|
|
209
167
|
updateIndex(): Promise<never>;
|
|
210
|
-
/**
|
|
211
|
-
* The WAS path of one chunk of a document, delegating to the internal
|
|
212
|
-
* `resourceChunkPath` builder (member form, no trailing slash --
|
|
213
|
-
* put/get/delete one chunk by index).
|
|
214
|
-
*
|
|
215
|
-
* @param docId {string} the EDV document id (= WAS resource id)
|
|
216
|
-
* @param chunkIndex {number} the chunk's non-negative ordinal index
|
|
217
|
-
* @returns {string}
|
|
218
|
-
*/
|
|
219
|
-
private _chunkPath;
|
|
220
168
|
/**
|
|
221
169
|
* @inheritdoc
|
|
222
170
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WasTransport.d.ts","sourceRoot":"","sources":["../../src/edv/WasTransport.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE/C,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EACT,kBAAkB,EACnB,MAAM,8BAA8B,CAAA;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAUhD,OAAO,EAGL,iBAAiB,EAClB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAE,iBAAiB,EAAE,CAAA;AAsB5B;;;GAGG;AACH,KAAK,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;AAqD9C,qBAAa,YAAa,SAAQ,SAAS
|
|
1
|
+
{"version":3,"file":"WasTransport.d.ts","sourceRoot":"","sources":["../../src/edv/WasTransport.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE/C,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EACT,kBAAkB,EACnB,MAAM,8BAA8B,CAAA;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAUhD,OAAO,EAGL,iBAAiB,EAClB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAE,iBAAiB,EAAE,CAAA;AAsB5B;;;GAGG;AACH,KAAK,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;AAqD9C,qBAAa,YAAa,SAAQ,SAAS;;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAK5B;;;;;;;;;OASG;gBACS,EACV,GAAG,EACH,OAAO,EACP,YAAY,EACZ,WAAkC,EACnC,EAAE;QACD,GAAG,EAAE,YAAY,CAAA;QACjB,OAAO,EAAE,MAAM,CAAA;QACf,YAAY,EAAE,MAAM,CAAA;QACpB,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB;IAwDD;;;;;;;;;;;;;;;;OAgBG;IACY,MAAM,CAAC,EACpB,SAAS,EACV,GAAE;QAAE,SAAS,CAAC,EAAE,kBAAkB,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAoC1D;;;;;;;;;;;;;;;;;;OAkBG;IACY,MAAM,CAAC,EACpB,SAAS,EACV,GAAE;QAAE,SAAS,CAAC,EAAE,kBAAkB,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB1D;;;;;;;;;OASG;IACY,GAAG,CAAC,EACjB,EAAE,EACH,GAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA0DrD;;;;;;;;;;;;;;;;;;;;OAoBG;IACY,IAAI,CAAC,EAAE,KAAK,EAAE,GAAE;QAAE,KAAK,CAAC,EAAE,SAAS,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IA6B3E;;;;;;;;;OASG;IACY,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC;IAuB5C;;;;;;;;;;;;;;;;;;OAkBG;IACY,UAAU,CAAC,EACxB,KAAK,EACL,KAAK,EACN,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,SAAS,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B7D;;;;;;;;;;;;;;OAcG;IACY,QAAQ,CAAC,EACtB,KAAK,EACL,UAAU,EACX,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,SAAS,CAAC;CA6BrE"}
|