@interop/was-client 0.99.0 → 0.99.1

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 (56) hide show
  1. package/README.md +4 -1
  2. package/dist/WasClient.d.ts +3 -4
  3. package/dist/WasClient.d.ts.map +1 -1
  4. package/dist/WasClient.js +4 -9
  5. package/dist/WasClient.js.map +1 -1
  6. package/dist/edv/EdvCodec.d.ts.map +1 -1
  7. package/dist/edv/EdvCodec.js +36 -25
  8. package/dist/edv/EdvCodec.js.map +1 -1
  9. package/dist/edv/cipher.d.ts +6 -3
  10. package/dist/edv/cipher.d.ts.map +1 -1
  11. package/dist/edv/cipher.js +6 -3
  12. package/dist/edv/cipher.js.map +1 -1
  13. package/dist/edv/core.d.ts +1 -1
  14. package/dist/edv/core.d.ts.map +1 -1
  15. package/dist/edv/core.js +1 -1
  16. package/dist/edv/core.js.map +1 -1
  17. package/dist/edv/docCipher.d.ts +4 -2
  18. package/dist/edv/docCipher.d.ts.map +1 -1
  19. package/dist/edv/docCipher.js +6 -3
  20. package/dist/edv/docCipher.js.map +1 -1
  21. package/dist/edv/epochCrypto.d.ts +12 -4
  22. package/dist/edv/epochCrypto.d.ts.map +1 -1
  23. package/dist/edv/epochCrypto.js +37 -10
  24. package/dist/edv/epochCrypto.js.map +1 -1
  25. package/dist/edv/epochKeys.d.ts +6 -2
  26. package/dist/edv/epochKeys.d.ts.map +1 -1
  27. package/dist/edv/epochKeys.js +25 -14
  28. package/dist/edv/epochKeys.js.map +1 -1
  29. package/dist/edv/hmacKey.d.ts +7 -1
  30. package/dist/edv/hmacKey.d.ts.map +1 -1
  31. package/dist/edv/hmacKey.js +9 -3
  32. package/dist/edv/hmacKey.js.map +1 -1
  33. package/dist/edv/index.d.ts +1 -1
  34. package/dist/edv/index.d.ts.map +1 -1
  35. package/dist/edv/index.js +1 -1
  36. package/dist/edv/index.js.map +1 -1
  37. package/dist/edv/recipients.d.ts.map +1 -1
  38. package/dist/edv/recipients.js +2 -0
  39. package/dist/edv/recipients.js.map +1 -1
  40. package/dist/errors.d.ts +6 -4
  41. package/dist/errors.d.ts.map +1 -1
  42. package/dist/errors.js +6 -4
  43. package/dist/errors.js.map +1 -1
  44. package/dist/internal/memo.d.ts +13 -4
  45. package/dist/internal/memo.d.ts.map +1 -1
  46. package/dist/internal/memo.js +18 -7
  47. package/dist/internal/memo.js.map +1 -1
  48. package/dist/internal/pagination.d.ts +30 -15
  49. package/dist/internal/pagination.d.ts.map +1 -1
  50. package/dist/internal/pagination.js +31 -17
  51. package/dist/internal/pagination.js.map +1 -1
  52. package/dist/sync/index.d.ts +4 -2
  53. package/dist/sync/index.d.ts.map +1 -1
  54. package/dist/sync/index.js +4 -2
  55. package/dist/sync/index.js.map +1 -1
  56. package/package.json +4 -4
