@interop/was-client 0.8.0 → 0.9.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 (46) hide show
  1. package/README.md +59 -88
  2. package/dist/Collection.d.ts +17 -4
  3. package/dist/Collection.d.ts.map +1 -1
  4. package/dist/Collection.js +26 -10
  5. package/dist/Collection.js.map +1 -1
  6. package/dist/Resource.d.ts +12 -3
  7. package/dist/Resource.d.ts.map +1 -1
  8. package/dist/Resource.js +19 -3
  9. package/dist/Resource.js.map +1 -1
  10. package/dist/Space.d.ts +6 -1
  11. package/dist/Space.d.ts.map +1 -1
  12. package/dist/Space.js +14 -2
  13. package/dist/Space.js.map +1 -1
  14. package/dist/WasClient.d.ts +7 -3
  15. package/dist/WasClient.d.ts.map +1 -1
  16. package/dist/WasClient.js +7 -3
  17. package/dist/WasClient.js.map +1 -1
  18. package/dist/codec.d.ts +34 -13
  19. package/dist/codec.d.ts.map +1 -1
  20. package/dist/edv/EdvCodec.d.ts +21 -11
  21. package/dist/edv/EdvCodec.d.ts.map +1 -1
  22. package/dist/edv/EdvCodec.js +28 -13
  23. package/dist/edv/EdvCodec.js.map +1 -1
  24. package/dist/edv/index.d.ts +5 -4
  25. package/dist/edv/index.d.ts.map +1 -1
  26. package/dist/edv/index.js +4 -4
  27. package/dist/edv/index.js.map +1 -1
  28. package/dist/errors.d.ts +12 -0
  29. package/dist/errors.d.ts.map +1 -1
  30. package/dist/errors.js +16 -0
  31. package/dist/errors.js.map +1 -1
  32. package/dist/index.d.ts +2 -2
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +1 -1
  35. package/dist/index.js.map +1 -1
  36. package/dist/internal/codec.d.ts +14 -5
  37. package/dist/internal/codec.d.ts.map +1 -1
  38. package/dist/internal/codec.js +70 -9
  39. package/dist/internal/codec.js.map +1 -1
  40. package/dist/internal/describe.d.ts +27 -0
  41. package/dist/internal/describe.d.ts.map +1 -0
  42. package/dist/internal/describe.js +23 -0
  43. package/dist/internal/describe.js.map +1 -0
  44. package/dist/types.d.ts +26 -1
  45. package/dist/types.d.ts.map +1 -1
  46. package/package.json +2 -2
@@ -1,4 +1,5 @@
1
1
  import { prepareBody, parseResource } from './content.js';
2
+ import { EncryptionError } from '../errors.js';
2
3
  /**
3
4
  * The default codec: passes plaintext through unchanged. `encode` echoes the
4
5
  * caller's `id` (so `put(id, ...)` is a `PUT` and `add(...)`, with no id, stays
@@ -22,23 +23,83 @@ export const identityCodec = {
22
23
  }
23
24
  };
24
25
  /**
25
- * Resolves the codec for a collection. Returns {@link identityCodec} unless an
26
- * {@link EncryptionProvider} is injected and returns a codec for the collection
27
- * (i.e. the client holds keys for it). No backend round-trip: whether a
28
- * collection is encrypted is a client/key concern, not a backend capability.
26
+ * Resolves the codec for a collection by deciding policy (override > marker >
27
+ * plaintext) and then, when encrypted, building the encrypting codec from the
28
+ * keystore. Fails closed: a collection declared encrypted (by override or
29
+ * marker) for which no codec can be built throws {@link EncryptionError} rather
30
+ * than falling back to {@link identityCodec}.
29
31
  *
30
32
  * @param context {ClientContext}
31
33
  * @param options {object}
32
34
  * @param options.spaceId {string}
33
35
  * @param options.collectionId {string}
36
+ * @param [options.override] {EncryptionOverride} per-handle override; wins
37
+ * over the marker and skips the marker read
38
+ * @param options.readMarker {function} lazily reads the Collection's declared
39
+ * `encryption` marker (resolves `undefined` for plaintext / missing); called
40
+ * only when there is no override and the client has a keystore
34
41
  * @returns {Promise<ResourceCodec>}
35
42
  */
