@interop/was-client 0.78.0 → 0.80.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 (55) hide show
  1. package/README.md +23 -11
  2. package/dist/Resource.d.ts +9 -0
  3. package/dist/Resource.d.ts.map +1 -1
  4. package/dist/Resource.js +10 -2
  5. package/dist/Resource.js.map +1 -1
  6. package/dist/codec.d.ts +8 -6
  7. package/dist/codec.d.ts.map +1 -1
  8. package/dist/codec.js.map +1 -1
  9. package/dist/edv/EdvCodec.d.ts +55 -4
  10. package/dist/edv/EdvCodec.d.ts.map +1 -1
  11. package/dist/edv/EdvCodec.js +255 -55
  12. package/dist/edv/EdvCodec.js.map +1 -1
  13. package/dist/edv/WasTransport.d.ts +11 -1
  14. package/dist/edv/WasTransport.d.ts.map +1 -1
  15. package/dist/edv/WasTransport.js +18 -3
  16. package/dist/edv/WasTransport.js.map +1 -1
  17. package/dist/edv/cipher.d.ts +6 -1
  18. package/dist/edv/cipher.d.ts.map +1 -1
  19. package/dist/edv/cipher.js +5 -0
  20. package/dist/edv/cipher.js.map +1 -1
  21. package/dist/edv/core.d.ts +2 -2
  22. package/dist/edv/core.d.ts.map +1 -1
  23. package/dist/edv/core.js +1 -1
  24. package/dist/edv/core.js.map +1 -1
  25. package/dist/edv/docCipher.d.ts +56 -7
  26. package/dist/edv/docCipher.d.ts.map +1 -1
  27. package/dist/edv/docCipher.js +17 -10
  28. package/dist/edv/docCipher.js.map +1 -1
  29. package/dist/edv/index.d.ts +2 -2
  30. package/dist/edv/index.d.ts.map +1 -1
  31. package/dist/edv/index.js +1 -1
  32. package/dist/edv/index.js.map +1 -1
  33. package/dist/edv/refreshingDocCipher.d.ts +6 -5
  34. package/dist/edv/refreshingDocCipher.d.ts.map +1 -1
  35. package/dist/edv/refreshingDocCipher.js +72 -51
  36. package/dist/edv/refreshingDocCipher.js.map +1 -1
  37. package/dist/internal/conditional.d.ts +25 -2
  38. package/dist/internal/conditional.d.ts.map +1 -1
  39. package/dist/internal/conditional.js +33 -2
  40. package/dist/internal/conditional.js.map +1 -1
  41. package/dist/internal/write.d.ts +14 -4
  42. package/dist/internal/write.d.ts.map +1 -1
  43. package/dist/internal/write.js +82 -19
  44. package/dist/internal/write.js.map +1 -1
  45. package/dist/sync/index.d.ts +1 -1
  46. package/dist/sync/index.d.ts.map +1 -1
  47. package/dist/sync/index.js +1 -1
  48. package/dist/sync/index.js.map +1 -1
  49. package/dist/sync/port.d.ts +8 -1
  50. package/dist/sync/port.d.ts.map +1 -1
  51. package/dist/sync/port.js +31 -13
  52. package/dist/sync/port.js.map +1 -1
  53. package/dist/sync/types.d.ts +41 -16
  54. package/dist/sync/types.d.ts.map +1 -1
  55. package/package.json +2 -2
@@ -67,9 +67,9 @@
67
67
  * served into a resource's.
68
68
  */
69
69
  import { base64, base64urlnopad } from '@scure/base';
70
- import { EdvClientCore, assertDocId } from '@interop/edv-client/core';
70
+ import { EdvClientCore, Transport, assertDocId } from '@interop/edv-client/core';
71
71
  import { EMPTY_INDEX_SCHEMA, assertQueryAttributes } from '../internal/indexSchema.js';
72
- import { EncryptionError, IntegrityError, KeyUnwrapError, NotSupportedError, UnknownEpochError, ValidationError } from '../errors.js';
72
+ import { ConflictError, EncryptionError, IntegrityError, KeyUnwrapError, NotFoundError, NotSupportedError, PreconditionFailedError, QuotaExceededError, UnknownEpochError, ValidationError } from '../errors.js';
73
73
  import { blobBytes } from '../internal/blob.js';