package/dist/errors.js CHANGED
@@ -193,10 +193,12 @@ export class KeyUnwrapError extends EncryptionError {
193
193
  /**
194
194
  * A fail-closed integrity error: a stored EDV envelope this reader DOES hold a
195
195
  * key for failed to authenticate on decrypt -- its AEAD tag did not verify, so
196
- * the ciphertext is corrupt or has been tampered with -- or a stored body does
197
- * not verify against the resource id it was read under (an envelope bound to
198
- * another resource, or a content-addressed document whose content id differs
199
- * from its resource id). Distinct from
196
+ * the ciphertext is corrupt or has been tampered with -- or a descriptor
197
+ * recipient entry addressed to this reader (its `kid` is this reader's own key
198
+ * id) failed its AES-KW integrity check, or a stored body does not verify
199
+ * against the resource id it was read under (an envelope bound to another
200
+ * resource, or a content-addressed document whose content id differs from its
201
+ * resource id). Distinct from
200
202
  * {@link KeyUnwrapError}: that is the read/membership axis ("no key for this
201
203
  * epoch"), whereas this is a data-integrity failure by a legitimate recipient.
202
204
  * A subtype of {@link EncryptionError}, so existing `catch (EncryptionError)`
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
@@ -8,21 +8,30 @@
8
8
  * properties: concurrent callers share one round-trip, a rejection is not
9
9
  * cached (so the next call retries rather than replaying a stale failure), and
10
10
  * a reset drops whatever is held. Written once here so the three cannot drift
11
- * apart, which they had.
11
+ * apart, which they had. A user whose input cannot change under it may name
12
+ * the rejections it wants kept, so a permanent failure is raised once and then
13
+ * replayed instead of re-attempted.
12
14
  */
13
15
  /**
14
16
  * A memo of one lazily-resolved value. Holds the in-flight promise so
15
17
  * concurrent callers share a single resolution, drops it on rejection so a
16
- * transient failure does not permanently poison the memo, and exposes
17
- * {@link Memo.reset} for when the underlying answer is known to have changed.
18
+ * transient failure does not permanently poison the memo (unless `retain`
19
+ * claims that rejection), and exposes {@link Memo.reset} for when the
20
+ * underlying answer is known to have changed.
18
21
  */
19
22
  export declare class Memo<T> {
20
23
  #private;
21
24
  /**
22
25
  * @param resolve {function} resolves a fresh value; re-invoked after a
23
26
  * rejection or a `reset()`, else called at most once
27
+ * @param [options] {object}
28
+ * @param [options.retain] {function} given a rejection's reason, whether
29
+ * to keep that rejection memoized (a failure a retry cannot change);
30
+ * default: keep none
24
31
  */
25
- constructor(resolve: () => Promise<T>);
32
+ constructor(resolve: () => Promise<T>, { retain }?: {
33
+ retain?: (err: unknown) => boolean;
34
+ });
26
35
  /**
27
36
  * Whether a resolution is already held -- in flight or settled. Lets a caller
28
37
  * tell, synchronously and before calling {@link Memo.get}, whether its own
@@ -1 +1 @@
1
- {"version":3,"file":"memo.d.ts","sourceRoot":"","sources":["../../src/internal/memo.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;GAQG;AAEH;;;;;GAKG;AACH,qBAAa,IAAI,CAAC,CAAC;;IAIjB;;;OAGG;gBACS,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC;IAIrC;;;;;;OAMG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;OAIG;IACH,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC;IAiBjB;;;;OAIG;IACH,KAAK,IAAI,IAAI;CAGd"}
1
+ {"version":3,"file":"memo.d.ts","sourceRoot":"","sources":["../../src/internal/memo.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;GAUG;AAEH;;;;;;GAMG;AACH,qBAAa,IAAI,CAAC,CAAC;;IAKjB;;;;;;;OAOG;gBAED,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACzB,EAAE,MAAoB,EAAE,GAAE;QAAE,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAA;KAAO;IAMvE;;;;;;OAMG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;OAIG;IACH,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC;IAmBjB;;;;OAIG;IACH,KAAK,IAAI,IAAI;CAGd"}
@@ -8,23 +8,32 @@
8
8
  * properties: concurrent callers share one round-trip, a rejection is not
9
9
  * cached (so the next call retries rather than replaying a stale failure), and
10
10
  * a reset drops whatever is held. Written once here so the three cannot drift
11
- * apart, which they had.
11
+ * apart, which they had. A user whose input cannot change under it may name
12
+ * the rejections it wants kept, so a permanent failure is raised once and then
13
+ * replayed instead of re-attempted.
12
14
  */
13
15
  /**
14
16
  * A memo of one lazily-resolved value. Holds the in-flight promise so
15
17
  * concurrent callers share a single resolution, drops it on rejection so a
16
- * transient failure does not permanently poison the memo, and exposes
17
- * {@link Memo.reset} for when the underlying answer is known to have changed.
18
+ * transient failure does not permanently poison the memo (unless `retain`
19
+ * claims that rejection), and exposes {@link Memo.reset} for when the
20
+ * underlying answer is known to have changed.
18
21
  */
19
22
  export class Memo {
20
23
  #promise;
21
24
  #resolve;
25
+ #retain;
22
26
  /**
23
27
  * @param resolve {function} resolves a fresh value; re-invoked after a
24
28
  * rejection or a `reset()`, else called at most once
29
+ * @param [options] {object}
30
+ * @param [options.retain] {function} given a rejection's reason, whether
31
+ * to keep that rejection memoized (a failure a retry cannot change);
32
+ * default: keep none
25
33
  */
26
- constructor(resolve) {
34
+ constructor(resolve, { retain = () => false } = {}) {
27
35
  this.#resolve = resolve;
36
+ this.#retain = retain;
28
37
  }
29
38
  /**
30
39
  * Whether a resolution is already held -- in flight or settled. Lets a caller
@@ -48,10 +57,12 @@ export class Memo {
48
57
  const promise = this.#resolve();
49
58
  // Memoize the in-flight promise so concurrent callers share one round-trip,
50
59
  // but drop it on rejection so a transient failure does not permanently
51
- // poison the memo. The identity guard avoids clobbering a newer promise.
60
+ // poison the memo. A rejection `retain` claims stays, so the next `get()`
61
+ // replays it rather than paying for an attempt that can only fail the same
62
+ // way. The identity guard avoids clobbering a newer promise.
52
63
  this.#promise = promise;
53
- promise.catch(() => {
54
- if (this.#promise === promise) {
64
+ promise.catch((err) => {
65
+ if (this.#promise === promise && !this.#retain(err)) {
55
66
  this.#promise = undefined;
56
67
  }
57
68
  });
@@ -1 +1 @@
1
- {"version":3,"file":"memo.js","sourceRoot":"","sources":["../../src/internal/memo.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;GAQG;AAEH;;;;;GAKG;AACH,MAAM,OAAO,IAAI;IACf,QAAQ,CAAa;IACZ,QAAQ,CAAkB;IAEnC;;;OAGG;IACH,YAAY,OAAyB;QACnC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;IACzB,CAAC;IAED;;;;;;OAMG;IACH,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAA;IACpC,CAAC;IAED;;;;OAIG;IACH,GAAG;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,QAAQ,CAAA;QACtB,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QAC/B,4EAA4E;QAC5E,uEAAuE;QACvE,yEAAyE;QACzE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;QACvB,OAAO,CAAC,KAAK,CAAC,GAAS,EAAE;YACvB,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;gBAC9B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAA;YAC3B,CAAC;QACH,CAAC,CAAC,CAAA;QACF,OAAO,OAAO,CAAA;IAChB,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAA;IAC3B,CAAC;CACF"}
1
+ {"version":3,"file":"memo.js","sourceRoot":"","sources":["../../src/internal/memo.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;GAUG;AAEH;;;;;;GAMG;AACH,MAAM,OAAO,IAAI;IACf,QAAQ,CAAa;IACZ,QAAQ,CAAkB;IAC1B,OAAO,CAA2B;IAE3C;;;;;;;OAOG;IACH,YACE,OAAyB,EACzB,EAAE,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,KAA6C,EAAE;QAErE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;QACvB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;IACvB,CAAC;IAED;;;;;;OAMG;IACH,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAA;IACpC,CAAC;IAED;;;;OAIG;IACH,GAAG;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,QAAQ,CAAA;QACtB,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QAC/B,4EAA4E;QAC5E,uEAAuE;QACvE,0EAA0E;QAC1E,2EAA2E;QAC3E,6DAA6D;QAC7D,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;QACvB,OAAO,CAAC,KAAK,CAAC,CAAC,GAAY,EAAQ,EAAE;YACnC,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpD,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAA;YAC3B,CAAC;QACH,CAAC,CAAC,CAAA;QACF,OAAO,OAAO,CAAA;IAChB,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAA;IAC3B,CAAC;CACF"}
@@ -19,7 +19,8 @@
19
19
  * The helpers are generic over the listing envelope, so they serve all three
20
20
  * paginated WAS listings: List Collection items (`CollectionResourcesList`),
21
21
  * List Collections (`CollectionsList`), and List Spaces (`SpaceListing`). Each
22
- * envelope shares the `{ items, next? }` shape the traversal relies on.
22
+ * envelope shares the `{ items, next?, totalItems? }` shape (`PageEnvelope`)
23
+ * that the traversal and the aggregation rely on.
23
24
  */
24
25
  import type { CollectionResourcesList, IZcap, ResourceSummary } from '../types.js';
25
26
  import type { ClientContext } from './request.js';
@@ -30,18 +31,22 @@ import type { ClientContext } from './request.js';
30
31
  */
31
32
  export declare const DEFAULT_MAX_PAGES = 10000;
32
33
  /**
33
- * The shared shape of every paginated listing envelope: an `items` array and an
34
- * optional `next` continuation URL. The traversal core only ever touches these
35
- * two fields, so it works uniformly across the concrete listing types.
34
+ * The shared shape of every paginated listing envelope: an `items` array, an
35
+ * optional `next` continuation URL, and the whole listing's `totalItems` count
36
+ * (required on some listing types upstream, optional on others). The traversal
37
+ * core only touches `items` and `next`; `collectPages` also sets `totalItems`.
36
38
  */
37
39
  type PageEnvelope = {
38
40
  items: unknown[];
39
41
  next?: string;
42
+ totalItems?: number;
40
43
  };
41
44
  /**
42
45
  * The first page (already read) plus the means to fetch each following page.
43
46
  * The `fetchPage` callback fetches a single page by absolute URL, returning
44
- * `null` if it is missing/unauthorized (which ends the traversal).
47
+ * `null` if it is missing/unauthorized. A `null` first page makes the walk
48
+ * itself `null`; a `null` page mid-walk fails the walk, since a `next` the
49
+ * server handed out has to resolve.
45
50
  */
46
51
  export interface PageWalk<T extends PageEnvelope = CollectionResourcesList> {
47
52
  first: T;
@@ -85,33 +90,43 @@ export declare function signedPageWalk<T extends PageEnvelope = CollectionResour
85
90
  /**
86
91
  * Lazily walks a list response page by page, yielding the first page and then
87
92
  * each page reached by following `next`. Each `next` is resolved relative to the
88
- * URL of the page that produced it, and a self-referential or already-seen
89
- * `next` ends the traversal defensively rather than looping forever. Yields one
90
- * page at a time, so a consumer can stop early without fetching the rest.
93
+ * URL of the page that produced it. Yields one page at a time, so a consumer
94
+ * can stop early without fetching the rest.
91
95
  *
92
- * A `next` outside the first page's origin or base path, a `next` carrying a
93
- * username or password, or a walk that would
94
- * exceed `maxPages` pages, fails with a `WasServerError` naming the listing URL
95
- * instead of fetching.
96
+ * The walk either reaches the server's end-of-list signal (a page with no
97
+ * `next`) or fails. A `next` outside the first page's origin or base path, a
98
+ * `next` carrying a username or password, a `next` pointing at an already-seen
99
+ * page (a cycle), a page that walks past `maxPages`, or a followed page that
100
+ * comes back `null` (missing/unauthorized) each fail with a `WasServerError`
101
+ * naming the listing URL. Ending silently on any of these would hand the
102
+ * consumer a short listing it cannot tell from a complete one.
96
103
  *
97
104
  * @param walk {PageWalk<T>}
98
105
  * @param [options] {object}
99
106
  * @param [options.maxPages] {number} the most pages to yield, counting the
100
107
  * first (defaults to {@link DEFAULT_MAX_PAGES})
101
108
  * @returns {AsyncGenerator<T>}
102
- * @throws {WasServerError} when `next` leaves the listing or the bound is hit
109
+ * @throws {WasServerError} when `next` leaves the listing, repeats a page, or
110
+ * fails to resolve, or when the page bound is hit
103
111
  */
104
112
  export declare function walkPages<T extends PageEnvelope = CollectionResourcesList>(walk: PageWalk<T>, { maxPages }?: {
105
113
  maxPages?: number;
106
114
  }): AsyncGenerator<T>;
107
115
  /**
108
116
  * Eagerly follows every `next` link, aggregating all pages' items into a single
109
- * envelope shaped like the first page (with `next` dropped, since the whole list
110
- * has been collected). Buffers the entire collection in memory; for a large
117
+ * envelope shaped like the first page, with `next` dropped since the whole list
118
+ * has been collected. Buffers the entire collection in memory; for a large
111
119
  * collection prefer `walkPages` (one page at a time) or an item iterator.
112
120
  *
121
+ * `totalItems` on the aggregate is always the count of the collected items.
122
+ * The server's value is not used, since a paginating server may omit it on a
123
+ * truncated page and the first page's value may be stale by the time the last
124
+ * page is read. The count is sound because `walkPages` either completes the
125
+ * listing or throws.
126
+ *
113
127
  * @param walk {PageWalk<T>}
114
128
  * @returns {Promise<T>}
129
+ * @throws {WasServerError} when the walk cannot complete the listing
115
130
  */
116
131
  export declare function collectPages<T extends PageEnvelope = CollectionResourcesList>(walk: PageWalk<T>): Promise<T>;
117
132
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../src/internal/pagination.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EACV,uBAAuB,EACvB,KAAK,EACL,eAAe,EAChB,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAKjD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,QAAS,CAAA;AAEvC;;;;GAIG;AACH,KAAK,YAAY,GAAG;IAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAEvD;;;;GAIG;AACH,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,YAAY,GAAG,uBAAuB;IACxE,KAAK,EAAE,CAAC,CAAA;IACR,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;CAC9C;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CACjC,CAAC,SAAS,YAAY,GAAG,uBAAuB,EAChD,EACA,QAAQ,EACR,SAAS,EACV,EAAE;IACD,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;CACpC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAG9B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,cAAc,CAClC,CAAC,SAAS,YAAY,GAAG,uBAAuB,EAEhD,OAAO,EAAE,aAAa,EACtB,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,KAAK,CAAA;CAAE,GACjE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAQ7B;AA8DD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAuB,SAAS,CAC9B,CAAC,SAAS,YAAY,GAAG,uBAAuB,EAEhD,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EACjB,EAAE,QAA4B,EAAE,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAC3D,cAAc,CAAC,CAAC,CAAC,CAmCnB;AAED;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAChC,CAAC,SAAS,YAAY,GAAG,uBAAuB,EAChD,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAe/B;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,CAAC,SAAS,YAAY,GAAG,uBAAuB,EAChD,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAE7C;AAED;;;;;;;;GAQG;AACH,wBAAuB,gBAAgB,CACrC,CAAC,SAAS,YAAY,GAAG,uBAAuB,EAChD,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,CAI7C;AAED;;;;;;;GAOG;AACH,wBAAuB,SAAS,CAC9B,KAAK,EAAE,aAAa,CAAC,uBAAuB,CAAC,GAC5C,cAAc,CAAC,eAAe,CAAC,CAIjC"}
1
+ {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../src/internal/pagination.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EACV,uBAAuB,EACvB,KAAK,EACL,eAAe,EAChB,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAKjD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,QAAS,CAAA;AAEvC;;;;;GAKG;AACH,KAAK,YAAY,GAAG;IAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAE5E;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,YAAY,GAAG,uBAAuB;IACxE,KAAK,EAAE,CAAC,CAAA;IACR,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;CAC9C;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CACjC,CAAC,SAAS,YAAY,GAAG,uBAAuB,EAChD,EACA,QAAQ,EACR,SAAS,EACV,EAAE;IACD,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;CACpC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAG9B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,cAAc,CAClC,CAAC,SAAS,YAAY,GAAG,uBAAuB,EAEhD,OAAO,EAAE,aAAa,EACtB,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,KAAK,CAAA;CAAE,GACjE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAQ7B;AA8DD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAuB,SAAS,CAC9B,CAAC,SAAS,YAAY,GAAG,uBAAuB,EAEhD,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EACjB,EAAE,QAA4B,EAAE,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAC3D,cAAc,CAAC,CAAC,CAAC,CA6CnB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,YAAY,CAChC,CAAC,SAAS,YAAY,GAAG,uBAAuB,EAChD,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAe/B;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,CAAC,SAAS,YAAY,GAAG,uBAAuB,EAChD,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAE7C;AAED;;;;;;;;GAQG;AACH,wBAAuB,gBAAgB,CACrC,CAAC,SAAS,YAAY,GAAG,uBAAuB,EAChD,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,CAI7C;AAED;;;;;;;GAOG;AACH,wBAAuB,SAAS,CAC9B,KAAK,EAAE,aAAa,CAAC,uBAAuB,CAAC,GAC5C,cAAc,CAAC,eAAe,CAAC,CAIjC"}
@@ -90,21 +90,24 @@ function resolveNext({ next, baseUrl, firstUrl }) {
90
90
  /**
91
91
  * Lazily walks a list response page by page, yielding the first page and then
92
92
  * each page reached by following `next`. Each `next` is resolved relative to the
93
- * URL of the page that produced it, and a self-referential or already-seen
94
- * `next` ends the traversal defensively rather than looping forever. Yields one
95
- * page at a time, so a consumer can stop early without fetching the rest.
93
+ * URL of the page that produced it. Yields one page at a time, so a consumer
94
+ * can stop early without fetching the rest.
96
95
  *
97
- * A `next` outside the first page's origin or base path, a `next` carrying a
98
- * username or password, or a walk that would
99
- * exceed `maxPages` pages, fails with a `WasServerError` naming the listing URL
100
- * instead of fetching.
96
+ * The walk either reaches the server's end-of-list signal (a page with no
97
+ * `next`) or fails. A `next` outside the first page's origin or base path, a
98
+ * `next` carrying a username or password, a `next` pointing at an already-seen
99
+ * page (a cycle), a page that walks past `maxPages`, or a followed page that
100
+ * comes back `null` (missing/unauthorized) each fail with a `WasServerError`
101
+ * naming the listing URL. Ending silently on any of these would hand the
102
+ * consumer a short listing it cannot tell from a complete one.
101
103
  *
102
104
  * @param walk {PageWalk<T>}
103
105
  * @param [options] {object}
104
106
  * @param [options.maxPages] {number} the most pages to yield, counting the
105
107
  * first (defaults to {@link DEFAULT_MAX_PAGES})
106
108
  * @returns {AsyncGenerator<T>}
107
- * @throws {WasServerError} when `next` leaves the listing or the bound is hit
109
+ * @throws {WasServerError} when `next` leaves the listing, repeats a page, or
110
+ * fails to resolve, or when the page bound is hit
108
111
  */
109
112
  export async function* walkPages(walk, { maxPages = DEFAULT_MAX_PAGES } = {}) {
110
113
  const { first, fetchPage } = walk;
@@ -114,24 +117,28 @@ export async function* walkPages(walk, { maxPages = DEFAULT_MAX_PAGES } = {}) {
114
117
  // an explicit default port) would let a next-link back to page 1 defeat the
115
118
  // guard and yield its items twice.
116
119
  const firstUrl = new URL(walk.firstUrl);
120
+ const listingUrl = firstUrl.toString();
117
121
  yield first;
118
- const seen = new Set([firstUrl.toString()]);
122
+ const seen = new Set([listingUrl]);
119
123
  let pageCount = 1;
120
- let baseUrl = firstUrl.toString();
124
+ let baseUrl = listingUrl;
121
125
  let next = first.next;
122
126
  while (next) {
123
127
  const pageUrl = resolveNext({ next, baseUrl, firstUrl });
124
128
  if (seen.has(pageUrl)) {
125
- break;
129
+ throw new WasServerError(`The listing at "${listingUrl}" served a \`next\` link ` +
130
+ `("${pageUrl}") back to a page already walked.`, { requestUrl: listingUrl });
126
131
  }
127
132
  if (pageCount >= maxPages) {
128
- throw new WasServerError(`The listing at "${firstUrl.toString()}" did not end within ` +
129
- `${maxPages} pages.`, { requestUrl: firstUrl.toString() });
133
+ throw new WasServerError(`The listing at "${listingUrl}" did not end within ` +
134
+ `${maxPages} pages.`, { requestUrl: listingUrl });
130
135
  }
131
136
  seen.add(pageUrl);
132
137
  const page = await fetchPage(pageUrl);
133
138
  if (page === null) {
134
- break;
139
+ throw new WasServerError(`The listing at "${listingUrl}" served a \`next\` link ` +
140
+ `("${pageUrl}") that answered with no listing (missing or ` +
141
+ 'unauthorized).', { requestUrl: pageUrl });
135
142
  }
136
143
  pageCount += 1;
137
144
  yield page;
@@ -141,12 +148,19 @@ export async function* walkPages(walk, { maxPages = DEFAULT_MAX_PAGES } = {}) {
141
148
  }
142
149
  /**
143
150
  * Eagerly follows every `next` link, aggregating all pages' items into a single
144
- * envelope shaped like the first page (with `next` dropped, since the whole list
145
- * has been collected). Buffers the entire collection in memory; for a large
151
+ * envelope shaped like the first page, with `next` dropped since the whole list
152
+ * has been collected. Buffers the entire collection in memory; for a large
146
153
  * collection prefer `walkPages` (one page at a time) or an item iterator.
147
154
  *
155
+ * `totalItems` on the aggregate is always the count of the collected items.
156
+ * The server's value is not used, since a paginating server may omit it on a
157
+ * truncated page and the first page's value may be stale by the time the last
158
+ * page is read. The count is sound because `walkPages` either completes the
159
+ * listing or throws.
160
+ *
148
161
  * @param walk {PageWalk<T>}
149
162
  * @returns {Promise<T>}
163
+ * @throws {WasServerError} when the walk cannot complete the listing
150
164
  */
151
165
  export async function collectPages(walk) {
152
166
  let aggregate;
@@ -160,7 +174,7 @@ export async function collectPages(walk) {
160
174
  }
161
175
  }
162
176
  // `walkPages` always yields `first`, so `aggregate` is set here.
163
- const result = { ...aggregate, items };
177
+ const result = { ...aggregate, items, totalItems: items.length };
164
178
  delete result.next;
165
179
  return result;
166
180
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/internal/pagination.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/internal/pagination.ts"],"names":[],"mappings":"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"}
@@ -42,8 +42,10 @@
42
42
  * (`KeyUnwrapError`: the epoch is on the descriptor but this reader holds no
43
43
  * key for it, so a refresh cannot help). So is the tamper signal
44
44
  * (`IntegrityError`: the stored body does not verify against the resource id
45
- * it was read under). `EncryptionError`, the fail-closed umbrella both
46
- * `KeyUnwrapError` and `IntegrityError` fall under, rides along. So does the
45
+ * it was read under, an envelope a held key opened fails its AEAD check, or
46
+ * the recipient entry addressed to this reader fails its key-wrap check).
47
+ * `EncryptionError`, the fail-closed umbrella both `KeyUnwrapError` and
48
+ * `IntegrityError` fall under, rides along. So does the
47
49
  * affordance gate (`NotSupportedError`), a permanent refusal raised before any
48
50
  * request: by a guarded write whose pinned read returned no `ETag` validator
49
51
  * (`/log`, `/edv`, and the client's own content-addressed store), and by a
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,WAAW,CAAA;AAIlB,OAAO,EACL,UAAU,IAAI,WAAW,EACzB,YAAY,EACZ,iBAAiB,EAClB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AACzE,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,eAAe,EACf,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,cAAc,CAAA;AAErB,YAAY,EACV,IAAI,EACJ,cAAc,EACd,OAAO,EACP,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,UAAU,EACV,WAAW,EACX,SAAS,EACV,MAAM,YAAY,CAAA;AAMnB,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAC1E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,WAAW,CAAA;AAIlB,OAAO,EACL,UAAU,IAAI,WAAW,EACzB,YAAY,EACZ,iBAAiB,EAClB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AACzE,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,eAAe,EACf,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,cAAc,CAAA;AAErB,YAAY,EACV,IAAI,EACJ,cAAc,EACd,OAAO,EACP,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,UAAU,EACV,WAAW,EACX,SAAS,EACV,MAAM,YAAY,CAAA;AAMnB,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAC1E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA"}
@@ -42,8 +42,10 @@
42
42
  * (`KeyUnwrapError`: the epoch is on the descriptor but this reader holds no
43
43
  * key for it, so a refresh cannot help). So is the tamper signal
44
44
  * (`IntegrityError`: the stored body does not verify against the resource id
45
- * it was read under). `EncryptionError`, the fail-closed umbrella both
46
- * `KeyUnwrapError` and `IntegrityError` fall under, rides along. So does the
45
+ * it was read under, an envelope a held key opened fails its AEAD check, or
46
+ * the recipient entry addressed to this reader fails its key-wrap check).
47
+ * `EncryptionError`, the fail-closed umbrella both `KeyUnwrapError` and
48
+ * `IntegrityError` fall under, rides along. So does the
47
49
  * affordance gate (`NotSupportedError`), a permanent refusal raised before any
48
50
  * request: by a guarded write whose pinned read returned no `ETag` validator
49
51
  * (`/log`, `/edv`, and the client's own content-addressed store), and by a
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,WAAW,CAAA;AAClB,sEAAsE;AACtE,6EAA6E;AAC7E,SAAS;AACT,OAAO,EACL,UAAU,IAAI,WAAW,EACzB,YAAY,EACZ,iBAAiB,EAClB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AACzE,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,eAAe,EACf,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,cAAc,CAAA;AAmBrB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,WAAW,CAAA;AAClB,sEAAsE;AACtE,6EAA6E;AAC7E,SAAS;AACT,OAAO,EACL,UAAU,IAAI,WAAW,EACzB,YAAY,EACZ,iBAAiB,EAClB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AACzE,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,eAAe,EACf,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,cAAc,CAAA;AAmBrB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@interop/was-client",
3
3
  "description": "A developer-friendly client for Wallet Attached Storage (WAS) servers.",
4
- "version": "0.99.0",
4
+ "version": "0.99.1",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "build": "pnpm run clear && tsc",
@@ -83,11 +83,11 @@
83
83
  "@interop/capability-agent": "^0.2.2",
84
84
  "@interop/data-integrity-core": "^8.9.0",
85
85
  "@interop/ed25519-signature": "^7.2.5",
86
- "@interop/edv-client": "^17.9.3",
86
+ "@interop/edv-client": "^17.9.4",
87
87
  "@interop/ezcap": "^7.5.4",
88
88
  "@interop/http-client": "^1.0.5",
89
- "@interop/minimal-cipher": "^7.11.0",
90
- "@interop/storage-core": "^0.39.0",
89
+ "@interop/minimal-cipher": "^7.11.1",
90
+ "@interop/storage-core": "^0.41.0",
91
91
  "@interop/vh-resource-log": "^0.9.0",
92
92
  "@interop/x25519-key-agreement-key": "^5.4.3",
93
93
  "@noble/hashes": "^2.3.0",