@trebired/code-discipline 4.2.3 → 4.2.4

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/CHANGELOG.md CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
  All notable changes to `@trebired/code-discipline` will be documented here.
4
4
 
5
+ ## 4.2.4
6
+
7
+ - Removed the CLI loading spinner so progress logs never interleave with `Scanning codebase` frames.
8
+ - Routed warning-only CLI violations and warning-only summaries through the `@trebired/logger` warning level without prefixing violation messages with `warning`.
9
+
5
10
  ## 4.2.3
6
11
 
7
12
  - Routed TTY progress output through the same `@trebired/logger` CLI writer and restored logger-managed console colors.
@@ -1,5 +1,5 @@
1
1
  import { type LogInstance } from "@trebired/logger";
2
- type CliLogLevel = "fail" | "info";
2
+ type CliLogLevel = "fail" | "info" | "warn";
3
3
  declare function createDefaultCliLogger(): LogInstance;
4
4
  declare function writeLogText(logger: LogInstance, level: CliLogLevel, text: string): void;
5
5
  export { createDefaultCliLogger, writeLogText };
@@ -1 +1 @@
1
- {"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/cli/logging.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAI/D,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAEnC,iBAAS,sBAAsB,IAAI,WAAW,CAU7C;AAED,iBAAS,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAQjF;AAED,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/cli/logging.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAI/D,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE5C,iBAAS,sBAAsB,IAAI,WAAW,CAU7C;AAED,iBAAS,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAQjF;AAED,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,CAAC"}
@@ -12,7 +12,7 @@ function createDefaultCliLogger() {
12
12
  });
13
13
  }
