@interop/did-cli 0.9.0 → 0.10.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.
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Bridge between the CLI's `@interop/ed25519-verification-key` key pair and the
3
+ * `Signer` / `Verifier` interfaces expected by `@interop/did-method-webvh`, so
4
+ * did:webvh reuses the same Ed25519 key class as did:key / did:web rather than
5
+ * pulling in a separate signing implementation.
6
+ *
7
+ * `createDID` both signs the initial log entry and verifies it before
8
+ * returning, so the bridge implements both interfaces: `sign({ document,
9
+ * proof })` returns a base58btc multibase `proofValue`, and `verify` checks an
10
+ * Ed25519 signature. `prepareDataForSigning` produces the bytes to sign (the
11
+ * `eddsa-jcs-2022` cryptosuite hash); the key pair's own `signer()` / `verifier()`
12
+ * do the cryptography.
13
+ */
14
+ import { MultibaseEncoding, multibaseEncode, prepareDataForSigning } from '@interop/did-method-webvh';
15
+ /**
16
+ * Build a did:webvh `Signer` (and `Verifier`) backed by an Ed25519 key pair.
17
+ *
18
+ * `keyPair.signer()` requires `keyPair.id` to be set, so the caller must assign
19
+ * an id before signing; this helper derives the verification method id from the
20
+ * key's `publicKeyMultibase` (the did:key form the library validates against).
21
+ *
22
+ * @param options {object}
23
+ * @param options.keyPair {object} an `@interop/ed25519-verification-key` pair.
24
+ * @returns {Signer & Verifier}
25
+ */
26
+ export function makeWebvhSigner({ keyPair }) {
27
+ const verificationMethodId = `did:key:${keyPair.publicKeyMultibase}#${keyPair.publicKeyMultibase}`;
28
+ return {
29
+ async sign({ document, proof }) {
30
+ const data = await prepareDataForSigning(document, proof);
31
+ const signature = await keyPair.signer().sign({ data });
32
+ return {
33
+ proofValue: multibaseEncode(signature, MultibaseEncoding.BASE58_BTC)
34
+ };
35
+ },
36
+ getVerificationMethodId() {
37
+ return verificationMethodId;
38
+ },
39
+ async verify(signature, message) {
40
+ return keyPair.verifier().verify({ data: message, signature });
41
+ }
42
+ };
43
+ }
44
+ //# sourceMappingURL=webvh-signer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webvh-signer.js","sourceRoot":"","sources":["../../src/keys/webvh-signer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACtB,MAAM,2BAA2B,CAAA;AAGlC;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,OAAO,EAYR;IACC,MAAM,oBAAoB,GAAG,WAAW,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAA;IAClG,OAAO;QACL,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;YAC5B,MAAM,IAAI,GAAG,MAAM,qBAAqB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;YACzD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;YACvD,OAAO;gBACL,UAAU,EAAE,eAAe,CAAC,SAAS,EAAE,iBAAiB,CAAC,UAAU,CAAC;aACrE,CAAA;QACH,CAAC;QACD,uBAAuB;YACrB,OAAO,oBAAoB,CAAA;QAC7B,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO;YAC7B,OAAO,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAA;QAChE,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { Ed25519VerificationKey } from '@interop/ed25519-verification-key';
2
+ import type { WebvhUpdateKey } from '../storage.js';
3
+ /**
4
+ * Reconstruct an update key pair from its stored `{ publicKeyMultibase,
5
+ * secretKeyMultibase }` record, so it can sign a new log entry.
6
+ *
7
+ * @param key {WebvhUpdateKey} must carry a `secretKeyMultibase`.
8
+ * @returns {Promise<Ed25519VerificationKey>}
9
+ */
10
+ export declare function loadUpdateKey(key: WebvhUpdateKey): Promise<Ed25519VerificationKey>;
11
+ /**
12
+ * Export an update key pair to its persisted record.
13
+ *
14
+ * @param keyPair {Ed25519VerificationKey}
15
+ * @returns {Promise<{ publicKeyMultibase: string, secretKeyMultibase: string }>}
16
+ */
17
+ export declare function exportUpdateKey(keyPair: Ed25519VerificationKey): Promise<{
18
+ publicKeyMultibase: string;
19
+ secretKeyMultibase: string;
20
+ }>;
21
+ /**
22
+ * Generate a fresh staged (pre-committed next) update key as the `staged` record
23
+ * to persist -- its public and secret multibase together with the `nextKeyHash`
24
+ * to commit in this entry's `nextKeyHashes`. The secret is carried in the record
25
+ * (and reconstructed via `loadUpdateKey` at the next rotation), so the key pair
26
+ * itself is not returned.
27
+ *
28
+ * @returns {Promise<WebvhUpdateKey & { nextKeyHash: string }>}
29
+ */
30
+ export declare function generateStagedKey(): Promise<WebvhUpdateKey & {
31
+ nextKeyHash: string;
32
+ }>;
33
+ //# sourceMappingURL=webvh-update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webvh-update.d.ts","sourceRoot":"","sources":["../../src/keys/webvh-update.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAEnD;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,sBAAsB,CAAC,CAYjC;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC;IAAE,kBAAkB,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,CAAC,CAMrE;AAED;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAChD,cAAc,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CACzC,CAMA"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Helpers for did:webvh update (authorization) keys and key pre-rotation.
3
+ *
4
+ * Update keys are decoupled from the document's verification-method keys: they
5
+ * only authorize new log entries, and pre-rotation commits, in advance, to the
6
+ * hash of the key allowed to perform the next update. These helpers generate
7
+ * update keys, reconstruct them from their stored multibase secret, and derive
8
+ * the `nextKeyHash` committed in a log entry's `nextKeyHashes`. The hash is the
9
+ * one the library validates -- `deriveNextKeyHash(pub) =
10
+ * base58btc(multihash_sha2_256(sha256(utf8Bytes(pub))))` -- imported from
11
+ * `@interop/did-method-webvh` rather than re-implemented here.
12
+ */
13
+ import { deriveNextKeyHash } from '@interop/did-method-webvh';
14
+ import { Ed25519VerificationKey } from '@interop/ed25519-verification-key';
15
+ /**
16
+ * Reconstruct an update key pair from its stored `{ publicKeyMultibase,
17
+ * secretKeyMultibase }` record, so it can sign a new log entry.
18
+ *
19
+ * @param key {WebvhUpdateKey} must carry a `secretKeyMultibase`.
20
+ * @returns {Promise<Ed25519VerificationKey>}
21
+ */
22
+ export async function loadUpdateKey(key) {
23
+ if (!key.secretKeyMultibase) {
24
+ throw new Error('Cannot load an update key without its secret key.');
25
+ }
26
+ // `Ed25519VerificationKey.from` only loads the secret half (making the key
27
+ // able to sign) when the `Multikey` type is present, matching how the key is
28
+ // exported; the stored record omits it, so it is supplied here.
29
+ return Ed25519VerificationKey.from({
30
+ type: 'Multikey',
31
+ publicKeyMultibase: key.publicKeyMultibase,
32
+ secretKeyMultibase: key.secretKeyMultibase
33
+ });
34
+ }
35
+ /**
36
+ * Export an update key pair to its persisted record.
37
+ *
38
+ * @param keyPair {Ed25519VerificationKey}
39
+ * @returns {Promise<{ publicKeyMultibase: string, secretKeyMultibase: string }>}
40
+ */
41
+ export async function exportUpdateKey(keyPair) {
42
+ const { publicKeyMultibase, secretKeyMultibase } = await keyPair.export({
43
+ publicKey: true,
44
+ secretKey: true
45
+ });
46
+ return { publicKeyMultibase, secretKeyMultibase };
47
+ }
48
+ /**
49
+ * Generate a fresh staged (pre-committed next) update key as the `staged` record
50
+ * to persist -- its public and secret multibase together with the `nextKeyHash`
51
+ * to commit in this entry's `nextKeyHashes`. The secret is carried in the record
52
+ * (and reconstructed via `loadUpdateKey` at the next rotation), so the key pair
53
+ * itself is not returned.
54
+ *
55
+ * @returns {Promise<WebvhUpdateKey & { nextKeyHash: string }>}
56
+ */
57
+ export async function generateStagedKey() {
58
+ const { publicKeyMultibase, secretKeyMultibase } = await exportUpdateKey(await Ed25519VerificationKey.generate());
59
+ const nextKeyHash = await deriveNextKeyHash(publicKeyMultibase);
60
+ return { publicKeyMultibase, secretKeyMultibase, nextKeyHash };
61
+ }
62
+ //# sourceMappingURL=webvh-update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webvh-update.js","sourceRoot":"","sources":["../../src/keys/webvh-update.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAA;AAG1E;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAmB;IAEnB,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;IACtE,CAAC;IACD,2EAA2E;IAC3E,6EAA6E;IAC7E,gEAAgE;IAChE,OAAO,sBAAsB,CAAC,IAAI,CAAC;QACjC,IAAI,EAAE,UAAU;QAChB,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;QAC1C,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;KAC3C,CAAC,CAAA;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAA+B;IAE/B,MAAM,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;QACtE,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,IAAI;KAChB,CAAC,CAAA;IACF,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAA;AACnD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IAGrC,MAAM,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,GAAG,MAAM,eAAe,CACtE,MAAM,sBAAsB,CAAC,QAAQ,EAAE,CACxC,CAAA;IACD,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,kBAAkB,CAAC,CAAA;IAC/D,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAA;AAChE,CAAC"}
package/dist/storage.d.ts CHANGED
@@ -176,6 +176,80 @@ export declare function saveDidMeta({ did, meta }: {
176
176
  export declare function removeDidFiles({ did }: {
177
177
  did: string;
178
178
  }): Promise<string[]>;
179
+ /**
180
+ * Save a did:webvh history log as a raw newline-delimited JSON (`.jsonl`) file
181
+ * alongside the DID document, under the method subdirectory.
182
+ *
183
+ * Unlike `saveToDids`, the log is written as raw text -- each entry serialized
184
+ * on its own line with a trailing newline -- not as a pretty-printed JSON
185
+ * object, so it round-trips as a valid `did.jsonl`.
186
+ *
187
+ * @param options {object}
188
+ * @param options.did {string}
189
+ * @param options.log {object[]} the array of signed log entries.
190
+ * @returns {Promise<string>} the log file path.
191
+ */
192
+ export declare function saveDidLog({ did, log }: {
193
+ did: string;
194
+ log: object[];
195
+ }): Promise<string>;
196
+ /**
197
+ * Load the raw did:webvh history log (`.jsonl`) saved for a DID.
198
+ *
199
+ * Returns the file's raw text (newline-delimited JSON), suitable for feeding to
200
+ * `resolveDIDFromLog` after splitting on newlines.
201
+ *
202
+ * @param did {string}
203
+ * @returns {Promise<string>}
204
+ */
205
+ export declare function loadDidLog(did: string): Promise<string>;
206
+ /**
207
+ * A did:webvh update (authorization) key pair. Update keys authorize new log
208
+ * entries and are deliberately kept separate from the document's
209
+ * verification-method keys (`<did>.keys.json`). `secretKeyMultibase` is absent
210
+ * only for an externally-held key supplied by public value alone.
211
+ */
212
+ export interface WebvhUpdateKey {
213
+ publicKeyMultibase: string;
214
+ secretKeyMultibase?: string;
215
+ }
216
+ /**
217
+ * The update-key state of a did:webvh DID, persisted in the
218
+ * `<did>.update-keys.json` sidecar: the key authorized right now (`active`)
219
+ * and, when pre-rotation is armed, the pre-committed next key (`staged`) whose
220
+ * hash is published in the log's `nextKeyHashes`. `staged` is absent only when
221
+ * pre-rotation is off. `retired` keeps superseded secrets when a rotation is
222
+ * asked to preserve them (`rotate-keys --keep-old-key`); they are needed only
223
+ * to verify historic entries, so the default is to drop them.
224
+ */
225
+ export interface WebvhUpdateKeys {
226
+ active: WebvhUpdateKey;
227
+ staged?: WebvhUpdateKey & {
228
+ nextKeyHash: string;
229
+ };
230
+ retired?: WebvhUpdateKey[];
231
+ }
232
+ /**
233
+ * Save the `<did>.update-keys.json` sidecar holding a did:webvh DID's update
234
+ * (authorization) keys, alongside its DID document under the method subdir.
235
+ *
236
+ * @param options {object}
237
+ * @param options.did {string}
238
+ * @param options.updateKeys {WebvhUpdateKeys}
239
+ * @returns {Promise<string>} the sidecar file path.
240
+ */
241
+ export declare function saveDidUpdateKeys({ did, updateKeys }: {
242
+ did: string;
243
+ updateKeys: WebvhUpdateKeys;
244
+ }): Promise<string>;
245
+ /**
246
+ * Load the `<did>.update-keys.json` sidecar of a did:webvh DID. Throws (ENOENT)
247
+ * when no sidecar exists -- e.g. a DID created before pre-rotation support.
248
+ *
249
+ * @param did {string}
250
+ * @returns {Promise<WebvhUpdateKeys>}
251
+ */
252
+ export declare function loadDidUpdateKeys(did: string): Promise<WebvhUpdateKeys>;
179
253
  /**
180
254
  * @param options {object}
181
255
  * @param options.method {string}
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
package/dist/storage.js CHANGED
@@ -197,6 +197,7 @@ export async function listDids() {
197
197
  for (const fileName of fileNames) {
198
198
  if (!fileName.endsWith('.json') ||
199
199
  fileName.endsWith('.keys.json') ||
200
+ fileName.endsWith('.update-keys.json') ||
200
201
  fileName.endsWith('.meta.json')) {
201
202
  continue;
202
203
  }
@@ -281,14 +282,81 @@ export async function removeDidFiles({ did }) {
281
282
  const docPath = join(dir, `${did}.json`);
282
283
  await unlink(docPath);
283
284
  removed.push(docPath);
284
- for (const suffix of ['keys', 'meta']) {
285
+ for (const suffix of ['keys', 'update-keys', 'meta']) {
285
286
  const sidecarPath = join(dir, `${did}.${suffix}.json`);
286
287
  if (await unlinkIfExists(sidecarPath)) {
287
288
  removed.push(sidecarPath);
288
289
  }
289
290
  }
291
+ // did:webvh additionally stores a `.jsonl` history log; only that method has
292
+ // one, so unlink it conditionally.
293
+ const logPath = join(dir, `${did}.jsonl`);
294
+ if (await unlinkIfExists(logPath)) {
295
+ removed.push(logPath);
296
+ }
290
297
  return removed;
291
298
  }
299
+ /**
300
+ * Save a did:webvh history log as a raw newline-delimited JSON (`.jsonl`) file
301
+ * alongside the DID document, under the method subdirectory.
302
+ *
303
+ * Unlike `saveToDids`, the log is written as raw text -- each entry serialized
304
+ * on its own line with a trailing newline -- not as a pretty-printed JSON
305
+ * object, so it round-trips as a valid `did.jsonl`.
306
+ *
307
+ * @param options {object}
308
+ * @param options.did {string}
309
+ * @param options.log {object[]} the array of signed log entries.
310
+ * @returns {Promise<string>} the log file path.
311
+ */
312
+ export async function saveDidLog({ did, log }) {
313
+ const method = did.split(':')[1];
314
+ const dir = join(getDidsDir(), method);
315
+ await mkdir(dir, { recursive: true });
316
+ const filePath = join(dir, `${did}.jsonl`);
317
+ const serialized = log.map(entry => JSON.stringify(entry)).join('\n') + '\n';
318
+ await writeFile(filePath, serialized, 'utf8');
319
+ return filePath;
320
+ }
321
+ /**
322
+ * Load the raw did:webvh history log (`.jsonl`) saved for a DID.
323
+ *
324
+ * Returns the file's raw text (newline-delimited JSON), suitable for feeding to
325
+ * `resolveDIDFromLog` after splitting on newlines.
326
+ *
327
+ * @param did {string}
328
+ * @returns {Promise<string>}
329
+ */
330
+ export async function loadDidLog(did) {
331
+ const method = did.split(':')[1];
332
+ const filePath = join(getDidsDir(), method, `${did}.jsonl`);
333
+ return readFile(filePath, 'utf8');
334
+ }
335
+ /**
336
+ * Save the `<did>.update-keys.json` sidecar holding a did:webvh DID's update
337
+ * (authorization) keys, alongside its DID document under the method subdir.
338
+ *
339
+ * @param options {object}
340
+ * @param options.did {string}
341
+ * @param options.updateKeys {WebvhUpdateKeys}
342
+ * @returns {Promise<string>} the sidecar file path.
343
+ */
344
+ export async function saveDidUpdateKeys({ did, updateKeys }) {
345
+ const method = did.split(':')[1];
346
+ return saveToDids({ method, did, suffix: 'update-keys', data: updateKeys });
347
+ }
348
+ /**
349
+ * Load the `<did>.update-keys.json` sidecar of a did:webvh DID. Throws (ENOENT)
350
+ * when no sidecar exists -- e.g. a DID created before pre-rotation support.
351
+ *
352
+ * @param did {string}
353
+ * @returns {Promise<WebvhUpdateKeys>}
354
+ */
355
+ export async function loadDidUpdateKeys(did) {
356
+ const method = did.split(':')[1];
357
+ const filePath = join(getDidsDir(), method, `${did}.update-keys.json`);
358
+ return JSON.parse(await readFile(filePath, 'utf8'));
359
+ }
292
360
  /**
293
361
  * @param options {object}
294
362
  * @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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"}
@@ -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,CA2BlB;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"}
@@ -13,7 +13,8 @@ const COLLECTION = 'was-spaces';
13
13
  /**
14
14
  * Saves (or overwrites) a space registry entry and its metadata sidecar.
15
15
  * The `created` timestamp of an existing sidecar is preserved; `handle` and
16
- * `description` overwrite only when given.
16
+ * `description` overwrite only when given, and an empty string clears the
17
+ * field.
17
18
  *
18
19
  * @param options {object}
19
20
  * @param options.record {SpaceRecord}
@@ -32,11 +33,21 @@ export async function saveSpaceRecord({ record, handle, description }) {
32
33
  ...existing,
33
34
  created: existing?.created ?? new Date().toISOString()
34
35
  };
35
- if (handle) {
36
- meta.handle = handle;
36
+ if (handle !== undefined) {
37
+ if (handle) {
38
+ meta.handle = handle;
39
+ }
40
+ else {
41
+ delete meta.handle;
42
+ }
37
43
  }
38
- if (description) {
39
- meta.description = description;
44
+ if (description !== undefined) {
45
+ if (description) {
46
+ meta.description = description;
47
+ }
48
+ else {
49
+ delete meta.description;
50
+ }
40
51
  }
41
52
  await saveMetaToCollection({ collection: COLLECTION, storageId, meta });
42
53
  return filePath;
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/was/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/was/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EAElB,MAAM,eAAe,CAAA;AAEtB,MAAM,UAAU,GAAG,YAAY,CAAA;AAgB/B;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EACpC,MAAM,EACN,MAAM,EACN,WAAW,EAKZ;IACC,MAAM,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAC9C,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;IACtE,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC;QAC5C,UAAU,EAAE,UAAU;QACtB,SAAS;KACV,CAAC,CAAA;IACF,MAAM,IAAI,GAAiB;QACzB,GAAG,QAAQ;QACX,OAAO,EAAE,QAAQ,EAAE,OAAO,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACvD,CAAA;IACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACtB,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,MAAM,CAAA;QACpB,CAAC;IACH,CAAC;IACD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAChC,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,WAAW,CAAA;QACzB,CAAC;IACH,CAAC;IACD,MAAM,oBAAoB,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACvE,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IAGpC,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,CAAA;IACnD,MAAM,OAAO,GAIP,EAAE,CAAA;IACR,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAc,UAAU,EAAE,SAAS,CAAC,CAAA;QAC3E,MAAM,IAAI,GAAG,MAAM,sBAAsB,CAAC;YACxC,UAAU,EAAE,UAAU;YACtB,SAAS;SACV,CAAC,CAAA;QACF,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IAC3C,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EAAE,GAAG,EAAmB;IAQ5D,MAAM,OAAO,GAAG,MAAM,gBAAgB,EAAE,CAAA;IACxC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,GAAG,CAAC,CAAA;IAC3D,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG,CAAC,CAAA;IACnE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,WAAW,GAAG,aAAa,OAAO,CAAC,MAAM,WAAW;YAClD,2BAA2B,CAC9B,CAAA;IACH,CAAC;IACD,OAAO,OAAO,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,EACtC,SAAS,EAGV;IACC,OAAO,oBAAoB,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAA;AACpE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@interop/did-cli",
3
- "version": "0.9.0",
3
+ "version": "0.10.0",
4
4
  "description": "DID CLI tool for DIDs, Verifiable Credentials, key pairs, and zcaps",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -29,18 +29,19 @@
29
29
  "@interop/data-integrity-core": "^8.1.0",
30
30
  "@interop/data-integrity-proof": "^3.4.0",
31
31
  "@interop/did-method-key": "^7.3.2",
32
+ "@interop/did-method-webvh": "^3.4.0",
32
33
  "@interop/did-web-resolver": "^6.2.2",
33
34
  "@interop/ecdsa-multikey": "^2.3.1",
34
35
  "@interop/ecdsa-signature": "2.0.3",
35
36
  "@interop/ed25519-signature": "^7.1.2",
36
- "@interop/ed25519-verification-key": "^8.0.0",
37
+ "@interop/ed25519-verification-key": "^8.0.2",
37
38
  "@interop/edv-client": "^17.2.0",
38
39
  "@interop/ezcap": "^7.2.1",
39
40
  "@interop/minimal-cipher": "^7.4.0",
40
- "@interop/security-document-loader": "^9.3.1",
41
+ "@interop/security-document-loader": "^9.4.0",
41
42
  "@interop/vc": "^11.0.4",
42
43
  "@interop/verifier-core": "^3.2.1",
43
- "@interop/was-client": "^0.6.0",
44
+ "@interop/was-client": "^0.7.1",
44
45
  "@interop/x25519-key-agreement-key": "^5.1.0",
45
46
  "@interop/zcap": "^11.0.3",
46
47
  "@scure/base": "^2.2.0",