@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.
Files changed (117) hide show
  1. package/CHANGELOG.md +149 -0
  2. package/README.md +192 -4
  3. package/dist/commands/collection-command.d.ts +169 -0
  4. package/dist/commands/collection-command.d.ts.map +1 -0
  5. package/dist/commands/collection-command.js +241 -0
  6. package/dist/commands/collection-command.js.map +1 -0
  7. package/dist/commands/did/create.d.ts +63 -0
  8. package/dist/commands/did/create.d.ts.map +1 -0
  9. package/dist/commands/did/create.js +625 -0
  10. package/dist/commands/did/create.js.map +1 -0
  11. package/dist/commands/did/manage.d.ts +68 -0
  12. package/dist/commands/did/manage.d.ts.map +1 -0
  13. package/dist/commands/did/manage.js +287 -0
  14. package/dist/commands/did/manage.js.map +1 -0
  15. package/dist/commands/did/service.d.ts +93 -0
  16. package/dist/commands/did/service.d.ts.map +1 -0
  17. package/dist/commands/did/service.js +324 -0
  18. package/dist/commands/did/service.js.map +1 -0
  19. package/dist/commands/did/webvh-update.d.ts +170 -0
  20. package/dist/commands/did/webvh-update.d.ts.map +1 -0
  21. package/dist/commands/did/webvh-update.js +402 -0
  22. package/dist/commands/did/webvh-update.js.map +1 -0
  23. package/dist/commands/did.d.ts +9 -0
  24. package/dist/commands/did.d.ts.map +1 -1
  25. package/dist/commands/did.js +107 -597
  26. package/dist/commands/did.js.map +1 -1
  27. package/dist/commands/edv.d.ts +15 -6
  28. package/dist/commands/edv.d.ts.map +1 -1
  29. package/dist/commands/edv.js +38 -28
  30. package/dist/commands/edv.js.map +1 -1
  31. package/dist/commands/key.d.ts +104 -0
  32. package/dist/commands/key.d.ts.map +1 -1
  33. package/dist/commands/key.js +432 -402
  34. package/dist/commands/key.js.map +1 -1
  35. package/dist/commands/vc.d.ts +2 -1
  36. package/dist/commands/vc.d.ts.map +1 -1
  37. package/dist/commands/vc.js +88 -145
  38. package/dist/commands/vc.js.map +1 -1
  39. package/dist/commands/was/collection.d.ts.map +1 -1
  40. package/dist/commands/was/collection.js +31 -85
  41. package/dist/commands/was/collection.js.map +1 -1
  42. package/dist/commands/was/publish.d.ts.map +1 -1
  43. package/dist/commands/was/publish.js +16 -44
  44. package/dist/commands/was/publish.js.map +1 -1
  45. package/dist/commands/was/resource.d.ts.map +1 -1
  46. package/dist/commands/was/resource.js +24 -51
  47. package/dist/commands/was/resource.js.map +1 -1
  48. package/dist/commands/was/shared.d.ts +78 -0
  49. package/dist/commands/was/shared.d.ts.map +1 -1
  50. package/dist/commands/was/shared.js +84 -0
  51. package/dist/commands/was/shared.js.map +1 -1
  52. package/dist/commands/was/space.d.ts +17 -0
  53. package/dist/commands/was/space.d.ts.map +1 -1
  54. package/dist/commands/was/space.js +47 -18
  55. package/dist/commands/was/space.js.map +1 -1
  56. package/dist/commands/was/tree.d.ts.map +1 -1
  57. package/dist/commands/was/tree.js +4 -6
  58. package/dist/commands/was/tree.js.map +1 -1
  59. package/dist/commands/was.d.ts +1 -1
  60. package/dist/commands/was.d.ts.map +1 -1
  61. package/dist/commands/was.js +71 -76
  62. package/dist/commands/was.js.map +1 -1
  63. package/dist/commands/zcap.d.ts +0 -18
  64. package/dist/commands/zcap.d.ts.map +1 -1
  65. package/dist/commands/zcap.js +63 -155
  66. package/dist/commands/zcap.js.map +1 -1
  67. package/dist/documentLoader.d.ts +5 -0
  68. package/dist/documentLoader.d.ts.map +1 -0
  69. package/dist/documentLoader.js +29 -0
  70. package/dist/documentLoader.js.map +1 -0
  71. package/dist/edv/hmac.d.ts.map +1 -1
  72. package/dist/edv/hmac.js +12 -12
  73. package/dist/edv/hmac.js.map +1 -1
  74. package/dist/edv/recipients.d.ts +2 -0
  75. package/dist/edv/recipients.d.ts.map +1 -1
  76. package/dist/edv/recipients.js +12 -15
  77. package/dist/edv/recipients.js.map +1 -1
  78. package/dist/keys/webvh-signer.d.ts +29 -0
  79. package/dist/keys/webvh-signer.d.ts.map +1 -0
  80. package/dist/keys/webvh-signer.js +44 -0
  81. package/dist/keys/webvh-signer.js.map +1 -0
  82. package/dist/keys/webvh-update.d.ts +33 -0
  83. package/dist/keys/webvh-update.d.ts.map +1 -0
  84. package/dist/keys/webvh-update.js +62 -0
  85. package/dist/keys/webvh-update.js.map +1 -0
  86. package/dist/meta.d.ts +36 -11
  87. package/dist/meta.d.ts.map +1 -1
  88. package/dist/meta.js +95 -73
  89. package/dist/meta.js.map +1 -1
  90. package/dist/storage.d.ts +122 -13
  91. package/dist/storage.d.ts.map +1 -1
  92. package/dist/storage.js +105 -13
  93. package/dist/storage.js.map +1 -1
  94. package/dist/vc/issue.d.ts.map +1 -1
  95. package/dist/vc/issue.js +4 -7
  96. package/dist/vc/issue.js.map +1 -1
  97. package/dist/vc/verify.d.ts +10 -0
  98. package/dist/vc/verify.d.ts.map +1 -1
  99. package/dist/vc/verify.js +38 -1
  100. package/dist/vc/verify.js.map +1 -1
  101. package/dist/was/client.d.ts.map +1 -1
  102. package/dist/was/client.js +8 -2
  103. package/dist/was/client.js.map +1 -1
  104. package/dist/was/grant.d.ts +44 -0
  105. package/dist/was/grant.d.ts.map +1 -0
  106. package/dist/was/grant.js +78 -0
  107. package/dist/was/grant.js.map +1 -0
  108. package/dist/was/registry.d.ts +2 -1
  109. package/dist/was/registry.d.ts.map +1 -1
  110. package/dist/was/registry.js +25 -7
  111. package/dist/was/registry.js.map +1 -1
  112. package/dist/zcap/delegate.d.ts.map +1 -1
  113. package/dist/zcap/delegate.js +1 -6
  114. package/dist/zcap/delegate.js.map +1 -1
  115. package/dist/zcap/signer.d.ts.map +1 -1
  116. package/dist/zcap/signer.js.map +1 -1
  117. 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 collection {string}