74
74
  import { readEtag, writeHeaders } from '../internal/conditional.js';
75
75
  import { isEncryptedEnvelope } from '../sync/envelope.js';
@@ -307,7 +307,8 @@ export class EdvCodec {
307
307
  * into each envelope's `was.v` (defaults to {@link EDV_SCHEME_VERSION})
308
308
  * @param [options.transportFactory] {CodecTransportFactory} builds the
309
309
  * transport the chunked-stream path drives; omitted by a build with no
310
- * server behind it, which then refuses that path
310
+ * server behind it, which then refuses the chunked write and reads a
311
+ * chunked document only from a `chunkSource`
311
312
  * @param options.collectionId {string} the Collection this codec reads and
312
313
  * writes: bound into the Collection metadata envelope's `was.collection`
313
314
  * (and checked on read), and it labels decrypt-routing errors
@@ -562,8 +563,10 @@ export class EdvCodec {
562
563
  throw new NotSupportedError(`Collection "${this.#collectionId}" has no server behind it: this ` +
563
564
  'codec was built for a local replica and holds no route to address ' +
564
565
  'a document and its chunk resources with. Chunked encrypted blobs ' +
565
- 'can only be read and written through a Collection handle bound to ' +
566
- 'a Space, or read through a DocCipher built with its `spaceId`.');
566
+ 'can only be written through a Collection handle bound to a Space. ' +
567
+ 'Read one through such a handle, through a DocCipher built with ' +
568
+ 'its `spaceId`, or by passing a `chunkSource` to the DocCipher ' +
569
+ '`decrypt` in place of a request context.');
567
570
  }
568
571
  return this.#transportFactory({ context, documentHeaders });
569
572
  }
@@ -583,15 +586,21 @@ export class EdvCodec {
583
586
  * payload, so that discriminator is what the read side routes on: a server
584
587
  * cannot mint it, and cannot suppress it to hide the chunks either.
585
588
  *
589
+ * The write is a create-if-absent: the first document write carries
590
+ * `If-None-Match: *`, so the plan also serves a write by id (`put()`) at an
591
+ * id that holds no document yet. A 412 there surfaces as the
592
+ * `PreconditionFailedError` the request path raised.
593
+ *
586
594
  * The write is two-phase (`EdvClientCore.insert` writes the document, then
587
- * streams the chunks), so a failure partway leaves a document stub whose
588
- * sealed stream state is still `{ pending: true }` -- undecryptable, listed,
589
- * and never re-used, since a retry mints a fresh id. The plan therefore
590
- * compensates: if the document was written and the write then failed, it
591
- * best-effort deletes the stub before rethrowing.
595
+ * streams the chunks), so a failure partway leaves a pending stub: a
596
+ * document whose sealed stream state is still `{ pending: true }`,
597
+ * undecryptable and listed. The plan therefore compensates: if the document
598
+ * was written and the write then failed, it best-effort deletes the stub
599
+ * before rethrowing. A stub that survives (the process died, or the cleanup
600
+ * failed) is recognized with {@link isPendingStub}.
592
601
  *
593
602
  * @param options {object}
