@camunda8/cli 2.8.0-alpha.8 → 3.0.0-alpha.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 (91) hide show
  1. package/EXAMPLES.md +22 -5
  2. package/PLUGIN-HELP.md +26 -0
  3. package/README.md +62 -4
  4. package/dist/command-dispatch.d.ts.map +1 -1
  5. package/dist/command-dispatch.js +2 -1
  6. package/dist/command-dispatch.js.map +1 -1
  7. package/dist/command-registry.d.ts +36 -0
  8. package/dist/command-registry.d.ts.map +1 -1
  9. package/dist/command-registry.js +40 -1
  10. package/dist/command-registry.js.map +1 -1
  11. package/dist/commands/plugins.d.ts +21 -0
  12. package/dist/commands/plugins.d.ts.map +1 -1
  13. package/dist/commands/plugins.js +74 -1
  14. package/dist/commands/plugins.js.map +1 -1
  15. package/dist/commands/resource-extensions.d.ts +12 -0
  16. package/dist/commands/resource-extensions.d.ts.map +1 -1
  17. package/dist/commands/resource-extensions.js +13 -1
  18. package/dist/commands/resource-extensions.js.map +1 -1
  19. package/dist/commands/run.d.ts.map +1 -1
  20. package/dist/commands/run.js +5 -3
  21. package/dist/commands/run.js.map +1 -1
  22. package/dist/commands/watch.d.ts.map +1 -1
  23. package/dist/commands/watch.js +21 -12
  24. package/dist/commands/watch.js.map +1 -1
  25. package/dist/completion.d.ts.map +1 -1
  26. package/dist/completion.js +140 -13
  27. package/dist/completion.js.map +1 -1
  28. package/dist/config.d.ts.map +1 -1
  29. package/dist/config.js +19 -1
  30. package/dist/config.js.map +1 -1
  31. package/dist/default-plugins/bpmn/README.md +69 -0
  32. package/dist/default-plugins/bpmn/c8ctl-plugin.js +125 -0
  33. package/dist/default-plugins/bpmn/c8ctl-plugin.js.map +1 -0
  34. package/dist/default-plugins/bpmn/lint.js +259 -0
  35. package/dist/default-plugins/bpmn/lint.js.map +1 -0
  36. package/dist/default-plugins/bpmn/package.json +8 -0
  37. package/dist/default-plugins/cluster/package.json +1 -1
  38. package/dist/default-plugins/element-template/AGENTS.md +65 -0
  39. package/dist/default-plugins/element-template/README.md +331 -0
  40. package/dist/default-plugins/element-template/c8ctl-plugin.js +247 -0
  41. package/dist/default-plugins/element-template/c8ctl-plugin.js.map +1 -0
  42. package/dist/default-plugins/element-template/commands/apply.js +298 -0
  43. package/dist/default-plugins/element-template/commands/apply.js.map +1 -0
  44. package/dist/default-plugins/element-template/commands/get-properties.js +344 -0
  45. package/dist/default-plugins/element-template/commands/get-properties.js.map +1 -0
  46. package/dist/default-plugins/element-template/commands/get.js +107 -0
  47. package/dist/default-plugins/element-template/commands/get.js.map +1 -0
  48. package/dist/default-plugins/element-template/commands/info.js +189 -0
  49. package/dist/default-plugins/element-template/commands/info.js.map +1 -0
  50. package/dist/default-plugins/element-template/commands/search.js +101 -0
  51. package/dist/default-plugins/element-template/commands/search.js.map +1 -0
  52. package/dist/default-plugins/element-template/commands/sync.js +36 -0
  53. package/dist/default-plugins/element-template/commands/sync.js.map +1 -0
  54. package/dist/default-plugins/element-template/docs/design.md +145 -0
  55. package/dist/default-plugins/element-template/helpers.js +404 -0
  56. package/dist/default-plugins/element-template/helpers.js.map +1 -0
  57. package/dist/default-plugins/element-template/marketplace.js +396 -0
  58. package/dist/default-plugins/element-template/marketplace.js.map +1 -0
  59. package/dist/default-plugins/element-template/package.json +8 -0
  60. package/dist/default-plugins/element-template/template-ref.js +232 -0
  61. package/dist/default-plugins/element-template/template-ref.js.map +1 -0
  62. package/dist/default-plugins/element-template/vendor-src/bundle-entry.js +44 -0
  63. package/dist/default-plugins/feel/README.md +163 -0
  64. package/dist/default-plugins/feel/c8ctl-plugin.js +616 -0
  65. package/dist/default-plugins/feel/c8ctl-plugin.js.map +1 -0
  66. package/dist/default-plugins/feel/package.json +8 -0
  67. package/dist/deployments.d.ts +1 -0
  68. package/dist/deployments.d.ts.map +1 -1
  69. package/dist/deployments.js +89 -20
  70. package/dist/deployments.js.map +1 -1
  71. package/dist/help.d.ts.map +1 -1
  72. package/dist/help.js +156 -5
  73. package/dist/help.js.map +1 -1
  74. package/dist/ignore.d.ts +16 -1
  75. package/dist/ignore.d.ts.map +1 -1
  76. package/dist/ignore.js +55 -3
  77. package/dist/ignore.js.map +1 -1
  78. package/dist/index.d.ts +23 -0
  79. package/dist/index.d.ts.map +1 -1
  80. package/dist/index.js +310 -25
  81. package/dist/index.js.map +1 -1
  82. package/dist/plugin-loader.d.ts +168 -7
  83. package/dist/plugin-loader.d.ts.map +1 -1
  84. package/dist/plugin-loader.js +284 -21
  85. package/dist/plugin-loader.js.map +1 -1
  86. package/dist/runtime.d.ts +10 -0
  87. package/dist/runtime.d.ts.map +1 -1
  88. package/dist/runtime.js +6 -0
  89. package/dist/runtime.js.map +1 -1
  90. package/dist/vendor/bpmn-element-templates.cjs +59639 -0
  91. package/package.json +20 -7
