@did-btcr2/cli 0.4.0 → 0.5.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.
Files changed (50) hide show
  1. package/dist/cjs/cli.js +10 -16
  2. package/dist/cjs/cli.js.map +1 -1
  3. package/dist/cjs/commands/create.js +3 -4
  4. package/dist/cjs/commands/create.js.map +1 -1
  5. package/dist/cjs/commands/deactivate.js +2 -2
  6. package/dist/cjs/commands/deactivate.js.map +1 -1
  7. package/dist/cjs/commands/resolve.js +16 -32
  8. package/dist/cjs/commands/resolve.js.map +1 -1
  9. package/dist/cjs/commands/update.js +2 -2
  10. package/dist/cjs/commands/update.js.map +1 -1
  11. package/dist/esm/src/cli.js +10 -16
  12. package/dist/esm/src/cli.js.map +1 -1
  13. package/dist/esm/src/commands/create.js +3 -4
  14. package/dist/esm/src/commands/create.js.map +1 -1
  15. package/dist/esm/src/commands/deactivate.js +2 -2
  16. package/dist/esm/src/commands/deactivate.js.map +1 -1
  17. package/dist/esm/src/commands/resolve.js +16 -32
  18. package/dist/esm/src/commands/resolve.js.map +1 -1
  19. package/dist/esm/src/commands/update.js +2 -2
  20. package/dist/esm/src/commands/update.js.map +1 -1
  21. package/dist/types/src/cli.d.ts +5 -5
  22. package/dist/types/src/cli.d.ts.map +1 -1
  23. package/dist/types/src/commands/create.d.ts +3 -2
  24. package/dist/types/src/commands/create.d.ts.map +1 -1
  25. package/dist/types/src/commands/deactivate.d.ts +3 -2
  26. package/dist/types/src/commands/deactivate.d.ts.map +1 -1
  27. package/dist/types/src/commands/resolve.d.ts +3 -2
  28. package/dist/types/src/commands/resolve.d.ts.map +1 -1
  29. package/dist/types/src/commands/update.d.ts +3 -2
  30. package/dist/types/src/commands/update.d.ts.map +1 -1
  31. package/dist/types/src/types.d.ts +4 -16
  32. package/dist/types/src/types.d.ts.map +1 -1
  33. package/package.json +5 -4
  34. package/src/cli.ts +11 -18
  35. package/src/commands/create.ts +4 -5
  36. package/src/commands/deactivate.ts +4 -3
  37. package/src/commands/resolve.ts +21 -45
  38. package/src/commands/update.ts +4 -3
  39. package/src/types.ts +4 -23
  40. package/dist/types/cli.d.ts +0 -20
  41. package/dist/types/commands/create.d.ts +0 -3
  42. package/dist/types/commands/deactivate.d.ts +0 -3
  43. package/dist/types/commands/index.d.ts +0 -4
  44. package/dist/types/commands/resolve.d.ts +0 -3
  45. package/dist/types/commands/update.d.ts +0 -3
  46. package/dist/types/error.d.ts +0 -7
  47. package/dist/types/index.d.ts +0 -6
  48. package/dist/types/output.d.ts +0 -10
  49. package/dist/types/types.d.ts +0 -53
  50. package/dist/types/version.d.ts +0 -1
package/dist/cjs/cli.js CHANGED
@@ -1,26 +1,20 @@
1
1
  import { Command, CommanderError } from 'commander';
2
- import { DidBtcr2 } from '@did-btcr2/method';
2
+ import { createApi } from '@did-btcr2/api';
3
3
  import { registerCreateCommand, registerDeactivateCommand, registerResolveCommand, registerUpdateCommand, } from './commands/index.js';
4
4
  import { CLIError } from './error.js';
5
5
  import { VERSION } from './version.js';
6
- /** Default MethodOperations delegating to DidBtcr2 static methods. */
7
- const defaultOps = {
8
- create: (genesisBytes, options) => DidBtcr2.create(genesisBytes, options),
9
- resolve: (identifier, options) => DidBtcr2.resolve(identifier, options),
10
- update: (params) => DidBtcr2.update(params),
11
- };
12
6
  /**
13
7
  * CLI tool for the did:btcr2 method.
14
8
  */
