@camunda8/cli 2.7.0-alpha.13 → 2.7.0-alpha.15
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/command-dispatch.d.ts.map +1 -1
- package/dist/command-dispatch.js +19 -1
- package/dist/command-dispatch.js.map +1 -1
- package/dist/command-framework.d.ts +21 -0
- package/dist/command-framework.d.ts.map +1 -1
- package/dist/command-framework.js +53 -19
- package/dist/command-framework.js.map +1 -1
- package/dist/command-registry.d.ts +6 -1
- package/dist/command-registry.d.ts.map +1 -1
- package/dist/command-registry.js +6 -1
- package/dist/command-registry.js.map +1 -1
- package/dist/commands/completion.d.ts +19 -0
- package/dist/commands/completion.d.ts.map +1 -1
- package/dist/commands/completion.js +36 -14
- package/dist/commands/completion.js.map +1 -1
- package/dist/commands/deployments.d.ts +10 -0
- package/dist/commands/deployments.d.ts.map +1 -1
- package/dist/commands/deployments.js +233 -176
- package/dist/commands/deployments.js.map +1 -1
- package/dist/commands/forms.d.ts.map +1 -1
- package/dist/commands/forms.js +2 -3
- package/dist/commands/forms.js.map +1 -1
- package/dist/commands/identity-groups.d.ts.map +1 -1
- package/dist/commands/identity-groups.js +3 -5
- package/dist/commands/identity-groups.js.map +1 -1
- package/dist/commands/identity-mapping-rules.d.ts.map +1 -1
- package/dist/commands/identity-mapping-rules.js +5 -9
- package/dist/commands/identity-mapping-rules.js.map +1 -1
- package/dist/commands/identity-roles.d.ts.map +1 -1
- package/dist/commands/identity-roles.js +3 -5
- package/dist/commands/identity-roles.js.map +1 -1
- package/dist/commands/identity-tenants.d.ts.map +1 -1
- package/dist/commands/identity-tenants.js +3 -5
- package/dist/commands/identity-tenants.js.map +1 -1
- package/dist/commands/identity-users.d.ts.map +1 -1
- package/dist/commands/identity-users.js +3 -5
- package/dist/commands/identity-users.js.map +1 -1
- package/dist/commands/identity.d.ts +29 -2
- package/dist/commands/identity.d.ts.map +1 -1
- package/dist/commands/identity.js +247 -208
- package/dist/commands/identity.js.map +1 -1
- package/dist/commands/incidents.d.ts.map +1 -1
- package/dist/commands/incidents.js +2 -3
- package/dist/commands/incidents.js.map +1 -1
- package/dist/commands/jobs.d.ts.map +1 -1
- package/dist/commands/jobs.js +5 -9
- package/dist/commands/jobs.js.map +1 -1
- package/dist/commands/mcp-proxy.d.ts +4 -4
- package/dist/commands/mcp-proxy.d.ts.map +1 -1
- package/dist/commands/mcp-proxy.js +49 -39
- package/dist/commands/mcp-proxy.js.map +1 -1
- package/dist/commands/messages.d.ts.map +1 -1
- package/dist/commands/messages.js +2 -4
- package/dist/commands/messages.js.map +1 -1
- package/dist/commands/open.d.ts +4 -2
- package/dist/commands/open.d.ts.map +1 -1
- package/dist/commands/open.js +17 -18
- package/dist/commands/open.js.map +1 -1
- package/dist/commands/plugins.d.ts.map +1 -1
- package/dist/commands/plugins.js +16 -32
- package/dist/commands/plugins.js.map +1 -1
- package/dist/commands/process-instances.d.ts.map +1 -1
- package/dist/commands/process-instances.js +5 -9
- package/dist/commands/process-instances.js.map +1 -1
- package/dist/commands/profiles.d.ts.map +1 -1
- package/dist/commands/profiles.js +8 -16
- package/dist/commands/profiles.js.map +1 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +1 -2
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/search.d.ts.map +1 -1
- package/dist/commands/search.js +4 -8
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/session.d.ts.map +1 -1
- package/dist/commands/session.js +4 -7
- package/dist/commands/session.js.map +1 -1
- package/dist/commands/user-tasks.d.ts.map +1 -1
- package/dist/commands/user-tasks.js +2 -3
- package/dist/commands/user-tasks.js.map +1 -1
- package/dist/commands/watch.d.ts +7 -5
- package/dist/commands/watch.d.ts.map +1 -1
- package/dist/commands/watch.js +77 -34
- package/dist/commands/watch.js.map +1 -1
- package/dist/errors.d.ts +62 -8
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +99 -10
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -36
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/commands/jobs.js
CHANGED
|
@@ -9,7 +9,7 @@ import { buildDateFilter, parseBetween } from "../date-filter.js";
|
|
|
9
9
|
* List jobs
|
|
10
10
|
*/
|
|
11
11
|
export const listJobsCommand = defineCommand("list", "jobs", async (ctx, flags) => {
|
|
12
|
-
const { client,
|
|
12
|
+
const { client, tenantId, profile, limit, between, dateField } = ctx;
|
|
13
13
|
const filter = {
|
|
14
14
|
filter: {
|
|
15
15
|
tenantId,
|
|
@@ -28,8 +28,7 @@ export const listJobsCommand = defineCommand("list", "jobs", async (ctx, flags)
|
|
|
28
28
|
filter.filter[field] = buildDateFilter(parsed.from, parsed.to);
|
|
29
29
|
}
|
|
30
30
|
else {
|
|
31
|
-
|
|
32
|
-
process.exit(1);
|
|
31
|
+
throw new Error("Invalid --between value. Expected format: <from>..<to> (e.g. 2024-01-01..2024-12-31, ISO 8601 datetimes, or open-ended: ..2024-12-31 or 2024-01-01..)");
|
|
33
32
|
}
|
|
34
33
|
}
|
|
35
34
|
const dr = dryRun({
|
|
@@ -68,12 +67,10 @@ export const activateJobsCommand = defineCommand("activate", "jobs", async (ctx,
|
|
|
68
67
|
const timeout = flags.timeout ? parseInt(flags.timeout, 10) : 60000;
|
|
69
68
|
const worker = flags.worker || "c8ctl";
|
|
70
69
|
if (Number.isNaN(maxJobsToActivate) || maxJobsToActivate < 1) {
|
|
71
|
-
|
|
72
|
-
process.exit(1);
|
|
70
|
+
throw new Error("--maxJobsToActivate must be a positive integer");
|
|
73
71
|
}
|
|
74
72
|
if (Number.isNaN(timeout) || timeout < 1) {
|
|
75
|
-
|
|
76
|
-
process.exit(1);
|
|
73
|
+
throw new Error("--timeout must be a positive integer (milliseconds)");
|
|
77
74
|
}
|
|
78
75
|
const dr = dryRun({
|
|
79
76
|
command: "activate jobs",
|
|
@@ -152,8 +149,7 @@ export const failJobCommand = defineCommand("fail", "job", async (ctx, flags, ar
|
|
|
152
149
|
const retries = flags.retries ? parseInt(flags.retries, 10) : 0;
|
|
153
150
|
const errorMessage = flags.errorMessage || "Job failed via c8ctl";
|
|
154
151
|
if (Number.isNaN(retries) || retries < 0) {
|
|
155
|
-
|
|
156
|
-
process.exit(1);
|
|
152
|
+
throw new Error("--retries must be a non-negative integer");
|
|
157
153
|
}
|
|
158
154
|
const dr = dryRun({
|
|
159
155
|
command: "fail job",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../src/commands/jobs.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAElE;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAC3C,MAAM,EACN,MAAM,EACN,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;IACpB,MAAM,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../src/commands/jobs.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,10 +16,10 @@ export declare function createCamundaFetch(camundaClient: CamundaClient, logger:
|
|
|
16
16
|
*/
|
|
17
17
|
export declare function normalizeRemoteMcpUrl(url: string, mcpServerPath: string): string;
|
|
18
18
|
/**
|
|
19
|
-
* Run STDIO
|
|
19
|
+
* Run an STDIO ↔ remote-HTTP MCP proxy with Camunda authentication.
|
|
20
|
+
*
|
|
21
|
+
* Long-running: stays alive until SIGINT/SIGTERM, then stops the proxy
|
|
22
|
+
* and resolves so the framework returns naturally with `{ kind: "never" }`.
|
|
20
23
|
*/
|
|
21
|
-
export declare function mcpProxy(args: string[], options: {
|
|
22
|
-
profile?: string;
|
|
23
|
-
}): Promise<void>;
|
|
24
24
|
export declare const mcpProxyCommand: import("../command-framework.ts").CommandHandler<"mcp-proxy", "">;
|
|
25
25
|
//# sourceMappingURL=mcp-proxy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-proxy.d.ts","sourceRoot":"","sources":["../../src/commands/mcp-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAezE,OAAO,EAAY,MAAM,EAAkB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-proxy.d.ts","sourceRoot":"","sources":["../../src/commands/mcp-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAezE,OAAO,EAAY,MAAM,EAAkB,MAAM,cAAc,CAAC;AAIhE;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CACjC,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,MAAc,GACrB,OAAO,KAAK,CA0Fd;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACpC,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,GACnB,MAAM,CAqBR;AAkMD;;;;;GAKG;AACH,eAAO,MAAM,eAAe,mEAiE1B,CAAC"}
|
|
@@ -5,8 +5,9 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
|
|
|
5
5
|
import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
6
6
|
import { createClient } from "../client.js";
|
|
7
7
|
import { defineCommand } from "../command-framework.js";
|
|
8
|
-
import {
|
|
8
|
+
import { normalizeToError } from "../errors.js";
|
|
9
9
|
import { isRecord, Logger } from "../logger.js";
|
|
10
|
+
import { c8ctl } from "../runtime.js";
|
|
10
11
|
import { getVersion } from "./help.js";
|
|
11
12
|
/**
|
|
12
13
|
* Creates a custom fetch function that injects Camunda authentication headers
|
|
@@ -237,36 +238,17 @@ class McpProxy {
|
|
|
237
238
|
this.logger.debug("Request handlers registered (tools only, stateless mode)");
|
|
238
239
|
}
|
|
239
240
|
}
|
|
240
|
-
|
|
241
|
-
let proxy = null;
|
|
242
|
-
try {
|
|
243
|
-
// Create and start proxy
|
|
244
|
-
proxy = new McpProxy(camundaClient, logger, mcpServerPath);
|
|
245
|
-
await proxy.start();
|
|
246
|
-
// Handle graceful shutdown
|
|
247
|
-
const shutdown = async (signal) => {
|
|
248
|
-
logger.info(`Received ${signal}, shutting down gracefully...`);
|
|
249
|
-
if (proxy) {
|
|
250
|
-
await proxy.stop();
|
|
251
|
-
}
|
|
252
|
-
process.exit(0);
|
|
253
|
-
};
|
|
254
|
-
process.on("SIGINT", () => shutdown("SIGINT"));
|
|
255
|
-
process.on("SIGTERM", () => shutdown("SIGTERM"));
|
|
256
|
-
// Keep process alive
|
|
257
|
-
await new Promise(() => { });
|
|
258
|
-
}
|
|
259
|
-
catch (error) {
|
|
260
|
-
if (proxy) {
|
|
261
|
-
await proxy.stop().catch(() => { });
|
|
262
|
-
}
|
|
263
|
-
handleCommandError(logger, "Failed to run MCP proxy. Shutting down...", error);
|
|
264
|
-
}
|
|
265
|
-
}
|
|
241
|
+
// ─── defineCommand ───────────────────────────────────────────────────────────
|
|
266
242
|
/**
|
|
267
|
-
* Run STDIO
|
|
243
|
+
* Run an STDIO ↔ remote-HTTP MCP proxy with Camunda authentication.
|
|
244
|
+
*
|
|
245
|
+
* Long-running: stays alive until SIGINT/SIGTERM, then stops the proxy
|
|
246
|
+
* and resolves so the framework returns naturally with `{ kind: "never" }`.
|
|
268
247
|
*/
|
|
269
|
-
export
|
|
248
|
+
export const mcpProxyCommand = defineCommand("mcp-proxy", "", async (ctx) => {
|
|
249
|
+
const allPositionals = ctx.resource
|
|
250
|
+
? [ctx.resource, ...ctx.positionals]
|
|
251
|
+
: ctx.positionals;
|
|
270
252
|
const stderrLogWriter = {
|
|
271
253
|
log(...data) {
|
|
272
254
|
console.error(...data);
|
|
@@ -276,22 +258,50 @@ export async function mcpProxy(args, options) {
|
|
|
276
258
|
},
|
|
277
259
|
};
|
|
278
260
|
const logger = new Logger(stderrLogWriter);
|
|
279
|
-
const camundaClient = createClient(
|
|
261
|
+
const camundaClient = createClient(ctx.profile, {
|
|
280
262
|
log: {
|
|
281
263
|
transport: (evt) => {
|
|
282
264
|
logger.json(evt);
|
|
283
265
|
},
|
|
284
266
|
},
|
|
285
267
|
});
|
|
286
|
-
const mcpServerPath =
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
:
|
|
294
|
-
|
|
268
|
+
const mcpServerPath = allPositionals[0] ?? "/mcp/cluster";
|
|
269
|
+
let proxy = null;
|
|
270
|
+
try {
|
|
271
|
+
proxy = new McpProxy(camundaClient, logger, mcpServerPath);
|
|
272
|
+
await proxy.start();
|
|
273
|
+
// Block until a shutdown signal is received, then stop the proxy
|
|
274
|
+
// and resolve so the handler returns. The framework treats this as
|
|
275
|
+
// `{ kind: "never" }` and the process exits naturally.
|
|
276
|
+
await new Promise((resolve) => {
|
|
277
|
+
const shutdown = (signal) => {
|
|
278
|
+
logger.info(`Received ${signal}, shutting down gracefully...`);
|
|
279
|
+
const stop = proxy ? proxy.stop().catch(() => { }) : Promise.resolve();
|
|
280
|
+
void stop.then(() => resolve());
|
|
281
|
+
};
|
|
282
|
+
process.once("SIGINT", () => shutdown("SIGINT"));
|
|
283
|
+
process.once("SIGTERM", () => shutdown("SIGTERM"));
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
catch (error) {
|
|
287
|
+
const normalizedError = normalizeToError(error, "MCP proxy failed");
|
|
288
|
+
if (proxy)
|
|
289
|
+
await proxy.stop().catch(() => { });
|
|
290
|
+
// In verbose mode users want the full stack trace, so re-throw and
|
|
291
|
+
// let Node print it to stderr. The framework's default error handler
|
|
292
|
+
// short-circuits to a plain rethrow when `c8ctl.verbose` is set
|
|
293
|
+
// (see src/errors.ts), so no stdout hint is emitted in that path.
|
|
294
|
+
if (c8ctl.verbose) {
|
|
295
|
+
throw normalizedError;
|
|
296
|
+
}
|
|
297
|
+
// MCP-proxy uses STDIO for protocol; we must NOT let the framework's
|
|
298
|
+
// default error handler write hints to stdout (that would corrupt
|
|
299
|
+
// the MCP stream for any remaining client read). Log to stderr via
|
|
300
|
+
// our stderr-backed logger and surface failure through the exit
|
|
301
|
+
// code instead of re-throwing into `handleCommandError`.
|
|
302
|
+
process.exitCode = 1;
|
|
303
|
+
logger.error(`mcp-proxy failed: ${normalizedError.message}`);
|
|
304
|
+
}
|
|
295
305
|
return { kind: "never" };
|
|
296
306
|
});
|
|
297
307
|
//# sourceMappingURL=mcp-proxy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-proxy.js","sourceRoot":"","sources":["../../src/commands/mcp-proxy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EACN,6BAA6B,EAC7B,mBAAmB,GACnB,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACN,qBAAqB,EACrB,sBAAsB,GACtB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"mcp-proxy.js","sourceRoot":"","sources":["../../src/commands/mcp-proxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/commands/messages.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH;;GAEG;AACH,eAAO,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/commands/messages.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH;;GAEG;AACH,eAAO,MAAM,qBAAqB,wEAkDjC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,0EAmDnC,CAAC"}
|
|
@@ -26,8 +26,7 @@ export const publishMessageCommand = defineCommand("publish", "message", async (
|
|
|
26
26
|
: undefined;
|
|
27
27
|
if (timeToLive !== undefined) {
|
|
28
28
|
if (Number.isNaN(timeToLive) || timeToLive < 0) {
|
|
29
|
-
|
|
30
|
-
process.exit(1);
|
|
29
|
+
throw new Error("--timeToLive must be a non-negative integer (milliseconds)");
|
|
31
30
|
}
|
|
32
31
|
body.timeToLive = timeToLive;
|
|
33
32
|
}
|
|
@@ -73,8 +72,7 @@ export const correlateMessageCommand = defineCommand("correlate", "message", asy
|
|
|
73
72
|
: undefined;
|
|
74
73
|
if (timeToLive !== undefined) {
|
|
75
74
|
if (Number.isNaN(timeToLive) || timeToLive < 0) {
|
|
76
|
-
|
|
77
|
-
process.exit(1);
|
|
75
|
+
throw new Error("--timeToLive must be a non-negative integer (milliseconds)");
|
|
78
76
|
}
|
|
79
77
|
body.timeToLive = timeToLive;
|
|
80
78
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/commands/messages.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CACjD,SAAS,EACT,SAAS,EACT,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;IAC1B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;IAChC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAE1C,MAAM,IAAI,GAA4B;QACrC,IAAI;QACJ,QAAQ;QACR,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,EAAE;KAC1C,CAAC;IACF,IAAI,SAA8C,CAAC;IACnD,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACrB,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC5B,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU;QAClC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC;QAChC,CAAC,CAAC,SAAS,CAAC;IACb,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC9B,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YAChD,
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/commands/messages.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/open.d.ts
CHANGED
|
@@ -48,9 +48,11 @@ export declare function validateOpenAppOptions(app: string | undefined, options:
|
|
|
48
48
|
}): OpenAppInput;
|
|
49
49
|
/**
|
|
50
50
|
* Open a Camunda web application in the default browser.
|
|
51
|
+
*
|
|
52
|
+
* Side-effectful: validates the app name, derives the URL from the cluster
|
|
53
|
+
* config, and spawns the platform browser opener. With `--dry-run`, logs
|
|
54
|
+
* the resolved URL but skips the spawn.
|
|
51
55
|
*/
|
|
52
|
-
export declare function openApp(options: OpenAppInput): Promise<void>;
|
|
53
|
-
/** Side-effectful: validates app name, derives URL, and opens browser. */
|
|
54
56
|
export declare const openAppCommand: import("../command-framework.ts").CommandHandler<"open", "">;
|
|
55
57
|
/** Open the GitHub issues page for c8ctl feedback. */
|
|
56
58
|
export declare const feedbackCommand: import("../command-framework.ts").CommandHandler<"feedback", "">;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open.d.ts","sourceRoot":"","sources":["../../src/commands/open.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,eAAO,MAAM,SAAS,yDAKZ,CAAC;AACX,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,OAAO,CAGzD;AAKD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAMzE;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAChC,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,MAAM,CAAC,QAAqB,EAClC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACnD;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAYrC;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAkBzC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB;AAID;;;;GAIG;AACH,wBAAgB,sBAAsB,CACrC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7C,YAAY,CAWd;
|
|
1
|
+
{"version":3,"file":"open.d.ts","sourceRoot":"","sources":["../../src/commands/open.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,eAAO,MAAM,SAAS,yDAKZ,CAAC;AACX,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,OAAO,CAGzD;AAKD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAMzE;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAChC,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,MAAM,CAAC,QAAqB,EAClC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACnD;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAYrC;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAkBzC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB;AAID;;;;GAIG;AACH,wBAAgB,sBAAsB,CACrC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7C,YAAY,CAWd;AAID;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,8DAsBzB,CAAC;AAEH,sDAAsD;AACtD,eAAO,MAAM,eAAe,kEAK1B,CAAC"}
|
package/dist/commands/open.js
CHANGED
|
@@ -84,31 +84,30 @@ export function validateOpenAppOptions(app, options) {
|
|
|
84
84
|
dryRun: options.dryRun,
|
|
85
85
|
};
|
|
86
86
|
}
|
|
87
|
+
// ─── defineCommand ───────────────────────────────────────────────────────────
|
|
87
88
|
/**
|
|
88
89
|
* Open a Camunda web application in the default browser.
|
|
90
|
+
*
|
|
91
|
+
* Side-effectful: validates the app name, derives the URL from the cluster
|
|
92
|
+
* config, and spawns the platform browser opener. With `--dry-run`, logs
|
|
93
|
+
* the resolved URL but skips the spawn.
|
|
89
94
|
*/
|
|
90
|
-
export async function openApp(options) {
|
|
91
|
-
const logger = getLogger();
|
|
92
|
-
const config = resolveClusterConfig(options.profile);
|
|
93
|
-
const url = deriveAppUrl(config.baseUrl, options.app);
|
|
94
|
-
if (!url) {
|
|
95
|
-
logger.error(`Cannot derive ${options.app} URL from base URL: ${config.baseUrl}`);
|
|
96
|
-
logger.info("The open command is only supported for self-managed clusters whose base URL ends with /v<n> (e.g. http://localhost:8080/v2).");
|
|
97
|
-
process.exit(1);
|
|
98
|
-
}
|
|
99
|
-
logger.info(`Opening ${options.app} at: ${url}`);
|
|
100
|
-
if (!options.dryRun) {
|
|
101
|
-
openUrl(url);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
// ─── defineCommand wrapper ───────────────────────────────────────────────────
|
|
105
|
-
/** Side-effectful: validates app name, derives URL, and opens browser. */
|
|
106
95
|
export const openAppCommand = defineCommand("open", "", async (ctx) => {
|
|
107
|
-
const
|
|
96
|
+
const { app, profile, dryRun } = validateOpenAppOptions(ctx.resource, {
|
|
108
97
|
profile: ctx.profile,
|
|
109
98
|
dryRun: ctx.dryRun,
|
|
110
99
|
});
|
|
111
|
-
|
|
100
|
+
const config = resolveClusterConfig(profile);
|
|
101
|
+
const url = deriveAppUrl(config.baseUrl, app);
|
|
102
|
+
if (!url) {
|
|
103
|
+
throw new Error(`Cannot derive ${app} URL from base URL: ${config.baseUrl}. ` +
|
|
104
|
+
"The open command is only supported for self-managed clusters " +
|
|
105
|
+
"whose base URL ends with /v<n> (e.g. http://localhost:8080/v2).");
|
|
106
|
+
}
|
|
107
|
+
ctx.logger.info(`Opening ${app} at: ${url}`);
|
|
108
|
+
if (!dryRun) {
|
|
109
|
+
openUrl(url);
|
|
110
|
+
}
|
|
112
111
|
return { kind: "none" };
|
|
113
112
|
});
|
|
114
113
|
/** Open the GitHub issues page for c8ctl feedback. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open.js","sourceRoot":"","sources":["../../src/commands/open.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"open.js","sourceRoot":"","sources":["../../src/commands/open.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../src/commands/plugins.ts"],"names":[],"mappings":"AAAA;;GAEG;AAkDH;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../src/commands/plugins.ts"],"names":[],"mappings":"AAAA;;GAEG;AAkDH;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,oEAgG7B,CAAC;AAmLF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,sEA8F/B,CAAC;AA2DF;;GAEG;AACH,wBAAgB,yBAAyB,CACxC,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,GACjB,MAAM,GAAG,IAAI,CAcf;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GACjB,MAAM,GAAG,IAAI,CAQf;AA+BD;;GAEG;AACH,eAAO,MAAM,kBAAkB,oEA4E9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,oEA6H9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,uEAsEhC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,yEAoElC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,oEA0F7B,CAAC"}
|
package/dist/commands/plugins.js
CHANGED
|
@@ -41,20 +41,16 @@ export const loadPluginCommand = defineCommand("load", "plugin", async (ctx, fla
|
|
|
41
41
|
const fromUrl = flags.from;
|
|
42
42
|
// Validate input
|
|
43
43
|
if (fromUrl && packageName) {
|
|
44
|
-
|
|
45
|
-
process.exit(1);
|
|
44
|
+
throw new Error('Cannot specify both a positional argument and --from flag. Use either "c8 load plugin <name>" or "c8 load plugin --from <url>"');
|
|
46
45
|
}
|
|
47
46
|
if (!packageName && !fromUrl) {
|
|
48
|
-
|
|
49
|
-
process.exit(1);
|
|
47
|
+
throw new Error("Package name or URL required. Usage: c8 load plugin <name> or c8 load plugin --from <url>");
|
|
50
48
|
}
|
|
51
49
|
if (fromUrl && !isAcceptedUrl(fromUrl)) {
|
|
52
|
-
|
|
53
|
-
process.exit(1);
|
|
50
|
+
throw new Error("Invalid URL format. Accepted URL formats include file://, https://, git:// (see help for more)");
|
|
54
51
|
}
|
|
55
52
|
if (packageName && isAcceptedUrl(packageName)) {
|
|
56
|
-
|
|
57
|
-
process.exit(1);
|
|
53
|
+
throw new Error("Package name cannot be a URL. If you want to load from a URL, use the --from flag. Usage: c8 load plugin --from <url>");
|
|
58
54
|
}
|
|
59
55
|
// Get global plugins directory
|
|
60
56
|
const pluginsDir = ensurePluginsDir();
|
|
@@ -74,9 +70,8 @@ export const loadPluginCommand = defineCommand("load", "plugin", async (ctx, fla
|
|
|
74
70
|
pluginSource = fromUrl;
|
|
75
71
|
// Validate plugin name
|
|
76
72
|
if (!pluginName || pluginName.trim() === "") {
|
|
77
|
-
logger.error("Failed to extract plugin name from URL");
|
|
78
73
|
logger.info("Ensure the URL points to a valid npm package with a package.json file");
|
|
79
|
-
|
|
74
|
+
throw new Error("Failed to extract plugin name from URL");
|
|
80
75
|
}
|
|
81
76
|
logger.success("Plugin loaded successfully from URL", fromUrl);
|
|
82
77
|
}
|
|
@@ -278,22 +273,19 @@ export const unloadPluginCommand = defineCommand("unload", "plugin", async (ctx,
|
|
|
278
273
|
const packageName = args.package;
|
|
279
274
|
const force = flags.force;
|
|
280
275
|
if (!packageName) {
|
|
281
|
-
|
|
282
|
-
process.exit(1);
|
|
276
|
+
throw new Error("Package name required. Usage: c8ctl unload plugin <package-name>");
|
|
283
277
|
}
|
|
284
278
|
const pluginsDir = ensurePluginsDir();
|
|
285
279
|
const isRegistered = isPluginRegistered(packageName);
|
|
286
280
|
const isPresent = existsSync(join(pluginsDir, "node_modules", packageName));
|
|
287
281
|
if (!isRegistered && !isPresent) {
|
|
288
|
-
logger.error(`Plugin "${packageName}" is neither registered nor installed in the global plugins directory.`);
|
|
289
282
|
logger.info('Run "c8ctl list plugins" to see installed plugins');
|
|
290
|
-
|
|
283
|
+
throw new Error(`Plugin "${packageName}" is neither registered nor installed in the global plugins directory.`);
|
|
291
284
|
}
|
|
292
285
|
// Limbo state: present in node_modules but not in the registry — requires --force
|
|
293
286
|
if (!isRegistered && !force) {
|
|
294
|
-
logger.error(`Plugin "${packageName}" is installed in node_modules but not in the registry (limbo state).`);
|
|
295
287
|
logger.info(`Use --force to remove it: c8ctl unload plugin ${packageName} --force`);
|
|
296
|
-
|
|
288
|
+
throw new Error(`Plugin "${packageName}" is installed in node_modules but not in the registry (limbo state).`);
|
|
297
289
|
}
|
|
298
290
|
const action = isRegistered ? "Unloading" : "Force-removing";
|
|
299
291
|
logger.info(`${action} plugin: ${packageName}...`);
|
|
@@ -597,14 +589,12 @@ export const upgradePluginCommand = defineCommand("upgrade", "plugin", async (ct
|
|
|
597
589
|
const packageName = args.package;
|
|
598
590
|
const version = args.version;
|
|
599
591
|
if (!packageName) {
|
|
600
|
-
|
|
601
|
-
process.exit(1);
|
|
592
|
+
throw new Error("Package name required. Usage: c8ctl upgrade plugin <package-name> [version]");
|
|
602
593
|
}
|
|
603
594
|
// Check if plugin is registered
|
|
604
595
|
if (!isPluginRegistered(packageName)) {
|
|
605
|
-
logger.error(`Plugin "${packageName}" is not registered.`);
|
|
606
596
|
logger.info('Run "c8ctl list plugins" to see installed plugins');
|
|
607
|
-
|
|
597
|
+
throw new Error(`Plugin "${packageName}" is not registered.`);
|
|
608
598
|
}
|
|
609
599
|
const pluginEntry = getPluginEntry(packageName);
|
|
610
600
|
const pluginsDir = ensurePluginsDir();
|
|
@@ -612,10 +602,9 @@ export const upgradePluginCommand = defineCommand("upgrade", "plugin", async (ct
|
|
|
612
602
|
// Versioned upgrade needs to respect source type
|
|
613
603
|
// File-based plugins do not have a version selector in npm install syntax
|
|
614
604
|
if (version && source.startsWith("file:")) {
|
|
615
|
-
logger.error(`Cannot upgrade file-based plugin "${packageName}" to a specific version.`);
|
|
616
605
|
logger.info(`Plugin source is: ${source}`);
|
|
617
606
|
logger.info('Use "c8ctl load plugin --from <file-url>" after checking out the desired plugin version in your local source directory');
|
|
618
|
-
|
|
607
|
+
throw new Error(`Cannot upgrade file-based plugin "${packageName}" to a specific version.`);
|
|
619
608
|
}
|
|
620
609
|
const installTarget = resolveInstallTarget(source, packageName, version);
|
|
621
610
|
try {
|
|
@@ -651,14 +640,12 @@ export const downgradePluginCommand = defineCommand("downgrade", "plugin", async
|
|
|
651
640
|
const packageName = args.package;
|
|
652
641
|
const version = args.version;
|
|
653
642
|
if (!packageName || !version) {
|
|
654
|
-
|
|
655
|
-
process.exit(1);
|
|
643
|
+
throw new Error("Package name and version required. Usage: c8ctl downgrade plugin <package-name> <version>");
|
|
656
644
|
}
|
|
657
645
|
// Check if plugin is registered
|
|
658
646
|
if (!isPluginRegistered(packageName)) {
|
|
659
|
-
logger.error(`Plugin "${packageName}" is not registered.`);
|
|
660
647
|
logger.info('Run "c8ctl list plugins" to see installed plugins');
|
|
661
|
-
|
|
648
|
+
throw new Error(`Plugin "${packageName}" is not registered.`);
|
|
662
649
|
}
|
|
663
650
|
const pluginEntry = getPluginEntry(packageName);
|
|
664
651
|
const pluginsDir = ensurePluginsDir();
|
|
@@ -666,10 +653,9 @@ export const downgradePluginCommand = defineCommand("downgrade", "plugin", async
|
|
|
666
653
|
// Downgrade needs to respect the plugin source
|
|
667
654
|
// File-based plugins do not have a version selector in npm install syntax
|
|
668
655
|
if (source.startsWith("file:")) {
|
|
669
|
-
logger.error(`Cannot downgrade file-based plugin "${packageName}" by version.`);
|
|
670
656
|
logger.info(`Plugin source is: ${source}`);
|
|
671
657
|
logger.info('Use "c8ctl load plugin --from <file-url>" after checking out the desired plugin version in your local source directory');
|
|
672
|
-
|
|
658
|
+
throw new Error(`Cannot downgrade file-based plugin "${packageName}" by version.`);
|
|
673
659
|
}
|
|
674
660
|
const installTarget = resolveInstallTarget(source, packageName, version);
|
|
675
661
|
try {
|
|
@@ -708,17 +694,15 @@ export const initPluginCommand = defineCommand("init", "plugin", async (ctx, _fl
|
|
|
708
694
|
? rawName.slice("c8ctl-plugin-".length)
|
|
709
695
|
: rawName;
|
|
710
696
|
if (!pluginName) {
|
|
711
|
-
logger.error('Plugin name cannot be empty. Provide a name suffix after "c8ctl-plugin-".');
|
|
712
697
|
logger.info("Example: c8ctl init plugin myplugin");
|
|
713
|
-
|
|
698
|
+
throw new Error('Plugin name cannot be empty. Provide a name suffix after "c8ctl-plugin-".');
|
|
714
699
|
}
|
|
715
700
|
const dirName = `c8ctl-plugin-${pluginName}`;
|
|
716
701
|
const pluginDir = resolve(process.cwd(), dirName);
|
|
717
702
|
// Check if directory already exists
|
|
718
703
|
if (existsSync(pluginDir)) {
|
|
719
|
-
logger.error(`Directory "${dirName}" already exists.`);
|
|
720
704
|
logger.info("Choose a different name or remove the existing directory");
|
|
721
|
-
|
|
705
|
+
throw new Error(`Directory "${dirName}" already exists.`);
|
|
722
706
|
}
|
|
723
707
|
try {
|
|
724
708
|
logger.info(`Creating plugin: ${dirName}...`);
|