package/dist/ignore.d.ts CHANGED
@@ -6,7 +6,9 @@
6
6
  * target/
7
7
  * .git/
8
8
  *
9
- * Users can override or extend via a `.c8ignore` file in the working directory.
9
+ * The `.c8ignore` file is resolved from the deploy/watch target directory
10
+ * (via `resolveIgnoreBaseDir`), falling back to `process.cwd()` when no
11
+ * target is specified. See #258.
10
12
  */
11
13
  import { type Ignore } from "ignore";
12
14
  /**
@@ -23,4 +25,17 @@ export declare function loadIgnoreRules(baseDir: string): Ignore;
23
25
  * Returns `true` when the path matches an ignore rule.
24
26
  */
25
27
  export declare function isIgnored(ig: Ignore, filePath: string, baseDir: string): boolean;
28
+ /**
29
+ * Determine the base directory for `.c8ignore` lookup from the paths the
30
+ * user passed to `deploy` or `watch`.
31
+ *
32
+ * - Single directory path → use that directory.
33
+ * - Single file path → use its parent directory.
34
+ * - Multiple paths → deepest common ancestor directory.
35
+ * - No paths → fall back to `process.cwd()`.
36
+ *
37
+ * When no target is specified the CLI defaults to `["."]`, so
38
+ * `resolve(".")` === `process.cwd()` — backward-compatible.
39
+ */
40
+ export declare function resolveIgnoreBaseDir(paths: string[]): string;
26
41
  //# sourceMappingURL=ignore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ignore.d.ts","sourceRoot":"","sources":["../src/ignore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAe,EAAE,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAM7C;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAUvD;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACxB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACb,OAAO,CAWT"}
1
+ {"version":3,"file":"ignore.d.ts","sourceRoot":"","sources":["../src/ignore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAe,EAAE,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAM7C;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAUvD;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACxB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACb,OAAO,CAWT;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAsC5D"}
package/dist/ignore.js CHANGED
@@ -6,10 +6,12 @@
6
6
  * target/
7
7
  * .git/
8
8
  *
9
- * Users can override or extend via a `.c8ignore` file in the working directory.
9
+ * The `.c8ignore` file is resolved from the deploy/watch target directory
10
+ * (via `resolveIgnoreBaseDir`), falling back to `process.cwd()` when no
11
+ * target is specified. See #258.
10
12
  */
11
- import { existsSync, readFileSync } from "node:fs";
12
- import { join, relative, sep } from "node:path";
13
+ import { existsSync, readFileSync, statSync } from "node:fs";
14
+ import { dirname, join, relative, resolve, sep } from "node:path";
13
15
  import ignore from "ignore";
14
16
  const DEFAULT_PATTERNS = ["node_modules/", "target/", ".git/"];
15
17
  const C8IGNORE_FILENAME = ".c8ignore";
@@ -46,4 +48,54 @@ export function isIgnored(ig, filePath, baseDir) {
46
48
  }
47
49
  return ig.ignores(rel);
48
50
  }
