@did-btcr2/cli 0.23.0 → 0.23.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cjs/index.js CHANGED
@@ -3338,30 +3338,35 @@ function registerProfileCommand(program, globals) {
3338
3338
  }
3339
3339
 
3340
3340
  // src/commands/completion.ts
3341
- var COMMANDS = "create resolve read update deactivate delete identifier genesis key config profile completion";
3341
+ var HELP_COMMAND = "help";
3342
3342
  function registerCompletionCommand(program, _globals) {
3343
3343
  program.command("completion [shell]").description("Print a shell completion script (bash, zsh, or fish) to stdout.").action((shell = "bash") => {
3344
- console.log(completionScript(shell));
3344
+ console.log(completionScript(shell, completionWords(program)));
3345
3345
  });
3346
3346
  }
3347
- function completionScript(shell) {
3347
+ function completionWords(program) {
3348
+ const words = program.commands.flatMap((command) => [command.name(), ...command.aliases()]);
3349
+ return [...words, HELP_COMMAND];
3350
+ }
3351
+ function completionScript(shell, words) {
3352
+ const list = words.join(" ");
3348
3353
  switch (shell) {
3349
3354
  case "bash":
3350
3355
  return [
3351
3356
  '# btcr2 bash completion. Install with: eval "$(btcr2 completion bash)"',
3352
- '_btcr2() { COMPREPLY=( $(compgen -W "' + COMMANDS + '" -- "${COMP_WORDS[COMP_CWORD]}") ); }',
3357
+ '_btcr2() { COMPREPLY=( $(compgen -W "' + list + '" -- "${COMP_WORDS[COMP_CWORD]}") ); }',
3353
3358
  "complete -F _btcr2 btcr2"
3354
3359
  ].join("\n");
3355
3360
  case "zsh":
3356
3361
  return [
3357
3362
  '# btcr2 zsh completion. Install with: eval "$(btcr2 completion zsh)"',
3358
- "_btcr2() { compadd " + COMMANDS + " }",
3363
+ "_btcr2() { compadd " + list + " }",
3359
3364
  "compdef _btcr2 btcr2"
3360
3365
  ].join("\n");
3361
3366
  case "fish":
3362
3367
  return [
3363
3368
  "# btcr2 fish completion. Save to ~/.config/fish/completions/btcr2.fish",
3364
- 'complete -c btcr2 -f -a "' + COMMANDS + '"'
3369
+ 'complete -c btcr2 -f -a "' + list + '"'
3365
3370
  ].join("\n");
3366
3371
  default:
3367
3372
  throw new CLIError(`Unsupported shell "${shell}". Use bash, zsh, or fish.`, "INVALID_ARGUMENT_ERROR", { shell });
@@ -1,33 +1,46 @@
1
1
  import { CLIError } from '../error.js';
2
- const COMMANDS = 'create resolve read update deactivate delete identifier genesis key config profile completion';
2
+ /**
3
+ * The name of the built-in help command of commander. Commander creates that
4
+ * command at parse time, so `program.commands` does not list it.
5
+ */
6
+ const HELP_COMMAND = 'help';
3
7
  /** Registers the `completion` command, which prints a shell completion script to stdout. */
4
8
  export function registerCompletionCommand(program, _globals) {
5
9
  program
6
10
  .command('completion [shell]')
7
11
  .description('Print a shell completion script (bash, zsh, or fish) to stdout.')
8
12
  .action((shell = 'bash') => {
9
- console.log(completionScript(shell));
13
+ console.log(completionScript(shell, completionWords(program)));
10
14
  });
11
15
  }
12
- /** Returns a completion script for the given shell. */
13
- function completionScript(shell) {
16
+ /**
17
+ * Returns the completion word list: the name and the aliases of each registered
18
+ * top-level command, in registration order, then the built-in help command.
19
+ */
20
+ function completionWords(program) {
21
+ const words = program.commands.flatMap((command) => [command.name(), ...command.aliases()]);
22
+ return [...words, HELP_COMMAND];
23
+ }
24
+ /** Returns a completion script for the given shell and word list. */
25
+ function completionScript(shell, words) {
26
+ const list = words.join(' ');
14
27
  switch (shell) {
15
28
  case 'bash':
16
29
  return [
17
30
  '# btcr2 bash completion. Install with: eval "$(btcr2 completion bash)"',
18
- '_btcr2() { COMPREPLY=( $(compgen -W "' + COMMANDS + '" -- "${COMP_WORDS[COMP_CWORD]}") ); }',
31
+ '_btcr2() { COMPREPLY=( $(compgen -W "' + list + '" -- "${COMP_WORDS[COMP_CWORD]}") ); }',
19
32
  'complete -F _btcr2 btcr2',
20
33
  ].join('\n');
21
34
  case 'zsh':
22
35
  return [
23
36
  '# btcr2 zsh completion. Install with: eval "$(btcr2 completion zsh)"',
24
- '_btcr2() { compadd ' + COMMANDS + ' }',
37
+ '_btcr2() { compadd ' + list + ' }',
25
38
  'compdef _btcr2 btcr2',
26
39
  ].join('\n');
27
40
  case 'fish':
28
41
  return [
29
42
  '# btcr2 fish completion. Save to ~/.config/fish/completions/btcr2.fish',
30
- 'complete -c btcr2 -f -a "' + COMMANDS + '"',
43
+ 'complete -c btcr2 -f -a "' + list + '"',
31
44
  ].join('\n');
32
45
  default:
33
46
  throw new CLIError(`Unsupported shell "${shell}". Use bash, zsh, or fish.`, 'INVALID_ARGUMENT_ERROR', { shell });
@@ -1 +1 @@
1
- {"version":3,"file":"completion.js","sourceRoot":"","sources":["../../../../src/commands/completion.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,MAAM,QAAQ,GAAG,+FAA+F,CAAC;AAEjH,4FAA4F;AAC5F,MAAM,UAAU,yBAAyB,CAAC,OAAgB,EAAE,QAA6B;IACvF,OAAO;SACJ,OAAO,CAAC,oBAAoB,CAAC;SAC7B,WAAW,CAAC,iEAAiE,CAAC;SAC9E,MAAM,CAAC,CAAC,KAAK,GAAG,MAAM,EAAE,EAAE;QACzB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;AACP,CAAC;AAED,uDAAuD;AACvD,SAAS,gBAAgB,CAAC,KAAa;IACrC,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,MAAM;YACT,OAAO;gBACL,wEAAwE;gBACxE,uCAAuC,GAAG,QAAQ,GAAG,wCAAwC;gBAC7F,0BAA0B;aAC3B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,KAAK,KAAK;YACR,OAAO;gBACL,sEAAsE;gBACtE,qBAAqB,GAAG,QAAQ,GAAG,IAAI;gBACvC,sBAAsB;aACvB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,KAAK,MAAM;YACT,OAAO;gBACL,wEAAwE;gBACxE,2BAA2B,GAAG,QAAQ,GAAG,GAAG;aAC7C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf;YACE,MAAM,IAAI,QAAQ,CAAC,sBAAsB,KAAK,4BAA4B,EAAE,wBAAwB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACrH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"completion.js","sourceRoot":"","sources":["../../../../src/commands/completion.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC;;;GAGG;AACH,MAAM,YAAY,GAAG,MAAM,CAAC;AAE5B,4FAA4F;AAC5F,MAAM,UAAU,yBAAyB,CAAC,OAAgB,EAAE,QAA6B;IACvF,OAAO;SACJ,OAAO,CAAC,oBAAoB,CAAC;SAC7B,WAAW,CAAC,iEAAiE,CAAC;SAC9E,MAAM,CAAC,CAAC,KAAK,GAAG,MAAM,EAAE,EAAE;QACzB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,OAAgB;IACvC,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC5F,OAAO,CAAC,GAAG,KAAK,EAAE,YAAY,CAAC,CAAC;AAClC,CAAC;AAED,qEAAqE;AACrE,SAAS,gBAAgB,CAAC,KAAa,EAAE,KAAe;IACtD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,MAAM;YACT,OAAO;gBACL,wEAAwE;gBACxE,uCAAuC,GAAG,IAAI,GAAG,wCAAwC;gBACzF,0BAA0B;aAC3B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,KAAK,KAAK;YACR,OAAO;gBACL,sEAAsE;gBACtE,qBAAqB,GAAG,IAAI,GAAG,IAAI;gBACnC,sBAAsB;aACvB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,KAAK,MAAM;YACT,OAAO;gBACL,wEAAwE;gBACxE,2BAA2B,GAAG,IAAI,GAAG,GAAG;aACzC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf;YACE,MAAM,IAAI,QAAQ,CAAC,sBAAsB,KAAK,4BAA4B,EAAE,wBAAwB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACrH,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../../../src/commands/completion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,4FAA4F;AAC5F,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,GAAG,IAAI,CAO/F"}
1
+ {"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../../../src/commands/completion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAQjD,4FAA4F;AAC5F,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,GAAG,IAAI,CAO/F"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@did-btcr2/cli",
3
- "version": "0.23.0",
3
+ "version": "0.23.1",
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",
@@ -61,11 +61,11 @@
61
61
  "@scure/base": "^1.2.6",
62
62
  "@web5/dids": "^1.2.0",
63
63
  "commander": "^13.1.0",
64
+ "@did-btcr2/key-manager": "^0.7.0",
64
65
  "@did-btcr2/api": "^0.23.0",
65
66
  "@did-btcr2/common": "^9.4.0",
66
- "@did-btcr2/method": "^0.60.0",
67
- "@did-btcr2/key-manager": "^0.7.0",
68
- "@did-btcr2/keypair": "^0.13.1"
67
+ "@did-btcr2/keypair": "^0.13.1",
68
+ "@did-btcr2/method": "^0.60.0"
69
69
  },
70
70
  "devDependencies": {
71
71
  "@eslint/js": "^9.21.0",
@@ -2,7 +2,11 @@ import type { Command } from 'commander';
2
2
  import { CLIError } from '../error.js';
3
3
  import type { GlobalOptions } from '../types.js';
4
4
 
5
- const COMMANDS = 'create resolve read update deactivate delete identifier genesis key config profile completion';
5
+ /**
6
+ * The name of the built-in help command of commander. Commander creates that
7
+ * command at parse time, so `program.commands` does not list it.
8
+ */
9
+ const HELP_COMMAND = 'help';
6
10
 
7
11
  /** Registers the `completion` command, which prints a shell completion script to stdout. */
8
12
  export function registerCompletionCommand(program: Command, _globals: () => GlobalOptions): void {
@@ -10,29 +14,39 @@ export function registerCompletionCommand(program: Command, _globals: () => Glob
10
14
  .command('completion [shell]')
11
15
  .description('Print a shell completion script (bash, zsh, or fish) to stdout.')
12
16
  .action((shell = 'bash') => {
13
- console.log(completionScript(shell));
17
+ console.log(completionScript(shell, completionWords(program)));
14
18
  });
15
19
  }
16
20
 
17
- /** Returns a completion script for the given shell. */
18
- function completionScript(shell: string): string {
21
+ /**
22
+ * Returns the completion word list: the name and the aliases of each registered
23
+ * top-level command, in registration order, then the built-in help command.
24
+ */
25
+ function completionWords(program: Command): string[] {
26
+ const words = program.commands.flatMap((command) => [command.name(), ...command.aliases()]);
27
+ return [...words, HELP_COMMAND];
28
+ }
29
+
30
+ /** Returns a completion script for the given shell and word list. */
31
+ function completionScript(shell: string, words: string[]): string {
32
+ const list = words.join(' ');
19
33
  switch (shell) {
20
34
  case 'bash':
21
35
  return [
22
36
  '# btcr2 bash completion. Install with: eval "$(btcr2 completion bash)"',
23
- '_btcr2() { COMPREPLY=( $(compgen -W "' + COMMANDS + '" -- "${COMP_WORDS[COMP_CWORD]}") ); }',
37
+ '_btcr2() { COMPREPLY=( $(compgen -W "' + list + '" -- "${COMP_WORDS[COMP_CWORD]}") ); }',
24
38
  'complete -F _btcr2 btcr2',
25
39
  ].join('\n');
26
40
  case 'zsh':
27
41
  return [
28
42
  '# btcr2 zsh completion. Install with: eval "$(btcr2 completion zsh)"',
29
- '_btcr2() { compadd ' + COMMANDS + ' }',
43
+ '_btcr2() { compadd ' + list + ' }',
30
44
  'compdef _btcr2 btcr2',
31
45
  ].join('\n');
32
46
  case 'fish':
33
47
  return [
34
48
  '# btcr2 fish completion. Save to ~/.config/fish/completions/btcr2.fish',
35
- 'complete -c btcr2 -f -a "' + COMMANDS + '"',
49
+ 'complete -c btcr2 -f -a "' + list + '"',
36
50
  ].join('\n');
37
51
  default:
38
52
  throw new CLIError(`Unsupported shell "${shell}". Use bash, zsh, or fish.`, 'INVALID_ARGUMENT_ERROR', { shell });