594
- * @param options.id {string} the minted document id
603
+ * @param options.id {string} the document id (minted, or the caller's)
595
604
  * @param options.stream {ReadableStream<Uint8Array>} the payload, as the
596
605
  * stream the EDV core re-chunks (never buffered whole by this codec)
597
606
  * @param options.meta {Record<string, unknown>} the document meta to seal
@@ -603,8 +612,9 @@ export class EdvCodec {
603
612
  id,
604
613
  resourceContentType: meta.contentType,
605
614
  // What the scheme-agnostic write path appends when it refuses this plan
606
- // for a write by id: only this codec knows why the payload needs several
607
- // requests, and which low-level API writes one directly.
615
+ // for a write by id over an existing document: only this codec knows
616
+ // why the payload needs several requests, and which low-level API
617
+ // writes one directly.
608
618
  guidance: 'This payload is too large for a single encrypted document, so it is ' +
609
619
  'stored as a document plus chunk resources. Drive the write yourself ' +
610
620
  'with `EdvClientCore.update({ doc, stream, transport })` over a ' +
@@ -639,37 +649,80 @@ export class EdvCodec {
639
649
  }
640
650
  /**
641
651
  * Compensates a failed chunked write and builds the error to rethrow. The
642
- * document stub is deleted only when the transport reports it actually wrote
643
- * one: a write that failed before that (the id is freshly minted, so this is
644
- * a server or network failure, not a collision) must not delete a resource
645
- * this write never created. The delete is best effort -- it is a cleanup, and
646
- * its own failure must not mask the failure that caused it -- so its outcome
647
- * only shapes the message.
652
+ * pending stub is deleted only when the transport reports it actually wrote
653
+ * one: a write that failed before that (an id already taken, or a server or
654
+ * network failure) must not delete a resource this write never created. The
655
+ * delete is conditional on the stub's `ETag`, so it never removes a document
656
+ * another writer stored at the id since. It is best effort -- it is a
657
+ * cleanup, and its own failure must not mask the failure that caused it --
658
+ * so its outcome only shapes the message. Deleting the document deletes the
659
+ * chunks already stored under it.
660
+ *
661
+ * Three failures keep their own type, so a caller can dispatch on them as it
662
+ * does for a single-request write. A 412 on the first document write (the
663
+ * id is taken) or on the final document update (another writer replaced the
664
+ * stub in between) is rethrown as a `PreconditionFailedError`; the latter
665
+ * deletes nothing, since the stored document is no longer this write's. A
666
+ * 409 (a `unique: true` blinded attribute already held by another document)
667
+ * is rethrown as a `ConflictError`, and a 507 as a `QuotaExceededError`,
668
+ * after the cleanup. Every other failure after the document write becomes
669
+ * an {@link EncryptionError}.
648
670
  *
649
671
  * @param options {object}
650
672
  * @param options.err {unknown} the failure from the chunked write
651
- * @param options.id {string} the document id the write minted
673
+ * @param options.id {string} the document id the write targeted
652
674
  * @param options.transport {WasTransport} the transport the write ran on
653
675
  * @returns {Promise<Error>} the error to throw, carrying `err` as its cause
676
+ * when it wraps it
654
677
  */
655
678
  async #chunkedWriteFailed({ err, id, transport }) {
656
- if (transport.lastDocumentWrite === undefined) {
657
- return err instanceof Error ? err : new Error(String(err));
679
+ // The transport rethrows a 412 or 409 as the named error the EDV core
680
+ // dispatches on, with the typed HTTP error as its cause.
681
+ const httpError = err instanceof Error &&
682
+ (err.cause instanceof PreconditionFailedError ||
683
+ err.cause instanceof ConflictError)
684
+ ? err.cause
685
+ : err;
686
+ const written = transport.lastDocumentWrite;
687
+ if (written === undefined) {
688
+ return httpError instanceof Error ? httpError : new Error(String(err));
689
+ }
690
+ if (httpError instanceof PreconditionFailedError) {
691
+ const { status, type, title, details, requestUrl } = httpError;
692
+ return new PreconditionFailedError(`The chunked encrypted write of resource "${id}" lost a race: ` +
693
+ 'another writer replaced its document before the final update, ' +
694
+ 'so that document was left in place. Re-read it before writing ' +
695
+ 'again.', { status, type, title, details, requestUrl, cause: err });
658
696
  }
697
+ let outcome = 'The incomplete document and any chunks stored under it were deleted.';
659
698
  let removed = true;
660
699
  try {
661
- await transport.deleteDocument({ id });
700
+ await transport.deleteDocument({ id, ifMatch: written.etag });
662
701
  }
663
- catch {
702
+ catch (deleteErr) {
664
703
  removed = false;
704
+ outcome =
705
+ deleteErr instanceof PreconditionFailedError
706
+ ? 'Another writer has since replaced the document, so it was left ' +
707
+ 'in place.'
708
+ : 'The incomplete document could NOT be deleted and is still ' +
709
+ 'stored; delete it before writing again.';
710
+ }
711
+ if (httpError instanceof QuotaExceededError ||
712
+ httpError instanceof ConflictError) {
713
+ const { status, type, title, details, requestUrl } = httpError;
714
+ const reason = httpError instanceof QuotaExceededError
715
+ ? 'ran out of storage quota partway'
716
+ : 'collided with another document on a unique indexed attribute';
717
+ const ErrorClass = httpError instanceof QuotaExceededError
718
+ ? QuotaExceededError
719
+ : ConflictError;
720
+ return new ErrorClass(`The chunked encrypted write of resource "${id}" ${reason}. ${outcome}`, { status, type, title, details, requestUrl, cause: err });
665
721
  }
666
722
  return new EncryptionError(`The chunked encrypted write of resource "${id}" failed partway: its ` +
667
- 'document was written but its chunks were not, so the stored ' +
668
- 'document cannot be read. ' +
669
- (removed
670
- ? 'The incomplete document was deleted; retry the write.'
671
- : 'The incomplete document could NOT be deleted and is still ' +
672
- 'stored; delete it and retry the write.'), { cause: err });
723
+ 'document was written, but a chunk or the final document update ' +
724
+ 'was not, so the stored document cannot be read. ' +
725
+ (removed ? `${outcome} Retry the write.` : outcome), { cause: err });
673
726
  }
674
727
  /**
675
728
  * The blinding key a content write should index with: the collection's key
@@ -720,8 +773,26 @@ export class EdvCodec {
720
773
  }
721
774
  /**
722
775
  * @inheritdoc
776
+ *
777
+ * A chunked document's chunks are read either through `context` (from the
778
+ * server) or from `chunkSource` (from bytes the caller holds). Passing both
779
+ * is ambiguous and refused with {@link ValidationError} before anything is
780
+ * decrypted.
781
+ *
782
+ * @param response {ResponseLike} the stored envelope
783
+ * @param [expectedId] {string} the resource id the read targeted
784
+ * @param [context] {CodecRequestContext} the signed-request context a
785
+ * chunked document's chunks are fetched through
786
+ * @param [chunkSource] {ChunkSource} serves a chunked document's chunks in
787
+ * place of `context`
788
+ * @returns {Promise<Json | Blob>}
723
789
  */
724
- async decode(response, expectedId, context) {
790
+ async decode(response, expectedId, context, chunkSource) {
791
+ if (context !== undefined && chunkSource !== undefined) {
792
+ throw new ValidationError('Cannot decode this resource: both a request context and a ' +
793
+ '`chunkSource` were supplied, so it is ambiguous where a chunked ' +
794
+ "document's chunks come from. Pass one or the other.");
795
+ }
725
796
  const stored = await readJsonData(response);
726
797
  const decrypted = await this.#openEnvelope({ doc: stored, expectedId });
727
798
  // A chunked document's bytes live in its chunk resources. Both routing
@@ -746,21 +817,52 @@ export class EdvCodec {
746
817
  chunks: decrypted.stream?.chunks,
747
818
  meta: decrypted.meta,
748
819
  keyId: decrypted.keyId,
749
- context
820
+ binding: decrypted.binding,
821
+ context,
822
+ chunkSource
750
823
  });
751
824
  }
752
825
  return this.#fromDocument(decrypted.content, decrypted.meta);
753
826
  }
827
+ /**
828
+ * Whether a stored envelope is a pending stub: the document a chunked write
829
+ * leaves behind when it stops between its first document write and its final
830
+ * update (the process died, or the cleanup delete failed). Its sealed
831
+ * `meta.encoding` names the chunked encoding, and its sealed stream state is
832
+ * still `{ pending: true }` with no chunk count, so no read can open it.
833
+ *
834
+ * The answer rests only on AEAD-authenticated state: the envelope is opened
835
+ * and its binding verified against `expectedId` exactly as {@link decode}
836
+ * does, and a failure there propagates. A caller that finds a pending stub
837
+ * may delete the resource (which deletes any chunks stored under it) and
838
+ * write it again.
839
+ *
840
+ * @param response {ResponseLike} the stored envelope
841
+ * @param expectedId {string} the resource id the envelope was read under
842
+ * @returns {Promise<boolean>}
843
+ */
844
+ async isPendingStub(response, expectedId) {
845
+ const stored = await readJsonData(response);
846
+ const decrypted = await this.#openEnvelope({ doc: stored, expectedId });
847
+ const stream = decrypted.stream;
848
+ return (decrypted.meta?.encoding === CHUNKED_ENCODING &&
849
+ stream?.pending === true &&
850
+ typeof stream.chunks !== 'number');
851
+ }
754
852
  /**
755
853
  * Reassembles a chunked binary document: drives `EdvClientCore.getStream`
756
- * over a transport built from the read context, buffers the decrypt stream,
757
- * and returns the same `Blob` a small binary read returns.
854
+ * over a chunk-reading transport, buffers the decrypt stream, and returns the
855
+ * same `Blob` a small binary read returns. The chunks come from the server
856
+ * through a transport built from the read context, or from the caller's
857
+ * `chunkSource`.
758
858
  *
759
859
  * Only AEAD-authenticated inputs are trusted -- the sealed chunk count and
760
860
  * the `was.resource` id the envelope is bound to, never the envelope's
761
861
  * cleartext `id` -- and the decrypt uses the very key that opened the
762
- * document envelope, so a chunk sealed to some other epoch fails to
763
- * authenticate rather than being accepted.
862
+ * document envelope. Each chunk must also carry the envelope's own `was`
863
+ * binding in its protected header (the writer seals it into every chunk),
864
+ * so a genuine chunk of another resource, or one sealed under another
865
+ * epoch, is refused with {@link EncryptionError} before it is decrypted.
764
866
  *
765
867
  * @param options {object}
766
868
  * @param [options.id] {string} the AEAD-bound resource id (= WAS resource
@@ -769,21 +871,26 @@ export class EdvCodec {
769
871
  * @param [options.meta] {Record<string, unknown>} the decrypted meta
770
872
  * @param options.keyId {string} the id of the key that decrypted the
771
873
  * document envelope
874
+ * @param options.binding {Record<string, unknown>} the envelope's verified
875
+ * `was` binding, which every chunk must carry
772
876
  * @param [options.context] {CodecRequestContext} the signed-request context
877
+ * @param [options.chunkSource] {ChunkSource} serves the chunks in place of
878
+ * `context`
773
879
  * @returns {Promise<Blob>}
774
880
  */
775
- async #readChunked({ id, chunks, meta, keyId, context }) {
881
+ async #readChunked({ id, chunks, meta, keyId, binding, context, chunkSource }) {
776
882
  if (typeof chunks !== 'number') {
777
883
  throw new EncryptionError('Cannot read this resource: it is a chunked encrypted blob whose ' +
778
884
  'sealed stream state records no chunk count, so the write that ' +
779
885
  'created it never completed. Re-upload the blob.');
780
886
  }
781
- if (context === undefined) {
887
+ if (context === undefined && chunkSource === undefined) {
782
888
  throw new EncryptionError('Cannot read this resource: it is a chunked encrypted blob, whose ' +
783
- 'bytes live in separate chunk resources, and this caller supplied no ' +
784
- 'request context to fetch them with. Read it through a Resource or ' +
785
- 'Collection handle (`resource.get()`), which supplies one, or pass ' +
786
- "`collection.codecContext()` to the sync DocCipher's `decrypt`.");
889
+ 'bytes live in separate chunk resources, and this caller supplied ' +
890
+ 'neither a request context to fetch them with nor a `chunkSource` ' +
891
+ 'to serve them. Read it through a Resource or Collection handle ' +
892
+ "(`resource.get()`), which supplies one, or pass the sync DocCipher's " +
893
+ '`decrypt` either `collection.codecContext()` or a `chunkSource`.');
787
894
  }
788
895
  if (id === undefined) {
789
896
  throw new EncryptionError('Cannot read this resource: the stored chunked document binds no ' +
@@ -793,10 +900,25 @@ export class EdvCodec {
793
900
  "another document's chunks.");
794
901
  }
795
902
  const keyAgreementKey = this.#readKeys.find(key => key.id === keyId);
903
+ let fetchChunk;
904
+ if (chunkSource !== undefined) {
905
+ fetchChunk = async ({ docId, chunkIndex }) => {
906
+ const chunk = await chunkSource({ docId, chunkIndex });
907
+ if (chunk === undefined) {
908
+ throw new NotFoundError(`Cannot read this resource: chunk ${chunkIndex} of resource ` +
909
+ `"${docId}" is not in the chunk source.`);
910
+ }
911
+ return chunk;
912
+ };
913
+ }
914
+ else {
915
+ const network = this.#transportFor(context);
916
+ fetchChunk = options => network.getChunk(options);
917
+ }
796
918
  const stream = (await this.#edv.getStream({
797
919
  doc: { id, stream: { chunks } },
798
920
  keyAgreementKey,
799
- transport: this.#transportFor(context)
921
+ transport: new ChunkReadTransport({ fetchChunk, binding })
800
922
  }));