51
+ /**
52
+ * Determine the base directory for `.c8ignore` lookup from the paths the
53
+ * user passed to `deploy` or `watch`.
54
+ *
55
+ * - Single directory path → use that directory.
56
+ * - Single file path → use its parent directory.
57
+ * - Multiple paths → deepest common ancestor directory.
58
+ * - No paths → fall back to `process.cwd()`.
59
+ *
60
+ * When no target is specified the CLI defaults to `["."]`, so
61
+ * `resolve(".")` === `process.cwd()` — backward-compatible.
62
+ */
63
+ export function resolveIgnoreBaseDir(paths) {
64
+ if (paths.length === 0)
65
+ return resolve(process.cwd());
66
+ const dirs = paths.map((p) => {
67
+ const abs = resolve(p);
68
+ try {
69
+ return statSync(abs).isDirectory() ? abs : dirname(abs);
70
+ }
71
+ catch {
72
+ // Path may not exist yet; use parent directory
73
+ return dirname(abs);
74
+ }
75
+ });
76
+ if (dirs.length === 1)
77
+ return dirs[0];
78
+ // Multiple paths: find deepest common ancestor.
79
+ // On Windows, drive letters are case-insensitive (c:\ === C:\),
80
+ // so we compare segments case-insensitively on win32.
81
+ const caseFold = process.platform === "win32"
82
+ ? (s) => s.toLowerCase()
83
+ : (s) => s;
84
+ const segments = dirs.map((d) => d.split(sep));
85
+ const minLen = Math.min(...segments.map((s) => s.length));
86
+ const common = [];
87
+ for (let i = 0; i < minLen; i++) {
88
+ if (segments.every((s) => caseFold(s[i]) === caseFold(segments[0][i]))) {
89
+ common.push(segments[0][i]);
90
+ }
91
+ else {
92
+ break;
93
+ }
94
+ }
95
+ if (common.length === 0)
96
+ return resolve(process.cwd());
97
+ // Normalize filesystem root: on POSIX [''] → '/', on Windows ['C:'] → 'C:\'
98
+ const joined = common.join(sep);
99
+ return joined === "" || joined.endsWith(":") ? resolve(joined + sep) : joined;
100
+ }
49
101
  //# sourceMappingURL=ignore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ignore.js","sourceRoot":"","sources":["../src/ignore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,MAAuB,MAAM,QAAQ,CAAC;AAE7C,MAAM,gBAAgB,GAAG,CAAC,eAAe,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAE/D,MAAM,iBAAiB,GAAG,WAAW,CAAC;AAEtC;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,OAAe;IAC9C,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAE1C,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;IACxD,IAAI,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACtD,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,EAAE,CAAC;AACX,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CACxB,EAAU,EACV,QAAgB,EAChB,OAAe;IAEf,IAAI,GAAG,GAAG,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACtC,4CAA4C;IAC5C,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;QACjB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IACD,yCAAyC;IACzC,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,OAAO,KAAK,CAAC;IACd,CAAC;IACD,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"ignore.js","sourceRoot":"","sources":["../src/ignore.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -7,4 +7,27 @@
7
7
  * Resolve process definition ID from --id, --processDefinitionId, or --bpmnProcessId flag
8
8
  */
9
9
  export declare function resolveProcessDefinitionId(values: Record<string, unknown>): string | undefined;
10
+ /**
11
+ * Return the raw argv tokens that follow the verb position, where the
12
+ * verb position is found by walking from the start and skipping leading
13
+ * GLOBAL_FLAGS only (consuming the value of string-typed global flags).
14
+ * The first non-flag token — or any unknown `--*`/`-*` token — is
15
+ * treated as the verb candidate.
16
+ *
17
+ * This avoids `argv.indexOf(verb)`, which is unsafe because the verb
18
+ * string may also appear as the value of a global string flag (e.g.
19
+ * `--profile <verb>`). Returns `[]` if no verb token is found at or
20
+ * after the scan position.
21
+ */
22
+ export declare function sliceArgvAfterVerb(argv: string[], verb: string): string[];
23
+ /**
24
+ * Strip GLOBAL_FLAGS (and the value of any string-typed global flag) from
25
+ * a raw argv slice before forwarding to a passthrough plugin handler
26
+ * (#366). GLOBAL_FLAGS already affect the c8ctl runtime via their
27
+ * regular handling in `main()`; the plugin must not see them again.
28
+ *
29
+ * Conservative behaviour: an isolated `--` terminator is preserved and
30
+ * everything after it is forwarded verbatim, matching POSIX convention.
31
+ */
32
+ export declare function stripGlobalFlags(argv: string[]): string[];
10
33
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;GAGG;AA+EH;;GAEG;AACH,wBAAgB,0BAA0B,CACzC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,MAAM,GAAG,SAAS,CAMpB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;GAGG;AAmFH;;GAEG;AACH,wBAAgB,0BAA0B,CACzC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,MAAM,GAAG,SAAS,CAMpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAwDzE;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAwDzD"}
package/dist/index.js CHANGED
@@ -8,13 +8,13 @@ import { fileURLToPath } from "node:url";
8
8
  import { parseArgs } from "node:util";
