@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
@@ -10,7 +10,7 @@
10
10
  * DID so day-to-day commands need no `--server`/`--did` flags.
11
11
  *
12
12
  * Subcommand groups: `space` (`create`, `list`, `show`, `update` alias
13
- * `configure`, `delete`, `forget`, `add`, `backends`, `quotas`),
13
+ * `configure`, `delete`, `forget`, `meta`, `add`, `backends`, `quotas`),
14
14
  * `collection` (alias `coll`;
15
15
  * `create`, `list`, `show`, `update`, `delete`, `backend`, `quota`),
16
16
  * `resource` (alias
@@ -29,13 +29,60 @@
29
29
  * this module wires them onto the commander command tree.
30
30
  */
31
31
  import { Command } from 'commander';
32
- import { capabilityOption, contentTypeOption, didOption, runAndExit, serverOption } from './was/shared.js';
33
- import { runSpaceAdd, runSpaceBackends, runSpaceCreate, runSpaceDelete, runSpaceExport, runSpaceForget, runSpaceImport, runSpaceList, runSpaceQuotas, runSpaceShow, runSpaceUpdate } from './was/space.js';
32
+ import { capabilityOption, contentTypeOption, didOption, disambiguatePayloadArgs, runAndExit, serverOption } from './was/shared.js';
33
+ import { runSpaceAdd, runSpaceBackends, runSpaceCreate, runSpaceDelete, runSpaceExport, runSpaceForget, runSpaceImport, runSpaceList, runSpaceMeta, runSpaceQuotas, runSpaceShow, runSpaceUpdate } from './was/space.js';
34
34
  import { runCollectionBackend, runCollectionCreate, runCollectionDelete, runCollectionList, runCollectionQuota, runCollectionShow, runCollectionUpdate } from './was/collection.js';
35
35
  import { runResourceAdd, runResourceDelete, runResourceGet, runResourceList, runResourceMetaGet, runResourceMetaPut, runResourcePut } from './was/resource.js';
36
36
  import { runLs, runRm } from './was/tree.js';
37
37
  import { runPolicyClear, runPolicySet, runPolicyShow } from './was/policy.js';
38
38
  import { runGrant, runPublish, runUnpublish } from './was/publish.js';
39
+ /**
40
+ * Adds a resource `get [path]` verb to a parent command. Shared by
41
+ * `was resource get` and the top-level `was get` shorthand, which differ only
42
+ * in their description.
43
+ *
44
+ * @param parent {Command}
45
+ * @param description {string}
46
+ * @returns {void}
47
+ */
48
+ function addGetCommand(parent, description) {
49
+ parent
50
+ .command('get [path]')
51
+ .description(description)
52
+ .option('--output <file>', 'write the resource content to a file')
53
+ .addOption(capabilityOption())
54
+ .addOption(serverOption())
55
+ .addOption(didOption())
56
+ .action(async (address, options) => {
57
+ await runAndExit(runResourceGet({ address, ...options }));
58
+ });
59
+ }
60
+ /**
61
+ * Adds a resource `put [path] [file]` verb to a parent command. Shared by
62
+ * `was resource put` and the top-level `was put` shorthand, which differ only
63
+ * in their description.
64
+ *
65
+ * @param parent {Command}
66
+ * @param description {string}
67
+ * @returns {void}
68
+ */
69
+ function addPutCommand(parent, description) {
70
+ parent
71
+ .command('put [path] [file]')
72
+ .description(description)
73
+ .addOption(contentTypeOption())
74
+ .addOption(capabilityOption())
75
+ .addOption(serverOption())
76
+ .addOption(didOption())
77
+ .action(async (address, file, options) => {
78
+ const args = disambiguatePayloadArgs({
79
+ address,
80
+ file,
81
+ capability: options.capability
82
+ });
83
+ await runAndExit(runResourcePut({ ...args, ...options }));
84
+ });
85
+ }
39
86
  export function makeWasCommand() {
40
87
  const was = new Command('was').description('Wallet Attached Storage (WAS) operations');
41
88
  const space = new Command('space').description('Manage WAS spaces');
@@ -50,12 +97,6 @@ export function makeWasCommand() {
50
97
  .option('--handle <handle>', 'short tag for the registered space (requires --save)')
51
98
  .option('--description <description>', 'longer description of the registered space (requires --save)')
52
99
  .action(async (options) => {
53
- if ((options.handle !== undefined || options.description !== undefined) &&
54
- !options.save) {
55
- console.error('--handle and --description require --save');
56
- process.exit(2);
57
- return;
58
- }
59
100
  await runAndExit(runSpaceCreate(options));
60
101
  });
61
102
  space
@@ -108,6 +149,15 @@ export function makeWasCommand() {
108
149
  .action(async (address) => {
109
150
  await runAndExit(runSpaceForget({ address }));
110
151
  });
152
+ space
153
+ .command('meta <space>')
154
+ .description("Update a registered space's local metadata only (the server-side " +
155
+ 'space is untouched)')
156
+ .option('--handle <handle>', 'new short tag for the registered space (empty string clears it)')
157
+ .option('--description <description>', 'new longer description of the registered space (empty string clears it)')
158
+ .action(async (address, options) => {
159
+ await runAndExit(runSpaceMeta({ address, ...options }));
160
+ });
111
161
  space
112
162
  .command('add <space>')
113
163
  .description('Register an existing remote space (a full space URL, or a space id ' +
@@ -238,41 +288,16 @@ export function makeWasCommand() {
238
288
  .addOption(serverOption())
239
289
  .addOption(didOption())
240
290
  .action(async (address, file, options) => {
241
- // With --capability the path is omitted, so a single positional
242
- // argument is the payload file.
243
- if (options.capability && file === undefined) {
244
- file = address;
245
- address = undefined;
246
- }
247
- await runAndExit(runResourceAdd({ address, file, ...options }));
248
- });
249
- resource
250
- .command('put [path] [file]')
251
- .description('Create or replace a resource at a known id (upsert); payload from ' +
252
- 'file or stdin')
253
- .addOption(contentTypeOption())
254
- .addOption(capabilityOption())
255
- .addOption(serverOption())
256
- .addOption(didOption())
257
- .action(async (address, file, options) => {
258
- // With --capability the path is omitted, so a single positional
259
- // argument is the payload file.
260
- if (options.capability && file === undefined) {
261
- file = address;
262
- address = undefined;
263
- }
264
- await runAndExit(runResourcePut({ address, file, ...options }));
265
- });
266
- resource
267
- .command('get [path]')
268
- .description('Read a resource: JSON pretty-printed to stdout, binary written raw')
269
- .option('--output <file>', 'write the resource content to a file')
270
- .addOption(capabilityOption())
271
- .addOption(serverOption())
272
- .addOption(didOption())
273
- .action(async (address, options) => {
274
- await runAndExit(runResourceGet({ address, ...options }));
275
- });
291
+ const args = disambiguatePayloadArgs({
292
+ address,
293
+ file,
294
+ capability: options.capability
295
+ });
296
+ await runAndExit(runResourceAdd({ ...args, ...options }));
297
+ });
298
+ addPutCommand(resource, 'Create or replace a resource at a known id (upsert); payload from ' +
299
+ 'file or stdin');
300
+ addGetCommand(resource, 'Read a resource: JSON pretty-printed to stdout, binary written raw');
276
301
  resource
277
302
  .command('list <collection>')
278
303
  .description('List the resources in a collection (SPACE/COLLECTION)')
@@ -333,32 +358,8 @@ export function makeWasCommand() {
333
358
  .action(async (address, options) => {
334
359
  await runAndExit(runLs({ address, ...options }));
335
360
  });
336
- was
337
- .command('get [path]')
338
- .description('Read a resource (shorthand for "resource get")')
339
- .option('--output <file>', 'write the resource content to a file')
340
- .addOption(capabilityOption())
341
- .addOption(serverOption())
342
- .addOption(didOption())
343
- .action(async (address, options) => {
344
- await runAndExit(runResourceGet({ address, ...options }));
345
- });
346
- was
347
- .command('put [path] [file]')
348
- .description('Create or replace a resource (shorthand for "resource put")')
349
- .addOption(contentTypeOption())
350
- .addOption(capabilityOption())
351
- .addOption(serverOption())
352
- .addOption(didOption())
353
- .action(async (address, file, options) => {
354
- // With --capability the path is omitted, so a single positional
355
- // argument is the payload file.
356
- if (options.capability && file === undefined) {
357
- file = address;
358
- address = undefined;
359
- }
360
- await runAndExit(runResourcePut({ address, file, ...options }));
361
- });
361
+ addGetCommand(was, 'Read a resource (shorthand for "resource get")');
362
+ addPutCommand(was, 'Create or replace a resource (shorthand for "resource put")');
362
363
  was
363
364
  .command('rm [path]')
364
365
  .description('Delete whatever the path points at: a space, a collection, or a ' +
@@ -431,12 +432,6 @@ export function makeWasCommand() {
431
432
  .addOption(serverOption())
432
433
  .addOption(didOption())
433
434
  .action(async (address, options) => {
434
- if ((options.handle !== undefined || options.description !== undefined) &&
435
- !options.save) {
436
- console.error('--handle and --description require --save');
437
- process.exit(2);
438
- return;
439
- }
440
435
  await runAndExit(runGrant({ address, ...options }));
441
436
  });
442
437
  return was;
@@ -1 +1 @@
1
- {"version":3,"file":"was.js","sourceRoot":"","sources":["../../src/commands/was.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"was.js","sourceRoot":"","sources":["../../src/commands/was.ts"],"names":[],"mappings":"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"}
@@ -28,24 +28,6 @@ import { Command } from 'commander';
28
28
  * @returns {string}
29
29
  */
30
30
  export declare function storageIdFor(capabilityId: string): string;
31
- /**
32
- * Write the metadata sidecar of a freshly saved zcap: the creation timestamp,
33
- * plus the handle and description when given. Exported for reuse by
34
- * `was grant --save`.
35
- *
36
- * @param options {object}
37
- * @param options.storageId {string}
38
- * @param options.created {string}
39
- * @param [options.handle] {string}
40
- * @param [options.description] {string}
41
- * @returns {Promise<void>}
42
- */
43
- export declare function writeCreateMeta({ storageId, created, handle, description }: {
44
- storageId: string;
45
- created: string;
46
- handle?: string;
47
- description?: string;
48
- }): Promise<void>;
49
31
  /**
50
32
  * Creates a root capability and prints it (with its encoding) to stdout.
51
33
  *
@@ -1 +1 @@
1
- {"version":3,"file":"zcap.d.ts","sourceRoot":"","sources":["../../src/commands/zcap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAiBnC;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAEzD;AAcD;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CAAC,EACpC,SAAS,EACT,OAAO,EACP,MAAM,EACN,WAAW,EACZ,EAAE;IACD,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,GAAG,OAAO,CAAC,IAAI,CAAC,CAShB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE;IACvC,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,GAAG,OAAO,CAAC,MAAM,CAAC,CA6BlB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE;IACzC,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,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,MAAM,CAAC,CAuClB;AAED,wBAAgB,eAAe,IAAI,OAAO,CAoXzC"}
1
+ {"version":3,"file":"zcap.d.ts","sourceRoot":"","sources":["../../src/commands/zcap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAuBnC;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAEzD;AAcD;;;;;;;;;;;GAWG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE;IACvC,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,GAAG,OAAO,CAAC,MAAM,CAAC,CAiClB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE;IACzC,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,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,MAAM,CAAC,CA2ClB;AAED,wBAAgB,eAAe,IAAI,OAAO,CAwRzC"}
@@ -22,9 +22,12 @@ import { Command } from 'commander';
22
22
  import { createCapability } from '../zcap/create.js';
23
23
  import { delegateCapability } from '../zcap/delegate.js';
24
24
  import { resolveCapabilityInput } from '../zcap/resolve.js';
25
- import { listCollection, loadFromCollection, loadMetaFromCollection, removeFromCollection, saveMetaToCollection, saveToCollection, sanitizeStorageId } from '../storage.js';
25
+ import { saveToCollection, sanitizeStorageId } from '../storage.js';
26
26
  import { resolveZcapRef } from '../meta.js';
27
27
  import { renderTable } from '../table.js';
28
+ import { requireSaveForMetaFlags, resolveRefOrReport, runListCollection, runMetaCollection, runRemoveCollection, writeCreateMeta } from './collection-command.js';
29
+ /** The wallet collection name for stored authorization capabilities. */
30
+ const COLLECTION = 'zcaps';
28
31
  /**
29
32
  * Derives a filesystem-safe storage id from a capability id (the `urn:...`
30
33
  * value). Exported for reuse by `was grant --save`, which stores into the
@@ -47,28 +50,6 @@ export function storageIdFor(capabilityId) {
47
50
  function zcapTypeLabel({ zcap }) {
48
51
  return zcap.parentCapability ? 'delegated' : 'root';
49
52
  }
50
- /**
51
- * Write the metadata sidecar of a freshly saved zcap: the creation timestamp,
52
- * plus the handle and description when given. Exported for reuse by
53
- * `was grant --save`.
54
- *
55
- * @param options {object}
56
- * @param options.storageId {string}
57
- * @param options.created {string}
58
- * @param [options.handle] {string}
59
- * @param [options.description] {string}
60
- * @returns {Promise<void>}
61
- */
62
- export async function writeCreateMeta({ storageId, created, handle, description }) {
63
- const meta = { created };
64
- if (handle) {
65
- meta.handle = handle;
66
- }
67
- if (description) {
68
- meta.description = description;
69
- }
70
- await saveMetaToCollection({ collection: 'zcaps', storageId, meta });
71
- }
72
53
  /**
73
54
  * Creates a root capability and prints it (with its encoding) to stdout.
74
55
  *
@@ -82,6 +63,9 @@ export async function writeCreateMeta({ storageId, created, handle, description
82
63
  * @returns {Promise<number>} The process exit code.
83
64
  */
84
65
  export async function runCreate(options) {
66
+ if (!requireSaveForMetaFlags(options)) {
67
+ return 1;
68
+ }
85
69
  try {
86
70
  const result = createCapability({
87
71
  controller: options.controller,
@@ -89,8 +73,13 @@ export async function runCreate(options) {
89
73
  });
90
74
  if (options.save) {
91
75
  const storageId = storageIdFor(result.rootCapability.id);
92
- const filePath = await saveToCollection('zcaps', storageId, result.rootCapability);
76
+ const filePath = await saveToCollection({
77
+ collection: COLLECTION,
78
+ storageId,
79
+ data: result.rootCapability
80
+ });
93
81
  await writeCreateMeta({
82
+ collection: COLLECTION,
94
83
  storageId,
95
84
  created: new Date().toISOString(),
96
85
  handle: options.handle,
@@ -129,6 +118,9 @@ export async function runCreate(options) {
129
118
  * @returns {Promise<number>} The process exit code.
130
119
  */
131
120
  export async function runDelegate(options) {
121
+ if (!requireSaveForMetaFlags(options)) {
122
+ return 1;
123
+ }
132
124
  try {
133
125
  const capability = options.capability
134
126
  ? await resolveCapabilityInput({ ref: options.capability })
@@ -146,8 +138,13 @@ export async function runDelegate(options) {
146
138
  });
147
139
  if (options.save) {
148
140
  const storageId = storageIdFor(result.delegatedCapability.id);
149
- const filePath = await saveToCollection('zcaps', storageId, result.delegatedCapability);
141
+ const filePath = await saveToCollection({
142
+ collection: COLLECTION,
143
+ storageId,
144
+ data: result.delegatedCapability
145
+ });
150
146
  await writeCreateMeta({
147
+ collection: COLLECTION,
151
148
  storageId,
152
149
  created: new Date().toISOString(),
153
150
  handle: options.handle,
@@ -174,12 +171,6 @@ export function makeZcapCommand() {
174
171
  .option('--handle <handle>', 'short tag for the saved zcap (requires --save)')
175
172
  .option('--description <description>', 'longer description of the saved zcap (requires --save)')
176
173
  .action(async (options) => {
177
- if ((options.handle !== undefined || options.description !== undefined) &&
178
- !options.save) {
179
- console.error('--handle and --description require --save');
180
- process.exit(1);
181
- return;
182
- }
183
174
  const code = await runCreate(options);
184
175
  if (code !== 0) {
185
176
  process.exit(code);
@@ -202,12 +193,6 @@ export function makeZcapCommand() {
202
193
  .option('--handle <handle>', 'short tag for the saved zcap (requires --save)')
203
194
  .option('--description <description>', 'longer description of the saved zcap (requires --save)')
204
195
  .action(async (options) => {
205
- if ((options.handle !== undefined || options.description !== undefined) &&
206
- !options.save) {
207
- console.error('--handle and --description require --save');
208
- process.exit(1);
209
- return;
210
- }
211
196
  const code = await runDelegate(options);
212
197
  if (code !== 0) {
213
198
  process.exit(code);
@@ -219,55 +204,21 @@ export function makeZcapCommand() {
219
204
  .option('--json', 'output the list as a JSON array of objects with metadata')
220
205
  .option('--plain', 'output one capability id per line, sorted (no metadata)')
221
206
  .action(async (options) => {
222
- const storageIds = await listCollection('zcaps');
223
- if (options.plain) {
224
- const zcapIds = [];
225
- for (const storageId of storageIds) {
226
- const zcap = await loadFromCollection('zcaps', storageId);
227
- if (zcap.id) {
228
- zcapIds.push(zcap.id);
229
- }
230
- }
231
- zcapIds.sort();
232
- for (const zcapId of zcapIds) {
233
- console.log(zcapId);
234
- }
235
- return;
236
- }
237
- const entries = [];
238
- for (const storageId of storageIds) {
239
- const zcap = await loadFromCollection('zcaps', storageId);
240
- if (!zcap.id) {
241
- continue;
242
- }
243
- const meta = await loadMetaFromCollection({
244
- collection: 'zcaps',
245
- storageId
246
- });
247
- entries.push({ id: zcap.id, type: zcapTypeLabel({ zcap }), ...meta });
248
- }
249
- if (options.json) {
250
- const output = entries.map(entry => ({
207
+ await runListCollection({
208
+ collection: COLLECTION,
209
+ plain: options.plain,
210
+ json: options.json,
211
+ plainId: zcap => zcap.id,
212
+ toEntry: ({ item, meta }) => item.id
213
+ ? { id: item.id, type: zcapTypeLabel({ zcap: item }), ...meta }
214
+ : undefined,
215
+ toJson: entry => ({
251
216
  id: entry.id,
252
217
  type: entry.type,
253
218
  ...(entry.created && { created: entry.created }),
254
219
  ...(entry.handle && { handle: entry.handle }),
255
220
  ...(entry.description && { description: entry.description })
256
- }));
257
- console.log(JSON.stringify(output, null, 2));
258
- return;
259
- }
260
- if (entries.length === 0) {
261
- return;
262
- }
263
- const rows = entries.map(entry => [
264
- entry.handle ?? '',
265
- entry.type,
266
- entry.created?.slice(0, 10) ?? '',
267
- entry.id,
268
- entry.description ?? ''
269
- ]);
270
- console.log(renderTable({
221
+ }),
271
222
  columns: [
272
223
  { header: 'HANDLE', maxWidth: 16 },
273
224
  { header: 'TYPE' },
@@ -275,8 +226,14 @@ export function makeZcapCommand() {
275
226
  { header: 'ID', maxWidth: 44 },
276
227
  { header: 'DESCRIPTION', maxWidth: 40 }
277
228
  ],
278
- rows
279
- }));
229
+ toRow: entry => [
230
+ entry.handle ?? '',
231
+ entry.type,
232
+ entry.created?.slice(0, 10) ?? '',
233
+ entry.id,
234
+ entry.description ?? ''
235
+ ]
236
+ });
280
237
  });
281
238
  zcap
282
239
  .command('show <id>')
@@ -285,17 +242,12 @@ export function makeZcapCommand() {
285
242
  .option('--meta', 'show the zcap metadata instead of the capability')
286
243
  .option('--json', 'with --meta, output the metadata as JSON')
287
244
  .action(async (id, options) => {
288
- let resolved;
289
- try {
290
- resolved = await resolveZcapRef({ ref: id });
291
- }
292
- catch (err) {
293
- console.error(err.message);
294
- process.exit(1);
295
- return;
296
- }
245
+ const resolved = await resolveRefOrReport({
246
+ resolve: ref => resolveZcapRef({ ref }),
247
+ ref: id,
248
+ noun: 'zcap'
249
+ });
297
250
  if (!resolved) {
298
- console.error(`No locally stored zcap found for ${id}`);
299
251
  process.exit(1);
300
252
  return;
301
253
  }
@@ -349,49 +301,17 @@ export function makeZcapCommand() {
349
301
  .option('--handle <handle>', 'set the handle (an empty string clears it)')
350
302
  .option('--description <description>', 'set the description (an empty string clears it)')
351
303
  .action(async (id, options) => {
352
- let resolved;
353
- try {
354
- resolved = await resolveZcapRef({ ref: id });
355
- }
356
- catch (err) {
357
- console.error(err.message);
358
- process.exit(1);
359
- return;
360
- }
361
- if (!resolved) {
362
- console.error(`No locally stored zcap found for ${id}`);
363
- process.exit(1);
364
- return;
365
- }
366
- const hasEdits = options.handle !== undefined || options.description !== undefined;
367
- if (!hasEdits) {
368
- console.log(JSON.stringify(resolved.meta ?? {}, null, 2));
369
- return;
370
- }
371
- const meta = { ...(resolved.meta ?? {}) };
372
- if (options.handle !== undefined) {
373
- if (options.handle === '') {
374
- delete meta.handle;
375
- }
376
- else {
377
- meta.handle = options.handle;
378
- }
379
- }
380
- if (options.description !== undefined) {
381
- if (options.description === '') {
382
- delete meta.description;
383
- }
384
- else {
385
- meta.description = options.description;
386
- }
387
- }
388
- const filePath = await saveMetaToCollection({
389
- collection: 'zcaps',
390
- storageId: resolved.storageId,
391
- meta
304
+ const code = await runMetaCollection({
305
+ collection: COLLECTION,
306
+ noun: 'zcap',
307
+ resolve: ref => resolveZcapRef({ ref }),
308
+ ref: id,
309
+ handle: options.handle,
310
+ description: options.description
392
311
  });
393
- console.error(`Metadata saved to ${filePath}`);
394
- console.log(JSON.stringify(meta, null, 2));
312
+ if (code !== 0) {
313
+ process.exit(code);
314
+ }
395
315
  });
396
316
  zcap
397
317
  .command('remove <id>')
@@ -399,33 +319,21 @@ export function makeZcapCommand() {
399
319
  .description('Remove a locally stored zcap and its metadata sidecar (by capability ' +
400
320
  'id or handle)')
401
321
  .action(async (id) => {
402
- let resolved;
403
- try {
404
- resolved = await resolveZcapRef({ ref: id });
405
- }
406
- catch (err) {
407
- console.error(err.message);
408
- process.exit(1);
409
- return;
410
- }
411
- if (!resolved) {
412
- console.error(`No locally stored zcap found for ${id}`);
413
- process.exit(1);
414
- return;
415
- }
416
- const removed = await removeFromCollection({
417
- collection: 'zcaps',
418
- storageId: resolved.storageId
322
+ const code = await runRemoveCollection({
323
+ collection: COLLECTION,
324
+ noun: 'zcap',
325
+ resolve: ref => resolveZcapRef({ ref }),
326
+ ref: id
419
327
  });
420
- for (const filePath of removed) {
421
- console.error(`Removed ${filePath}`);
328
+ if (code !== 0) {
329
+ process.exit(code);
422
330
  }
423
331
  });
424
332
  zcap
425
333
  .command('revoke <id>')
426
334
  .description('Revoke a zcap by ID')
427
335
  .action((zcapId) => {
428
- console.log(`Revoking zcap ${zcapId}...`);
336
+ console.error(`Revoking zcap ${zcapId}...`);
429
337
  // TODO: implement
430
338
  });
431
339
  return zcap;