@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/internal/paths.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/internal/paths.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,112 +3,112 @@
|
|
|
3
3
|
*/
|
|
4
4
|
/**
|
|
5
5
|
* Shared access-control policy I/O for the Space / Collection / Resource
|
|
6
|
-
* handles, which differ only in the policy sub-resource
|
|
6
|
+
* handles, which differ only in the policy sub-resource URL. Each handle wraps
|
|
7
7
|
* these with its own JSDoc and the trivial `isPublic` / `setPublic` sugar.
|
|
8
8
|
*/
|
|
9
9
|
import type { ClientContext } from './request.js';
|
|
10
10
|
import type { WritePrecondition } from './conditional.js';
|
|
11
11
|
import type { IZcap, PolicyDocument } from '../types.js';
|
|
12
12
|
/**
|
|
13
|
-
* Reads the access-control policy at `
|
|
13
|
+
* Reads the access-control policy at `policyUrl` together with its `ETag`
|
|
14
14
|
* validator. Returns `null` when no policy is set (or it is not visible to
|
|
15
15
|
* you); `etag` is absent only where the header did not reach the client.
|
|
16
16
|
*
|
|
17
17
|
* @param context {ClientContext}
|
|
18
18
|
* @param options {object}
|
|
19
|
-
* @param options.
|
|
19
|
+
* @param options.policyUrl {string} the policy sub-resource URL
|
|
20
20
|
* @param [options.capability] {IZcap}
|
|
21
21
|
* @returns {Promise<{ policy: PolicyDocument; etag?: string } | null>}
|
|
22
22
|
*/
|
|
23
|
-
export declare function readPolicyWithEtag(context: ClientContext, {
|
|
24
|
-
|
|
23
|
+
export declare function readPolicyWithEtag(context: ClientContext, { policyUrl, capability }: {
|
|
24
|
+
policyUrl: string;
|
|
25
25
|
capability?: IZcap;
|
|
26
26
|
}): Promise<{
|
|
27
27
|
policy: PolicyDocument;
|
|
28
28
|
etag?: string;
|
|
29
29
|
} | null>;
|
|
30
30
|
/**
|
|
31
|
-
* Reads the access-control policy at `
|
|
31
|
+
* Reads the access-control policy at `policyUrl`. Returns `null` when no policy
|
|
32
32
|
* is set (or it is not visible to you).
|
|
33
33
|
*
|
|
34
34
|
* @param context {ClientContext}
|
|
35
35
|
* @param options {object}
|
|
36
|
-
* @param options.
|
|
36
|
+
* @param options.policyUrl {string} the policy sub-resource URL
|
|
37
37
|
* @param [options.capability] {IZcap}
|
|
38
38
|
* @returns {Promise<PolicyDocument | null>}
|
|
39
39
|
*/
|
|
40
|
-
export declare function readPolicy(context: ClientContext, {
|
|
41
|
-
|
|
40
|
+
export declare function readPolicy(context: ClientContext, { policyUrl, capability }: {
|
|
41
|
+
policyUrl: string;
|
|
42
42
|
capability?: IZcap;
|
|
43
43
|
}): Promise<PolicyDocument | null>;
|
|
44
44
|
/**
|
|
45
|
-
* Sets (creates or replaces) the access-control policy at `
|
|
45
|
+
* Sets (creates or replaces) the access-control policy at `policyUrl`, under
|
|
46
46
|
* an optional precondition. Throws `ValidationError` when both `ifMatch` and
|
|
47
47
|
* `ifNoneMatch` are named.
|
|
48
48
|
*
|
|
49
49
|
* @param context {ClientContext}
|
|
50
50
|
* @param options {object}
|
|
51
|
-
* @param options.
|
|
51
|
+
* @param options.policyUrl {string} the policy sub-resource URL
|
|
52
52
|
* @param options.policy {PolicyDocument}
|
|
53
53
|
* @param [options.ifMatch] {string} update only if the policy's ETag matches
|
|
54
54
|
* @param [options.ifNoneMatch] {boolean} write only if no policy is set
|
|
55
55
|
* @param [options.capability] {IZcap}
|
|
56
56
|
* @returns {Promise<{ etag?: string }>} the policy's new ETag
|
|
57
57
|
*/
|
|
58
|
-
export declare function writePolicy(context: ClientContext, {
|
|
59
|
-
|
|
58
|
+
export declare function writePolicy(context: ClientContext, { policyUrl, policy, ifMatch, ifNoneMatch, capability }: WritePrecondition & {
|
|
59
|
+
policyUrl: string;
|
|
60
60
|
policy: PolicyDocument;
|
|
61
61
|
capability?: IZcap;
|
|
62
62
|
}): Promise<{
|
|
63
63
|
etag?: string;
|
|
64
64
|
}>;
|
|
65
65
|
/**
|
|
66
|
-
* Whether the policy at `
|
|
66
|
+
* Whether the policy at `policyUrl` is `PublicCanRead` -- the shared body of
|
|
67
67
|
* the `isPublic()` sugar on the three handle classes.
|
|
68
68
|
*
|
|
69
69
|
* @param context {ClientContext}
|
|
70
70
|
* @param options {object}
|
|
71
|
-
* @param options.
|
|
71
|
+
* @param options.policyUrl {string} the policy sub-resource URL
|
|
72
72
|
* @param [options.capability] {IZcap}
|
|
73
73
|
* @returns {Promise<boolean>}
|
|
74
74
|
*/
|
|
75
75
|
export declare function isPublicPolicy(context: ClientContext, options: {
|
|
76
|
-
|
|
76
|
+
policyUrl: string;
|
|
77
77
|
capability?: IZcap;
|
|
78
78
|
}): Promise<boolean>;
|
|
79
79
|
/**
|
|
80
|
-
* Sets the policy at `
|
|
80
|
+
* Sets the policy at `policyUrl` to `PublicCanRead` -- the shared body of the
|
|
81
81
|
* `setPublic()` sugar on the three handle classes.
|
|
82
82
|
*
|
|
83
83
|
* @param context {ClientContext}
|
|
84
84
|
* @param options {object}
|
|
85
|
-
* @param options.
|
|
85
|
+
* @param options.policyUrl {string} the policy sub-resource URL
|
|
86
86
|
* @param [options.ifMatch] {string} update only if the policy's ETag matches
|
|
87
87
|
* @param [options.ifNoneMatch] {boolean} write only if no policy is set
|
|
88
88
|
* @param [options.capability] {IZcap}
|
|
89
89
|
* @returns {Promise<{ etag?: string }>} the policy's new ETag
|
|
90
90
|
*/
|
|
91
91
|
export declare function setPublicPolicy(context: ClientContext, options: WritePrecondition & {
|
|
92
|
-
|
|
92
|
+
policyUrl: string;
|
|
93
93
|
capability?: IZcap;
|
|
94
94
|
}): Promise<{
|
|
95
95
|
etag?: string;
|
|
96
96
|
}>;
|
|
97
97
|
/**
|
|
98
|
-
* Removes the access-control policy at `
|
|
98
|
+
* Removes the access-control policy at `policyUrl`, reverting to
|
|
99
99
|
* capability-only access. Idempotent: deleting an absent policy succeeds. The
|
|
100
100
|
* server keeps a tombstone in the policy's place.
|
|
101
101
|
*
|
|
102
102
|
* @param context {ClientContext}
|
|
103
103
|
* @param options {object}
|
|
104
|
-
* @param options.
|
|
104
|
+
* @param options.policyUrl {string} the policy sub-resource URL
|
|
105
105
|
* @param [options.ifMatch] {string} delete only if the policy's ETag matches
|
|
106
106
|
* @param [options.capability] {IZcap}
|
|
107
107
|
* @returns {Promise<{ etag?: string }>} the tombstone's ETag; absent when
|
|
108
108
|
* there was no policy to delete
|
|
109
109
|
*/
|
|
110
|
-
export declare function deletePolicy(context: ClientContext, {
|
|
111
|
-
|
|
110
|
+
export declare function deletePolicy(context: ClientContext, { policyUrl, ifMatch, capability }: {
|
|
111
|
+
policyUrl: string;
|
|
112
112
|
ifMatch?: string;
|
|
113
113
|
capability?: IZcap;
|
|
114
114
|
}): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/internal/policy.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;GAIG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAGjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAExD;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,aAAa,EACtB,EAAE,
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/internal/policy.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;GAIG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAGjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAExD;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,aAAa,EACtB,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,KAAK,CAAA;CAAE,GACnE,OAAO,CAAC;IAAE,MAAM,EAAE,cAAc,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAM3D;AAED;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,aAAa,EACtB,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,KAAK,CAAA;CAAE,GACnE,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAEhC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,aAAa,EACtB,EACE,SAAS,EACT,MAAM,EACN,OAAO,EACP,WAAW,EACX,UAAU,EACX,EAAE,iBAAiB,GAAG;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,cAAc,CAAA;IACtB,UAAU,CAAC,EAAE,KAAK,CAAA;CACnB,GACA,OAAO,CAAC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAS5B;AAED;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,KAAK,CAAA;CAAE,GACjD,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,iBAAiB,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,KAAK,CAAA;CAAE,GACrE,OAAO,CAAC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAK5B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,aAAa,EACtB,EACE,SAAS,EACT,OAAO,EACP,UAAU,EACX,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,KAAK,CAAA;CAAE,GAC7D,OAAO,CAAC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAS5B"}
|
package/dist/internal/policy.js
CHANGED
|
@@ -1,53 +1,53 @@
|
|
|
1
1
|
import { readData, readDataWithEtag, send } from './request.js';
|
|
2
2
|
import { readEtag, writeHeaders } from './conditional.js';
|
|
3
3
|
/**
|
|
4
|
-
* Reads the access-control policy at `
|
|
4
|
+
* Reads the access-control policy at `policyUrl` together with its `ETag`
|
|
5
5
|
* validator. Returns `null` when no policy is set (or it is not visible to
|
|
6
6
|
* you); `etag` is absent only where the header did not reach the client.
|
|
7
7
|
*
|
|
8
8
|
* @param context {ClientContext}
|
|
9
9
|
* @param options {object}
|
|
10
|
-
* @param options.
|
|
10
|
+
* @param options.policyUrl {string} the policy sub-resource URL
|
|
11
11
|
* @param [options.capability] {IZcap}
|
|
12
12
|
* @returns {Promise<{ policy: PolicyDocument; etag?: string } | null>}
|
|
13
13
|
*/
|
|
14
|
-
export async function readPolicyWithEtag(context, {
|
|
14
|
+
export async function readPolicyWithEtag(context, { policyUrl, capability }) {
|
|
15
15
|
const read = await readDataWithEtag(context, {
|
|
16
|
-
|
|
16
|
+
url: policyUrl,
|
|
17
17
|
capability
|
|
18
18
|
});
|
|
19
19
|
return read === null ? null : { policy: read.data, etag: read.etag };
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
|
-
* Reads the access-control policy at `
|
|
22
|
+
* Reads the access-control policy at `policyUrl`. Returns `null` when no policy
|
|
23
23
|
* is set (or it is not visible to you).
|
|
24
24
|
*
|
|
25
25
|
* @param context {ClientContext}
|
|
26
26
|
* @param options {object}
|
|
27
|
-
* @param options.
|
|
27
|
+
* @param options.policyUrl {string} the policy sub-resource URL
|
|
28
28
|
* @param [options.capability] {IZcap}
|
|
29
29
|
* @returns {Promise<PolicyDocument | null>}
|
|
30
30
|
*/
|
|
31
|
-
export async function readPolicy(context, {
|
|
32
|
-
return readData(context, {
|
|
31
|
+
export async function readPolicy(context, { policyUrl, capability }) {
|
|
32
|
+
return readData(context, { url: policyUrl, capability });
|
|
33
33
|
}
|
|
34
34
|
/**
|
|
35
|
-
* Sets (creates or replaces) the access-control policy at `
|
|
35
|
+
* Sets (creates or replaces) the access-control policy at `policyUrl`, under
|
|
36
36
|
* an optional precondition. Throws `ValidationError` when both `ifMatch` and
|
|
37
37
|
* `ifNoneMatch` are named.
|
|
38
38
|
*
|
|
39
39
|
* @param context {ClientContext}
|
|
40
40
|
* @param options {object}
|
|
41
|
-
* @param options.
|
|
41
|
+
* @param options.policyUrl {string} the policy sub-resource URL
|
|
42
42
|
* @param options.policy {PolicyDocument}
|
|
43
43
|
* @param [options.ifMatch] {string} update only if the policy's ETag matches
|
|
44
44
|
* @param [options.ifNoneMatch] {boolean} write only if no policy is set
|
|
45
45
|
* @param [options.capability] {IZcap}
|
|
46
46
|
* @returns {Promise<{ etag?: string }>} the policy's new ETag
|
|
47
47
|
*/
|
|
48
|
-
export async function writePolicy(context, {
|
|
48
|
+
export async function writePolicy(context, { policyUrl, policy, ifMatch, ifNoneMatch, capability }) {
|
|
49
49
|
const response = await send(context, {
|
|
50
|
-
|
|
50
|
+
url: policyUrl,
|
|
51
51
|
method: 'PUT',
|
|
52
52
|
capability,
|
|
53
53
|
json: policy,
|
|
@@ -56,12 +56,12 @@ export async function writePolicy(context, { policyPath, policy, ifMatch, ifNone
|
|
|
56
56
|
return { etag: readEtag(response) };
|
|
57
57
|
}
|
|
58
58
|
/**
|
|
59
|
-
* Whether the policy at `
|
|
59
|
+
* Whether the policy at `policyUrl` is `PublicCanRead` -- the shared body of
|
|
60
60
|
* the `isPublic()` sugar on the three handle classes.
|
|
61
61
|
*
|
|
62
62
|
* @param context {ClientContext}
|
|
63
63
|
* @param options {object}
|
|
64
|
-
* @param options.
|
|
64
|
+
* @param options.policyUrl {string} the policy sub-resource URL
|
|
65
65
|
* @param [options.capability] {IZcap}
|
|
66
66
|
* @returns {Promise<boolean>}
|
|
67
67
|
*/
|
|
@@ -70,12 +70,12 @@ export async function isPublicPolicy(context, options) {
|
|
|
70
70
|
return policy?.type === 'PublicCanRead';
|
|
71
71
|
}
|
|
72
72
|
/**
|
|
73
|
-
* Sets the policy at `
|
|
73
|
+
* Sets the policy at `policyUrl` to `PublicCanRead` -- the shared body of the
|
|
74
74
|
* `setPublic()` sugar on the three handle classes.
|
|
75
75
|
*
|
|
76
76
|
* @param context {ClientContext}
|
|
77
77
|
* @param options {object}
|
|
78
|
-
* @param options.
|
|
78
|
+
* @param options.policyUrl {string} the policy sub-resource URL
|
|
79
79
|
* @param [options.ifMatch] {string} update only if the policy's ETag matches
|
|
80
80
|
* @param [options.ifNoneMatch] {boolean} write only if no policy is set
|
|
81
81
|
* @param [options.capability] {IZcap}
|
|
@@ -88,21 +88,21 @@ export async function setPublicPolicy(context, options) {
|
|
|
88
88
|
});
|
|
89
89
|
}
|
|
90
90
|
/**
|
|
91
|
-
* Removes the access-control policy at `
|
|
91
|
+
* Removes the access-control policy at `policyUrl`, reverting to
|
|
92
92
|
* capability-only access. Idempotent: deleting an absent policy succeeds. The
|
|
93
93
|
* server keeps a tombstone in the policy's place.
|
|
94
94
|
*
|
|
95
95
|
* @param context {ClientContext}
|
|
96
96
|
* @param options {object}
|
|
97
|
-
* @param options.
|
|
97
|
+
* @param options.policyUrl {string} the policy sub-resource URL
|
|
98
98
|
* @param [options.ifMatch] {string} delete only if the policy's ETag matches
|
|
99
99
|
* @param [options.capability] {IZcap}
|
|
100
100
|
* @returns {Promise<{ etag?: string }>} the tombstone's ETag; absent when
|
|
101
101
|
* there was no policy to delete
|
|
102
102
|
*/
|
|
103
|
-
export async function deletePolicy(context, {
|
|
103
|
+
export async function deletePolicy(context, { policyUrl, ifMatch, capability }) {
|
|
104
104
|
const response = await send(context, {
|
|
105
|
-
|
|
105
|
+
url: policyUrl,
|
|
106
106
|
method: 'DELETE',
|
|
107
107
|
capability,
|
|
108
108
|
idempotent: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/internal/policy.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAC/D,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAIzD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAsB,EACtB,EAAE,
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/internal/policy.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAC/D,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAIzD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAsB,EACtB,EAAE,SAAS,EAAE,UAAU,EAA6C;IAEpE,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAiB,OAAO,EAAE;QAC3D,GAAG,EAAE,SAAS;QACd,UAAU;KACX,CAAC,CAAA;IACF,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAA;AACtE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAsB,EACtB,EAAE,SAAS,EAAE,UAAU,EAA6C;IAEpE,OAAO,QAAQ,CAAiB,OAAO,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAA;AAC1E,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAsB,EACtB,EACE,SAAS,EACT,MAAM,EACN,OAAO,EACP,WAAW,EACX,UAAU,EAKX;IAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE;QACnC,GAAG,EAAE,SAAS;QACd,MAAM,EAAE,KAAK;QACb,UAAU;QACV,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,YAAY,CAAC,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC;KAClE,CAAC,CAAA;IACF,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAA;AACrC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAsB,EACtB,OAAkD;IAElD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACjD,OAAO,MAAM,EAAE,IAAI,KAAK,eAAe,CAAA;AACzC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAsB,EACtB,OAAsE;IAEtE,OAAO,WAAW,CAAC,OAAO,EAAE;QAC1B,GAAG,OAAO;QACV,MAAM,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;KAClC,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAsB,EACtB,EACE,SAAS,EACT,OAAO,EACP,UAAU,EACkD;IAE9D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE;QACnC,GAAG,EAAE,SAAS;QACd,MAAM,EAAE,QAAQ;QAChB,UAAU;QACV,UAAU,EAAE,IAAI;QAChB,OAAO,EAAE,YAAY,CAAC,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC;KACrD,CAAC,CAAA;IACF,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAA;AACrC,CAAC"}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* Copyright (c) 2026 Interop Alliance. All rights reserved.
|
|
3
3
|
*/
|
|
4
4
|
/**
|
|
5
|
-
* The load-bearing transport layer: wraps `zcapClient.request(...)
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* The load-bearing transport layer: wraps `zcapClient.request(...)` on an
|
|
6
|
+
* absolute URL, defaulting the capability `action` to the HTTP method (never
|
|
7
|
+
* ezcap's `read`/`write`). `send()` adds the typed-error
|
|
8
8
|
* mapping and the null-on-404 read translation; `rawRequest()` is the
|
|
9
9
|
* unmapped escape hatch used by `was.request()`. Every signed request first
|
|
10
10
|
* awaits the context's memoized service discovery, so no request reaches a
|
|
@@ -15,11 +15,10 @@ import type { HttpResponse } from '@interop/http-client';
|
|
|
15
15
|
import type { EncryptionProvider } from '../codec.js';
|
|
16
16
|
import type { IZcap, RequestInput, ServiceInfo } from '../types.js';
|
|
17
17
|
/**
|
|
18
|
-
* The shared context threaded through every handle: the
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
* request waits on.
|
|
18
|
+
* The shared context threaded through every handle: the wrapped ezcap client,
|
|
19
|
+
* the controller DID of its signer, the optional encryption provider that
|
|
20
|
+
* supplies an encrypting codec for the collections the client holds keys
|
|
21
|
+
* for, and the memoized service discovery every signed request waits on.
|
|
23
22
|
*
|
|
24
23
|
* `controllerDid` is a lazy read, not a stored string: `WasClient` backs it
|
|
25
24
|
* with a getter so that building a context (and therefore a handle) never
|
|
@@ -29,16 +28,14 @@ import type { IZcap, RequestInput, ServiceInfo } from '../types.js';
|
|
|
29
28
|
* controller) rather than at construction.
|
|
30
29
|
*/
|
|
31
30
|
export interface ClientContext {
|
|
32
|
-
baseUrl: string;
|
|
33
31
|
zcapClient: ZcapClient;
|
|
34
32
|
controllerDid: string;
|
|
35
33
|
encryption?: EncryptionProvider;
|
|
36
34
|
service: () => Promise<ServiceInfo>;
|
|
37
35
|
}
|
|
38
36
|
/**
|
|
39
|
-
* A single signed request: the public `RequestInput` shape (
|
|
40
|
-
*
|
|
41
|
-
* `send()`-level 404 translations.
|
|
37
|
+
* A single signed request: the public `RequestInput` shape (an absolute
|
|
38
|
+
* `url`) plus the `send()`-level 404 translations.
|
|
42
39
|
*/
|
|
43
40
|
export interface SendInput extends RequestInput {
|
|
44
41
|
/**
|
|
@@ -77,8 +74,7 @@ export declare function fetchMapped(url: string, init: RequestInit): Promise<Res
|
|
|
77
74
|
* Sends an **unsigned** request (a plain `fetch`, no capability invocation), for
|
|
78
75
|
* reading public (`PublicCanRead`) resources that need no authorization. Applies
|
|
79
76
|
* the same typed-error mapping and null-on-404 read translation as `send()`.
|
|
80
|
-
* Takes an absolute `url` -- public reads address a resource by its link
|
|
81
|
-
* a server-relative path.
|
|
77
|
+
* Takes an absolute `url` -- public reads address a resource by its link.
|
|
82
78
|
*
|
|
83
79
|
* @param input {object}
|
|
84
80
|
* @param input.url {string} absolute URL to read
|
|
@@ -114,18 +110,18 @@ export declare function unsignedRequest(input: {
|
|
|
114
110
|
export declare function send(context: ClientContext, input: SendInput): Promise<HttpResponse | null>;
|
|
115
111
|
/**
|
|
116
112
|
* The GET-a-JSON-description read shared across the handles: a signed
|
|
117
|
-
* null-on-404 `GET` of `
|
|
113
|
+
* null-on-404 `GET` of `url` whose pre-parsed body is unwrapped as `T`. Both
|
|
118
114
|
* a missing/unauthorized target (404) and a bodyless/non-JSON response resolve
|
|
119
115
|
* to `null` (see `dataOrNull`).
|
|
120
116
|
*
|
|
121
117
|
* @param context {ClientContext}
|
|
122
118
|
* @param options {object}
|
|
123
|
-
* @param options.
|
|
119
|
+
* @param options.url {string} the absolute URL to read
|
|
124
120
|
* @param [options.capability] {IZcap} capability attached to the request
|
|
125
121
|
* @returns {Promise<T | null>}
|
|
126
122
|
*/
|
|
127
|
-
export declare function readData<T>(context: ClientContext, {
|
|
128
|
-
|
|
123
|
+
export declare function readData<T>(context: ClientContext, { url, capability }: {
|
|
124
|
+
url: string;
|
|
129
125
|
capability?: IZcap;
|
|
130
126
|
}): Promise<T | null>;
|
|
131
127
|
/**
|
|
@@ -136,12 +132,12 @@ export declare function readData<T>(context: ClientContext, { path, capability }
|
|
|
136
132
|
*
|
|
137
133
|
* @param context {ClientContext}
|
|
138
134
|
* @param options {object}
|
|
139
|
-
* @param options.
|
|
135
|
+
* @param options.url {string} the absolute URL to read
|
|
140
136
|
* @param [options.capability] {IZcap} capability attached to the request
|
|
141
137
|
* @returns {Promise<{ data: T; etag?: string } | null>}
|
|
142
138
|
*/
|
|
143
|
-
export declare function readDataWithEtag<T>(context: ClientContext, {
|
|
144
|
-
|
|
139
|
+
export declare function readDataWithEtag<T>(context: ClientContext, { url, capability }: {
|
|
140
|
+
url: string;
|
|
145
141
|
capability?: IZcap;
|
|
146
142
|
}): Promise<{
|
|
147
143
|
data: T;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/internal/request.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/internal/request.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAIxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEnE;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,UAAU,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,kBAAkB,CAAA;IAC/B,OAAO,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,CAAA;CACpC;AAED;;;GAGG;AACH,MAAM,WAAW,SAAU,SAAQ,YAAY;IAC7C;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;IACd;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,YAAY,CAAC,CAiBvB;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,QAAQ,CAAC,CAMnB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE;IAC3C,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,IAAI,CAAC,EAAE,OAAO,CAAA;CACf,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CA4B/B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,IAAI,CACxB,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAmC9B;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,QAAQ,CAAC,CAAC,EAC9B,OAAO,EAAE,aAAa,EACtB,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,KAAK,CAAA;CAAE,GACvD,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAQnB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,EACtC,OAAO,EAAE,aAAa,EACtB,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,KAAK,CAAA;CAAE,GACvD,OAAO,CAAC;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAY5C"}
|
package/dist/internal/request.js
CHANGED
|
@@ -1,17 +1,7 @@
|
|
|
1
1
|
import { isValidTarget } from '@interop/zcap';
|
|
2
2
|
import { NotFoundError, WasError, mapError, httpStatus } from '../errors.js';
|
|
3
|
-
import { toUrl } from './paths.js';
|
|
4
3
|
import { dataOrNull } from './content.js';
|
|
5
4
|
import { readEtag } from './conditional.js';
|
|
6
|
-
function resolveRequestUrl(context, input) {
|
|
7
|
-
if (input.url !== undefined) {
|
|
8
|
-
return input.url;
|
|
9
|
-
}
|
|
10
|
-
if (input.path === undefined) {
|
|
11
|
-
throw new TypeError('Either "path" or "url" is required.');
|
|
12
|
-
}
|
|
13
|
-
return toUrl({ baseUrl: context.baseUrl, path: input.path });
|
|
14
|
-
}
|
|
15
5
|
/**
|
|
16
6
|
* Signs and sends a request via the wrapped ezcap client, returning the raw
|
|
17
7
|
* `HttpResponse` and throwing the raw ky/ezcap error. Does not apply error
|
|
@@ -24,7 +14,7 @@ function resolveRequestUrl(context, input) {
|
|
|
24
14
|
* @returns {Promise<HttpResponse>}
|
|
25
15
|
*/
|
|
26
16
|
export async function rawRequest(context, input) {
|
|
27
|
-
const url =
|
|
17
|
+
const { url } = input;
|
|
28
18
|
await context.service();
|
|
29
19
|
// Uppercase the method and the action, as `grant()` does: the server
|
|
30
20
|
// matches the signed action case-sensitively against the request method,
|
|
@@ -62,8 +52,7 @@ export async function fetchMapped(url, init) {
|
|
|
62
52
|
* Sends an **unsigned** request (a plain `fetch`, no capability invocation), for
|
|
63
53
|
* reading public (`PublicCanRead`) resources that need no authorization. Applies
|
|
64
54
|
* the same typed-error mapping and null-on-404 read translation as `send()`.
|
|
65
|
-
* Takes an absolute `url` -- public reads address a resource by its link
|
|
66
|
-
* a server-relative path.
|
|
55
|
+
* Takes an absolute `url` -- public reads address a resource by its link.
|
|
67
56
|
*
|
|
68
57
|
* @param input {object}
|
|
69
58
|
* @param input.url {string} absolute URL to read
|
|
@@ -121,7 +110,7 @@ export async function unsignedRequest(input) {
|
|
|
121
110
|
export async function send(context, input) {
|
|
122
111
|
const invocationTarget = input.capability?.invocationTarget;
|
|
123
112
|
if (invocationTarget !== undefined) {
|
|
124
|
-
const url =
|
|
113
|
+
const { url } = input;
|
|
125
114
|
if (!isValidTarget({
|
|
126
115
|
invocationTarget: url,
|
|
127
116
|
baseInvocationTarget: invocationTarget,
|
|
@@ -150,19 +139,19 @@ export async function send(context, input) {
|
|
|
150
139
|
}
|
|
151
140
|
/**
|
|
152
141
|
* The GET-a-JSON-description read shared across the handles: a signed
|
|
153
|
-
* null-on-404 `GET` of `
|
|
142
|
+
* null-on-404 `GET` of `url` whose pre-parsed body is unwrapped as `T`. Both
|
|
154
143
|
* a missing/unauthorized target (404) and a bodyless/non-JSON response resolve
|
|
155
144
|
* to `null` (see `dataOrNull`).
|
|
156
145
|
*
|
|
157
146
|
* @param context {ClientContext}
|
|
158
147
|
* @param options {object}
|
|
159
|
-
* @param options.
|
|
148
|
+
* @param options.url {string} the absolute URL to read
|
|
160
149
|
* @param [options.capability] {IZcap} capability attached to the request
|
|
161
150
|
* @returns {Promise<T | null>}
|
|
162
151
|
*/
|
|
163
|
-
export async function readData(context, {
|
|
152
|
+
export async function readData(context, { url, capability }) {
|
|
164
153
|
const response = await send(context, {
|
|
165
|
-
|
|
154
|
+
url,
|
|
166
155
|
method: 'GET',
|
|
167
156
|
capability,
|
|
168
157
|
read: true
|
|
@@ -177,13 +166,13 @@ export async function readData(context, { path, capability }) {
|
|
|
177
166
|
*
|
|
178
167
|
* @param context {ClientContext}
|
|
179
168
|
* @param options {object}
|
|
180
|
-
* @param options.
|
|
169
|
+
* @param options.url {string} the absolute URL to read
|
|
181
170
|
* @param [options.capability] {IZcap} capability attached to the request
|
|
182
171
|
* @returns {Promise<{ data: T; etag?: string } | null>}
|
|
183
172
|
*/
|
|
184
|
-
export async function readDataWithEtag(context, {
|
|
173
|
+
export async function readDataWithEtag(context, { url, capability }) {
|
|
185
174
|
const response = await send(context, {
|
|
186
|
-
|
|
175
|
+
url,
|
|
187
176
|
method: 'GET',
|
|
188
177
|
capability,
|
|
189
178
|
read: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/internal/request.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAE7C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC5E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/internal/request.ts"],"names":[],"mappings":"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"}
|