9
9
  import { createClient } from "./client.js";
10
10
  import { COMMAND_DISPATCH } from "./command-dispatch.js";
11
- import { COMMAND_REGISTRY, deriveParseArgsOptions, getCommandDef, resolveAlias, } from "./command-registry.js";
11
+ import { COMMAND_REGISTRY, deriveParseArgsOptions, GLOBAL_FLAGS, getCommandDef, resolveAlias, } from "./command-registry.js";
12
12
  import { detectUnknownFlags, validateFlags } from "./command-validation.js";
13
13
  import { refreshCompletionsIfStale } from "./completion.js";
14
- import { loadSessionState, resolveTenantId } from "./config.js";
14
+ import { getUserDataDir, loadSessionState, resolveTenantId } from "./config.js";
15
15
  import { showCommandHelp, showHelp, showVerbResources, showVersion, } from "./help.js";
16
16
  import { getLogger } from "./logger.js";
17
- import { executePluginCommand, getPluginCommands, loadInstalledPlugins, } from "./plugin-loader.js";
17
+ import { executePluginCommand, getPluginCommands, getPluginVersionForCommand, isPassthroughPluginCommand, loadInstalledPlugins, } from "./plugin-loader.js";
18
18
  import { c8ctl } from "./runtime.js";
19
19
  import { printUpdateNotification, startUpdateCheck } from "./update-check.js";
