@interop/was-client 0.15.0 → 0.17.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.
Files changed (85) hide show
  1. package/dist/Collection.d.ts +17 -26
  2. package/dist/Collection.d.ts.map +1 -1
  3. package/dist/Collection.js +60 -59
  4. package/dist/Collection.js.map +1 -1
  5. package/dist/Resource.d.ts +27 -3
  6. package/dist/Resource.d.ts.map +1 -1
  7. package/dist/Resource.js +60 -22
  8. package/dist/Resource.js.map +1 -1
  9. package/dist/Space.d.ts +26 -2
  10. package/dist/Space.d.ts.map +1 -1
  11. package/dist/Space.js +66 -18
  12. package/dist/Space.js.map +1 -1
  13. package/dist/WasClient.d.ts +6 -0
  14. package/dist/WasClient.d.ts.map +1 -1
  15. package/dist/WasClient.js +29 -20
  16. package/dist/WasClient.js.map +1 -1
  17. package/dist/edv/EdvCodec.d.ts +11 -2
  18. package/dist/edv/EdvCodec.d.ts.map +1 -1
  19. package/dist/edv/EdvCodec.js +79 -67
  20. package/dist/edv/EdvCodec.js.map +1 -1
  21. package/dist/edv/WasTransport.d.ts +23 -44
  22. package/dist/edv/WasTransport.d.ts.map +1 -1
  23. package/dist/edv/WasTransport.js +109 -155
  24. package/dist/edv/WasTransport.js.map +1 -1
  25. package/dist/edv/constants.d.ts +0 -14
  26. package/dist/edv/constants.d.ts.map +1 -1
  27. package/dist/edv/constants.js +4 -8
  28. package/dist/edv/constants.js.map +1 -1
  29. package/dist/edv/epochCrypto.d.ts +1 -1
  30. package/dist/edv/epochCrypto.d.ts.map +1 -1
  31. package/dist/edv/epochCrypto.js +33 -4
  32. package/dist/edv/epochCrypto.js.map +1 -1
  33. package/dist/edv/epochKeys.js +11 -1
  34. package/dist/edv/epochKeys.js.map +1 -1
  35. package/dist/edv/recipients.d.ts +5 -1
  36. package/dist/edv/recipients.d.ts.map +1 -1
  37. package/dist/edv/recipients.js +38 -16
  38. package/dist/edv/recipients.js.map +1 -1
  39. package/dist/index.d.ts +1 -1
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/internal/codec.d.ts +19 -0
  42. package/dist/internal/codec.d.ts.map +1 -1
  43. package/dist/internal/codec.js +26 -8
  44. package/dist/internal/codec.js.map +1 -1
  45. package/dist/internal/conditional.d.ts +11 -0
  46. package/dist/internal/conditional.d.ts.map +1 -1
  47. package/dist/internal/conditional.js +12 -0
  48. package/dist/internal/conditional.js.map +1 -1
  49. package/dist/internal/content.d.ts +7 -0
  50. package/dist/internal/content.d.ts.map +1 -1
  51. package/dist/internal/content.js +5 -3
  52. package/dist/internal/content.js.map +1 -1
  53. package/dist/internal/describe.d.ts +49 -1
  54. package/dist/internal/describe.d.ts.map +1 -1
  55. package/dist/internal/describe.js +47 -6
  56. package/dist/internal/describe.js.map +1 -1
  57. package/dist/internal/features.d.ts +73 -0
  58. package/dist/internal/features.d.ts.map +1 -0
  59. package/dist/internal/features.js +129 -0
  60. package/dist/internal/features.js.map +1 -0
  61. package/dist/internal/grant.d.ts.map +1 -1
  62. package/dist/internal/grant.js +2 -1
  63. package/dist/internal/grant.js.map +1 -1
  64. package/dist/internal/pagination.d.ts +58 -14
  65. package/dist/internal/pagination.d.ts.map +1 -1
  66. package/dist/internal/pagination.js +49 -6
  67. package/dist/internal/pagination.js.map +1 -1
  68. package/dist/internal/paths.d.ts.map +1 -1
  69. package/dist/internal/paths.js +38 -10
  70. package/dist/internal/paths.js.map +1 -1
  71. package/dist/internal/policy.d.ts +28 -0
  72. package/dist/internal/policy.d.ts.map +1 -1
  73. package/dist/internal/policy.js +31 -0
  74. package/dist/internal/policy.js.map +1 -1
  75. package/dist/internal/revoke.d.ts +11 -0
  76. package/dist/internal/revoke.d.ts.map +1 -1
  77. package/dist/internal/revoke.js +14 -1
  78. package/dist/internal/revoke.js.map +1 -1
  79. package/dist/internal/write.d.ts +10 -1
  80. package/dist/internal/write.d.ts.map +1 -1
  81. package/dist/internal/write.js +29 -4
  82. package/dist/internal/write.js.map +1 -1
  83. package/dist/types.d.ts +12 -0
  84. package/dist/types.d.ts.map +1 -1
  85. package/package.json +4 -4