14
14
  function writeLogText(logger, level, text) {
15
- const method = level === "fail" ? logger.fail : logger.info;
15
+ const method = level === "fail" ? logger.fail : level === "warn" ? logger.warn : logger.info;
16
16
  for (const rawLine of text.split(/\r?\n/)) {
17
17
  const line = rawLine.trimEnd();
18
18
  if (!line)
@@ -1 +1 @@
1
- {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/cli/logging.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAoB,MAAM,kBAAkB,CAAC;AAE/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAInE,SAAS,sBAAsB;IAC7B,OAAO,SAAS,CAAC;QACf,OAAO,EAAE;YACP,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,KAAK;SACjB;QACD,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,2BAA2B;KACpC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CAAC,MAAmB,EAAE,KAAkB,EAAE,IAAY;IACzE,MAAM,MAAM,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;IAE5D,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,yBAAyB,MAAM,EAAE,IAAI,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/cli/logging.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAoB,MAAM,kBAAkB,CAAC;AAE/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAInE,SAAS,sBAAsB;IAC7B,OAAO,SAAS,CAAC;QACf,OAAO,EAAE;YACP,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,KAAK;SACjB;QACD,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,2BAA2B;KACpC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CAAC,MAAmB,EAAE,KAAkB,EAAE,IAAY;IACzE,MAAM,MAAM,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;IAE7F,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,yBAAyB,MAAM,EAAE,IAAI,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { CodeDisciplineViolation } from "../shared/discipline-types.js";
2
+ declare function writeCheckOutput(args: {
3
+ stdout: (text: string) => void;
4
+ warn: (text: string) => void;
5
+ violationCount: number;
6
+ violations: CodeDisciplineViolation[];
7
+ }): string;
8
+ declare function writeFixOutput(args: {
9
+ deletedFiles: number;
10
+ movedFiles: number;
11
+ rewrittenFiles: number;
12
+ rewrittenImports: number;
13
+ removedComments: number;
14
+ stdout: (text: string) => void;
15
+ violationCount: number;
16
+ violations: CodeDisciplineViolation[];
17
+ warn: (text: string) => void;
18
+ }): string;
19
+ declare function writeSavedReport(args: {
20
+ cwd: string;
21
+ now: Date;
22
+ reportText: string;
23
+ saveOutput: boolean;
24
+ stdout: (text: string) => void;
25
+ }): Promise<void>;
26
+ export { writeCheckOutput, writeFixOutput, writeSavedReport };
27
+ //# sourceMappingURL=output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAiG7E,iBAAS,gBAAgB,CAAC,IAAI,EAAE;IAC9B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,uBAAuB,EAAE,CAAC;CACvC,GAAG,MAAM,CAkBT;AAiBD,iBAAS,cAAc,CAAC,IAAI,EAAE;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,uBAAuB,EAAE,CAAC;IACtC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B,GAAG,MAAM,CAUT;AASD,iBAAe,gBAAgB,CAC7B,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,GACxG,OAAO,CAAC,IAAI,CAAC,CAKf;AAED,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,128 @@
1
+ import fs from "node:fs/promises";
2
+ import path from "node:path";
3
+ function padDatePart(value) {
4
+ return String(value).padStart(2, "0");
5
+ }
6
+ function createSavedReportFilename(now) {
7
+ const year = now.getFullYear();
8
+ const month = padDatePart(now.getMonth() + 1);
9
+ const day = padDatePart(now.getDate());
10
+ const hours = padDatePart(now.getHours());
11
+ const minutes = padDatePart(now.getMinutes());
12
+ const seconds = padDatePart(now.getSeconds());
13
+ return `cd-report-${year}-${month}-${day}-${hours}-${minutes}-${seconds}.txt`;
14
+ }
15
+ function isRecord(value) {
16
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
17
+ }
18
+ function formatDryConfidence(value) {
19
+ if (typeof value === "number" && Number.isFinite(value))
20
+ return String(value);
21
+ if (typeof value === "string" && value.trim())
22
+ return value.trim();
23
+ return "unknown";
24
+ }
25
+ function formatDrySignals(value) {
26
+ if (!Array.isArray(value))
27
+ return "unknown";
28
+ const signals = value.filter((signal) => typeof signal === "string" && signal.trim().length > 0);
29
+ return signals.length > 0 ? signals.join(", ") : "unknown";
30
+ }
31
+ function formatDryFunctionLine(value) {
32
+ if (typeof value === "number" && Number.isFinite(value))
33
+ return String(value);
34
+ if (typeof value === "string" && value.trim())
35
+ return value.trim();
36
+ return undefined;
37
+ }
38
+ function formatDryFunctionName(value) {
39
+ return typeof value === "string" && value.trim() ? value.trim() : "anonymous function";
40
+ }
41
+ function formatDryFunctionDetail(value) {
42
+ const detail = isRecord(value) ? value : {};
43
+ const filePath = typeof detail.filePath === "string" && detail.filePath.trim() ? detail.filePath.trim() : "unknown file";
44
+ const line = formatDryFunctionLine(detail.line);
45
+ const location = line ? `${filePath}:${line}` : filePath;
46
+ return ` - ${location} ${formatDryFunctionName(detail.name)}`;
47
+ }
48
+ function formatDryViolation(violation) {
49
+ const details = violation.details;
50
+ const functions = Array.isArray(details.functions) ? details.functions : [];
51
+ const functionLabel = functions.length === 1 ? "function" : "functions";
52
+ const header = `${violation.rule} ${violation.message}: ${functions.length} ${functionLabel}, confidence ${formatDryConfidence(details.confidence)}, signals: ${formatDrySignals(details.signals)}`;
53
+ const functionLines = functions.map(formatDryFunctionDetail);
54
+ return functionLines.length > 0 ? [header, ...functionLines].join("\n") : header;
55
+ }
56
+ function formatViolation(violation) {
57
+ if (violation.rule === "dry")
58
+ return formatDryViolation(violation);
59
+ const suggested = violation.suggestedPath ? ` suggested=${violation.suggestedPath}` : "";
60
+ return `${violation.rule} ${violation.filePath} ${violation.message}${suggested}`;
61
+ }
62
+ function countBlockingViolations(violations) {
63
+ return violations.filter((violation) => violation.severity !== "warning").length;
64
+ }
65
+ function renderCheckSummary(blockingCount, warningCount) {
66
+ if (blockingCount > 0) {
67
+ return warningCount > 0
68
+ ? `Found ${blockingCount} discipline violation(s) and ${warningCount} warning(s).\n`
69
+ : `Found ${blockingCount} discipline violation(s).\n`;
70
+ }
71
+ return `Found ${warningCount} discipline warning(s).\n`;
72
+ }
73
+ function renderCheckOutput(violations, violationCount) {
74
+ if (violations.length === 0) {
75
+ return "No discipline violations found.\n";
76
+ }
77
+ const blockingCount = countBlockingViolations(violations);
78
+ const warningCount = violationCount - blockingCount;
79
+ return [
80
+ ...violations.map((violation) => `${formatViolation(violation)}\n`),
81
+ renderCheckSummary(blockingCount, warningCount),
82
+ ].join("");
83
+ }
84
+ function writeCheckOutput(args) {
85
+ const reportText = renderCheckOutput(args.violations, args.violationCount);
86
+ if (args.violations.length === 0) {
87
+ args.stdout(reportText);
88
+ return reportText;
89
+ }
90
+ for (const violation of args.violations) {
91
+ const writeLine = violation.severity === "warning" ? args.warn : args.stdout;
92
+ writeLine(`${formatViolation(violation)}\n`);
93
+ }
94
+ const blockingCount = countBlockingViolations(args.violations);
95
+ const warningCount = args.violationCount - blockingCount;
96
+ const summary = renderCheckSummary(blockingCount, warningCount);
97
+ (blockingCount > 0 ? args.stdout : args.warn)(summary);
98
+ return reportText;
99
+ }
100
+ function renderFixOutput(args) {
101
+ return [
102
+ ...args.violations.map((violation) => `${formatViolation(violation)}\n`),
103
+ `Fix summary: deleted files ${args.deletedFiles}, moved ${args.movedFiles}, rewritten files ${args.rewrittenFiles}, rewritten imports ${args.rewrittenImports}, removed comments ${args.removedComments}, remaining violations ${args.violationCount}.\n`,
104
+ ].join("");
105
+ }
106
+ function writeFixOutput(args) {
107
+ const reportText = renderFixOutput(args);
108
+ for (const violation of args.violations) {
109
+ const writeLine = violation.severity === "warning" ? args.warn : args.stdout;
110
+ writeLine(`${formatViolation(violation)}\n`);
111
+ }
112
+ args.stdout(`Fix summary: deleted files ${args.deletedFiles}, moved ${args.movedFiles}, rewritten files ${args.rewrittenFiles}, rewritten imports ${args.rewrittenImports}, removed comments ${args.removedComments}, remaining violations ${args.violationCount}.\n`);
113
+ return reportText;
114
+ }
115
+ async function saveCliOutput(cwd, reportText, now) {
116
+ const reportFilename = createSavedReportFilename(now);
117
+ const reportPath = path.join(cwd, reportFilename);
118
+ await fs.writeFile(reportPath, reportText, "utf8");
119
+ return reportFilename;
120
+ }
121
+ async function writeSavedReport(args) {
122
+ if (!args.saveOutput)
123
+ return;
124
+ const reportFilename = await saveCliOutput(args.cwd, args.reportText, args.now);
125
+ args.stdout(`Saved report to ${reportFilename}.\n`);
126
+ }
127
+ export { writeCheckOutput, writeFixOutput, writeSavedReport };
128
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,9 @@ type TimedTaskResult<T> = {
3
3
  elapsedMs: number;
4
4
  result: T;
5
5
  };
6
- declare function withLoadingAnimation<T>(label: string, enabled: boolean, task: (writeLine: (text: string) => void) => Promise<T>): Promise<TimedTaskResult<T>>;
6
+ declare function timeTask<T>(task: () => Promise<T>): Promise<TimedTaskResult<T>>;
7
7
  declare function formatDuration(milliseconds: number): string;
8
8
  declare function createCliScanObserver(writeLine: (text: string) => void): (event: SourceProgressEvent) => void;
9
- export { createCliScanObserver, formatDuration, withLoadingAnimation };
9
+ export { createCliScanObserver, formatDuration, timeTask };
10
10
  export type { TimedTaskResult };
11
11
  //# sourceMappingURL=progress.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/cli/progress.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,mBAAmB,EAIpB,MAAM,qBAAqB,CAAC;AAQ7B,KAAK,eAAe,CAAC,CAAC,IAAI;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,CAAC,CAAC;CACX,CAAC;AA+CF,iBAAe,oBAAoB,CAAC,CAAC,EACnC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GACtD,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAkB7B;AAED,iBAAS,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAUpD;AAuBD,iBAAS,qBAAqB,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,IACtD,OAAO,mBAAmB,UA4BnC;AAED,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,oBAAoB,EAAE,CAAC;AACvE,YAAY,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/cli/progress.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,mBAAmB,EAIpB,MAAM,qBAAqB,CAAC;AAE7B,KAAK,eAAe,CAAC,CAAC,IAAI;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,CAAC,CAAC;CACX,CAAC;AAEF,iBAAe,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAO9E;AAED,iBAAS,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAUpD;AAuBD,iBAAS,qBAAqB,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,IACtD,OAAO,mBAAmB,UA4BnC;AAED,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC;AAC3D,YAAY,EAAE,eAAe,EAAE,CAAC"}
@@ -1,61 +1,11 @@
1
1
  import { performance } from "node:perf_hooks";
2
- const LOADING_FRAMES = ["-", "\\", "|", "/"];
3
- const disabledAnimationStep = () => undefined;
4
- function createLoadingAnimation(label, enabled) {
5
- if (!enabled) {
6
- return {
7
- pause: disabledAnimationStep,
8
- resume: disabledAnimationStep,
9
- stop: disabledAnimationStep,
10
- };
11
- }
12
- let frameIndex = 0;
13
- let running = true;
14
- const render = () => {
15
- if (!running)
16
- return;
17
- process.stderr.write(`\r${label} ${LOADING_FRAMES[frameIndex]}`);
18
- };
19
- const clear = () => {
20
- process.stderr.write(`\r${" ".repeat(label.length + 2)}\r`);
21
- };
22
- render();
23
- const timer = setInterval(() => {
24
- frameIndex = (frameIndex + 1) % LOADING_FRAMES.length;
25
- render();
26
- }, 120);
27
- return {
28
- pause() {
29
- clear();
30
- },
31
- resume() {
32
- render();
33
- },
34
- stop() {
35
- running = false;
36
- clearInterval(timer);
37
- clear();
38
- },
39
- };
40
- }
41
- async function withLoadingAnimation(label, enabled, task) {
2
+ async function timeTask(task) {
42
3
  const startedAt = performance.now();
43
- const animation = createLoadingAnimation(label, enabled);
44
- const writeLine = (text) => {
45
- animation.pause();
46
- process.stderr.write(text);
47
- animation.resume();
4
+ const result = await task();
5
+ return {
6
+ elapsedMs: performance.now() - startedAt,
7
+ result,
48
8
  };
49
- try {
50
- const result = await task(writeLine);
51
- return {
52
- elapsedMs: performance.now() - startedAt,
53
- result,
54
- };
55
- }
56
- finally {
57
- animation.stop();
58
- }
59
9
  }
60
10
  function formatDuration(milliseconds) {
61
11
  if (milliseconds >= 1000) {
@@ -103,5 +53,5 @@ function createCliScanObserver(writeLine) {
103
53
  writeLine(`${event.rule} ${event.stage}: ${event.totalItems} items${formatRuleProgressDetails(event)} in ${formatDuration(event.elapsedMs)}.\n`);
104
54
  };
105
55
  }
106
- export { createCliScanObserver, formatDuration, withLoadingAnimation };
56
+ export { createCliScanObserver, formatDuration, timeTask };
107
57
  //# sourceMappingURL=progress.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/cli/progress.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/cli/progress.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"run-cli.d.ts","sourceRoot":"","sources":["../../src/cli/run-cli.ts"],"names":[],"mappings":";AAcA,KAAK,aAAa,GAAG;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AA6TF,iBAAe,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAwDxF;AAOD,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"run-cli.d.ts","sourceRoot":"","sources":["../../src/cli/run-cli.ts"],"names":[],"mappings":";AAWA,KAAK,aAAa,GAAG;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAyOF,iBAAe,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CA6CxF;AAOD,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC"}
@@ -1,23 +1,30 @@
1
1
  #!/usr/bin/env node
2
- import fs from "node:fs/promises";
3
- import path from "node:path";
4
2
  import { codeDiscipline } from "../run.js";
5
3
  import { loadResolvedCodeDisciplineConfig } from "../config/index.js";
6
4
  import { runGatedCommand } from "../runtime/gate-command.js";
7
5
  import { isDirectExecution } from "../shared/utils.js";
8
6
  import { createDefaultCliLogger, writeLogText } from "./logging.js";
9
- import { createCliScanObserver, formatDuration, withLoadingAnimation } from "./progress.js";
10
- function padDatePart(value) {
11
- return String(value).padStart(2, "0");
12
- }
13
- function createSavedReportFilename(now) {
14
- const year = now.getFullYear();
15
- const month = padDatePart(now.getMonth() + 1);
16
- const day = padDatePart(now.getDate());
17
- const hours = padDatePart(now.getHours());
18
- const minutes = padDatePart(now.getMinutes());
19
- const seconds = padDatePart(now.getSeconds());
20
- return `cd-report-${year}-${month}-${day}-${hours}-${minutes}-${seconds}.txt`;
7
+ import { writeCheckOutput, writeFixOutput, writeSavedReport } from "./output.js";
8
+ import { createCliScanObserver, formatDuration, timeTask } from "./progress.js";
9
+ function createCliWriters(options) {
10
+ const useDefaultLogger = !options.stdout && !options.stderr;
11
+ const logger = useDefaultLogger ? createDefaultCliLogger() : null;
12
+ const stdout = options.stdout ?? (useDefaultLogger
13
+ ? ((text) => writeLogText(logger, "info", text))
14
+ : ((text) => process.stdout.write(text)));
15
+ const stderr = options.stderr ?? (useDefaultLogger
16
+ ? ((text) => writeLogText(logger, "info", text))
17
+ : ((text) => process.stderr.write(text)));
18
+ return {
19
+ fail: options.stderr ?? (useDefaultLogger
20
+ ? ((text) => writeLogText(logger, "fail", text))
21
+ : ((text) => process.stderr.write(text))),
22
+ stderr,
23
+ stdout,
24
+ warn: options.stdout ?? (useDefaultLogger
25
+ ? ((text) => writeLogText(logger, "warn", text))
26
+ : ((text) => process.stdout.write(text))),
27
+ };
21
28
  }
22
29
  function renderHelp() {
23
30
  return [
@@ -79,96 +86,11 @@ function parseArgs(args) {
79
86
  }
80
87
  return { configPath, saveOutput, selectors, commandArgs };
81
88
  }
82
- function isRecord(value) {
83
- return Boolean(value) && typeof value === "object" && !Array.isArray(value);
84
- }
85
- function formatDryConfidence(value) {
86
- if (typeof value === "number" && Number.isFinite(value))
87
- return String(value);
88
- if (typeof value === "string" && value.trim())
89
- return value.trim();
90
- return "unknown";
91
- }
92
- function formatDrySignals(value) {
93
- if (!Array.isArray(value))
94
- return "unknown";
95
- const signals = value.filter((signal) => typeof signal === "string" && signal.trim().length > 0);
96
- return signals.length > 0 ? signals.join(", ") : "unknown";
97
- }
98
- function formatDryFunctionLine(value) {
99
- if (typeof value === "number" && Number.isFinite(value))
100
- return String(value);
101
- if (typeof value === "string" && value.trim())
102
- return value.trim();
103
- return undefined;
104
- }
105
- function formatDryFunctionName(value) {
106
- return typeof value === "string" && value.trim() ? value.trim() : "anonymous function";
107
- }
108
- function formatDryFunctionDetail(value) {
109
- const detail = isRecord(value) ? value : {};
110
- const filePath = typeof detail.filePath === "string" && detail.filePath.trim() ? detail.filePath.trim() : "unknown file";
111
- const line = formatDryFunctionLine(detail.line);
112
- const location = line ? `${filePath}:${line}` : filePath;
113
- return ` - ${location} ${formatDryFunctionName(detail.name)}`;
114
- }
115
- function formatDryViolation(violation) {
116
- const details = violation.details;
117
- const functions = Array.isArray(details.functions) ? details.functions : [];
118
- const severity = violation.severity === "warning" ? "warning " : "";
119
- const functionLabel = functions.length === 1 ? "function" : "functions";
120
- const header = `${severity}${violation.rule} ${violation.message}: ${functions.length} ${functionLabel}, confidence ${formatDryConfidence(details.confidence)}, signals: ${formatDrySignals(details.signals)}`;
121
- const functionLines = functions.map(formatDryFunctionDetail);
122
- return functionLines.length > 0 ? [header, ...functionLines].join("\n") : header;
123
- }
124
- function formatViolation(violation) {
125
- if (violation.rule === "dry")
126
- return formatDryViolation(violation);
127
- const suggested = violation.suggestedPath ? ` suggested=${violation.suggestedPath}` : "";
128
- const severity = violation.severity === "warning" ? "warning " : "";
129
- return `${severity}${violation.rule} ${violation.filePath} ${violation.message}${suggested}`;
130
- }
131
- function countBlockingViolations(violations) {
132
- return violations.filter((violation) => violation.severity !== "warning").length;
133
- }
134
- function renderCheckOutput(violations, violationCount) {
135
- if (violations.length === 0) {
136
- return "No discipline violations found.\n";
137
- }
138
- const blockingCount = countBlockingViolations(violations);
139
- const warningCount = violationCount - blockingCount;
140
- return [
141
- ...violations.map((violation) => `${formatViolation(violation)}\n`),
142
- blockingCount > 0
143
- ? warningCount > 0
144
- ? `Found ${blockingCount} discipline violation(s) and ${warningCount} warning(s).\n`
145
- : `Found ${blockingCount} discipline violation(s).\n`
146
- : `Found ${warningCount} discipline warning(s).\n`,
147
- ].join("");
148
- }
149
- function renderFixOutput(args) {
150
- return [
151
- ...args.violations.map((violation) => `${formatViolation(violation)}\n`),
152
- `Fix summary: deleted files ${args.deletedFiles}, moved ${args.movedFiles}, rewritten files ${args.rewrittenFiles}, rewritten imports ${args.rewrittenImports}, removed comments ${args.removedComments}, remaining violations ${args.violationCount}.\n`,
153
- ].join("");
154
- }
155
- async function saveCliOutput(cwd, reportText, now) {
156
- const reportFilename = createSavedReportFilename(now);
157
- const reportPath = path.join(cwd, reportFilename);
158
- await fs.writeFile(reportPath, reportText, "utf8");
159
- return reportFilename;
160
- }
161
- async function writeSavedReport(args) {
162
- if (!args.saveOutput)
163
- return;
164
- const reportFilename = await saveCliOutput(args.cwd, args.reportText, args.now);
165
- args.stdout(`Saved report to ${reportFilename}.\n`);
166
- }
167
89
  async function runCheckCommand(args) {
168
90
  if (args.parsed.commandArgs.length > 0) {
169
91
  throw new Error("Command separator -- is only supported with gate");
170
92
  }
171
- const timed = await withLoadingAnimation("Scanning codebase", args.showLoadingAnimation, () => {
93
+ const timed = await timeTask(() => {
172
94
  const progressObserver = createCliScanObserver(args.stderr);
173
95
  return codeDiscipline({
174
96
  ...args.config,
@@ -181,9 +103,13 @@ async function runCheckCommand(args) {
181
103
  });
182
104
  });
183
105
  const result = timed.result;
184
- const reportText = renderCheckOutput(result.violations, result.violationCount);
185
106
  args.stderr(`Total check: ${formatDuration(timed.elapsedMs)}.\n`);
186
- args.stdout(reportText);
107
+ const reportText = writeCheckOutput({
108
+ stdout: args.stdout,
109
+ violationCount: result.violationCount,
110
+ violations: result.violations,
111
+ warn: args.warn,
112
+ });
187
113
  await writeSavedReport({ ...args, reportText, saveOutput: args.parsed.saveOutput });
188
114
  return { exitCode: result.ok ? 0 : 1 };
189
115
  }
@@ -191,7 +117,7 @@ async function runFixCommand(args) {
191
117
  if (args.parsed.commandArgs.length > 0) {
192
118
  throw new Error("Command separator -- is only supported with gate");
193
119
  }
194
- const timed = await withLoadingAnimation("Fixing codebase", args.showLoadingAnimation, () => {
120
+ const timed = await timeTask(() => {
195
121
  const progressObserver = createCliScanObserver(args.stderr);
196
122
  return codeDiscipline({
197
123
  ...args.config,
@@ -204,16 +130,17 @@ async function runFixCommand(args) {
204
130
  });
205
131
  });
206
132
  const result = timed.result;
207
- const reportText = renderFixOutput({
133
+ const reportText = writeFixOutput({
208
134
  deletedFiles: result.deleted_files,
209
135
  movedFiles: result.moved_files,
210
136
  rewrittenFiles: result.rewritten_files,
211
137
  rewrittenImports: result.rewritten_imports,
212
138
  removedComments: result.removed_comments ?? 0,
139
+ stdout: args.stdout,
213
140
  violationCount: result.violationCount,
214
141
  violations: result.violations,
142
+ warn: args.warn,
215
143
  });
216
- args.stdout(reportText);
217
144
  await writeSavedReport({ ...args, reportText, saveOutput: args.parsed.saveOutput });
218
145
  return { exitCode: result.ok ? 0 : 1 };
219
146
  }
@@ -221,7 +148,7 @@ async function runGateCommand(args) {
221
148
  if (args.parsed.commandArgs.length === 0) {
222
149
  throw new Error("Missing child command after --");
223
150
  }
224
- const timed = await withLoadingAnimation("Scanning codebase", args.showLoadingAnimation, () => {
151
+ const timed = await timeTask(() => {
225
152
  const progressObserver = createCliScanObserver(args.stderr);
226
153
  return codeDiscipline({
227
154
  ...args.config,
@@ -236,8 +163,12 @@ async function runGateCommand(args) {
236
163
  const result = timed.result;
237
164
  args.stderr(`Total gate check: ${formatDuration(timed.elapsedMs)}.\n`);
238
165
  if (!result.ok) {
239
- const reportText = renderCheckOutput(result.violations, result.violationCount);
240
- args.stdout(reportText);
166
+ const reportText = writeCheckOutput({
167
+ stdout: args.stdout,
168
+ violationCount: result.violationCount,
169
+ violations: result.violations,
170
+ warn: args.warn,
171
+ });
241
172
  await writeSavedReport({ ...args, reportText, saveOutput: args.parsed.saveOutput });
242
173
  return { exitCode: 1 };
243
174
  }
@@ -247,18 +178,7 @@ async function runGateCommand(args) {
247
178
  async function runCli(argv, options = {}) {
248
179
  const cwd = options.cwd ?? process.cwd();
249
180
  const now = options.now ?? new Date();
250
- const useDefaultLogger = !options.stdout && !options.stderr;
251
- const logger = useDefaultLogger ? createDefaultCliLogger() : null;
252
- const stdout = options.stdout ?? (useDefaultLogger
253
- ? ((text) => writeLogText(logger, "info", text))
254
- : ((text) => process.stdout.write(text)));
255
- const stderr = options.stderr ?? (useDefaultLogger
256
- ? ((text) => writeLogText(logger, "info", text))
257
- : ((text) => process.stderr.write(text)));
258
- const fail = options.stderr ?? (useDefaultLogger
259
- ? ((text) => writeLogText(logger, "fail", text))
260
- : ((text) => process.stderr.write(text)));
261
- const showLoadingAnimation = !options.stderr && Boolean(process.stderr.isTTY) && !process.env.CI;
181
+ const { fail, stderr, stdout, warn } = createCliWriters(options);
262
182
  const [command, ...rest] = argv;
263
183
  if (!command || command === "help" || command === "--help" || command === "-h") {
264
184
  stdout(renderHelp());
@@ -273,9 +193,9 @@ async function runCli(argv, options = {}) {
273
193
  cwd,
274
194
  now,
275
195
  parsed,
276
- showLoadingAnimation,
277
196
  stderr,
278
197
  stdout,
198
+ warn,
279
199
  };
280
200
  if (command === "check") {
281
201
  return await runCheckCommand(commandArgs);
@@ -1 +1 @@
1
- {"version":3,"file":"run-cli.js","sourceRoot":"","sources":["../../src/cli/run-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-cli.js","sourceRoot":"","sources":["../../src/cli/run-cli.ts"],"names":[],"mappings":"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"}
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trebired/code-discipline",
3
- "version": "4.2.3",
3
+ "version": "4.2.4",
4
4
  "description": "Configurable codebase discipline checks and rule-driven fixes for Bun and Node.js projects.",
5
5
  "license": "AGPL-3.0-only",
6
6
  "keywords": [