801
923
  const contentType = typeof meta?.contentType === 'string' ? meta.contentType : undefined;
802
924
  return streamToBlob({
@@ -820,19 +942,29 @@ export class EdvCodec {
820
942
  * is required (see {@link _verifyBinding}). Set only by a
821
943
  * {@link decodeMeta} whose caller states the Collection slot
822
944
  * @returns {Promise<object>} the decrypted document (`content`, `meta`, the
823
- * AEAD-authenticated `stream` state where one was sealed, `keyId`, and the
824
- * AEAD-bound `resourceId` the envelope declares, where it binds one)
945
+ * AEAD-authenticated `stream` state where one was sealed, `keyId`, the
946
+ * verified `was` `binding`, and the AEAD-bound `resourceId` the envelope
947
+ * declares, where it binds one)
825
948
  */
826
949
  async #openEnvelope({ doc, expectedId, collectionSlot }) {
827
950
  this.#assertEnvelope(doc, 'read');
828
951
  const decrypted = await this.#decrypt(doc);
829
- const resourceId = await this.#verifyBinding({
952
+ const binding = await this.#verifyBinding({
830
953
  jwe: doc.jwe,
831
954
  expectedId,
832
955
  collectionSlot,
833
956
  keyId: decrypted.keyId
834
957
  });
