@interop/did-cli 0.9.0 → 0.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +149 -0
- package/README.md +192 -4
- package/dist/commands/collection-command.d.ts +169 -0
- package/dist/commands/collection-command.d.ts.map +1 -0
- package/dist/commands/collection-command.js +241 -0
- package/dist/commands/collection-command.js.map +1 -0
- package/dist/commands/did/create.d.ts +63 -0
- package/dist/commands/did/create.d.ts.map +1 -0
- package/dist/commands/did/create.js +625 -0
- package/dist/commands/did/create.js.map +1 -0
- package/dist/commands/did/manage.d.ts +68 -0
- package/dist/commands/did/manage.d.ts.map +1 -0
- package/dist/commands/did/manage.js +287 -0
- package/dist/commands/did/manage.js.map +1 -0
- package/dist/commands/did/service.d.ts +93 -0
- package/dist/commands/did/service.d.ts.map +1 -0
- package/dist/commands/did/service.js +324 -0
- package/dist/commands/did/service.js.map +1 -0
- package/dist/commands/did/webvh-update.d.ts +170 -0
- package/dist/commands/did/webvh-update.d.ts.map +1 -0
- package/dist/commands/did/webvh-update.js +402 -0
- package/dist/commands/did/webvh-update.js.map +1 -0
- package/dist/commands/did.d.ts +9 -0
- package/dist/commands/did.d.ts.map +1 -1
- package/dist/commands/did.js +107 -597
- package/dist/commands/did.js.map +1 -1
- package/dist/commands/edv.d.ts +15 -6
- package/dist/commands/edv.d.ts.map +1 -1
- package/dist/commands/edv.js +38 -28
- package/dist/commands/edv.js.map +1 -1
- package/dist/commands/key.d.ts +104 -0
- package/dist/commands/key.d.ts.map +1 -1
- package/dist/commands/key.js +432 -402
- package/dist/commands/key.js.map +1 -1
- package/dist/commands/vc.d.ts +2 -1
- package/dist/commands/vc.d.ts.map +1 -1
- package/dist/commands/vc.js +88 -145
- package/dist/commands/vc.js.map +1 -1
- package/dist/commands/was/collection.d.ts.map +1 -1
- package/dist/commands/was/collection.js +31 -85
- package/dist/commands/was/collection.js.map +1 -1
- package/dist/commands/was/publish.d.ts.map +1 -1
- package/dist/commands/was/publish.js +16 -44
- package/dist/commands/was/publish.js.map +1 -1
- package/dist/commands/was/resource.d.ts.map +1 -1
- package/dist/commands/was/resource.js +24 -51
- package/dist/commands/was/resource.js.map +1 -1
- package/dist/commands/was/shared.d.ts +78 -0
- package/dist/commands/was/shared.d.ts.map +1 -1
- package/dist/commands/was/shared.js +84 -0
- package/dist/commands/was/shared.js.map +1 -1
- package/dist/commands/was/space.d.ts +17 -0
- package/dist/commands/was/space.d.ts.map +1 -1
- package/dist/commands/was/space.js +47 -18
- package/dist/commands/was/space.js.map +1 -1
- package/dist/commands/was/tree.d.ts.map +1 -1
- package/dist/commands/was/tree.js +4 -6
- package/dist/commands/was/tree.js.map +1 -1
- package/dist/commands/was.d.ts +1 -1
- package/dist/commands/was.d.ts.map +1 -1
- package/dist/commands/was.js +71 -76
- package/dist/commands/was.js.map +1 -1
- package/dist/commands/zcap.d.ts +0 -18
- package/dist/commands/zcap.d.ts.map +1 -1
- package/dist/commands/zcap.js +63 -155
- package/dist/commands/zcap.js.map +1 -1
- package/dist/documentLoader.d.ts +5 -0
- package/dist/documentLoader.d.ts.map +1 -0
- package/dist/documentLoader.js +29 -0
- package/dist/documentLoader.js.map +1 -0
- package/dist/edv/hmac.d.ts.map +1 -1
- package/dist/edv/hmac.js +12 -12
- package/dist/edv/hmac.js.map +1 -1
- package/dist/edv/recipients.d.ts +2 -0
- package/dist/edv/recipients.d.ts.map +1 -1
- package/dist/edv/recipients.js +12 -15
- package/dist/edv/recipients.js.map +1 -1
- package/dist/keys/webvh-signer.d.ts +29 -0
- package/dist/keys/webvh-signer.d.ts.map +1 -0
- package/dist/keys/webvh-signer.js +44 -0
- package/dist/keys/webvh-signer.js.map +1 -0
- package/dist/keys/webvh-update.d.ts +33 -0
- package/dist/keys/webvh-update.d.ts.map +1 -0
- package/dist/keys/webvh-update.js +62 -0
- package/dist/keys/webvh-update.js.map +1 -0
- package/dist/meta.d.ts +36 -11
- package/dist/meta.d.ts.map +1 -1
- package/dist/meta.js +95 -73
- package/dist/meta.js.map +1 -1
- package/dist/storage.d.ts +122 -13
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +105 -13
- package/dist/storage.js.map +1 -1
- package/dist/vc/issue.d.ts.map +1 -1
- package/dist/vc/issue.js +4 -7
- package/dist/vc/issue.js.map +1 -1
- package/dist/vc/verify.d.ts +10 -0
- package/dist/vc/verify.d.ts.map +1 -1
- package/dist/vc/verify.js +38 -1
- package/dist/vc/verify.js.map +1 -1
- package/dist/was/client.d.ts.map +1 -1
- package/dist/was/client.js +8 -2
- package/dist/was/client.js.map +1 -1
- package/dist/was/grant.d.ts +44 -0
- package/dist/was/grant.d.ts.map +1 -0
- package/dist/was/grant.js +78 -0
- package/dist/was/grant.js.map +1 -0
- package/dist/was/registry.d.ts +2 -1
- package/dist/was/registry.d.ts.map +1 -1
- package/dist/was/registry.js +25 -7
- package/dist/was/registry.js.map +1 -1
- package/dist/zcap/delegate.d.ts.map +1 -1
- package/dist/zcap/delegate.js +1 -6
- package/dist/zcap/delegate.js.map +1 -1
- package/dist/zcap/signer.d.ts.map +1 -1
- package/dist/zcap/signer.js.map +1 -1
- package/package.json +8 -6
package/dist/storage.js
CHANGED
|
@@ -50,15 +50,25 @@ export async function listCollection(collection) {
|
|
|
50
50
|
/**
|
|
51
51
|
* Load and JSON-parse a single item from a wallet collection.
|
|
52
52
|
*
|
|
53
|
-
* @param
|
|
54
|
-
* @param
|
|
53
|
+
* @param options {object}
|
|
54
|
+
* @param options.collection {string}
|
|
55
|
+
* @param options.storageId {string}
|
|
55
56
|
* @returns {Promise<T>}
|
|
56
57
|
*/
|
|
57
|
-
export async function loadFromCollection(collection, storageId) {
|
|
58
|
+
export async function loadFromCollection({ collection, storageId }) {
|
|
58
59
|
const filePath = join(getWalletDir(), collection, `${storageId}.json`);
|
|
59
60
|
return JSON.parse(await readFile(filePath, 'utf8'));
|
|
60
61
|
}
|
|
61
|
-
|
|
62
|
+
/**
|
|
63
|
+
* JSON-serialize and save a single item into a wallet collection.
|
|
64
|
+
*
|
|
65
|
+
* @param options {object}
|
|
66
|
+
* @param options.collection {string}
|
|
67
|
+
* @param options.storageId {string}
|
|
68
|
+
* @param options.data {object}
|
|
69
|
+
* @returns {Promise<string>} the item file path.
|
|
70
|
+
*/
|
|
71
|
+
export async function saveToCollection({ collection, storageId, data }) {
|
|
62
72
|
const dir = join(getWalletDir(), collection);
|
|
63
73
|
await mkdir(dir, { recursive: true });
|
|
64
74
|
const filePath = join(dir, `${storageId}.json`);
|
|
@@ -71,7 +81,7 @@ export async function saveToCollection(collection, storageId, data) {
|
|
|
71
81
|
* @param options {object}
|
|
72
82
|
* @param options.collection {string}
|
|
73
83
|
* @param options.storageId {string}
|
|
74
|
-
* @returns {Promise<
|
|
84
|
+
* @returns {Promise<T | undefined>} undefined when no sidecar exists.
|
|
75
85
|
*/
|
|
76
86
|
export async function loadMetaFromCollection({ collection, storageId }) {
|
|
77
87
|
const filePath = join(getWalletDir(), collection, `${storageId}.meta.json`);
|
|
@@ -150,12 +160,15 @@ export async function removeFromCollection({ collection, storageId }) {
|
|
|
150
160
|
*
|
|
151
161
|
* @param options {object}
|
|
152
162
|
* @param options.fingerprint {string}
|
|
153
|
-
* @returns {Promise<{storageId: string, key:
|
|
163
|
+
* @returns {Promise<{storageId: string, key: StoredKeyPair} | undefined>}
|
|
154
164
|
*/
|
|
155
165
|
export async function findStoredKey({ fingerprint }) {
|
|
156
166
|
const storageIds = await listCollection('keys');
|
|
157
167
|
for (const storageId of storageIds) {
|
|
158
|
-
const key = await loadFromCollection(
|
|
168
|
+
const key = await loadFromCollection({
|
|
169
|
+
collection: 'keys',
|
|
170
|
+
storageId
|
|
171
|
+
});
|
|
159
172
|
if (key.publicKeyMultibase === fingerprint || key.id === fingerprint) {
|
|
160
173
|
return { storageId, key };
|
|
161
174
|
}
|
|
@@ -165,6 +178,17 @@ export async function findStoredKey({ fingerprint }) {
|
|
|
165
178
|
function getDidsDir() {
|
|
166
179
|
return process.env.DIDS_DIR ?? join(getWalletDir(), 'dids');
|
|
167
180
|
}
|
|
181
|
+
/**
|
|
182
|
+
* Extract the method name from a DID -- the segment between the first two
|
|
183
|
+
* colons (`did:web:example.com` -> `web`). Used to pick the per-method storage
|
|
184
|
+
* subdirectory and to label DIDs in listings.
|
|
185
|
+
*
|
|
186
|
+
* @param did {string}
|
|
187
|
+
* @returns {string}
|
|
188
|
+
*/
|
|
189
|
+
export function methodOf(did) {
|
|
190
|
+
return did.split(':')[1];
|
|
191
|
+
}
|
|
168
192
|
/**
|
|
169
193
|
* List the DIDs saved in local storage, across all method subdirectories.
|
|
170
194
|
*
|
|
@@ -197,6 +221,7 @@ export async function listDids() {
|
|
|
197
221
|
for (const fileName of fileNames) {
|
|
198
222
|
if (!fileName.endsWith('.json') ||
|
|
199
223
|
fileName.endsWith('.keys.json') ||
|
|
224
|
+
fileName.endsWith('.update-keys.json') ||
|
|
200
225
|
fileName.endsWith('.meta.json')) {
|
|
201
226
|
continue;
|
|
202
227
|
}
|
|
@@ -215,7 +240,7 @@ export async function listDids() {
|
|
|
215
240
|
* @returns {Promise<T>}
|
|
216
241
|
*/
|
|
217
242
|
export async function loadDidDocument(did) {
|
|
218
|
-
const method = did
|
|
243
|
+
const method = methodOf(did);
|
|
219
244
|
const filePath = join(getDidsDir(), method, `${did}.json`);
|
|
220
245
|
return JSON.parse(await readFile(filePath, 'utf8'));
|
|
221
246
|
}
|
|
@@ -229,7 +254,7 @@ export async function loadDidDocument(did) {
|
|
|
229
254
|
* @returns {Promise<T>}
|
|
230
255
|
*/
|
|
231
256
|
export async function loadDidKeys(did) {
|
|
232
|
-
const method = did
|
|
257
|
+
const method = methodOf(did);
|
|
233
258
|
const filePath = join(getDidsDir(), method, `${did}.keys.json`);
|
|
234
259
|
return JSON.parse(await readFile(filePath, 'utf8'));
|
|
235
260
|
}
|
|
@@ -241,7 +266,7 @@ export async function loadDidKeys(did) {
|
|
|
241
266
|
* @returns {Promise<ItemMetadata | undefined>} undefined when no sidecar exists.
|
|
242
267
|
*/
|
|
243
268
|
export async function loadDidMeta({ did }) {
|
|
244
|
-
const method = did
|
|
269
|
+
const method = methodOf(did);
|
|
245
270
|
const filePath = join(getDidsDir(), method, `${did}.meta.json`);
|
|
246
271
|
try {
|
|
247
272
|
return JSON.parse(await readFile(filePath, 'utf8'));
|
|
@@ -262,7 +287,7 @@ export async function loadDidMeta({ did }) {
|
|
|
262
287
|
* @returns {Promise<string>} the sidecar file path.
|
|
263
288
|
*/
|
|
264
289
|
export async function saveDidMeta({ did, meta }) {
|
|
265
|
-
const method = did
|
|
290
|
+
const method = methodOf(did);
|
|
266
291
|
return saveToDids({ method, did, suffix: 'meta', data: meta });
|
|
267
292
|
}
|
|
268
293
|
/**
|
|
@@ -275,20 +300,87 @@ export async function saveDidMeta({ did, meta }) {
|
|
|
275
300
|
* @returns {Promise<string[]>} the file paths that were deleted.
|
|
276
301
|
*/
|
|
277
302
|
export async function removeDidFiles({ did }) {
|
|
278
|
-
const method = did
|
|
303
|
+
const method = methodOf(did);
|
|
279
304
|
const dir = join(getDidsDir(), method);
|
|
280
305
|
const removed = [];
|
|
281
306
|
const docPath = join(dir, `${did}.json`);
|
|
282
307
|
await unlink(docPath);
|
|
283
308
|
removed.push(docPath);
|
|
284
|
-
for (const suffix of ['keys', 'meta']) {
|
|
309
|
+
for (const suffix of ['keys', 'update-keys', 'meta']) {
|
|
285
310
|
const sidecarPath = join(dir, `${did}.${suffix}.json`);
|
|
286
311
|
if (await unlinkIfExists(sidecarPath)) {
|
|
287
312
|
removed.push(sidecarPath);
|
|
288
313
|
}
|
|
289
314
|
}
|
|
315
|
+
// did:webvh additionally stores a `.jsonl` history log; only that method has
|
|
316
|
+
// one, so unlink it conditionally.
|
|
317
|
+
const logPath = join(dir, `${did}.jsonl`);
|
|
318
|
+
if (await unlinkIfExists(logPath)) {
|
|
319
|
+
removed.push(logPath);
|
|
320
|
+
}
|
|
290
321
|
return removed;
|
|
291
322
|
}
|
|
323
|
+
/**
|
|
324
|
+
* Save a did:webvh history log as a raw newline-delimited JSON (`.jsonl`) file
|
|
325
|
+
* alongside the DID document, under the method subdirectory.
|
|
326
|
+
*
|
|
327
|
+
* Unlike `saveToDids`, the log is written as raw text -- each entry serialized
|
|
328
|
+
* on its own line with a trailing newline -- not as a pretty-printed JSON
|
|
329
|
+
* object, so it round-trips as a valid `did.jsonl`.
|
|
330
|
+
*
|
|
331
|
+
* @param options {object}
|
|
332
|
+
* @param options.did {string}
|
|
333
|
+
* @param options.log {object[]} the array of signed log entries.
|
|
334
|
+
* @returns {Promise<string>} the log file path.
|
|
335
|
+
*/
|
|
336
|
+
export async function saveDidLog({ did, log }) {
|
|
337
|
+
const method = methodOf(did);
|
|
338
|
+
const dir = join(getDidsDir(), method);
|
|
339
|
+
await mkdir(dir, { recursive: true });
|
|
340
|
+
const filePath = join(dir, `${did}.jsonl`);
|
|
341
|
+
const serialized = log.map(entry => JSON.stringify(entry)).join('\n') + '\n';
|
|
342
|
+
await writeFile(filePath, serialized, 'utf8');
|
|
343
|
+
return filePath;
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* Load the raw did:webvh history log (`.jsonl`) saved for a DID.
|
|
347
|
+
*
|
|
348
|
+
* Returns the file's raw text (newline-delimited JSON), suitable for feeding to
|
|
349
|
+
* `resolveDIDFromLog` after splitting on newlines.
|
|
350
|
+
*
|
|
351
|
+
* @param did {string}
|
|
352
|
+
* @returns {Promise<string>}
|
|
353
|
+
*/
|
|
354
|
+
export async function loadDidLog(did) {
|
|
355
|
+
const method = methodOf(did);
|
|
356
|
+
const filePath = join(getDidsDir(), method, `${did}.jsonl`);
|
|
357
|
+
return readFile(filePath, 'utf8');
|
|
358
|
+
}
|
|
359
|
+
/**
|
|
360
|
+
* Save the `<did>.update-keys.json` sidecar holding a did:webvh DID's update
|
|
361
|
+
* (authorization) keys, alongside its DID document under the method subdir.
|
|
362
|
+
*
|
|
363
|
+
* @param options {object}
|
|
364
|
+
* @param options.did {string}
|
|
365
|
+
* @param options.updateKeys {WebvhUpdateKeys}
|
|
366
|
+
* @returns {Promise<string>} the sidecar file path.
|
|
367
|
+
*/
|
|
368
|
+
export async function saveDidUpdateKeys({ did, updateKeys }) {
|
|
369
|
+
const method = methodOf(did);
|
|
370
|
+
return saveToDids({ method, did, suffix: 'update-keys', data: updateKeys });
|
|
371
|
+
}
|
|
372
|
+
/**
|
|
373
|
+
* Load the `<did>.update-keys.json` sidecar of a did:webvh DID. Throws (ENOENT)
|
|
374
|
+
* when no sidecar exists -- e.g. a DID created before pre-rotation support.
|
|
375
|
+
*
|
|
376
|
+
* @param did {string}
|
|
377
|
+
* @returns {Promise<WebvhUpdateKeys>}
|
|
378
|
+
*/
|
|
379
|
+
export async function loadDidUpdateKeys(did) {
|
|
380
|
+
const method = methodOf(did);
|
|
381
|
+
const filePath = join(getDidsDir(), method, `${did}.update-keys.json`);
|
|
382
|
+
return JSON.parse(await readFile(filePath, 'utf8'));
|
|
383
|
+
}
|
|
292
384
|
/**
|
|
293
385
|
* @param options {object}
|
|
294
386
|
* @param options.method {string}
|
package/dist/storage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,SAAS,YAAY;IACnB,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAA;IAC/B,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAA;IAC5E,OAAO,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAA;AAC3C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAU;IAC1C,OAAO,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AAC1E,CAAC;
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
|
package/dist/vc/issue.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue.d.ts","sourceRoot":"","sources":["../../src/vc/issue.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"issue.d.ts","sourceRoot":"","sources":["../../src/vc/issue.ts"],"names":[],"mappings":"AAmOA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,eAAe,CAAC,EACpC,UAAU,EACV,GAAG,EACH,KAAK,EACL,KAAK,EACN,EAAE;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,GAAG,OAAO,CAAC,MAAM,CAAC,CA2ClB"}
|
package/dist/vc/issue.js
CHANGED
|
@@ -19,15 +19,9 @@ import * as EcdsaMultikey from '@interop/ecdsa-multikey';
|
|
|
19
19
|
import { ecdsaRdfc2019 } from '@interop/ecdsa-signature';
|
|
20
20
|
import { DataIntegrityProof } from '@interop/data-integrity-proof';
|
|
21
21
|
import { issue } from '@interop/vc';
|
|
22
|
-
import {
|
|
22
|
+
import { documentLoader } from '../documentLoader.js';
|
|
23
23
|
import { loadDidDocument, loadDidKeys } from '../storage.js';
|
|
24
24
|
import { isEcdsaPublicKeyMultibase } from '../keys/ecdsa.js';
|
|
25
|
-
/**
|
|
26
|
-
* Offline document loader for signing: bundles the VC / Data Integrity / suite
|
|
27
|
-
* contexts (including the `ed25519-2020` suite context) and a did:key resolver.
|
|
28
|
-
* Built once and reused across calls.
|
|
29
|
-
*/
|
|
30
|
-
const documentLoader = securityLoader().build();
|
|
31
25
|
/**
|
|
32
26
|
* The supported `--suite` values per key type. The signing key's type (read
|
|
33
27
|
* from its multibase header) determines which suites are usable; an ed25519 key
|
|
@@ -202,6 +196,9 @@ export async function issueCredential({ credential, did, keyId, suite }) {
|
|
|
202
196
|
throw new Error(`No stored secret key found for key id ${selectedKeyId} in DID ${did}`);
|
|
203
197
|
}
|
|
204
198
|
const signatureSuite = await buildSuite({ storedKey, suite });
|
|
199
|
+
// The local credential / suite / loader shapes satisfy @interop/vc's
|
|
200
|
+
// contracts structurally but are typed independently here; cast to the option
|
|
201
|
+
// types rather than the blanket `as never`.
|
|
205
202
|
return issue({
|
|
206
203
|
credential: credential,
|
|
207
204
|
suite: signatureSuite,
|
package/dist/vc/issue.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue.js","sourceRoot":"","sources":["../../src/vc/issue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,aAAa,EACd,MAAM,4BAA4B,CAAA;AACnC,OAAO,KAAK,aAAa,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAClE,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"issue.js","sourceRoot":"","sources":["../../src/vc/issue.ts"],"names":[],"mappings":"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"}
|
package/dist/vc/verify.d.ts
CHANGED
|
@@ -35,6 +35,16 @@ export declare function verifyCredentialFully({ credential, registries }: {
|
|
|
35
35
|
* @returns {CheckResult | undefined}
|
|
36
36
|
*/
|
|
37
37
|
export declare function findParseFailure(result: CredentialVerificationResult): CheckResult | undefined;
|
|
38
|
+
/**
|
|
39
|
+
* Returns the explanatory `detail` of an unresolved-verification-method problem
|
|
40
|
+
* when verification failed because the proof's DID method could not be resolved,
|
|
41
|
+
* or undefined otherwise. Drives a friendly CLI hint distinguishing this
|
|
42
|
+
* misconfiguration from a genuine invalid signature.
|
|
43
|
+
*
|
|
44
|
+
* @param result {CredentialVerificationResult}
|
|
45
|
+
* @returns {string | undefined}
|
|
46
|
+
*/
|
|
47
|
+
export declare function unresolvedMethodDetail(result: CredentialVerificationResult): string | undefined;
|
|
38
48
|
/**
|
|
39
49
|
* Translates a verifier-core result into a compact summary object for the
|
|
40
50
|
* `--summary` flag.
|
package/dist/vc/verify.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/vc/verify.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACV,4BAA4B,EAC5B,WAAW,
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/vc/verify.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACV,4BAA4B,EAC5B,WAAW,EAEX,sBAAsB,EACvB,MAAM,wBAAwB,CAAA;AAiB/B;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE;QACN,SAAS,CAAC,EAAE,OAAO,CAAA;QACnB,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAC3B,CAAA;IACD,eAAe,EAAE,OAAO,EAAE,CAAA;CAC3B;AAED;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CAAC,EAC1C,UAAU,EACV,UAAU,EACX,EAAE;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,sBAAsB,EAAE,CAAA;CACrC,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAiBxC;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,4BAA4B,GACnC,WAAW,GAAG,SAAS,CAKzB;AAWD;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,4BAA4B,GACnC,MAAM,GAAG,SAAS,CAapB;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,4BAA4B,GACnC,mBAAmB,CAcrB"}
|
package/dist/vc/verify.js
CHANGED
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
import { verifyCredential, ProblemTypes } from '@interop/verifier-core';
|
|
14
14
|
import { expirationSuite } from './suites/expirationSuite.js';
|
|
15
15
|
import { issuerDetailsSuite } from './suites/issuerDetailsSuite.js';
|
|
16
|
+
import { documentLoader } from '../documentLoader.js';
|
|
16
17
|
/**
|
|
17
18
|
* Dot-separated check ids emitted by the verifier-core pipeline (and the two
|
|
18
19
|
* custom suites) that the summary reads.
|
|
@@ -36,9 +37,17 @@ const CHECK_ID = {
|
|
|
36
37
|
*/
|
|
37
38
|
export async function verifyCredentialFully({ credential, registries }) {
|
|
38
39
|
return verifyCredential({
|
|
39
|
-
credential
|
|
40
|
+
// `credential` is typed `unknown` by verifier-core (parsed internally via
|
|
41
|
+
// Zod), so the local object passes without a cast.
|
|
42
|
+
credential,
|
|
40
43
|
registries,
|
|
41
44
|
additionalSuites: [expirationSuite, issuerDetailsSuite],
|
|
45
|
+
// The shared loader resolves did:webvh (and did:web / did:key) verification
|
|
46
|
+
// methods; verifier-core's default loader knows only did:key + did:web, so
|
|
47
|
+
// without this a did:webvh issuer's signature can never be checked. The
|
|
48
|
+
// local loader is typed independently, so cast to verifier-core's
|
|
49
|
+
// DocumentLoader rather than the blanket `as never`.
|
|
50
|
+
documentLoader: documentLoader,
|
|
42
51
|
// verbose so results[] carries EVERY check (incl. successes and the
|
|
43
52
|
// issuer-details payload), not just failures folded into summary[].
|
|
44
53
|
verbose: true
|
|
@@ -54,6 +63,34 @@ export async function verifyCredentialFully({ credential, registries }) {
|
|
|
54
63
|
export function findParseFailure(result) {
|
|
55
64
|
return result.results.find(check => check.check === CHECK_ID.parsing && check.outcome.status === 'failure');
|
|
56
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* verifier-core problem type emitted when a proof's verification method uses a
|
|
68
|
+
* DID method the document loader has no resolver/driver for. The signature was
|
|
69
|
+
* never actually checked, so this is a loader misconfiguration, not a bad
|
|
70
|
+
* signature.
|
|
71
|
+
*/
|
|
72
|
+
const VERIFICATION_METHOD_UNRESOLVED = 'https://www.w3.org/TR/vc-data-model#VERIFICATION_METHOD_UNRESOLVED';
|
|
73
|
+
/**
|
|
74
|
+
* Returns the explanatory `detail` of an unresolved-verification-method problem
|
|
75
|
+
* when verification failed because the proof's DID method could not be resolved,
|
|
76
|
+
* or undefined otherwise. Drives a friendly CLI hint distinguishing this
|
|
77
|
+
* misconfiguration from a genuine invalid signature.
|
|
78
|
+
*
|
|
79
|
+
* @param result {CredentialVerificationResult}
|
|
80
|
+
* @returns {string | undefined}
|
|
81
|
+
*/
|
|
82
|
+
export function unresolvedMethodDetail(result) {
|
|
83
|
+
for (const check of result.results) {
|
|
84
|
+
if (check.outcome.status !== 'failure') {
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
const problem = check.outcome.problems.find(candidate => candidate.type === VERIFICATION_METHOD_UNRESOLVED);
|
|
88
|
+
if (problem) {
|
|
89
|
+
return problem.detail;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return undefined;
|
|
93
|
+
}
|
|
57
94
|
/**
|
|
58
95
|
* Translates a verifier-core result into a compact summary object for the
|
|
59
96
|
* `--summary` flag.
|
package/dist/vc/verify.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/vc/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/vc/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAOvE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD;;;GAGG;AACH,MAAM,QAAQ,GAAG;IACf,SAAS,EAAE,iBAAiB;IAC5B,MAAM,EAAE,kBAAkB;IAC1B,UAAU,EAAE,qBAAqB;IACjC,aAAa,EAAE,sBAAsB;IACrC,OAAO,EAAE,kBAAkB;CACnB,CAAA;AAiBV;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,EAC1C,UAAU,EACV,UAAU,EAIX;IACC,OAAO,gBAAgB,CAAC;QACtB,0EAA0E;QAC1E,mDAAmD;QACnD,UAAU;QACV,UAAU;QACV,gBAAgB,EAAE,CAAC,eAAe,EAAE,kBAAkB,CAAC;QACvD,4EAA4E;QAC5E,2EAA2E;QAC3E,wEAAwE;QACxE,kEAAkE;QAClE,qDAAqD;QACrD,cAAc,EAAE,cAA2C;QAC3D,oEAAoE;QACpE,oEAAoE;QACpE,OAAO,EAAE,IAAI;KACd,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAoC;IAEpC,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CACxB,KAAK,CAAC,EAAE,CACN,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CACzE,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,8BAA8B,GAClC,oEAAoE,CAAA;AAEtE;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAoC;IAEpC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACvC,SAAQ;QACV,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CACzC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,8BAA8B,CAC/D,CAAA;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,OAAO,CAAC,MAAM,CAAA;QACvB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CACvB,MAAoC;IAEpC,MAAM,OAAO,GAAG,CAAC,OAAe,EAA2B,EAAE,CAC3D,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,CAAA;IAEvD,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM,EAAE;YACN,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC9C,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAC7C,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC1C,gBAAgB,EAAE,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;SACpE;QACD,eAAe,EAAE,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;KACtE,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,MAAM,CAAC,KAA8B;IAC5C,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAA;AAC3C,CAAC;AAED;;;;;;GAMG;AACH,SAAS,MAAM,CAAC,KAA8B;IAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAC5B,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;AACnD,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,OAAO,CAAC,KAA8B;IAC7C,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACvC,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,YAAY,CAAC,qBAAqB,EAAE,CAAC;QAC3E,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,KAA8B;IACtD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;AAC9C,CAAC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,KAA8B;IACzD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjD,OAAO,EAAE,CAAA;IACX,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAEjB,CAAA;IACb,OAAO,OAAO,EAAE,eAAe,IAAI,EAAE,CAAA;AACvC,CAAC"}
|
package/dist/was/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/was/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAG/C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/was/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAG/C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAGL,KAAK,YAAY,EAElB,MAAM,eAAe,CAAA;AAGtB,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAA;AASjE;;;;GAIG;AACH,KAAK,gBAAgB,GAAG,CAAC,OAAO,EAAE;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,OAAO,CAAA;CAChB,KAAK,SAAS,CAAA;AAcf;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAEpE;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,SAAS,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,CAAC;QAAC,IAAI,CAAC,EAAE,YAAY,CAAA;KAAE,CAAA;CACxE;AAED;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAAC,EAClC,GAAG,EACJ,EAAE;IACD,GAAG,EAAE,MAAM,CAAA;CACZ,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,CAiC5C;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CAAC,EACnC,MAAM,EACN,GAAG,EACJ,GAAE;IACD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;CACR,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAcnE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,gBAAgB,CAAC,EACrC,OAAO,EACP,MAAM,EACN,GAAG,EACJ,EAAE;IACD,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAuC7B"}
|
package/dist/was/client.js
CHANGED
|
@@ -19,6 +19,12 @@ import { loadDidDocument, loadDidKeys } from '../storage.js';
|
|
|
19
19
|
import { resolveDidRef } from '../meta.js';
|
|
20
20
|
import { parseWasAddress } from './address.js';
|
|
21
21
|
import { resolveSpaceRef } from './registry.js';
|
|
22
|
+
/**
|
|
23
|
+
* The multibase prefix of an Ed25519 `publicKeyMultibase`. Both Ed25519 and
|
|
24
|
+
* ECDSA keys export as `type: 'Multikey'`, so the multicodec prefix of the
|
|
25
|
+
* public key is what identifies the curve.
|
|
26
|
+
*/
|
|
27
|
+
const ED25519_MULTIBASE_PREFIX = 'z6Mk';
|
|
22
28
|
function defaultWasClientFactory({ serverUrl, signer }) {
|
|
23
29
|
return WasClient.fromSigner({ serverUrl, signer });
|
|
24
30
|
}
|
|
@@ -62,8 +68,8 @@ export async function loadWasSigner({ did }) {
|
|
|
62
68
|
}
|
|
63
69
|
const keysData = await loadDidKeys(resolved);
|
|
64
70
|
// Both Ed25519 and ECDSA keys export as `type: 'Multikey'`; the curve is
|
|
65
|
-
// identified by the multicodec prefix of the public key
|
|
66
|
-
if (!keysData.publicKeyMultibase?.startsWith(
|
|
71
|
+
// identified by the multicodec prefix of the public key.
|
|
72
|
+
if (!keysData.publicKeyMultibase?.startsWith(ED25519_MULTIBASE_PREFIX)) {
|
|
67
73
|
throw new Error('WAS signing currently supports only Ed25519 keys ' +
|
|
68
74
|
`(DID ${resolved} has a different key type).`);
|
|
69
75
|
}
|
package/dist/was/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/was/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/was/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Capability-grant assembly for `was grant`: normalizes the requested actions,
|
|
3
|
+
* resolves the delegatee DID, signs the delegated capability via the WAS
|
|
4
|
+
* client, encodes it, and (optionally) persists it to the local zcap store.
|
|
5
|
+
* The CLI `runGrant` layer only parses options, calls `grantAccess`, and
|
|
6
|
+
* prints -- this module owns the cross-module assembly/encoding/persistence.
|
|
7
|
+
*/
|
|
8
|
+
import { type WasClient } from '@interop/was-client';
|
|
9
|
+
/**
|
|
10
|
+
* Delegates access to a WAS target: resolves the `to` DID, signs a capability
|
|
11
|
+
* for the given actions and expiration via the client, encodes it, and saves
|
|
12
|
+
* it to the local zcap store when `save` is set. Returns the signed
|
|
13
|
+
* capability, its encoded form, and the saved file path (when saved) for the
|
|
14
|
+
* caller to print.
|
|
15
|
+
*
|
|
16
|
+
* @param options {object}
|
|
17
|
+
* @param options.client {WasClient} The signing WAS client.
|
|
18
|
+
* @param options.target {string} The invocation target URL.
|
|
19
|
+
* @param options.to {string} The delegatee DID or stored-DID handle.
|
|
20
|
+
* @param options.actions {string[]} Requested actions (HTTP verbs).
|
|
21
|
+
* @param [options.ttl] {string} Time-to-live for expiration (default 1y).
|
|
22
|
+
* @param [options.expires] {string} Explicit ISO 8601 expiration (overrides
|
|
23
|
+
* ttl).
|
|
24
|
+
* @param [options.save] {boolean} Save the capability to the zcap store.
|
|
25
|
+
* @param [options.handle] {string} Short tag for the saved zcap.
|
|
26
|
+
* @param [options.description] {string} Longer description for the saved zcap.
|
|
27
|
+
* @returns {Promise<{delegatedCapability: object, encoded: string, savedPath?: string}>}
|
|
28
|
+
*/
|
|
29
|
+
export declare function grantAccess({ client, target, to, actions, ttl, expires, save, handle, description }: {
|
|
30
|
+
client: WasClient;
|
|
31
|
+
target: string;
|
|
32
|
+
to: string;
|
|
33
|
+
actions: string[];
|
|
34
|
+
ttl?: string;
|
|
35
|
+
expires?: string;
|
|
36
|
+
save?: boolean;
|
|
37
|
+
handle?: string;
|
|
38
|
+
description?: string;
|
|
39
|
+
}): Promise<{
|
|
40
|
+
delegatedCapability: Awaited<ReturnType<WasClient['grant']>>;
|
|
41
|
+
encoded: string;
|
|
42
|
+
savedPath?: string;
|
|
43
|
+
}>;
|
|
44
|
+
//# sourceMappingURL=grant.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grant.d.ts","sourceRoot":"","sources":["../../src/was/grant.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAiCpD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,WAAW,CAAC,EAChC,MAAM,EACN,MAAM,EACN,EAAE,EACF,OAAO,EACP,GAAG,EACH,OAAO,EACP,IAAI,EACJ,MAAM,EACN,WAAW,EACZ,EAAE;IACD,MAAM,EAAE,SAAS,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,GAAG,OAAO,CAAC;IACV,mBAAmB,EAAE,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAC5D,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAC,CA+BD"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { resolveDidRef } from '../meta.js';
|
|
2
|
+
import { sanitizeStorageId, saveToCollection } from '../storage.js';
|
|
3
|
+
import { encodeCapability } from '../zcap/encoding.js';
|
|
4
|
+
import { expiresFromTtl } from '../zcap/ttl.js';
|
|
5
|
+
import { writeCreateMeta } from '../commands/collection-command.js';
|
|
6
|
+
/** The zcap wallet collection grants are saved into with `--save`. */
|
|
7
|
+
const ZCAP_COLLECTION = 'zcaps';
|
|
8
|
+
/** The capability actions WAS servers match against (HTTP verbs). */
|
|
9
|
+
const WAS_ACTIONS = ['GET', 'PUT', 'POST', 'DELETE'];
|
|
10
|
+
/**
|
|
11
|
+
* Normalizes grant action verbs to their canonical uppercase form,
|
|
12
|
+
* rejecting anything that is not a WAS-supported HTTP verb.
|
|
13
|
+
*
|
|
14
|
+
* @param actions {string[]}
|
|
15
|
+
* @returns {WasAction[]}
|
|
16
|
+
*/
|
|
17
|
+
function normalizeActions(actions) {
|
|
18
|
+
return actions.map(action => {
|
|
19
|
+
const verb = action.toUpperCase();
|
|
20
|
+
if (!WAS_ACTIONS.includes(verb)) {
|
|
21
|
+
throw new Error(`Unknown action "${action}" (supported: GET, PUT, POST, DELETE).`);
|
|
22
|
+
}
|
|
23
|
+
return verb;
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Delegates access to a WAS target: resolves the `to` DID, signs a capability
|
|
28
|
+
* for the given actions and expiration via the client, encodes it, and saves
|
|
29
|
+
* it to the local zcap store when `save` is set. Returns the signed
|
|
30
|
+
* capability, its encoded form, and the saved file path (when saved) for the
|
|
31
|
+
* caller to print.
|
|
32
|
+
*
|
|
33
|
+
* @param options {object}
|
|
34
|
+
* @param options.client {WasClient} The signing WAS client.
|
|
35
|
+
* @param options.target {string} The invocation target URL.
|
|
36
|
+
* @param options.to {string} The delegatee DID or stored-DID handle.
|
|
37
|
+
* @param options.actions {string[]} Requested actions (HTTP verbs).
|
|
38
|
+
* @param [options.ttl] {string} Time-to-live for expiration (default 1y).
|
|
39
|
+
* @param [options.expires] {string} Explicit ISO 8601 expiration (overrides
|
|
40
|
+
* ttl).
|
|
41
|
+
* @param [options.save] {boolean} Save the capability to the zcap store.
|
|
42
|
+
* @param [options.handle] {string} Short tag for the saved zcap.
|
|
43
|
+
* @param [options.description] {string} Longer description for the saved zcap.
|
|
44
|
+
* @returns {Promise<{delegatedCapability: object, encoded: string, savedPath?: string}>}
|
|
45
|
+
*/
|
|
46
|
+
export async function grantAccess({ client, target, to, actions, ttl, expires, save, handle, description }) {
|
|
47
|
+
const normalizedActions = normalizeActions(actions);
|
|
48
|
+
const delegatee = await resolveDidRef({ ref: to });
|
|
49
|
+
if (!delegatee) {
|
|
50
|
+
throw new Error(`No locally stored DID found for "${to}".`);
|
|
51
|
+
}
|
|
52
|
+
const expiresAt = expires ?? expiresFromTtl(ttl ?? '1y').toISOString();
|
|
53
|
+
const delegatedCapability = await client.grant({
|
|
54
|
+
to: delegatee,
|
|
55
|
+
actions: normalizedActions,
|
|
56
|
+
expires: expiresAt,
|
|
57
|
+
target
|
|
58
|
+
});
|
|
59
|
+
const encoded = encodeCapability(delegatedCapability);
|
|
60
|
+
if (!save) {
|
|
61
|
+
return { delegatedCapability, encoded };
|
|
62
|
+
}
|
|
63
|
+
const storageId = sanitizeStorageId(delegatedCapability.id);
|
|
64
|
+
const savedPath = await saveToCollection({
|
|
65
|
+
collection: ZCAP_COLLECTION,
|
|
66
|
+
storageId,
|
|
67
|
+
data: delegatedCapability
|
|
68
|
+
});
|
|
69
|
+
await writeCreateMeta({
|
|
70
|
+
collection: ZCAP_COLLECTION,
|
|
71
|
+
storageId,
|
|
72
|
+
created: new Date().toISOString(),
|
|
73
|
+
handle,
|
|
74
|
+
description
|
|
75
|
+
});
|
|
76
|
+
return { delegatedCapability, encoded, savedPath };
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=grant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grant.js","sourceRoot":"","sources":["../../src/was/grant.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AAEnE,sEAAsE;AACtE,MAAM,eAAe,GAAG,OAAO,CAAA;AAE/B,qEAAqE;AACrE,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAU,CAAA;AAG7D;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,OAAiB;IACzC,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,EAAe,CAAA;QAC9C,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CACb,mBAAmB,MAAM,wCAAwC,CAClE,CAAA;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAChC,MAAM,EACN,MAAM,EACN,EAAE,EACF,OAAO,EACP,GAAG,EACH,OAAO,EACP,IAAI,EACJ,MAAM,EACN,WAAW,EAWZ;IAKC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;IACnD,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAA;IAClD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,oCAAoC,EAAE,IAAI,CAAC,CAAA;IAC7D,CAAC;IACD,MAAM,SAAS,GAAG,OAAO,IAAI,cAAc,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;IACtE,MAAM,mBAAmB,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;QAC7C,EAAE,EAAE,SAAS;QACb,OAAO,EAAE,iBAAiB;QAC1B,OAAO,EAAE,SAAS;QAClB,MAAM;KACP,CAAC,CAAA;IACF,MAAM,OAAO,GAAG,gBAAgB,CAAC,mBAAmB,CAAC,CAAA;IACrD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,CAAA;IACzC,CAAC;IACD,MAAM,SAAS,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAA;IAC3D,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC;QACvC,UAAU,EAAE,eAAe;QAC3B,SAAS;QACT,IAAI,EAAE,mBAAmB;KAC1B,CAAC,CAAA;IACF,MAAM,eAAe,CAAC;QACpB,UAAU,EAAE,eAAe;QAC3B,SAAS;QACT,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACjC,MAAM;QACN,WAAW;KACZ,CAAC,CAAA;IACF,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,EAAE,CAAA;AACpD,CAAC"}
|
package/dist/was/registry.d.ts
CHANGED
|
@@ -25,7 +25,8 @@ export interface SpaceRecord {
|
|
|
25
25
|
/**
|
|
26
26
|
* Saves (or overwrites) a space registry entry and its metadata sidecar.
|
|
27
27
|
* The `created` timestamp of an existing sidecar is preserved; `handle` and
|
|
28
|
-
* `description` overwrite only when given
|
|
28
|
+
* `description` overwrite only when given, and an empty string clears the
|
|
29
|
+
* field.
|
|
29
30
|
*
|
|
30
31
|
* @param options {object}
|
|
31
32
|
* @param options.record {SpaceRecord}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/was/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAQL,KAAK,YAAY,EAClB,MAAM,eAAe,CAAA;AAItB;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,mDAAmD;IACnD,EAAE,EAAE,MAAM,CAAA;IACV,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/was/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAQL,KAAK,YAAY,EAClB,MAAM,eAAe,CAAA;AAItB;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,mDAAmD;IACnD,EAAE,EAAE,MAAM,CAAA;IACV,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CAAC,EACpC,MAAM,EACN,MAAM,EACN,WAAW,EACZ,EAAE;IACD,MAAM,EAAE,WAAW,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,GAAG,OAAO,CAAC,MAAM,CAAC,CA+BlB;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAC/C;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAC;IAAC,IAAI,CAAC,EAAE,YAAY,CAAA;CAAE,EAAE,CAClE,CAmBA;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CAAC,EAAE,GAAG,EAAE,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CACpE;IACE,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,WAAW,CAAA;IACnB,IAAI,CAAC,EAAE,YAAY,CAAA;CACpB,GACD,SAAS,CACZ,CAiBA;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,EACtC,SAAS,EACV,EAAE;IACD,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAEpB"}
|