@@ -42,7 +42,9 @@
42
42
  * insert (`sequence: 0`) is guarded by `If-None-Match: *`. A stale write
43
43
  * surfaces as a `PreconditionFailedError` (412) -- the lost-update guard --
44
44
  * rather than the old advisory last-writer-wins. Against a backend that does
45
- * not advertise `conditional-writes` (no ETag) it degrades to advisory.
45
+ * not advertise `conditional-writes` (no ETag) an update degrades to
46
+ * advisory, and a create-by-put is refused by the write path (the masked-404
47
+ * pre-read could otherwise silently clobber; see `upsertResource`).
46
48
  * - **Encrypted metadata.** A Resource's user-writable `custom`
47
49
  * (`name`/`tags`, via `setName`/`setTags`/`setMeta`) is
48
50
  * encrypted into an EDV Document envelope with the same `documentCipher` used
@@ -51,20 +53,24 @@
51
53
  * transparently via `meta()`.
52
54
  */
53
55
  import { base64 } from '@scure/base';
54
- import { EdvClientCore } from '@interop/edv-client';
56
+ import { EdvClientCore, assertDocId } from '@interop/edv-client';
55
57
  import { EncryptionError, IntegrityError, KeyUnwrapError, ValidationError } from '../errors.js';
56
58
  import { readEtag } from '../internal/conditional.js';
57
59
  import { resolveEpochKeys } from './epochKeys.js';
58
60
  import { didKeyResolver } from './epochCrypto.js';
59
- import { isBlob, isTextContentType, readJsonData, resolvePayload } from '../internal/content.js';
60
- import { DEFAULT_CONTENT_TYPE, ENCODER, envelopeBytes } from './constants.js';
61
+ import { ENCODER, isBlob, isTextContentType, readJsonData, resolvePayload } from '../internal/content.js';
62
+ import { DEFAULT_CONTENT_TYPE, envelopeBytes } from './constants.js';
61
63
  /**
62
64
  * Default ceiling for a single-document (unchunked) encrypted binary or text
63
- * write, measured in raw (pre-base64) bytes. Past this a `Blob`/`Uint8Array` is
64
- * rejected until chunked encrypted blobs are supported. 5 MiB; binary inflates
65
- * ~33% under base64, text is stored verbatim.
65
+ * write, measured in raw (pre-base64) bytes. Past this a `Blob`/`Uint8Array`
66
+ * is rejected with guidance toward the chunked-stream path. 512 KiB: the
67
+ * envelope is stored as a JSON-family content type routed through the server's
68
+ * in-memory JSON body parser (a ~1 MiB cap), and a binary payload inflates
69
+ * ~33% inside the document (base64) and again ~33% in the JWE ciphertext
70
+ * (base64url) -- ~1.78x total, so 512 KiB raw stays safely under the cap.
71
+ * Raise `maxBlobBytes` against a server with a larger JSON body limit.
66
72
  */
67
- const DEFAULT_MAX_BLOB_BYTES = 5 * 1024 * 1024;
73
+ const DEFAULT_MAX_BLOB_BYTES = 512 * 1024;
68
74
  /**
69
75
  * A shared strict UTF-8 decoder used to test whether a non-JSON payload is
70
76
  * valid UTF-8 (so it can be stored legibly as text rather than base64).
@@ -75,41 +81,33 @@ const DEFAULT_MAX_BLOB_BYTES = 5 * 1024 * 1024;
75
81
  * instance is reused.
76
82
  */
