@interop/was-client 0.99.1 → 0.100.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.
- package/README.md +90 -70
- package/dist/Collection.d.ts +20 -8
- package/dist/Collection.d.ts.map +1 -1
- package/dist/Collection.js +89 -69
- package/dist/Collection.js.map +1 -1
- package/dist/Resource.d.ts +14 -3
- package/dist/Resource.d.ts.map +1 -1
- package/dist/Resource.js +38 -27
- package/dist/Resource.js.map +1 -1
- package/dist/Space.d.ts +18 -4
- package/dist/Space.d.ts.map +1 -1
- package/dist/Space.js +64 -61
- package/dist/Space.js.map +1 -1
- package/dist/WasClient.d.ts +102 -54
- package/dist/WasClient.d.ts.map +1 -1
- package/dist/WasClient.js +212 -133
- package/dist/WasClient.js.map +1 -1
- package/dist/codec.d.ts +3 -2
- package/dist/codec.d.ts.map +1 -1
- package/dist/edv/EdvCodec.js +1 -1
- package/dist/edv/EdvCodec.js.map +1 -1
- package/dist/edv/WasTransport.d.ts +7 -4
- package/dist/edv/WasTransport.d.ts.map +1 -1
- package/dist/edv/WasTransport.js +39 -20
- package/dist/edv/WasTransport.js.map +1 -1
- package/dist/edv/acquire.d.ts +3 -3
- package/dist/edv/acquire.d.ts.map +1 -1
- package/dist/edv/acquire.js +3 -3
- package/dist/edv/acquire.js.map +1 -1
- package/dist/edv/cipher.d.ts +1 -1
- package/dist/edv/cipher.js +1 -1
- package/dist/edv/docCipher.d.ts +6 -5
- package/dist/edv/docCipher.d.ts.map +1 -1
- package/dist/edv/docCipher.js +6 -5
- package/dist/edv/docCipher.js.map +1 -1
- package/dist/edv/encryption.d.ts +2 -2
- package/dist/edv/encryption.d.ts.map +1 -1
- package/dist/edv/encryption.js +8 -6
- package/dist/edv/encryption.js.map +1 -1
- package/dist/edv/refreshingDocCipher.d.ts +3 -3
- package/dist/edv/refreshingDocCipher.d.ts.map +1 -1
- package/dist/edv/refreshingDocCipher.js +3 -3
- package/dist/edv/refreshingDocCipher.js.map +1 -1
- package/dist/edv/transportFactory.d.ts +3 -3
- package/dist/edv/transportFactory.d.ts.map +1 -1
- package/dist/edv/transportFactory.js +3 -3
- package/dist/edv/transportFactory.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 +7 -7
- package/dist/internal/codec.d.ts.map +1 -1
- package/dist/internal/codec.js +19 -18
- package/dist/internal/codec.js.map +1 -1
- package/dist/internal/conditional.d.ts +3 -3
- package/dist/internal/conditional.d.ts.map +1 -1
- package/dist/internal/conditional.js +5 -5
- package/dist/internal/conditional.js.map +1 -1
- package/dist/internal/grant.d.ts +15 -26
- package/dist/internal/grant.d.ts.map +1 -1
- package/dist/internal/grant.js +95 -29
- package/dist/internal/grant.js.map +1 -1
- package/dist/internal/meta.d.ts +8 -8
- package/dist/internal/meta.d.ts.map +1 -1
- package/dist/internal/meta.js +13 -10
- package/dist/internal/meta.js.map +1 -1
- package/dist/internal/paths.d.ts +332 -195
- package/dist/internal/paths.d.ts.map +1 -1
- package/dist/internal/paths.js +400 -367
- package/dist/internal/paths.js.map +1 -1
- package/dist/internal/policy.d.ts +23 -23
- package/dist/internal/policy.d.ts.map +1 -1
- package/dist/internal/policy.js +20 -20
- package/dist/internal/policy.js.map +1 -1
- package/dist/internal/request.d.ts +17 -21
- package/dist/internal/request.d.ts.map +1 -1
- package/dist/internal/request.js +10 -21
- package/dist/internal/request.js.map +1 -1
- package/dist/internal/revoke.d.ts +34 -13
- package/dist/internal/revoke.d.ts.map +1 -1
- package/dist/internal/revoke.js +97 -28
- package/dist/internal/revoke.js.map +1 -1
- package/dist/internal/service.d.ts +25 -7
- package/dist/internal/service.d.ts.map +1 -1
- package/dist/internal/service.js +49 -45
- package/dist/internal/service.js.map +1 -1
- package/dist/internal/write.d.ts +18 -18
- package/dist/internal/write.d.ts.map +1 -1
- package/dist/internal/write.js +27 -27
- package/dist/internal/write.js.map +1 -1
- package/dist/paths.d.ts +32 -25
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +32 -25
- package/dist/paths.js.map +1 -1
- package/dist/sync/port.d.ts +3 -3
- package/dist/sync/port.d.ts.map +1 -1
- package/dist/sync/port.js +12 -12
- package/dist/sync/port.js.map +1 -1
- package/dist/sync/provisioning.d.ts +10 -9
- package/dist/sync/provisioning.d.ts.map +1 -1
- package/dist/sync/provisioning.js +19 -18
- package/dist/sync/provisioning.js.map +1 -1
- package/dist/sync/types.d.ts +2 -2
- package/dist/types.d.ts +13 -5
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/WasClient.d.ts
CHANGED
|
@@ -9,6 +9,13 @@
|
|
|
9
9
|
* (`grant`), capability-rebuilding (`fromCapability`), the signed
|
|
10
10
|
* escape-hatch (`request`), and service discovery (`service`), which every
|
|
11
11
|
* signed request waits on.
|
|
12
|
+
*
|
|
13
|
+
* A server is identified by its service description URL, and a Space by its
|
|
14
|
+
* own absolute URL. The client is built from the service URL (or from a
|
|
15
|
+
* Spaces Repository URL, whose responses link to the service description),
|
|
16
|
+
* and it opens a Space handle on a URL it was handed: the `Location` of the
|
|
17
|
+
* create response, or one the caller holds. Nothing here assembles a Space
|
|
18
|
+
* URL from a server root, because the spec defines none.
|
|
12
19
|
*/
|
|
13
20
|
import type { ZcapClient } from '@interop/ezcap';
|
|
14
21
|
import type { HttpResponse } from '@interop/http-client';
|
|
@@ -18,32 +25,44 @@ import { Space } from './Space.js';
|
|
|
18
25
|
import { Collection } from './Collection.js';
|
|
19
26
|
import { Resource } from './Resource.js';
|
|
20
27
|
import type { EncryptionOverride, GrantOptions, HandleOptions, IDelegatedZcap, ISigner, IZcap, Json, RequestInput, CollectionResourcesList, ResourceSummary, ServiceInfo, SpaceListing } from './types.js';
|
|
28
|
+
/**
|
|
29
|
+
* The one way to name the server a client is built for: the URL of its
|
|
30
|
+
* service description, or the URL of its Spaces Repository (any response from
|
|
31
|
+
* which links to the service description). Exactly one is given.
|
|
32
|
+
*/
|
|
33
|
+
export type ServerLocator = {
|
|
34
|
+
serviceUrl: string;
|
|
35
|
+
spacesUrl?: undefined;
|
|
36
|
+
} | {
|
|
37
|
+
spacesUrl: string;
|
|
38
|
+
serviceUrl?: undefined;
|
|
39
|
+
};
|
|
21
40
|
export declare class WasClient {
|
|
22
41
|
#private;
|
|
23
42
|
/**
|
|
24
|
-
* The
|
|
25
|
-
*
|
|
43
|
+
* The service description's URL, when the client was built from one. Read
|
|
44
|
+
* directly by discovery.
|
|
26
45
|
*/
|
|
27
|
-
readonly
|
|
46
|
+
readonly serviceUrl?: string;
|
|
28
47
|
/**
|
|
29
|
-
* The
|
|
30
|
-
*
|
|
31
|
-
*
|
|
48
|
+
* The Spaces Repository URL the client was built from, when it was built
|
|
49
|
+
* from one, in canonical container form (trailing slash supplied).
|
|
50
|
+
* Discovery probes it for the `service` link. The URL `createSpace` and
|
|
51
|
+
* `listSpaces` address is the service description's `spaces` member, not
|
|
52
|
+
* this value.
|
|
32
53
|
*/
|
|
33
|
-
readonly
|
|
54
|
+
readonly spacesUrl?: string;
|
|
34
55
|
readonly zcapClient: ZcapClient;
|
|
35
56
|
readonly encryption?: EncryptionProvider;
|
|
36
57
|
/**
|
|
37
58
|
* @param options {object}
|
|
38
|
-
* @param options.
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
* server with no Spaces Repository (the spec leaves the endpoint
|
|
46
|
-
* optional) has no URL this constructor accepts and is not supported.
|
|
59
|
+
* @param [options.serviceUrl] {string} the URL of the server's service
|
|
60
|
+
* description. Discovery reads it with an unsigned `GET`. Exactly one of
|
|
61
|
+
* `serviceUrl` and `spacesUrl` is given
|
|
62
|
+
* @param [options.spacesUrl] {string} the server's Spaces Repository
|
|
63
|
+
* URL, for a caller that holds that rather than the service URL.
|
|
64
|
+
* Discovery sends an unsigned `HEAD` to it and follows the `service`
|
|
65
|
+
* link every response carries
|
|
47
66
|
* @param options.zcapClient {ZcapClient} an ezcap client holding the signer
|
|
48
67
|
* @param [options.encryption] {EncryptionProvider} the keystore that
|
|
49
68
|
* supplies keys for collections declared encrypted (by their `encryption`
|
|
@@ -54,15 +73,15 @@ export declare class WasClient {
|
|
|
54
73
|
* closed rather than silently downgrading to plaintext.
|
|
55
74
|
* @param [options.serviceDescription] {ServiceDescription} a service
|
|
56
75
|
* description the caller already holds (from a cache, say). The client
|
|
57
|
-
* selects its version from this copy instead of discovering the document
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
* discovers afresh.
|
|
62
|
-
* @throws {ValidationError} when
|
|
76
|
+
* selects its version from this copy instead of discovering the document,
|
|
77
|
+
* and still refuses it with `IncompatibleServerError` if it names no
|
|
78
|
+
* version this client speaks, or (for a client built from `serviceUrl`)
|
|
79
|
+
* if its `url` is another server's service URL. `service({ refresh:
|
|
80
|
+
* true })` discards it and discovers afresh.
|
|
81
|
+
* @throws {ValidationError} when neither or both of `serviceUrl` and
|
|
82
|
+
* `spacesUrl` are given, or the one given is not an absolute http(s) URL
|
|
63
83
|
*/
|
|
64
|
-
constructor({
|
|
65
|
-
serverUrl: string;
|
|
84
|
+
constructor({ serviceUrl, spacesUrl, zcapClient, encryption, serviceDescription }: ServerLocator & {
|
|
66
85
|
zcapClient: ZcapClient;
|
|
67
86
|
encryption?: EncryptionProvider;
|
|
68
87
|
serviceDescription?: ServiceDescription;
|
|
@@ -77,15 +96,15 @@ export declare class WasClient {
|
|
|
77
96
|
* and never needs a JSON-LD document loader to serve the suite's context.
|
|
78
97
|
*
|
|
79
98
|
* @param options {object}
|
|
80
|
-
* @param options.
|
|
99
|
+
* @param [options.serviceUrl] {string} see the constructor
|
|
100
|
+
* @param [options.spacesUrl] {string} see the constructor
|
|
81
101
|
* @param options.signer {ISigner}
|
|
82
102
|
* @param [options.encryption] {EncryptionProvider} see the constructor
|
|
83
103
|
* @param [options.serviceDescription] {ServiceDescription} see the
|
|
84
104
|
* constructor
|
|
85
105
|
* @returns {WasClient}
|
|
86
106
|
*/
|
|
87
|
-
static fromSigner({
|
|
88
|
-
serverUrl: string;
|
|
107
|
+
static fromSigner({ signer, encryption, serviceDescription, ...locator }: ServerLocator & {
|
|
89
108
|
signer: ISigner;
|
|
90
109
|
encryption?: EncryptionProvider;
|
|
91
110
|
serviceDescription?: ServiceDescription;
|
|
@@ -99,12 +118,12 @@ export declare class WasClient {
|
|
|
99
118
|
get controllerDid(): string;
|
|
100
119
|
/**
|
|
101
120
|
* Discovers the server's service description and the WAS version this
|
|
102
|
-
* client speaks with it.
|
|
103
|
-
* an unsigned `
|
|
104
|
-
* the
|
|
105
|
-
* result is memoized for the life of the
|
|
106
|
-
*
|
|
107
|
-
* the next call retries.
|
|
121
|
+
* client speaks with it. A client built from `serviceUrl` reads the document
|
|
122
|
+
* with an unsigned `GET`; one built from `spacesUrl` first follows the
|
|
123
|
+
* `rel="service"` link on the response to an unsigned `HEAD` of that URL.
|
|
124
|
+
* No capability is invoked. The result is memoized for the life of the
|
|
125
|
+
* client and shared by every handle; concurrent callers share one
|
|
126
|
+
* discovery, and a failure is not memoized, so the next call retries.
|
|
108
127
|
*
|
|
109
128
|
* Every signed request waits on this discovery, so a caller rarely needs to
|
|
110
129
|
* call it first. It is the way to read the server-wide affordances:
|
|
@@ -120,18 +139,21 @@ export declare class WasClient {
|
|
|
120
139
|
* caller about to rely on an affordance the server may have stopped
|
|
121
140
|
* advertising
|
|
122
141
|
* @returns {Promise<ServiceInfo>}
|
|
123
|
-
* @throws {IncompatibleServerError} when the
|
|
124
|
-
* `service` link (
|
|
125
|
-
* no version this client speaks
|
|
126
|
-
* other than `serverUrl`
|
|
142
|
+
* @throws {IncompatibleServerError} when the probed response carries no
|
|
143
|
+
* `service` link (the server predates v0.5), the document is malformed,
|
|
144
|
+
* or it lists no version this client speaks
|
|
127
145
|
*/
|
|
128
146
|
service(options?: {
|
|
129
147
|
refresh?: boolean;
|
|
130
148
|
}): Promise<ServiceInfo>;
|
|
131
149
|
/**
|
|
132
|
-
* Returns a lazy handle to a
|
|
150
|
+
* Returns a lazy handle to a Space by its absolute URL, as the server
|
|
151
|
+
* named it (the `Location` of the create response, a listing item's `url`,
|
|
152
|
+
* a stored pointer, or the URL a self-locating DID resolves to). No I/O.
|
|
153
|
+
* The URL is canonicalized (see `canonicalSpaceUrl` on the `./paths`
|
|
154
|
+
* entry), and every Collection and Resource URL derives from it.
|
|
133
155
|
*
|
|
134
|
-
* @param
|
|
156
|
+
* @param spaceUrl {string}
|
|
135
157
|
* @param options {object}
|
|
136
158
|
* @param [options.capability] {IZcap}
|
|
137
159
|
* @param [options.encryption] {EncryptionOverride} the default encryption
|
|
@@ -139,13 +161,16 @@ export declare class WasClient {
|
|
|
139
161
|
* `EncryptionOverride`); `space.collection(id, { encryption })` overrides
|
|
140
162
|
* it per collection
|
|
141
163
|
* @returns {Space}
|
|
164
|
+
* @throws {ValidationError} when `spaceUrl` is not a Space URL
|
|
142
165
|
*/
|
|
143
|
-
|
|
166
|
+
spaceAt(spaceUrl: string, options?: HandleOptions): Space;
|
|
144
167
|
/**
|
|
145
168
|
* Creates a space (server-generated id unless `id` is given). `name` is
|
|
146
169
|
* optional (both in the spec and on the reference server); `controller` must
|
|
147
170
|
* match the wrapped signer's DID (which is the default). The request goes
|
|
148
|
-
* to the Spaces Repository URL the service description names
|
|
171
|
+
* to the Spaces Repository URL the service description names, and the
|
|
172
|
+
* returned handle is opened on the Space URL the response's `Location`
|
|
173
|
+
* names: the server chooses where the Space lives.
|
|
149
174
|
*
|
|
150
175
|
* @param desc {object}
|
|
151
176
|
* @param [desc.id] {string}
|
|
@@ -157,6 +182,7 @@ export declare class WasClient {
|
|
|
157
182
|
* immutable after creation
|
|
158
183
|
* @returns {Promise<Space>}
|
|
159
184
|
* @throws {NotSupportedError} when the server has no Spaces Repository
|
|
185
|
+
* @throws {WasServerError} when the create response carries no `Location`
|
|
160
186
|
*/
|
|
161
187
|
createSpace(desc?: {
|
|
162
188
|
id?: string;
|
|
@@ -171,7 +197,8 @@ export declare class WasClient {
|
|
|
171
197
|
* authorized for, auxiliary spaces included. Each item carries the space's
|
|
172
198
|
* `type` array, the same value as its Space Metadata object's `type`, so a
|
|
173
199
|
* caller can tell an auxiliary space (one whose `type` names
|
|
174
|
-
* `AuxiliarySpace`) from a user-data one without reading each space
|
|
200
|
+
* `AuxiliarySpace`) from a user-data one without reading each space, and
|
|
201
|
+
* its `url`, the Space URL to open a handle on with {@link spaceAt}.
|
|
175
202
|
* An unauthorized caller is not an error -- the server
|
|
176
203
|
* returns an empty `items` list (the spec's explicit exception to 404
|
|
177
204
|
* masking), so nothing is revealed about which spaces exist.
|
|
@@ -246,7 +273,15 @@ export declare class WasClient {
|
|
|
246
273
|
/**
|
|
247
274
|
* Rebuilds an access handle from a received capability, returning a handle at
|
|
248
275
|
* the depth implied by the capability's `invocationTarget` (space /
|
|
249
|
-
* collection / resource), pre-bound with that capability.
|
|
276
|
+
* collection / resource), pre-bound with that capability. The Space is read
|
|
277
|
+
* off the capability's delegation chain, which starts at the Space's root
|
|
278
|
+
* capability (whose id encodes the Space URL), so a capability from any
|
|
279
|
+
* server locates its own Space with no out-of-band base. The root's target
|
|
280
|
+
* is taken to be the Space URL: a Space URL has no shape of its own, so a
|
|
281
|
+
* chain rooted elsewhere (a bare `was.grant({ target })` for a server with
|
|
282
|
+
* no Space hierarchy roots at its target) is read as if that target were
|
|
283
|
+
* the Space, and the server refuses the handle's requests. See `spaceUrlOf`
|
|
284
|
+
* on the `./paths` entry.
|
|
250
285
|
*
|
|
251
286
|
* A resource-scoped capability cannot read the Collection Metadata object, so
|
|
252
287
|
* an encryption-capable client cannot discover whether the collection is
|
|
@@ -263,26 +298,37 @@ export declare class WasClient {
|
|
|
263
298
|
* @param [options.encryption] {EncryptionOverride} per-handle encryption
|
|
264
299
|
* override for the returned handle (see `EncryptionOverride`)
|
|
265
300
|
* @returns {Space | Collection | Resource}
|
|
301
|
+
* @throws {ValidationError} when the capability's chain starts at no root
|
|
302
|
+
* capability or at one whose target cannot be a Space URL, or its
|
|
303
|
+
* `invocationTarget` is not at or beneath that Space, addresses a
|
|
304
|
+
* reserved sub-resource with no navigational handle, or is not in
|
|
305
|
+
* canonical form (so the handle's requests would fall outside it)
|
|
266
306
|
*/
|
|
267
307
|
fromCapability(zcap: IZcap, { encryption }?: {
|
|
268
308
|
encryption?: EncryptionOverride;
|
|
269
309
|
}): Space | Collection | Resource;
|
|
270
310
|
/**
|
|
271
311
|
* The general delegation primitive. Delegates a capability per `GrantOptions`
|
|
272
|
-
* and returns the signed zcap to hand off out-of-band. `target` (any URL)
|
|
273
|
-
* `
|
|
274
|
-
*
|
|
312
|
+
* and returns the signed zcap to hand off out-of-band. `target` (any URL),
|
|
313
|
+
* `spaceUrl` (the Space to root a revocable grant in) and `capability` (a
|
|
314
|
+
* parent capability to attenuate) make this a superset of the
|
|
315
|
+
* `space`/`collection` grant sugar, which fills the first two from the
|
|
316
|
+
* handle. Without `spaceUrl` or `capability`, the grant is rooted at the
|
|
317
|
+
* target's own root capability: the shape for a server with no Space
|
|
318
|
+
* hierarchy (fixed collections, or resources alone), where there is no
|
|
319
|
+
* Space to root a chain in. Such a grant is not Space-revocable.
|
|
275
320
|
*
|
|
276
321
|
* @param options {GrantOptions}
|
|
277
322
|
* @returns {Promise<IDelegatedZcap>}
|
|
278
323
|
*/
|
|
279
324
|
grant(options: GrantOptions): Promise<IDelegatedZcap>;
|
|
280
325
|
/**
|
|
281
|
-
* The general revocation primitive -- the inverse of {@link grant}.
|
|
282
|
-
* the owning
|
|
283
|
-
*
|
|
284
|
-
*
|
|
285
|
-
* `
|
|
326
|
+
* The general revocation primitive -- the inverse of {@link grant}. Reads
|
|
327
|
+
* the owning Space off the capability's delegation chain (a Space-rooted
|
|
328
|
+
* chain starts at the Space's root capability) and submits it to that
|
|
329
|
+
* Space's revocation endpoint. Equivalent to `was.spaceAt(url).revoke(zcap)`.
|
|
330
|
+
* The chain root's target is taken to be the Space (see `spaceUrlOf` on the
|
|
331
|
+
* `./paths` entry); the server refuses a chain not rooted exactly in it.
|
|
286
332
|
*
|
|
287
333
|
* Revocation is scoped to one space: there is no cross-space or global
|
|
288
334
|
* revocation. See {@link Space.revoke} for who may call it, what it does and
|
|
@@ -290,12 +336,14 @@ export declare class WasClient {
|
|
|
290
336
|
*
|
|
291
337
|
* @param zcap {IDelegatedZcap} the delegated capability to revoke
|
|
292
338
|
* @returns {Promise<void>}
|
|
339
|
+
* @throws {ValidationError} when the capability's chain starts at no root
|
|
340
|
+
* capability, or at one whose target cannot be a Space URL
|
|
293
341
|
*/
|
|
294
342
|
revoke(zcap: IDelegatedZcap): Promise<void>;
|
|
295
343
|
/**
|
|
296
|
-
* The signed escape hatch, mirroring ezcap's generic `request()`.
|
|
297
|
-
*
|
|
298
|
-
*
|
|
344
|
+
* The signed escape hatch, mirroring ezcap's generic `request()`. Takes an
|
|
345
|
+
* absolute `url`, defaults `action` to `method`, uppercases both (as
|
|
346
|
+
* {@link grant} does, so `'put'` signs `PUT`), and signs via the wrapped
|
|
299
347
|
* client. Returns the raw `HttpResponse` and throws raw ky/ezcap
|
|
300
348
|
* errors -- it does not apply the null-on-404 or typed-error conveniences.
|
|
301
349
|
* Like every signed request it waits on {@link service} first, and rejects
|
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
|
|
1
|
+
{"version":3,"file":"WasClient.d.ts","sourceRoot":"","sources":["../src/WasClient.ts"],"names":[],"mappings":"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"}
|