@versu/cli 0.6.7 → 0.6.8

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/index.d.ts CHANGED
@@ -9,6 +9,7 @@ export default class Version extends Command {
9
9
  };
10
10
  static flags: {
11
11
  version: import("@oclif/core/interfaces").BooleanFlag<void>;
12
+ verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
12
13
  "dry-run": import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
14
  adapter: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
15
  "push-tags": import("@oclif/core/interfaces").BooleanFlag<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAC;AAInD,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;IAC1C,OAAgB,WAAW,SAAkD;IAE7E,OAAgB,QAAQ,WAKtB;IAEF,MAAM,CAAC,IAAI;;;;MAMT;IAEF,OAAgB,KAAK;;;;;;;;;;;;;MAqDnB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA6B3B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAC;AAInD,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;IAC1C,OAAgB,WAAW,SAAkD;IAE7E,OAAgB,QAAQ,WAKtB;IAEF,MAAM,CAAC,IAAI;;;;MAMT;IAEF,OAAgB,KAAK;;;;;;;;;;;;;;MAyDnB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA6B3B"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Args, Command, Flags } from "@oclif/core";
2
- import { VersuRunner, initLogger } from "@versu/core";
2
+ import { VersuRunner, initLogger, logger } from "@versu/core";
3
3
  import { OclifLogger } from "./logger.js";
4
4
  export default class Version extends Command {
5
5
  static description = "Calculate and apply semantic version changes";
@@ -18,6 +18,10 @@ export default class Version extends Command {
18
18
  };
19
19
  static flags = {
20
20
  version: Flags.version({ char: 'v' }),
21
+ verbose: Flags.boolean({
22
+ description: "Show detailed debug output",
23
+ default: false,
24
+ }),
21
25
  "dry-run": Flags.boolean({
22
26
  description: "Run without writing or pushing changes",
23
27
  default: false,
@@ -68,7 +72,7 @@ export default class Version extends Command {
68
72
  };
69
73
  async run() {
70
74
  const { flags, args } = await this.parse(Version);
71
- initLogger(new OclifLogger(this));
75
+ initLogger(new OclifLogger(this, {}, flags.verbose));
72
76
  try {
73
77
  const options = {
74
78
  repoRoot: args.repositoryRoot,
@@ -89,7 +93,7 @@ export default class Version extends Command {
89
93
  }
90
94
  catch (error) {
91
95
  const errorMessage = error instanceof Error ? error.message : String(error);
92
- this.error(`❌ Command failed: ${errorMessage}`);
96
+ logger.error("Command failed", { error: errorMessage });
93
97
  }
94
98
  }
95
99
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/logger.d.ts CHANGED
@@ -1,11 +1,27 @@
1
- import { Command } from '@oclif/core';
2
- import type { Logger } from '@versu/core';
1
+ import { Command } from "@oclif/core";
2
+ import type { Logger } from "@versu/core";
3
+ /**
4
+ * CLI Logger implementation with beautiful formatting using chalk and ora
5
+ * Implements the core Logger interface for presentation in the CLI
6
+ */
3
7
  export declare class OclifLogger implements Logger {
4
8
  private readonly cmd;
5
- constructor(cmd: Command);
6
- info(message: string): void;
7
- warning(message: string | Error): void;
9
+ private readonly context;
10
+ private spinner;
11
+ private groupDepth;
12
+ private verbose;
13
+ constructor(cmd: Command, context?: Record<string, unknown>, verbose?: boolean);
14
+ debug(message: string, context?: Record<string, unknown>): void;
15
+ /**
16
+ * Helper method to handle spinner-aware logging with consistent formatting
17
+ */
18
+ private logWithSpinner;
19
+ info(message: string, context?: Record<string, unknown>): void;
20
+ warning(message: string | Error, context?: Record<string, unknown>): void;
8
21
  error(message: string | Error, context?: Record<string, unknown>): void;
9
- debug(message: string): void;
22
+ child(context: Record<string, unknown>): Logger;
23
+ startGroup(name: string): void;
24
+ group<T>(name: string, fn: () => Promise<T>): Promise<T>;
25
+ endGroup(): void;
10
26
  }
11
27
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAK1C,qBAAa,WAAY,YAAW,MAAM;IAC1B,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,OAAO;IACzC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAG3B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;IAGtC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAGvE,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAG/B"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAsE1C;;;GAGG;AACH,qBAAa,WAAY,YAAW,MAAM;IAMtC,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAN1B,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,OAAO,CAAU;gBAGN,GAAG,EAAE,OAAO,EACZ,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACtD,OAAO,UAAQ;IAKjB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAQ/D;;OAEG;IACH,OAAO,CAAC,cAAc;IA4BtB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAU9D,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAUzE,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAWvE,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;IAI/C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAWxB,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IA6B9D,QAAQ,IAAI,IAAI;CAWjB"}
package/dist/logger.js CHANGED
@@ -1,21 +1,161 @@
1
- import Debug from 'debug';
2
- const debug = Debug('versu');
1
+ import Debug from "debug";
2
+ import chalk from "chalk";
3
+ import ora from "ora";
4
+ const debug = Debug("versu");
5
+ function indent(str, spaces) {
6
+ const indentation = " ".repeat(spaces);
7
+ return indentation + str;
8
+ }
9
+ /**
10
+ * Formats context object for beautiful CLI display
11
+ */
12
+ function formatContext(context, baseIndent = 0) {
13
+ if (!context || Object.keys(context).length === 0)
14
+ return "";
15
+ const entries = Object.entries(context).map(([key, value]) => {
16
+ let formattedValue;
17
+ if (Array.isArray(value)) {
18
+ if (value.length === 0) {
19
+ formattedValue = "none";
20
+ }
21
+ else {
22
+ formattedValue = value.join(", ");
23
+ }
24
+ }
25
+ else if (typeof value === "object" && value !== null) {
26
+ formattedValue = JSON.stringify(value);
27
+ }
28
+ else {
29
+ formattedValue = String(value);
30
+ }
31
+ return { key, formattedValue, length: key.length + formattedValue.length };
32
+ });
33
+ // Calculate total inline length
34
+ const totalLength = entries.reduce((sum, e) => sum + e.length, 0);
35
+ const hasLongValue = entries.some(e => e.formattedValue.length > 50);
36
+ // Use inline format for simple cases: <= 3 keys and reasonable total length
37
+ if (entries.length <= 3 && totalLength < 80 && !hasLongValue) {
38
+ const inline = entries
39
+ .map(e => `${chalk.dim(e.key)}=${chalk.cyan(e.formattedValue)}`)
40
+ .join(" ");
41
+ return ` ${chalk.dim("(")}${inline}${chalk.dim(")")}`;
42
+ }
43
+ // Use multi-line format for complex cases
44
+ // Account for base indentation + icon (2 chars: "ℹ ")
45
+ const lineIndent = " ".repeat(baseIndent + 2);
46
+ const multiline = entries
47
+ .map(e => `${lineIndent}${chalk.dim(e.key)}: ${chalk.cyan(e.formattedValue)}`)
48
+ .join("\n");
49
+ return "\n" + multiline;
50
+ }
51
+ /**
52
+ * Formats a message with optional context for CLI output
53
+ */
54
+ function formatMessage(message, context, baseIndent = 0) {
55
+ const result = message instanceof Error ? message.toString() : message;
56
+ const contextString = formatContext(context, baseIndent);
57
+ return `${result}${contextString}`;
58
+ }
59
+ /**
60
+ * CLI Logger implementation with beautiful formatting using chalk and ora
61
+ * Implements the core Logger interface for presentation in the CLI
62
+ */
3
63
  export class OclifLogger {
4
64
  cmd;
5
- constructor(cmd) {
65
+ context;
66
+ spinner = null;
67
+ groupDepth = 0;
68
+ verbose;
69
+ constructor(cmd, context = {}, verbose = false) {
6
70
  this.cmd = cmd;
71
+ this.context = context;
72
+ this.verbose = verbose;
73
+ }
74
+ debug(message, context) {
75
+ // Debug messages only shown in verbose mode
76
+ if (this.verbose) {
77
+ const baseIndent = this.groupDepth * 2;
78
+ debug(formatMessage(message, { ...this.context, ...context }, baseIndent));
79
+ }
7
80
  }
8
- info(message) {
9
- this.cmd.log(message);
81
+ /**
82
+ * Helper method to handle spinner-aware logging with consistent formatting
83
+ */
84
+ logWithSpinner(logFn, icon, color, message, context, isError = false) {
85
+ const baseIndent = this.groupDepth * 2;
86
+ const formatted = formatMessage(message, { ...this.context, ...context }, baseIndent);
87
+ const output = indent(color(icon) + " " + formatted, baseIndent);
88
+ if (this.spinner) {
89
+ if (isError) {
90
+ this.spinner.fail();
91
+ this.spinner = null;
92
+ }
93
+ else {
94
+ this.spinner.stop();
95
+ }
96
+ }
97
+ logFn(output);
98
+ if (this.spinner && !isError) {
99
+ this.spinner.start();
100
+ }
10
101
  }
11
- warning(message) {
12
- this.cmd.warn(message);
102
+ info(message, context) {
103
+ this.logWithSpinner((msg) => this.cmd.log(msg), "ℹ", chalk.blue, message, context);
104
+ }
105
+ warning(message, context) {
106
+ this.logWithSpinner((msg) => this.cmd.warn(msg), "⚠", chalk.yellow, message, context);
13
107
  }
14
108
  error(message, context) {
15
- this.cmd.error(message, context);
109
+ this.logWithSpinner((msg) => this.cmd.error(msg), "✖", chalk.red, message, context, true);
110
+ }
111
+ child(context) {
112
+ return new OclifLogger(this.cmd, { ...this.context, ...context }, this.verbose);
113
+ }
114
+ startGroup(name) {
115
+ // Stop any active spinner before starting a group
116
+ if (this.spinner) {
117
+ this.spinner.succeed();
118
+ this.spinner = null;
119
+ }
120
+ this.cmd.log(indent(chalk.bold.cyan(name), this.groupDepth));
121
+ this.groupDepth++;
122
+ }
123
+ async group(name, fn) {
124
+ this.startGroup(name);
125
+ try {
126
+ // Start spinner for the group operation
127
+ this.spinner = ora({
128
+ indent: this.groupDepth,
129
+ color: "cyan",
130
+ }).start();
131
+ const result = await fn();
132
+ // Succeed the spinner when done
133
+ if (this.spinner) {
134
+ this.spinner.succeed(chalk.green("Complete"));
135
+ this.spinner = null;
136
+ }
137
+ return result;
138
+ }
139
+ catch (error) {
140
+ if (this.spinner) {
141
+ this.spinner.fail(chalk.red("Failed"));
142
+ this.spinner = null;
143
+ }
144
+ throw error;
145
+ }
146
+ finally {
147
+ this.endGroup();
148
+ }
16
149
  }
17
- debug(message) {
18
- debug(message);
150
+ endGroup() {
151
+ if (this.groupDepth > 0) {
152
+ this.groupDepth--;
153
+ }
154
+ // Clean up spinner if still active
155
+ if (this.groupDepth === 0 && this.spinner) {
156
+ this.spinner.stop();
157
+ this.spinner = null;
158
+ }
19
159
  }
20
160
  }
21
161
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;AAE7B,MAAM,OAAO,WAAW;IACS;IAA7B,YAA6B,GAAY;QAAZ,QAAG,GAAH,GAAG,CAAS;IAAI,CAAC;IAC9C,IAAI,CAAC,OAAe;QAChB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,CAAC,OAAuB;QAC3B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IACD,KAAK,CAAC,OAAuB,EAAE,OAAiC;QAC5D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IACD,KAAK,CAAC,OAAe;QACjB,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;CACJ"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@versu/cli",
3
- "version": "0.6.7",
3
+ "version": "0.6.8",
4
4
  "description": "VERSU (CLI)",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -38,8 +38,10 @@
38
38
  "types": "dist/index.d.ts",
39
39
  "dependencies": {
40
40
  "@oclif/core": "^4.8.0",
41
- "@versu/core": "^0.6.7",
42
- "oclif": "^4.14.0"
41
+ "@versu/core": "^0.6.8",
42
+ "chalk": "^5.6.2",
43
+ "oclif": "^4.14.0",
44
+ "ora": "^9.3.0"
43
45
  },
44
46
  "devDependencies": {
45
47
  "@oclif/dev-cli": "^1.26.10",