835
- return { ...decrypted, ...(resourceId !== undefined && { resourceId }) };
958
+ // The only trustworthy resource id on a stored document -- the envelope's
959
+ // top-level `id` is cleartext and server-controlled -- so a read that
960
+ // addresses anything under the document's path (the chunked-stream path)
961
+ // must use this one.
962
+ const resourceId = typeof binding.resource === 'string' ? binding.resource : undefined;
963
+ return {
964
+ ...decrypted,
965
+ binding,
966
+ ...(resourceId !== undefined && { resourceId })
967
+ };
836
968
  }
837
969
  /**
838
970
  * Decrypts a stored EDV envelope, selecting which read key to use by matching
@@ -958,13 +1090,10 @@ export class EdvCodec {
958
1090
  * Collection metadata slot
959
1091
  * @param options.keyId {string} the id of the key that decrypted, for the
960
1092
  * epoch check
961
- * @returns {Promise<string | undefined>} the verified `was.resource` id the
962
- * envelope binds, or `undefined` where it binds none (a content-derived
963
- * content envelope, or the Collection metadata slot). It is the only
964
- * trustworthy resource id on a stored document -- the envelope's top-level
965
- * `id` is cleartext and server-controlled -- so a read that addresses
966
- * anything under the document's path (the chunked-stream path) must use
967
- * this one.
1093
+ * @returns {Promise<Record<string, unknown>>} the verified `was` binding.
1094
+ * Its `resource` member, where present, is the bound resource id; it is
1095
+ * absent for a content-derived content envelope and for the Collection
1096
+ * metadata slot.
968
1097
  */