36
- export async function resolveCodec(context, { spaceId, collectionId }) {
37
- const provider = context.encryption;
38
- if (!provider) {
43
+ export async function resolveCodec(context, { spaceId, collectionId, override, readMarker }) {
44
+ // 1. A per-handle override wins and skips the marker read.
45
+ if (override !== undefined) {
46
+ if (override === 'plaintext') {
47
+ return identityCodec;
48
+ }
49
+ return buildEncryptingCodec(context, {
50
+ spaceId,
51
+ collectionId,
52
+ scheme: override.scheme,
53
+ keys: override.keys
54
+ });
55
+ }
56
+ // 2. A plaintext-only client (no keystore) never encrypts; no round-trip.
57
+ if (!context.encryption) {
58
+ return identityCodec;
59
+ }
60
+ // 3. Otherwise the Collection's declared marker decides.
61
+ const marker = await readMarker();
62
+ if (!marker) {
39
63
  return identityCodec;
40
64
  }
41
- const codec = await provider.resolveCodec({ spaceId, collectionId });
42
- return codec ?? identityCodec;
65
+ return buildEncryptingCodec(context, {
66
+ spaceId,
67
+ collectionId,
68
+ scheme: marker.scheme
69
+ });
70
+ }
71
+ /**
72
+ * Builds the encrypting codec for a collection known to be encrypted, failing
73
+ * closed: throws {@link EncryptionError} when no keystore is configured or it
74
+ * returns no codec (no keys / unhandled scheme), so an encrypted collection is
75
+ * never silently read/written as plaintext.
76
+ *
77
+ * @param context {ClientContext}
78
+ * @param options {object}
79
+ * @param options.spaceId {string}
80
+ * @param options.collectionId {string}
81
+ * @param options.scheme {string}
82
+ * @param [options.keys] {unknown} override-supplied key material
83
+ * @returns {Promise<ResourceCodec>}
84
+ */
85
+ async function buildEncryptingCodec(context, { spaceId, collectionId, scheme, keys }) {
86
+ const where = `${spaceId}/${collectionId}`;
87
+ if (!context.encryption) {
88
+ throw new EncryptionError(`Collection ${where} is encrypted (scheme "${scheme}") but this client ` +
89
+ 'has no encryption provider. Construct the WasClient with an ' +
90
+ '`encryption` provider (see @interop/was-client/edv).');
91
+ }
92
+ const codec = await context.encryption.codecFor({
93
+ spaceId,
94
+ collectionId,
95
+ scheme,
96
+ keys
97
+ });
98
+ if (!codec) {
99
+ throw new EncryptionError(`Collection ${where} is encrypted (scheme "${scheme}") but this client ` +
100
+ 'holds no keys for it (or does not handle the scheme). Supply keys via ' +
101
+ 'your keystore (resolveKeys) or a per-handle encryption override.');
102
+ }
103
+ return codec;
43
104
  }
44
105
  //# sourceMappingURL=codec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"codec.js","sourceRoot":"","sources":["../../src/internal/codec.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAGzD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,oBAAoB,EAAE,IAAI;IAE1B,KAAK,CAAC,MAAM,CAAC,EACX,EAAE,EACF,IAAI,EACJ,WAAW,EAKZ;QACC,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;QACjE,OAAO;YACL,EAAE;YACF,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;SAClC,CAAA;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAsB;QACjC,OAAO,CAAC,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAgB,CAAA;IACvD,CAAC;CACF,CAAA;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAsB,EACtB,EAAE,OAAO,EAAE,YAAY,EAA6C;IAEpE,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAA;IACnC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,aAAa,CAAA;IACtB,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAA;IACpE,OAAO,KAAK,IAAI,aAAa,CAAA;AAC/B,CAAC"}
1
+ {"version":3,"file":"codec.js","sourceRoot":"","sources":["../../src/internal/codec.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAO9C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,oBAAoB,EAAE,IAAI;IAE1B,KAAK,CAAC,MAAM,CAAC,EACX,EAAE,EACF,IAAI,EACJ,WAAW,EAKZ;QACC,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;QACjE,OAAO;YACL,EAAE;YACF,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;SAClC,CAAA;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAsB;QACjC,OAAO,CAAC,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAgB,CAAA;IACvD,CAAC;CACF,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAsB,EACtB,EACE,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,UAAU,EAMX;IAED,2DAA2D;IAC3D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;YAC7B,OAAO,aAAa,CAAA;QACtB,CAAC;QACD,OAAO,oBAAoB,CAAC,OAAO,EAAE;YACnC,OAAO;YACP,YAAY;YACZ,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;SACpB,CAAC,CAAA;IACJ,CAAC;IACD,0EAA0E;IAC1E,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACxB,OAAO,aAAa,CAAA;IACtB,CAAC;IACD,yDAAyD;IACzD,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;IACjC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,aAAa,CAAA;IACtB,CAAC;IACD,OAAO,oBAAoB,CAAC,OAAO,EAAE;QACnC,OAAO;QACP,YAAY;QACZ,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,KAAK,UAAU,oBAAoB,CACjC,OAAsB,EACtB,EACE,OAAO,EACP,YAAY,EACZ,MAAM,EACN,IAAI,EACsE;IAE5E,MAAM,KAAK,GAAG,GAAG,OAAO,IAAI,YAAY,EAAE,CAAA;IAC1C,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACxB,MAAM,IAAI,eAAe,CACvB,cAAc,KAAK,0BAA0B,MAAM,qBAAqB;YACtE,8DAA8D;YAC9D,sDAAsD,CACzD,CAAA;IACH,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC9C,OAAO;QACP,YAAY;QACZ,MAAM;QACN,IAAI;KACL,CAAC,CAAA;IACF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,eAAe,CACvB,cAAc,KAAK,0BAA0B,MAAM,qBAAqB;YACtE,wEAAwE;YACxE,kEAAkE,CACrE,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -0,0 +1,27 @@
1
+ /*!
2
+ * Copyright (c) 2026 Interop Alliance. All rights reserved.
3
+ */
4
+ /**
5
+ * Reads a Collection Description with a single GET. Shared by
6
+ * `Collection.describe()` and the standalone-resource codec's marker discovery
7
+ * so the request shape (path, capability, null-unwrap) lives in one place.
8
+ */
9
+ import type { ClientContext } from './request.js';
10
+ import type { CollectionDescription, IZcap } from '../types.js';
11
+ /**
12
+ * Reads the Collection Description. Returns `null` if the collection is missing
13
+ * or not visible to you (WAS returns 404 for both not-found and unauthorized).
14
+ *
15
+ * @param context {ClientContext}
16
+ * @param options {object}
17
+ * @param options.spaceId {string}
18
+ * @param options.collectionId {string}
19
+ * @param [options.capability] {IZcap} capability attached to the request
20
+ * @returns {Promise<CollectionDescription | null>}
21
+ */
22
+ export declare function describeCollection(context: ClientContext, { spaceId, collectionId, capability }: {
23
+ spaceId: string;
24
+ collectionId: string;
25
+ capability?: IZcap;
26
+ }): Promise<CollectionDescription | null>;
27
+ //# sourceMappingURL=describe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"describe.d.ts","sourceRoot":"","sources":["../../src/internal/describe.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;GAIG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAGjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAE/D;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,aAAa,EACtB,EACE,OAAO,EACP,YAAY,EACZ,UAAU,EACX,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,KAAK,CAAA;CAAE,GAC/D,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAQvC"}
@@ -0,0 +1,23 @@
1
+ import { send } from './request.js';
2
+ import { collectionPath } from './paths.js';
3
+ /**
4
+ * Reads the Collection Description. Returns `null` if the collection is missing
5
+ * or not visible to you (WAS returns 404 for both not-found and unauthorized).
6
+ *
7
+ * @param context {ClientContext}
8
+ * @param options {object}
9
+ * @param options.spaceId {string}
10
+ * @param options.collectionId {string}
11
+ * @param [options.capability] {IZcap} capability attached to the request
12
+ * @returns {Promise<CollectionDescription | null>}
13
+ */
14
+ export async function describeCollection(context, { spaceId, collectionId, capability }) {
15
+ const response = await send(context, {
16
+ path: collectionPath(spaceId, collectionId),
17
+ method: 'GET',
18
+ capability,
19
+ read: true
20
+ });
21
+ return response === null ? null : response.data;
22
+ }
23
+ //# sourceMappingURL=describe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"describe.js","sourceRoot":"","sources":["../../src/internal/describe.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAG3C;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAsB,EACtB,EACE,OAAO,EACP,YAAY,EACZ,UAAU,EACoD;IAEhE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE;QACnC,IAAI,EAAE,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC;QAC3C,MAAM,EAAE,KAAK;QACb,UAAU;QACV,IAAI,EAAE,IAAI;KACX,CAAC,CAAA;IACF,OAAO,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,QAAQ,CAAC,IAA8B,CAAA;AAC5E,CAAC"}
package/dist/types.d.ts CHANGED
@@ -16,7 +16,7 @@ import type { IZcap, IDelegatedZcap } from '@interop/data-integrity-core/zcap';
16
16
  import type { ISigner } from '@interop/data-integrity-core';
17
17
  import type { ActionInput } from '@interop/storage-core';
18
18
  export type { IZcap, IDelegatedZcap, ISigner };
19
- export type { Action, ActionInput, SpaceDescription, CollectionDescription, PolicyDocument, LinkSet, LinkSetEntry, CollectionSummary, CollectionsList, SpaceSummary, SpaceListing, ResourceSummary, CollectionResourcesList, ResourceMetadata, ResourceMetadataCustom, ImportStats, BackendReference, BackendDescriptor, BackendRegistration, BackendConnectionInput, BackendConnectionPublic, StorageLimit, CollectionUsage, BackendUsage, SpaceQuotaReport } from '@interop/storage-core';
19
+ export type { Action, ActionInput, SpaceDescription, CollectionDescription, CollectionEncryption, PolicyDocument, LinkSet, LinkSetEntry, CollectionSummary, CollectionsList, SpaceSummary, SpaceListing, ResourceSummary, CollectionResourcesList, ResourceMetadata, ResourceMetadataCustom, ImportStats, BackendReference, BackendDescriptor, BackendRegistration, BackendConnectionInput, BackendConnectionPublic, StorageLimit, CollectionUsage, BackendUsage, SpaceQuotaReport } from '@interop/storage-core';
20
20
  /**
21
21
  * A JSON-serializable value, the shape stored for JSON resources and
22
22
  * descriptions.
@@ -41,6 +41,26 @@ export interface AddResult {
41
41
  */
42
42
  etag?: string;
43
43
  }
44
+ /**
45
+ * A per-handle client-side encryption override -- the escape hatch / bootstrap
46
+ * path that takes precedence over the Collection's declared `encryption` marker
47
+ * AND skips the marker-discovery round-trip:
48
+ *
49
+ * - `{ scheme }` -- treat the collection as encrypted under `scheme`, pulling
50
+ * keys from the client's keystore. Use right after `createCollection` (before
51
+ * the marker is readable), or to avoid the `describe()` round-trip.
52
+ * - `{ scheme, keys }` -- additionally supply the key material inline (opaque to
53
+ * core; the encryption provider interprets it per `scheme`) instead of the
54
+ * keystore.
55
+ * - `'plaintext'` -- force plaintext even if a marker / keystore would encrypt.
56
+ *
57
+ * The non-`'plaintext'` forms require the `WasClient` to be constructed with an
58
+ * `encryption` provider (which turns a scheme + keys into a codec).
59
+ */
60
+ export type EncryptionOverride = {
61
+ scheme: string;
62
+ keys?: unknown;
63
+ } | 'plaintext';
44
64
  /**
45
65
  * Options accepted by every handle factory (`space()`, `collection()`,
46
66
  * `resource()`). A bound `capability` is attached to every request the handle
@@ -48,6 +68,11 @@ export interface AddResult {
48
68
  */
49
69
  export interface HandleOptions {
50
70
  capability?: IZcap;
71
+ /**
72
+ * Per-handle client-side encryption override (see {@link EncryptionOverride}).
73
+ * Omit to let the Collection's declared `encryption` marker decide.
74
+ */
75
+ encryption?: EncryptionOverride;
51
76
  }
52
77
  /**
53
78
  * Options for the general delegation primitive (`was.grant()`) and the
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAC9E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAExD,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,CAAA;AAM9C,YAAY,EACV,MAAM,EACN,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,OAAO,EACP,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,uBAAuB,EACvB,gBAAgB,EAChB,sBAAsB,EACtB,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,gBAAgB,EACjB,MAAM,uBAAuB,CAAA;AAE9B;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;AAC5D,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB;AACD,MAAM,MAAM,SAAS,GAAG,IAAI,EAAE,CAAA;AAC9B,MAAM,MAAM,IAAI,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,CAAA;AAEzD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,KAAK,CAAA;CACnB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,KAAK,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,IAAI,GAAG,UAAU,CAAA;IACxB,UAAU,CAAC,EAAE,KAAK,CAAA;CACnB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAC9E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAExD,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,CAAA;AAM9C,YAAY,EACV,MAAM,EACN,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,OAAO,EACP,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,uBAAuB,EACvB,gBAAgB,EAChB,sBAAsB,EACtB,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,gBAAgB,EACjB,MAAM,uBAAuB,CAAA;AAE9B;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;AAC5D,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB;AACD,MAAM,MAAM,SAAS,GAAG,IAAI,EAAE,CAAA;AAC9B,MAAM,MAAM,IAAI,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,CAAA;AAEzD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAClC,WAAW,CAAA;AAEf;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,KAAK,CAAA;IAClB;;;OAGG;IACH,UAAU,CAAC,EAAE,kBAAkB,CAAA;CAChC;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,KAAK,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,IAAI,GAAG,UAAU,CAAA;IACxB,UAAU,CAAC,EAAE,KAAK,CAAA;CACnB"}
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.8.0",
4
+ "version": "0.9.0",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "build": "pnpm run clear && tsc",
@@ -47,7 +47,7 @@
47
47
  "@interop/edv-client": "^17.2.0",
48
48
  "@interop/ezcap": "^7.3.0",
49
49
  "@interop/http-client": "^1.0.3",
50
- "@interop/storage-core": "^0.2.5"
50
+ "@interop/storage-core": "^0.3.0"
51
51
  },
52
52
  "devDependencies": {
53
53
  "@eslint/js": "^10.0.1",