15
9
  export class DidBtcr2Cli {
16
10
  program;
17
- ops;
11
+ api;
18
12
  /**
19
- * Initializes the CLI with optional custom MethodOperations.
20
- * @param {MethodOperations} ops - Custom operations for create, resolve, and update.
13
+ * Initializes the CLI with an optional pre-configured API instance.
14
+ * @param {DidBtcr2Api} api - Optional API instance. Defaults to an unconfigured instance.
21
15
  */
22
- constructor(ops = defaultOps) {
23
- this.ops = ops;
16
+ constructor(api = createApi()) {
17
+ this.api = api;
24
18
  this.program = new Command('btcr2')
25
19
  .version(`btcr2 ${VERSION}`, '-v, --version', 'Output the current version')
26
20
  .description('CLI tool for the did:btcr2 method')
@@ -28,10 +22,10 @@ export class DidBtcr2Cli {
28
22
  .option('--verbose', 'Verbose output', false)
29
23
  .option('--quiet', 'Suppress non-essential output', false);
30
24
  const globals = () => this.program.opts();
31
- registerCreateCommand(this.program, this.ops, globals);
32
- registerResolveCommand(this.program, this.ops, globals);
33
- registerUpdateCommand(this.program, this.ops, globals);
34
- registerDeactivateCommand(this.program, this.ops, globals);
25
+ registerCreateCommand(this.program, this.api, globals);
26
+ registerResolveCommand(this.program, this.api, globals);
27
+ registerUpdateCommand(this.program, this.api, globals);
28
+ registerDeactivateCommand(this.program, this.api, globals);
35
29
  }
36
30
  /**
37
31
  * Runs the CLI with the provided argv or process.argv.
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAe,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC;;GAEG;AACH,MAAM,OAAO,WAAW;IACN,OAAO,CAAU;IAChB,GAAG,CAAc;IAElC;;;OAGG;IACH,YAAY,MAAmB,SAAS,EAAE;QACxC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;aAChC,OAAO,CAAC,SAAS,OAAO,EAAE,EAAE,eAAe,EAAE,4BAA4B,CAAC;aAC1E,WAAW,CAAC,mCAAmC,CAAC;aAChD,MAAM,CAAC,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,CAAC;aACpE,MAAM,CAAC,WAAW,EAAE,gBAAgB,EAAE,KAAK,CAAC;aAC5C,MAAM,CAAC,SAAS,EAAE,+BAA+B,EAAE,KAAK,CAAC,CAAC;QAE7D,MAAM,OAAO,GAAG,GAAkB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAmB,CAAC;QAE1E,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACvD,sBAAsB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACxD,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACvD,yBAAyB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,GAAG,CAAC,IAAe;QAC9B,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;YACvD,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YAC5D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM;gBAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAC3D,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,WAAW,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;CACF;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,IAAc;IACnC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC3B,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAAC,KAAc;IACjC,IACE,KAAK,YAAY,cAAc;QAC/B,CAAC,KAAK,CAAC,IAAI,KAAK,yBAAyB,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC,EAC7E,CAAC;QACD,OAAO;IACT,CAAC;IACD,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,OAAO,CAAC,QAAQ,KAAK,CAAC,CAAC;QACvB,OAAO;IACT,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,OAAO,CAAC,QAAQ,KAAK,CAAC,CAAC;AACzB,CAAC"}
@@ -1,4 +1,3 @@
1
- import { IdentifierTypes } from '@did-btcr2/common';
2
1
  import { CLIError } from '../error.js';
3
2
  import { formatResult } from '../output.js';
4
3
  import { SUPPORTED_NETWORKS, } from '../types.js';
@@ -7,7 +6,7 @@ const EXPECTED_BYTES = {
7
6
  k: { length: 33, label: 'secp256k1 compressed public key (33 bytes)' },
8
7
  x: { length: 32, label: 'SHA-256 hash (32 bytes)' },
9
8
  };
10
- export function registerCreateCommand(program, ops, globals) {
9
+ export function registerCreateCommand(program, api, globals) {
11
10
  program
12
11
  .command('create')
13
12
  .description('Create an identifier and initial DID document')
@@ -18,9 +17,9 @@ export function registerCreateCommand(program, ops, globals) {
18
17
  'If type=x, MUST be SHA-256 hash of a genesis document')
19
18
  .action(async (options) => {
20
19
  const parsed = validateCreateOptions(options);
21
- const idType = parsed.type === 'k' ? IdentifierTypes.KEY : IdentifierTypes.EXTERNAL;
20
+ const type = parsed.type === 'k' ? 'deterministic' : 'external';
22
21
  const genesisBytes = Buffer.from(parsed.bytes, 'hex');
23
- const data = ops.create(genesisBytes, { idType, network: parsed.network });
22
+ const data = api.createDid(type, genesisBytes, { network: parsed.network });
24
23
  const result = { action: 'create', data };
25
24
  console.log(formatResult(result, globals()));
26
25
  });
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/create.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { CLIError } from '../error.js';
2
2
  import { formatResult } from '../output.js';
3
3
  /** The JSON Patch that marks a DID document as permanently deactivated. */
4
4
  const DEACTIVATION_PATCH = [{ op: 'add', path: '/deactivated', value: true }];
5
- export function registerDeactivateCommand(program, ops, globals) {
5
+ export function registerDeactivateCommand(program, api, globals) {
6
6
  program
7
7
  .command('deactivate')
8
8
  .alias('delete')
@@ -19,7 +19,7 @@ export function registerDeactivateCommand(program, ops, globals) {
19
19
  verificationMethodId: options.verificationMethodId,
20
20
  beaconId: options.beaconId,
21
21
  };
22
- const data = await ops.update(parsed);
22
+ const data = await api.btcr2.update(parsed);
23
23
  const result = { action: 'deactivate', data };
24
24
  console.log(formatResult(result, globals()));
25
25
  });
@@ -1 +1 @@
1
- {"version":3,"file":"deactivate.js","sourceRoot":"","sources":["../../../src/commands/deactivate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,2EAA2E;AAC3E,MAAM,kBAAkB,GAAG,CAAC,EAAE,EAAE,EAAE,KAAc,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAEvF,MAAM,UAAU,yBAAyB,CACvC,OAAiB,EACjB,GAA0B,EAC1B,OAA6B;IAE7B,OAAO;SACJ,OAAO,CAAC,YAAY,CAAC;SACrB,KAAK,CAAC,QAAQ,CAAC;SACf,WAAW,CAAC,wEAAwE,CAAC;SACrF,cAAc,CACb,8BAA8B,EAC9B,qCAAqC,EACrC,YAAY,CAAC,mBAAmB,CAAC,CAClC;SACA,cAAc,CACb,8BAA8B,EAC9B,wCAAwC,CACzC;SACA,cAAc,CACb,mCAAmC,EACnC,mEAAmE,CACpE;SACA,cAAc,CACb,wBAAwB,EACxB,4BAA4B,EAC5B,YAAY,CAAC,aAAa,CAAC,CAC5B;SACA,MAAM,CAAC,KAAK,EAAE,OAKd,EAAE,EAAE;QACH,MAAM,MAAM,GAAyB;YACnC,cAAc,EAAS,OAAO,CAAC,cAAwD;YACvF,OAAO,EAAgB,kBAAkB;YACzC,eAAe,EAAQ,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC;YACtD,oBAAoB,EAAG,OAAO,CAAC,oBAAoB;YACnD,QAAQ,EAAe,OAAO,CAAC,QAA4C;SAC5E,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,YAAqB,EAAE,IAAI,EAAE,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,QAAgB;IACpC,OAAO,CAAC,KAAa,EAAW,EAAE;QAChC,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,QAAQ,CAChB,oBAAoB,QAAQ,gCAAgC,EAC5D,wBAAwB,EACxB,EAAE,QAAQ,EAAE,KAAK,EAAE,CACpB,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"deactivate.js","sourceRoot":"","sources":["../../../src/commands/deactivate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,2EAA2E;AAC3E,MAAM,kBAAkB,GAAG,CAAC,EAAE,EAAE,EAAE,KAAc,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAEvF,MAAM,UAAU,yBAAyB,CACvC,OAAiB,EACjB,GAAqB,EACrB,OAA6B;IAE7B,OAAO;SACJ,OAAO,CAAC,YAAY,CAAC;SACrB,KAAK,CAAC,QAAQ,CAAC;SACf,WAAW,CAAC,wEAAwE,CAAC;SACrF,cAAc,CACb,8BAA8B,EAC9B,qCAAqC,EACrC,YAAY,CAAC,mBAAmB,CAAC,CAClC;SACA,cAAc,CACb,8BAA8B,EAC9B,wCAAwC,CACzC;SACA,cAAc,CACb,mCAAmC,EACnC,mEAAmE,CACpE;SACA,cAAc,CACb,wBAAwB,EACxB,4BAA4B,EAC5B,YAAY,CAAC,aAAa,CAAC,CAC5B;SACA,MAAM,CAAC,KAAK,EAAE,OAKd,EAAE,EAAE;QACH,MAAM,MAAM,GAAyB;YACnC,cAAc,EAAS,OAAO,CAAC,cAAwD;YACvF,OAAO,EAAgB,kBAAkB;YACzC,eAAe,EAAQ,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC;YACtD,oBAAoB,EAAG,OAAO,CAAC,oBAAoB;YACnD,QAAQ,EAAe,OAAO,CAAC,QAA4C;SAC5E,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,YAAqB,EAAE,IAAI,EAAE,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,QAAgB;IACpC,OAAO,CAAC,KAAa,EAAW,EAAE;QAChC,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,QAAQ,CAChB,oBAAoB,QAAQ,gCAAgC,EAC5D,wBAAwB,EACxB,EAAE,QAAQ,EAAE,KAAK,EAAE,CACpB,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -1,8 +1,8 @@
1
- import { Identifier } from '@did-btcr2/method';
1
+ import { Identifier } from '@did-btcr2/api';
2
2
  import { readFile } from 'node:fs/promises';
3
3
  import { CLIError } from '../error.js';
4
4
  import { formatResult } from '../output.js';
5
- export function registerResolveCommand(program, ops, globals) {
5
+ export function registerResolveCommand(program, api, globals) {
6
6
  program
7
7
  .command('resolve')
8
8
  .alias('read')
@@ -12,48 +12,32 @@ export function registerResolveCommand(program, ops, globals) {
12
12
  .option('-p, --resolution-options-path <path>', 'Path to a JSON file containing resolution options')
13
13
  .action(async (options) => {
14
14
  const parsed = await validateResolveOptions(options);
15
- const data = await ops.resolve(parsed.identifier, parsed.options);
15
+ const data = await api.resolveDid(parsed.identifier, parsed.options);
16
16
  const result = { action: 'resolve', data };
17
17
  console.log(formatResult(result, globals()));
18
18
  });
19
19
  }
20
20
  async function validateResolveOptions(options) {
21
- validateIdentifier(options.identifier, options);
22
- const resolutionOptions = await parseResolutionOptions(options);
23
- return {
24
- identifier: options.identifier,
25
- ...(resolutionOptions && { options: resolutionOptions }),
26
- };
27
- }
28
- function validateIdentifier(identifier, data) {
29
- try {
30
- Identifier.decode(identifier);
31
- }
32
- catch {
33
- throw new CLIError('Invalid identifier. Must be a valid did:btcr2 identifier.', 'INVALID_ARGUMENT_ERROR', data);
34
- }
35
- }
36
- function parseJson(value, errorMessage, data) {
37
- try {
38
- return JSON.parse(value);
39
- }
40
- catch {
41
- throw new CLIError(errorMessage, 'INVALID_ARGUMENT_ERROR', data);
42
- }
43
- }
44
- async function parseResolutionOptions(options) {
21
+ // Validate identifier format early
22
+ Identifier.decode(options.identifier);
23
+ let resolutionOptions = undefined;
45
24
  if (options.resolutionOptions) {
46
- return parseJson(options.resolutionOptions, 'Invalid resolution options. Must be a valid JSON string.', options);
25
+ try {
26
+ resolutionOptions = JSON.parse(options.resolutionOptions);
27
+ }
28
+ catch {
29
+ throw new CLIError('Invalid resolution options. Must be a valid JSON string.', 'INVALID_ARGUMENT_ERROR', options);
30
+ }
47
31
  }
48
- if (options.resolutionOptionsPath) {
32
+ else if (options.resolutionOptionsPath) {
49
33
  try {
50
- const data = await readFile(options.resolutionOptionsPath, 'utf-8');
51
- return JSON.parse(data);
34
+ const content = await readFile(options.resolutionOptionsPath, 'utf-8');
35
+ resolutionOptions = JSON.parse(content);
52
36
  }
53
37
  catch {
54
38
  throw new CLIError('Invalid resolution options path. Must be a valid path to a JSON file.', 'INVALID_ARGUMENT_ERROR', options);
55
39
  }
56
40
  }
57
- return undefined;
41
+ return { identifier: options.identifier, options: resolutionOptions };
58
42
  }
59
43
  //# sourceMappingURL=resolve.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../src/commands/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,MAAM,UAAU,sBAAsB,CACpC,OAAiB,EACjB,GAA0B,EAC1B,OAA6B;IAE7B,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,KAAK,CAAC,MAAM,CAAC;SACb,WAAW,CAAC,6CAA6C,CAAC;SAC1D,cAAc,CAAC,+BAA+B,EAAE,sBAAsB,CAAC;SACvE,MAAM,CAAC,iCAAiC,EAAE,2CAA2C,CAAC;SACtF,MAAM,CAAC,sCAAsC,EAAE,mDAAmD,CAAC;SACnG,MAAM,CAAC,KAAK,EAAE,OAId,EAAE,EAAE;QACH,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,SAAkB,EAAE,IAAI,EAAE,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,OAIrC;IACC,kBAAkB,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,iBAAiB,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChE,OAAO;QACL,UAAU,EAAG,OAAO,CAAC,UAAU;QAC/B,GAAG,CAAC,iBAAiB,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;KACzD,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,UAAkB,EAAE,IAAyB;IACvE,IAAI,CAAC;QACH,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,QAAQ,CAChB,2DAA2D,EAC3D,wBAAwB,EACxB,IAAI,CACL,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAI,KAAa,EAAE,YAAoB,EAAE,IAAyB;IAClF,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAM,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,QAAQ,CAAC,YAAY,EAAE,wBAAwB,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,OAGrC;IACC,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC9B,OAAO,SAAS,CACd,OAAO,CAAC,iBAAiB,EACzB,0DAA0D,EAC1D,OAAO,CACR,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;YACpE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,QAAQ,CAChB,uEAAuE,EACvE,wBAAwB,EACxB,OAAO,CACR,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../src/commands/resolve.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,MAAM,UAAU,sBAAsB,CACpC,OAAiB,EACjB,GAAqB,EACrB,OAA6B;IAE7B,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,KAAK,CAAC,MAAM,CAAC;SACb,WAAW,CAAC,6CAA6C,CAAC;SAC1D,cAAc,CAAC,+BAA+B,EAAE,sBAAsB,CAAC;SACvE,MAAM,CAAC,iCAAiC,EAAE,2CAA2C,CAAC;SACtF,MAAM,CAAC,sCAAsC,EAAE,mDAAmD,CAAC;SACnG,MAAM,CAAC,KAAK,EAAE,OAId,EAAE,EAAE;QACH,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,SAAkB,EAAE,IAAI,EAAE,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,OAIrC;IACC,mCAAmC;IACnC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAEtC,IAAI,iBAAiB,GAAG,SAAS,CAAC;IAClC,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,QAAQ,CAChB,0DAA0D,EAC1D,wBAAwB,EACxB,OAAO,CACR,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;YACvE,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,QAAQ,CAChB,uEAAuE,EACvE,wBAAwB,EACxB,OAAO,CACR,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;AACxE,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { CLIError } from '../error.js';
2
2
  import { formatResult } from '../output.js';
3
- export function registerUpdateCommand(program, ops, globals) {
3
+ export function registerUpdateCommand(program, api, globals) {
4
4
  program
5
5
  .command('update')
6
6
  .description('Update a did:btcr2 document.')
@@ -17,7 +17,7 @@ export function registerUpdateCommand(program, ops, globals) {
17
17
  verificationMethodId: options.verificationMethodId,
18
18
  beaconId: options.beaconId,
19
19
  };
20
- const data = await ops.update(parsed);
20
+ const data = await api.btcr2.update(parsed);
21
21
  const result = { action: 'update', data };
22
22
  console.log(formatResult(result, globals()));
23
23
  });
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/update.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,MAAM,UAAU,qBAAqB,CACnC,OAAiB,EACjB,GAA0B,EAC1B,OAA6B;IAE7B,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,8BAA8B,CAAC;SAC3C,cAAc,CACb,8BAA8B,EAC9B,oCAAoC,EACpC,YAAY,CAAC,mBAAmB,CAAC,CAClC;SACA,cAAc,CACb,8BAA8B,EAC9B,+BAA+B,CAChC;SACA,cAAc,CACb,sBAAsB,EACtB,8CAA8C,EAC9C,YAAY,CAAC,WAAW,CAAC,CAC1B;SACA,cAAc,CACb,mCAAmC,EACnC,qCAAqC,CACtC;SACA,cAAc,CACb,wBAAwB,EACxB,4BAA4B,EAC5B,YAAY,CAAC,aAAa,CAAC,CAC5B;SACA,MAAM,CAAC,KAAK,EAAE,OAMd,EAAE,EAAE;QACH,MAAM,MAAM,GAAyB;YACnC,cAAc,EAAS,OAAO,CAAC,cAAwD;YACvF,OAAO,EAAgB,OAAO,CAAC,OAA0C;YACzE,eAAe,EAAQ,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC;YACtD,oBAAoB,EAAG,OAAO,CAAC,oBAAoB;YACnD,QAAQ,EAAe,OAAO,CAAC,QAA4C;SAC5E,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,QAAiB,EAAE,IAAI,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,QAAgB;IACpC,OAAO,CAAC,KAAa,EAAW,EAAE;QAChC,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,QAAQ,CAChB,oBAAoB,QAAQ,gCAAgC,EAC5D,wBAAwB,EACxB,EAAE,QAAQ,EAAE,KAAK,EAAE,CACpB,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/update.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,MAAM,UAAU,qBAAqB,CACnC,OAAiB,EACjB,GAAqB,EACrB,OAA6B;IAE7B,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,8BAA8B,CAAC;SAC3C,cAAc,CACb,8BAA8B,EAC9B,oCAAoC,EACpC,YAAY,CAAC,mBAAmB,CAAC,CAClC;SACA,cAAc,CACb,8BAA8B,EAC9B,+BAA+B,CAChC;SACA,cAAc,CACb,sBAAsB,EACtB,8CAA8C,EAC9C,YAAY,CAAC,WAAW,CAAC,CAC1B;SACA,cAAc,CACb,mCAAmC,EACnC,qCAAqC,CACtC;SACA,cAAc,CACb,wBAAwB,EACxB,4BAA4B,EAC5B,YAAY,CAAC,aAAa,CAAC,CAC5B;SACA,MAAM,CAAC,KAAK,EAAE,OAMd,EAAE,EAAE;QACH,MAAM,MAAM,GAAyB;YACnC,cAAc,EAAS,OAAO,CAAC,cAAwD;YACvF,OAAO,EAAgB,OAAO,CAAC,OAA0C;YACzE,eAAe,EAAQ,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC;YACtD,oBAAoB,EAAG,OAAO,CAAC,oBAAoB;YACnD,QAAQ,EAAe,OAAO,CAAC,QAA4C;SAC5E,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,QAAiB,EAAE,IAAI,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,QAAgB;IACpC,OAAO,CAAC,KAAa,EAAW,EAAE;QAChC,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,QAAQ,CAChB,oBAAoB,QAAQ,gCAAgC,EAC5D,wBAAwB,EACxB,EAAE,QAAQ,EAAE,KAAK,EAAE,CACpB,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -1,26 +1,20 @@
1
1
  import { Command, CommanderError } from 'commander';
2
- import { DidBtcr2 } from '@did-btcr2/method';
2
+ import { createApi } from '@did-btcr2/api';
3
3
  import { registerCreateCommand, registerDeactivateCommand, registerResolveCommand, registerUpdateCommand, } from './commands/index.js';
4
4
  import { CLIError } from './error.js';
5
5
  import { VERSION } from './version.js';
6
- /** Default MethodOperations delegating to DidBtcr2 static methods. */
7
- const defaultOps = {
8
- create: (genesisBytes, options) => DidBtcr2.create(genesisBytes, options),
9
- resolve: (identifier, options) => DidBtcr2.resolve(identifier, options),
10
- update: (params) => DidBtcr2.update(params),
11
- };
12
6
  /**
13
7
  * CLI tool for the did:btcr2 method.
14
8
  */
15
9
  export class DidBtcr2Cli {
16
10
  program;
17
- ops;
11
+ api;
18
12
  /**
19
- * Initializes the CLI with optional custom MethodOperations.
20
- * @param {MethodOperations} ops - Custom operations for create, resolve, and update.
13
+ * Initializes the CLI with an optional pre-configured API instance.
14
+ * @param {DidBtcr2Api} api - Optional API instance. Defaults to an unconfigured instance.
21
15
  */
22
- constructor(ops = defaultOps) {
23
- this.ops = ops;
16
+ constructor(api = createApi()) {
17
+ this.api = api;
24
18
  this.program = new Command('btcr2')
25
19
  .version(`btcr2 ${VERSION}`, '-v, --version', 'Output the current version')
26
20
  .description('CLI tool for the did:btcr2 method')
@@ -28,10 +22,10 @@ export class DidBtcr2Cli {
28
22
  .option('--verbose', 'Verbose output', false)
29
23
  .option('--quiet', 'Suppress non-essential output', false);
30
24
  const globals = () => this.program.opts();
31
- registerCreateCommand(this.program, this.ops, globals);
32
- registerResolveCommand(this.program, this.ops, globals);
33
- registerUpdateCommand(this.program, this.ops, globals);
34
- registerDeactivateCommand(this.program, this.ops, globals);
25
+ registerCreateCommand(this.program, this.api, globals);
26
+ registerResolveCommand(this.program, this.api, globals);
27
+ registerUpdateCommand(this.program, this.api, globals);
28
+ registerDeactivateCommand(this.program, this.api, globals);
35
29
  }
36
30
  /**
37
31
  * Runs the CLI with the provided argv or process.argv.
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import { IdentifierTypes } from '@did-btcr2/common';
2
1
  import { CLIError } from '../error.js';
3
2
  import { formatResult } from '../output.js';
4
3
  import { SUPPORTED_NETWORKS, } from '../types.js';
@@ -7,7 +6,7 @@ const EXPECTED_BYTES = {
7
6
  k: { length: 33, label: 'secp256k1 compressed public key (33 bytes)' },
8
7
  x: { length: 32, label: 'SHA-256 hash (32 bytes)' },
9
8
  };
10
- export function registerCreateCommand(program, ops, globals) {
9
+ export function registerCreateCommand(program, api, globals) {
11
10
  program
12
11
  .command('create')
13
12
  .description('Create an identifier and initial DID document')
@@ -18,9 +17,9 @@ export function registerCreateCommand(program, ops, globals) {
18
17
  'If type=x, MUST be SHA-256 hash of a genesis document')
19
18
  .action(async (options) => {
20
19
  const parsed = validateCreateOptions(options);
21
- const idType = parsed.type === 'k' ? IdentifierTypes.KEY : IdentifierTypes.EXTERNAL;
20
+ const type = parsed.type === 'k' ? 'deterministic' : 'external';
22
21
  const genesisBytes = Buffer.from(parsed.bytes, 'hex');
23
- const data = ops.create(genesisBytes, { idType, network: parsed.network });
22
+ const data = api.createDid(type, genesisBytes, { network: parsed.network });
24
23
  const result = { action: 'create', data };
25
24
  console.log(formatResult(result, globals()));
26
25
  });
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/commands/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/commands/create.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { CLIError } from '../error.js';
2
2
  import { formatResult } from '../output.js';
3
3
  /** The JSON Patch that marks a DID document as permanently deactivated. */
4
4
  const DEACTIVATION_PATCH = [{ op: 'add', path: '/deactivated', value: true }];
5
- export function registerDeactivateCommand(program, ops, globals) {
5
+ export function registerDeactivateCommand(program, api, globals) {
6
6
  program
7
7
  .command('deactivate')
8
8
  .alias('delete')
@@ -19,7 +19,7 @@ export function registerDeactivateCommand(program, ops, globals) {
19
19
  verificationMethodId: options.verificationMethodId,
20
20
  beaconId: options.beaconId,
21
21
  };
22
- const data = await ops.update(parsed);
22
+ const data = await api.btcr2.update(parsed);
23
23
  const result = { action: 'deactivate', data };
24
24
  console.log(formatResult(result, globals()));
25
25
  });
@@ -1 +1 @@
1
- {"version":3,"file":"deactivate.js","sourceRoot":"","sources":["../../../../src/commands/deactivate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,2EAA2E;AAC3E,MAAM,kBAAkB,GAAG,CAAC,EAAE,EAAE,EAAE,KAAc,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAEvF,MAAM,UAAU,yBAAyB,CACvC,OAAiB,EACjB,GAA0B,EAC1B,OAA6B;IAE7B,OAAO;SACJ,OAAO,CAAC,YAAY,CAAC;SACrB,KAAK,CAAC,QAAQ,CAAC;SACf,WAAW,CAAC,wEAAwE,CAAC;SACrF,cAAc,CACb,8BAA8B,EAC9B,qCAAqC,EACrC,YAAY,CAAC,mBAAmB,CAAC,CAClC;SACA,cAAc,CACb,8BAA8B,EAC9B,wCAAwC,CACzC;SACA,cAAc,CACb,mCAAmC,EACnC,mEAAmE,CACpE;SACA,cAAc,CACb,wBAAwB,EACxB,4BAA4B,EAC5B,YAAY,CAAC,aAAa,CAAC,CAC5B;SACA,MAAM,CAAC,KAAK,EAAE,OAKd,EAAE,EAAE;QACH,MAAM,MAAM,GAAyB;YACnC,cAAc,EAAS,OAAO,CAAC,cAAwD;YACvF,OAAO,EAAgB,kBAAkB;YACzC,eAAe,EAAQ,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC;YACtD,oBAAoB,EAAG,OAAO,CAAC,oBAAoB;YACnD,QAAQ,EAAe,OAAO,CAAC,QAA4C;SAC5E,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,YAAqB,EAAE,IAAI,EAAE,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,QAAgB;IACpC,OAAO,CAAC,KAAa,EAAW,EAAE;QAChC,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,QAAQ,CAChB,oBAAoB,QAAQ,gCAAgC,EAC5D,wBAAwB,EACxB,EAAE,QAAQ,EAAE,KAAK,EAAE,CACpB,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"deactivate.js","sourceRoot":"","sources":["../../../../src/commands/deactivate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,2EAA2E;AAC3E,MAAM,kBAAkB,GAAG,CAAC,EAAE,EAAE,EAAE,KAAc,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAEvF,MAAM,UAAU,yBAAyB,CACvC,OAAiB,EACjB,GAAqB,EACrB,OAA6B;IAE7B,OAAO;SACJ,OAAO,CAAC,YAAY,CAAC;SACrB,KAAK,CAAC,QAAQ,CAAC;SACf,WAAW,CAAC,wEAAwE,CAAC;SACrF,cAAc,CACb,8BAA8B,EAC9B,qCAAqC,EACrC,YAAY,CAAC,mBAAmB,CAAC,CAClC;SACA,cAAc,CACb,8BAA8B,EAC9B,wCAAwC,CACzC;SACA,cAAc,CACb,mCAAmC,EACnC,mEAAmE,CACpE;SACA,cAAc,CACb,wBAAwB,EACxB,4BAA4B,EAC5B,YAAY,CAAC,aAAa,CAAC,CAC5B;SACA,MAAM,CAAC,KAAK,EAAE,OAKd,EAAE,EAAE;QACH,MAAM,MAAM,GAAyB;YACnC,cAAc,EAAS,OAAO,CAAC,cAAwD;YACvF,OAAO,EAAgB,kBAAkB;YACzC,eAAe,EAAQ,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC;YACtD,oBAAoB,EAAG,OAAO,CAAC,oBAAoB;YACnD,QAAQ,EAAe,OAAO,CAAC,QAA4C;SAC5E,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,YAAqB,EAAE,IAAI,EAAE,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,QAAgB;IACpC,OAAO,CAAC,KAAa,EAAW,EAAE;QAChC,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,QAAQ,CAChB,oBAAoB,QAAQ,gCAAgC,EAC5D,wBAAwB,EACxB,EAAE,QAAQ,EAAE,KAAK,EAAE,CACpB,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -1,8 +1,8 @@
1
- import { Identifier } from '@did-btcr2/method';
1
+ import { Identifier } from '@did-btcr2/api';
2
2
  import { readFile } from 'node:fs/promises';
3
3
  import { CLIError } from '../error.js';
4
4
  import { formatResult } from '../output.js';
5
- export function registerResolveCommand(program, ops, globals) {
5
+ export function registerResolveCommand(program, api, globals) {
6
6
  program
7
7
  .command('resolve')
8
8
  .alias('read')
@@ -12,48 +12,32 @@ export function registerResolveCommand(program, ops, globals) {
12
12
  .option('-p, --resolution-options-path <path>', 'Path to a JSON file containing resolution options')
13
13
  .action(async (options) => {
14
14
  const parsed = await validateResolveOptions(options);
15
- const data = await ops.resolve(parsed.identifier, parsed.options);
15
+ const data = await api.resolveDid(parsed.identifier, parsed.options);
16
16
  const result = { action: 'resolve', data };
17
17
  console.log(formatResult(result, globals()));
18
18
  });
19
19
  }
20
20
  async function validateResolveOptions(options) {
21
- validateIdentifier(options.identifier, options);
22
- const resolutionOptions = await parseResolutionOptions(options);
23
- return {
24
- identifier: options.identifier,
25
- ...(resolutionOptions && { options: resolutionOptions }),
26
- };
27
- }
28
- function validateIdentifier(identifier, data) {
29
- try {
30
- Identifier.decode(identifier);
31
- }
32
- catch {
33
- throw new CLIError('Invalid identifier. Must be a valid did:btcr2 identifier.', 'INVALID_ARGUMENT_ERROR', data);
34
- }
35
- }
36
- function parseJson(value, errorMessage, data) {
37
- try {
38
- return JSON.parse(value);
39
- }
40
- catch {
41
- throw new CLIError(errorMessage, 'INVALID_ARGUMENT_ERROR', data);
42
- }
43
- }
44
- async function parseResolutionOptions(options) {
21
+ // Validate identifier format early
22
+ Identifier.decode(options.identifier);
23
+ let resolutionOptions = undefined;
45
24
  if (options.resolutionOptions) {
46
- return parseJson(options.resolutionOptions, 'Invalid resolution options. Must be a valid JSON string.', options);
25
+ try {
26
+ resolutionOptions = JSON.parse(options.resolutionOptions);
27
+ }
28
+ catch {
29
+ throw new CLIError('Invalid resolution options. Must be a valid JSON string.', 'INVALID_ARGUMENT_ERROR', options);
30
+ }
47
31
  }
48
- if (options.resolutionOptionsPath) {
32
+ else if (options.resolutionOptionsPath) {
49
33
  try {
50
- const data = await readFile(options.resolutionOptionsPath, 'utf-8');
51
- return JSON.parse(data);
34
+ const content = await readFile(options.resolutionOptionsPath, 'utf-8');
35
+ resolutionOptions = JSON.parse(content);
52
36
  }
53
37
  catch {
54
38
  throw new CLIError('Invalid resolution options path. Must be a valid path to a JSON file.', 'INVALID_ARGUMENT_ERROR', options);
55
39
  }
56
40
  }
57
- return undefined;
41
+ return { identifier: options.identifier, options: resolutionOptions };
58
42
  }
59
43
  //# sourceMappingURL=resolve.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../../src/commands/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,MAAM,UAAU,sBAAsB,CACpC,OAAiB,EACjB,GAA0B,EAC1B,OAA6B;IAE7B,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,KAAK,CAAC,MAAM,CAAC;SACb,WAAW,CAAC,6CAA6C,CAAC;SAC1D,cAAc,CAAC,+BAA+B,EAAE,sBAAsB,CAAC;SACvE,MAAM,CAAC,iCAAiC,EAAE,2CAA2C,CAAC;SACtF,MAAM,CAAC,sCAAsC,EAAE,mDAAmD,CAAC;SACnG,MAAM,CAAC,KAAK,EAAE,OAId,EAAE,EAAE;QACH,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,SAAkB,EAAE,IAAI,EAAE,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,OAIrC;IACC,kBAAkB,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,iBAAiB,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChE,OAAO;QACL,UAAU,EAAG,OAAO,CAAC,UAAU;QAC/B,GAAG,CAAC,iBAAiB,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;KACzD,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,UAAkB,EAAE,IAAyB;IACvE,IAAI,CAAC;QACH,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,QAAQ,CAChB,2DAA2D,EAC3D,wBAAwB,EACxB,IAAI,CACL,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAI,KAAa,EAAE,YAAoB,EAAE,IAAyB;IAClF,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAM,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,QAAQ,CAAC,YAAY,EAAE,wBAAwB,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,OAGrC;IACC,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC9B,OAAO,SAAS,CACd,OAAO,CAAC,iBAAiB,EACzB,0DAA0D,EAC1D,OAAO,CACR,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;YACpE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,QAAQ,CAChB,uEAAuE,EACvE,wBAAwB,EACxB,OAAO,CACR,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../../src/commands/resolve.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,MAAM,UAAU,sBAAsB,CACpC,OAAiB,EACjB,GAAqB,EACrB,OAA6B;IAE7B,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,KAAK,CAAC,MAAM,CAAC;SACb,WAAW,CAAC,6CAA6C,CAAC;SAC1D,cAAc,CAAC,+BAA+B,EAAE,sBAAsB,CAAC;SACvE,MAAM,CAAC,iCAAiC,EAAE,2CAA2C,CAAC;SACtF,MAAM,CAAC,sCAAsC,EAAE,mDAAmD,CAAC;SACnG,MAAM,CAAC,KAAK,EAAE,OAId,EAAE,EAAE;QACH,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,SAAkB,EAAE,IAAI,EAAE,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,OAIrC;IACC,mCAAmC;IACnC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAEtC,IAAI,iBAAiB,GAAG,SAAS,CAAC;IAClC,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,QAAQ,CAChB,0DAA0D,EAC1D,wBAAwB,EACxB,OAAO,CACR,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;YACvE,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,QAAQ,CAChB,uEAAuE,EACvE,wBAAwB,EACxB,OAAO,CACR,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;AACxE,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { CLIError } from '../error.js';
2
2
  import { formatResult } from '../output.js';
3
- export function registerUpdateCommand(program, ops, globals) {
3
+ export function registerUpdateCommand(program, api, globals) {
4
4
  program
5
5
  .command('update')
6
6
  .description('Update a did:btcr2 document.')
@@ -17,7 +17,7 @@ export function registerUpdateCommand(program, ops, globals) {
17
17
  verificationMethodId: options.verificationMethodId,
18
18
  beaconId: options.beaconId,
19
19
  };
20
- const data = await ops.update(parsed);
20
+ const data = await api.btcr2.update(parsed);
21
21
  const result = { action: 'update', data };
22
22
  console.log(formatResult(result, globals()));
23
23
  });
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/commands/update.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,MAAM,UAAU,qBAAqB,CACnC,OAAiB,EACjB,GAA0B,EAC1B,OAA6B;IAE7B,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,8BAA8B,CAAC;SAC3C,cAAc,CACb,8BAA8B,EAC9B,oCAAoC,EACpC,YAAY,CAAC,mBAAmB,CAAC,CAClC;SACA,cAAc,CACb,8BAA8B,EAC9B,+BAA+B,CAChC;SACA,cAAc,CACb,sBAAsB,EACtB,8CAA8C,EAC9C,YAAY,CAAC,WAAW,CAAC,CAC1B;SACA,cAAc,CACb,mCAAmC,EACnC,qCAAqC,CACtC;SACA,cAAc,CACb,wBAAwB,EACxB,4BAA4B,EAC5B,YAAY,CAAC,aAAa,CAAC,CAC5B;SACA,MAAM,CAAC,KAAK,EAAE,OAMd,EAAE,EAAE;QACH,MAAM,MAAM,GAAyB;YACnC,cAAc,EAAS,OAAO,CAAC,cAAwD;YACvF,OAAO,EAAgB,OAAO,CAAC,OAA0C;YACzE,eAAe,EAAQ,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC;YACtD,oBAAoB,EAAG,OAAO,CAAC,oBAAoB;YACnD,QAAQ,EAAe,OAAO,CAAC,QAA4C;SAC5E,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,QAAiB,EAAE,IAAI,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,QAAgB;IACpC,OAAO,CAAC,KAAa,EAAW,EAAE;QAChC,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,QAAQ,CAChB,oBAAoB,QAAQ,gCAAgC,EAC5D,wBAAwB,EACxB,EAAE,QAAQ,EAAE,KAAK,EAAE,CACpB,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/commands/update.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,MAAM,UAAU,qBAAqB,CACnC,OAAiB,EACjB,GAAqB,EACrB,OAA6B;IAE7B,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,8BAA8B,CAAC;SAC3C,cAAc,CACb,8BAA8B,EAC9B,oCAAoC,EACpC,YAAY,CAAC,mBAAmB,CAAC,CAClC;SACA,cAAc,CACb,8BAA8B,EAC9B,+BAA+B,CAChC;SACA,cAAc,CACb,sBAAsB,EACtB,8CAA8C,EAC9C,YAAY,CAAC,WAAW,CAAC,CAC1B;SACA,cAAc,CACb,mCAAmC,EACnC,qCAAqC,CACtC;SACA,cAAc,CACb,wBAAwB,EACxB,4BAA4B,EAC5B,YAAY,CAAC,aAAa,CAAC,CAC5B;SACA,MAAM,CAAC,KAAK,EAAE,OAMd,EAAE,EAAE;QACH,MAAM,MAAM,GAAyB;YACnC,cAAc,EAAS,OAAO,CAAC,cAAwD;YACvF,OAAO,EAAgB,OAAO,CAAC,OAA0C;YACzE,eAAe,EAAQ,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC;YACtD,oBAAoB,EAAG,OAAO,CAAC,oBAAoB;YACnD,QAAQ,EAAe,OAAO,CAAC,QAA4C;SAC5E,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,QAAiB,EAAE,IAAI,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,QAAgB;IACpC,OAAO,CAAC,KAAa,EAAW,EAAE;QAChC,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,QAAQ,CAChB,oBAAoB,QAAQ,gCAAgC,EAC5D,wBAAwB,EACxB,EAAE,QAAQ,EAAE,KAAK,EAAE,CACpB,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -1,16 +1,16 @@
1
1
  import { Command } from 'commander';
2
- import { MethodOperations } from './types.js';
2
+ import { DidBtcr2Api } from '@did-btcr2/api';
3
3
  /**
4
4
  * CLI tool for the did:btcr2 method.
5
5
  */
6
6
  export declare class DidBtcr2Cli {
7
7
  readonly program: Command;
8
- private readonly ops;
8
+ private readonly api;
9
9
  /**
10
- * Initializes the CLI with optional custom MethodOperations.
11
- * @param {MethodOperations} ops - Custom operations for create, resolve, and update.
10
+ * Initializes the CLI with an optional pre-configured API instance.
11
+ * @param {DidBtcr2Api} api - Optional API instance. Defaults to an unconfigured instance.
12
12
  */
13
- constructor(ops?: MethodOperations);
13
+ constructor(api?: DidBtcr2Api);
14
14
  /**
15
15
  * Runs the CLI with the provided argv or process.argv.
16
16
  * @param {string[]} [argv] - Optional array of command-line arguments.
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAkB,MAAM,WAAW,CAAC;AASpD,OAAO,EAAiB,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAU7D;;GAEG;AACH,qBAAa,WAAW;IACtB,SAAgB,OAAO,EAAE,OAAO,CAAC;IACjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAmB;IAEvC;;;OAGG;gBACS,GAAG,GAAE,gBAA6B;IAiB9C;;;;OAIG;IACU,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CASjD"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAkB,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,WAAW,EAAa,MAAM,gBAAgB,CAAC;AAWxD;;GAEG;AACH,qBAAa,WAAW;IACtB,SAAgB,OAAO,EAAE,OAAO,CAAC;IACjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAElC;;;OAGG;gBACS,GAAG,GAAE,WAAyB;IAiB1C;;;;OAIG;IACU,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CASjD"}
@@ -1,4 +1,5 @@
1
+ import type { DidBtcr2Api } from '@did-btcr2/api';
1
2
  import { Command } from 'commander';
2
- import { GlobalOptions, MethodOperations } from '../types.js';
3
- export declare function registerCreateCommand(program: Command, ops: MethodOperations, globals: () => GlobalOptions): void;
3
+ import { GlobalOptions } from '../types.js';
4
+ export declare function registerCreateCommand(program: Command, api: DidBtcr2Api, globals: () => GlobalOptions): void;
4
5
  //# sourceMappingURL=create.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/commands/create.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAEL,aAAa,EACb,gBAAgB,EAGjB,MAAM,aAAa,CAAC;AAQrB,wBAAgB,qBAAqB,CACnC,OAAO,EAAG,OAAO,EACjB,GAAG,EAAO,gBAAgB,EAC1B,OAAO,EAAG,MAAM,aAAa,GAC5B,IAAI,CAuBN"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/commands/create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAEL,aAAa,EAGd,MAAM,aAAa,CAAC;AAQrB,wBAAgB,qBAAqB,CACnC,OAAO,EAAG,OAAO,EACjB,GAAG,EAAO,WAAW,EACrB,OAAO,EAAG,MAAM,aAAa,GAC5B,IAAI,CAuBN"}
@@ -1,4 +1,5 @@
1
+ import type { DidBtcr2Api } from '@did-btcr2/api';
1
2
  import { Command } from 'commander';
2
- import { GlobalOptions, MethodOperations } from '../types.js';
3
- export declare function registerDeactivateCommand(program: Command, ops: MethodOperations, globals: () => GlobalOptions): void;
3
+ import { GlobalOptions } from '../types.js';
4
+ export declare function registerDeactivateCommand(program: Command, api: DidBtcr2Api, globals: () => GlobalOptions): void;
4
5
  //# sourceMappingURL=deactivate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deactivate.d.ts","sourceRoot":"","sources":["../../../../src/commands/deactivate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAwB,MAAM,aAAa,CAAC;AAKpF,wBAAgB,yBAAyB,CACvC,OAAO,EAAG,OAAO,EACjB,GAAG,EAAO,gBAAgB,EAC1B,OAAO,EAAG,MAAM,aAAa,GAC5B,IAAI,CAwCN"}
1
+ {"version":3,"file":"deactivate.d.ts","sourceRoot":"","sources":["../../../../src/commands/deactivate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,aAAa,EAAwB,MAAM,aAAa,CAAC;AAKlE,wBAAgB,yBAAyB,CACvC,OAAO,EAAG,OAAO,EACjB,GAAG,EAAO,WAAW,EACrB,OAAO,EAAG,MAAM,aAAa,GAC5B,IAAI,CAwCN"}
@@ -1,4 +1,5 @@
1
+ import type { DidBtcr2Api } from '@did-btcr2/api';
1
2
  import { Command } from 'commander';
2
- import { GlobalOptions, MethodOperations } from '../types.js';
3
- export declare function registerResolveCommand(program: Command, ops: MethodOperations, globals: () => GlobalOptions): void;
3
+ import { GlobalOptions } from '../types.js';
4
+ export declare function registerResolveCommand(program: Command, api: DidBtcr2Api, globals: () => GlobalOptions): void;
4
5
  //# sourceMappingURL=resolve.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../../src/commands/resolve.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAyB,MAAM,aAAa,CAAC;AAErF,wBAAgB,sBAAsB,CACpC,OAAO,EAAG,OAAO,EACjB,GAAG,EAAO,gBAAgB,EAC1B,OAAO,EAAG,MAAM,aAAa,GAC5B,IAAI,CAkBN"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../../src/commands/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,EAAE,aAAa,EAAyB,MAAM,aAAa,CAAC;AAEnE,wBAAgB,sBAAsB,CACpC,OAAO,EAAG,OAAO,EACjB,GAAG,EAAO,WAAW,EACrB,OAAO,EAAG,MAAM,aAAa,GAC5B,IAAI,CAkBN"}
@@ -1,4 +1,5 @@
1
+ import type { DidBtcr2Api } from '@did-btcr2/api';
1
2
  import { Command } from 'commander';
2
- import { GlobalOptions, MethodOperations } from '../types.js';
3
- export declare function registerUpdateCommand(program: Command, ops: MethodOperations, globals: () => GlobalOptions): void;
3
+ import { GlobalOptions } from '../types.js';
4
+ export declare function registerUpdateCommand(program: Command, api: DidBtcr2Api, globals: () => GlobalOptions): void;
4
5
  //# sourceMappingURL=update.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAwB,MAAM,aAAa,CAAC;AAEpF,wBAAgB,qBAAqB,CACnC,OAAO,EAAG,OAAO,EACjB,GAAG,EAAO,gBAAgB,EAC1B,OAAO,EAAG,MAAM,aAAa,GAC5B,IAAI,CA6CN"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,aAAa,EAAwB,MAAM,aAAa,CAAC;AAElE,wBAAgB,qBAAqB,CACnC,OAAO,EAAG,OAAO,EACjB,GAAG,EAAO,WAAW,EACrB,OAAO,EAAG,MAAM,aAAa,GAC5B,IAAI,CA6CN"}
@@ -1,22 +1,10 @@
1
- import { PatchOperation } from '@did-btcr2/common';
2
- import { SignedBTCR2Update } from '@did-btcr2/cryptosuite';
3
- import { Btcr2DidDocument, DidCreateOptions, ResolutionOptions } from '@did-btcr2/method';
4
- import { DidResolutionResult } from '@web5/dids';
1
+ import type { PatchOperation } from '@did-btcr2/common';
2
+ import type { SignedBTCR2Update } from '@did-btcr2/cryptosuite';
3
+ import type { Btcr2DidDocument, ResolutionOptions } from '@did-btcr2/method';
4
+ import type { DidResolutionResult } from '@web5/dids';
5
5
  export type NetworkOption = 'bitcoin' | 'testnet3' | 'testnet4' | 'signet' | 'mutinynet' | 'regtest';
6
6
  export type OutputFormat = 'json' | 'text';
7
7
  export declare const SUPPORTED_NETWORKS: NetworkOption[];
8
- /** Dependency-injection interface for the DID method operations the CLI calls. */
9
- export interface MethodOperations {
10
- create(genesisBytes: Uint8Array, options: DidCreateOptions): string;
11
- resolve(identifier: string, options?: ResolutionOptions): Promise<DidResolutionResult>;
12
- update(params: {
13
- sourceDocument: Btcr2DidDocument;
14
- patches: PatchOperation[];
15
- sourceVersionId: number;
16
- verificationMethodId: string;
17
- beaconId: string;
18
- }): Promise<SignedBTCR2Update>;
19
- }
20
8
  export interface CreateCommandOptions {
21
9
  type: 'k' | 'x';
22
10
  bytes: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;AACrG,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3C,eAAO,MAAM,kBAAkB,EAAE,aAAa,EAE7C,CAAC;AAEF,kFAAkF;AAClF,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CACJ,YAAY,EAAE,UAAU,EACxB,OAAO,EAAE,gBAAgB,GACxB,MAAM,CAAC;IACV,OAAO,CACL,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAChC,MAAM,CAAC,MAAM,EAAE;QACb,cAAc,EAAS,gBAAgB,CAAC;QACxC,OAAO,EAAgB,cAAc,EAAE,CAAC;QACxC,eAAe,EAAQ,MAAM,CAAC;QAC9B,oBAAoB,EAAG,MAAM,CAAC;QAC9B,QAAQ,EAAe,MAAM,CAAC;KAC/B,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAM,GAAG,GAAG,GAAG,CAAC;IACpB,KAAK,EAAK,MAAM,CAAC;IACjB,OAAO,EAAG,aAAa,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAG,MAAM,CAAC;IACpB,OAAO,CAAC,EAAK,iBAAiB,CAAC;CAChC;AAED,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAS,gBAAgB,CAAC;IACxC,OAAO,EAAgB,cAAc,EAAE,CAAC;IACxC,eAAe,EAAQ,MAAM,CAAC;IAC9B,oBAAoB,EAAG,MAAM,CAAC;IAC9B,QAAQ,EAAe,MAAM,CAAC;CAC/B;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,mBAAmB,CAAA;CAAE,GAChD;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAC7C;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAEtD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAI,YAAY,CAAC;IACvB,OAAO,EAAG,OAAO,CAAC;IAClB,KAAK,EAAK,OAAO,CAAC;CACnB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;AACrG,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3C,eAAO,MAAM,kBAAkB,EAAE,aAAa,EAE7C,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAM,GAAG,GAAG,GAAG,CAAC;IACpB,KAAK,EAAK,MAAM,CAAC;IACjB,OAAO,EAAG,aAAa,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAG,MAAM,CAAC;IACpB,OAAO,CAAC,EAAK,iBAAiB,CAAC;CAChC;AAED,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAS,gBAAgB,CAAC;IACxC,OAAO,EAAgB,cAAc,EAAE,CAAC;IACxC,eAAe,EAAQ,MAAM,CAAC;IAC9B,oBAAoB,EAAG,MAAM,CAAC;IAC9B,QAAQ,EAAe,MAAM,CAAC;CAC/B;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,mBAAmB,CAAA;CAAE,GAChD;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAC7C;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAEtD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAI,YAAY,CAAC;IACvB,OAAO,EAAG,OAAO,CAAC;IAClB,KAAK,EAAK,OAAO,CAAC;CACnB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@did-btcr2/cli",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "type": "module",
5
5
  "description": "CLI for interacting with did-btcr2-js, the JavaScript/TypeScript reference implementation of the did:btcr2 method. Exposes various parts of multiple packages in the did-btcr2-js monorepo.",
6
6
  "main": "./dist/cjs/index.js",
@@ -58,9 +58,10 @@
58
58
  "dependencies": {
59
59
  "@web5/dids": "^1.2.0",
60
60
  "commander": "^13.1.0",
61
- "@did-btcr2/common": "5.0.0",
62
- "@did-btcr2/cryptosuite": "6.0.0",
63
- "@did-btcr2/method": "0.23.0"
61
+ "@did-btcr2/common": "8.0.0",
62
+ "@did-btcr2/method": "0.25.0",
63
+ "@did-btcr2/api": "0.3.0",
64
+ "@did-btcr2/cryptosuite": "6.0.2"
64
65
  },
65
66
  "devDependencies": {
66
67
  "@eslint/js": "^9.21.0",
package/src/cli.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Command, CommanderError } from 'commander';
2
- import { DidBtcr2 } from '@did-btcr2/method';
2
+ import { DidBtcr2Api, createApi } from '@did-btcr2/api';
3
3
  import {
4
4
  registerCreateCommand,
5
5
  registerDeactivateCommand,
@@ -7,29 +7,22 @@ import {
7
7
  registerUpdateCommand,
8
8
  } from './commands/index.js';
9
9
  import { CLIError } from './error.js';
10
- import { GlobalOptions, MethodOperations } from './types.js';
10
+ import { GlobalOptions } from './types.js';
11
11
  import { VERSION } from './version.js';
12
12
 
13
- /** Default MethodOperations delegating to DidBtcr2 static methods. */
14
- const defaultOps: MethodOperations = {
15
- create : (genesisBytes, options) => DidBtcr2.create(genesisBytes, options),
16
- resolve : (identifier, options) => DidBtcr2.resolve(identifier, options),
17
- update : (params) => DidBtcr2.update(params),
18
- };
19
-
20
13
  /**
21
14
  * CLI tool for the did:btcr2 method.
22
15
  */
23
16
  export class DidBtcr2Cli {
24
17
  public readonly program: Command;
25
- private readonly ops: MethodOperations;
18
+ private readonly api: DidBtcr2Api;
26
19
 
27
20
  /**
28
- * Initializes the CLI with optional custom MethodOperations.
29
- * @param {MethodOperations} ops - Custom operations for create, resolve, and update.
21
+ * Initializes the CLI with an optional pre-configured API instance.
22
+ * @param {DidBtcr2Api} api - Optional API instance. Defaults to an unconfigured instance.
30
23
  */
31
- constructor(ops: MethodOperations = defaultOps) {
32
- this.ops = ops;
24
+ constructor(api: DidBtcr2Api = createApi()) {
25
+ this.api = api;
33
26
  this.program = new Command('btcr2')
34
27
  .version(`btcr2 ${VERSION}`, '-v, --version', 'Output the current version')
35
28
  .description('CLI tool for the did:btcr2 method')
@@ -39,10 +32,10 @@ export class DidBtcr2Cli {
39
32
 
40
33
  const globals = (): GlobalOptions => this.program.opts() as GlobalOptions;
41
34
 
42
- registerCreateCommand(this.program, this.ops, globals);
43
- registerResolveCommand(this.program, this.ops, globals);
44
- registerUpdateCommand(this.program, this.ops, globals);
45
- registerDeactivateCommand(this.program, this.ops, globals);
35
+ registerCreateCommand(this.program, this.api, globals);
36
+ registerResolveCommand(this.program, this.api, globals);
37
+ registerUpdateCommand(this.program, this.api, globals);
38
+ registerDeactivateCommand(this.program, this.api, globals);
46
39
  }
47
40
 
48
41
  /**
@@ -1,11 +1,10 @@
1
- import { IdentifierTypes } from '@did-btcr2/common';
1
+ import type { DidBtcr2Api } from '@did-btcr2/api';
2
2
  import { Command } from 'commander';
3
3
  import { CLIError } from '../error.js';
4
4
  import { formatResult } from '../output.js';
5
5
  import {
6
6
  CreateCommandOptions,
7
7
  GlobalOptions,
8
- MethodOperations,
9
8
  NetworkOption,
10
9
  SUPPORTED_NETWORKS,
11
10
  } from '../types.js';
@@ -18,7 +17,7 @@ const EXPECTED_BYTES: Record<'k' | 'x', { length: number; label: string }> = {
18
17
 
19
18
  export function registerCreateCommand(
20
19
  program : Command,
21
- ops : MethodOperations,
20
+ api : DidBtcr2Api,
22
21
  globals : () => GlobalOptions,
23
22
  ): void {
24
23
  program
@@ -37,9 +36,9 @@ export function registerCreateCommand(
37
36
  )
38
37
  .action(async (options: { type: string; network: string; bytes: string }) => {
39
38
  const parsed = validateCreateOptions(options);
40
- const idType = parsed.type === 'k' ? IdentifierTypes.KEY : IdentifierTypes.EXTERNAL;
39
+ const type = parsed.type === 'k' ? 'deterministic' : 'external';
41
40
  const genesisBytes = Buffer.from(parsed.bytes, 'hex');
42
- const data = ops.create(genesisBytes, { idType, network: parsed.network });
41
+ const data = api.createDid(type, genesisBytes, { network: parsed.network });
43
42
  const result = { action: 'create' as const, data };
44
43
  console.log(formatResult(result, globals()));
45
44
  });
@@ -1,14 +1,15 @@
1
+ import type { DidBtcr2Api } from '@did-btcr2/api';
1
2
  import { Command } from 'commander';
2
3
  import { CLIError } from '../error.js';
3
4
  import { formatResult } from '../output.js';
4
- import { GlobalOptions, MethodOperations, UpdateCommandOptions } from '../types.js';
5
+ import { GlobalOptions, UpdateCommandOptions } from '../types.js';
5
6
 
6
7
  /** The JSON Patch that marks a DID document as permanently deactivated. */
7
8
  const DEACTIVATION_PATCH = [{ op: 'add' as const, path: '/deactivated', value: true }];
8
9
 
9
10
  export function registerDeactivateCommand(
10
11
  program : Command,
11
- ops : MethodOperations,
12
+ api : DidBtcr2Api,
12
13
  globals : () => GlobalOptions,
13
14
  ): void {
14
15
  program
@@ -46,7 +47,7 @@ export function registerDeactivateCommand(
46
47
  verificationMethodId : options.verificationMethodId,
47
48
  beaconId : options.beaconId as UpdateCommandOptions['beaconId'],
48
49
  };
49
- const data = await ops.update(parsed);
50
+ const data = await api.btcr2.update(parsed);
50
51
  const result = { action: 'deactivate' as const, data };
51
52
  console.log(formatResult(result, globals()));
52
53
  });
@@ -1,13 +1,14 @@
1
- import { Identifier } from '@did-btcr2/method';
1
+ import type { DidBtcr2Api } from '@did-btcr2/api';
2
+ import { Identifier } from '@did-btcr2/api';
2
3
  import { Command } from 'commander';
3
4
  import { readFile } from 'node:fs/promises';
4
5
  import { CLIError } from '../error.js';
5
6
  import { formatResult } from '../output.js';
6
- import { GlobalOptions, MethodOperations, ResolveCommandOptions } from '../types.js';
7
+ import { GlobalOptions, ResolveCommandOptions } from '../types.js';
7
8
 
8
9
  export function registerResolveCommand(
9
10
  program : Command,
10
- ops : MethodOperations,
11
+ api : DidBtcr2Api,
11
12
  globals : () => GlobalOptions,
12
13
  ): void {
13
14
  program
@@ -23,7 +24,7 @@ export function registerResolveCommand(
23
24
  resolutionOptionsPath?: string;
24
25
  }) => {
25
26
  const parsed = await validateResolveOptions(options);
26
- const data = await ops.resolve(parsed.identifier, parsed.options);
27
+ const data = await api.resolveDid(parsed.identifier, parsed.options);
27
28
  const result = { action: 'resolve' as const, data };
28
29
  console.log(formatResult(result, globals()));
29
30
  });
@@ -34,49 +35,24 @@ async function validateResolveOptions(options: {
34
35
  resolutionOptions?: string;
35
36
  resolutionOptionsPath?: string;
36
37
  }): Promise<ResolveCommandOptions> {
37
- validateIdentifier(options.identifier, options);
38
- const resolutionOptions = await parseResolutionOptions(options);
39
- return {
40
- identifier : options.identifier,
41
- ...(resolutionOptions && { options: resolutionOptions }),
42
- };
43
- }
38
+ // Validate identifier format early
39
+ Identifier.decode(options.identifier);
44
40
 
45
- function validateIdentifier(identifier: string, data: Record<string, any>): void {
46
- try {
47
- Identifier.decode(identifier);
48
- } catch {
49
- throw new CLIError(
50
- 'Invalid identifier. Must be a valid did:btcr2 identifier.',
51
- 'INVALID_ARGUMENT_ERROR',
52
- data
53
- );
54
- }
55
- }
56
-
57
- function parseJson<T>(value: string, errorMessage: string, data: Record<string, any>): T {
58
- try {
59
- return JSON.parse(value) as T;
60
- } catch {
61
- throw new CLIError(errorMessage, 'INVALID_ARGUMENT_ERROR', data);
62
- }
63
- }
64
-
65
- async function parseResolutionOptions(options: {
66
- resolutionOptions?: string;
67
- resolutionOptionsPath?: string;
68
- }): Promise<any> {
41
+ let resolutionOptions = undefined;
69
42
  if (options.resolutionOptions) {
70
- return parseJson(
71
- options.resolutionOptions,
72
- 'Invalid resolution options. Must be a valid JSON string.',
73
- options
74
- );
75
- }
76
- if (options.resolutionOptionsPath) {
77
43
  try {
78
- const data = await readFile(options.resolutionOptionsPath, 'utf-8');
79
- return JSON.parse(data);
44
+ resolutionOptions = JSON.parse(options.resolutionOptions);
45
+ } catch {
46
+ throw new CLIError(
47
+ 'Invalid resolution options. Must be a valid JSON string.',
48
+ 'INVALID_ARGUMENT_ERROR',
49
+ options
50
+ );
51
+ }
52
+ } else if (options.resolutionOptionsPath) {
53
+ try {
54
+ const content = await readFile(options.resolutionOptionsPath, 'utf-8');
55
+ resolutionOptions = JSON.parse(content);
80
56
  } catch {
81
57
  throw new CLIError(
82
58
  'Invalid resolution options path. Must be a valid path to a JSON file.',
@@ -85,5 +61,5 @@ async function parseResolutionOptions(options: {
85
61
  );
86
62
  }
87
63
  }
88
- return undefined;
64
+ return { identifier: options.identifier, options: resolutionOptions };
89
65
  }
@@ -1,11 +1,12 @@
1
+ import type { DidBtcr2Api } from '@did-btcr2/api';
1
2
  import { Command } from 'commander';
2
3
  import { CLIError } from '../error.js';
3
4
  import { formatResult } from '../output.js';
4
- import { GlobalOptions, MethodOperations, UpdateCommandOptions } from '../types.js';
5
+ import { GlobalOptions, UpdateCommandOptions } from '../types.js';
5
6
 
6
7
  export function registerUpdateCommand(
7
8
  program : Command,
8
- ops : MethodOperations,
9
+ api : DidBtcr2Api,
9
10
  globals : () => GlobalOptions,
10
11
  ): void {
11
12
  program
@@ -48,7 +49,7 @@ export function registerUpdateCommand(
48
49
  verificationMethodId : options.verificationMethodId,
49
50
  beaconId : options.beaconId as UpdateCommandOptions['beaconId'],
50
51
  };
51
- const data = await ops.update(parsed);
52
+ const data = await api.btcr2.update(parsed);
52
53
  const result = { action: 'update' as const, data };
53
54
  console.log(formatResult(result, globals()));
54
55
  });
package/src/types.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { PatchOperation } from '@did-btcr2/common';
2
- import { SignedBTCR2Update } from '@did-btcr2/cryptosuite';
3
- import { Btcr2DidDocument, DidCreateOptions, ResolutionOptions } from '@did-btcr2/method';
4
- import { DidResolutionResult } from '@web5/dids';
1
+ import type { PatchOperation } from '@did-btcr2/common';
2
+ import type { SignedBTCR2Update } from '@did-btcr2/cryptosuite';
3
+ import type { Btcr2DidDocument, ResolutionOptions } from '@did-btcr2/method';
4
+ import type { DidResolutionResult } from '@web5/dids';
5
5
 
6
6
  export type NetworkOption = 'bitcoin' | 'testnet3' | 'testnet4' | 'signet' | 'mutinynet' | 'regtest';
7
7
  export type OutputFormat = 'json' | 'text';
@@ -10,25 +10,6 @@ export const SUPPORTED_NETWORKS: NetworkOption[] = [
10
10
  'bitcoin', 'testnet3', 'testnet4', 'signet', 'mutinynet', 'regtest'
11
11
  ];
12
12
 
13
- /** Dependency-injection interface for the DID method operations the CLI calls. */
14
- export interface MethodOperations {
15
- create(
16
- genesisBytes: Uint8Array,
17
- options: DidCreateOptions
18
- ): string;
19
- resolve(
20
- identifier: string,
21
- options?: ResolutionOptions
22
- ): Promise<DidResolutionResult>;
23
- update(params: {
24
- sourceDocument : Btcr2DidDocument;
25
- patches : PatchOperation[];
26
- sourceVersionId : number;
27
- verificationMethodId : string;
28
- beaconId : string;
29
- }): Promise<SignedBTCR2Update>;
30
- }
31
-
32
13
  export interface CreateCommandOptions {
33
14
  type : 'k' | 'x';
34
15
  bytes : string;
@@ -1,20 +0,0 @@
1
- import { Command } from 'commander';
2
- import { MethodOperations } from './types.js';
3
- /**
4
- * CLI tool for the did:btcr2 method.
5
- */
6
- export declare class DidBtcr2Cli {
7
- readonly program: Command;
8
- private readonly ops;
9
- /**
10
- * Initializes the CLI with optional custom MethodOperations.
11
- * @param {MethodOperations} ops - Custom operations for create, resolve, and update.
12
- */
13
- constructor(ops?: MethodOperations);
14
- /**
15
- * Runs the CLI with the provided argv or process.argv.
16
- * @param {string[]} [argv] - Optional array of command-line arguments.
17
- * @returns {Promise<void>} - Resolves when execution is complete.
18
- */
19
- run(argv?: string[]): Promise<void>;
20
- }
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- import { GlobalOptions, MethodOperations } from '../types.js';
3
- export declare function registerCreateCommand(program: Command, ops: MethodOperations, globals: () => GlobalOptions): void;
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- import { GlobalOptions, MethodOperations } from '../types.js';
3
- export declare function registerDeactivateCommand(program: Command, ops: MethodOperations, globals: () => GlobalOptions): void;
@@ -1,4 +0,0 @@
1
- export { registerCreateCommand } from './create.js';
2
- export { registerResolveCommand } from './resolve.js';
3
- export { registerUpdateCommand } from './update.js';
4
- export { registerDeactivateCommand } from './deactivate.js';
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- import { GlobalOptions, MethodOperations } from '../types.js';
3
- export declare function registerResolveCommand(program: Command, ops: MethodOperations, globals: () => GlobalOptions): void;
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- import { GlobalOptions, MethodOperations } from '../types.js';
3
- export declare function registerUpdateCommand(program: Command, ops: MethodOperations, globals: () => GlobalOptions): void;
@@ -1,7 +0,0 @@
1
- import { DidMethodError } from '@did-btcr2/common';
2
- /**
3
- * Custom CLI Error class extending DidMethodError.
4
- */
5
- export declare class CLIError extends DidMethodError {
6
- constructor(message: string, type?: string, data?: Record<string, any>);
7
- }
@@ -1,6 +0,0 @@
1
- export * from './cli.js';
2
- export * from './commands/index.js';
3
- export * from './error.js';
4
- export * from './output.js';
5
- export * from './types.js';
6
- export * from './version.js';
@@ -1,10 +0,0 @@
1
- import { CommandResult, GlobalOptions } from './types.js';
2
- /**
3
- * Formats a CommandResult for console output.
4
- * In 'json' mode, the full result is serialized.
5
- * In 'text' mode, only the relevant payload is printed.
6
- * @param {CommandResult} result - The result to format.
7
- * @param {GlobalOptions} options - The global options to determine output format.
8
- * @returns {string} - The formatted output string.
9
- */
10
- export declare function formatResult(result: CommandResult, options: GlobalOptions): string;
@@ -1,53 +0,0 @@
1
- import { PatchOperation } from '@did-btcr2/common';
2
- import { SignedBTCR2Update } from '@did-btcr2/cryptosuite';
3
- import { Btcr2DidDocument, DidCreateOptions, ResolutionOptions } from '@did-btcr2/method';
4
- import { DidResolutionResult } from '@web5/dids';
5
- export type NetworkOption = 'bitcoin' | 'testnet3' | 'testnet4' | 'signet' | 'mutinynet' | 'regtest';
6
- export type OutputFormat = 'json' | 'text';
7
- export declare const SUPPORTED_NETWORKS: NetworkOption[];
8
- /** Dependency-injection interface for the DID method operations the CLI calls. */
9
- export interface MethodOperations {
10
- create(genesisBytes: Uint8Array, options: DidCreateOptions): string;
11
- resolve(identifier: string, options?: ResolutionOptions): Promise<DidResolutionResult>;
12
- update(params: {
13
- sourceDocument: Btcr2DidDocument;
14
- patches: PatchOperation[];
15
- sourceVersionId: number;
16
- verificationMethodId: string;
17
- beaconId: string;
18
- }): Promise<SignedBTCR2Update>;
19
- }
20
- export interface CreateCommandOptions {
21
- type: 'k' | 'x';
22
- bytes: string;
23
- network: NetworkOption;
24
- }
25
- export interface ResolveCommandOptions {
26
- identifier: string;
27
- options?: ResolutionOptions;
28
- }
29
- export interface UpdateCommandOptions {
30
- sourceDocument: Btcr2DidDocument;
31
- patches: PatchOperation[];
32
- sourceVersionId: number;
33
- verificationMethodId: string;
34
- beaconId: string;
35
- }
36
- export type CommandResult = {
37
- action: 'create';
38
- data: string;
39
- } | {
40
- action: 'resolve';
41
- data: DidResolutionResult;
42
- } | {
43
- action: 'update';
44
- data: SignedBTCR2Update;
45
- } | {
46
- action: 'deactivate';
47
- data: SignedBTCR2Update;
48
- };
49
- export interface GlobalOptions {
50
- output: OutputFormat;
51
- verbose: boolean;
52
- quiet: boolean;
53
- }
@@ -1 +0,0 @@
1
- export declare const VERSION: string;