969
1098
  async #verifyBinding({ jwe, expectedId, collectionSlot, keyId }) {
970
1099
  const was = parseWasHeader(jwe);
@@ -1004,7 +1133,7 @@ export class EdvCodec {
1004
1133
  `"${decryptedEpoch}". The server replayed it under a different ` +
1005
1134
  'epoch.');
1006
1135
  }
1007
- return typeof was.resource === 'string' ? was.resource : undefined;
1136
+ return was;
1008
1137
  }
1009
1138
  /**
1010
1139
  * The slot-marker half of `#verifyBinding` for a read of the Collection
@@ -1389,6 +1518,77 @@ async function streamToBlob({ stream, type }) {
1389
1518
  }
1390
1519
  return new Blob(parts, type !== undefined ? { type } : undefined);
1391
1520
  }
1521
+ /**
1522
+ * The edv-client `Transport` a chunked read runs on. It serves only
1523
+ * `getChunk`, the one method `EdvClientCore.getStream` calls, from the fetch
1524
+ * the codec hands it: the server's chunk resources through a `WasTransport`,
1525
+ * or a caller's {@link ChunkSource}. Every other `Transport` method keeps the
1526
+ * base class's not-implemented refusal.
1527
+ *
1528
+ * Before a chunk reaches the decrypt stream, its protected-header `was`
1529
+ * binding must equal the envelope's. The writer seals the same binding into
1530
+ * the envelope and into every chunk, but the decrypt stream accepts each
1531
+ * chunk under its own header and its own wrapped key, so without this check a
1532
+ * genuine chunk of another resource would decrypt as part of this one. The
1533
+ * header is parsed before the chunk is authenticated, which is safe: a forged
1534
+ * header that matches still fails the chunk's AEAD, since the header is part
1535
+ * of its additional data.
1536
+ */
1537
+ class ChunkReadTransport extends Transport {
1538
+ #fetchChunk;
1539
+ #binding;
1540
+ /**
1541
+ * @param options {object}
1542
+ * @param options.fetchChunk {function} resolves one chunk by document id
1543
+ * and index, or throws `NotFoundError`
1544
+ * @param options.binding {Record<string, unknown>} the envelope's verified
1545
+ * `was` binding
1546
+ */
1547
+ constructor({ fetchChunk, binding }) {
1548
+ super();
1549
+ this.#fetchChunk = fetchChunk;
1550
+ this.#binding = binding;
1551
+ }
1552
+ /**
1553
+ * @inheritdoc
1554
+ *
1555
+ * @param options {object}
1556
+ * @param options.docId {string} the owning document id
1557
+ * @param options.chunkIndex {number} the chunk's 0-based index
1558
+ * @returns {Promise<IEDVChunk>}
1559
+ */
1560
+ async getChunk({ docId, chunkIndex } = {}) {
1561
+ if (docId === undefined || chunkIndex === undefined) {
1562
+ throw new TypeError('"docId" and "chunkIndex" are required.');
1563
+ }
1564
+ const chunk = await this.#fetchChunk({ docId, chunkIndex });
1565
+ const was = parseWasHeader(chunk?.jwe);
1566
+ if (was === undefined || !sameBinding(was, this.#binding)) {
1567
+ throw new EncryptionError(`Cannot read this resource: chunk ${chunkIndex} of resource ` +
1568
+ `"${docId}" is not bound to it. The \`was\` binding in the chunk's ` +
1569
+ "protected header differs from the document envelope's, so the " +
1570
+ 'chunk belongs to another resource or was sealed under another ' +
1571
+ 'key epoch.');
1572
+ }
1573
+ return chunk;
1574
+ }
1575
+ }
1576
+ /**
1577
+ * Whether two `was` bindings carry the same members with the same values. The
1578
+ * binding is a flat record of strings and numbers, so a member-by-member
1579
+ * comparison is exact, and a nested value never compares equal.
1580
+ *
1581
+ * @param left {Record<string, unknown>}
1582
+ * @param right {Record<string, unknown>}
1583
+ * @returns {boolean}
1584
+ */
1585
+ function sameBinding(left, right) {
1586
+ const leftKeys = Object.keys(left);
1587
+ if (leftKeys.length !== Object.keys(right).length) {
1588
+ return false;
1589
+ }
1590
+ return leftKeys.every(key => Object.hasOwn(right, key) && Object.is(left[key], right[key]));
1591
+ }
1392
1592
  /**
1393
1593
  * Decodes bytes as strict UTF-8, returning `null` when they are not valid UTF-8
1394
1594
  * (so the caller can fall back to base64). Uses the shared fatal decoder.
@@ -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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"}
@@ -99,10 +99,14 @@ export declare class WasTransport extends Transport {
99
99
  *
100
100
  * @param options {object}
101
101
  * @param options.id {string} the document id (= WAS resource id)
102
+ * @param [options.ifMatch] {string} the `ETag` the stored document must
103
+ * still carry, so a driver deletes only the version it wrote (a 412 means
104
+ * another writer replaced it)
102
105
  * @returns {Promise<void>}
103
106
  */
104
- deleteDocument({ id }: {
107
+ deleteDocument({ id, ifMatch }: {
105
108
  id: string;
109
+ ifMatch?: string;
106
110
  }): Promise<void>;
107
111
  /**
108
112
  * @inheritdoc
@@ -133,6 +137,12 @@ export declare class WasTransport extends Transport {
133
137
  * `unique: true` blinded attribute already held by another document), which
134
138
  * is NOT recoverable by re-fetch-and-retry; it surfaces as `DuplicateError`.
135
139
  *
140
+ * When this transport's last document write was to the same id and the
141
+ * server acked it with an `ETag`, the update is sent with `If-Match` on that
142
+ * validator. A multi-request write (a document, its chunks, then the final
143
+ * document update) thereby fails with 412 instead of silently replacing a
144
+ * document another writer stored at that id in between.
145
+ *
136
146
  * @param options {object}
137
147
  * @param options.encrypted {IEncryptedDocument} the document to update
138
148
  * @returns {Promise<void>}
@@ -1 +1 @@
1
- {"version":3,"file":"WasTransport.d.ts","sourceRoot":"","sources":["../../src/edv/WasTransport.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEpD,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EACT,kBAAkB,EACnB,MAAM,8BAA8B,CAAA;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AA+BhD;;;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;IAiB5B;;;;;;;;;;;;;OAaG;gBACS,EACV,GAAG,EACH,OAAO,EACP,YAAY,EACZ,WAAkC,EAClC,eAAe,EAChB,EAAE;QACD,GAAG,EAAE,YAAY,CAAA;QACjB,OAAO,EAAE,MAAM,CAAA;QACf,YAAY,EAAE,MAAM,CAAA;QACpB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KACzC;IASD;;;;;;;OAOG;IACH,IAAI,iBAAiB,IAAI;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAEjE;IAkDD;;;;;;;;;OASG;IACG,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D;;;;;;;;;;;;OAYG;IACY,MAAM,CAAC,EACpB,SAAS,EACV,GAAE;QAAE,SAAS,CAAC,EAAE,kBAAkB,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB1D;;;;;;;;;;;;;;;;OAgBG;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;;;;;;;;;;;;;;;;;;;;;OAqBG;IACY,IAAI,CAAC,EAAE,KAAK,EAAE,GAAE;QAAE,KAAK,CAAC,EAAE,SAAS,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IA4B3E;;;;;;;;;OASG;IACY,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC;IAqB5C;;;;;;;;;;;;;;;;;OAiBG;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;IA0B7D;;;;;;;;;;;;;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;CAyBrE"}
1
+ {"version":3,"file":"WasTransport.d.ts","sourceRoot":"","sources":["../../src/edv/WasTransport.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEpD,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EACT,kBAAkB,EACnB,MAAM,8BAA8B,CAAA;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AA+BhD;;;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;IAiB5B;;;;;;;;;;;;;OAaG;gBACS,EACV,GAAG,EACH,OAAO,EACP,YAAY,EACZ,WAAkC,EAClC,eAAe,EAChB,EAAE;QACD,GAAG,EAAE,YAAY,CAAA;QACjB,OAAO,EAAE,MAAM,CAAA;QACf,YAAY,EAAE,MAAM,CAAA;QACpB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KACzC;IASD;;;;;;;OAOG;IACH,IAAI,iBAAiB,IAAI;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAEjE;IAkDD;;;;;;;;;;;;OAYG;IACG,cAAc,CAAC,EACnB,EAAE,EACF,OAAO,EACR,EAAE;QACD,EAAE,EAAE,MAAM,CAAA;QACV,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQjB;;;;;;;;;;;;OAYG;IACY,MAAM,CAAC,EACpB,SAAS,EACV,GAAE;QAAE,SAAS,CAAC,EAAE,kBAAkB,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB1D;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACY,MAAM,CAAC,EACpB,SAAS,EACV,GAAE;QAAE,SAAS,CAAC,EAAE,kBAAkB,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB1D;;;;;;;;;OASG;IACY,GAAG,CAAC,EACjB,EAAE,EACH,GAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAkBrD;;;;;;;;;;;;;;;;;;;;;OAqBG;IACY,IAAI,CAAC,EAAE,KAAK,EAAE,GAAE;QAAE,KAAK,CAAC,EAAE,SAAS,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IA4B3E;;;;;;;;;OASG;IACY,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC;IAqB5C;;;;;;;;;;;;;;;;;OAiBG;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;IA0B7D;;;;;;;;;;;;;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;CAyBrE"}