77
83
  const UTF8_DECODER = new TextDecoder('utf-8', { fatal: true, ignoreBOM: true });
78
- /**
79
- * Heuristic for an EDV document id: multibase base58btc (leading `z`) of a
80
- * 128-bit value. Used to reject human-readable ids on `put()`. Deliberately a
81
- * loose, dependency-free check (base58 charset, leading `z`, minimum length) --
82
- * it rejects ids with human separators (`.`/`-`/`_`/spaces) and is not a full
83
- * decode-and-length verification.
84
- */
85
- const EDV_DOC_ID = /^z[1-9A-HJ-NP-Za-km-z]{21,}$/;
86
- /**
87
- * The exact messages `@interop/minimal-cipher` / `@interop/edv-client` throw
88
- * when a candidate key simply does not open an envelope -- a wrong or rotated
89
- * key, not a corrupted one. `'Decryption failed.'` is the null-CEK unwrap path
90
- * (the key could not unwrap the content-encryption key); `'No matching
91
- * recipient found ...'` is the earlier kid-mismatch. These are the only two
92
- * decrypt failures the `_decrypt` loop treats as "try the next key". Any OTHER
93
- * decrypt failure means the key DID select a recipient and unwrap, but the
94
- * content's AEAD tag did not verify -- a data-integrity failure (WebCrypto's
95
- * `OperationError` in browsers, Node's "unable to authenticate data") -- which
96
- * must surface as an {@link IntegrityError}, not be masked as a key miss.
97
- */
98
- const KEY_MISS_MESSAGES = new Set([
99
- 'Decryption failed.',
100
- 'No matching recipient found for key agreement key.'
101
- ]);
102
84
  /**
103
85
  * Whether a decrypt error means "this candidate key does not open the envelope"
104
86
  * (so the loop should try the next key) rather than an integrity failure. True
105
- * only for the closed set of {@link KEY_MISS_MESSAGES}; every other error is
106
- * treated as an integrity failure and surfaces immediately.
87
+ * for the upstream typed key-miss error -- `@interop/minimal-cipher` /
88
+ * `@interop/edv-client` raise a `KeyMissError` (the null-CEK unwrap path and the
89
+ * kid-mismatch path) when a candidate key is simply the wrong or a rotated key,
90
+ * not a corrupted envelope. It is matched by `err.name === 'KeyMissError'`
91
+ * rather than `instanceof`: name-dispatch survives pnpm installing two copies of
92
+ * the cipher package (a second copy's `KeyMissError` is a distinct class but
93
+ * carries the same `name`), so was-client need not import the class at all.
94
+ *
95
+ * Also true for a {@link KeyUnwrapError} raised by a candidate itself -- a lazy
96
+ * epoch key whose recipient entry turned out corrupt when its first decrypt
97
+ * forced the unwrap (see `lazyEpochKey`): that says nothing about the stored
98
+ * envelope, so the loop must move on to the next candidate rather than report
99
+ * tampering. Every other error means the key DID select a recipient and unwrap,
100
+ * but the content's AEAD tag did not verify -- a data-integrity failure
101
+ * (WebCrypto's `OperationError` in browsers, Node's "unable to authenticate
102
+ * data") -- which must surface as an {@link IntegrityError}, not be masked as a
103
+ * key miss.
107
104
  *
108
105
  * @param err {unknown}
109
106
  * @returns {boolean}
110
107
  */
111
108
  function isKeyMiss(err) {
112
- return err instanceof Error && KEY_MISS_MESSAGES.has(err.message);
109
+ return (err instanceof KeyUnwrapError ||
110
+ (err instanceof Error && err.name === 'KeyMissError'));
113
111
  }