20
20
  /**
@@ -67,16 +67,165 @@ export function resolveProcessDefinitionId(values) {
67
67
  str(values.processDefinitionId) ||
68
68
  str(values.bpmnProcessId));
69
69
  }
70
+ /**
71
+ * Return the raw argv tokens that follow the verb position, where the
72
+ * verb position is found by walking from the start and skipping leading
73
+ * GLOBAL_FLAGS only (consuming the value of string-typed global flags).
74
+ * The first non-flag token — or any unknown `--*`/`-*` token — is
75
+ * treated as the verb candidate.
76
+ *
77
+ * This avoids `argv.indexOf(verb)`, which is unsafe because the verb
78
+ * string may also appear as the value of a global string flag (e.g.
79
+ * `--profile <verb>`). Returns `[]` if no verb token is found at or
80
+ * after the scan position.
81
+ */
82
+ export function sliceArgvAfterVerb(argv, verb) {
83
+ const stringGlobalNames = new Set();
84
+ const stringGlobalShorts = new Set();
85
+ const booleanGlobalNames = new Set();
86
+ const booleanGlobalShorts = new Set();
87
+ for (const [name, def] of Object.entries(GLOBAL_FLAGS)) {
88
+ const short = "short" in def ? def.short : undefined;
89
+ if (def.type === "string") {
90
+ stringGlobalNames.add(name);
91
+ if (short)
92
+ stringGlobalShorts.add(short);
93
+ }
94
+ else {
95
+ booleanGlobalNames.add(name);
96
+ if (short)
97
+ booleanGlobalShorts.add(short);
98
+ }
99
+ }
100
+ let i = 0;
101
+ while (i < argv.length) {
102
+ const tok = argv[i];
103
+ if (tok === "--") {
104
+ // GNU `--` convention: end of options. The next token is the
105
+ // verb candidate. Skip the separator and continue scanning so
106
+ // `c8ctl -- <verb> <args...>` dispatches correctly with the
107
+ // full post-verb argv (rather than bailing and forwarding []).
108
+ i++;
109
+ continue;
110
+ }
111
+ if (tok.startsWith("--")) {
112
+ const eq = tok.indexOf("=");
113
+ const name = eq >= 0 ? tok.slice(2, eq) : tok.slice(2);
114
+ if (booleanGlobalNames.has(name)) {
115
+ i++;
116
+ continue;
117
+ }
118
+ if (stringGlobalNames.has(name)) {
119
+ i += eq < 0 ? 2 : 1;
120
+ continue;
121
+ }
122
+ // Unknown long flag — do not silently consume a value. Fall through
123
+ // to the verb match below (and bail if it doesn't match).
124
+ }
125
+ else if (tok.startsWith("-") && tok.length === 2) {
126
+ const short = tok.slice(1);
127
+ if (booleanGlobalShorts.has(short)) {
128
+ i++;
129
+ continue;
130
+ }
131
+ if (stringGlobalShorts.has(short)) {
132
+ i += 2;
133
+ continue;
134
+ }
135
+ }
136
+ // First token that is not a leading GLOBAL_FLAG must be the verb.
137
+ if (tok === verb)
138
+ return argv.slice(i + 1);
139
+ return [];
140
+ }
141
+ return [];
142
+ }
143
+ /**
144
+ * Strip GLOBAL_FLAGS (and the value of any string-typed global flag) from
145
+ * a raw argv slice before forwarding to a passthrough plugin handler
146
+ * (#366). GLOBAL_FLAGS already affect the c8ctl runtime via their
147
+ * regular handling in `main()`; the plugin must not see them again.
148
+ *
149
+ * Conservative behaviour: an isolated `--` terminator is preserved and
150
+ * everything after it is forwarded verbatim, matching POSIX convention.
151
+ */
152
+ export function stripGlobalFlags(argv) {
153
+ const booleanFlags = new Set();
154
+ const stringFlags = new Set();
155
+ const booleanShorts = new Set();
156
+ const stringShorts = new Set();
157
+ for (const [name, def] of Object.entries(GLOBAL_FLAGS)) {
158
+ const short = "short" in def ? def.short : undefined;
159
+ if (def.type === "boolean") {
160
+ booleanFlags.add(name);
161
+ if (short)
162
+ booleanShorts.add(short);
163
+ }
164
+ else {
165
+ stringFlags.add(name);
166
+ if (short)
167
+ stringShorts.add(short);
168
+ }
169
+ }
170
+ const out = [];
171
+ let i = 0;
172
+ let sawTerminator = false;
173
+ while (i < argv.length) {
174
+ const tok = argv[i];
175
+ if (sawTerminator) {
176
+ out.push(tok);
177
+ i++;
178
+ continue;
179
+ }
180
+ if (tok === "--") {
181
+ sawTerminator = true;
182
+ out.push(tok);
183
+ i++;
184
+ continue;
185
+ }
186
+ if (tok.startsWith("--")) {
187
+ const eq = tok.indexOf("=");
188
+ const name = eq >= 0 ? tok.slice(2, eq) : tok.slice(2);
189
+ if (booleanFlags.has(name) || stringFlags.has(name)) {
190
+ if (eq < 0 && stringFlags.has(name))
191
+ i++; // consume value
192
+ i++;
193
+ continue;
194
+ }
195
+ }
196
+ else if (tok.startsWith("-") && tok.length === 2) {
197
+ const short = tok.slice(1);
198
+ if (booleanShorts.has(short)) {
199
+ i++;
200
+ continue;
201
+ }
202
+ if (stringShorts.has(short)) {
203
+ i += 2; // consume short flag and its value
204
+ continue;
205
+ }
206
+ }
207
+ out.push(tok);
208
+ i++;
209
+ }
210
+ return out;
211
+ }
70
212
  /**
71
213
  * Remove tokens for blocked plugin flags from an argv slice so they cannot
72
214
  * shift positionals during the plugin-flag re-parse.
73
215
  *
74
- * The built-in may declare a blocked flag as boolean while the plugin
75
- * declared it as string. In that case the user supplied a value token
76
- * (--name value) that the built-in parser leaves in positionals. We use
77
- * the PLUGIN's declared type to decide whether to strip a following token.
216
+ * Post-#373, "blocked" exclusively means "collides with a GLOBAL flag".
217
+ * The user may have supplied a value token (`--name value`) intending
218
+ * either:
219
+ * - the GLOBAL's interpretation (global type === "string"), or
220
+ * - the PLUGIN's interpretation (plugin type === "string", e.g. global
221
+ * is boolean but the plugin declared the same name as string).
222
+ *
223
+ * Either way the value is meaningless to both sides (plugin's flag is
224
+ * blocked; global is consumed by the host elsewhere) and must not leak
225
+ * into the plugin's positional args. Strip the following non-flag token
226
+ * if either side typed the flag as string.
78
227
  */
