@quenty/cli-output-helpers 1.9.0 → 1.10.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/CHANGELOG.md +11 -0
- package/dist/reporting/composite-reporter.d.ts +3 -1
- package/dist/reporting/composite-reporter.d.ts.map +1 -1
- package/dist/reporting/composite-reporter.js +9 -0
- package/dist/reporting/composite-reporter.js.map +1 -1
- package/dist/reporting/github/comment-table-reporter.d.ts +2 -1
- package/dist/reporting/github/comment-table-reporter.d.ts.map +1 -1
- package/dist/reporting/github/comment-table-reporter.js +3 -0
- package/dist/reporting/github/comment-table-reporter.js.map +1 -1
- package/dist/reporting/github/formatting.d.ts +3 -3
- package/dist/reporting/github/formatting.d.ts.map +1 -1
- package/dist/reporting/github/formatting.js +27 -7
- package/dist/reporting/github/formatting.js.map +1 -1
- package/dist/reporting/grouped-reporter.d.ts.map +1 -1
- package/dist/reporting/grouped-reporter.js +14 -2
- package/dist/reporting/grouped-reporter.js.map +1 -1
- package/dist/reporting/index.d.ts +2 -1
- package/dist/reporting/index.d.ts.map +1 -1
- package/dist/reporting/index.js +2 -0
- package/dist/reporting/index.js.map +1 -1
- package/dist/reporting/progress-format.d.ts +35 -0
- package/dist/reporting/progress-format.d.ts.map +1 -0
- package/dist/reporting/progress-format.js +88 -0
- package/dist/reporting/progress-format.js.map +1 -0
- package/dist/reporting/reporter.d.ts +27 -1
- package/dist/reporting/reporter.d.ts.map +1 -1
- package/dist/reporting/reporter.js +1 -0
- package/dist/reporting/reporter.js.map +1 -1
- package/dist/reporting/simple-reporter.d.ts.map +1 -1
- package/dist/reporting/simple-reporter.js +4 -1
- package/dist/reporting/simple-reporter.js.map +1 -1
- package/dist/reporting/spinner-reporter.d.ts.map +1 -1
- package/dist/reporting/spinner-reporter.js +25 -6
- package/dist/reporting/spinner-reporter.js.map +1 -1
- package/dist/reporting/state/live-state-tracker.d.ts +3 -1
- package/dist/reporting/state/live-state-tracker.d.ts.map +1 -1
- package/dist/reporting/state/live-state-tracker.js +15 -0
- package/dist/reporting/state/live-state-tracker.js.map +1 -1
- package/dist/reporting/state/loaded-state-tracker.d.ts +2 -1
- package/dist/reporting/state/loaded-state-tracker.d.ts.map +1 -1
- package/dist/reporting/state/loaded-state-tracker.js +4 -0
- package/dist/reporting/state/loaded-state-tracker.js.map +1 -1
- package/dist/reporting/state/state-tracker.d.ts +3 -1
- package/dist/reporting/state/state-tracker.d.ts.map +1 -1
- package/dist/reporting/summary-table-reporter.d.ts.map +1 -1
- package/dist/reporting/summary-table-reporter.js +34 -6
- package/dist/reporting/summary-table-reporter.js.map +1 -1
- package/package.json +2 -2
- package/src/reporting/composite-reporter.ts +12 -1
- package/src/reporting/github/comment-table-reporter.ts +5 -0
- package/src/reporting/github/formatting.ts +31 -7
- package/src/reporting/grouped-reporter.ts +15 -4
- package/src/reporting/index.ts +12 -0
- package/src/reporting/progress-format.ts +97 -0
- package/src/reporting/reporter.ts +34 -1
- package/src/reporting/simple-reporter.ts +4 -1
- package/src/reporting/spinner-reporter.ts +24 -12
- package/src/reporting/state/live-state-tracker.ts +16 -1
- package/src/reporting/state/loaded-state-tracker.ts +6 -0
- package/src/reporting/state/state-tracker.ts +3 -1
- package/src/reporting/summary-table-reporter.ts +40 -6
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [1.10.0](https://github.com/Quenty/Nevermore/compare/@quenty/cli-output-helpers@1.9.0...@quenty/cli-output-helpers@1.10.0) (2026-02-23)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **cli:** add structured progress and failure context to reporting ([#668](https://github.com/Quenty/Nevermore/issues/668)) ([e716329](https://github.com/Quenty/Nevermore/commit/e716329f5aeace8b213322ba3cce06b98d8ea43d))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
# [1.9.0](https://github.com/Quenty/Nevermore/compare/@quenty/cli-output-helpers@1.8.0...@quenty/cli-output-helpers@1.9.0) (2026-02-19)
|
|
7
18
|
|
|
8
19
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type PackageResult, type Reporter, type JobPhase } from './reporter.js';
|
|
1
|
+
import { type PackageResult, type Reporter, type JobPhase, type ProgressSummary } from './reporter.js';
|
|
2
2
|
import { LiveStateTracker } from './state/live-state-tracker.js';
|
|
3
3
|
/**
|
|
4
4
|
* Owns a LiveStateTracker and fans out every lifecycle hook
|
|
@@ -10,9 +10,11 @@ export declare class CompositeReporter implements Reporter {
|
|
|
10
10
|
private _state;
|
|
11
11
|
private _reporters;
|
|
12
12
|
constructor(packageNames: string[], factory: (state: LiveStateTracker) => Reporter[]);
|
|
13
|
+
get state(): LiveStateTracker;
|
|
13
14
|
startAsync(): Promise<void>;
|
|
14
15
|
onPackageStart(packageName: string): void;
|
|
15
16
|
onPackagePhaseChange(packageName: string, phase: JobPhase): void;
|
|
17
|
+
onPackageProgressUpdate(packageName: string, progress: ProgressSummary): void;
|
|
16
18
|
onPackageResult(result: PackageResult, bufferedOutput?: string[]): void;
|
|
17
19
|
stopAsync(): Promise<void>;
|
|
18
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composite-reporter.d.ts","sourceRoot":"","sources":["../../src/reporting/composite-reporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"composite-reporter.d.ts","sourceRoot":"","sources":["../../src/reporting/composite-reporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACvG,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE;;;;;GAKG;AACH,qBAAa,iBAAkB,YAAW,QAAQ;IAChD,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,UAAU,CAAa;gBAG7B,YAAY,EAAE,MAAM,EAAE,EACtB,OAAO,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,QAAQ,EAAE;IAMlD,IAAI,KAAK,IAAI,gBAAgB,CAE5B;IAEK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAOzC,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI;IAOhE,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI;IAO7E,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;IAOjE,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAMjC"}
|
|
@@ -12,6 +12,9 @@ export class CompositeReporter {
|
|
|
12
12
|
this._state = new LiveStateTracker(packageNames);
|
|
13
13
|
this._reporters = factory(this._state);
|
|
14
14
|
}
|
|
15
|
+
get state() {
|
|
16
|
+
return this._state;
|
|
17
|
+
}
|
|
15
18
|
async startAsync() {
|
|
16
19
|
await this._state.startAsync();
|
|
17
20
|
for (const r of this._reporters) {
|
|
@@ -30,6 +33,12 @@ export class CompositeReporter {
|
|
|
30
33
|
r.onPackagePhaseChange(packageName, phase);
|
|
31
34
|
}
|
|
32
35
|
}
|
|
36
|
+
onPackageProgressUpdate(packageName, progress) {
|
|
37
|
+
this._state.onPackageProgressUpdate(packageName, progress);
|
|
38
|
+
for (const r of this._reporters) {
|
|
39
|
+
r.onPackageProgressUpdate(packageName, progress);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
33
42
|
onPackageResult(result, bufferedOutput) {
|
|
34
43
|
this._state.onPackageResult(result, bufferedOutput);
|
|
35
44
|
for (const r of this._reporters) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composite-reporter.js","sourceRoot":"","sources":["../../src/reporting/composite-reporter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,OAAO,iBAAiB;IACpB,MAAM,CAAmB;IACzB,UAAU,CAAa;IAE/B,YACE,YAAsB,EACtB,OAAgD;QAEhD,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAgB,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAC/B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED,cAAc,CAAC,WAAmB;QAChC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,oBAAoB,CAAC,WAAmB,EAAE,KAAe;QACvD,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACrD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,CAAC,CAAC,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,eAAe,CAAC,MAAqB,EAAE,cAAyB;QAC9D,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACpD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS;QACb,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;QACtB,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;IAChC,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"composite-reporter.js","sourceRoot":"","sources":["../../src/reporting/composite-reporter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,OAAO,iBAAiB;IACpB,MAAM,CAAmB;IACzB,UAAU,CAAa;IAE/B,YACE,YAAsB,EACtB,OAAgD;QAEhD,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAgB,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAC/B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED,cAAc,CAAC,WAAmB;QAChC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,oBAAoB,CAAC,WAAmB,EAAE,KAAe;QACvD,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACrD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,CAAC,CAAC,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,uBAAuB,CAAC,WAAmB,EAAE,QAAyB;QACpE,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC3D,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,CAAC,CAAC,uBAAuB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,eAAe,CAAC,MAAqB,EAAE,cAAyB;QAC9D,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACpD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS;QACb,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;QACtB,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;IAChC,CAAC;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type PackageResult, type PackageStatus, BaseReporter } from '../reporter.js';
|
|
1
|
+
import { type PackageResult, type PackageStatus, type ProgressSummary, BaseReporter } from '../reporter.js';
|
|
2
2
|
import { type IStateTracker } from '../state/state-tracker.js';
|
|
3
3
|
import { type GithubCommentTableConfig } from './formatting.js';
|
|
4
4
|
export type { GithubCommentColumn, GithubCommentTableConfig, GithubTableRow, } from './formatting.js';
|
|
@@ -34,6 +34,7 @@ export declare class GithubCommentTableReporter extends BaseReporter {
|
|
|
34
34
|
startAsync(): Promise<void>;
|
|
35
35
|
onPackageStart(_name: string): void;
|
|
36
36
|
onPackagePhaseChange(_name: string, _phase: PackageStatus): void;
|
|
37
|
+
onPackageProgressUpdate(_name: string, _progress: ProgressSummary): void;
|
|
37
38
|
onPackageResult(_result: PackageResult): void;
|
|
38
39
|
stopAsync(): Promise<void>;
|
|
39
40
|
private _scheduleUpdate;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comment-table-reporter.d.ts","sourceRoot":"","sources":["../../../src/reporting/github/comment-table-reporter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,YAAY,EACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EACL,KAAK,wBAAwB,EAI9B,MAAM,iBAAiB,CAAC;AAOzB,YAAY,EACV,mBAAmB,EACnB,wBAAwB,EACxB,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;;;;GAMG;AACH,qBAAa,0BAA2B,SAAQ,YAAY;IAC1D,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,eAAe,CAAqB;IAE5C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAU;gBAG3C,KAAK,EAAE,aAAa,GAAG,SAAS,EAChC,MAAM,EAAE,wBAAwB,EAChC,WAAW,CAAC,EAAE,MAAM;IAQtB;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI7B;;;OAGG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIrB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAInC,oBAAoB,CAC3B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,aAAa,GACpB,IAAI;IAIE,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAIvC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBzC,OAAO,CAAC,eAAe;YAmBT,gBAAgB;YAUhB,iBAAiB;CAOhC"}
|
|
1
|
+
{"version":3,"file":"comment-table-reporter.d.ts","sourceRoot":"","sources":["../../../src/reporting/github/comment-table-reporter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,YAAY,EACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EACL,KAAK,wBAAwB,EAI9B,MAAM,iBAAiB,CAAC;AAOzB,YAAY,EACV,mBAAmB,EACnB,wBAAwB,EACxB,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;;;;GAMG;AACH,qBAAa,0BAA2B,SAAQ,YAAY;IAC1D,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,eAAe,CAAqB;IAE5C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAU;gBAG3C,KAAK,EAAE,aAAa,GAAG,SAAS,EAChC,MAAM,EAAE,wBAAwB,EAChC,WAAW,CAAC,EAAE,MAAM;IAQtB;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI7B;;;OAGG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIrB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAInC,oBAAoB,CAC3B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,aAAa,GACpB,IAAI;IAIE,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,GAAG,IAAI;IAIxE,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAIvC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBzC,OAAO,CAAC,eAAe;YAmBT,gBAAgB;YAUhB,iBAAiB;CAOhC"}
|
|
@@ -51,6 +51,9 @@ export class GithubCommentTableReporter extends BaseReporter {
|
|
|
51
51
|
onPackagePhaseChange(_name, _phase) {
|
|
52
52
|
this._scheduleUpdate();
|
|
53
53
|
}
|
|
54
|
+
onPackageProgressUpdate(_name, _progress) {
|
|
55
|
+
this._scheduleUpdate();
|
|
56
|
+
}
|
|
54
57
|
onPackageResult(_result) {
|
|
55
58
|
this._scheduleUpdate();
|
|
56
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comment-table-reporter.js","sourceRoot":"","sources":["../../../src/reporting/github/comment-table-reporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,
|
|
1
|
+
{"version":3,"file":"comment-table-reporter.js","sourceRoot":"","sources":["../../../src/reporting/github/comment-table-reporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Both the PR comment reporter and job summary reporter use these to
|
|
5
5
|
* render identical markdown tables from batch run state.
|
|
6
6
|
*/
|
|
7
|
-
import { type PackageResult, type PackageStatus } from '../reporter.js';
|
|
7
|
+
import { type PackageResult, type PackageStatus, type ProgressSummary, type JobPhase } from '../reporter.js';
|
|
8
8
|
import { type IStateTracker, type PackageState } from '../state/state-tracker.js';
|
|
9
9
|
/** A column to render in the GitHub comment table. */
|
|
10
10
|
export interface GithubCommentColumn {
|
|
@@ -46,8 +46,8 @@ export interface GithubTableRow {
|
|
|
46
46
|
* Summarize an error string for display in compact contexts (tables, etc.).
|
|
47
47
|
* Parses JSON API error bodies and truncates long messages.
|
|
48
48
|
*/
|
|
49
|
-
export declare function summarizeError(error: string): string;
|
|
50
|
-
export declare function formatRunningStatus(phase: PackageStatus): string;
|
|
49
|
+
export declare function summarizeError(error: string, failedPhase?: JobPhase): string;
|
|
50
|
+
export declare function formatRunningStatus(phase: PackageStatus, progress?: ProgressSummary): string;
|
|
51
51
|
export declare function formatResultStatus(pkg: PackageResult, successLabel: string, failureLabel: string): string;
|
|
52
52
|
export declare function getActionsRunUrl(): string | undefined;
|
|
53
53
|
/** Render a markdown table with header, data rows, and footer. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatting.d.ts","sourceRoot":"","sources":["../../../src/reporting/github/formatting.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,aAAa,
|
|
1
|
+
{"version":3,"file":"formatting.d.ts","sourceRoot":"","sources":["../../../src/reporting/github/formatting.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,QAAQ,EACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,2BAA2B,CAAC;AAKnC,sDAAsD;AACtD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAAC;IAClC,kEAAkE;IAClE,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;CAChC;AAED,gDAAgD;AAChD,MAAM,WAAW,wBAAwB;IACvC,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,aAAa,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,YAAY,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACrC,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iEAAiE;IACjE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6FAA6F;IAC7F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,iDAAiD;AACjD,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAID;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,GAAG,MAAM,CAkB5E;AA4BD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,eAAe,GAAG,MAAM,CAO5F;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,aAAa,EAClB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,MAAM,CAiBR;AAED,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAUrD;AAED,kEAAkE;AAClE,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,wBAAwB,EAChC,IAAI,EAAE,cAAc,EAAE,EACtB,YAAY,EAAE,mBAAmB,EAAE,EACnC,MAAM,EAAE,MAAM,GACb,MAAM,CAyCR;AA8BD;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,wBAAwB,EAChC,WAAW,EAAE,MAAM,GAClB,MAAM,CA8ER;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,wBAAwB,EAChC,OAAO,EAAE,MAAM,GACd,MAAM,CAcR;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,wBAAwB,EAChC,KAAK,EAAE,MAAM,GACZ,MAAM,CAcR"}
|
|
@@ -5,12 +5,13 @@
|
|
|
5
5
|
* render identical markdown tables from batch run state.
|
|
6
6
|
*/
|
|
7
7
|
import { formatDurationMs } from '../../cli-utils.js';
|
|
8
|
+
import { formatProgressInline, formatProgressResult, isEmptyTestRun } from '../progress-format.js';
|
|
8
9
|
// ── Error summarization ─────────────────────────────────────────────────────
|
|
9
10
|
/**
|
|
10
11
|
* Summarize an error string for display in compact contexts (tables, etc.).
|
|
11
12
|
* Parses JSON API error bodies and truncates long messages.
|
|
12
13
|
*/
|
|
13
|
-
export function summarizeError(error) {
|
|
14
|
+
export function summarizeError(error, failedPhase) {
|
|
14
15
|
const firstLine = error.split('\n')[0];
|
|
15
16
|
// Try to extract JSON error body from API responses
|
|
16
17
|
// Format: "Action failed: STATUS TEXT: {json}"
|
|
@@ -51,14 +52,29 @@ const RUNNING_PHASE_LABELS = {
|
|
|
51
52
|
connecting: '🔌 Connecting...',
|
|
52
53
|
executing: '🔄 Executing...',
|
|
53
54
|
};
|
|
54
|
-
export function formatRunningStatus(phase) {
|
|
55
|
-
|
|
55
|
+
export function formatRunningStatus(phase, progress) {
|
|
56
|
+
const label = RUNNING_PHASE_LABELS[phase] ?? '🔄 Running...';
|
|
57
|
+
if (progress) {
|
|
58
|
+
const progressText = formatProgressInline(progress);
|
|
59
|
+
return progressText ? `${label} ${progressText}` : label;
|
|
60
|
+
}
|
|
61
|
+
return label;
|
|
56
62
|
}
|
|
57
63
|
export function formatResultStatus(pkg, successLabel, failureLabel) {
|
|
58
64
|
const duration = formatDurationMs(pkg.durationMs);
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
65
|
+
const progressText = formatProgressResult(pkg.progressSummary);
|
|
66
|
+
const empty = isEmptyTestRun(pkg.progressSummary);
|
|
67
|
+
if (pkg.success) {
|
|
68
|
+
const label = progressText ? `${successLabel} ${progressText}` : successLabel;
|
|
69
|
+
return empty
|
|
70
|
+
? `⚠️ ${label} (${duration})`
|
|
71
|
+
: `✅ ${label} (${duration})`;
|
|
72
|
+
}
|
|
73
|
+
const failedPhase = pkg.failedPhase;
|
|
74
|
+
const label = failedPhase
|
|
75
|
+
? `**${failureLabel}** at ${failedPhase}`
|
|
76
|
+
: `**${failureLabel}**`;
|
|
77
|
+
return `❌ ${label} (${duration})`;
|
|
62
78
|
}
|
|
63
79
|
export function getActionsRunUrl() {
|
|
64
80
|
const serverUrl = process.env.GITHUB_SERVER_URL;
|
|
@@ -144,7 +160,7 @@ export function formatGithubTableBody(state, config, concurrency) {
|
|
|
144
160
|
statusText = formatResultStatus(pkg.result, config.successLabel ?? 'Passed', config.failureLabel ?? 'Failed');
|
|
145
161
|
break;
|
|
146
162
|
default:
|
|
147
|
-
statusText = formatRunningStatus(pkg.status);
|
|
163
|
+
statusText = formatRunningStatus(pkg.status, pkg.progress);
|
|
148
164
|
break;
|
|
149
165
|
}
|
|
150
166
|
const extraCells = extraColumns.map((col) => col.render(pkg));
|
|
@@ -158,8 +174,12 @@ export function formatGithubTableBody(state, config, concurrency) {
|
|
|
158
174
|
if (allDone) {
|
|
159
175
|
const passed = packages.filter((p) => p.status === 'passed').length;
|
|
160
176
|
const failed = packages.filter((p) => p.status === 'failed').length;
|
|
177
|
+
const emptyRuns = packages.filter((p) => isEmptyTestRun(p.progress)).length;
|
|
161
178
|
const verb = config.summaryVerb ?? 'tested';
|
|
162
179
|
footer = `**${packages.length} ${verb}, ${passed} passed, ${failed} failed** in ${formatDurationMs(elapsedMs)}`;
|
|
180
|
+
if (emptyRuns > 0) {
|
|
181
|
+
footer += `\n⚠️ ${emptyRuns} package(s) ran 0 tests — check test discovery`;
|
|
182
|
+
}
|
|
163
183
|
}
|
|
164
184
|
else {
|
|
165
185
|
const done = packages.filter((p) => p.status === 'passed' || p.status === 'failed').length;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatting.js","sourceRoot":"","sources":["../../../src/reporting/github/formatting.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"formatting.js","sourceRoot":"","sources":["../../../src/reporting/github/formatting.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grouped-reporter.d.ts","sourceRoot":"","sources":["../../src/reporting/grouped-reporter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"grouped-reporter.d.ts","sourceRoot":"","sources":["../../src/reporting/grouped-reporter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG9D,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,KAAK,CAAU;gBAEX,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,sBAAsB;IAOlD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMlC,eAAe,CACtB,MAAM,EAAE,aAAa,EACrB,cAAc,CAAC,EAAE,MAAM,EAAE,GACxB,IAAI;IAIP,OAAO,CAAC,mBAAmB;CAiE5B"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { OutputHelper } from '../outputHelper.js';
|
|
2
2
|
import { formatDurationMs, isCI } from '../cli-utils.js';
|
|
3
3
|
import { BaseReporter } from './reporter.js';
|
|
4
|
+
import { formatProgressResult, isEmptyTestRun } from './progress-format.js';
|
|
4
5
|
/**
|
|
5
6
|
* CI / verbose / non-TTY output for batch job progress.
|
|
6
7
|
* Prints grouped result blocks as each package completes.
|
|
@@ -44,11 +45,22 @@ export class GroupedReporter extends BaseReporter {
|
|
|
44
45
|
const duration = formatDurationMs(result.durationMs);
|
|
45
46
|
const successLabel = this._options.successLabel ?? 'Passed';
|
|
46
47
|
const failureLabel = this._options.failureLabel ?? 'FAILED';
|
|
48
|
+
const progressText = formatProgressResult(result.progressSummary);
|
|
49
|
+
const empty = isEmptyTestRun(result.progressSummary);
|
|
47
50
|
if (result.success) {
|
|
48
|
-
|
|
51
|
+
const label = progressText ? `${successLabel} ${progressText}` : successLabel;
|
|
52
|
+
const formatted = empty
|
|
53
|
+
? OutputHelper.formatWarning(`${label} ⚠`)
|
|
54
|
+
: OutputHelper.formatSuccess(label);
|
|
55
|
+
const icon = empty ? OutputHelper.formatWarning('⚠') : OutputHelper.formatSuccess('✓');
|
|
56
|
+
console.log(` ${icon} ${formatted} ${OutputHelper.formatDim(`(${duration})`)}`);
|
|
49
57
|
}
|
|
50
58
|
else {
|
|
51
|
-
|
|
59
|
+
const failedPhase = result.failedPhase;
|
|
60
|
+
const label = failedPhase
|
|
61
|
+
? `${failureLabel} at ${failedPhase}`
|
|
62
|
+
: failureLabel;
|
|
63
|
+
console.log(` ${OutputHelper.formatError('✗')} ${OutputHelper.formatError(label)} ${OutputHelper.formatDim(`(${duration})`)}`);
|
|
52
64
|
}
|
|
53
65
|
if (showLogs) {
|
|
54
66
|
if (result.logs) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grouped-reporter.js","sourceRoot":"","sources":["../../src/reporting/grouped-reporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAsB,YAAY,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"grouped-reporter.js","sourceRoot":"","sources":["../../src/reporting/grouped-reporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export { BaseReporter, type Reporter, type JobPhase, type PackageStatus, type PackageResult, type BatchSummary, } from './reporter.js';
|
|
1
|
+
export { BaseReporter, type Reporter, type JobPhase, type PackageStatus, type PackageResult, type BatchSummary, type ProgressSummary, type TestCountProgress, type ByteProgress, type StepProgress, } from './reporter.js';
|
|
2
|
+
export { formatProgressInline, formatProgressResult, isEmptyTestRun, summarizeFailure, } from './progress-format.js';
|
|
2
3
|
export { type IStateTracker, type PackageState, } from './state/state-tracker.js';
|
|
3
4
|
export { LiveStateTracker } from './state/live-state-tracker.js';
|
|
4
5
|
export { LoadedStateTracker } from './state/loaded-state-tracker.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/reporting/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAGrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,EACpB,KAAK,2BAA2B,GACjC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EACnB,cAAc,EACd,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/reporting/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,YAAY,GAClB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAGrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,EACpB,KAAK,2BAA2B,GACjC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EACnB,cAAc,EACd,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC"}
|
package/dist/reporting/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
// Core types and base class
|
|
2
2
|
export { BaseReporter, } from './reporter.js';
|
|
3
|
+
// Progress formatting helpers
|
|
4
|
+
export { formatProgressInline, formatProgressResult, isEmptyTestRun, summarizeFailure, } from './progress-format.js';
|
|
3
5
|
export { LiveStateTracker } from './state/live-state-tracker.js';
|
|
4
6
|
export { LoadedStateTracker } from './state/loaded-state-tracker.js';
|
|
5
7
|
// Reporter implementations
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reporting/index.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,OAAO,EACL,YAAY,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reporting/index.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,OAAO,EACL,YAAY,GAUb,MAAM,eAAe,CAAC;AAEvB,8BAA8B;AAC9B,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE,2BAA2B;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EACL,cAAc,GAEf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,GAEhB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,eAAe,GAEhB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,GAErB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EAIxB,cAAc,EAId,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Formatting helpers for ProgressSummary values.
|
|
3
|
+
*/
|
|
4
|
+
import { type ProgressSummary, type JobPhase } from './reporter.js';
|
|
5
|
+
/**
|
|
6
|
+
* Format progress for inline display in spinners and running status.
|
|
7
|
+
* Returns empty string when progress is undefined.
|
|
8
|
+
*
|
|
9
|
+
* - test-counts: "(5/23)"
|
|
10
|
+
* - bytes: "12.3 MB" or "45%"
|
|
11
|
+
* - steps: "(3/10)"
|
|
12
|
+
*/
|
|
13
|
+
export declare function formatProgressInline(progress?: ProgressSummary): string;
|
|
14
|
+
/**
|
|
15
|
+
* Format progress for final result display (passed/failed lines).
|
|
16
|
+
* Returns empty string when progress is undefined.
|
|
17
|
+
*
|
|
18
|
+
* - test-counts: "(23/100)" or "(0/0)"
|
|
19
|
+
* - bytes: "(12.3 MB)"
|
|
20
|
+
* - steps: "(3/10)"
|
|
21
|
+
*/
|
|
22
|
+
export declare function formatProgressResult(progress?: ProgressSummary): string;
|
|
23
|
+
/** True when progress is test-counts with total === 0. */
|
|
24
|
+
export declare function isEmptyTestRun(progress?: ProgressSummary): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Condense a raw error string and optional failedPhase into a short one-liner.
|
|
27
|
+
*
|
|
28
|
+
* Examples:
|
|
29
|
+
* summarizeFailure("Upload failed: 409 Conflict: {...}", "uploading")
|
|
30
|
+
* → "at uploading: Upload failed (409)"
|
|
31
|
+
* summarizeFailure("timeout after 120s", "executing")
|
|
32
|
+
* → "at executing: timeout after 120s"
|
|
33
|
+
*/
|
|
34
|
+
export declare function summarizeFailure(error?: string, failedPhase?: JobPhase): string;
|
|
35
|
+
//# sourceMappingURL=progress-format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress-format.d.ts","sourceRoot":"","sources":["../../src/reporting/progress-format.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEpE;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,CAAC,EAAE,eAAe,GAAG,MAAM,CAkBvE;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,CAAC,EAAE,eAAe,GAAG,MAAM,CAWvE;AAED,0DAA0D;AAC1D,wBAAgB,cAAc,CAAC,QAAQ,CAAC,EAAE,eAAe,GAAG,OAAO,CAElE;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,CAAC,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,QAAQ,GACrB,MAAM,CAkBR"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Formatting helpers for ProgressSummary values.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Format progress for inline display in spinners and running status.
|
|
6
|
+
* Returns empty string when progress is undefined.
|
|
7
|
+
*
|
|
8
|
+
* - test-counts: "(5/23)"
|
|
9
|
+
* - bytes: "12.3 MB" or "45%"
|
|
10
|
+
* - steps: "(3/10)"
|
|
11
|
+
*/
|
|
12
|
+
export function formatProgressInline(progress) {
|
|
13
|
+
if (!progress)
|
|
14
|
+
return '';
|
|
15
|
+
switch (progress.kind) {
|
|
16
|
+
case 'test-counts':
|
|
17
|
+
return `(${progress.passed}/${progress.total})`;
|
|
18
|
+
case 'bytes':
|
|
19
|
+
if (progress.totalBytes > 0 && progress.transferredBytes > 0) {
|
|
20
|
+
return `(${_formatBytes(progress.transferredBytes)}/${_formatBytes(progress.totalBytes)})`;
|
|
21
|
+
}
|
|
22
|
+
return `(${_formatBytes(progress.totalBytes)})`;
|
|
23
|
+
case 'steps':
|
|
24
|
+
if (progress.total > 0) {
|
|
25
|
+
return `(${progress.completed}/${progress.total})`;
|
|
26
|
+
}
|
|
27
|
+
// Indeterminate: show label or just the count
|
|
28
|
+
return progress.label ? `(${progress.label})` : `(${progress.completed})`;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Format progress for final result display (passed/failed lines).
|
|
33
|
+
* Returns empty string when progress is undefined.
|
|
34
|
+
*
|
|
35
|
+
* - test-counts: "(23/100)" or "(0/0)"
|
|
36
|
+
* - bytes: "(12.3 MB)"
|
|
37
|
+
* - steps: "(3/10)"
|
|
38
|
+
*/
|
|
39
|
+
export function formatProgressResult(progress) {
|
|
40
|
+
if (!progress)
|
|
41
|
+
return '';
|
|
42
|
+
switch (progress.kind) {
|
|
43
|
+
case 'test-counts':
|
|
44
|
+
return `(${progress.passed}/${progress.total})`;
|
|
45
|
+
case 'bytes':
|
|
46
|
+
return `(${_formatBytes(progress.totalBytes)})`;
|
|
47
|
+
case 'steps':
|
|
48
|
+
return `(${progress.completed}/${progress.total})`;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/** True when progress is test-counts with total === 0. */
|
|
52
|
+
export function isEmptyTestRun(progress) {
|
|
53
|
+
return progress?.kind === 'test-counts' && progress.total === 0;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Condense a raw error string and optional failedPhase into a short one-liner.
|
|
57
|
+
*
|
|
58
|
+
* Examples:
|
|
59
|
+
* summarizeFailure("Upload failed: 409 Conflict: {...}", "uploading")
|
|
60
|
+
* → "at uploading: Upload failed (409)"
|
|
61
|
+
* summarizeFailure("timeout after 120s", "executing")
|
|
62
|
+
* → "at executing: timeout after 120s"
|
|
63
|
+
*/
|
|
64
|
+
export function summarizeFailure(error, failedPhase) {
|
|
65
|
+
const parts = [];
|
|
66
|
+
if (failedPhase) {
|
|
67
|
+
parts.push(`at ${failedPhase}`);
|
|
68
|
+
}
|
|
69
|
+
if (error) {
|
|
70
|
+
const firstLine = error.split('\n')[0];
|
|
71
|
+
const short = firstLine.length > 60 ? firstLine.slice(0, 57) + '...' : firstLine;
|
|
72
|
+
if (parts.length > 0) {
|
|
73
|
+
parts.push(`: ${short}`);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
parts.push(short);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return parts.join('');
|
|
80
|
+
}
|
|
81
|
+
function _formatBytes(bytes) {
|
|
82
|
+
if (bytes < 1024)
|
|
83
|
+
return `${bytes} B`;
|
|
84
|
+
if (bytes < 1024 * 1024)
|
|
85
|
+
return `${(bytes / 1024).toFixed(1)} KB`;
|
|
86
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=progress-format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress-format.js","sourceRoot":"","sources":["../../src/reporting/progress-format.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,9 +5,30 @@
|
|
|
5
5
|
* and end in a terminal state (passed / failed).
|
|
6
6
|
*/
|
|
7
7
|
/** Execution phases a package can move through. */
|
|
8
|
-
export type JobPhase = 'building' | 'downloading' | 'merging' | 'uploading' | 'scheduling' | 'launching' | 'connecting' | 'executing';
|
|
8
|
+
export type JobPhase = 'waiting' | 'building' | 'downloading' | 'merging' | 'combining' | 'uploading' | 'scheduling' | 'launching' | 'connecting' | 'executing';
|
|
9
9
|
/** Unified status for a package moving through the job lifecycle. */
|
|
10
10
|
export type PackageStatus = 'pending' | JobPhase | 'passed' | 'failed';
|
|
11
|
+
/** Test count progress: "23/100 passed" */
|
|
12
|
+
export interface TestCountProgress {
|
|
13
|
+
kind: 'test-counts';
|
|
14
|
+
passed: number;
|
|
15
|
+
failed: number;
|
|
16
|
+
total: number;
|
|
17
|
+
}
|
|
18
|
+
/** Byte-level transfer progress: "45% of 12.3 MB" */
|
|
19
|
+
export interface ByteProgress {
|
|
20
|
+
kind: 'bytes';
|
|
21
|
+
transferredBytes: number;
|
|
22
|
+
totalBytes: number;
|
|
23
|
+
}
|
|
24
|
+
/** Generic step progress: "3/10 packages" */
|
|
25
|
+
export interface StepProgress {
|
|
26
|
+
kind: 'steps';
|
|
27
|
+
completed: number;
|
|
28
|
+
total: number;
|
|
29
|
+
label?: string;
|
|
30
|
+
}
|
|
31
|
+
export type ProgressSummary = TestCountProgress | ByteProgress | StepProgress;
|
|
11
32
|
/** Result for a single package in a batch run. */
|
|
12
33
|
export interface PackageResult {
|
|
13
34
|
packageName: string;
|
|
@@ -15,6 +36,8 @@ export interface PackageResult {
|
|
|
15
36
|
logs: string;
|
|
16
37
|
durationMs: number;
|
|
17
38
|
error?: string;
|
|
39
|
+
progressSummary?: ProgressSummary;
|
|
40
|
+
failedPhase?: JobPhase;
|
|
18
41
|
}
|
|
19
42
|
/** Summary of a complete batch run. */
|
|
20
43
|
export interface BatchSummary<TResult extends PackageResult = PackageResult> {
|
|
@@ -39,6 +62,8 @@ export interface Reporter {
|
|
|
39
62
|
onPackageStart(packageName: string): void;
|
|
40
63
|
/** Called when a package transitions phases (building, uploading, executing, etc). */
|
|
41
64
|
onPackagePhaseChange(packageName: string, phase: JobPhase): void;
|
|
65
|
+
/** Called when a package's in-progress metrics update (high-frequency). */
|
|
66
|
+
onPackageProgressUpdate(packageName: string, progress: ProgressSummary): void;
|
|
42
67
|
/** Called when a single package job completes. */
|
|
43
68
|
onPackageResult(result: PackageResult, bufferedOutput?: string[]): void;
|
|
44
69
|
/** Called after all jobs complete. */
|
|
@@ -52,6 +77,7 @@ export declare class BaseReporter implements Reporter {
|
|
|
52
77
|
startAsync(): Promise<void>;
|
|
53
78
|
onPackageStart(_packageName: string): void;
|
|
54
79
|
onPackagePhaseChange(_packageName: string, _phase: JobPhase): void;
|
|
80
|
+
onPackageProgressUpdate(_packageName: string, _progress: ProgressSummary): void;
|
|
55
81
|
onPackageResult(_result: PackageResult, _bufferedOutput?: string[]): void;
|
|
56
82
|
stopAsync(): Promise<void>;
|
|
57
83
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../../src/reporting/reporter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,mDAAmD;AACnD,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY,GAAG,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../../src/reporting/reporter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,mDAAmD;AACnD,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY,GAAG,WAAW,CAAC;AAEhK,qEAAqE;AACrE,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAIvE,2CAA2C;AAC3C,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qDAAqD;AACrD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,6CAA6C;AAC7C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,eAAe,GAAG,iBAAiB,GAAG,YAAY,GAAG,YAAY,CAAC;AAE9E,kDAAkD;AAClD,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,WAAW,CAAC,EAAE,QAAQ,CAAC;CACxB;AAED,uCAAuC;AACvC,MAAM,WAAW,YAAY,CAAC,OAAO,SAAS,aAAa,GAAG,aAAa;IACzE,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,uCAAuC;IACvC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B,+CAA+C;IAC/C,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1C,sFAAsF;IACtF,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IAEjE,2EAA2E;IAC3E,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;IAE9E,kDAAkD;IAClD,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAExE,sCAAsC;IACtC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED;;;GAGG;AACH,qBAAa,YAAa,YAAW,QAAQ;IACrC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IACjC,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAC1C,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,IAAI;IAClE,uBAAuB,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,GAAG,IAAI;IAC/E,eAAe,CAAC,OAAO,EAAE,aAAa,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;IACnE,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CACjC"}
|
|
@@ -12,6 +12,7 @@ export class BaseReporter {
|
|
|
12
12
|
async startAsync() { }
|
|
13
13
|
onPackageStart(_packageName) { }
|
|
14
14
|
onPackagePhaseChange(_packageName, _phase) { }
|
|
15
|
+
onPackageProgressUpdate(_packageName, _progress) { }
|
|
15
16
|
onPackageResult(_result, _bufferedOutput) { }
|
|
16
17
|
async stopAsync() { }
|
|
17
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../src/reporting/reporter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../src/reporting/reporter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmFH;;;GAGG;AACH,MAAM,OAAO,YAAY;IACvB,KAAK,CAAC,UAAU,KAAmB,CAAC;IACpC,cAAc,CAAC,YAAoB,IAAS,CAAC;IAC7C,oBAAoB,CAAC,YAAoB,EAAE,MAAgB,IAAS,CAAC;IACrE,uBAAuB,CAAC,YAAoB,EAAE,SAA0B,IAAS,CAAC;IAClF,eAAe,CAAC,OAAsB,EAAE,eAA0B,IAAS,CAAC;IAC5E,KAAK,CAAC,SAAS,KAAmB,CAAC;CACpC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simple-reporter.d.ts","sourceRoot":"","sources":["../../src/reporting/simple-reporter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"simple-reporter.d.ts","sourceRoot":"","sources":["../../src/reporting/simple-reporter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG9D,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,OAAO,CAAC;IACxB,sDAAsD;IACtD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mDAAmD;IACnD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,eAAe,CAAS;gBAEpB,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,qBAAqB;IAQvD,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAkBtC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAK1C"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { OutputHelper } from '../outputHelper.js';
|
|
2
2
|
import { BaseReporter } from './reporter.js';
|
|
3
|
+
import { formatProgressResult } from './progress-format.js';
|
|
3
4
|
/**
|
|
4
5
|
* Reporter for single-package execution.
|
|
5
6
|
* Prints logs and pass/fail inline, reads failure state from the tracker.
|
|
@@ -24,8 +25,10 @@ export class SimpleReporter extends BaseReporter {
|
|
|
24
25
|
else if (showLogs) {
|
|
25
26
|
OutputHelper.info('(no output)');
|
|
26
27
|
}
|
|
28
|
+
const progressText = formatProgressResult(result.progressSummary);
|
|
27
29
|
if (result.success) {
|
|
28
|
-
|
|
30
|
+
const msg = progressText ? `${this._successMessage} ${progressText}` : this._successMessage;
|
|
31
|
+
OutputHelper.info(msg);
|
|
29
32
|
}
|
|
30
33
|
else {
|
|
31
34
|
OutputHelper.error(this._failureMessage);
|