114
112
  /**
115
113
  * A {@link ResourceCodec} that encrypts on write and decrypts on read using an
@@ -120,6 +118,13 @@ export class EdvCodec {
120
118
  conditionalWrites = true;
121
119
  _edv;
122
120
  _writeKey;
121
+ /**
122
+ * The static JWE recipient descriptor every write encrypts to (the write
123
+ * key's `{ kid, alg }` header; the ephemeral `epk` is minted later inside
124
+ * `encrypt`). Deterministic per codec, so computed once here instead of per
125
+ * write.
126
+ */
127
+ _recipients;
123
128
  _readKeys;
124
129
  _writeEpoch;
125
130
  _contentType;
@@ -149,6 +154,8 @@ export class EdvCodec {
149
154
  constructor({ edv, keyAgreementKey, readKeys, writeEpoch, contentType, maxBlobBytes, idDerivation }) {
150
155
  this._edv = edv;
151
156
  this._writeKey = keyAgreementKey;
157
+ this._recipients =
158
+ edv.documentCipher.createDefaultRecipients(keyAgreementKey);
152
159
  this._readKeys = readKeys ?? [keyAgreementKey];
153
160
  this._writeEpoch = writeEpoch;
154
161
  this._contentType = contentType;
@@ -159,10 +166,19 @@ export class EdvCodec {
159
166
  * @inheritdoc
160
167
  */
161
168
  async encode({ id, data, contentType, current }) {
162
- if (id !== undefined && !EDV_DOC_ID.test(id)) {
163
- throw new ValidationError(`Cannot write a human-readable id "${id}" to an encrypted collection ` +
164
- '-- it would leak onto the URL. Use add() to mint an EDV document ' +
165
- 'id, or carry the human-readable label inside the encrypted content.');
169
+ if (id !== undefined) {
170
+ try {
171
+ // A full multibase decode + multihash length check (the same assertion
172
+ // the EDV core applies), tighter than a charset heuristic: it rejects a
173
+ // human-readable id, which would otherwise leak onto the URL.
174
+ assertDocId(id);
175
+ }
176
+ catch {
177
+ throw new ValidationError(`Cannot write a human-readable id "${id}" to an encrypted ` +
178
+ 'collection -- it would leak onto the URL. Use add() to mint an ' +
179
+ 'EDV document id, or carry the human-readable label inside the ' +
180
+ 'encrypted content.');
181
+ }
166
182
  }
167
183
  // `add()` (no caller id): mint a random id up front, or -- in `'content'`
168
184
  // mode -- leave it unset and stamp the content-derived id after encryption
@@ -184,7 +200,6 @@ export class EdvCodec {
184
200
  priorDoc = read;
185
201
  }
186
202
  const { documentCipher } = this._edv;
187
- const recipients = documentCipher.createDefaultRecipients(this._writeKey);
188
203
  const encrypted = await documentCipher.encrypt({
189
204
  doc: {
190
205
  ...(docId !== undefined && { id: docId }),
@@ -195,7 +210,7 @@ export class EdvCodec {
195
210
  meta,
196
211
  ...(priorDoc && { sequence: priorDoc.sequence })
197
212
  },
198
- recipients,
213
+ recipients: this._recipients,
199
214
  keyResolver: this._edv.keyResolver,
200
215
  hmac: undefined,
201
216
  update: priorDoc !== null
@@ -220,8 +235,10 @@ export class EdvCodec {
220
235
  // conditional-writes feature (the ETag is absent). A fresh insert's
221
236
  // `If-None-Match: *` needs no server-provided validator and so is emitted
222
237
  // unconditionally by design -- it expresses the insert's intent
223
- // (create-only-if-absent); a backend that does not honor it simply ignores
224
- // it, leaving the write harmless rather than degraded.
238
+ // (create-only-if-absent). A backend that does not honor it would ignore
239
+ // it, so the write path refuses the insert-after-null-pre-read up front
240
+ // on such a backend (see `upsertResource`) -- a masked-404 pre-read must
241
+ // not silently overwrite an existing document there.
225
242
  ...(priorDoc
226
243
  ? { ifMatch: readEtag(current ?? null) }
227
244
  : { ifNoneMatch: true }),
@@ -312,7 +329,6 @@ export class EdvCodec {
312
329
  */
313
330
  async encodeMeta({ custom }) {
314
331
  const { documentCipher } = this._edv;
315
- const recipients = documentCipher.createDefaultRecipients(this._writeKey);
316
332
  // The document needs an EDV id (the cipher asserts one on decrypt). It is
317
333
  // opaque to the server -- carried inside the un-decryptable envelope -- and
318
334
  // minted fresh each write, since the metadata envelope is never updated in
@@ -320,7 +336,7 @@ export class EdvCodec {
320
336
  const id = (await this._edv.generateId());
321
337
  const encrypted = await documentCipher.encrypt({
322
338
  doc: { id, content: custom },
323
- recipients,
339
+ recipients: this._recipients,
324
340
  keyResolver: this._edv.keyResolver,
325
341
  hmac: undefined
326
342
  });
@@ -532,8 +548,10 @@ const EDV_SCHEME = 'edv';
532
548
  * defaults to `application/json`. Pass `JOSE_CONTENT_TYPE`
533
549
  * (`application/jose+json`) against a server that registers an
534
550
  * `application/*+json` parser.
535
- * @param [options.maxBlobBytes] {number} single-document binary cap (default
536
- * 5 MiB)
551
+ * @param [options.maxBlobBytes] {number} single-document binary cap in raw
552
+ * bytes (default 512 KiB, sized so the encrypted envelope stays under a
553
+ * server's ~1 MiB JSON body cap; raise it against a server with a larger
554
+ * limit)
537
555
  * @param [options.idDerivation] {string} how `add()` mints a document id.
538
556
  * `'random'` (default) is the classic mutable-document model: a random
539
557
  * `generateId()` id, updated in place via `sequence`. `'content'` derives the
@@ -557,6 +575,12 @@ export function createEdvEncryption({ resolveKeys, contentType = DEFAULT_CONTENT
557
575
  if (!resolved) {
558
576
  return null;
559
577
  }
578
+ // Single-key collection (no epochs on the marker): the wallet's own
579
+ // key-agreement key encrypts and decrypts directly.
580
+ let keyAgreementKey = resolved.keyAgreementKey;
581
+ let keyResolver = resolved.keyResolver;
582
+ let readKeys;
583
+ let writeEpoch;
560
584
  // Multi-recipient (key-epoch) collection: resolve the reader's per-epoch
561
585
  // keys from the marker -- the `currentEpoch` key pair for writes, every
562
586
  // epoch key it can unwrap for reads -- and drive the cipher with those.
@@ -571,30 +595,18 @@ export function createEdvEncryption({ resolveKeys, contentType = DEFAULT_CONTENT
571
595
  // Epoch keys are self-describing did:key key-agreement keys, so a
572
596
  // resource's recipient (the epoch public key) resolves through the
573
597
  // standard did:key resolver, independent of the reader's own keystore.
574
- const edv = new EdvClientCore({
575
- keyAgreementKey: epochKeys.writeKey,
576
- keyResolver: didKeyResolver
577
- });
578
- return new EdvCodec({
579
- edv,
580
- keyAgreementKey: epochKeys.writeKey,
581
- readKeys: epochKeys.readKeys,
582
- writeEpoch: epochKeys.writeEpoch,
583
- contentType,
584
- maxBlobBytes,
585
- idDerivation
586
- });
598
+ keyAgreementKey = epochKeys.writeKey;
599
+ keyResolver = didKeyResolver;
600
+ readKeys = epochKeys.readKeys;
601
+ writeEpoch = epochKeys.writeEpoch;
587
602
  }
588
603
  }
589
- // Single-key collection (no epochs on the marker): the wallet's own
590
- // key-agreement key encrypts and decrypts directly, unchanged.
591
- const edv = new EdvClientCore({
592
- keyAgreementKey: resolved.keyAgreementKey,
593
- keyResolver: resolved.keyResolver
594
- });
604
+ const edv = new EdvClientCore({ keyAgreementKey, keyResolver });
595
605
  return new EdvCodec({
596
606
  edv,
597
- keyAgreementKey: resolved.keyAgreementKey,
607
+ keyAgreementKey,
608
+ readKeys,
609
+ writeEpoch,
598
610
  contentType,
599
611
  maxBlobBytes,
600
612
  idDerivation
@@ -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":"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"}
@@ -36,7 +36,9 @@
36
36
  * `/{id}/chunks/{n}` sub-segment (the server's `chunked-streams` affordance),
37
37
  * storing the chunk object as an opaque JSON body -- so `EdvClientCore.insert({
38
38
  * stream })` / `getStream` drive chunked encrypted blobs over a WAS server
39
- * unchanged.
39
+ * unchanged. Both chunk methods are gated on the backend advertising
40
+ * `chunked-streams` (throwing `NotSupportedError` when it is absent), like
41
+ * `find` is on `blinded-index-query`.
40
42
  * `insert` uses an atomic `If-None-Match: *` create when the backend
41
43
  * advertises the optional `conditional-writes` feature; otherwise (and for
42
44
  * `update`) writes are advisory -- the EDV `sequence` is not enforced
@@ -57,7 +59,7 @@ export declare class WasTransport extends Transport {
57
59
  readonly collectionId: string;
58
60
  readonly contentType: string;
59
61
  private readonly _was;
60
- private _backendFeaturesPromise?;
62
+ private readonly _features;
61
63
  /**
62
64
  * @param options {object}
63
65
  * @param options.was {WasClient} a WAS client holding the signer
@@ -96,42 +98,6 @@ export declare class WasTransport extends Transport {
96
98
  * @returns {Promise<HttpResponse>}
97
99
  */
98
100
  private _put;
99
- /**
100
- * The feature tokens the collection's backend advertises in its "Collection
101
- * Backend Selected" descriptor (e.g. `conditional-writes`,
102
- * `blinded-index-query`). Memoized once it produces a definitive answer: a
103
- * successful read (including one that lists no features) and a definitive
104
- * "endpoint absent" (`404` / `405` / `501`) both resolve to a cached feature
105
- * list, so every affordance gate falls closed against a server that has no
106
- * backend descriptors.
107
- *
108
- * A transient/ambiguous failure (network error, timeout, `401`, `429`, other
109
- * `5xx`) is NOT cached: the memo is cleared so the next call re-probes, and
110
- * the error is rethrown so the caller fails loud rather than silently
111
- * degrading atomicity against a server that may well be capable. (A single
112
- * transient failure must not poison the transport for its lifetime.)
113
- *
114
- * @returns {Promise<string[]>}
115
- */
116
- private _backendFeatures;
117
- /**
118
- * Reads and parses the backend descriptor once. On a definitive answer
119
- * (success, or a `404` / `405` / `501` that means the endpoint is legitimately
120
- * absent) resolves the feature list, which `_backendFeatures` then caches. On
121
- * a transient failure, clears the memo (so the next call re-probes) and
122
- * rethrows.
123
- *
124
- * @returns {Promise<string[]>}
125
- */
126
- private _probeBackendFeatures;
127
- /**
128
- * Whether the collection's backend advertises the optional
129
- * `conditional-writes` feature, so `insert` can use an atomic
130
- * `If-None-Match: *` create instead of the advisory existence-check path.
131
- *
132
- * @returns {Promise<boolean>}
133
- */
134
- private _conditionalWrites;
135
101
  /**
136
102
  * @inheritdoc
137
103
  *
@@ -187,6 +153,16 @@ export declare class WasTransport extends Transport {
187
153
  get({ id }?: {
188
154
  id?: string;
189
155
  }): 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;
190
166
  /**
191
167
  * Resolves to `true` if a resource exists at the document's path, via a
192
168
  * bodiless `HEAD` (the stored envelope is not needed, only its existence). A
@@ -249,9 +225,11 @@ export declare class WasTransport extends Transport {
249
225
  * `PUT` as an opaque binary body ({@link CHUNK_CONTENT_TYPE}) to the chunk's
250
226
  * own URL (`.../chunks/{index}`), signed like every other write. The server
251
227
  * stores the bytes verbatim -- it never parses the chunk -- so any
252
- * client-side crypto framing is transparent to it. The parent Resource must
253
- * already exist (`EdvClientCore.insert`/`update` writes the document envelope
254
- * before draining the stream), so a 404 here surfaces as a `NotFoundError`.
228
+ * client-side crypto framing is transparent to it. Requires the backend's
229
+ * `chunked-streams` affordance (throws `NotSupportedError` when it is
230
+ * absent). The parent Resource must already exist
231
+ * (`EdvClientCore.insert`/`update` writes the document envelope before
232
+ * draining the stream), so a 404 here surfaces as a `NotFoundError`.
255
233
  *
256
234
  * @param options {object}
257
235
  * @param options.docId {string} the owning document id (= WAS resource id)
@@ -267,9 +245,10 @@ export declare class WasTransport extends Transport {
267
245
  *
268
246
  * Reads one encrypted chunk back by index, `GET`ting the chunk's own URL and
269
247
  * parsing the opaque body (stored as raw bytes, so parsed client-side) back
270
- * into the EDV chunk object the decrypt stream consumes. A missing chunk
271
- * (404) surfaces as a `NotFoundError` (the name `EdvClientCore` expects), so
272
- * a reassembling reader can distinguish it.
248
+ * into the EDV chunk object the decrypt stream consumes. Requires the
249
+ * backend's `chunked-streams` affordance (throws `NotSupportedError` when it
250
+ * is absent). A missing chunk (404) surfaces as a `NotFoundError` (the name
251
+ * `EdvClientCore` expects), so a reassembling reader can distinguish it.
273
252
  *
274
253
  * @param options {object}
275
254
  * @param options.docId {string} the owning document id
@@ -1 +1 @@
1
- {"version":3,"file":"WasTransport.d.ts","sourceRoot":"","sources":["../../src/edv/WasTransport.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;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;AAShD,OAAO,EAGL,iBAAiB,EAClB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAE,iBAAiB,EAAE,CAAA;AAyB5B;;;GAGG;AACH,KAAK,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;AA8B9C,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;IAE5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,uBAAuB,CAAC,CAAmB;IAEnD;;;;;;;;;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;IAQD;;;;;;;;OAQG;IACH,OAAO,CAAC,aAAa;IAIrB;;;;;;;;;;OAUG;YACW,IAAI;IAclB;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;;;;;;;OAQG;YACW,qBAAqB;IA0BnC;;;;;;OAMG;YACW,kBAAkB;IAIhC;;;;;;;;;;;;;;;;OAgBG;IACY,MAAM,CAAC,EACpB,SAAS,EACV,GAAE;QAAE,SAAS,CAAC,EAAE,kBAAkB,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAkD1D;;;;;;;;;;;;;;;;;;OAkBG;IACY,MAAM,CAAC,EACpB,SAAS,EACV,GAAE;QAAE,SAAS,CAAC,EAAE,kBAAkB,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA6B1D;;;;;;;;;OASG;IACY,GAAG,CAAC,EACjB,EAAE,EACH,GAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAuBrD;;;;;;;OAOG;YACW,OAAO;IAYrB;;;;;;;;;;;;;;;;;;;;OAoBG;IACY,IAAI,CAAC,EAAE,KAAK,EAAE,GAAE;QAAE,KAAK,CAAC,EAAE,SAAS,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAyC3E;;;;;;;;;OASG;IACY,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC;IAU5C;;;;;;;;OAQG;IACH,OAAO,CAAC,UAAU;IAIlB;;;;;;;;;;;;;;;;OAgBG;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;IA4B7D;;;;;;;;;;;;;OAaG;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;CA2BrE"}
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;IAE5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAE3C;;;;;;;;;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;IAkBD;;;;;;;;OAQG;IACH,OAAO,CAAC,aAAa;IAIrB;;;;;;;;;;OAUG;YACW,IAAI;IAclB;;;;;;;;;;;;;;;;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;IAkBrD;;;;;;;;OAQG;YACW,eAAe;IAW7B;;;;;;;OAOG;YACW,OAAO;IAYrB;;;;;;;;;;;;;;;;;;;;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;IAU5C;;;;;;;;OAQG;IACH,OAAO,CAAC,UAAU;IAIlB;;;;;;;;;;;;;;;;;;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"}