@interop/was-conformance-suite 0.16.0 → 0.17.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 +1 -0
- package/dist/suites/container-rule-api.d.ts +10 -0
- package/dist/suites/container-rule-api.d.ts.map +1 -0
- package/dist/suites/container-rule-api.js +574 -0
- package/dist/suites/container-rule-api.js.map +1 -0
- package/dist/suites/index.d.ts +2 -1
- package/dist/suites/index.d.ts.map +1 -1
- package/dist/suites/index.js +3 -1
- package/dist/suites/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -134,6 +134,7 @@ The available suite ids (for `--suite`) are:
|
|
|
134
134
|
| `client-spaces` | WasClient -- Spaces & Collections |
|
|
135
135
|
| `collection-api` | Collections API |
|
|
136
136
|
| `conditional-requests-api` | Conditional requests & caching |
|
|
137
|
+
| `container-rule-api` | The container rule |
|
|
137
138
|
| `delegation-cryptosuites` | Delegation-proof cryptosuites |
|
|
138
139
|
| `denial-reasons-api` | Typed denial reasons (capability-expired / -revoked) |
|
|
139
140
|
| `digest-api` | Request body integrity (Digest) negatives |
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Suite } from '../harness/types.js';
|
|
2
|
+
interface State {
|
|
3
|
+
alice: any;
|
|
4
|
+
aliceDelegatedApp: any;
|
|
5
|
+
/** Every Space provisioned by a test, removed in teardown. */
|
|
6
|
+
spaceIds: string[];
|
|
7
|
+
}
|
|
8
|
+
export declare const containerRuleApi: Suite<State>;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=container-rule-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"container-rule-api.d.ts","sourceRoot":"","sources":["../../src/suites/container-rule-api.ts"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EAAE,KAAK,EAAe,MAAM,qBAAqB,CAAA;AAE7D,UAAU,KAAK;IACb,KAAK,EAAE,GAAG,CAAA;IACV,iBAAiB,EAAE,GAAG,CAAA;IACtB,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AA2ID,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,KAAK,CAiezC,CAAA"}
|
|
@@ -0,0 +1,574 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2026 Interop Alliance. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* WAS conformance tests -- the container rule (spec "The Container Rule").
|
|
6
|
+
*
|
|
7
|
+
* Target attenuation stops working for four operations, because a capability
|
|
8
|
+
* delegated at a container's `invocationTarget` -- a Space URL or a Collection
|
|
9
|
+
* URL -- covers everything beneath it, so nothing about that target tells
|
|
10
|
+
* apart "delete this container" from "delete a Resource inside it". The four
|
|
11
|
+
* therefore MUST be authorized by a root capability invoked directly by the
|
|
12
|
+
* Space controller, with exactly two exceptions:
|
|
13
|
+
*
|
|
14
|
+
* - Delete Space (`DELETE /space/{s}/`) also accepts a delegated capability
|
|
15
|
+
* whose invoked grant targets exactly that Space's canonical
|
|
16
|
+
* trailing-slash URL with `allowedAction` exactly `['DELETE']`.
|
|
17
|
+
* - Update (or Create by Id) Collection (`PUT /space/{s}/{c}/meta`) also
|
|
18
|
+
* accepts a delegated capability whose invoked grant targets exactly the
|
|
19
|
+
* Space's canonical trailing-slash URL.
|
|
20
|
+
*
|
|
21
|
+
* `PUT /space/{s}/meta` on an existing Space and
|
|
22
|
+
* `DELETE /space/{s}/{c}/` take no delegated capability at all. Creating a
|
|
23
|
+
* Collection (`POST /space/{s}/`) is unaffected and stays delegable, which is
|
|
24
|
+
* asserted here too so the rule is not read as covering every container write.
|
|
25
|
+
*
|
|
26
|
+
* A refusal is an ordinary authorization denial: the masked `not-found` (404),
|
|
27
|
+
* with nothing changed behind it. Every refusal case re-reads the target with
|
|
28
|
+
* the root client afterwards, so a server that answers 404 while performing
|
|
29
|
+
* the operation anyway does not pass.
|
|
30
|
+
*
|
|
31
|
+
* Every delegated capability here targets the Space URL or a URL beneath it:
|
|
32
|
+
* `@interop/ezcap` refuses client-side to sign an invocation whose capability
|
|
33
|
+
* target is not a prefix of the request URL, so a grant outside that shape
|
|
34
|
+
* never reaches the wire and could not be tested against a server at all.
|
|
35
|
+
*/
|
|
36
|
+
import assert from '../harness/assert.js';
|
|
37
|
+
const NOT_FOUND = 'https://wallet.storage/spec#not-found';
|
|
38
|
+
const CONTAINER_RULE = 'https://wallet.storage/spec#the-container-rule';
|
|
39
|
+
/**
|
|
40
|
+
* Provisions a fresh Space controlled by Alice and records it for teardown.
|
|
41
|
+
* Each test gets its own, since half of them delete or rewrite the container
|
|
42
|
+
* they act on.
|
|
43
|
+
*
|
|
44
|
+
* @param options {object}
|
|
45
|
+
* @param options.ctx {TestContext}
|
|
46
|
+
* @param options.state {State}
|
|
47
|
+
* @param options.name {string} the Space name
|
|
48
|
+
* @returns {Promise<string>} the new Space id
|
|
49
|
+
*/
|
|
50
|
+
async function provisionSpace({ ctx, state, name }) {
|
|
51
|
+
const spaceId = ctx.generateId();
|
|
52
|
+
await ctx.createSpace({
|
|
53
|
+
spaceDescription: { id: spaceId, name, controller: state.alice.did },
|
|
54
|
+
rootClient: state.alice.rootClient
|
|
55
|
+
});
|
|
56
|
+
state.spaceIds.push(spaceId);
|
|
57
|
+
return spaceId;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Delegates a capability to Alice's app, rooted in the Space's own root
|
|
61
|
+
* capability. The root is named explicitly because the server synthesizes it
|
|
62
|
+
* from the Space's canonical trailing-slash URL; a grant whose target is a
|
|
63
|
+
* Collection or a Metadata object would otherwise default to a root the
|
|
64
|
+
* server never mints.
|
|
65
|
+
*
|
|
66
|
+
* @param options {object}
|
|
67
|
+
* @param options.ctx {TestContext}
|
|
68
|
+
* @param options.state {State}
|
|
69
|
+
* @param options.spaceId {string}
|
|
70
|
+
* @param options.invocationTarget {string} the delegated target URL
|
|
71
|
+
* @param options.allowedActions {string[]}
|
|
72
|
+
* @returns {Promise<any>} the delegated capability
|
|
73
|
+
*/
|
|
74
|
+
async function delegateInSpace({ ctx, state, spaceId, invocationTarget, allowedActions }) {
|
|
75
|
+
const spaceUrl = new URL(`/space/${spaceId}/`, ctx.serverUrl).toString();
|
|
76
|
+
return state.alice.rootClient.delegate({
|
|
77
|
+
capability: `urn:zcap:root:${encodeURIComponent(spaceUrl)}`,
|
|
78
|
+
allowedActions,
|
|
79
|
+
invocationTarget,
|
|
80
|
+
controller: state.aliceDelegatedApp.did
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Sends a request, returning the status and body whether the client resolved
|
|
85
|
+
* or threw. The high-level client throws on 4xx/5xx, and every refusal here is
|
|
86
|
+
* a 404 that must still be inspected.
|
|
87
|
+
*
|
|
88
|
+
* @param options {object}
|
|
89
|
+
* @param options.ctx {TestContext}
|
|
90
|
+
* @param options.signer {any} the invoking signer
|
|
91
|
+
* @param options.url {string}
|
|
92
|
+
* @param options.method {string}
|
|
93
|
+
* @param [options.capability] {any} a delegated capability, or none for a
|
|
94
|
+
* direct root invocation
|
|
95
|
+
* @param [options.json] {object}
|
|
96
|
+
* @returns {Promise<{ status?: number; data?: any }>}
|
|
97
|
+
*/
|
|
98
|
+
async function invoke({ ctx, signer, url, method, capability, json }) {
|
|
99
|
+
try {
|
|
100
|
+
const response = await ctx.zcapClient({ signer }).request({
|
|
101
|
+
url,
|
|
102
|
+
method,
|
|
103
|
+
action: method,
|
|
104
|
+
...(capability && { capability }),
|
|
105
|
+
...(json && { json })
|
|
106
|
+
});
|
|
107
|
+
return { status: response.status, data: response.data };
|
|
108
|
+
}
|
|
109
|
+
catch (err) {
|
|
110
|
+
return { status: err.response?.status, data: err.data };
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Asserts one refused invocation: the masked `not-found` (404) of the spec's
|
|
115
|
+
* Error Type Registry, and nothing else.
|
|
116
|
+
*
|
|
117
|
+
* @param options {object}
|
|
118
|
+
* @param options.result {{ status?: number; data?: any }}
|
|
119
|
+
* @param options.message {string} what was expected to be refused
|
|
120
|
+
* @returns {void}
|
|
121
|
+
*/
|
|
122
|
+
function assertRefused({ result, message }) {
|
|
123
|
+
assert.equal(result.status, 404, `${message}: expected a 404 refusal`);
|
|
124
|
+
assert.equal(result.data?.type, NOT_FOUND, `${message}: expected the masked not-found problem type`);
|
|
125
|
+
}
|
|
126
|
+
export const containerRuleApi = {
|
|
127
|
+
id: 'container-rule-api',
|
|
128
|
+
name: 'The container rule',
|
|
129
|
+
specRefs: [CONTAINER_RULE],
|
|
130
|
+
setup: async (ctx) => ({
|
|
131
|
+
alice: { ...ctx.actors.alice },
|
|
132
|
+
aliceDelegatedApp: { ...ctx.actors.aliceDelegatedApp },
|
|
133
|
+
spaceIds: []
|
|
134
|
+
}),
|
|
135
|
+
teardown: async (ctx, state) => {
|
|
136
|
+
for (const spaceId of state.spaceIds) {
|
|
137
|
+
try {
|
|
138
|
+
await state.alice.rootClient.request({
|
|
139
|
+
url: new URL(`/space/${spaceId}/`, ctx.serverUrl).toString(),
|
|
140
|
+
method: 'DELETE'
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
/* best-effort cleanup */
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
tests: [
|
|
149
|
+
{
|
|
150
|
+
id: 'container-rule.space-meta-put-root',
|
|
151
|
+
name: '[root] PUT /space/:s/meta on an existing Space is authorized by a direct root invocation',
|
|
152
|
+
specRefs: [CONTAINER_RULE],
|
|
153
|
+
run: async (ctx, state) => {
|
|
154
|
+
const spaceId = await provisionSpace({
|
|
155
|
+
ctx,
|
|
156
|
+
state,
|
|
157
|
+
name: 'Container Rule -- Space Metadata (root)'
|
|
158
|
+
});
|
|
159
|
+
const metaUrl = new URL(`/space/${spaceId}/meta`, ctx.serverUrl).toString();
|
|
160
|
+
const result = await invoke({
|
|
161
|
+
ctx,
|
|
162
|
+
signer: state.alice.signer,
|
|
163
|
+
url: metaUrl,
|
|
164
|
+
method: 'PUT',
|
|
165
|
+
json: {
|
|
166
|
+
id: spaceId,
|
|
167
|
+
name: 'Renamed By The Controller',
|
|
168
|
+
controller: state.alice.did
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
assert.ok(result.status === 200 || result.status === 204, `expected the controller's own PUT to succeed, got ${result.status}`);
|
|
172
|
+
const after = await state.alice.rootClient.request({
|
|
173
|
+
url: metaUrl,
|
|
174
|
+
method: 'GET'
|
|
175
|
+
});
|
|
176
|
+
assert.equal(after.data.name, 'Renamed By The Controller');
|
|
177
|
+
}
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
id: 'container-rule.space-meta-put-delegated-refused',
|
|
181
|
+
name: '[delegated] PUT /space/:s/meta on an existing Space is refused (404) whatever the grant',
|
|
182
|
+
specRefs: [CONTAINER_RULE],
|
|
183
|
+
run: async (ctx, state) => {
|
|
184
|
+
const spaceId = await provisionSpace({
|
|
185
|
+
ctx,
|
|
186
|
+
state,
|
|
187
|
+
name: 'Container Rule -- Space Metadata (delegated)'
|
|
188
|
+
});
|
|
189
|
+
const spaceUrl = new URL(`/space/${spaceId}/`, ctx.serverUrl).toString();
|
|
190
|
+
const metaUrl = `${spaceUrl}meta`;
|
|
191
|
+
// Two shapes a wallet actually mints: a PUT-only Space grant, and the
|
|
192
|
+
// whole-verb-set generation grant. Update Space Metadata takes
|
|
193
|
+
// neither -- it is controller-only.
|
|
194
|
+
const grants = [['PUT'], ['GET', 'HEAD', 'POST', 'PUT', 'DELETE']];
|
|
195
|
+
for (const allowedActions of grants) {
|
|
196
|
+
const capability = await delegateInSpace({
|
|
197
|
+
ctx,
|
|
198
|
+
state,
|
|
199
|
+
spaceId,
|
|
200
|
+
invocationTarget: spaceUrl,
|
|
201
|
+
allowedActions
|
|
202
|
+
});
|
|
203
|
+
const result = await invoke({
|
|
204
|
+
ctx,
|
|
205
|
+
signer: state.aliceDelegatedApp.signer,
|
|
206
|
+
url: metaUrl,
|
|
207
|
+
method: 'PUT',
|
|
208
|
+
capability,
|
|
209
|
+
json: {
|
|
210
|
+
id: spaceId,
|
|
211
|
+
name: 'Seized By A Delegate',
|
|
212
|
+
controller: state.aliceDelegatedApp.did
|
|
213
|
+
}
|
|
214
|
+
});
|
|
215
|
+
assertRefused({
|
|
216
|
+
result,
|
|
217
|
+
message: `a delegated PUT with allowedAction ${allowedActions.join('/')}`
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
// Nothing was written: Alice still controls the Space, name intact.
|
|
221
|
+
const after = await state.alice.rootClient.request({
|
|
222
|
+
url: metaUrl,
|
|
223
|
+
method: 'GET'
|
|
224
|
+
});
|
|
225
|
+
assert.equal(after.status, 200);
|
|
226
|
+
assert.equal(after.data.controller, state.alice.did);
|
|
227
|
+
assert.equal(after.data.name, 'Container Rule -- Space Metadata (delegated)');
|
|
228
|
+
}
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
id: 'container-rule.collection-delete-root',
|
|
232
|
+
name: '[root] DELETE /space/:s/:c/ is authorized by a direct root invocation',
|
|
233
|
+
specRefs: [CONTAINER_RULE],
|
|
234
|
+
run: async (ctx, state) => {
|
|
235
|
+
const spaceId = await provisionSpace({
|
|
236
|
+
ctx,
|
|
237
|
+
state,
|
|
238
|
+
name: 'Container Rule -- Delete Collection (root)'
|
|
239
|
+
});
|
|
240
|
+
const collectionId = ctx.generateId();
|
|
241
|
+
await state.alice.rootClient.request({
|
|
242
|
+
url: new URL(`/space/${spaceId}/`, ctx.serverUrl).toString(),
|
|
243
|
+
method: 'POST',
|
|
244
|
+
action: 'POST',
|
|
245
|
+
json: { id: collectionId, name: 'Doomed Collection' }
|
|
246
|
+
});
|
|
247
|
+
const collectionUrl = new URL(`/space/${spaceId}/${collectionId}/`, ctx.serverUrl).toString();
|
|
248
|
+
const result = await invoke({
|
|
249
|
+
ctx,
|
|
250
|
+
signer: state.alice.signer,
|
|
251
|
+
url: collectionUrl,
|
|
252
|
+
method: 'DELETE'
|
|
253
|
+
});
|
|
254
|
+
assert.equal(result.status, 204);
|
|
255
|
+
const after = await invoke({
|
|
256
|
+
ctx,
|
|
257
|
+
signer: state.alice.signer,
|
|
258
|
+
url: `${collectionUrl}meta`,
|
|
259
|
+
method: 'GET'
|
|
260
|
+
});
|
|
261
|
+
assert.equal(after.status, 404, 'the Collection should be gone');
|
|
262
|
+
}
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
id: 'container-rule.collection-delete-delegated-refused',
|
|
266
|
+
name: '[delegated] DELETE /space/:s/:c/ is refused (404) whatever the grant',
|
|
267
|
+
specRefs: [CONTAINER_RULE],
|
|
268
|
+
run: async (ctx, state) => {
|
|
269
|
+
const spaceId = await provisionSpace({
|
|
270
|
+
ctx,
|
|
271
|
+
state,
|
|
272
|
+
name: 'Container Rule -- Delete Collection (delegated)'
|
|
273
|
+
});
|
|
274
|
+
const collectionId = ctx.generateId();
|
|
275
|
+
await state.alice.rootClient.request({
|
|
276
|
+
url: new URL(`/space/${spaceId}/`, ctx.serverUrl).toString(),
|
|
277
|
+
method: 'POST',
|
|
278
|
+
action: 'POST',
|
|
279
|
+
json: { id: collectionId, name: 'Kept Collection' }
|
|
280
|
+
});
|
|
281
|
+
const spaceUrl = new URL(`/space/${spaceId}/`, ctx.serverUrl).toString();
|
|
282
|
+
const collectionUrl = `${spaceUrl}${collectionId}/`;
|
|
283
|
+
// The Space-subtree grant, and the narrowest grant there is: DELETE
|
|
284
|
+
// alone on exactly this Collection. Delete Collection has no
|
|
285
|
+
// exception, so both are refused.
|
|
286
|
+
const grants = [
|
|
287
|
+
{ invocationTarget: spaceUrl, allowedActions: ['DELETE'] },
|
|
288
|
+
{ invocationTarget: collectionUrl, allowedActions: ['DELETE'] }
|
|
289
|
+
];
|
|
290
|
+
for (const grant of grants) {
|
|
291
|
+
const capability = await delegateInSpace({
|
|
292
|
+
ctx,
|
|
293
|
+
state,
|
|
294
|
+
spaceId,
|
|
295
|
+
...grant
|
|
296
|
+
});
|
|
297
|
+
const result = await invoke({
|
|
298
|
+
ctx,
|
|
299
|
+
signer: state.aliceDelegatedApp.signer,
|
|
300
|
+
url: collectionUrl,
|
|
301
|
+
method: 'DELETE',
|
|
302
|
+
capability
|
|
303
|
+
});
|
|
304
|
+
assertRefused({
|
|
305
|
+
result,
|
|
306
|
+
message: `a delegated DELETE targeting ${grant.invocationTarget}`
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
// The Collection is still there.
|
|
310
|
+
const after = await state.alice.rootClient.request({
|
|
311
|
+
url: `${collectionUrl}meta`,
|
|
312
|
+
method: 'GET'
|
|
313
|
+
});
|
|
314
|
+
assert.equal(after.status, 200);
|
|
315
|
+
assert.equal(after.data.name, 'Kept Collection');
|
|
316
|
+
}
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
id: 'container-rule.space-delete-root',
|
|
320
|
+
name: '[root] DELETE /space/:s/ is authorized by a direct root invocation',
|
|
321
|
+
specRefs: [CONTAINER_RULE],
|
|
322
|
+
run: async (ctx, state) => {
|
|
323
|
+
const spaceId = await provisionSpace({
|
|
324
|
+
ctx,
|
|
325
|
+
state,
|
|
326
|
+
name: 'Container Rule -- Delete Space (root)'
|
|
327
|
+
});
|
|
328
|
+
const spaceUrl = new URL(`/space/${spaceId}/`, ctx.serverUrl).toString();
|
|
329
|
+
const result = await invoke({
|
|
330
|
+
ctx,
|
|
331
|
+
signer: state.alice.signer,
|
|
332
|
+
url: spaceUrl,
|
|
333
|
+
method: 'DELETE'
|
|
334
|
+
});
|
|
335
|
+
assert.equal(result.status, 204);
|
|
336
|
+
const after = await invoke({
|
|
337
|
+
ctx,
|
|
338
|
+
signer: state.alice.signer,
|
|
339
|
+
url: `${spaceUrl}meta`,
|
|
340
|
+
method: 'GET'
|
|
341
|
+
});
|
|
342
|
+
assert.equal(after.status, 404, 'the Space should be gone');
|
|
343
|
+
}
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
id: 'container-rule.space-delete-delegated-exact',
|
|
347
|
+
name: '[delegated] DELETE /space/:s/ is authorized by an exact-target DELETE-only grant',
|
|
348
|
+
specRefs: [CONTAINER_RULE],
|
|
349
|
+
run: async (ctx, state) => {
|
|
350
|
+
const spaceId = await provisionSpace({
|
|
351
|
+
ctx,
|
|
352
|
+
state,
|
|
353
|
+
name: 'Container Rule -- Delete Space (delegated)'
|
|
354
|
+
});
|
|
355
|
+
const spaceUrl = new URL(`/space/${spaceId}/`, ctx.serverUrl).toString();
|
|
356
|
+
const capability = await delegateInSpace({
|
|
357
|
+
ctx,
|
|
358
|
+
state,
|
|
359
|
+
spaceId,
|
|
360
|
+
invocationTarget: spaceUrl,
|
|
361
|
+
allowedActions: ['DELETE']
|
|
362
|
+
});
|
|
363
|
+
const result = await invoke({
|
|
364
|
+
ctx,
|
|
365
|
+
signer: state.aliceDelegatedApp.signer,
|
|
366
|
+
url: spaceUrl,
|
|
367
|
+
method: 'DELETE',
|
|
368
|
+
capability
|
|
369
|
+
});
|
|
370
|
+
assert.equal(result.status, 204, 'the first container-rule exception must be honored');
|
|
371
|
+
const after = await invoke({
|
|
372
|
+
ctx,
|
|
373
|
+
signer: state.alice.signer,
|
|
374
|
+
url: `${spaceUrl}meta`,
|
|
375
|
+
method: 'GET'
|
|
376
|
+
});
|
|
377
|
+
assert.equal(after.status, 404, 'the Space should be gone');
|
|
378
|
+
}
|
|
379
|
+
},
|
|
380
|
+
{
|
|
381
|
+
id: 'container-rule.space-delete-delegated-two-verb-refused',
|
|
382
|
+
name: '[delegated] DELETE /space/:s/ under a two-verb grant on the Space URL is refused (404)',
|
|
383
|
+
specRefs: [CONTAINER_RULE],
|
|
384
|
+
run: async (ctx, state) => {
|
|
385
|
+
const spaceId = await provisionSpace({
|
|
386
|
+
ctx,
|
|
387
|
+
state,
|
|
388
|
+
name: 'Container Rule -- Delete Space (two-verb)'
|
|
389
|
+
});
|
|
390
|
+
const spaceUrl = new URL(`/space/${spaceId}/`, ctx.serverUrl).toString();
|
|
391
|
+
// Exactly `['DELETE']` is what the exception names. A grant carrying
|
|
392
|
+
// DELETE alongside a read verb is a data grant, and is refused.
|
|
393
|
+
const capability = await delegateInSpace({
|
|
394
|
+
ctx,
|
|
395
|
+
state,
|
|
396
|
+
spaceId,
|
|
397
|
+
invocationTarget: spaceUrl,
|
|
398
|
+
allowedActions: ['GET', 'DELETE']
|
|
399
|
+
});
|
|
400
|
+
const result = await invoke({
|
|
401
|
+
ctx,
|
|
402
|
+
signer: state.aliceDelegatedApp.signer,
|
|
403
|
+
url: spaceUrl,
|
|
404
|
+
method: 'DELETE',
|
|
405
|
+
capability
|
|
406
|
+
});
|
|
407
|
+
assertRefused({
|
|
408
|
+
result,
|
|
409
|
+
message: 'a delegated DELETE under a GET/DELETE grant'
|
|
410
|
+
});
|
|
411
|
+
// The Space survived the refusal.
|
|
412
|
+
const after = await state.alice.rootClient.request({
|
|
413
|
+
url: `${spaceUrl}meta`,
|
|
414
|
+
method: 'GET'
|
|
415
|
+
});
|
|
416
|
+
assert.equal(after.status, 200);
|
|
417
|
+
assert.equal(after.data.controller, state.alice.did);
|
|
418
|
+
}
|
|
419
|
+
},
|
|
420
|
+
{
|
|
421
|
+
id: 'container-rule.collection-meta-put-root',
|
|
422
|
+
name: '[root] PUT /space/:s/:c/meta is authorized by a direct root invocation',
|
|
423
|
+
specRefs: [CONTAINER_RULE],
|
|
424
|
+
run: async (ctx, state) => {
|
|
425
|
+
const spaceId = await provisionSpace({
|
|
426
|
+
ctx,
|
|
427
|
+
state,
|
|
428
|
+
name: 'Container Rule -- Collection Metadata (root)'
|
|
429
|
+
});
|
|
430
|
+
const collectionId = ctx.generateId();
|
|
431
|
+
const metaUrl = new URL(`/space/${spaceId}/${collectionId}/meta`, ctx.serverUrl).toString();
|
|
432
|
+
const result = await invoke({
|
|
433
|
+
ctx,
|
|
434
|
+
signer: state.alice.signer,
|
|
435
|
+
url: metaUrl,
|
|
436
|
+
method: 'PUT',
|
|
437
|
+
json: { id: collectionId, name: 'Written By The Controller' }
|
|
438
|
+
});
|
|
439
|
+
assert.ok(result.status === 200 || result.status === 201, `expected the controller's own PUT to succeed, got ${result.status}`);
|
|
440
|
+
const after = await state.alice.rootClient.request({
|
|
441
|
+
url: metaUrl,
|
|
442
|
+
method: 'GET'
|
|
443
|
+
});
|
|
444
|
+
assert.equal(after.data.name, 'Written By The Controller');
|
|
445
|
+
}
|
|
446
|
+
},
|
|
447
|
+
{
|
|
448
|
+
id: 'container-rule.collection-meta-put-delegated-space-target',
|
|
449
|
+
name: '[delegated] PUT /space/:s/:c/meta is authorized by an exact-target grant on the Space URL',
|
|
450
|
+
specRefs: [CONTAINER_RULE],
|
|
451
|
+
run: async (ctx, state) => {
|
|
452
|
+
const spaceId = await provisionSpace({
|
|
453
|
+
ctx,
|
|
454
|
+
state,
|
|
455
|
+
name: 'Container Rule -- Collection Metadata (delegated)'
|
|
456
|
+
});
|
|
457
|
+
const spaceUrl = new URL(`/space/${spaceId}/`, ctx.serverUrl).toString();
|
|
458
|
+
const collectionId = ctx.generateId();
|
|
459
|
+
const metaUrl = `${spaceUrl}${collectionId}/meta`;
|
|
460
|
+
const capability = await delegateInSpace({
|
|
461
|
+
ctx,
|
|
462
|
+
state,
|
|
463
|
+
spaceId,
|
|
464
|
+
invocationTarget: spaceUrl,
|
|
465
|
+
allowedActions: ['GET', 'HEAD', 'POST', 'PUT', 'DELETE']
|
|
466
|
+
});
|
|
467
|
+
const result = await invoke({
|
|
468
|
+
ctx,
|
|
469
|
+
signer: state.aliceDelegatedApp.signer,
|
|
470
|
+
url: metaUrl,
|
|
471
|
+
method: 'PUT',
|
|
472
|
+
capability,
|
|
473
|
+
json: { id: collectionId, name: 'Written By A Delegate' }
|
|
474
|
+
});
|
|
475
|
+
assert.ok(result.status === 200 || result.status === 201, 'the second container-rule exception must be honored, got ' +
|
|
476
|
+
result.status);
|
|
477
|
+
const after = await state.alice.rootClient.request({
|
|
478
|
+
url: metaUrl,
|
|
479
|
+
method: 'GET'
|
|
480
|
+
});
|
|
481
|
+
assert.equal(after.data.name, 'Written By A Delegate');
|
|
482
|
+
}
|
|
483
|
+
},
|
|
484
|
+
{
|
|
485
|
+
id: 'container-rule.collection-meta-put-delegated-collection-target-refused',
|
|
486
|
+
name: '[delegated] PUT /space/:s/:c/meta under a grant on the Collection URL is refused (404)',
|
|
487
|
+
specRefs: [CONTAINER_RULE],
|
|
488
|
+
run: async (ctx, state) => {
|
|
489
|
+
const spaceId = await provisionSpace({
|
|
490
|
+
ctx,
|
|
491
|
+
state,
|
|
492
|
+
name: 'Container Rule -- Collection Metadata (collection target)'
|
|
493
|
+
});
|
|
494
|
+
const collectionId = ctx.generateId();
|
|
495
|
+
await state.alice.rootClient.request({
|
|
496
|
+
url: new URL(`/space/${spaceId}/`, ctx.serverUrl).toString(),
|
|
497
|
+
method: 'POST',
|
|
498
|
+
action: 'POST',
|
|
499
|
+
json: { id: collectionId, name: 'Unchanged Collection' }
|
|
500
|
+
});
|
|
501
|
+
const collectionUrl = new URL(`/space/${spaceId}/${collectionId}/`, ctx.serverUrl).toString();
|
|
502
|
+
const metaUrl = `${collectionUrl}meta`;
|
|
503
|
+
// A Collection-level data grant: exactly the shape the rule refuses,
|
|
504
|
+
// since it cannot tell writing the container's description apart from
|
|
505
|
+
// writing a Resource inside it.
|
|
506
|
+
const capability = await delegateInSpace({
|
|
507
|
+
ctx,
|
|
508
|
+
state,
|
|
509
|
+
spaceId,
|
|
510
|
+
invocationTarget: collectionUrl,
|
|
511
|
+
allowedActions: ['GET', 'HEAD', 'POST', 'PUT', 'DELETE']
|
|
512
|
+
});
|
|
513
|
+
const result = await invoke({
|
|
514
|
+
ctx,
|
|
515
|
+
signer: state.aliceDelegatedApp.signer,
|
|
516
|
+
url: metaUrl,
|
|
517
|
+
method: 'PUT',
|
|
518
|
+
capability,
|
|
519
|
+
json: { id: collectionId, name: 'Rewritten By A Delegate' }
|
|
520
|
+
});
|
|
521
|
+
assertRefused({
|
|
522
|
+
result,
|
|
523
|
+
message: 'a delegated PUT under a Collection-URL grant'
|
|
524
|
+
});
|
|
525
|
+
const after = await state.alice.rootClient.request({
|
|
526
|
+
url: metaUrl,
|
|
527
|
+
method: 'GET'
|
|
528
|
+
});
|
|
529
|
+
assert.equal(after.status, 200);
|
|
530
|
+
assert.equal(after.data.name, 'Unchanged Collection');
|
|
531
|
+
}
|
|
532
|
+
},
|
|
533
|
+
{
|
|
534
|
+
id: 'container-rule.collection-create-delegable',
|
|
535
|
+
name: '[delegated] POST /space/:s/ still creates a Collection under an exact-target Space grant',
|
|
536
|
+
specRefs: [
|
|
537
|
+
CONTAINER_RULE,
|
|
538
|
+
'https://wallet.storage/spec#create-collection-operation'
|
|
539
|
+
],
|
|
540
|
+
run: async (ctx, state) => {
|
|
541
|
+
const spaceId = await provisionSpace({
|
|
542
|
+
ctx,
|
|
543
|
+
state,
|
|
544
|
+
name: 'Container Rule -- Create Collection (delegated)'
|
|
545
|
+
});
|
|
546
|
+
const spaceUrl = new URL(`/space/${spaceId}/`, ctx.serverUrl).toString();
|
|
547
|
+
const collectionId = ctx.generateId();
|
|
548
|
+
const capability = await delegateInSpace({
|
|
549
|
+
ctx,
|
|
550
|
+
state,
|
|
551
|
+
spaceId,
|
|
552
|
+
invocationTarget: spaceUrl,
|
|
553
|
+
allowedActions: ['POST']
|
|
554
|
+
});
|
|
555
|
+
const result = await invoke({
|
|
556
|
+
ctx,
|
|
557
|
+
signer: state.aliceDelegatedApp.signer,
|
|
558
|
+
url: spaceUrl,
|
|
559
|
+
method: 'POST',
|
|
560
|
+
capability,
|
|
561
|
+
json: { id: collectionId, name: 'Created By A Delegate' }
|
|
562
|
+
});
|
|
563
|
+
assert.equal(result.status, 201, 'Create Collection is unaffected by the container rule');
|
|
564
|
+
const after = await state.alice.rootClient.request({
|
|
565
|
+
url: `${spaceUrl}${collectionId}/meta`,
|
|
566
|
+
method: 'GET'
|
|
567
|
+
});
|
|
568
|
+
assert.equal(after.status, 200);
|
|
569
|
+
assert.equal(after.data.name, 'Created By A Delegate');
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
]
|
|
573
|
+
};
|
|
574
|
+
//# sourceMappingURL=container-rule-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"container-rule-api.js","sourceRoot":"","sources":["../../src/suites/container-rule-api.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,MAAM,MAAM,sBAAsB,CAAA;AAUzC,MAAM,SAAS,GAAG,uCAAuC,CAAA;AACzD,MAAM,cAAc,GAAG,gDAAgD,CAAA;AAEvE;;;;;;;;;;GAUG;AACH,KAAK,UAAU,cAAc,CAAC,EAC5B,GAAG,EACH,KAAK,EACL,IAAI,EAKL;IACC,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,EAAE,CAAA;IAChC,MAAM,GAAG,CAAC,WAAW,CAAC;QACpB,gBAAgB,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE;QACpE,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU;KACnC,CAAC,CAAA;IACF,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC5B,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,KAAK,UAAU,eAAe,CAAC,EAC7B,GAAG,EACH,KAAK,EACL,OAAO,EACP,gBAAgB,EAChB,cAAc,EAOf;IACC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,UAAU,OAAO,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAA;IACxE,OAAO,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC;QACrC,UAAU,EAAE,iBAAiB,kBAAkB,CAAC,QAAQ,CAAC,EAAE;QAC3D,cAAc;QACd,gBAAgB;QAChB,UAAU,EAAE,KAAK,CAAC,iBAAiB,CAAC,GAAG;KACxC,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,KAAK,UAAU,MAAM,CAAC,EACpB,GAAG,EACH,MAAM,EACN,GAAG,EACH,MAAM,EACN,UAAU,EACV,IAAI,EAQL;IACC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC;YACxD,GAAG;YACH,MAAM;YACN,MAAM,EAAE,MAAM;YACd,GAAG,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,CAAC;YACjC,GAAG,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC;SACtB,CAAC,CAAA;QACF,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAA;IACzD,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAA;IACzD,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,aAAa,CAAC,EACrB,MAAM,EACN,OAAO,EAIR;IACC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,0BAA0B,CAAC,CAAA;IACtE,MAAM,CAAC,KAAK,CACV,MAAM,CAAC,IAAI,EAAE,IAAI,EACjB,SAAS,EACT,GAAG,OAAO,8CAA8C,CACzD,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAiB;IAC5C,EAAE,EAAE,oBAAoB;IACxB,IAAI,EAAE,oBAAoB;IAC1B,QAAQ,EAAE,CAAC,cAAc,CAAC;IAE1B,KAAK,EAAE,KAAK,EAAC,GAAG,EAAC,EAAE,CAAC,CAAC;QACnB,KAAK,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE;QAC9B,iBAAiB,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,iBAAiB,EAAE;QACtD,QAAQ,EAAE,EAAE;KACb,CAAC;IAEF,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QAC7B,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;oBACnC,GAAG,EAAE,IAAI,GAAG,CAAC,UAAU,OAAO,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;oBAC5D,MAAM,EAAE,QAAQ;iBACjB,CAAC,CAAA;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,yBAAyB;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,EAAE;QACL;YACE,EAAE,EAAE,oCAAoC;YACxC,IAAI,EAAE,0FAA0F;YAChG,QAAQ,EAAE,CAAC,cAAc,CAAC;YAC1B,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;gBACxB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC;oBACnC,GAAG;oBACH,KAAK;oBACL,IAAI,EAAE,yCAAyC;iBAChD,CAAC,CAAA;gBACF,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,UAAU,OAAO,OAAO,EACxB,GAAG,CAAC,SAAS,CACd,CAAC,QAAQ,EAAE,CAAA;gBACZ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;oBAC1B,GAAG;oBACH,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;oBAC1B,GAAG,EAAE,OAAO;oBACZ,MAAM,EAAE,KAAK;oBACb,IAAI,EAAE;wBACJ,EAAE,EAAE,OAAO;wBACX,IAAI,EAAE,2BAA2B;wBACjC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG;qBAC5B;iBACF,CAAC,CAAA;gBACF,MAAM,CAAC,EAAE,CACP,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG,EAC9C,qDAAqD,MAAM,CAAC,MAAM,EAAE,CACrE,CAAA;gBACD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;oBACjD,GAAG,EAAE,OAAO;oBACZ,MAAM,EAAE,KAAK;iBACd,CAAC,CAAA;gBACF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAA;YAC5D,CAAC;SACF;QACD;YACE,EAAE,EAAE,iDAAiD;YACrD,IAAI,EAAE,yFAAyF;YAC/F,QAAQ,EAAE,CAAC,cAAc,CAAC;YAC1B,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;gBACxB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC;oBACnC,GAAG;oBACH,KAAK;oBACL,IAAI,EAAE,8CAA8C;iBACrD,CAAC,CAAA;gBACF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,UAAU,OAAO,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAA;gBACxE,MAAM,OAAO,GAAG,GAAG,QAAQ,MAAM,CAAA;gBACjC,sEAAsE;gBACtE,+DAA+D;gBAC/D,oCAAoC;gBACpC,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAA;gBAClE,KAAK,MAAM,cAAc,IAAI,MAAM,EAAE,CAAC;oBACpC,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC;wBACvC,GAAG;wBACH,KAAK;wBACL,OAAO;wBACP,gBAAgB,EAAE,QAAQ;wBAC1B,cAAc;qBACf,CAAC,CAAA;oBACF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;wBAC1B,GAAG;wBACH,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,MAAM;wBACtC,GAAG,EAAE,OAAO;wBACZ,MAAM,EAAE,KAAK;wBACb,UAAU;wBACV,IAAI,EAAE;4BACJ,EAAE,EAAE,OAAO;4BACX,IAAI,EAAE,sBAAsB;4BAC5B,UAAU,EAAE,KAAK,CAAC,iBAAiB,CAAC,GAAG;yBACxC;qBACF,CAAC,CAAA;oBACF,aAAa,CAAC;wBACZ,MAAM;wBACN,OAAO,EAAE,sCAAsC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;qBAC1E,CAAC,CAAA;gBACJ,CAAC;gBACD,oEAAoE;gBACpE,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;oBACjD,GAAG,EAAE,OAAO;oBACZ,MAAM,EAAE,KAAK;iBACd,CAAC,CAAA;gBACF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;gBAC/B,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBACpD,MAAM,CAAC,KAAK,CACV,KAAK,CAAC,IAAI,CAAC,IAAI,EACf,8CAA8C,CAC/C,CAAA;YACH,CAAC;SACF;QACD;YACE,EAAE,EAAE,uCAAuC;YAC3C,IAAI,EAAE,uEAAuE;YAC7E,QAAQ,EAAE,CAAC,cAAc,CAAC;YAC1B,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;gBACxB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC;oBACnC,GAAG;oBACH,KAAK;oBACL,IAAI,EAAE,4CAA4C;iBACnD,CAAC,CAAA;gBACF,MAAM,YAAY,GAAG,GAAG,CAAC,UAAU,EAAE,CAAA;gBACrC,MAAM,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;oBACnC,GAAG,EAAE,IAAI,GAAG,CAAC,UAAU,OAAO,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;oBAC5D,MAAM,EAAE,MAAM;oBACd,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;iBACtD,CAAC,CAAA;gBACF,MAAM,aAAa,GAAG,IAAI,GAAG,CAC3B,UAAU,OAAO,IAAI,YAAY,GAAG,EACpC,GAAG,CAAC,SAAS,CACd,CAAC,QAAQ,EAAE,CAAA;gBACZ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;oBAC1B,GAAG;oBACH,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;oBAC1B,GAAG,EAAE,aAAa;oBAClB,MAAM,EAAE,QAAQ;iBACjB,CAAC,CAAA;gBACF,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;gBAChC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC;oBACzB,GAAG;oBACH,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;oBAC1B,GAAG,EAAE,GAAG,aAAa,MAAM;oBAC3B,MAAM,EAAE,KAAK;iBACd,CAAC,CAAA;gBACF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,+BAA+B,CAAC,CAAA;YAClE,CAAC;SACF;QACD;YACE,EAAE,EAAE,oDAAoD;YACxD,IAAI,EAAE,sEAAsE;YAC5E,QAAQ,EAAE,CAAC,cAAc,CAAC;YAC1B,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;gBACxB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC;oBACnC,GAAG;oBACH,KAAK;oBACL,IAAI,EAAE,iDAAiD;iBACxD,CAAC,CAAA;gBACF,MAAM,YAAY,GAAG,GAAG,CAAC,UAAU,EAAE,CAAA;gBACrC,MAAM,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;oBACnC,GAAG,EAAE,IAAI,GAAG,CAAC,UAAU,OAAO,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;oBAC5D,MAAM,EAAE,MAAM;oBACd,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,iBAAiB,EAAE;iBACpD,CAAC,CAAA;gBACF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,UAAU,OAAO,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAA;gBACxE,MAAM,aAAa,GAAG,GAAG,QAAQ,GAAG,YAAY,GAAG,CAAA;gBACnD,oEAAoE;gBACpE,6DAA6D;gBAC7D,kCAAkC;gBAClC,MAAM,MAAM,GAAG;oBACb,EAAE,gBAAgB,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,QAAQ,CAAC,EAAE;oBAC1D,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,CAAC,QAAQ,CAAC,EAAE;iBAChE,CAAA;gBACD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC3B,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC;wBACvC,GAAG;wBACH,KAAK;wBACL,OAAO;wBACP,GAAG,KAAK;qBACT,CAAC,CAAA;oBACF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;wBAC1B,GAAG;wBACH,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,MAAM;wBACtC,GAAG,EAAE,aAAa;wBAClB,MAAM,EAAE,QAAQ;wBAChB,UAAU;qBACX,CAAC,CAAA;oBACF,aAAa,CAAC;wBACZ,MAAM;wBACN,OAAO,EAAE,gCAAgC,KAAK,CAAC,gBAAgB,EAAE;qBAClE,CAAC,CAAA;gBACJ,CAAC;gBACD,iCAAiC;gBACjC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;oBACjD,GAAG,EAAE,GAAG,aAAa,MAAM;oBAC3B,MAAM,EAAE,KAAK;iBACd,CAAC,CAAA;gBACF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;gBAC/B,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;YAClD,CAAC;SACF;QACD;YACE,EAAE,EAAE,kCAAkC;YACtC,IAAI,EAAE,oEAAoE;YAC1E,QAAQ,EAAE,CAAC,cAAc,CAAC;YAC1B,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;gBACxB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC;oBACnC,GAAG;oBACH,KAAK;oBACL,IAAI,EAAE,uCAAuC;iBAC9C,CAAC,CAAA;gBACF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,UAAU,OAAO,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAA;gBACxE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;oBAC1B,GAAG;oBACH,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;oBAC1B,GAAG,EAAE,QAAQ;oBACb,MAAM,EAAE,QAAQ;iBACjB,CAAC,CAAA;gBACF,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;gBAChC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC;oBACzB,GAAG;oBACH,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;oBAC1B,GAAG,EAAE,GAAG,QAAQ,MAAM;oBACtB,MAAM,EAAE,KAAK;iBACd,CAAC,CAAA;gBACF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,0BAA0B,CAAC,CAAA;YAC7D,CAAC;SACF;QACD;YACE,EAAE,EAAE,6CAA6C;YACjD,IAAI,EAAE,kFAAkF;YACxF,QAAQ,EAAE,CAAC,cAAc,CAAC;YAC1B,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;gBACxB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC;oBACnC,GAAG;oBACH,KAAK;oBACL,IAAI,EAAE,4CAA4C;iBACnD,CAAC,CAAA;gBACF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,UAAU,OAAO,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAA;gBACxE,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC;oBACvC,GAAG;oBACH,KAAK;oBACL,OAAO;oBACP,gBAAgB,EAAE,QAAQ;oBAC1B,cAAc,EAAE,CAAC,QAAQ,CAAC;iBAC3B,CAAC,CAAA;gBACF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;oBAC1B,GAAG;oBACH,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,MAAM;oBACtC,GAAG,EAAE,QAAQ;oBACb,MAAM,EAAE,QAAQ;oBAChB,UAAU;iBACX,CAAC,CAAA;gBACF,MAAM,CAAC,KAAK,CACV,MAAM,CAAC,MAAM,EACb,GAAG,EACH,oDAAoD,CACrD,CAAA;gBACD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC;oBACzB,GAAG;oBACH,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;oBAC1B,GAAG,EAAE,GAAG,QAAQ,MAAM;oBACtB,MAAM,EAAE,KAAK;iBACd,CAAC,CAAA;gBACF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,0BAA0B,CAAC,CAAA;YAC7D,CAAC;SACF;QACD;YACE,EAAE,EAAE,wDAAwD;YAC5D,IAAI,EAAE,wFAAwF;YAC9F,QAAQ,EAAE,CAAC,cAAc,CAAC;YAC1B,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;gBACxB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC;oBACnC,GAAG;oBACH,KAAK;oBACL,IAAI,EAAE,2CAA2C;iBAClD,CAAC,CAAA;gBACF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,UAAU,OAAO,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAA;gBACxE,qEAAqE;gBACrE,gEAAgE;gBAChE,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC;oBACvC,GAAG;oBACH,KAAK;oBACL,OAAO;oBACP,gBAAgB,EAAE,QAAQ;oBAC1B,cAAc,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;iBAClC,CAAC,CAAA;gBACF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;oBAC1B,GAAG;oBACH,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,MAAM;oBACtC,GAAG,EAAE,QAAQ;oBACb,MAAM,EAAE,QAAQ;oBAChB,UAAU;iBACX,CAAC,CAAA;gBACF,aAAa,CAAC;oBACZ,MAAM;oBACN,OAAO,EAAE,6CAA6C;iBACvD,CAAC,CAAA;gBACF,kCAAkC;gBAClC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;oBACjD,GAAG,EAAE,GAAG,QAAQ,MAAM;oBACtB,MAAM,EAAE,KAAK;iBACd,CAAC,CAAA;gBACF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;gBAC/B,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACtD,CAAC;SACF;QACD;YACE,EAAE,EAAE,yCAAyC;YAC7C,IAAI,EAAE,wEAAwE;YAC9E,QAAQ,EAAE,CAAC,cAAc,CAAC;YAC1B,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;gBACxB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC;oBACnC,GAAG;oBACH,KAAK;oBACL,IAAI,EAAE,8CAA8C;iBACrD,CAAC,CAAA;gBACF,MAAM,YAAY,GAAG,GAAG,CAAC,UAAU,EAAE,CAAA;gBACrC,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,UAAU,OAAO,IAAI,YAAY,OAAO,EACxC,GAAG,CAAC,SAAS,CACd,CAAC,QAAQ,EAAE,CAAA;gBACZ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;oBAC1B,GAAG;oBACH,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;oBAC1B,GAAG,EAAE,OAAO;oBACZ,MAAM,EAAE,KAAK;oBACb,IAAI,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,2BAA2B,EAAE;iBAC9D,CAAC,CAAA;gBACF,MAAM,CAAC,EAAE,CACP,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG,EAC9C,qDAAqD,MAAM,CAAC,MAAM,EAAE,CACrE,CAAA;gBACD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;oBACjD,GAAG,EAAE,OAAO;oBACZ,MAAM,EAAE,KAAK;iBACd,CAAC,CAAA;gBACF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAA;YAC5D,CAAC;SACF;QACD;YACE,EAAE,EAAE,2DAA2D;YAC/D,IAAI,EAAE,2FAA2F;YACjG,QAAQ,EAAE,CAAC,cAAc,CAAC;YAC1B,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;gBACxB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC;oBACnC,GAAG;oBACH,KAAK;oBACL,IAAI,EAAE,mDAAmD;iBAC1D,CAAC,CAAA;gBACF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,UAAU,OAAO,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAA;gBACxE,MAAM,YAAY,GAAG,GAAG,CAAC,UAAU,EAAE,CAAA;gBACrC,MAAM,OAAO,GAAG,GAAG,QAAQ,GAAG,YAAY,OAAO,CAAA;gBACjD,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC;oBACvC,GAAG;oBACH,KAAK;oBACL,OAAO;oBACP,gBAAgB,EAAE,QAAQ;oBAC1B,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC;iBACzD,CAAC,CAAA;gBACF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;oBAC1B,GAAG;oBACH,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,MAAM;oBACtC,GAAG,EAAE,OAAO;oBACZ,MAAM,EAAE,KAAK;oBACb,UAAU;oBACV,IAAI,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,uBAAuB,EAAE;iBAC1D,CAAC,CAAA;gBACF,MAAM,CAAC,EAAE,CACP,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG,EAC9C,2DAA2D;oBACzD,MAAM,CAAC,MAAM,CAChB,CAAA;gBACD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;oBACjD,GAAG,EAAE,OAAO;oBACZ,MAAM,EAAE,KAAK;iBACd,CAAC,CAAA;gBACF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAA;YACxD,CAAC;SACF;QACD;YACE,EAAE,EAAE,wEAAwE;YAC5E,IAAI,EAAE,wFAAwF;YAC9F,QAAQ,EAAE,CAAC,cAAc,CAAC;YAC1B,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;gBACxB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC;oBACnC,GAAG;oBACH,KAAK;oBACL,IAAI,EAAE,2DAA2D;iBAClE,CAAC,CAAA;gBACF,MAAM,YAAY,GAAG,GAAG,CAAC,UAAU,EAAE,CAAA;gBACrC,MAAM,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;oBACnC,GAAG,EAAE,IAAI,GAAG,CAAC,UAAU,OAAO,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;oBAC5D,MAAM,EAAE,MAAM;oBACd,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,sBAAsB,EAAE;iBACzD,CAAC,CAAA;gBACF,MAAM,aAAa,GAAG,IAAI,GAAG,CAC3B,UAAU,OAAO,IAAI,YAAY,GAAG,EACpC,GAAG,CAAC,SAAS,CACd,CAAC,QAAQ,EAAE,CAAA;gBACZ,MAAM,OAAO,GAAG,GAAG,aAAa,MAAM,CAAA;gBACtC,qEAAqE;gBACrE,sEAAsE;gBACtE,gCAAgC;gBAChC,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC;oBACvC,GAAG;oBACH,KAAK;oBACL,OAAO;oBACP,gBAAgB,EAAE,aAAa;oBAC/B,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC;iBACzD,CAAC,CAAA;gBACF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;oBAC1B,GAAG;oBACH,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,MAAM;oBACtC,GAAG,EAAE,OAAO;oBACZ,MAAM,EAAE,KAAK;oBACb,UAAU;oBACV,IAAI,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,yBAAyB,EAAE;iBAC5D,CAAC,CAAA;gBACF,aAAa,CAAC;oBACZ,MAAM;oBACN,OAAO,EAAE,8CAA8C;iBACxD,CAAC,CAAA;gBACF,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;oBACjD,GAAG,EAAE,OAAO;oBACZ,MAAM,EAAE,KAAK;iBACd,CAAC,CAAA;gBACF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;gBAC/B,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAA;YACvD,CAAC;SACF;QACD;YACE,EAAE,EAAE,4CAA4C;YAChD,IAAI,EAAE,0FAA0F;YAChG,QAAQ,EAAE;gBACR,cAAc;gBACd,yDAAyD;aAC1D;YACD,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;gBACxB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC;oBACnC,GAAG;oBACH,KAAK;oBACL,IAAI,EAAE,iDAAiD;iBACxD,CAAC,CAAA;gBACF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,UAAU,OAAO,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAA;gBACxE,MAAM,YAAY,GAAG,GAAG,CAAC,UAAU,EAAE,CAAA;gBACrC,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC;oBACvC,GAAG;oBACH,KAAK;oBACL,OAAO;oBACP,gBAAgB,EAAE,QAAQ;oBAC1B,cAAc,EAAE,CAAC,MAAM,CAAC;iBACzB,CAAC,CAAA;gBACF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;oBAC1B,GAAG;oBACH,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,MAAM;oBACtC,GAAG,EAAE,QAAQ;oBACb,MAAM,EAAE,MAAM;oBACd,UAAU;oBACV,IAAI,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,uBAAuB,EAAE;iBAC1D,CAAC,CAAA;gBACF,MAAM,CAAC,KAAK,CACV,MAAM,CAAC,MAAM,EACb,GAAG,EACH,uDAAuD,CACxD,CAAA;gBACD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;oBACjD,GAAG,EAAE,GAAG,QAAQ,GAAG,YAAY,OAAO;oBACtC,MAAM,EAAE,KAAK;iBACd,CAAC,CAAA;gBACF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;gBAC/B,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAA;YACxD,CAAC;SACF;KACF;CACF,CAAA"}
|
package/dist/suites/index.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ import { clientResources } from './client-resources.js';
|
|
|
13
13
|
import { clientSpaces } from './client-spaces.js';
|
|
14
14
|
import { collectionApi } from './collection-api.js';
|
|
15
15
|
import { conditionalRequestsApi } from './conditional-requests-api.js';
|
|
16
|
+
import { containerRuleApi } from './container-rule-api.js';
|
|
16
17
|
import { delegationCryptosuitesApi } from './delegation-cryptosuites-api.js';
|
|
17
18
|
import { denialReasonsApi } from './denial-reasons-api.js';
|
|
18
19
|
import { digestApi } from './digest-api.js';
|
|
@@ -31,5 +32,5 @@ import { writeValidationApi } from './write-validation-api.js';
|
|
|
31
32
|
* original file-alphabetical execution order of the ported suite).
|
|
32
33
|
*/
|
|
33
34
|
export declare const suites: Array<Suite<any>>;
|
|
34
|
-
export { authzOrderingApi, blindedIndexApi, changesQueryApi, chunksApi, clientBackends, clientDelegation, clientExportImport, clientResources, clientSpaces, collectionApi, conditionalRequestsApi, delegationCryptosuitesApi, denialReasonsApi, digestApi, encryptionDescriptorApi, governedLogApi, invocationTargetApi, plaintextDeclarationApi, policyApi, reservedMethodsApi, resourceApi, server, spacesApi, writeValidationApi };
|
|
35
|
+
export { authzOrderingApi, blindedIndexApi, changesQueryApi, chunksApi, clientBackends, clientDelegation, clientExportImport, clientResources, clientSpaces, collectionApi, conditionalRequestsApi, containerRuleApi, delegationCryptosuitesApi, denialReasonsApi, digestApi, encryptionDescriptorApi, governedLogApi, invocationTargetApi, plaintextDeclarationApi, policyApi, reservedMethodsApi, resourceApi, server, spacesApi, writeValidationApi };
|
|
35
36
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/suites/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAEhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAE9D;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/suites/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAEhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAE9D;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CA0BpC,CAAA;AAED,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAChB,yBAAyB,EACzB,gBAAgB,EAChB,SAAS,EACT,uBAAuB,EACvB,cAAc,EACd,mBAAmB,EACnB,uBAAuB,EACvB,SAAS,EACT,kBAAkB,EAClB,WAAW,EACX,MAAM,EACN,SAAS,EACT,kBAAkB,EACnB,CAAA"}
|
package/dist/suites/index.js
CHANGED
|
@@ -9,6 +9,7 @@ import { clientResources } from './client-resources.js';
|
|
|
9
9
|
import { clientSpaces } from './client-spaces.js';
|
|
10
10
|
import { collectionApi } from './collection-api.js';
|
|
11
11
|
import { conditionalRequestsApi } from './conditional-requests-api.js';
|
|
12
|
+
import { containerRuleApi } from './container-rule-api.js';
|
|
12
13
|
import { delegationCryptosuitesApi } from './delegation-cryptosuites-api.js';
|
|
13
14
|
import { denialReasonsApi } from './denial-reasons-api.js';
|
|
14
15
|
import { digestApi } from './digest-api.js';
|
|
@@ -38,6 +39,7 @@ export const suites = [
|
|
|
38
39
|
clientSpaces,
|
|
39
40
|
collectionApi,
|
|
40
41
|
conditionalRequestsApi,
|
|
42
|
+
containerRuleApi,
|
|
41
43
|
delegationCryptosuitesApi,
|
|
42
44
|
denialReasonsApi,
|
|
43
45
|
digestApi,
|
|
@@ -52,5 +54,5 @@ export const suites = [
|
|
|
52
54
|
spacesApi,
|
|
53
55
|
writeValidationApi
|
|
54
56
|
];
|
|
55
|
-
export { authzOrderingApi, blindedIndexApi, changesQueryApi, chunksApi, clientBackends, clientDelegation, clientExportImport, clientResources, clientSpaces, collectionApi, conditionalRequestsApi, delegationCryptosuitesApi, denialReasonsApi, digestApi, encryptionDescriptorApi, governedLogApi, invocationTargetApi, plaintextDeclarationApi, policyApi, reservedMethodsApi, resourceApi, server, spacesApi, writeValidationApi };
|
|
57
|
+
export { authzOrderingApi, blindedIndexApi, changesQueryApi, chunksApi, clientBackends, clientDelegation, clientExportImport, clientResources, clientSpaces, collectionApi, conditionalRequestsApi, containerRuleApi, delegationCryptosuitesApi, denialReasonsApi, digestApi, encryptionDescriptorApi, governedLogApi, invocationTargetApi, plaintextDeclarationApi, policyApi, reservedMethodsApi, resourceApi, server, spacesApi, writeValidationApi };
|
|
56
58
|
//# sourceMappingURL=index.js.map
|
package/dist/suites/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/suites/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAE9D;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAsB;IACvC,gBAAgB;IAChB,eAAe;IACf,eAAe;IACf,SAAS;IACT,cAAc;IACd,gBAAgB;IAChB,kBAAkB;IAClB,eAAe;IACf,YAAY;IACZ,aAAa;IACb,sBAAsB;IACtB,yBAAyB;IACzB,gBAAgB;IAChB,SAAS;IACT,uBAAuB;IACvB,cAAc;IACd,mBAAmB;IACnB,uBAAuB;IACvB,SAAS;IACT,kBAAkB;IAClB,WAAW;IACX,MAAM;IACN,SAAS;IACT,kBAAkB;CACnB,CAAA;AAED,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,aAAa,EACb,sBAAsB,EACtB,yBAAyB,EACzB,gBAAgB,EAChB,SAAS,EACT,uBAAuB,EACvB,cAAc,EACd,mBAAmB,EACnB,uBAAuB,EACvB,SAAS,EACT,kBAAkB,EAClB,WAAW,EACX,MAAM,EACN,SAAS,EACT,kBAAkB,EACnB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/suites/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAE9D;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAsB;IACvC,gBAAgB;IAChB,eAAe;IACf,eAAe;IACf,SAAS;IACT,cAAc;IACd,gBAAgB;IAChB,kBAAkB;IAClB,eAAe;IACf,YAAY;IACZ,aAAa;IACb,sBAAsB;IACtB,gBAAgB;IAChB,yBAAyB;IACzB,gBAAgB;IAChB,SAAS;IACT,uBAAuB;IACvB,cAAc;IACd,mBAAmB;IACnB,uBAAuB;IACvB,SAAS;IACT,kBAAkB;IAClB,WAAW;IACX,MAAM;IACN,SAAS;IACT,kBAAkB;CACnB,CAAA;AAED,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAChB,yBAAyB,EACzB,gBAAgB,EAChB,SAAS,EACT,uBAAuB,EACvB,cAAc,EACd,mBAAmB,EACnB,uBAAuB,EACvB,SAAS,EACT,kBAAkB,EAClB,WAAW,EACX,MAAM,EACN,SAAS,EACT,kBAAkB,EACnB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@interop/was-conformance-suite",
|
|
3
3
|
"description": "Conformance test suite for Wallet Attached Storage (WAS) servers, runnable as a CLI or in the browser.",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.17.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"build": "pnpm run clear && tsc",
|