poe-code 4.0.65 → 4.0.66

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.
@@ -16,11 +16,24 @@ function collectNodes(command, path = []) {
16
16
  const options = command.options
17
17
  .filter((option) => !option.hidden && option.long !== undefined)
18
18
  .map((option) => ({ flag: option.long, description: option.description }));
19
- if (children.length === 0 && options.length === 0) {
19
+ const optionsByFlag = new Map();
20
+ for (let current = command; current; current = current.parent) {
21
+ for (const option of current.options) {
22
+ for (const flag of [option.long, option.short]) {
23
+ if (flag !== undefined && !optionsByFlag.has(flag)) {
24
+ optionsByFlag.set(flag, option);
25
+ }
26
+ }
27
+ }
28
+ }
29
+ const requiredValueFlags = [...optionsByFlag]
30
+ .filter(([, option]) => option.required && !option.variadic)
31
+ .map(([flag]) => flag);
32
+ if (children.length === 0 && options.length === 0 && requiredValueFlags.length === 0) {
20
33
  return [];
21
34
  }
22
35
  return [
23
- { path, children, options },
36
+ { path, children, options, requiredValueFlags },
24
37
  ...command.commands
25
38
  .filter(isVisible)
26
39
  .flatMap((child) => [child.name(), ...child.aliases()].flatMap((name) => collectNodes(child, [...path, name])))
@@ -32,20 +45,34 @@ function completionWords(node) {
32
45
  ...node.options.map((option) => option.flag)
33
46
  ];
34
47
  }
48
+ function renderValueFlagCases(nodes) {
49
+ return nodes
50
+ .filter((node) => node.requiredValueFlags.length > 0)
51
+ .map((node) => ` ${node.requiredValueFlags.map((flag) => `"${node.path.join(" ")}:${flag}"`).join("|")}) expecting_value=1; continue;;`);
52
+ }
35
53
  function renderBash(nodes) {
36
54
  const cases = nodes.map((node) => ` "${node.path.join(" ")}") completions="${completionWords(node).join(" ")}";;`);
37
55
  return [
38
56
  "# poe-code bash completion. Install with: eval \"$(poe-code completion bash)\"",
39
57
  "_poe_code_complete() {",
40
- " local current key word index",
58
+ " local current key word index expecting_value",
41
59
  " COMPREPLY=()",
42
60
  ' current="${COMP_WORDS[COMP_CWORD]}"',
43
61
  ' key=""',
62
+ " expecting_value=0",
44
63
  " for (( index=1; index < COMP_CWORD; index++ )); do",
45
64
  ' word="${COMP_WORDS[index]}"',
65
+ " if (( expecting_value )); then",
66
+ " expecting_value=0",
67
+ " continue",
68
+ " fi",
69
+ ' case "$key:$word" in',
70
+ ...renderValueFlagCases(nodes),
71
+ " esac",
46
72
  ' [[ "$word" == -* ]] && continue',
47
73
  ' key="${key:+$key }$word"',
48
74
  " done",
75
+ " (( expecting_value )) && return",
49
76
  " local completions",
50
77
  ' case "$key" in',
51
78
  ...cases,
@@ -63,12 +90,22 @@ function renderZsh(nodes) {
63
90
  "#compdef poe-code poe",
64
91
  '# poe-code zsh completion. Install with: eval "$(poe-code completion zsh)"',
65
92
  "_poe_code() {",
66
- " local key word",
93
+ " local key word index expecting_value",
67
94
  ' key=""',
68
- " for word in ${words[2,$((CURRENT - 1))]}; do",
69
- " [[ $word == -* ]] && continue",
95
+ " expecting_value=0",
96
+ " for (( index=2; index < CURRENT; index++ )); do",
97
+ ' word="${words[index]}"',
98
+ " if (( expecting_value )); then",
99
+ " expecting_value=0",
100
+ " continue",
101
+ " fi",
102
+ ' case "$key:$word" in',
103
+ ...renderValueFlagCases(nodes),
104
+ " esac",
105
+ ' [[ "$word" == -* ]] && continue',
70
106
  ' key="${key:+$key }$word"',
71
107
  " done",
108
+ " (( expecting_value )) && return",
72
109
  " local -a completions",
73
110
  ' case "$key" in',
74
111
  ...cases,
@@ -1 +1 @@
1
- {"version":3,"file":"completion.js","sourceRoot":"","sources":["../../../src/cli/commands/completion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"completion.js","sourceRoot":"","sources":["../../../src/cli/commands/completion.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -150684,11 +150684,22 @@ function collectNodes(command, path189 = []) {
150684
150684
  description: child.description()
150685
150685
  })).sort((left, right) => left.name.localeCompare(right.name));
150686
150686
  const options = command.options.filter((option) => !option.hidden && option.long !== void 0).map((option) => ({ flag: option.long, description: option.description }));
150687
- if (children2.length === 0 && options.length === 0) {
150687
+ const optionsByFlag = /* @__PURE__ */ new Map();
150688
+ for (let current = command; current; current = current.parent) {
150689
+ for (const option of current.options) {
150690
+ for (const flag of [option.long, option.short]) {
150691
+ if (flag !== void 0 && !optionsByFlag.has(flag)) {
150692
+ optionsByFlag.set(flag, option);
150693
+ }
150694
+ }
150695
+ }
150696
+ }
150697
+ const requiredValueFlags = [...optionsByFlag].filter(([, option]) => option.required && !option.variadic).map(([flag]) => flag);
150698
+ if (children2.length === 0 && options.length === 0 && requiredValueFlags.length === 0) {
150688
150699
  return [];
150689
150700
  }
150690
150701
  return [
150691
- { path: path189, children: children2, options },
150702
+ { path: path189, children: children2, options, requiredValueFlags },
150692
150703
  ...command.commands.filter(isVisible).flatMap(
150693
150704
  (child) => [child.name(), ...child.aliases()].flatMap(
150694
150705
  (name) => collectNodes(child, [...path189, name])
@@ -150702,6 +150713,11 @@ function completionWords(node) {
150702
150713
  ...node.options.map((option) => option.flag)
150703
150714
  ];
150704
150715
  }
150716
+ function renderValueFlagCases(nodes) {
150717
+ return nodes.filter((node) => node.requiredValueFlags.length > 0).map(
150718
+ (node) => ` ${node.requiredValueFlags.map((flag) => `"${node.path.join(" ")}:${flag}"`).join("|")}) expecting_value=1; continue;;`
150719
+ );
150720
+ }
150705
150721
  function renderBash(nodes) {
150706
150722
  const cases = nodes.map(
150707
150723
  (node) => ` "${node.path.join(" ")}") completions="${completionWords(node).join(" ")}";;`
@@ -150709,15 +150725,24 @@ function renderBash(nodes) {
150709
150725
  return [
150710
150726
  '# poe-code bash completion. Install with: eval "$(poe-code completion bash)"',
150711
150727
  "_poe_code_complete() {",
150712
- " local current key word index",
150728
+ " local current key word index expecting_value",
150713
150729
  " COMPREPLY=()",
150714
150730
  ' current="${COMP_WORDS[COMP_CWORD]}"',
150715
150731
  ' key=""',
150732
+ " expecting_value=0",
150716
150733
  " for (( index=1; index < COMP_CWORD; index++ )); do",
150717
150734
  ' word="${COMP_WORDS[index]}"',
150735
+ " if (( expecting_value )); then",
150736
+ " expecting_value=0",
150737
+ " continue",
150738
+ " fi",
150739
+ ' case "$key:$word" in',
150740
+ ...renderValueFlagCases(nodes),
150741
+ " esac",
150718
150742
  ' [[ "$word" == -* ]] && continue',
150719
150743
  ' key="${key:+$key }$word"',
150720
150744
  " done",
150745
+ " (( expecting_value )) && return",
150721
150746
  " local completions",
150722
150747
  ' case "$key" in',
150723
150748
  ...cases,
@@ -150737,12 +150762,22 @@ function renderZsh(nodes) {
150737
150762
  "#compdef poe-code poe",
150738
150763
  '# poe-code zsh completion. Install with: eval "$(poe-code completion zsh)"',
150739
150764
  "_poe_code() {",
150740
- " local key word",
150765
+ " local key word index expecting_value",
150741
150766
  ' key=""',
150742
- " for word in ${words[2,$((CURRENT - 1))]}; do",
150743
- " [[ $word == -* ]] && continue",
150767
+ " expecting_value=0",
150768
+ " for (( index=2; index < CURRENT; index++ )); do",
150769
+ ' word="${words[index]}"',
150770
+ " if (( expecting_value )); then",
150771
+ " expecting_value=0",
150772
+ " continue",
150773
+ " fi",
150774
+ ' case "$key:$word" in',
150775
+ ...renderValueFlagCases(nodes),
150776
+ " esac",
150777
+ ' [[ "$word" == -* ]] && continue',
150744
150778
  ' key="${key:+$key }$word"',
150745
150779
  " done",
150780
+ " (( expecting_value )) && return",
150746
150781
  " local -a completions",
150747
150782
  ' case "$key" in',
150748
150783
  ...cases,
@@ -152235,7 +152270,7 @@ var init_package2 = __esm({
152235
152270
  "package.json"() {
152236
152271
  package_default2 = {
152237
152272
  name: "poe-code",
152238
- version: "4.0.65",
152273
+ version: "4.0.66",
152239
152274
  description: "CLI tool to configure Poe API for developer workflows.",
152240
152275
  license: "MIT",
152241
152276
  type: "module",