@interop/was-client 0.6.0 → 0.7.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.
- package/README.md +95 -1
- package/dist/Collection.d.ts +28 -3
- package/dist/Collection.d.ts.map +1 -1
- package/dist/Collection.js +74 -13
- package/dist/Collection.js.map +1 -1
- package/dist/Resource.d.ts +58 -9
- package/dist/Resource.d.ts.map +1 -1
- package/dist/Resource.js +104 -26
- package/dist/Resource.js.map +1 -1
- package/dist/Space.d.ts +11 -1
- package/dist/Space.d.ts.map +1 -1
- package/dist/Space.js +13 -2
- package/dist/Space.js.map +1 -1
- package/dist/WasClient.d.ts +10 -2
- package/dist/WasClient.d.ts.map +1 -1
- package/dist/WasClient.js +11 -4
- package/dist/WasClient.js.map +1 -1
- package/dist/codec.d.ts +127 -0
- package/dist/codec.d.ts.map +1 -0
- package/dist/codec.js +2 -0
- package/dist/codec.js.map +1 -0
- package/dist/edv/EdvCodec.d.ts +148 -0
- package/dist/edv/EdvCodec.d.ts.map +1 -0
- package/dist/edv/EdvCodec.js +284 -0
- package/dist/edv/EdvCodec.js.map +1 -0
- package/dist/edv/index.d.ts +10 -0
- package/dist/edv/index.d.ts.map +1 -1
- package/dist/edv/index.js +10 -0
- package/dist/edv/index.js.map +1 -1
- package/dist/errors.d.ts +11 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +17 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/codec.d.ts +27 -0
- package/dist/internal/codec.d.ts.map +1 -0
- package/dist/internal/codec.js +44 -0
- package/dist/internal/codec.js.map +1 -0
- package/dist/internal/conditional.d.ts +40 -0
- package/dist/internal/conditional.d.ts.map +1 -0
- package/dist/internal/conditional.js +35 -0
- package/dist/internal/conditional.js.map +1 -0
- package/dist/internal/request.d.ts +5 -1
- package/dist/internal/request.d.ts.map +1 -1
- package/dist/internal/request.js.map +1 -1
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -3
package/dist/Resource.js
CHANGED
|
@@ -1,21 +1,17 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) 2026 Interop Alliance. All rights reserved.
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* A navigational handle to a single Resource (a JSON object or binary blob
|
|
6
|
-
* keyed by id within a Collection). Sugar over the Collection item operations,
|
|
7
|
-
* with explicit `getText()` / `getBytes()` escape hatches.
|
|
8
|
-
*/
|
|
9
1
|
import { resourcePath, resourcePolicy, resourceMeta } from './internal/paths.js';
|
|
10
|
-
import { prepareBody, parseResource } from './internal/content.js';
|
|
11
2
|
import { assertNotReserved } from './internal/reserved.js';
|
|
12
3
|
import { send } from './internal/request.js';
|
|
4
|
+
import { resolveCodec } from './internal/codec.js';
|
|
5
|
+
import { writeHeaders, readEtag } from './internal/conditional.js';
|
|
6
|
+
import { ValidationError } from './errors.js';
|
|
13
7
|
export class Resource {
|
|
14
8
|
spaceId;
|
|
15
9
|
collectionId;
|
|
16
10
|
id;
|
|
17
11
|
_context;
|
|
18
12
|
_capability;
|
|
13
|
+
_codecThunk;
|
|
14
|
+
_codecPromise;
|
|
19
15
|
/**
|
|
20
16
|
* @param options {object}
|
|
21
17
|
* @param options.context {ClientContext}
|
|
@@ -23,17 +19,37 @@ export class Resource {
|
|
|
23
19
|
* @param options.collectionId {string}
|
|
24
20
|
* @param options.resourceId {string}
|
|
25
21
|
* @param [options.capability] {IZcap} capability attached to every request
|
|
22
|
+
* @param [options.codec] {function} resolver sharing the parent collection's
|
|
23
|
+
* codec, so a resource handle obtained via `collection.resource(id)` does
|
|
24
|
+
* not repeat the backend() round-trip. A standalone resource resolves its
|
|
25
|
+
* own.
|
|
26
26
|
*/
|
|
27
|
-
constructor({ context, spaceId, collectionId, resourceId, capability }) {
|
|
27
|
+
constructor({ context, spaceId, collectionId, resourceId, capability, codec }) {
|
|
28
28
|
this._context = context;
|
|
29
29
|
this.spaceId = spaceId;
|
|
30
30
|
this.collectionId = collectionId;
|
|
31
31
|
this.id = resourceId;
|
|
32
32
|
this._capability = capability;
|
|
33
|
+
this._codecThunk = codec;
|
|
33
34
|
}
|
|
34
35
|
get _path() {
|
|
35
36
|
return resourcePath(this.spaceId, this.collectionId, this.id);
|
|
36
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Resolves (once, then caches) the codec for this resource: the parent
|
|
40
|
+
* collection's shared codec when this handle came from
|
|
41
|
+
* `collection.resource(id)`, otherwise one resolved for its own collection.
|
|
42
|
+
*
|
|
43
|
+
* @returns {Promise<ResourceCodec>}
|
|
44
|
+
*/
|
|
45
|
+
_codec() {
|
|
46
|
+
return (this._codecPromise ??= this._codecThunk
|
|
47
|
+
? this._codecThunk()
|
|
48
|
+
: resolveCodec(this._context, {
|
|
49
|
+
spaceId: this.spaceId,
|
|
50
|
+
collectionId: this.collectionId
|
|
51
|
+
}));
|
|
52
|
+
}
|
|
37
53
|
/**
|
|
38
54
|
* Reads the resource, auto-parsing JSON to an object and returning binary as
|
|
39
55
|
* a `Blob`. Returns `null` if the resource is missing or not visible to you
|
|
@@ -42,17 +58,20 @@ export class Resource {
|
|
|
42
58
|
* @returns {Promise<Json | Blob | null>}
|
|
43
59
|
*/
|
|
44
60
|
async get() {
|
|
61
|
+
const codec = await this._codec();
|
|
45
62
|
const response = await send(this._context, {
|
|
46
63
|
path: this._path,
|
|
47
64
|
method: 'GET',
|
|
48
65
|
capability: this._capability,
|
|
49
66
|
read: true
|
|
50
67
|
});
|
|
51
|
-
return
|
|
68
|
+
return response === null ? null : codec.decode(response);
|
|
52
69
|
}
|
|
53
70
|
/**
|
|
54
71
|
* Reads the resource body as text. Returns `null` on a missing/unauthorized
|
|
55
|
-
* resource (404 conflation caveat).
|
|
72
|
+
* resource (404 conflation caveat). A raw escape hatch: it does NOT run the
|
|
73
|
+
* codec, so on an encrypted collection it never decrypts -- use `get()` to
|
|
74
|
+
* decrypt.
|
|
56
75
|
*
|
|
57
76
|
* @returns {Promise<string | null>}
|
|
58
77
|
*/
|
|
@@ -67,7 +86,9 @@ export class Resource {
|
|
|
67
86
|
}
|
|
68
87
|
/**
|
|
69
88
|
* Reads the resource body as raw bytes. Returns `null` on a
|
|
70
|
-
* missing/unauthorized resource (404 conflation caveat).
|
|
89
|
+
* missing/unauthorized resource (404 conflation caveat). A raw escape hatch:
|
|
90
|
+
* it does NOT run the codec, so on an encrypted collection it never decrypts
|
|
91
|
+
* -- use `get()` to decrypt.
|
|
71
92
|
*
|
|
72
93
|
* @returns {Promise<Uint8Array | null>}
|
|
73
94
|
*/
|
|
@@ -94,36 +115,74 @@ export class Resource {
|
|
|
94
115
|
* `text/html`. An unrecognized/absent extension sends no content-type, and the
|
|
95
116
|
* server applies its own required-`Content-Type` rule.
|
|
96
117
|
*
|
|
118
|
+
* Conditional writes (the backend's `conditional-writes` feature): pass
|
|
119
|
+
* `ifMatch` (the ETag from a prior read/write) for an update-if-unchanged, or
|
|
120
|
+
* `ifNoneMatch: true` for a create-if-absent. A failed precondition throws
|
|
121
|
+
* `PreconditionFailedError` (412). On an encrypted collection these are managed
|
|
122
|
+
* automatically by the codec (the EDV `sequence` becomes the enforced ETag), so
|
|
123
|
+
* the explicit options are for plaintext collections. Returns the new `etag`.
|
|
124
|
+
*
|
|
97
125
|
* @param data {Json | Blob | Uint8Array}
|
|
98
126
|
* @param options {object}
|
|
99
127
|
* @param [options.contentType] {string} content-type for binary data
|
|
100
|
-
* @
|
|
128
|
+
* @param [options.ifMatch] {string} update only if the ETag matches
|
|
129
|
+
* @param [options.ifNoneMatch] {boolean} create only if absent
|
|
130
|
+
* @returns {Promise<{ etag?: string }>} the stored resource's new ETag
|
|
101
131
|
*/
|
|
102
132
|
async put(data, options = {}) {
|
|
103
133
|
assertNotReserved(this.id, 'resource');
|
|
104
|
-
const
|
|
105
|
-
|
|
134
|
+
const codec = await this._codec();
|
|
135
|
+
// A conditional codec (e.g. the EDV codec) needs the current stored envelope
|
|
136
|
+
// to advance its sequence and pin the write to the current ETag, so pre-read
|
|
137
|
+
// it. A plaintext codec needs no pre-read.
|
|
138
|
+
let current;
|
|
139
|
+
if (codec.conditionalWrites) {
|
|
140
|
+
current = await send(this._context, {
|
|
141
|
+
path: this._path,
|
|
142
|
+
method: 'GET',
|
|
143
|
+
capability: this._capability,
|
|
144
|
+
read: true
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
const encoded = await codec.encode({
|
|
148
|
+
id: this.id,
|
|
149
|
+
data,
|
|
150
|
+
contentType: options.contentType,
|
|
151
|
+
current
|
|
152
|
+
});
|
|
153
|
+
// A conditional codec computes the precondition itself (from the sequence /
|
|
154
|
+
// ETag); a plaintext codec defers to the caller's explicit options.
|
|
155
|
+
const precondition = codec.conditionalWrites
|
|
156
|
+
? { ifMatch: encoded.ifMatch, ifNoneMatch: encoded.ifNoneMatch }
|
|
157
|
+
: { ifMatch: options.ifMatch, ifNoneMatch: options.ifNoneMatch };
|
|
158
|
+
const response = await send(this._context, {
|
|
106
159
|
path: this._path,
|
|
107
160
|
method: 'PUT',
|
|
108
161
|
capability: this._capability,
|
|
109
|
-
json:
|
|
110
|
-
body:
|
|
111
|
-
headers:
|
|
112
|
-
? { 'content-type': prepared.contentType }
|
|
113
|
-
: undefined
|
|
162
|
+
json: encoded.json,
|
|
163
|
+
body: encoded.body,
|
|
164
|
+
headers: writeHeaders(encoded.contentType, precondition)
|
|
114
165
|
});
|
|
166
|
+
return { etag: readEtag(response) };
|
|
115
167
|
}
|
|
116
168
|
/**
|
|
117
|
-
* Deletes the resource. Idempotent.
|
|
169
|
+
* Deletes the resource. Idempotent. Pass `ifMatch` (the backend's
|
|
170
|
+
* `conditional-writes` feature) to delete only if the resource's current ETag
|
|
171
|
+
* matches; a stale validator throws `PreconditionFailedError` (412).
|
|
118
172
|
*
|
|
173
|
+
* @param options {object}
|
|
174
|
+
* @param [options.ifMatch] {string} delete only if the ETag matches
|
|
119
175
|
* @returns {Promise<void>}
|
|
120
176
|
*/
|
|
121
|
-
async delete() {
|
|
177
|
+
async delete(options = {}) {
|
|
122
178
|
await send(this._context, {
|
|
123
179
|
path: this._path,
|
|
124
180
|
method: 'DELETE',
|
|
125
181
|
capability: this._capability,
|
|
126
|
-
idempotent:
|
|
182
|
+
// A conditional delete is not idempotent: a stale `If-Match` must surface
|
|
183
|
+
// as a 412 rather than being swallowed as an absent-target success.
|
|
184
|
+
idempotent: options.ifMatch === undefined,
|
|
185
|
+
headers: writeHeaders(undefined, { ifMatch: options.ifMatch })
|
|
127
186
|
});
|
|
128
187
|
}
|
|
129
188
|
get _metaPath() {
|
|
@@ -135,7 +194,11 @@ export class Resource {
|
|
|
135
194
|
* resource is missing or not visible to you (404 conflation caveat). A server
|
|
136
195
|
* without metadata support surfaces its 501 as `NotImplementedError`.
|
|
137
196
|
*
|
|
138
|
-
*
|
|
197
|
+
* Against a backend with the `conditional-writes` feature the result also
|
|
198
|
+
* carries the resource's current `etag` (the strong validator) -- pass it as
|
|
199
|
+
* `put(data, { ifMatch })` for a lost-update-safe update.
|
|
200
|
+
*
|
|
201
|
+
* @returns {Promise<(ResourceMetadata & { etag?: string }) | null>}
|
|
139
202
|
*/
|
|
140
203
|
async meta() {
|
|
141
204
|
const response = await send(this._context, {
|
|
@@ -144,7 +207,12 @@ export class Resource {
|
|
|
144
207
|
capability: this._capability,
|
|
145
208
|
read: true
|
|
146
209
|
});
|
|
147
|
-
|
|
210
|
+
if (response === null) {
|
|
211
|
+
return null;
|
|
212
|
+
}
|
|
213
|
+
const metadata = response.data;
|
|
214
|
+
const etag = readEtag(response);
|
|
215
|
+
return etag !== undefined ? { ...metadata, etag } : metadata;
|
|
148
216
|
}
|
|
149
217
|
/**
|
|
150
218
|
* Replaces the resource's user-writable metadata (`custom`). This is a full
|
|
@@ -153,11 +221,21 @@ export class Resource {
|
|
|
153
221
|
* metadata of a nonexistent resource throws `NotFoundError`. Servers without
|
|
154
222
|
* metadata support surface their 501 as `NotImplementedError`.
|
|
155
223
|
*
|
|
224
|
+
* On an encrypted collection this throws a `ValidationError`: `custom`
|
|
225
|
+
* (`name` / `tags`) would be stored as server-visible plaintext, defeating the
|
|
226
|
+
* encryption. Carry those values inside the encrypted content instead.
|
|
227
|
+
*
|
|
156
228
|
* @param meta {object}
|
|
157
229
|
* @param [meta.custom] {ResourceMetadataCustom} the user-writable properties
|
|
158
230
|
* @returns {Promise<void>}
|
|
159
231
|
*/
|
|
160
232
|
async setMeta(meta = {}) {
|
|
233
|
+
const codec = await this._codec();
|
|
234
|
+
if (!codec.allowsServerMetadata) {
|
|
235
|
+
throw new ValidationError('Cannot set server-visible metadata (name/tags) on an encrypted ' +
|
|
236
|
+
'collection -- it would be stored as plaintext. Carry these values ' +
|
|
237
|
+
'inside the encrypted content instead.');
|
|
238
|
+
}
|
|
161
239
|
await send(this._context, {
|
|
162
240
|
path: this._metaPath,
|
|
163
241
|
method: 'PUT',
|
package/dist/Resource.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Resource.js","sourceRoot":"","sources":["../src/Resource.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Resource.js","sourceRoot":"","sources":["../src/Resource.ts"],"names":[],"mappings":"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"}
|
package/dist/Space.d.ts
CHANGED
|
@@ -79,6 +79,10 @@ export declare class Space {
|
|
|
79
79
|
* the space is missing or not visible to you (404 conflation caveat). A
|
|
80
80
|
* server without backend support surfaces its 501 as `NotImplementedError`.
|
|
81
81
|
*
|
|
82
|
+
* Each descriptor's optional `features` array advertises optional server
|
|
83
|
+
* affordances (e.g. `conditional-writes`). See {@link Collection.backend} for
|
|
84
|
+
* the full note.
|
|
85
|
+
*
|
|
82
86
|
* @returns {Promise<BackendDescriptor[] | null>}
|
|
83
87
|
*/
|
|
84
88
|
backends(): Promise<BackendDescriptor[] | null>;
|
|
@@ -87,9 +91,15 @@ export declare class Space {
|
|
|
87
91
|
* if the space is missing or not visible to you (404 conflation caveat). A
|
|
88
92
|
* server without quota support surfaces its 501 as `NotImplementedError`.
|
|
89
93
|
*
|
|
94
|
+
* @param [options] {object}
|
|
95
|
+
* @param [options.includeCollections] {boolean} request the per-Collection
|
|
96
|
+
* `usageByCollection` breakdown on each backend entry (the spec's
|
|
97
|
+
* `?include=collections` opt-in); omitted by default to keep the report lean
|
|
90
98
|
* @returns {Promise<SpaceQuotaReport | null>}
|
|
91
99
|
*/
|
|
92
|
-
quotas(
|
|
100
|
+
quotas({ includeCollections }?: {
|
|
101
|
+
includeCollections?: boolean;
|
|
102
|
+
}): Promise<SpaceQuotaReport | null>;
|
|
93
103
|
/**
|
|
94
104
|
* Delegates access to this space. Prefills the grant `target` with this
|
|
95
105
|
* space's URL (and the bound `capability`, if any, for re-delegation).
|
package/dist/Space.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Space.d.ts","sourceRoot":"","sources":["../src/Space.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAEhB,eAAe,EACf,YAAY,EACZ,aAAa,EACb,cAAc,EACd,KAAK,EACL,WAAW,EACX,OAAO,EACP,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,YAAY,CAAA;AAEnB,qBAAa,KAAK;IAChB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IAEnB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAO;IAEpC;;;;;OAKG;gBACS,EACV,OAAO,EACP,OAAO,EACP,UAAU,EACX,EAAE;QACD,OAAO,EAAE,aAAa,CAAA;QACtB,OAAO,EAAE,MAAM,CAAA;QACf,UAAU,CAAC,EAAE,KAAK,CAAA;KACnB;IAMD,OAAO,KAAK,KAAK,GAEhB;IAED;;;;;OAKG;IACG,QAAQ,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAUlD;;;;;;;;OAQG;IACG,SAAS,CAAC,IAAI,EAAE;QACpB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAqB7B;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAS7B;;;;;;;OAOG;IACH,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,UAAU;IASzE;;;;;;;;;OASG;IACG,gBAAgB,CACpB,IAAI,GAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,gBAAgB,CAAA;KAAO,GACpE,OAAO,CAAC,UAAU,CAAC;IAyBtB;;;;;OAKG;IACG,WAAW,IAAI,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAUpD
|
|
1
|
+
{"version":3,"file":"Space.d.ts","sourceRoot":"","sources":["../src/Space.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAEhB,eAAe,EACf,YAAY,EACZ,aAAa,EACb,cAAc,EACd,KAAK,EACL,WAAW,EACX,OAAO,EACP,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,YAAY,CAAA;AAEnB,qBAAa,KAAK;IAChB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IAEnB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAO;IAEpC;;;;;OAKG;gBACS,EACV,OAAO,EACP,OAAO,EACP,UAAU,EACX,EAAE;QACD,OAAO,EAAE,aAAa,CAAA;QACtB,OAAO,EAAE,MAAM,CAAA;QACf,UAAU,CAAC,EAAE,KAAK,CAAA;KACnB;IAMD,OAAO,KAAK,KAAK,GAEhB;IAED;;;;;OAKG;IACG,QAAQ,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAUlD;;;;;;;;OAQG;IACG,SAAS,CAAC,IAAI,EAAE;QACpB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAqB7B;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAS7B;;;;;;;OAOG;IACH,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,UAAU;IASzE;;;;;;;;;OASG;IACG,gBAAgB,CACpB,IAAI,GAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,gBAAgB,CAAA;KAAO,GACpE,OAAO,CAAC,UAAU,CAAC;IAyBtB;;;;;OAKG;IACG,WAAW,IAAI,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAUpD;;;;;;;;;;OAUG;IACG,QAAQ,IAAI,OAAO,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC;IAUrD;;;;;;;;;;OAUG;IACG,MAAM,CAAC,EACX,kBAA0B,EAC3B,GAAE;QAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAa3E;;;;;;OAMG;IACG,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC;IAU3D;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC;IAanC;;;;;OAKG;IACG,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;IAe1D;;;;;;;OAOG;IACG,SAAS,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAUjD;;;;;OAKG;IACG,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAStD;;;;OAIG;IACG,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAKlC;;;;;;OAMG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC;;;;;OAKG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IASlC;;;;;OAKG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;CASzC"}
|
package/dist/Space.js
CHANGED
|
@@ -156,6 +156,10 @@ export class Space {
|
|
|
156
156
|
* the space is missing or not visible to you (404 conflation caveat). A
|
|
157
157
|
* server without backend support surfaces its 501 as `NotImplementedError`.
|
|
158
158
|
*
|
|
159
|
+
* Each descriptor's optional `features` array advertises optional server
|
|
160
|
+
* affordances (e.g. `conditional-writes`). See {@link Collection.backend} for
|
|
161
|
+
* the full note.
|
|
162
|
+
*
|
|
159
163
|
* @returns {Promise<BackendDescriptor[] | null>}
|
|
160
164
|
*/
|
|
161
165
|
async backends() {
|
|
@@ -172,11 +176,18 @@ export class Space {
|
|
|
172
176
|
* if the space is missing or not visible to you (404 conflation caveat). A
|
|
173
177
|
* server without quota support surfaces its 501 as `NotImplementedError`.
|
|
174
178
|
*
|
|
179
|
+
* @param [options] {object}
|
|
180
|
+
* @param [options.includeCollections] {boolean} request the per-Collection
|
|
181
|
+
* `usageByCollection` breakdown on each backend entry (the spec's
|
|
182
|
+
* `?include=collections` opt-in); omitted by default to keep the report lean
|
|
175
183
|
* @returns {Promise<SpaceQuotaReport | null>}
|
|
176
184
|
*/
|
|
177
|
-
async quotas() {
|
|
185
|
+
async quotas({ includeCollections = false } = {}) {
|
|
186
|
+
const path = includeCollections
|
|
187
|
+
? `${spaceQuotas(this.id)}?include=collections`
|
|
188
|
+
: spaceQuotas(this.id);
|
|
178
189
|
const response = await send(this._context, {
|
|
179
|
-
path
|
|
190
|
+
path,
|
|
180
191
|
method: 'GET',
|
|
181
192
|
capability: this._capability,
|
|
182
193
|
read: true
|
package/dist/Space.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Space.js","sourceRoot":"","sources":["../src/Space.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;GAKG;AACH,OAAO,EACL,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,aAAa,EACb,WAAW,EACX,WAAW,EACX,YAAY,EACZ,KAAK,EACN,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAiB5C,MAAM,OAAO,KAAK;IACP,EAAE,CAAQ;IAEF,QAAQ,CAAe;IACvB,WAAW,CAAQ;IAEpC;;;;;OAKG;IACH,YAAY,EACV,OAAO,EACP,OAAO,EACP,UAAU,EAKX;QACC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;QACvB,IAAI,CAAC,EAAE,GAAG,OAAO,CAAA;QACjB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAA;IAC/B,CAAC;IAED,IAAY,KAAK;QACf,OAAO,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC3B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAQ;QACZ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACzC,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,MAAM,EAAE,KAAK;YACb,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;QACF,OAAO,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,QAAQ,CAAC,IAAyB,CAAA;IACvE,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,SAAS,CAAC,IAGf;QACC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,OAAO,EAAE,IAAI,CAAA;QACvC,MAAM,UAAU,GACd,IAAI,CAAC,UAAU,IAAI,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAA;QACvE,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACxB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,MAAM,EAAE,KAAK;YACb,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;SACxC,CAAC,CAAA;QACF,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC;YAChC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,uEAAuE;YACvE,qEAAqE;YACrE,UAAU,EAAE,UAA4C;SACzD,CAAA;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM;QACV,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACxB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,UAAU,EAAE,IAAI;SACjB,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,UAAU,CAAC,YAAoB,EAAE,UAAyB,EAAE;QAC1D,OAAO,IAAI,UAAU,CAAC;YACpB,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,OAAO,EAAE,IAAI,CAAC,EAAE;YAChB,YAAY;YACZ,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW;SACnD,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,gBAAgB,CACpB,OAAmE,EAAE;QAErE,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YAC1B,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,CAAA;QAC1C,CAAC;QACD,MAAM,IAAI,GAA4B,EAAE,CAAA;QACxC,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAA;QACnB,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACvB,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC7B,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACzC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;QACF,MAAM,OAAO,GAAI,QAA+B;aAC7C,IAA6B,CAAA;QAChC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IACpC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,WAAW;QACf,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACzC,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,MAAM,EAAE,KAAK;YACb,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;QACF,OAAO,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,QAAQ,CAAC,IAAwB,CAAA;IACtE,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"Space.js","sourceRoot":"","sources":["../src/Space.ts"],"names":[],"mappings":"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"}
|
package/dist/WasClient.d.ts
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import { ZcapClient } from '@interop/ezcap';
|
|
13
13
|
import type { HttpResponse } from '@interop/http-client';
|
|
14
|
+
import type { EncryptionProvider } from './codec.js';
|
|
14
15
|
import { Space } from './Space.js';
|
|
15
16
|
import { Collection } from './Collection.js';
|
|
16
17
|
import { Resource } from './Resource.js';
|
|
@@ -18,15 +19,20 @@ import type { GrantOptions, HandleOptions, IDelegatedZcap, ISigner, IZcap, Json,
|
|
|
18
19
|
export declare class WasClient {
|
|
19
20
|
readonly serverUrl: string;
|
|
20
21
|
readonly zcapClient: ZcapClient;
|
|
22
|
+
readonly encryption?: EncryptionProvider;
|
|
21
23
|
/**
|
|
22
24
|
* @param options {object}
|
|
23
25
|
* @param options.serverUrl {string} base URL for both URL building and
|
|
24
26
|
* zcap `invocationTarget`s
|
|
25
27
|
* @param options.zcapClient {ZcapClient} an ezcap client holding the signer
|
|
28
|
+
* @param [options.encryption] {EncryptionProvider} supplies the encrypting
|
|
29
|
+
* codec for the collections the client holds keys for (built by the
|
|
30
|
+
* `@interop/was-client/edv` subpath); omit for plaintext-only clients
|
|
26
31
|
*/
|
|
27
|
-
constructor({ serverUrl, zcapClient }: {
|
|
32
|
+
constructor({ serverUrl, zcapClient, encryption }: {
|
|
28
33
|
serverUrl: string;
|
|
29
34
|
zcapClient: ZcapClient;
|
|
35
|
+
encryption?: EncryptionProvider;
|
|
30
36
|
});
|
|
31
37
|
/**
|
|
32
38
|
* Convenience constructor that builds the ezcap `ZcapClient` internally from
|
|
@@ -35,11 +41,13 @@ export declare class WasClient {
|
|
|
35
41
|
* @param options {object}
|
|
36
42
|
* @param options.serverUrl {string}
|
|
37
43
|
* @param options.signer {ISigner}
|
|
44
|
+
* @param [options.encryption] {EncryptionProvider} see the constructor
|
|
38
45
|
* @returns {WasClient}
|
|
39
46
|
*/
|
|
40
|
-
static fromSigner({ serverUrl, signer }: {
|
|
47
|
+
static fromSigner({ serverUrl, signer, encryption }: {
|
|
41
48
|
serverUrl: string;
|
|
42
49
|
signer: ISigner;
|
|
50
|
+
encryption?: EncryptionProvider;
|
|
43
51
|
}): WasClient;
|
|
44
52
|
/**
|
|
45
53
|
* The DID controlling the wrapped signer (`signer.id` without the key
|
package/dist/WasClient.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WasClient.d.ts","sourceRoot":"","sources":["../src/WasClient.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;GAOG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAOxD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,cAAc,EACd,OAAO,EACP,KAAK,EACL,IAAI,EACJ,YAAY,EACZ,uBAAuB,EACvB,YAAY,EACb,MAAM,YAAY,CAAA;AAEnB,qBAAa,SAAS;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"WasClient.d.ts","sourceRoot":"","sources":["../src/WasClient.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;GAOG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAOxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,cAAc,EACd,OAAO,EACP,KAAK,EACL,IAAI,EACJ,YAAY,EACZ,uBAAuB,EACvB,YAAY,EACb,MAAM,YAAY,CAAA;AAEnB,qBAAa,SAAS;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAA;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAA;IAExC;;;;;;;;OAQG;gBACS,EACV,SAAS,EACT,UAAU,EACV,UAAU,EACX,EAAE;QACD,SAAS,EAAE,MAAM,CAAA;QACjB,UAAU,EAAE,UAAU,CAAA;QACtB,UAAU,CAAC,EAAE,kBAAkB,CAAA;KAChC;IAMD;;;;;;;;;OASG;IACH,MAAM,CAAC,UAAU,CAAC,EAChB,SAAS,EACT,MAAM,EACN,UAAU,EACX,EAAE;QACD,SAAS,EAAE,MAAM,CAAA;QACjB,MAAM,EAAE,OAAO,CAAA;QACf,UAAU,CAAC,EAAE,kBAAkB,CAAA;KAChC,GAAG,SAAS;IASb;;;;;OAKG;IACH,IAAI,aAAa,IAAI,MAAM,CAQ1B;IAED,OAAO,KAAK,QAAQ,GAOnB;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,KAAK;IAQ1D;;;;;;;;;;OAUG;IACG,WAAW,CACf,IAAI,GAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO,GAC7D,OAAO,CAAC,KAAK,CAAC;IAkBjB;;;;;;;;;OASG;IACG,UAAU,IAAI,OAAO,CAAC,YAAY,CAAC;IAQzC;;;;;;;;;OASG;IACG,UAAU,CAAC,EACf,WAAW,EACZ,EAAE;QACD,WAAW,EAAE,MAAM,CAAA;KACpB,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAS/B;;;;;;;;;OASG;IACG,oBAAoB,CAAC,EACzB,aAAa,EACd,EAAE;QACD,aAAa,EAAE,MAAM,CAAA;KACtB,GAAG,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC;IAY3C;;;;;;;OAOG;IACH,cAAc,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,UAAU,GAAG,QAAQ;IAmC1D;;;;;;;;OAQG;IACG,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC;IAI3D;;;;;;;;OAQG;IACG,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;CAG5D"}
|
package/dist/WasClient.js
CHANGED
|
@@ -22,15 +22,20 @@ import { Resource } from './Resource.js';
|
|
|
22
22
|
export class WasClient {
|
|
23
23
|
serverUrl;
|
|
24
24
|
zcapClient;
|
|
25
|
+
encryption;
|
|
25
26
|
/**
|
|
26
27
|
* @param options {object}
|
|
27
28
|
* @param options.serverUrl {string} base URL for both URL building and
|
|
28
29
|
* zcap `invocationTarget`s
|
|
29
30
|
* @param options.zcapClient {ZcapClient} an ezcap client holding the signer
|
|
31
|
+
* @param [options.encryption] {EncryptionProvider} supplies the encrypting
|
|
32
|
+
* codec for the collections the client holds keys for (built by the
|
|
33
|
+
* `@interop/was-client/edv` subpath); omit for plaintext-only clients
|
|
30
34
|
*/
|
|
31
|
-
constructor({ serverUrl, zcapClient }) {
|
|
35
|
+
constructor({ serverUrl, zcapClient, encryption }) {
|
|
32
36
|
this.serverUrl = serverUrl;
|
|
33
37
|
this.zcapClient = zcapClient;
|
|
38
|
+
this.encryption = encryption;
|
|
34
39
|
}
|
|
35
40
|
/**
|
|
36
41
|
* Convenience constructor that builds the ezcap `ZcapClient` internally from
|
|
@@ -39,15 +44,16 @@ export class WasClient {
|
|
|
39
44
|
* @param options {object}
|
|
40
45
|
* @param options.serverUrl {string}
|
|
41
46
|
* @param options.signer {ISigner}
|
|
47
|
+
* @param [options.encryption] {EncryptionProvider} see the constructor
|
|
42
48
|
* @returns {WasClient}
|
|
43
49
|
*/
|
|
44
|
-
static fromSigner({ serverUrl, signer }) {
|
|
50
|
+
static fromSigner({ serverUrl, signer, encryption }) {
|
|
45
51
|
const zcapClient = new ZcapClient({
|
|
46
52
|
SuiteClass: Ed25519Signature2020,
|
|
47
53
|
invocationSigner: signer,
|
|
48
54
|
delegationSigner: signer
|
|
49
55
|
});
|
|
50
|
-
return new WasClient({ serverUrl, zcapClient });
|
|
56
|
+
return new WasClient({ serverUrl, zcapClient, encryption });
|
|
51
57
|
}
|
|
52
58
|
/**
|
|
53
59
|
* The DID controlling the wrapped signer (`signer.id` without the key
|
|
@@ -66,7 +72,8 @@ export class WasClient {
|
|
|
66
72
|
return {
|
|
67
73
|
serverUrl: this.serverUrl,
|
|
68
74
|
zcapClient: this.zcapClient,
|
|
69
|
-
controllerDid: this.controllerDid
|
|
75
|
+
controllerDid: this.controllerDid,
|
|
76
|
+
encryption: this.encryption
|
|
70
77
|
};
|
|
71
78
|
}
|
|
72
79
|
/**
|
package/dist/WasClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WasClient.js","sourceRoot":"","sources":["../src/WasClient.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;GAOG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AAEjE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAEhD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACzE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"WasClient.js","sourceRoot":"","sources":["../src/WasClient.ts"],"names":[],"mappings":"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"}
|
package/dist/codec.d.ts
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2026 Interop Alliance. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* The resource codec seam: a pluggable transform sitting between a caller's
|
|
6
|
+
* plaintext value and the bytes a Resource actually stores. The default
|
|
7
|
+
* identity codec preserves today's plaintext behavior byte-for-byte; the opt-in
|
|
8
|
+
* EDV codec (in the `@interop/was-client/edv` subpath) encrypts on write and
|
|
9
|
+
* decrypts on read, so `collection.put(id, obj)` transparently round-trips
|
|
10
|
+
* ciphertext.
|
|
11
|
+
*
|
|
12
|
+
* Core defines only these interfaces and the identity default -- the crypto
|
|
13
|
+
* implementation lives in the subpath so the `@interop/edv-client` /
|
|
14
|
+
* `@interop/minimal-cipher` graph stays out of core was-client. An app wires the
|
|
15
|
+
* two together by passing an `EncryptionProvider` (built by the subpath) to
|
|
16
|
+
* `WasClient`; core holds it as an opaque interface and never imports the
|
|
17
|
+
* subpath.
|
|
18
|
+
*
|
|
19
|
+
* Whether a collection is encrypted is a per-collection client concern (does the
|
|
20
|
+
* client hold keys for it?), not a backend capability -- an encrypted document
|
|
21
|
+
* is opaque JSON any document backend stores faithfully. So the switch is keys
|
|
22
|
+
* alone: the encrypting codec binds iff the provider returns one for the
|
|
23
|
+
* collection.
|
|
24
|
+
*/
|
|
25
|
+
import type { HttpResponse } from '@interop/http-client';
|
|
26
|
+
import type { Json } from './types.js';
|
|
27
|
+
/**
|
|
28
|
+
* The result of {@link ResourceCodec.encode}: the stored representation of a
|
|
29
|
+
* write, plus the id to store it under.
|
|
30
|
+
*
|
|
31
|
+
* - `id` -- when present, the write is a `PUT` to this resource id (the codec
|
|
32
|
+
* either echoes the caller's id or, for `add()`, mints one). When absent, the
|
|
33
|
+
* write is a `POST` and the server mints the id (the identity codec's `add()`
|
|
34
|
+
* path).
|
|
35
|
+
* - `json` / `body` -- mutually exclusive payloads, mirroring the request
|
|
36
|
+
* layer: `json` for a structured body, `body` for raw bytes.
|
|
37
|
+
* - `contentType` -- the content type to send for a `body` write (e.g.
|
|
38
|
+
* `application/edv+json` for an encrypted envelope).
|
|
39
|
+
* - `ifMatch` / `ifNoneMatch` -- an optional conditional-write precondition the
|
|
40
|
+
* codec computed (e.g. the EDV codec maps its `sequence` onto an `If-Match`
|
|
41
|
+
* ETag for lost-update-safe updates, or `If-None-Match: *` for a fresh
|
|
42
|
+
* insert). The write path forwards these as the request's conditional headers.
|
|
43
|
+
* Only honored for a codec that sets {@link ResourceCodec.conditionalWrites}.
|
|
44
|
+
*/
|
|
45
|
+
export interface EncodedWrite {
|
|
46
|
+
id?: string;
|
|
47
|
+
json?: object;
|
|
48
|
+
body?: Uint8Array | Blob;
|
|
49
|
+
contentType?: string;
|
|
50
|
+
ifMatch?: string;
|
|
51
|
+
ifNoneMatch?: boolean;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* A pluggable encode/decode transform bound to a single collection handle.
|
|
55
|
+
* Implementations must be stateless with respect to a given call (a resolved
|
|
56
|
+
* codec is reused across every read/write on the handle).
|
|
57
|
+
*/
|
|
58
|
+
export interface ResourceCodec {
|
|
59
|
+
/**
|
|
60
|
+
* Whether server-visible custom metadata (`resource.setName` / `setTags` /
|
|
61
|
+
* `setMeta`) is permitted. The identity codec allows it; an encrypting codec
|
|
62
|
+
* forbids it (the values would be stored as server-visible plaintext -- a
|
|
63
|
+
* leak), so those methods throw on an encrypted collection.
|
|
64
|
+
*/
|
|
65
|
+
readonly allowsServerMetadata: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Whether this codec drives optimistic-concurrency (conditional) writes. When
|
|
68
|
+
* `true`, the write path pre-reads the current stored resource and passes it
|
|
69
|
+
* to {@link encode} as `current`, then forwards the precondition `encode`
|
|
70
|
+
* returns ({@link EncodedWrite.ifMatch} / `ifNoneMatch`). The EDV codec sets
|
|
71
|
+
* this so its `sequence` is enforced (lost-update-safe) rather than advisory;
|
|
72
|
+
* the identity codec leaves it unset (plaintext writes carry only the caller's
|
|
73
|
+
* explicit precondition).
|
|
74
|
+
*/
|
|
75
|
+
readonly conditionalWrites?: boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Transforms a caller's write value into its stored representation. `id` is
|
|
78
|
+
* present for `put(id, ...)` (and absent for `add(...)`, where the codec may
|
|
79
|
+
* mint one by returning {@link EncodedWrite.id}).
|
|
80
|
+
*
|
|
81
|
+
* @param input {object}
|
|
82
|
+
* @param [input.id] {string} resource id (absent on add)
|
|
83
|
+
* @param input.data {Json | Blob | Uint8Array} the plaintext value
|
|
84
|
+
* @param [input.contentType] {string} caller-supplied content type
|
|
85
|
+
* @param [input.current] {HttpResponse | null} the current stored response
|
|
86
|
+
* (or `null` if absent), supplied only when {@link conditionalWrites} is set,
|
|
87
|
+
* so the codec can derive the next `sequence` and the `If-Match` ETag.
|
|
88
|
+
* @returns {Promise<EncodedWrite>}
|
|
89
|
+
*/
|
|
90
|
+
encode(input: {
|
|
91
|
+
id?: string;
|
|
92
|
+
data: Json | Blob | Uint8Array;
|
|
93
|
+
contentType?: string;
|
|
94
|
+
current?: HttpResponse | null;
|
|
95
|
+
}): Promise<EncodedWrite>;
|
|
96
|
+
/**
|
|
97
|
+
* Transforms a stored (non-null) read response back into a caller value: a
|
|
98
|
+
* parsed object for JSON, a `Blob` for binary, decrypting first when the
|
|
99
|
+
* codec encrypts.
|
|
100
|
+
*
|
|
101
|
+
* @param response {HttpResponse}
|
|
102
|
+
* @returns {Promise<Json | Blob>}
|
|
103
|
+
*/
|
|
104
|
+
decode(response: HttpResponse): Promise<Json | Blob>;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Supplies the encrypting {@link ResourceCodec} for a collection, if the client
|
|
108
|
+
* holds keys for it. Injected into {@link WasClient} by an app that imports the
|
|
109
|
+
* `@interop/was-client/edv` subpath; core only ever holds this interface.
|
|
110
|
+
*
|
|
111
|
+
* `resolveCodec` returns `null` when this client has no keys for the collection,
|
|
112
|
+
* so it should be read/written in plaintext. This is the whole switch: a
|
|
113
|
+
* collection is encrypted iff the provider returns a codec for it.
|
|
114
|
+
*/
|
|
115
|
+
export interface EncryptionProvider {
|
|
116
|
+
/**
|
|
117
|
+
* @param input {object}
|
|
118
|
+
* @param input.spaceId {string}
|
|
119
|
+
* @param input.collectionId {string}
|
|
120
|
+
* @returns {Promise<ResourceCodec | null>}
|
|
121
|
+
*/
|
|
122
|
+
resolveCodec(input: {
|
|
123
|
+
spaceId: string;
|
|
124
|
+
collectionId: string;
|
|
125
|
+
}): Promise<ResourceCodec | null>;
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=codec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEtC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAA;IAEtC;;;;;;;;OAQG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAEpC;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,KAAK,EAAE;QACZ,EAAE,CAAC,EAAE,MAAM,CAAA;QACX,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,UAAU,CAAA;QAC9B,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;KAC9B,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IAEzB;;;;;;;OAOG;IACH,MAAM,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;CACrD;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;OAKG;IACH,YAAY,CAAC,KAAK,EAAE;QAClB,OAAO,EAAE,MAAM,CAAA;QACf,YAAY,EAAE,MAAM,CAAA;KACrB,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;CAClC"}
|
package/dist/codec.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codec.js","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":""}
|