@camunda8/cli 2.0.0-alpha.2
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/LICENSE +201 -0
- package/README.md +387 -0
- package/dist/client.d.ts +9 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +39 -0
- package/dist/client.js.map +1 -0
- package/dist/commands/deployments.d.ts +10 -0
- package/dist/commands/deployments.d.ts.map +1 -0
- package/dist/commands/deployments.js +221 -0
- package/dist/commands/deployments.js.map +1 -0
- package/dist/commands/help.d.ts +20 -0
- package/dist/commands/help.d.ts.map +1 -0
- package/dist/commands/help.js +116 -0
- package/dist/commands/help.js.map +1 -0
- package/dist/commands/incidents.d.ts +18 -0
- package/dist/commands/incidents.d.ts.map +1 -0
- package/dist/commands/incidents.js +62 -0
- package/dist/commands/incidents.js.map +1 -0
- package/dist/commands/jobs.d.ts +36 -0
- package/dist/commands/jobs.d.ts.map +1 -0
- package/dist/commands/jobs.js +129 -0
- package/dist/commands/jobs.js.map +1 -0
- package/dist/commands/messages.d.ts +22 -0
- package/dist/commands/messages.d.ts.map +1 -0
- package/dist/commands/messages.js +48 -0
- package/dist/commands/messages.js.map +1 -0
- package/dist/commands/plugins.d.ts +17 -0
- package/dist/commands/plugins.d.ts.map +1 -0
- package/dist/commands/plugins.js +113 -0
- package/dist/commands/plugins.js.map +1 -0
- package/dist/commands/process-instances.d.ts +34 -0
- package/dist/commands/process-instances.d.ts.map +1 -0
- package/dist/commands/process-instances.js +116 -0
- package/dist/commands/process-instances.js.map +1 -0
- package/dist/commands/profiles.d.ts +23 -0
- package/dist/commands/profiles.d.ts.map +1 -0
- package/dist/commands/profiles.js +76 -0
- package/dist/commands/profiles.js.map +1 -0
- package/dist/commands/run.d.ts +11 -0
- package/dist/commands/run.d.ts.map +1 -0
- package/dist/commands/run.js +61 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/commands/session.d.ts +20 -0
- package/dist/commands/session.d.ts.map +1 -0
- package/dist/commands/session.js +54 -0
- package/dist/commands/session.js.map +1 -0
- package/dist/commands/topology.d.ts +10 -0
- package/dist/commands/topology.d.ts.map +1 -0
- package/dist/commands/topology.js +21 -0
- package/dist/commands/topology.js.map +1 -0
- package/dist/commands/user-tasks.d.ts +20 -0
- package/dist/commands/user-tasks.d.ts.map +1 -0
- package/dist/commands/user-tasks.js +78 -0
- package/dist/commands/user-tasks.js.map +1 -0
- package/dist/commands/watch.d.ts +10 -0
- package/dist/commands/watch.d.ts.map +1 -0
- package/dist/commands/watch.js +76 -0
- package/dist/commands/watch.js.map +1 -0
- package/dist/config.d.ts +129 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +356 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +405 -0
- package/dist/index.js.map +1 -0
- package/dist/logger.d.ts +22 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +132 -0
- package/dist/logger.js.map +1 -0
- package/dist/plugin-loader.d.ts +32 -0
- package/dist/plugin-loader.d.ts.map +1 -0
- package/dist/plugin-loader.js +104 -0
- package/dist/plugin-loader.js.map +1 -0
- package/dist/runtime.d.ts +20 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +35 -0
- package/dist/runtime.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Message commands
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Publish message
|
|
6
|
+
*/
|
|
7
|
+
export declare function publishMessage(name: string, options: {
|
|
8
|
+
profile?: string;
|
|
9
|
+
correlationKey?: string;
|
|
10
|
+
variables?: string;
|
|
11
|
+
timeToLive?: number;
|
|
12
|
+
}): Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* Correlate message (same as publish in most cases)
|
|
15
|
+
*/
|
|
16
|
+
export declare function correlateMessage(name: string, options: {
|
|
17
|
+
profile?: string;
|
|
18
|
+
correlationKey?: string;
|
|
19
|
+
variables?: string;
|
|
20
|
+
timeToLive?: number;
|
|
21
|
+
}): Promise<void>;
|
|
22
|
+
//# sourceMappingURL=messages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/commands/messages.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH;;GAEG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BhB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,IAAI,CAAC,CAIhB"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Message commands
|
|
3
|
+
*/
|
|
4
|
+
import { getLogger } from "../logger.js";
|
|
5
|
+
import { createClient } from "../client.js";
|
|
6
|
+
import { resolveTenantId } from "../config.js";
|
|
7
|
+
/**
|
|
8
|
+
* Publish message
|
|
9
|
+
*/
|
|
10
|
+
export async function publishMessage(name, options) {
|
|
11
|
+
const logger = getLogger();
|
|
12
|
+
const client = createClient(options.profile);
|
|
13
|
+
const tenantId = resolveTenantId(options.profile);
|
|
14
|
+
try {
|
|
15
|
+
const request = {
|
|
16
|
+
name,
|
|
17
|
+
tenantId,
|
|
18
|
+
correlationKey: options.correlationKey || '',
|
|
19
|
+
};
|
|
20
|
+
if (options.variables) {
|
|
21
|
+
try {
|
|
22
|
+
request.variables = JSON.parse(options.variables);
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
logger.error('Invalid JSON for variables', error);
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
if (options.timeToLive !== undefined) {
|
|
30
|
+
request.timeToLive = options.timeToLive;
|
|
31
|
+
}
|
|
32
|
+
await client.publishMessage(request);
|
|
33
|
+
logger.success(`Message '${name}' published`);
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
logger.error(`Failed to publish message '${name}'`, error);
|
|
37
|
+
process.exit(1);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Correlate message (same as publish in most cases)
|
|
42
|
+
*/
|
|
43
|
+
export async function correlateMessage(name, options) {
|
|
44
|
+
// For now, correlate is the same as publish
|
|
45
|
+
// In the SDK, both use the same underlying method
|
|
46
|
+
await publishMessage(name, options);
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/commands/messages.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAY,EAAE,OAKlD;IACC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAElD,IAAI,CAAC;QACH,MAAM,OAAO,GAAQ;YACnB,IAAI;YACJ,QAAQ;YACR,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,EAAE;SAC7C,CAAC;QAEF,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,IAAI,CAAC;gBACH,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACpD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAc,CAAC,CAAC;gBAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACrC,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QAC1C,CAAC;QAED,MAAM,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,CAAC,OAAO,CAAC,YAAY,IAAI,aAAa,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,8BAA8B,IAAI,GAAG,EAAE,KAAc,CAAC,CAAC;QACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAY,EAAE,OAKpD;IACC,4CAA4C;IAC5C,kDAAkD;IAClD,MAAM,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin management commands
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Load a plugin (npm install wrapper)
|
|
6
|
+
* Supports either package name or --from flag with URL
|
|
7
|
+
*/
|
|
8
|
+
export declare function loadPlugin(packageNameOrFrom?: string, fromUrl?: string): Promise<void>;
|
|
9
|
+
/**
|
|
10
|
+
* Unload a plugin (npm uninstall wrapper)
|
|
11
|
+
*/
|
|
12
|
+
export declare function unloadPlugin(packageName: string): Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* List installed plugins
|
|
15
|
+
*/
|
|
16
|
+
export declare function listPlugins(): void;
|
|
17
|
+
//# sourceMappingURL=plugins.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../src/commands/plugins.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH;;;GAGG;AACH,wBAAsB,UAAU,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC5F;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBrE;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CA8ClC"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin management commands
|
|
3
|
+
*/
|
|
4
|
+
import { getLogger } from "../logger.js";
|
|
5
|
+
import { execSync } from 'node:child_process';
|
|
6
|
+
import { readFileSync, existsSync } from 'node:fs';
|
|
7
|
+
import { join } from 'node:path';
|
|
8
|
+
import { clearLoadedPlugins } from "../plugin-loader.js";
|
|
9
|
+
/**
|
|
10
|
+
* Load a plugin (npm install wrapper)
|
|
11
|
+
* Supports either package name or --from flag with URL
|
|
12
|
+
*/
|
|
13
|
+
export async function loadPlugin(packageNameOrFrom, fromUrl) {
|
|
14
|
+
const logger = getLogger();
|
|
15
|
+
// Validate exclusive usage
|
|
16
|
+
if (packageNameOrFrom && fromUrl) {
|
|
17
|
+
logger.error('Cannot specify both package name and --from flag. Use either "c8 load plugin <name>" or "c8 load plugin --from <url>"');
|
|
18
|
+
process.exit(1);
|
|
19
|
+
}
|
|
20
|
+
if (!packageNameOrFrom && !fromUrl) {
|
|
21
|
+
logger.error('Package name or --from URL required. Usage: c8 load plugin <package-name> OR c8 load plugin --from <url>');
|
|
22
|
+
process.exit(1);
|
|
23
|
+
}
|
|
24
|
+
try {
|
|
25
|
+
if (fromUrl) {
|
|
26
|
+
// Install from URL (file://, https://, git://, etc.)
|
|
27
|
+
logger.info(`Loading plugin from: ${fromUrl}...`);
|
|
28
|
+
execSync(`npm install ${fromUrl}`, { stdio: 'inherit' });
|
|
29
|
+
logger.success('Plugin loaded successfully from URL', fromUrl);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
// Install from npm registry by package name
|
|
33
|
+
logger.info(`Loading plugin: ${packageNameOrFrom}...`);
|
|
34
|
+
execSync(`npm install ${packageNameOrFrom}`, { stdio: 'inherit' });
|
|
35
|
+
logger.success('Plugin loaded successfully', packageNameOrFrom);
|
|
36
|
+
}
|
|
37
|
+
// Note: Plugin will be available on next CLI invocation
|
|
38
|
+
// We don't reload in the same process to avoid module cache issues
|
|
39
|
+
logger.info('Plugin will be available on next command execution');
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
logger.error('Failed to load plugin', error);
|
|
43
|
+
process.exit(1);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Unload a plugin (npm uninstall wrapper)
|
|
48
|
+
*/
|
|
49
|
+
export async function unloadPlugin(packageName) {
|
|
50
|
+
const logger = getLogger();
|
|
51
|
+
if (!packageName) {
|
|
52
|
+
logger.error('Package name required. Usage: c8 unload plugin <package-name>');
|
|
53
|
+
process.exit(1);
|
|
54
|
+
}
|
|
55
|
+
try {
|
|
56
|
+
logger.info(`Unloading plugin: ${packageName}...`);
|
|
57
|
+
execSync(`npm uninstall ${packageName}`, { stdio: 'inherit' });
|
|
58
|
+
// Clear the loaded plugins cache so the plugin is no longer available
|
|
59
|
+
// This affects the current process - plugin will be gone immediately
|
|
60
|
+
clearLoadedPlugins();
|
|
61
|
+
logger.success('Plugin unloaded successfully', packageName);
|
|
62
|
+
logger.info('Plugin commands are no longer available');
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
logger.error('Failed to unload plugin', error);
|
|
66
|
+
process.exit(1);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* List installed plugins
|
|
71
|
+
*/
|
|
72
|
+
export function listPlugins() {
|
|
73
|
+
const logger = getLogger();
|
|
74
|
+
try {
|
|
75
|
+
// Read package.json to find c8ctl plugins
|
|
76
|
+
const packageJsonPath = join(process.cwd(), 'package.json');
|
|
77
|
+
const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
|
|
78
|
+
const dependencies = packageJson.dependencies || {};
|
|
79
|
+
const devDependencies = packageJson.devDependencies || {};
|
|
80
|
+
const allDeps = { ...dependencies, ...devDependencies };
|
|
81
|
+
// Filter for potential plugins (packages with c8ctl-plugin.js or c8ctl-plugin.ts)
|
|
82
|
+
const plugins = [];
|
|
83
|
+
for (const [name, version] of Object.entries(allDeps)) {
|
|
84
|
+
try {
|
|
85
|
+
// Try to resolve the package
|
|
86
|
+
const packageDir = join(process.cwd(), 'node_modules', name);
|
|
87
|
+
// Check if package has c8ctl-plugin.js or c8ctl-plugin.ts file in root
|
|
88
|
+
const hasPluginFile = existsSync(join(packageDir, 'c8ctl-plugin.js')) ||
|
|
89
|
+
existsSync(join(packageDir, 'c8ctl-plugin.ts'));
|
|
90
|
+
if (hasPluginFile) {
|
|
91
|
+
plugins.push({
|
|
92
|
+
Name: name,
|
|
93
|
+
Version: version,
|
|
94
|
+
Type: dependencies[name] ? 'dependency' : 'devDependency',
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
// Skip packages that can't be read
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
if (plugins.length === 0) {
|
|
103
|
+
logger.info('No c8ctl plugins installed');
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
logger.table(plugins);
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
logger.error('Failed to list plugins', error);
|
|
110
|
+
process.exit(1);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=plugins.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/commands/plugins.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Process instance commands
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* List process instances
|
|
6
|
+
*/
|
|
7
|
+
export declare function listProcessInstances(options: {
|
|
8
|
+
profile?: string;
|
|
9
|
+
processDefinitionId?: string;
|
|
10
|
+
state?: string;
|
|
11
|
+
all?: boolean;
|
|
12
|
+
}): Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* Get process instance by key
|
|
15
|
+
*/
|
|
16
|
+
export declare function getProcessInstance(key: string, options: {
|
|
17
|
+
profile?: string;
|
|
18
|
+
}): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Create process instance
|
|
21
|
+
*/
|
|
22
|
+
export declare function createProcessInstance(options: {
|
|
23
|
+
profile?: string;
|
|
24
|
+
processDefinitionId?: string;
|
|
25
|
+
version?: number;
|
|
26
|
+
variables?: string;
|
|
27
|
+
}): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Cancel process instance
|
|
30
|
+
*/
|
|
31
|
+
export declare function cancelProcessInstance(key: string, options: {
|
|
32
|
+
profile?: string;
|
|
33
|
+
}): Promise<void>;
|
|
34
|
+
//# sourceMappingURL=process-instances.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-instances.d.ts","sourceRoot":"","sources":["../../src/commands/process-instances.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,GAAG,OAAO,CAAC,IAAI,CAAC,CAyChB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,IAAI,CAAC,CAWhB;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmChB;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,IAAI,CAAC,CAWhB"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Process instance commands
|
|
3
|
+
*/
|
|
4
|
+
import { getLogger } from "../logger.js";
|
|
5
|
+
import { createClient } from "../client.js";
|
|
6
|
+
import { resolveTenantId } from "../config.js";
|
|
7
|
+
/**
|
|
8
|
+
* List process instances
|
|
9
|
+
*/
|
|
10
|
+
export async function listProcessInstances(options) {
|
|
11
|
+
const logger = getLogger();
|
|
12
|
+
const client = createClient(options.profile);
|
|
13
|
+
const tenantId = resolveTenantId(options.profile);
|
|
14
|
+
try {
|
|
15
|
+
const filter = {
|
|
16
|
+
filter: {
|
|
17
|
+
tenantId,
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
if (options.processDefinitionId) {
|
|
21
|
+
filter.filter.processDefinitionId = options.processDefinitionId;
|
|
22
|
+
}
|
|
23
|
+
if (options.state) {
|
|
24
|
+
filter.filter.state = options.state;
|
|
25
|
+
}
|
|
26
|
+
else if (!options.all) {
|
|
27
|
+
// By default, exclude COMPLETED instances unless --all is specified
|
|
28
|
+
filter.filter.state = 'ACTIVE';
|
|
29
|
+
}
|
|
30
|
+
const result = await client.searchProcessInstances(filter, { consistency: { waitUpToMs: 0 } });
|
|
31
|
+
if (result.items && result.items.length > 0) {
|
|
32
|
+
const tableData = result.items.map((pi) => ({
|
|
33
|
+
Key: pi.processInstanceKey || pi.key,
|
|
34
|
+
'Process ID': pi.processDefinitionId,
|
|
35
|
+
State: pi.state,
|
|
36
|
+
Version: pi.processDefinitionVersion || pi.version,
|
|
37
|
+
'Tenant ID': pi.tenantId,
|
|
38
|
+
}));
|
|
39
|
+
logger.table(tableData);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
logger.info('No process instances found');
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
logger.error('Failed to list process instances', error);
|
|
47
|
+
process.exit(1);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Get process instance by key
|
|
52
|
+
*/
|
|
53
|
+
export async function getProcessInstance(key, options) {
|
|
54
|
+
const logger = getLogger();
|
|
55
|
+
const client = createClient(options.profile);
|
|
56
|
+
try {
|
|
57
|
+
const result = await client.getProcessInstance({ processInstanceKey: key }, { consistency: { waitUpToMs: 0 } });
|
|
58
|
+
logger.json(result);
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
logger.error(`Failed to get process instance ${key}`, error);
|
|
62
|
+
process.exit(1);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Create process instance
|
|
67
|
+
*/
|
|
68
|
+
export async function createProcessInstance(options) {
|
|
69
|
+
const logger = getLogger();
|
|
70
|
+
const client = createClient(options.profile);
|
|
71
|
+
const tenantId = resolveTenantId(options.profile);
|
|
72
|
+
if (!options.processDefinitionId) {
|
|
73
|
+
logger.error('processDefinitionId is required. Use --processDefinitionId flag');
|
|
74
|
+
process.exit(1);
|
|
75
|
+
}
|
|
76
|
+
try {
|
|
77
|
+
const request = {
|
|
78
|
+
processDefinitionId: options.processDefinitionId,
|
|
79
|
+
tenantId,
|
|
80
|
+
};
|
|
81
|
+
if (options.version !== undefined) {
|
|
82
|
+
request.processDefinitionVersion = options.version;
|
|
83
|
+
}
|
|
84
|
+
if (options.variables) {
|
|
85
|
+
try {
|
|
86
|
+
request.variables = JSON.parse(options.variables);
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
logger.error('Invalid JSON for variables', error);
|
|
90
|
+
process.exit(1);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
const result = await client.createProcessInstance(request);
|
|
94
|
+
logger.success('Process instance created', result.processInstanceKey);
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
logger.error('Failed to create process instance', error);
|
|
98
|
+
process.exit(1);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Cancel process instance
|
|
103
|
+
*/
|
|
104
|
+
export async function cancelProcessInstance(key, options) {
|
|
105
|
+
const logger = getLogger();
|
|
106
|
+
const client = createClient(options.profile);
|
|
107
|
+
try {
|
|
108
|
+
await client.cancelProcessInstance({ processInstanceKey: key });
|
|
109
|
+
logger.success(`Process instance ${key} cancelled`);
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
logger.error(`Failed to cancel process instance ${key}`, error);
|
|
113
|
+
process.exit(1);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=process-instances.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-instances.js","sourceRoot":"","sources":["../../src/commands/process-instances.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Profile management commands
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* List all profiles
|
|
6
|
+
*/
|
|
7
|
+
export declare function listProfiles(): void;
|
|
8
|
+
/**
|
|
9
|
+
* Add a profile
|
|
10
|
+
*/
|
|
11
|
+
export declare function addProfile(name: string, options: {
|
|
12
|
+
baseUrl?: string;
|
|
13
|
+
clientId?: string;
|
|
14
|
+
clientSecret?: string;
|
|
15
|
+
audience?: string;
|
|
16
|
+
oAuthUrl?: string;
|
|
17
|
+
defaultTenantId?: string;
|
|
18
|
+
}): void;
|
|
19
|
+
/**
|
|
20
|
+
* Remove a profile
|
|
21
|
+
*/
|
|
22
|
+
export declare function removeProfile(name: string): void;
|
|
23
|
+
//# sourceMappingURL=profiles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../src/commands/profiles.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CA2CnC;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG,IAAI,CAqBP;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAUhD"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Profile management commands
|
|
3
|
+
*/
|
|
4
|
+
import { getLogger } from "../logger.js";
|
|
5
|
+
import { loadProfiles, addProfile as addProfileToConfig, removeProfile as removeProfileFromConfig, loadModelerProfiles, convertModelerProfile, } from "../config.js";
|
|
6
|
+
/**
|
|
7
|
+
* List all profiles
|
|
8
|
+
*/
|
|
9
|
+
export function listProfiles() {
|
|
10
|
+
const logger = getLogger();
|
|
11
|
+
const c8ctlProfiles = loadProfiles();
|
|
12
|
+
const modelerProfiles = loadModelerProfiles();
|
|
13
|
+
const totalProfiles = c8ctlProfiles.length + modelerProfiles.length;
|
|
14
|
+
if (totalProfiles === 0) {
|
|
15
|
+
logger.info('No profiles configured');
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const tableData = [];
|
|
19
|
+
// Add c8ctl profiles
|
|
20
|
+
for (const p of c8ctlProfiles) {
|
|
21
|
+
tableData.push({
|
|
22
|
+
Name: p.name,
|
|
23
|
+
'Base URL': p.baseUrl,
|
|
24
|
+
'Client ID': p.clientId || '(none)',
|
|
25
|
+
'Default Tenant': p.defaultTenantId || '<default>',
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
// Add modeler profiles with 'modeler:' prefix
|
|
29
|
+
for (const mp of modelerProfiles) {
|
|
30
|
+
const converted = convertModelerProfile(mp);
|
|
31
|
+
tableData.push({
|
|
32
|
+
Name: converted.name,
|
|
33
|
+
'Base URL': converted.baseUrl,
|
|
34
|
+
'Client ID': converted.clientId || '(none)',
|
|
35
|
+
'Default Tenant': converted.defaultTenantId || '<default>',
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
logger.table(tableData);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Add a profile
|
|
42
|
+
*/
|
|
43
|
+
export function addProfile(name, options) {
|
|
44
|
+
const logger = getLogger();
|
|
45
|
+
// Validate required fields
|
|
46
|
+
if (!options.baseUrl) {
|
|
47
|
+
logger.error('Base URL is required. Use --baseUrl flag');
|
|
48
|
+
process.exit(1);
|
|
49
|
+
}
|
|
50
|
+
const profile = {
|
|
51
|
+
name,
|
|
52
|
+
baseUrl: options.baseUrl,
|
|
53
|
+
clientId: options.clientId,
|
|
54
|
+
clientSecret: options.clientSecret,
|
|
55
|
+
audience: options.audience,
|
|
56
|
+
oAuthUrl: options.oAuthUrl,
|
|
57
|
+
defaultTenantId: options.defaultTenantId,
|
|
58
|
+
};
|
|
59
|
+
addProfileToConfig(profile);
|
|
60
|
+
logger.success(`Profile '${name}' added`);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Remove a profile
|
|
64
|
+
*/
|
|
65
|
+
export function removeProfile(name) {
|
|
66
|
+
const logger = getLogger();
|
|
67
|
+
const removed = removeProfileFromConfig(name);
|
|
68
|
+
if (removed) {
|
|
69
|
+
logger.success(`Profile '${name}' removed`);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
logger.error(`Profile '${name}' not found`);
|
|
73
|
+
process.exit(1);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=profiles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../src/commands/profiles.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EACL,YAAY,EACZ,UAAU,IAAI,kBAAkB,EAChC,aAAa,IAAI,uBAAuB,EACxC,mBAAmB,EACnB,qBAAqB,GAEtB,MAAM,cAAc,CAAC;AAEtB;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,aAAa,GAAG,YAAY,EAAE,CAAC;IACrC,MAAM,eAAe,GAAG,mBAAmB,EAAE,CAAC;IAE9C,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;IAEpE,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACtC,OAAO;IACT,CAAC;IASD,MAAM,SAAS,GAAsB,EAAE,CAAC;IAExC,qBAAqB;IACrB,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;QAC9B,SAAS,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,UAAU,EAAE,CAAC,CAAC,OAAO;YACrB,WAAW,EAAE,CAAC,CAAC,QAAQ,IAAI,QAAQ;YACnC,gBAAgB,EAAE,CAAC,CAAC,eAAe,IAAI,WAAW;SACnD,CAAC,CAAC;IACL,CAAC;IAED,8CAA8C;IAC9C,KAAK,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,qBAAqB,CAAC,EAAE,CAAC,CAAC;QAC5C,SAAS,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,UAAU,EAAE,SAAS,CAAC,OAAO;YAC7B,WAAW,EAAE,SAAS,CAAC,QAAQ,IAAI,QAAQ;YAC3C,gBAAgB,EAAE,SAAS,CAAC,eAAe,IAAI,WAAW;SAC3D,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,OAOxC;IACC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,2BAA2B;IAC3B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAY;QACvB,IAAI;QACJ,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,eAAe,EAAE,OAAO,CAAC,eAAe;KACzC,CAAC;IAEF,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC5B,MAAM,CAAC,OAAO,CAAC,YAAY,IAAI,SAAS,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,MAAM,OAAO,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,CAAC,OAAO,CAAC,YAAY,IAAI,WAAW,CAAC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,aAAa,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Run command - Deploy and create process instance in one step
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Run - deploy and start process instance
|
|
6
|
+
*/
|
|
7
|
+
export declare function run(path: string, options: {
|
|
8
|
+
profile?: string;
|
|
9
|
+
variables?: string;
|
|
10
|
+
}): Promise<void>;
|
|
11
|
+
//# sourceMappingURL=run.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAAA;;GAEG;AAeH;;GAEG;AACH,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgDhB"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Run command - Deploy and create process instance in one step
|
|
3
|
+
*/
|
|
4
|
+
import { getLogger } from "../logger.js";
|
|
5
|
+
import { createClient } from "../client.js";
|
|
6
|
+
import { resolveTenantId } from "../config.js";
|
|
7
|
+
import { readFileSync } from 'node:fs';
|
|
8
|
+
/**
|
|
9
|
+
* Extract process ID from BPMN file
|
|
10
|
+
*/
|
|
11
|
+
function extractProcessId(bpmnContent) {
|
|
12
|
+
const match = bpmnContent.match(/process[^>]+id="([^"]+)"/);
|
|
13
|
+
return match ? match[1] : null;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Run - deploy and start process instance
|
|
17
|
+
*/
|
|
18
|
+
export async function run(path, options) {
|
|
19
|
+
const logger = getLogger();
|
|
20
|
+
const client = createClient(options.profile);
|
|
21
|
+
const tenantId = resolveTenantId(options.profile);
|
|
22
|
+
try {
|
|
23
|
+
// Read BPMN file
|
|
24
|
+
const content = readFileSync(path, 'utf-8');
|
|
25
|
+
const processId = extractProcessId(content);
|
|
26
|
+
if (!processId) {
|
|
27
|
+
logger.error('Could not extract process ID from BPMN file');
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
logger.info(`Deploying ${path}...`);
|
|
31
|
+
// Deploy the BPMN file - convert to File object with proper MIME type
|
|
32
|
+
const fileName = path.split('/').pop() || 'process.bpmn';
|
|
33
|
+
const deployResult = await client.createDeployment({
|
|
34
|
+
tenantId,
|
|
35
|
+
resources: [new File([Buffer.from(content)], fileName, { type: 'application/xml' })],
|
|
36
|
+
});
|
|
37
|
+
logger.success('Deployment successful', deployResult.deploymentKey.toString());
|
|
38
|
+
// Create process instance
|
|
39
|
+
logger.info(`Creating process instance for ${processId}...`);
|
|
40
|
+
const createRequest = {
|
|
41
|
+
processDefinitionId: processId,
|
|
42
|
+
tenantId,
|
|
43
|
+
};
|
|
44
|
+
if (options.variables) {
|
|
45
|
+
try {
|
|
46
|
+
createRequest.variables = JSON.parse(options.variables);
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
logger.error('Invalid JSON for variables', error);
|
|
50
|
+
process.exit(1);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
const createResult = await client.createProcessInstance(createRequest);
|
|
54
|
+
logger.success('Process instance created', createResult.processInstanceKey);
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
logger.error('Failed to run process', error);
|
|
58
|
+
process.exit(1);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC;;GAEG;AACH,SAAS,gBAAgB,CAAC,WAAmB;IAC3C,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC5D,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAY,EAAE,OAGvC;IACC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAElD,IAAI,CAAC;QACH,iBAAiB;QACjB,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAE5C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;YAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,CAAC;QAEpC,sEAAsE;QACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,cAAc,CAAC;QACzD,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC;YACjD,QAAQ;YACR,SAAS,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;SACrF,CAAC,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,YAAY,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE/E,0BAA0B;QAC1B,MAAM,CAAC,IAAI,CAAC,iCAAiC,SAAS,KAAK,CAAC,CAAC;QAE7D,MAAM,aAAa,GAAQ;YACzB,mBAAmB,EAAE,SAAS;YAC9B,QAAQ;SACT,CAAC;QAEF,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,IAAI,CAAC;gBACH,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC1D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAc,CAAC,CAAC;gBAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;QACvE,MAAM,CAAC,OAAO,CAAC,0BAA0B,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAC;IAC9E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAc,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session management commands (use profile, use tenant, output mode)
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Set active profile
|
|
6
|
+
*/
|
|
7
|
+
export declare function useProfile(name: string): void;
|
|
8
|
+
/**
|
|
9
|
+
* Set active tenant
|
|
10
|
+
*/
|
|
11
|
+
export declare function useTenant(tenantId: string): void;
|
|
12
|
+
/**
|
|
13
|
+
* Set output mode
|
|
14
|
+
*/
|
|
15
|
+
export declare function setOutputFormat(mode: string): void;
|
|
16
|
+
/**
|
|
17
|
+
* Show current session state
|
|
18
|
+
*/
|
|
19
|
+
export declare function showSessionState(): void;
|
|
20
|
+
//# sourceMappingURL=session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/commands/session.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAY7C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAIhD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAclD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CASvC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session management commands (use profile, use tenant, output mode)
|
|
3
|
+
*/
|
|
4
|
+
import { getLogger } from "../logger.js";
|
|
5
|
+
import { setActiveProfile, setActiveTenant, setOutputMode, getProfile, loadSessionState, } from "../config.js";
|
|
6
|
+
/**
|
|
7
|
+
* Set active profile
|
|
8
|
+
*/
|
|
9
|
+
export function useProfile(name) {
|
|
10
|
+
const logger = getLogger();
|
|
11
|
+
// Verify profile exists
|
|
12
|
+
const profile = getProfile(name);
|
|
13
|
+
if (!profile) {
|
|
14
|
+
logger.error(`Profile '${name}' not found`);
|
|
15
|
+
process.exit(1);
|
|
16
|
+
}
|
|
17
|
+
setActiveProfile(name);
|
|
18
|
+
logger.success(`Now using profile: ${name}`);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Set active tenant
|
|
22
|
+
*/
|
|
23
|
+
export function useTenant(tenantId) {
|
|
24
|
+
const logger = getLogger();
|
|
25
|
+
setActiveTenant(tenantId);
|
|
26
|
+
logger.success(`Now using tenant: ${tenantId}`);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Set output mode
|
|
30
|
+
*/
|
|
31
|
+
export function setOutputFormat(mode) {
|
|
32
|
+
const logger = getLogger();
|
|
33
|
+
if (mode !== 'json' && mode !== 'text') {
|
|
34
|
+
logger.error(`Invalid output mode: ${mode}. Must be 'json' or 'text'`);
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
37
|
+
setOutputMode(mode);
|
|
38
|
+
// Update logger immediately
|
|
39
|
+
logger.mode = mode;
|
|
40
|
+
logger.success(`Output mode set to: ${mode}`);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Show current session state
|
|
44
|
+
*/
|
|
45
|
+
export function showSessionState() {
|
|
46
|
+
const logger = getLogger();
|
|
47
|
+
const state = loadSessionState();
|
|
48
|
+
logger.info('\nCurrent Session State:');
|
|
49
|
+
logger.info(` Active Profile: ${state.activeProfile || '(none)'}`);
|
|
50
|
+
logger.info(` Active Tenant: ${state.activeTenant || '(none)'}`);
|
|
51
|
+
logger.info(` Output Mode: ${state.outputMode}`);
|
|
52
|
+
logger.info('');
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=session.js.map
|