54
- * @param storageId {string}
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
- export async function saveToCollection(collection, storageId, data) {
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<KeyMetadata | undefined>} undefined when no sidecar exists.
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: object} | undefined>}
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('keys', storageId);
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.split(':')[1];
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.split(':')[1];
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.split(':')[1];
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.split(':')[1];
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.split(':')[1];
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}
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"issue.d.ts","sourceRoot":"","sources":["../../src/vc/issue.ts"],"names":[],"mappings":"AAoPA;;;;;;;;;;;;;;;;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,CAuClB"}
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 { securityLoader } from '@interop/security-document-loader';
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,
@@ -1 +1 @@
1
- {"version":3,"file":"issue.js","sourceRoot":"","sources":["../../src/vc/issue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"issue.js","sourceRoot":"","sources":["../../src/vc/issue.ts"],"names":[],"mappings":"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"}
@@ -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.
@@ -1 +1 @@
1
- {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/vc/verify.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACV,4BAA4B,EAC5B,WAAW,EACX,sBAAsB,EACvB,MAAM,wBAAwB,CAAA;AAgB/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,CASxC;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,4BAA4B,GACnC,WAAW,GAAG,SAAS,CAKzB;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,4BAA4B,GACnC,mBAAmB,CAcrB"}
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: 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.
@@ -1 +1 @@
1
- {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/vc/verify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/vc/verify.ts"],"names":[],"mappings":"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"}
@@ -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,EAAgC,KAAK,YAAY,EAAE,MAAM,eAAe,CAAA;AAG/E,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAA;AAEjE;;;;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;AAaD;;;;;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"}
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"}
@@ -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 (`z6Mk` = Ed25519).
66
- if (!keysData.publicKeyMultibase?.startsWith('z6Mk')) {
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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/was/client.ts"],"names":[],"mappings":"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"}
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"}
@@ -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;;;;;;;;;;GAUG;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,CAmBlB;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,CAgBA;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"}
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"}