@camunda8/cli 2.8.0-alpha.1 → 2.8.0-alpha.11
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/PLUGIN-HELP.md +170 -8
- package/README.md +1186 -73
- package/dist/command-dispatch.d.ts.map +1 -1
- package/dist/command-dispatch.js +5 -3
- package/dist/command-dispatch.js.map +1 -1
- package/dist/command-framework.d.ts.map +1 -1
- package/dist/command-framework.js +22 -1
- package/dist/command-framework.js.map +1 -1
- package/dist/command-registry.d.ts +61 -311
- package/dist/command-registry.d.ts.map +1 -1
- package/dist/command-registry.js +64 -33
- package/dist/command-registry.js.map +1 -1
- package/dist/commands/completion.d.ts +16 -33
- package/dist/commands/completion.d.ts.map +1 -1
- package/dist/commands/completion.js +31 -689
- package/dist/commands/completion.js.map +1 -1
- package/dist/commands/mcp-proxy.d.ts +0 -17
- package/dist/commands/mcp-proxy.d.ts.map +1 -1
- package/dist/commands/mcp-proxy.js +3 -104
- package/dist/commands/mcp-proxy.js.map +1 -1
- package/dist/commands/open.d.ts +3 -44
- package/dist/commands/open.d.ts.map +1 -1
- package/dist/commands/open.js +5 -81
- package/dist/commands/open.js.map +1 -1
- package/dist/commands/plugins.d.ts +23 -8
- package/dist/commands/plugins.d.ts.map +1 -1
- package/dist/commands/plugins.js +58 -29
- package/dist/commands/plugins.js.map +1 -1
- package/dist/commands/run.d.ts +8 -8
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +60 -60
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/search.d.ts +2 -39
- package/dist/commands/search.d.ts.map +1 -1
- package/dist/commands/search.js +2 -83
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/session.d.ts +1 -0
- package/dist/commands/session.d.ts.map +1 -1
- package/dist/commands/session.js +5 -0
- package/dist/commands/session.js.map +1 -1
- package/dist/commands/watch.d.ts +2 -1
- package/dist/commands/watch.d.ts.map +1 -1
- package/dist/commands/watch.js +17 -8
- package/dist/commands/watch.js.map +1 -1
- package/dist/completion.d.ts +36 -0
- package/dist/completion.d.ts.map +1 -0
- package/dist/completion.js +816 -0
- package/dist/completion.js.map +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +19 -1
- package/dist/config.js.map +1 -1
- package/dist/{commands/deployments.d.ts → deployments.d.ts} +1 -1
- package/dist/deployments.d.ts.map +1 -0
- package/dist/{commands/deployments.js → deployments.js} +8 -8
- package/dist/deployments.js.map +1 -0
- package/dist/help.d.ts.map +1 -0
- package/dist/{commands/help.js → help.js} +68 -4
- package/dist/help.js.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +285 -9
- package/dist/index.js.map +1 -1
- package/dist/mcp-proxy-helpers.d.ts +23 -0
- package/dist/mcp-proxy-helpers.d.ts.map +1 -0
- package/dist/mcp-proxy-helpers.js +109 -0
- package/dist/mcp-proxy-helpers.js.map +1 -0
- package/dist/open-helpers.d.ts +52 -0
- package/dist/open-helpers.d.ts.map +1 -0
- package/dist/open-helpers.js +88 -0
- package/dist/open-helpers.js.map +1 -0
- package/dist/plugin-loader.d.ts +102 -2
- package/dist/plugin-loader.d.ts.map +1 -1
- package/dist/plugin-loader.js +262 -22
- package/dist/plugin-loader.js.map +1 -1
- package/dist/plugin-version.d.ts +15 -0
- package/dist/plugin-version.d.ts.map +1 -0
- package/dist/plugin-version.js +37 -0
- package/dist/plugin-version.js.map +1 -0
- package/dist/search-helpers.d.ts +46 -0
- package/dist/search-helpers.d.ts.map +1 -0
- package/dist/search-helpers.js +90 -0
- package/dist/search-helpers.js.map +1 -0
- package/dist/watch-constants.d.ts +7 -0
- package/dist/watch-constants.d.ts.map +1 -0
- package/dist/watch-constants.js +7 -0
- package/dist/watch-constants.js.map +1 -0
- package/package.json +11 -7
- package/dist/commands/deployments.d.ts.map +0 -1
- package/dist/commands/deployments.js.map +0 -1
- package/dist/commands/help.d.ts.map +0 -1
- package/dist/commands/help.js.map +0 -1
- /package/dist/{commands/help.d.ts → help.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAErE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAC7C,YAAY,EACZ,SAAS,EACT,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;IACpB,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;IAC9B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;QAC9B,iBAAiB,CAAC,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACzE,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,iEAAiE;IACjE,kEAAkE;IAClE,qEAAqE;IACrE,mEAAmE;IACnE,oDAAoD;IACpD,EAAE;IACF,sEAAsE;IACtE,oEAAoE;IACpE,oEAAoE;IACpE,qEAAqE;IACrE,8DAA8D;IAC9D,qEAAqE;IACrE,gEAAgE;IAChE,cAAc,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC;IACtC,OAAO,SAAS,CAAC;AAClB,CAAC,CACD,CAAC"}
|
|
@@ -1,20 +1,3 @@
|
|
|
1
|
-
import type { CamundaClient } from "@camunda8/orchestration-cluster-api";
|
|
2
|
-
import { Logger } from "../logger.ts";
|
|
3
|
-
/**
|
|
4
|
-
* Creates a custom fetch function that injects Camunda authentication headers
|
|
5
|
-
* and handles token refresh on 401 errors.
|
|
6
|
-
*
|
|
7
|
-
* @param camundaClient - The Camunda client instance for auth
|
|
8
|
-
* @param timeout - Request timeout in milliseconds (default: 60000)
|
|
9
|
-
* @returns Custom fetch function compatible with MCP SDK transport
|
|
10
|
-
*/
|
|
11
|
-
export declare function createCamundaFetch(camundaClient: CamundaClient, logger: Logger, timeout?: number): typeof fetch;
|
|
12
|
-
/**
|
|
13
|
-
* Normalize remote MCP URL to ensure it points to the MCP endpoint (assuming it ends with /mcp/cluster).
|
|
14
|
-
* - If URL has no path or just "/", append "/mcp/cluster"
|
|
15
|
-
* - If URL ends with "/v2" or "/v2/", replace with "/mcp/cluster"
|
|
16
|
-
*/
|
|
17
|
-
export declare function normalizeRemoteMcpUrl(url: string, mcpServerPath: string): string;
|
|
18
1
|
/**
|
|
19
2
|
* Run an STDIO ↔ remote-HTTP MCP proxy with Camunda authentication.
|
|
20
3
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-proxy.d.ts","sourceRoot":"","sources":["../../src/commands/mcp-proxy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mcp-proxy.d.ts","sourceRoot":"","sources":["../../src/commands/mcp-proxy.ts"],"names":[],"mappings":"AAuNA;;;;;GAKG;AACH,eAAO,MAAM,eAAe,mEAiE1B,CAAC"}
|
|
@@ -6,111 +6,10 @@ import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextpro
|
|
|
6
6
|
import { createClient } from "../client.js";
|
|
7
7
|
import { defineCommand } from "../command-framework.js";
|
|
8
8
|
import { normalizeToError } from "../errors.js";
|
|
9
|
-
import {
|
|
9
|
+
import { getVersion } from "../help.js";
|
|
10
|
+
import { Logger } from "../logger.js";
|
|
11
|
+
import { createCamundaFetch, normalizeRemoteMcpUrl, } from "../mcp-proxy-helpers.js";
|
|
10
12
|
import { c8ctl } from "../runtime.js";
|
|
11
|
-
import { getVersion } from "./help.js";
|
|
12
|
-
/**
|
|
13
|
-
* Creates a custom fetch function that injects Camunda authentication headers
|
|
14
|
-
* and handles token refresh on 401 errors.
|
|
15
|
-
*
|
|
16
|
-
* @param camundaClient - The Camunda client instance for auth
|
|
17
|
-
* @param timeout - Request timeout in milliseconds (default: 60000)
|
|
18
|
-
* @returns Custom fetch function compatible with MCP SDK transport
|
|
19
|
-
*/
|
|
20
|
-
export function createCamundaFetch(camundaClient, logger, timeout = 60000) {
|
|
21
|
-
return async (input, init) => {
|
|
22
|
-
// Get fresh auth headers from orchestration-cluster-api
|
|
23
|
-
const authHeaders = await camundaClient.getAuthHeaders();
|
|
24
|
-
// Merge with existing headers
|
|
25
|
-
const headers = new Headers(init?.headers);
|
|
26
|
-
Object.entries(authHeaders).forEach(([key, value]) => {
|
|
27
|
-
headers.set(key, value);
|
|
28
|
-
});
|
|
29
|
-
// Create timeout abort controller
|
|
30
|
-
const timeoutController = new AbortController();
|
|
31
|
-
const timeoutId = setTimeout(() => timeoutController.abort(), timeout);
|
|
32
|
-
try {
|
|
33
|
-
// Merge abort signals (SDK's signal + timeout signal)
|
|
34
|
-
const signal = init?.signal
|
|
35
|
-
? AbortSignal.any([init.signal, timeoutController.signal])
|
|
36
|
-
: timeoutController.signal;
|
|
37
|
-
// Make the request with merged headers
|
|
38
|
-
const response = await fetch(input, { ...init, headers, signal });
|
|
39
|
-
// Handle 401 with token refresh and retry
|
|
40
|
-
if (response.status === 401) {
|
|
41
|
-
clearTimeout(timeoutId);
|
|
42
|
-
logger.info("Received 401 (Unauthorized) response, attempting token refresh and retrying");
|
|
43
|
-
// Force token refresh and rebuild headers
|
|
44
|
-
await camundaClient.forceAuthRefresh();
|
|
45
|
-
const freshHeaders = await camundaClient.getAuthHeaders();
|
|
46
|
-
const retryHeaders = new Headers(init?.headers);
|
|
47
|
-
Object.entries(freshHeaders).forEach(([key, value]) => {
|
|
48
|
-
retryHeaders.set(key, value);
|
|
49
|
-
});
|
|
50
|
-
// Retry with fresh token and timeout
|
|
51
|
-
const retryTimeoutController = new AbortController();
|
|
52
|
-
const retryTimeoutId = setTimeout(() => retryTimeoutController.abort(), timeout);
|
|
53
|
-
try {
|
|
54
|
-
const retrySignal = init?.signal
|
|
55
|
-
? AbortSignal.any([init.signal, retryTimeoutController.signal])
|
|
56
|
-
: retryTimeoutController.signal;
|
|
57
|
-
return await fetch(input, {
|
|
58
|
-
...init,
|
|
59
|
-
headers: retryHeaders,
|
|
60
|
-
signal: retrySignal,
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
finally {
|
|
64
|
-
clearTimeout(retryTimeoutId);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
clearTimeout(timeoutId);
|
|
68
|
-
return response;
|
|
69
|
-
}
|
|
70
|
-
catch (error) {
|
|
71
|
-
clearTimeout(timeoutId);
|
|
72
|
-
// Convert AbortError to more descriptive timeout error
|
|
73
|
-
if (error instanceof Error && error.name === "AbortError") {
|
|
74
|
-
throw new Error(`Request timeout after ${timeout}ms`);
|
|
75
|
-
}
|
|
76
|
-
// Walk the cause chain to handle both Node 22 (shallow) and Node 24 (deeper nesting)
|
|
77
|
-
let cause = error instanceof Error ? error.cause : undefined;
|
|
78
|
-
while (cause != null) {
|
|
79
|
-
if (isRecord(cause) && cause.code === "ECONNREFUSED") {
|
|
80
|
-
const url = typeof input === "string" ? input : input.toString();
|
|
81
|
-
throw new Error(`Connection refused: Unable to connect to ${url}. Please verify the server is running and accessible.`);
|
|
82
|
-
}
|
|
83
|
-
cause = isRecord(cause) ? cause.cause : undefined;
|
|
84
|
-
}
|
|
85
|
-
throw error;
|
|
86
|
-
}
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Normalize remote MCP URL to ensure it points to the MCP endpoint (assuming it ends with /mcp/cluster).
|
|
91
|
-
* - If URL has no path or just "/", append "/mcp/cluster"
|
|
92
|
-
* - If URL ends with "/v2" or "/v2/", replace with "/mcp/cluster"
|
|
93
|
-
*/
|
|
94
|
-
export function normalizeRemoteMcpUrl(url, mcpServerPath) {
|
|
95
|
-
try {
|
|
96
|
-
const urlObj = new URL(url);
|
|
97
|
-
// If path is empty or just "/", append MCP server path
|
|
98
|
-
if (urlObj.pathname === "" || urlObj.pathname === "/") {
|
|
99
|
-
urlObj.pathname = mcpServerPath;
|
|
100
|
-
return urlObj.toString();
|
|
101
|
-
}
|
|
102
|
-
// If path ends with "/v2" (with or without trailing slash), replace with MCP server path
|
|
103
|
-
if (urlObj.pathname.match(/\/v2\/?$/)) {
|
|
104
|
-
urlObj.pathname = urlObj.pathname.replace(/\/v2\/?$/, mcpServerPath);
|
|
105
|
-
return urlObj.toString();
|
|
106
|
-
}
|
|
107
|
-
// Already ends with MCP server path or has custom path - keep as is
|
|
108
|
-
return url;
|
|
109
|
-
}
|
|
110
|
-
catch (_e) {
|
|
111
|
-
return url;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
13
|
/**
|
|
115
14
|
* MCP Proxy that bridges STDIO (local) to HTTP (remote) with Camunda authentication.
|
|
116
15
|
*
|
|
@@ -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,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"mcp-proxy.js","sourceRoot":"","sources":["../../src/commands/mcp-proxy.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/open.d.ts
CHANGED
|
@@ -1,51 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Open command - opens Camunda web applications in a browser
|
|
3
|
-
*/
|
|
4
|
-
export declare const OPEN_APPS: readonly ["operate", "tasklist", "modeler", "optimize"];
|
|
5
|
-
export type AppName = (typeof OPEN_APPS)[number];
|
|
6
|
-
export declare function isAppName(value: string): value is AppName;
|
|
7
|
-
/**
|
|
8
|
-
* Derive the URL of a Camunda web application from the cluster base URL.
|
|
9
|
-
*
|
|
10
|
-
* Only supported for self-managed clusters where the base URL is the REST API
|
|
11
|
-
* endpoint (e.g. `http://localhost:8080/v2`). Returns `null` when the URL
|
|
12
|
-
* does not look like a self-managed gateway (no `/v<n>` suffix).
|
|
13
|
-
*/
|
|
14
|
-
export declare function deriveAppUrl(baseUrl: string, app: AppName): string | null;
|
|
15
|
-
/**
|
|
16
|
-
* Determine the platform-appropriate command and arguments to open a URL.
|
|
17
|
-
*
|
|
18
|
-
* WSL is detected explicitly because it reports `linux`, but should use the
|
|
19
|
-
* Windows opener via interop rather than relying on `xdg-open`.
|
|
20
3
|
*
|
|
21
|
-
*
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
command: string;
|
|
25
|
-
args: string[];
|
|
26
|
-
};
|
|
27
|
-
/**
|
|
28
|
-
* Open a URL in the default system browser.
|
|
29
|
-
* Works on macOS, Linux, native Windows, and WSL.
|
|
30
|
-
*/
|
|
31
|
-
export declare function openUrl(url: string): void;
|
|
32
|
-
/**
|
|
33
|
-
* Validated inputs for the open command.
|
|
34
|
-
*/
|
|
35
|
-
export interface OpenAppInput {
|
|
36
|
-
app: AppName;
|
|
37
|
-
profile?: string;
|
|
38
|
-
dryRun?: boolean;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Validate raw CLI positional + options for the open command.
|
|
42
|
-
* Returns a fully validated and type-narrowed input object.
|
|
43
|
-
* Exits with code 1 on invalid input.
|
|
4
|
+
* Pure helpers (URL derivation, platform browser detection, validation,
|
|
5
|
+
* `openUrl`) live in `src/open-helpers.ts` so they can be unit-tested
|
|
6
|
+
* without violating the test→commands import boundary (#291).
|
|
44
7
|
*/
|
|
45
|
-
export declare function validateOpenAppOptions(app: string | undefined, options: {
|
|
46
|
-
profile?: string;
|
|
47
|
-
dryRun?: boolean;
|
|
48
|
-
}): OpenAppInput;
|
|
49
8
|
/**
|
|
50
9
|
* Open a Camunda web application in the default browser.
|
|
51
10
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open.d.ts","sourceRoot":"","sources":["../../src/commands/open.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"open.d.ts","sourceRoot":"","sources":["../../src/commands/open.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAYH;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,8DAsBzB,CAAC;AAEH,sDAAsD;AACtD,eAAO,MAAM,eAAe,kEAK1B,CAAC"}
|
package/dist/commands/open.js
CHANGED
|
@@ -1,89 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Open command - opens Camunda web applications in a browser
|
|
3
|
+
*
|
|
4
|
+
* Pure helpers (URL derivation, platform browser detection, validation,
|
|
5
|
+
* `openUrl`) live in `src/open-helpers.ts` so they can be unit-tested
|
|
6
|
+
* without violating the test→commands import boundary (#291).
|
|
3
7
|
*/
|
|
4
|
-
import { spawn } from "node:child_process";
|
|
5
|
-
import { platform } from "node:os";
|
|
6
8
|
import { defineCommand } from "../command-framework.js";
|
|
7
|
-
import { requireOneOf, requirePositional } from "../command-validation.js";
|
|
8
9
|
import { resolveClusterConfig } from "../config.js";
|
|
9
|
-
import {
|
|
10
|
-
export const OPEN_APPS = [
|
|
11
|
-
"operate",
|
|
12
|
-
"tasklist",
|
|
13
|
-
"modeler",
|
|
14
|
-
"optimize",
|
|
15
|
-
];
|
|
16
|
-
export function isAppName(value) {
|
|
17
|
-
// biome-ignore lint/plugin: safe widening — readonly tuple to readonly string[] for .includes() compatibility
|
|
18
|
-
return OPEN_APPS.includes(value);
|
|
19
|
-
}
|
|
20
|
-
/** Pattern that matches a self-managed REST API version suffix, e.g. `/v2` */
|
|
21
|
-
const VERSION_SUFFIX_RE = /\/v\d+\/?$/;
|
|
22
|
-
/**
|
|
23
|
-
* Derive the URL of a Camunda web application from the cluster base URL.
|
|
24
|
-
*
|
|
25
|
-
* Only supported for self-managed clusters where the base URL is the REST API
|
|
26
|
-
* endpoint (e.g. `http://localhost:8080/v2`). Returns `null` when the URL
|
|
27
|
-
* does not look like a self-managed gateway (no `/v<n>` suffix).
|
|
28
|
-
*/
|
|
29
|
-
export function deriveAppUrl(baseUrl, app) {
|
|
30
|
-
if (!VERSION_SUFFIX_RE.test(baseUrl)) {
|
|
31
|
-
return null;
|
|
32
|
-
}
|
|
33
|
-
const base = baseUrl.replace(VERSION_SUFFIX_RE, "").replace(/\/$/, "");
|
|
34
|
-
return `${base}/${app}`;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Determine the platform-appropriate command and arguments to open a URL.
|
|
38
|
-
*
|
|
39
|
-
* WSL is detected explicitly because it reports `linux`, but should use the
|
|
40
|
-
* Windows opener via interop rather than relying on `xdg-open`.
|
|
41
|
-
*
|
|
42
|
-
* Accepts optional overrides for testing.
|
|
43
|
-
*/
|
|
44
|
-
export function getBrowserCommand(url, plat = platform(), env = process.env) {
|
|
45
|
-
const isWsl = plat === "linux" && Boolean(env.WSL_DISTRO_NAME || env.WSL_INTEROP);
|
|
46
|
-
if (plat === "darwin") {
|
|
47
|
-
return { command: "open", args: [url] };
|
|
48
|
-
}
|
|
49
|
-
if (plat === "win32" || isWsl) {
|
|
50
|
-
return { command: "cmd.exe", args: ["/c", "start", "", url] };
|
|
51
|
-
}
|
|
52
|
-
// Linux
|
|
53
|
-
return { command: "xdg-open", args: [url] };
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Open a URL in the default system browser.
|
|
57
|
-
* Works on macOS, Linux, native Windows, and WSL.
|
|
58
|
-
*/
|
|
59
|
-
export function openUrl(url) {
|
|
60
|
-
const logger = getLogger();
|
|
61
|
-
const { command, args } = getBrowserCommand(url);
|
|
62
|
-
const child = spawn(command, args, { detached: true, stdio: "ignore" });
|
|
63
|
-
child.on("error", (error) => {
|
|
64
|
-
if (error.code === "ENOENT") {
|
|
65
|
-
logger.error(`Could not open the browser automatically because '${command}' is not available on PATH.`);
|
|
66
|
-
logger.info(`Open this URL manually: ${url}`);
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
logger.error(`Could not open the browser automatically: ${error.message}`);
|
|
70
|
-
logger.info(`Open this URL manually: ${url}`);
|
|
71
|
-
});
|
|
72
|
-
child.unref();
|
|
73
|
-
}
|
|
74
|
-
const OPEN_USAGE = "Usage: c8 open <app> [--profile <name>]";
|
|
75
|
-
/**
|
|
76
|
-
* Validate raw CLI positional + options for the open command.
|
|
77
|
-
* Returns a fully validated and type-narrowed input object.
|
|
78
|
-
* Exits with code 1 on invalid input.
|
|
79
|
-
*/
|
|
80
|
-
export function validateOpenAppOptions(app, options) {
|
|
81
|
-
return {
|
|
82
|
-
app: requireOneOf(requirePositional(app, "Application", OPEN_USAGE), OPEN_APPS, "application", OPEN_USAGE),
|
|
83
|
-
profile: options.profile,
|
|
84
|
-
dryRun: options.dryRun,
|
|
85
|
-
};
|
|
86
|
-
}
|
|
10
|
+
import { deriveAppUrl, openUrl, validateOpenAppOptions, } from "../open-helpers.js";
|
|
87
11
|
// ─── defineCommand ───────────────────────────────────────────────────────────
|
|
88
12
|
/**
|
|
89
13
|
* Open a Camunda web application in the default browser.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open.js","sourceRoot":"","sources":["../../src/commands/open.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"open.js","sourceRoot":"","sources":["../../src/commands/open.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EACN,YAAY,EACZ,OAAO,EACP,sBAAsB,GACtB,MAAM,oBAAoB,CAAC;AAE5B,gFAAgF;AAEhF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;IACrE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,sBAAsB,CAAC,GAAG,CAAC,QAAQ,EAAE;QACrE,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,MAAM,EAAE,GAAG,CAAC,MAAM;KAClB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAE9C,IAAI,CAAC,GAAG,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CACd,iBAAiB,GAAG,uBAAuB,MAAM,CAAC,OAAO,IAAI;YAC5D,+DAA+D;YAC/D,iEAAiE,CAClE,CAAC;IACH,CAAC;IAED,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,GAAG,QAAQ,GAAG,EAAE,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,CAAC;IACd,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACzB,CAAC,CAAC,CAAC;AAEH,sDAAsD;AACtD,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAAC,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;IAC1E,MAAM,GAAG,GAAG,yCAAyC,CAAC;IACtD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,CAAC;IACb,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACzB,CAAC,CAAC,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Plugin management commands
|
|
3
3
|
*/
|
|
4
|
+
import { getInstalledPluginVersion, getVersionFromSource } from "../plugin-version.ts";
|
|
5
|
+
export { getInstalledPluginVersion, getVersionFromSource };
|
|
4
6
|
/**
|
|
5
7
|
* Load a plugin (npm install wrapper)
|
|
6
8
|
* Supports either package name or --from flag with URL
|
|
@@ -12,14 +14,6 @@ export declare const loadPluginCommand: import("../command-framework.ts").Comman
|
|
|
12
14
|
* Uninstalls from global plugins directory
|
|
13
15
|
*/
|
|
14
16
|
export declare const unloadPluginCommand: import("../command-framework.ts").CommandHandler<"unload", "plugin">;
|
|
15
|
-
/**
|
|
16
|
-
* Get installed plugin version from package.json
|
|
17
|
-
*/
|
|
18
|
-
export declare function getInstalledPluginVersion(nodeModulesPath: string, packageName: string): string | null;
|
|
19
|
-
/**
|
|
20
|
-
* Extract version from a registry source like package@version
|
|
21
|
-
*/
|
|
22
|
-
export declare function getVersionFromSource(source: string, packageName: string): string | null;
|
|
23
17
|
/**
|
|
24
18
|
* List installed plugins
|
|
25
19
|
*/
|
|
@@ -41,4 +35,25 @@ export declare const downgradePluginCommand: import("../command-framework.ts").C
|
|
|
41
35
|
* Initialize a new plugin project with TypeScript template
|
|
42
36
|
*/
|
|
43
37
|
export declare const initPluginCommand: import("../command-framework.ts").CommandHandler<"init", "plugin">;
|
|
38
|
+
/**
|
|
39
|
+
* Doctor — surface plugin-loading collisions detected at startup
|
|
40
|
+
* (#363). The loader applies first-registration-wins for both
|
|
41
|
+
* plugin-name collisions (two packages sharing `package.json#name`)
|
|
42
|
+
* and command-name collisions (two plugins exporting the same
|
|
43
|
+
* command). Both are logged at warn level when they happen, but a
|
|
44
|
+
* user who didn't see those warnings has no way to discover what was
|
|
45
|
+
* dropped. `c8ctl doctor plugin` re-renders that diagnostic on
|
|
46
|
+
* demand.
|
|
47
|
+
*
|
|
48
|
+
* The output is two sections:
|
|
49
|
+
* 1. Loaded plugins, with the command names that survived
|
|
50
|
+
* duplicate-name rejection.
|
|
51
|
+
* 2. Detected collisions, with kind, winner, loser, and (for
|
|
52
|
+
* command-name collisions) the affected command.
|
|
53
|
+
*
|
|
54
|
+
* Exit code is always 0 — the doctor reports state, it doesn't
|
|
55
|
+
* enforce policy. Returning non-zero would interfere with scripted
|
|
56
|
+
* use (e.g. piping into `jq` under `--json`).
|
|
57
|
+
*/
|
|
58
|
+
export declare const doctorPluginCommand: import("../command-framework.ts").CommandHandler<"doctor", "plugin">;
|
|
44
59
|
//# sourceMappingURL=plugins.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../src/commands/plugins.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../src/commands/plugins.ts"],"names":[],"mappings":"AAAA;;GAEG;AAsBH,OAAO,EACN,yBAAyB,EACzB,oBAAoB,EACpB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,CAAC;AAiC3D;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,oEAgG7B,CAAC;AAmLF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,sEA8F/B,CAAC;AAwFF;;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;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,mBAAmB,sEAkD/B,CAAC"}
|
package/dist/commands/plugins.js
CHANGED
|
@@ -9,8 +9,10 @@ import { defineCommand } from "../command-framework.js";
|
|
|
9
9
|
import { ensurePluginsDir } from "../config.js";
|
|
10
10
|
import { handleCommandError } from "../errors.js";
|
|
11
11
|
import { getLogger } from "../logger.js";
|
|
12
|
-
import { clearLoadedPlugins } from "../plugin-loader.js";
|
|
12
|
+
import { clearLoadedPlugins, getLoadedPluginSummaries, getPluginCollisions, } from "../plugin-loader.js";
|
|
13
13
|
import { addPluginToRegistry, getPluginEntry, getRegisteredPlugins, isPluginRegistered, removePluginFromRegistry, } from "../plugin-registry.js";
|
|
14
|
+
import { getInstalledPluginVersion, getVersionFromSource, } from "../plugin-version.js";
|
|
15
|
+
export { getInstalledPluginVersion, getVersionFromSource };
|
|
14
16
|
const __filename = fileURLToPath(import.meta.url);
|
|
15
17
|
const __dirname = dirname(__filename);
|
|
16
18
|
function isExecFileError(error) {
|
|
@@ -379,34 +381,6 @@ function scanInstalledPlugins(nodeModulesPath) {
|
|
|
379
381
|
}
|
|
380
382
|
return installedPlugins;
|
|
381
383
|
}
|
|
382
|
-
/**
|
|
383
|
-
* Get installed plugin version from package.json
|
|
384
|
-
*/
|
|
385
|
-
export function getInstalledPluginVersion(nodeModulesPath, packageName) {
|
|
386
|
-
const packagePath = join(nodeModulesPath, ...packageName.split("/"));
|
|
387
|
-
const packageJsonPath = join(packagePath, "package.json");
|
|
388
|
-
if (!existsSync(packageJsonPath)) {
|
|
389
|
-
return null;
|
|
390
|
-
}
|
|
391
|
-
try {
|
|
392
|
-
const pkgJson = JSON.parse(readFileSync(packageJsonPath, "utf-8"));
|
|
393
|
-
return typeof pkgJson.version === "string" ? pkgJson.version : null;
|
|
394
|
-
}
|
|
395
|
-
catch {
|
|
396
|
-
return null;
|
|
397
|
-
}
|
|
398
|
-
}
|
|
399
|
-
/**
|
|
400
|
-
* Extract version from a registry source like package@version
|
|
401
|
-
*/
|
|
402
|
-
export function getVersionFromSource(source, packageName) {
|
|
403
|
-
const packagePrefix = `${packageName}@`;
|
|
404
|
-
if (!source.startsWith(packagePrefix)) {
|
|
405
|
-
return null;
|
|
406
|
-
}
|
|
407
|
-
const version = source.slice(packagePrefix.length).trim();
|
|
408
|
-
return version.length > 0 ? version : null;
|
|
409
|
-
}
|
|
410
384
|
/**
|
|
411
385
|
* Check if plugin source points to URL/git-style location
|
|
412
386
|
*/
|
|
@@ -737,4 +711,59 @@ export const initPluginCommand = defineCommand("init", "plugin", async (ctx, _fl
|
|
|
737
711
|
handleCommandError(logger, "Failed to create plugin", error);
|
|
738
712
|
}
|
|
739
713
|
});
|
|
714
|
+
/**
|
|
715
|
+
* Doctor — surface plugin-loading collisions detected at startup
|
|
716
|
+
* (#363). The loader applies first-registration-wins for both
|
|
717
|
+
* plugin-name collisions (two packages sharing `package.json#name`)
|
|
718
|
+
* and command-name collisions (two plugins exporting the same
|
|
719
|
+
* command). Both are logged at warn level when they happen, but a
|
|
720
|
+
* user who didn't see those warnings has no way to discover what was
|
|
721
|
+
* dropped. `c8ctl doctor plugin` re-renders that diagnostic on
|
|
722
|
+
* demand.
|
|
723
|
+
*
|
|
724
|
+
* The output is two sections:
|
|
725
|
+
* 1. Loaded plugins, with the command names that survived
|
|
726
|
+
* duplicate-name rejection.
|
|
727
|
+
* 2. Detected collisions, with kind, winner, loser, and (for
|
|
728
|
+
* command-name collisions) the affected command.
|
|
729
|
+
*
|
|
730
|
+
* Exit code is always 0 — the doctor reports state, it doesn't
|
|
731
|
+
* enforce policy. Returning non-zero would interfere with scripted
|
|
732
|
+
* use (e.g. piping into `jq` under `--json`).
|
|
733
|
+
*/
|
|
734
|
+
export const doctorPluginCommand = defineCommand("doctor", "plugin", async (ctx, _flags, _args) => {
|
|
735
|
+
const { logger } = ctx;
|
|
736
|
+
const loaded = getLoadedPluginSummaries();
|
|
737
|
+
const collisions = getPluginCollisions();
|
|
738
|
+
if (logger.mode === "json") {
|
|
739
|
+
logger.json({ loaded, collisions });
|
|
740
|
+
return;
|
|
741
|
+
}
|
|
742
|
+
if (loaded.length === 0) {
|
|
743
|
+
logger.info("No plugins loaded.");
|
|
744
|
+
}
|
|
745
|
+
else {
|
|
746
|
+
logger.info(`Loaded plugins (${loaded.length}):`);
|
|
747
|
+
logger.table(loaded.map((p) => ({
|
|
748
|
+
Plugin: p.name,
|
|
749
|
+
Commands: p.commands.length === 0 ? "(none)" : p.commands.join(", "),
|
|
750
|
+
})));
|
|
751
|
+
}
|
|
752
|
+
if (collisions.length === 0) {
|
|
753
|
+
logger.info("");
|
|
754
|
+
logger.info("No plugin collisions detected.");
|
|
755
|
+
return;
|
|
756
|
+
}
|
|
757
|
+
logger.info("");
|
|
758
|
+
logger.info(`Detected collisions (${collisions.length}):`);
|
|
759
|
+
logger.table(collisions.map((c) => ({
|
|
760
|
+
Kind: c.kind,
|
|
761
|
+
Winner: c.winner,
|
|
762
|
+
Loser: c.loser,
|
|
763
|
+
Command: c.command ?? "—",
|
|
764
|
+
})));
|
|
765
|
+
logger.info("");
|
|
766
|
+
logger.info("Resolution policy: first-registration-wins. The losing plugin's command (or the entire losing plugin, for plugin-name collisions) was dropped at load time.");
|
|
767
|
+
logger.info("To resolve: uninstall one of the colliding plugins, or ask the plugin author to rename. See docs/plugin-collisions.md for the full policy.");
|
|
768
|
+
});
|
|
740
769
|
//# sourceMappingURL=plugins.js.map
|