79
- function stripBlockedFlagTokens(argv, blocked, pluginFlagDefs) {
228
+ function stripBlockedFlagTokens(argv, blocked, pluginFlagDefs, globalFlagDefs) {
80
229
  const out = [];
81
230
  let i = 0;
82
231
  while (i < argv.length) {
@@ -85,8 +234,10 @@ function stripBlockedFlagTokens(argv, blocked, pluginFlagDefs) {
85
234
  const eqIdx = arg.indexOf("=");
86
235
  const name = eqIdx >= 0 ? arg.slice(2, eqIdx) : arg.slice(2);
87
236
  if (blocked.has(name)) {
237
+ const eitherIsString = pluginFlagDefs[name]?.type === "string" ||
238
+ globalFlagDefs[name]?.type === "string";
88
239
  if (eqIdx < 0 &&
89
- pluginFlagDefs[name]?.type === "string" &&
240
+ eitherIsString &&
90
241
  i + 1 < argv.length &&
91
242
  !argv[i + 1].startsWith("-")) {
92
243
  i++;
@@ -125,6 +276,22 @@ async function main() {
125
276
  // Fire-and-forget: check for CLI updates in the background
126
277
  startUpdateCheck(c8ctl.version);
127
278
  const { values, positionals } = parseCliArgs();
279
+ // Apply per-invocation output mode override (#356).
280
+ // Precedence: --json flag > C8CTL_OUTPUT_MODE env var > persisted session.
281
+ // Setting `c8ctl.outputMode` directly is in-memory only; saveSessionState
282
+ // uses the separately-tracked persistedOutputMode from config.ts so this
283
+ // override never leaks back to disk.
284
+ if (values.json === true) {
285
+ c8ctl.outputMode = "json";
286
+ }
287
+ else if (process.env.C8CTL_OUTPUT_MODE === "json") {
288
+ c8ctl.outputMode = "json";
289
+ }
290
+ else if (process.env.C8CTL_OUTPUT_MODE === "text") {
291
+ c8ctl.outputMode = "text";
292
+ }
293
+ // Any other C8CTL_OUTPUT_MODE value (including unset, empty, or
294
+ // "yaml"/typo) falls through to the persisted mode loaded above.
128
295
  // Initialize logger with current output mode from c8ctl runtime
129
296
  const logger = getLogger(c8ctl.outputMode);
130
297
  // Resolve sort order from --asc / --desc flags (default: asc)
@@ -156,7 +323,12 @@ async function main() {
156
323
  c8ctl.verbose = true;
157
324
  }
158
325
  // Inject dependencies into the runtime (breaks circular imports)
159
- c8ctl.init({ createClient, resolveTenantId, getLogger });
326
+ c8ctl.init({
327
+ createClient,
328
+ resolveTenantId,
329
+ getLogger,
330
+ getUserDataDir,
331
+ });
160
332
  // Load installed plugins
161
333
  await loadInstalledPlugins();
162
334
  // Auto-refresh installed completions if CLI version changed
@@ -190,39 +362,149 @@ async function main() {
190
362
  }
191
363
  return;
192
364
  }
365
+ // `c8ctl <verb> [<resource>] [args] --help` — uniformly route to the help
366
+ // renderer. Placed AFTER the `help`/`menu` reserved-verb handler and
367
+ // BEFORE plugin pre-parse so that every verb (built-in or plugin,
368
+ // resourceless or resource-required) honours --help. Closes the
369
+ // class-scoped contract gap pinned by tests/unit/two-stage-parser-contract.test.ts
370
+ // (#373) where verbs whose missing-resource guard never fired (deploy,
371
+ // run, doctor, output, version, …) silently dispatched to the handler.
372
+ if (values.help) {
373
+ await showCommandHelp(verb);
374
+ return;
375
+ }
193
376
  // Check if this is a plugin command — only for verbs not claimed by a built-in.
194
377
  // Placed after help/menu handling so those reserved verbs can never be shadowed.
195
378
  const pluginCommands = getPluginCommands();
196
379
  if (verb && Object.hasOwn(pluginCommands, verb) && !getCommandDef(verb)) {
197
380
  const cmd = pluginCommands[verb];
198
381
  const cmdFlagDefs = typeof cmd !== "function" ? cmd.flags : undefined;
382
+ // Plugin --version (#377): when a plugin verb is invoked with
383
+ // --version, print the plugin's package version and identifying
384
+ // name, not c8ctl's. Routed before any other plugin dispatch so
385
+ // the handler is never called.
386
+ if (values.version) {
387
+ const info = getPluginVersionForCommand(verb);
388
+ if (info) {
389
+ if (logger.mode === "json") {
390
+ logger.json({
391
+ kind: "plugin-version",
392
+ verb,
393
+ pluginName: info.pluginName,
394
+ version: info.version,
395
+ });
396
+ }
397
+ else {
398
+ logger.info(`${info.pluginName} ${info.version}`);
399
+ }
400
+ return;
401
+ }
402
+ }
403
+ // Construct the plugin host context (#377). Lazy `client` getter
404
+ // mirrors the built-in CommandContext pattern so plugins that
405
+ // never touch a Camunda client (e.g. local-only utilities) do
406
+ // not trigger credential resolution by virtue of receiving ctx.
407
+ // Leave undefined when no flag/session profile is set so
408
+ // resolveClusterConfig() can fall through to CAMUNDA_* env vars,
409
+ // matching the behaviour of built-in commands.
410
+ const pluginProfile = str(values.profile) ?? c8ctl.activeProfile;
411
+ let _pluginClient;
412
+ const pluginCtx = {
413
+ profile: pluginProfile,
414
+ dryRun: c8ctl.dryRun === true,
415
+ verbose: c8ctl.verbose === true,
416
+ outputMode: c8ctl.outputMode,
417
+ fields: c8ctl.fields,
418
+ logger,
419
+ get client() {
420
+ if (!_pluginClient)
421
+ _pluginClient = createClient(pluginProfile);
422
+ return _pluginClient;
423
+ },
424
+ };
425
+ // Passthrough plugin contract (#366): strip GLOBAL_FLAGS from the
426
+ // raw argv following the verb token and forward the rest verbatim.
427
+ // GLOBAL_FLAGS already affect the c8ctl runtime via their regular
428
+ // handling earlier in main(); the plugin must not see them again.
429
+ // Validation at load time guarantees passthrough commands are the
430
+ // bare-function form and never carry a `flags` declaration.
431
+ if (isPassthroughPluginCommand(verb)) {
432
+ // Locate the verb token by walking process.argv from the start and
433
+ // skipping leading GLOBAL_FLAGS (consuming string-flag values).
434
+ // A naive `indexOf(verb)` is unsafe because `verb` may also appear
435
+ // as the value of a global string flag (e.g. `--profile <verb>`).
436
+ const rawAfterVerb = sliceArgvAfterVerb(process.argv.slice(2), verb);
437
+ const forwarded = stripGlobalFlags(rawAfterVerb);
438
+ await executePluginCommand(verb, forwarded);
439
+ return;
440
+ }
199
441
  if (cmdFlagDefs) {
200
- // Use built-in flags as a blacklist: start from the full built-in
201
- // option set, then add plugin flags only when the name is not already
202
- // taken. This prevents a plugin flag from silently changing a built-in
203
- // flag's parse type.
204
- const builtinOptions = deriveParseArgsOptions();
442
+ // Plugin flag scoping (#373): a plugin verb's effective flag
443
+ // namespace is `GLOBAL_FLAGS plugin.flags`. Use ONLY the
444
+ // global flags as the conflict source never the union of
445
+ // every built-in verb's flags. Otherwise a plugin can't declare
446
+ // a flag like `--limit` (which lives in SEARCH_FLAGS, valid
447
+ // only on `search`/`get`) without being silently blocked, even
448
+ // though `--limit` is irrelevant to the plugin's verb.
449
+ //
450
+ // Globals are still treated as a hard conflict because the
451
+ // host strips them from argv before the plugin parser sees
452
+ // them, so a plugin's same-named flag would never receive a
453
+ // value (#364).
454
+ const builtinOptions = {};
455
+ for (const [name, def] of Object.entries(GLOBAL_FLAGS)) {
456
+ const short = "short" in def ? def.short : undefined;
457
+ builtinOptions[name] = {
458
+ type: def.type,
459
+ ...(short && { short }),
460
+ };
461
+ }
205
462
  const builtinShorts = new Set(Object.values(builtinOptions)
206
463
  .map((o) => o.short)
207
464
  .filter((s) => s !== undefined));
208
- const mergedOptions = { ...builtinOptions };
465
+ // Use a null-prototype object so plugin-supplied flag names like
466
+ // `__proto__`, `constructor`, or `prototype` cannot pollute the
467
+ // prototype chain when later assigned (paired with the
468
+ // `Object.hasOwn` collision check below).
469
+ const mergedOptions = Object.assign(Object.create(null), builtinOptions);
209
470
  const blockedFlags = new Set();
210
471
  for (const [name, def] of Object.entries(cmdFlagDefs)) {
211
- if (name in builtinOptions) {
212
- logger.warn(`Plugin flag --${name} conflicts with a built-in flag and will not be parsed`);
472
+ if (Object.hasOwn(builtinOptions, name)) {
473
+ // A required plugin flag whose name collides with a global
474
+ // flag is unsatisfiable: the token is always stripped from
475
+ // argv before the plugin parser sees it, so the required
476
+ // check downstream would always fire with the misleading
477
+ // "--<name> is required" message even when the user did
478
+ // pass a value (#364). Fail fast here with a single
479
+ // actionable error instead.
480
+ if (def.required === true) {
481
+ logger.error(`Plugin flag --${name} is declared required but conflicts with a global c8ctl flag of the same name; ` +
482
+ `it can never be satisfied. The plugin must rename this flag.`);
483
+ process.exit(1);
484
+ }
485
+ logger.warn(`Plugin flag --${name} conflicts with a global c8ctl flag and will not be parsed`);
213
486
  blockedFlags.add(name);
214
487
  continue;
215
488
  }
216
489
  const short = def.short && builtinShorts.has(def.short) ? undefined : def.short;
217
490
  if (def.short && !short) {
218
- logger.warn(`Plugin flag --${name} short alias -${def.short} conflicts with a built-in alias and will be ignored`);
491
+ logger.warn(`Plugin flag --${name} short alias -${def.short} conflicts with a global c8ctl alias and will be ignored`);
219
492
  }
220
493
  mergedOptions[name] = {
221
494
  type: def.type,
222
495
  ...(short && { short }),
496
+ ...(def.multiple && { multiple: true }),
223
497
  };
224
498
  }
225
- const filteredArgv = stripBlockedFlagTokens(process.argv.slice(2), blockedFlags, cmdFlagDefs);
499
+ // Strip blocked-flag tokens from argv before re-parse. Blocked
500
+ // names exclusively collide with GLOBAL_FLAGS (post-#373), but
501
+ // `mergedOptions` carries the global type for those names, so
502
+ // parseArgs alone would consume only the value of *string*
503
+ // globals — leaving the value of a *boolean* global behind to
504
+ // drift into positionals when the plugin typed the same name
505
+ // as string. The helper consults both type tables and strips
506
+ // the following non-flag token when either side is string.
507
+ const filteredArgv = stripBlockedFlagTokens(process.argv.slice(2), blockedFlags, cmdFlagDefs, builtinOptions);
226
508
  let pluginParsed;
227
509
  try {
228
510
  pluginParsed = parseArgs({
@@ -242,9 +524,12 @@ async function main() {
242
524
  if (blockedFlags.has(flagName))
243
525
  continue;
244
526
  const raw = pluginParsed.values[flagName];
245
- // Repeated string flags arrive as arrays take the last value
246
- // (last-write-wins), matching built-in flag normalization.
247
- const value = def.type === "string" && Array.isArray(raw)
527
+ // multiple:true flags collect all values into an array preserve
528
+ // the array so the plugin handler receives every supplied value.
529
+ // Non-multiple string flags may still arrive as an array when
530
+ // parseArgs sees the same flag name declared as multiple elsewhere;
531
+ // take the last value (last-write-wins) in that case.
532
+ const value = def.type === "string" && Array.isArray(raw) && !def.multiple
248
533
  ? (raw.findLast((v) => typeof v === "string") ?? undefined)
249
534
  : raw;
250
535
  if (value !== undefined) {
@@ -256,10 +541,10 @@ async function main() {
256
541
  }
257
542
  }
258
543
  const [_verb, _resource, ...pluginArgs] = pluginParsed.positionals;
259
- await executePluginCommand(verb, _resource ? [_resource, ...pluginArgs] : pluginArgs, extractedFlags);
544
+ await executePluginCommand(verb, _resource ? [_resource, ...pluginArgs] : pluginArgs, extractedFlags, pluginCtx);
260
545
  }
261
546
  else {
262
- await executePluginCommand(verb, resource ? [resource, ...args] : args);
547
+ await executePluginCommand(verb, resource ? [resource, ...args] : args, undefined, pluginCtx);
263
548
  }
264
549
  return;
265
550
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}