@camunda8/cli 1.0.0 → 1.1.0

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/logger.js CHANGED
@@ -2,11 +2,10 @@
2
2
  * Logger component for c8ctl CLI
3
3
  * Handles output in multiple modes (text, json) based on session state
4
4
  */
5
+ import { c8ctl } from "./runtime.js";
5
6
  export class Logger {
6
- _mode;
7
7
  _debugEnabled = false;
8
- constructor(mode = 'text') {
9
- this._mode = mode;
8
+ constructor() {
10
9
  // Enable debug mode if DEBUG or C8CTL_DEBUG env var is set
11
10
  this._debugEnabled = process.env.DEBUG === '1' ||
12
11
  process.env.DEBUG === 'true' ||
@@ -14,10 +13,12 @@ export class Logger {
14
13
  process.env.C8CTL_DEBUG === 'true';
15
14
  }
16
15
  get mode() {
17
- return this._mode;
16
+ // Always get the mode from c8ctl runtime to ensure it reflects current session state
17
+ return c8ctl.outputMode;
18
18
  }
19
19
  set mode(mode) {
20
- this._mode = mode;
20
+ // Update the c8ctl runtime when mode is set directly on logger
21
+ c8ctl.outputMode = mode;
21
22
  }
22
23
  get debugEnabled() {
23
24
  return this._debugEnabled;
@@ -26,13 +27,16 @@ export class Logger {
26
27
  this._debugEnabled = enabled;
27
28
  }
28
29
  info(message) {
29
- if (this._mode === 'text') {
30
+ if (this.mode === 'text') {
30
31
  console.log(message);
31
32
  }
33
+ else {
34
+ console.log(JSON.stringify({ status: 'info', message }));
35
+ }
32
36
  }
33
37
  debug(message, ...args) {
34
38
  if (this._debugEnabled) {
35
- if (this._mode === 'text') {
39
+ if (this.mode === 'text') {
36
40
  const timestamp = new Date().toISOString();
37
41
  console.error(`[DEBUG ${timestamp}] ${message}`, ...args);
38
42
  }
@@ -47,7 +51,7 @@ export class Logger {
47
51
  }
48
52
  }
49
53
  success(message, key) {
50
- if (this._mode === 'text') {
54
+ if (this.mode === 'text') {
51
55
  if (key !== undefined) {
52
56
  console.log(`✓ ${message} [Key: ${key}]`);
53
57
  }
@@ -65,7 +69,7 @@ export class Logger {
65
69
  }
66
70
  }
67
71
  error(message, error) {
68
- if (this._mode === 'text') {
72
+ if (this.mode === 'text') {
69
73
  console.error(`✗ ${message}`);
70
74
  if (error) {
71
75
  console.error(` ${error.message}`);
@@ -83,7 +87,7 @@ export class Logger {
83
87
  }
84
88
  }
85
89
  table(data) {
86
- if (this._mode === 'text') {
90
+ if (this.mode === 'text') {
87
91
  if (data.length === 0) {
88
92
  console.log('No data to display');
89
93
  return;
@@ -110,7 +114,7 @@ export class Logger {
110
114
  }
111
115
  }
112
116
  json(data) {
113
- if (this._mode === 'text') {
117
+ if (this.mode === 'text') {
114
118
  console.log(JSON.stringify(data, null, 2));
115
119
  }
116
120
  else {
@@ -122,10 +126,12 @@ export class Logger {
122
126
  let loggerInstance = null;
123
127
  export function getLogger(mode) {
124
128
  if (!loggerInstance) {
125
- loggerInstance = new Logger(mode);
129
+ loggerInstance = new Logger();
126
130
  }
127
- else if (mode !== undefined) {
128
- loggerInstance.mode = mode;
131
+ // Note: mode parameter is deprecated - logger now always reflects c8ctl.outputMode
132
+ // If mode is provided, update c8ctl.outputMode for backwards compatibility
133
+ if (mode !== undefined) {
134
+ c8ctl.outputMode = mode;
129
135
  }
130
136
  return loggerInstance;
131
137
  }
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,15 @@ export declare function isPluginCommand(commandName: string): boolean;
24
24
  * Get list of all plugin command names
25
25
  */
26
26
  export declare function getPluginCommandNames(): string[];
27
+ /**
28
+ * Get plugin information for help display
29
+ */
30
+ export interface PluginCommandInfo {
31
+ commandName: string;
32
+ pluginName: string;
33
+ description?: string;
34
+ }
35
+ export declare function getPluginCommandsInfo(): PluginCommandInfo[];
27
36
  /**
28
37
  * Clear all loaded plugins (useful for testing and after uninstall)
29
38
  */
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-loader.d.ts","sourceRoot":"","sources":["../src/plugin-loader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,UAAU,cAAc;IACtB,CAAC,WAAW,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D;AASD;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAgD1D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,CAQlD;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAAC,OAAO,CAAC,CASlB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAG5D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAEhD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC"}
1
+ {"version":3,"file":"plugin-loader.d.ts","sourceRoot":"","sources":["../src/plugin-loader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,UAAU,cAAc;IACtB,CAAC,WAAW,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D;AAoBD;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAwG1D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,CAQlD;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAAC,OAAO,CAAC,CASlB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAG5D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAEhD;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,qBAAqB,IAAI,iBAAiB,EAAE,CAc3D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC"}
@@ -9,9 +9,10 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
9
9
  }
10
10
  return path;
11
11
  };
12
- import { existsSync, readdirSync } from 'node:fs';
12
+ import { existsSync, readdirSync, readFileSync } from 'node:fs';
13
13
  import { join } from 'node:path';
14
14
  import { getLogger } from "./logger.js";
15
+ import { c8ctl } from "./runtime.js";
15
16
  const loadedPlugins = new Map();
16
17
  /**
17
18
  * Load all installed plugins from node_modules
@@ -19,41 +20,86 @@ const loadedPlugins = new Map();
19
20
  export async function loadInstalledPlugins() {
20
21
  const logger = getLogger();
21
22
  const nodeModulesPath = join(process.cwd(), 'node_modules');
23
+ // Make c8ctl runtime available globally for plugins
24
+ // @ts-ignore
25
+ globalThis.c8ctl = c8ctl;
22
26
  if (!existsSync(nodeModulesPath)) {
23
27
  logger.debug('node_modules directory not found');
24
28
  return;
25
29
  }
26
30
  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
+ const entries = readdirSync(nodeModulesPath);
32
+ logger.debug(`Scanning ${entries.length} entries in node_modules`);
33
+ const packagesToScan = [];
34
+ // Collect regular packages and scoped packages
35
+ for (const entry of entries) {
36
+ if (entry.startsWith('.')) {
31
37
  continue;
32
38
  }
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}`);
39
+ if (entry.startsWith('@')) {
40
+ // Scoped package - scan subdirectories
41
+ const scopePath = join(nodeModulesPath, entry);
38
42
  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);
43
+ const scopedPackages = readdirSync(scopePath);
44
+ for (const scopedPkg of scopedPackages) {
45
+ if (!scopedPkg.startsWith('.')) {
46
+ packagesToScan.push(join(entry, scopedPkg));
47
+ }
51
48
  }
52
49
  }
53
50
  catch (error) {
54
- logger.debug(`Failed to load plugin ${packageName}:`, error);
51
+ logger.debug(`Failed to scan scoped package directory ${entry}:`, error);
55
52
  }
56
53
  }
54
+ else {
55
+ // Regular package
56
+ packagesToScan.push(entry);
57
+ }
58
+ }
59
+ logger.debug(`Found ${packagesToScan.length} packages to scan:`, packagesToScan);
60
+ for (const packageName of packagesToScan) {
61
+ const packagePath = join(nodeModulesPath, packageName);
62
+ const packageJsonPath = join(packagePath, 'package.json');
63
+ if (!existsSync(packageJsonPath)) {
64
+ logger.debug(`No package.json for ${packageName}`);
65
+ continue;
66
+ }
67
+ try {
68
+ // Check for c8ctl-plugin entry point files first
69
+ const pluginFileJs = join(packagePath, 'c8ctl-plugin.js');
70
+ const pluginFileTs = join(packagePath, 'c8ctl-plugin.ts');
71
+ if (!existsSync(pluginFileJs) && !existsSync(pluginFileTs)) {
72
+ logger.debug(`No c8ctl-plugin.js/ts found for ${packageName}`);
73
+ continue;
74
+ }
75
+ // Read package.json to check keywords
76
+ const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
77
+ // Plugin must have c8ctl or c8ctl-plugin in keywords
78
+ const isC8ctlPlugin = packageJson.keywords?.includes('c8ctl') ||
79
+ packageJson.keywords?.includes('c8ctl-plugin');
80
+ if (!isC8ctlPlugin) {
81
+ logger.debug(`Package ${packageName} has c8ctl-plugin file but missing keywords (keywords: ${packageJson.keywords?.join(', ') || 'none'})`);
82
+ continue;
83
+ }
84
+ logger.debug(`Found c8ctl plugin candidate: ${packageName}`);
85
+ const pluginFile = existsSync(pluginFileJs) ? pluginFileJs : pluginFileTs;
86
+ // Use file:// protocol and add timestamp to bust cache
87
+ const pluginUrl = `file://${pluginFile}?t=${Date.now()}`;
88
+ logger.debug(`Loading plugin from: ${pluginUrl}`);
89
+ const plugin = await import(__rewriteRelativeImportExtension(pluginUrl));
90
+ if (plugin.commands && typeof plugin.commands === 'object') {
91
+ loadedPlugins.set(packageName, {
92
+ name: packageName,
93
+ commands: plugin.commands,
94
+ metadata: plugin.metadata || {},
95
+ });
96
+ const commandNames = Object.keys(plugin.commands);
97
+ logger.debug(`Successfully loaded plugin: ${packageName} with ${commandNames.length} commands:`, commandNames);
98
+ }
99
+ }
100
+ catch (error) {
101
+ logger.debug(`Failed to load plugin ${packageName}:`, error);
102
+ }
57
103
  }
58
104
  logger.debug(`Total plugins loaded: ${loadedPlugins.size}`);
59
105
  }
@@ -95,6 +141,19 @@ export function isPluginCommand(commandName) {
95
141
  export function getPluginCommandNames() {
96
142
  return Object.keys(getPluginCommands());
97
143
  }
144
+ export function getPluginCommandsInfo() {
145
+ const infos = [];
146
+ for (const plugin of loadedPlugins.values()) {
147
+ for (const commandName of Object.keys(plugin.commands)) {
148
+ infos.push({
149
+ commandName,
150
+ pluginName: plugin.name,
151
+ description: plugin.metadata?.commands?.[commandName]?.description,
152
+ });
153
+ }
154
+ }
155
+ return infos;
156
+ }
98
157
  /**
99
158
  * Clear all loaded plugins (useful for testing and after uninstall)
100
159
  */
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-loader.js","sourceRoot":"","sources":["../src/plugin-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin-loader.js","sourceRoot":"","sources":["../src/plugin-loader.ts"],"names":[],"mappings":"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"}
package/dist/runtime.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  /**
2
- * c8ctl runtime object with environment information
2
+ * c8ctl runtime object with environment information and session state
3
3
  */
4
+ import type { OutputMode } from './logger.ts';
4
5
  interface C8ctlEnv {
5
6
  version: string;
6
7
  nodeVersion: string;
@@ -9,12 +10,24 @@ interface C8ctlEnv {
9
10
  cwd: string;
10
11
  rootDir: string;
11
12
  }
12
- interface C8ctlRuntime {
13
- env: C8ctlEnv;
13
+ /**
14
+ * c8ctl runtime class with session state management
15
+ */
16
+ declare class C8ctl {
17
+ private _activeProfile?;
18
+ private _activeTenant?;
19
+ private _outputMode;
20
+ readonly env: C8ctlEnv;
21
+ get activeProfile(): string | undefined;
22
+ set activeProfile(value: string | undefined);
23
+ get activeTenant(): string | undefined;
24
+ set activeTenant(value: string | undefined);
25
+ get outputMode(): OutputMode;
26
+ set outputMode(value: OutputMode);
14
27
  }
15
28
  /**
16
- * Create the c8ctl runtime object
29
+ * Global c8ctl runtime instance
17
30
  */
18
- export declare const c8ctl: C8ctlRuntime;
31
+ export declare const c8ctl: C8ctl;
19
32
  export {};
20
33
  //# sourceMappingURL=runtime.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAK9C,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;;GAEG;AACH,cAAM,KAAK;IACT,OAAO,CAAC,cAAc,CAAC,CAAS;IAChC,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAsB;IAEzC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAOpB;IAEF,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAEtC;IAED,IAAI,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAE1C;IAED,IAAI,YAAY,IAAI,MAAM,GAAG,SAAS,CAErC;IAED,IAAI,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAEzC;IAED,IAAI,UAAU,IAAI,UAAU,CAE3B;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,UAAU,EAE/B;CACF;AAED;;GAEG;AACH,eAAO,MAAM,KAAK,OAAc,CAAC"}
package/dist/runtime.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * c8ctl runtime object with environment information
2
+ * c8ctl runtime object with environment information and session state
3
3
  */
4
4
  import { readFileSync } from 'node:fs';
5
5
  import { join, dirname } from 'node:path';
@@ -20,16 +20,41 @@ function getVersion() {
20
20
  }
21
21
  }
22
22
  /**
23
- * Create the c8ctl runtime object
23
+ * c8ctl runtime class with session state management
24
24
  */
25
- export const c8ctl = {
26
- env: {
25
+ class C8ctl {
26
+ _activeProfile;
27
+ _activeTenant;
28
+ _outputMode = 'text';
29
+ env = {
27
30
  version: getVersion(),
28
31
  nodeVersion: process.version,
29
32
  platform: process.platform,
30
33
  arch: process.arch,
31
34
  cwd: process.cwd(),
32
35
  rootDir: join(__dirname, '..'),
33
- },
34
- };
36
+ };
37
+ get activeProfile() {
38
+ return this._activeProfile;
39
+ }
40
+ set activeProfile(value) {
41
+ this._activeProfile = value;
42
+ }
43
+ get activeTenant() {
44
+ return this._activeTenant;
45
+ }
46
+ set activeTenant(value) {
47
+ this._activeTenant = value;
48
+ }
49
+ get outputMode() {
50
+ return this._outputMode;
51
+ }
52
+ set outputMode(value) {
53
+ this._outputMode = value;
54
+ }
55
+ }
56
+ /**
57
+ * Global c8ctl runtime instance
58
+ */
59
+ export const c8ctl = new C8ctl();
35
60
  //# sourceMappingURL=runtime.js.map
@@ -1 +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"}
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;AAGzC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAWtC;;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,KAAK;IACD,cAAc,CAAU;IACxB,aAAa,CAAU;IACvB,WAAW,GAAe,MAAM,CAAC;IAEhC,GAAG,GAAa;QACvB,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,CAAC;IAEF,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,IAAI,aAAa,CAAC,KAAyB;QACzC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI,YAAY,CAAC,KAAyB;QACxC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAI,UAAU,CAAC,KAAiB;QAC9B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camunda8/cli",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "Camunda 8 CLI - minimal-dependency CLI for Camunda 8 operations",
5
5
  "type": "module",
6
6
  "engines": {
@@ -19,13 +19,14 @@
19
19
  "LICENSE"
20
20
  ],
21
21
  "scripts": {
22
- "build": "tsc",
23
- "prepare": "npm run build",
22
+ "build": "npm run clean && tsc",
23
+ "clean": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"",
24
+ "prepublishOnly": "npm run build",
24
25
  "test": "node --test tests/unit/setup.test.ts tests/unit/*.test.ts tests/integration/*.test.ts",
25
26
  "test:unit": "node --test tests/unit/setup.test.ts tests/unit/*.test.ts",
26
27
  "test:integration": "node --test tests/integration/*.test.ts",
27
- "cli": "node src/index.ts",
28
- "dev": "node src/index.ts"
28
+ "dev": "node src/index.ts",
29
+ "cli": "node src/index.ts"
29
30
  },
30
31
  "keywords": [
31
32
  "camunda",
@@ -46,11 +47,14 @@
46
47
  "author": "",
47
48
  "license": "MIT",
48
49
  "dependencies": {
49
- "@camunda8/orchestration-cluster-api": "^8.8.3"
50
+ "@camunda8/orchestration-cluster-api": "^8.8.4"
50
51
  },
51
52
  "devDependencies": {
52
53
  "@semantic-release/exec": "^7.1.0",
53
- "@types/node": "^22.10.0",
54
+ "@semantic-release/github": "^12.0.2",
55
+ "@semantic-release/npm": "^13.1.3",
56
+ "@semantic-release/release-notes-generator": "^14.1.0",
57
+ "@types/node": "^25.1.0",
54
58
  "semantic-release": "^25.0.2",
55
59
  "typescript": "^5.9.3"
56
60
  }