@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.
Files changed (79) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +387 -0
  3. package/dist/client.d.ts +9 -0
  4. package/dist/client.d.ts.map +1 -0
  5. package/dist/client.js +39 -0
  6. package/dist/client.js.map +1 -0
  7. package/dist/commands/deployments.d.ts +10 -0
  8. package/dist/commands/deployments.d.ts.map +1 -0
  9. package/dist/commands/deployments.js +221 -0
  10. package/dist/commands/deployments.js.map +1 -0
  11. package/dist/commands/help.d.ts +20 -0
  12. package/dist/commands/help.d.ts.map +1 -0
  13. package/dist/commands/help.js +116 -0
  14. package/dist/commands/help.js.map +1 -0
  15. package/dist/commands/incidents.d.ts +18 -0
  16. package/dist/commands/incidents.d.ts.map +1 -0
  17. package/dist/commands/incidents.js +62 -0
  18. package/dist/commands/incidents.js.map +1 -0
  19. package/dist/commands/jobs.d.ts +36 -0
  20. package/dist/commands/jobs.d.ts.map +1 -0
  21. package/dist/commands/jobs.js +129 -0
  22. package/dist/commands/jobs.js.map +1 -0
  23. package/dist/commands/messages.d.ts +22 -0
  24. package/dist/commands/messages.d.ts.map +1 -0
  25. package/dist/commands/messages.js +48 -0
  26. package/dist/commands/messages.js.map +1 -0
  27. package/dist/commands/plugins.d.ts +17 -0
  28. package/dist/commands/plugins.d.ts.map +1 -0
  29. package/dist/commands/plugins.js +113 -0
  30. package/dist/commands/plugins.js.map +1 -0
  31. package/dist/commands/process-instances.d.ts +34 -0
  32. package/dist/commands/process-instances.d.ts.map +1 -0
  33. package/dist/commands/process-instances.js +116 -0
  34. package/dist/commands/process-instances.js.map +1 -0
  35. package/dist/commands/profiles.d.ts +23 -0
  36. package/dist/commands/profiles.d.ts.map +1 -0
  37. package/dist/commands/profiles.js +76 -0
  38. package/dist/commands/profiles.js.map +1 -0
  39. package/dist/commands/run.d.ts +11 -0
  40. package/dist/commands/run.d.ts.map +1 -0
  41. package/dist/commands/run.js +61 -0
  42. package/dist/commands/run.js.map +1 -0
  43. package/dist/commands/session.d.ts +20 -0
  44. package/dist/commands/session.d.ts.map +1 -0
  45. package/dist/commands/session.js +54 -0
  46. package/dist/commands/session.js.map +1 -0
  47. package/dist/commands/topology.d.ts +10 -0
  48. package/dist/commands/topology.d.ts.map +1 -0
  49. package/dist/commands/topology.js +21 -0
  50. package/dist/commands/topology.js.map +1 -0
  51. package/dist/commands/user-tasks.d.ts +20 -0
  52. package/dist/commands/user-tasks.d.ts.map +1 -0
  53. package/dist/commands/user-tasks.js +78 -0
  54. package/dist/commands/user-tasks.js.map +1 -0
  55. package/dist/commands/watch.d.ts +10 -0
  56. package/dist/commands/watch.d.ts.map +1 -0
  57. package/dist/commands/watch.js +76 -0
  58. package/dist/commands/watch.js.map +1 -0
  59. package/dist/config.d.ts +129 -0
  60. package/dist/config.d.ts.map +1 -0
  61. package/dist/config.js +356 -0
  62. package/dist/config.js.map +1 -0
  63. package/dist/index.d.ts +7 -0
  64. package/dist/index.d.ts.map +1 -0
  65. package/dist/index.js +405 -0
  66. package/dist/index.js.map +1 -0
  67. package/dist/logger.d.ts +22 -0
  68. package/dist/logger.d.ts.map +1 -0
  69. package/dist/logger.js +132 -0
  70. package/dist/logger.js.map +1 -0
  71. package/dist/plugin-loader.d.ts +32 -0
  72. package/dist/plugin-loader.d.ts.map +1 -0
  73. package/dist/plugin-loader.js +104 -0
  74. package/dist/plugin-loader.js.map +1 -0
  75. package/dist/runtime.d.ts +20 -0
  76. package/dist/runtime.d.ts.map +1 -0
  77. package/dist/runtime.js +35 -0
  78. package/dist/runtime.js.map +1 -0
  79. package/package.json +61 -0
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Plugin loader for dynamic command loading
3
+ */
4
+ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
5
+ if (typeof path === "string" && /^\.\.?\//.test(path)) {
6
+ return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
7
+ return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
8
+ });
9
+ }
10
+ return path;
11
+ };
12
+ import { existsSync, readdirSync } from 'node:fs';
13
+ import { join } from 'node:path';
14
+ import { getLogger } from "./logger.js";
15
+ const loadedPlugins = new Map();
16
+ /**
17
+ * Load all installed plugins from node_modules
18
+ */
19
+ export async function loadInstalledPlugins() {
20
+ const logger = getLogger();
21
+ const nodeModulesPath = join(process.cwd(), 'node_modules');
22
+ if (!existsSync(nodeModulesPath)) {
23
+ logger.debug('node_modules directory not found');
24
+ return;
25
+ }
26
+ try {
27
+ const packages = readdirSync(nodeModulesPath);
28
+ logger.debug(`Scanning ${packages.length} packages in node_modules`);
29
+ for (const packageName of packages) {
30
+ if (packageName.startsWith('.') || packageName.startsWith('@')) {
31
+ continue;
32
+ }
33
+ const packagePath = join(nodeModulesPath, packageName);
34
+ const pluginFileJs = join(packagePath, 'c8ctl-plugin.js');
35
+ const pluginFileTs = join(packagePath, 'c8ctl-plugin.ts');
36
+ if (existsSync(pluginFileJs) || existsSync(pluginFileTs)) {
37
+ logger.debug(`Found plugin candidate: ${packageName}`);
38
+ try {
39
+ const pluginFile = existsSync(pluginFileJs) ? pluginFileJs : pluginFileTs;
40
+ // Use file:// protocol and add timestamp to bust cache
41
+ const pluginUrl = `file://${pluginFile}?t=${Date.now()}`;
42
+ logger.debug(`Loading plugin from: ${pluginUrl}`);
43
+ const plugin = await import(__rewriteRelativeImportExtension(pluginUrl));
44
+ if (plugin.commands && typeof plugin.commands === 'object') {
45
+ loadedPlugins.set(packageName, {
46
+ name: packageName,
47
+ commands: plugin.commands,
48
+ });
49
+ const commandNames = Object.keys(plugin.commands);
50
+ logger.debug(`Successfully loaded plugin: ${packageName} with ${commandNames.length} commands:`, commandNames);
51
+ }
52
+ }
53
+ catch (error) {
54
+ logger.debug(`Failed to load plugin ${packageName}:`, error);
55
+ }
56
+ }
57
+ }
58
+ logger.debug(`Total plugins loaded: ${loadedPlugins.size}`);
59
+ }
60
+ catch (error) {
61
+ logger.debug('Error scanning for plugins:', error);
62
+ }
63
+ }
64
+ /**
65
+ * Get all loaded plugin commands
66
+ */
67
+ export function getPluginCommands() {
68
+ const allCommands = {};
69
+ for (const plugin of loadedPlugins.values()) {
70
+ Object.assign(allCommands, plugin.commands);
71
+ }
72
+ return allCommands;
73
+ }
74
+ /**
75
+ * Execute a plugin command if it exists
76
+ */
77
+ export async function executePluginCommand(commandName, args) {
78
+ const commands = getPluginCommands();
79
+ if (commands[commandName]) {
80
+ await commands[commandName](args);
81
+ return true;
82
+ }
83
+ return false;
84
+ }
85
+ /**
86
+ * Check if a command is provided by a plugin
87
+ */
88
+ export function isPluginCommand(commandName) {
89
+ const commands = getPluginCommands();
90
+ return commandName in commands;
91
+ }
92
+ /**
93
+ * Get list of all plugin command names
94
+ */
95
+ export function getPluginCommandNames() {
96
+ return Object.keys(getPluginCommands());
97
+ }
98
+ /**
99
+ * Clear all loaded plugins (useful for testing and after uninstall)
100
+ */
101
+ export function clearLoadedPlugins() {
102
+ loadedPlugins.clear();
103
+ }
104
+ //# sourceMappingURL=plugin-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-loader.js","sourceRoot":"","sources":["../src/plugin-loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * c8ctl runtime object with environment information
3
+ */
4
+ interface C8ctlEnv {
5
+ version: string;
6
+ nodeVersion: string;
7
+ platform: string;
8
+ arch: string;
9
+ cwd: string;
10
+ rootDir: string;
11
+ }
12
+ interface C8ctlRuntime {
13
+ env: C8ctlEnv;
14
+ }
15
+ /**
16
+ * Create the c8ctl runtime object
17
+ */
18
+ export declare const c8ctl: C8ctlRuntime;
19
+ export {};
20
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,UAAU,QAAQ;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,YAAY;IACpB,GAAG,EAAE,QAAQ,CAAC;CACf;AAeD;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,YASnB,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * c8ctl runtime object with environment information
3
+ */
4
+ import { readFileSync } from 'node:fs';
5
+ import { join, dirname } from 'node:path';
6
+ import { fileURLToPath } from 'node:url';
7
+ const __filename = fileURLToPath(import.meta.url);
8
+ const __dirname = dirname(__filename);
9
+ /**
10
+ * Get c8ctl version from package.json
11
+ */
12
+ function getVersion() {
13
+ try {
14
+ const packageJsonPath = join(__dirname, '..', 'package.json');
15
+ const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
16
+ return packageJson.version || '0.0.0';
17
+ }
18
+ catch {
19
+ return '0.0.0';
20
+ }
21
+ }
22
+ /**
23
+ * Create the c8ctl runtime object
24
+ */
25
+ export const c8ctl = {
26
+ env: {
27
+ version: getVersion(),
28
+ nodeVersion: process.version,
29
+ platform: process.platform,
30
+ arch: process.arch,
31
+ cwd: process.cwd(),
32
+ rootDir: join(__dirname, '..'),
33
+ },
34
+ };
35
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAetC;;GAEG;AACH,SAAS,UAAU;IACjB,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;QACvE,OAAO,WAAW,CAAC,OAAO,IAAI,OAAO,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAiB;IACjC,GAAG,EAAE;QACH,OAAO,EAAE,UAAU,EAAE;QACrB,WAAW,EAAE,OAAO,CAAC,OAAO;QAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;KAC/B;CACF,CAAC"}
package/package.json ADDED
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "@camunda8/cli",
3
+ "version": "2.0.0-alpha.2",
4
+ "description": "Camunda 8 CLI - minimal-dependency CLI for Camunda 8 operations",
5
+ "type": "module",
6
+ "engines": {
7
+ "node": ">=22.18.0"
8
+ },
9
+ "bin": {
10
+ "c8ctl": "./dist/index.js",
11
+ "c8": "./dist/index.js"
12
+ },
13
+ "exports": {
14
+ "./runtime": "./dist/runtime.js"
15
+ },
16
+ "files": [
17
+ "dist",
18
+ "README.md",
19
+ "LICENSE"
20
+ ],
21
+ "scripts": {
22
+ "build": "tsc",
23
+ "prepare": "npm run build",
24
+ "test": "node --test tests/unit/setup.test.ts tests/unit/*.test.ts tests/integration/*.test.ts",
25
+ "test:unit": "node --test tests/unit/setup.test.ts tests/unit/*.test.ts",
26
+ "test:integration": "node --test tests/integration/*.test.ts",
27
+ "cli": "node src/index.ts",
28
+ "dev": "node src/index.ts"
29
+ },
30
+ "keywords": [
31
+ "camunda",
32
+ "camunda8",
33
+ "cli",
34
+ "bpmn",
35
+ "workflow",
36
+ "orchestration"
37
+ ],
38
+ "repository": {
39
+ "type": "git",
40
+ "url": "git+https://github.com/camunda/c8ctl.git"
41
+ },
42
+ "bugs": {
43
+ "url": "https://github.com/camunda/c8ctl/issues"
44
+ },
45
+ "homepage": "https://github.com/camunda/c8ctl#readme",
46
+ "author": "",
47
+ "license": "MIT",
48
+ "dependencies": {
49
+ "@camunda8/orchestration-cluster-api": "^8.8.3"
50
+ },
51
+ "devDependencies": {
52
+ "@semantic-release/commit-analyzer": "^13.0.1",
53
+ "@semantic-release/exec": "^7.1.0",
54
+ "@semantic-release/github": "^11.0.6",
55
+ "@semantic-release/npm": "^12.0.2",
56
+ "@semantic-release/release-notes-generator": "^14.0.3",
57
+ "@types/node": "^22.10.0",
58
+ "semantic-release": "^24.2.0",
59
+ "typescript": "^5.9.3"
60
+ }
61
+ }