@overkill-dev/engine 0.0.10 → 0.0.12
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/engine/execution.d.ts +4 -1
- package/engine/execution.d.ts.map +1 -1
- package/engine/execution.js +45 -32
- package/engine/execution.js.map +1 -1
- package/engine/reporter-dispatcher.d.ts +16 -0
- package/engine/reporter-dispatcher.d.ts.map +1 -0
- package/engine/reporter-dispatcher.js +244 -0
- package/engine/reporter-dispatcher.js.map +1 -0
- package/engine/reporter-event-queue.js +2 -2
- package/engine/reporter-event-queue.js.map +1 -1
- package/engine/reporter-output.d.ts +24 -0
- package/engine/reporter-output.d.ts.map +1 -0
- package/engine/reporter-output.js +8 -0
- package/engine/reporter-output.js.map +1 -0
- package/engine/reporter.d.ts +89 -21
- package/engine/reporter.d.ts.map +1 -1
- package/engine/reporter.js +57 -145
- package/engine/reporter.js.map +1 -1
- package/engine/run-if-main.d.ts +2 -0
- package/engine/run-if-main.d.ts.map +1 -1
- package/engine/run-if-main.js +2 -0
- package/engine/run-if-main.js.map +1 -1
- package/package.json +1 -1
- package/packages/engine/engine.entry-point.d.ts +5 -2
- package/packages/engine/engine.entry-point.d.ts.map +1 -1
- package/packages/engine/engine.entry-point.js +14 -3
- package/packages/engine/engine.entry-point.js.map +1 -1
- package/readme.md +13 -3
- package/sbom.cdx.json +5 -5
package/engine/reporter.d.ts
CHANGED
|
@@ -1,35 +1,79 @@
|
|
|
1
|
-
import type { WallClock } from '@enormora/wall-clock';
|
|
2
1
|
import type { CaseId } from './identity.ts';
|
|
2
|
+
import type { OptionalReporterOutput } from './reporter-output.ts';
|
|
3
3
|
import type { RunResult, RunnerError, TestOutcome } from './run-result.ts';
|
|
4
4
|
import type { Metadata } from './test-node.ts';
|
|
5
5
|
export type RunFacts = Readonly<Record<string, unknown>>;
|
|
6
|
-
export type
|
|
7
|
-
readonly
|
|
8
|
-
|
|
6
|
+
export type RawStandardOutputSinkDeclaration = {
|
|
7
|
+
readonly kind: 'stderr-raw' | 'stdout-raw';
|
|
8
|
+
};
|
|
9
|
+
declare const managedStandardOutputSinkKinds: readonly ["stderr-managed-primary", "stderr-managed-supplemental", "stdout-managed-primary", "stdout-managed-supplemental"];
|
|
10
|
+
type ManagedStandardOutputSinkKind = typeof managedStandardOutputSinkKinds[number];
|
|
11
|
+
export type ManagedStandardOutputSinkDeclaration = {
|
|
12
|
+
readonly kind: ManagedStandardOutputSinkKind;
|
|
9
13
|
};
|
|
10
14
|
export type FileSinkDeclaration = {
|
|
11
|
-
readonly conflictPolicy: 'exclusive';
|
|
12
15
|
readonly kind: 'file';
|
|
13
16
|
readonly path: string;
|
|
14
17
|
};
|
|
15
18
|
export type DirectorySinkDeclaration = {
|
|
16
|
-
readonly conflictPolicy: 'exclusive';
|
|
17
19
|
readonly kind: 'directory';
|
|
18
20
|
readonly path: string;
|
|
19
21
|
};
|
|
20
22
|
export type MemorySinkDeclaration = {
|
|
21
|
-
readonly conflictPolicy: 'shared';
|
|
22
23
|
readonly kind: 'memory';
|
|
23
24
|
};
|
|
24
25
|
export type StreamSinkDeclaration = {
|
|
25
|
-
readonly conflictPolicy: 'exclusive';
|
|
26
26
|
readonly kind: 'stream';
|
|
27
27
|
readonly provided: WritableStream<unknown>;
|
|
28
28
|
};
|
|
29
29
|
type FileSystemSinkDeclaration = DirectorySinkDeclaration | FileSinkDeclaration;
|
|
30
30
|
type PrivateSinkDeclaration = MemorySinkDeclaration | StreamSinkDeclaration;
|
|
31
|
+
export type StandardOutputSinkDeclaration = ManagedStandardOutputSinkDeclaration | RawStandardOutputSinkDeclaration;
|
|
31
32
|
type ReporterSinkDeclaration = FileSystemSinkDeclaration | StandardOutputSinkDeclaration;
|
|
32
33
|
export type SinkDeclaration = PrivateSinkDeclaration | ReporterSinkDeclaration;
|
|
34
|
+
type NonManagedSinkDeclaration = Exclude<SinkDeclaration, ManagedStandardOutputSinkDeclaration>;
|
|
35
|
+
type ManagedSinkAt1 = readonly [ManagedStandardOutputSinkDeclaration, ...SinkDeclaration[]];
|
|
36
|
+
type ManagedSinkAt2 = readonly [
|
|
37
|
+
NonManagedSinkDeclaration,
|
|
38
|
+
ManagedStandardOutputSinkDeclaration,
|
|
39
|
+
...SinkDeclaration[]
|
|
40
|
+
];
|
|
41
|
+
type ManagedSinkAt3 = readonly [
|
|
42
|
+
NonManagedSinkDeclaration,
|
|
43
|
+
NonManagedSinkDeclaration,
|
|
44
|
+
ManagedStandardOutputSinkDeclaration,
|
|
45
|
+
...SinkDeclaration[]
|
|
46
|
+
];
|
|
47
|
+
type ManagedSinkAt4 = readonly [
|
|
48
|
+
NonManagedSinkDeclaration,
|
|
49
|
+
NonManagedSinkDeclaration,
|
|
50
|
+
NonManagedSinkDeclaration,
|
|
51
|
+
ManagedStandardOutputSinkDeclaration,
|
|
52
|
+
...SinkDeclaration[]
|
|
53
|
+
];
|
|
54
|
+
type ManagedSinkAt5 = readonly [
|
|
55
|
+
NonManagedSinkDeclaration,
|
|
56
|
+
NonManagedSinkDeclaration,
|
|
57
|
+
NonManagedSinkDeclaration,
|
|
58
|
+
NonManagedSinkDeclaration,
|
|
59
|
+
ManagedStandardOutputSinkDeclaration,
|
|
60
|
+
...SinkDeclaration[]
|
|
61
|
+
];
|
|
62
|
+
type ManagedSinkAt6 = readonly [
|
|
63
|
+
NonManagedSinkDeclaration,
|
|
64
|
+
NonManagedSinkDeclaration,
|
|
65
|
+
NonManagedSinkDeclaration,
|
|
66
|
+
NonManagedSinkDeclaration,
|
|
67
|
+
NonManagedSinkDeclaration,
|
|
68
|
+
ManagedStandardOutputSinkDeclaration,
|
|
69
|
+
...SinkDeclaration[]
|
|
70
|
+
];
|
|
71
|
+
type ManagedSinkAt1To3 = ManagedSinkAt1 | ManagedSinkAt2 | ManagedSinkAt3;
|
|
72
|
+
type ManagedSinkAt4To6 = ManagedSinkAt4 | ManagedSinkAt5 | ManagedSinkAt6;
|
|
73
|
+
type ManagedStandardOutputSinkTuple = ManagedSinkAt1To3 | ManagedSinkAt4To6;
|
|
74
|
+
export declare class ReporterSinkConflictError extends Error {
|
|
75
|
+
constructor(message: string, options?: Readonly<ErrorOptions>);
|
|
76
|
+
}
|
|
33
77
|
type RunStartReporterEvent = {
|
|
34
78
|
readonly facts: RunFacts;
|
|
35
79
|
readonly kind: 'run-start';
|
|
@@ -78,31 +122,55 @@ type RunReporterEvent = RunEndReporterEvent | RunnerErrorReporterEvent | RunStar
|
|
|
78
122
|
type SuiteReporterEvent = SuiteEndReporterEvent | SuiteStartReporterEvent;
|
|
79
123
|
type TestReporterEvent = TestEndReporterEvent | TestProgressReporterEvent | TestStartReporterEvent;
|
|
80
124
|
export type ReporterEvent = RunReporterEvent | SuiteReporterEvent | TestReporterEvent;
|
|
81
|
-
|
|
125
|
+
type ManagedStandardOutputSinkPresence<FirstSink extends SinkDeclaration, RemainingSinks extends readonly SinkDeclaration[]> = FirstSink extends ManagedStandardOutputSinkDeclaration ? true : TupleIncludesManagedStandardOutputSink<RemainingSinks>;
|
|
126
|
+
type FirstDeclaredSink<Sinks extends readonly SinkDeclaration[]> = Sinks extends readonly [
|
|
127
|
+
infer FirstSink extends SinkDeclaration,
|
|
128
|
+
...SinkDeclaration[]
|
|
129
|
+
] ? FirstSink : never;
|
|
130
|
+
type RemainingDeclaredSinks<Sinks extends readonly SinkDeclaration[]> = Sinks extends readonly [
|
|
131
|
+
SinkDeclaration,
|
|
132
|
+
...infer RemainingSinks extends readonly SinkDeclaration[]
|
|
133
|
+
] ? RemainingSinks : never;
|
|
134
|
+
type TupleIncludesManagedStandardOutputSink<Sinks extends readonly SinkDeclaration[]> = Sinks extends readonly [] ? false : ManagedStandardOutputSinkPresence<FirstDeclaredSink<Sinks>, RemainingDeclaredSinks<Sinks>>;
|
|
135
|
+
type HasManagedStandardOutputSink<Sinks extends readonly SinkDeclaration[]> = number extends Sinks['length'] ? false : TupleIncludesManagedStandardOutputSink<Sinks>;
|
|
136
|
+
type BaseRealTimeReporter<Sinks extends readonly SinkDeclaration[]> = {
|
|
82
137
|
readonly dispose: (() => Promise<void> | void) | null;
|
|
83
138
|
readonly kind: 'real-time';
|
|
84
139
|
readonly name: string;
|
|
85
|
-
readonly sinks:
|
|
140
|
+
readonly sinks: Sinks;
|
|
141
|
+
};
|
|
142
|
+
type ManagedOutputEventCallback = (event: ReporterEvent) => OptionalReporterOutput | Promise<OptionalReporterOutput>;
|
|
143
|
+
type ManagedOutputFinishCallback = (result: RunResult) => OptionalReporterOutput | Promise<OptionalReporterOutput>;
|
|
144
|
+
type RealTimeReporterWithOutput<Sinks extends readonly SinkDeclaration[]> = BaseRealTimeReporter<Sinks> & {
|
|
145
|
+
readonly onEvent: ManagedOutputEventCallback;
|
|
146
|
+
readonly onFinish: ManagedOutputFinishCallback | null;
|
|
147
|
+
};
|
|
148
|
+
type RealTimeReporterWithoutOutput<Sinks extends readonly SinkDeclaration[]> = BaseRealTimeReporter<Sinks> & {
|
|
86
149
|
readonly onEvent: (event: ReporterEvent) => Promise<void> | void;
|
|
87
150
|
readonly onFinish: ((result: RunResult) => Promise<void> | void) | null;
|
|
88
151
|
};
|
|
89
|
-
|
|
152
|
+
type BaseFinalResultReporter<Sinks extends readonly SinkDeclaration[]> = {
|
|
90
153
|
readonly dispose: (() => Promise<void> | void) | null;
|
|
91
154
|
readonly kind: 'final-result';
|
|
92
155
|
readonly name: string;
|
|
93
|
-
readonly sinks:
|
|
94
|
-
readonly onResult: (result: RunResult) => Promise<void> | void;
|
|
156
|
+
readonly sinks: Sinks;
|
|
95
157
|
};
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
readonly
|
|
99
|
-
readonly reportEvent: (reporters: readonly Reporter[], event: ReporterEvent) => Promise<readonly RunnerError[]>;
|
|
100
|
-
readonly reportResult: (reporters: readonly Reporter[], result: RunResult) => Promise<readonly RunnerError[]>;
|
|
158
|
+
type ManagedOutputResultCallback = (result: RunResult) => OptionalReporterOutput | Promise<OptionalReporterOutput>;
|
|
159
|
+
type FinalResultReporterWithOutput<Sinks extends readonly SinkDeclaration[]> = BaseFinalResultReporter<Sinks> & {
|
|
160
|
+
readonly onResult: ManagedOutputResultCallback;
|
|
101
161
|
};
|
|
102
|
-
|
|
103
|
-
readonly
|
|
162
|
+
type FinalResultReporterWithoutOutput<Sinks extends readonly SinkDeclaration[]> = BaseFinalResultReporter<Sinks> & {
|
|
163
|
+
readonly onResult: (result: RunResult) => Promise<void> | void;
|
|
104
164
|
};
|
|
165
|
+
export type RealTimeReporter<Sinks extends readonly SinkDeclaration[] = readonly SinkDeclaration[]> = HasManagedStandardOutputSink<Sinks> extends true ? RealTimeReporterWithOutput<Sinks> : RealTimeReporterWithoutOutput<Sinks>;
|
|
166
|
+
export type FinalResultReporter<Sinks extends readonly SinkDeclaration[] = readonly SinkDeclaration[]> = HasManagedStandardOutputSink<Sinks> extends true ? FinalResultReporterWithOutput<Sinks> : FinalResultReporterWithoutOutput<Sinks>;
|
|
167
|
+
type OutputFinalReporter = FinalResultReporterWithOutput<ManagedStandardOutputSinkTuple>;
|
|
168
|
+
type OutputRealTimeReporter = RealTimeReporterWithOutput<ManagedStandardOutputSinkTuple>;
|
|
169
|
+
type SideEffectFinalReporter = FinalResultReporterWithoutOutput<readonly SinkDeclaration[]>;
|
|
170
|
+
type SideEffectRealTimeReporter = RealTimeReporterWithoutOutput<readonly SinkDeclaration[]>;
|
|
171
|
+
type OutputReporter = OutputFinalReporter | OutputRealTimeReporter;
|
|
172
|
+
type SideEffectReporter = SideEffectFinalReporter | SideEffectRealTimeReporter;
|
|
173
|
+
export type Reporter = OutputReporter | SideEffectReporter;
|
|
105
174
|
export declare function validateReporterSinks(reporters: readonly Reporter[]): void;
|
|
106
|
-
export declare function createReporterDispatcher(dependencies: ReporterDispatcherDependencies): ReporterDispatcher;
|
|
107
175
|
export {};
|
|
108
176
|
//# sourceMappingURL=reporter.d.ts.map
|
package/engine/reporter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../../../../source/engine/reporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../../../../source/engine/reporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,sBAAsB,EAAoB,MAAM,sBAAsB,CAAC;AACrF,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAEzD,MAAM,MAAM,gCAAgC,GAAG;IAC3C,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,CAAC;CAC9C,CAAC;AAEF,QAAA,MAAM,8BAA8B,6HAK1B,CAAC;AAEX,KAAK,6BAA6B,GAAG,OAAO,8BAA8B,CAAC,MAAM,CAAC,CAAC;AAGnF,MAAM,MAAM,oCAAoC,GAAG;IAC/C,QAAQ,CAAC,IAAI,EAAE,6BAA6B,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACnC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAChC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAChC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;CAC9C,CAAC;AAEF,KAAK,yBAAyB,GAAG,wBAAwB,GAAG,mBAAmB,CAAC;AAChF,KAAK,sBAAsB,GAAG,qBAAqB,GAAG,qBAAqB,CAAC;AAC5E,MAAM,MAAM,6BAA6B,GAAG,oCAAoC,GAAG,gCAAgC,CAAC;AACpH,KAAK,uBAAuB,GAAG,yBAAyB,GAAG,6BAA6B,CAAC;AAEzF,MAAM,MAAM,eAAe,GAAG,sBAAsB,GAAG,uBAAuB,CAAC;AAC/E,KAAK,yBAAyB,GAAG,OAAO,CAAC,eAAe,EAAE,oCAAoC,CAAC,CAAC;AAChG,KAAK,cAAc,GAAG,SAAS,CAAC,oCAAoC,EAAE,GAAG,eAAe,EAAE,CAAC,CAAC;AAC5F,KAAK,cAAc,GAAG,SAAS;IAC3B,yBAAyB;IACzB,oCAAoC;IACpC,GAAG,eAAe,EAAE;CACvB,CAAC;AACF,KAAK,cAAc,GAAG,SAAS;IAC3B,yBAAyB;IACzB,yBAAyB;IACzB,oCAAoC;IACpC,GAAG,eAAe,EAAE;CACvB,CAAC;AACF,KAAK,cAAc,GAAG,SAAS;IAC3B,yBAAyB;IACzB,yBAAyB;IACzB,yBAAyB;IACzB,oCAAoC;IACpC,GAAG,eAAe,EAAE;CACvB,CAAC;AACF,KAAK,cAAc,GAAG,SAAS;IAC3B,yBAAyB;IACzB,yBAAyB;IACzB,yBAAyB;IACzB,yBAAyB;IACzB,oCAAoC;IACpC,GAAG,eAAe,EAAE;CACvB,CAAC;AACF,KAAK,cAAc,GAAG,SAAS;IAC3B,yBAAyB;IACzB,yBAAyB;IACzB,yBAAyB;IACzB,yBAAyB;IACzB,yBAAyB;IACzB,oCAAoC;IACpC,GAAG,eAAe,EAAE;CACvB,CAAC;AACF,KAAK,iBAAiB,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc,CAAC;AAC1E,KAAK,iBAAiB,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc,CAAC;AAC1E,KAAK,8BAA8B,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;AAE5E,qBAAa,yBAA0B,SAAQ,KAAK;gBAC7B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC;CAIvE;AAED,KAAK,qBAAqB,GAAG;IACzB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE;QACX,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;CAC9B,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC5B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;CACjC,CAAC;AAEF,KAAK,uBAAuB,GAAG;IAC3B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC,CAAC;AAEF,KAAK,qBAAqB,GAAG;IACzB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;CAC/B,CAAC;AAEF,KAAK,yBAAyB,GAAG;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,KAAK,oBAAoB,GAAG;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,KAAK,gBAAgB,GAAG,mBAAmB,GAAG,wBAAwB,GAAG,qBAAqB,CAAC;AAC/F,KAAK,kBAAkB,GAAG,qBAAqB,GAAG,uBAAuB,CAAC;AAC1E,KAAK,iBAAiB,GAAG,oBAAoB,GAAG,yBAAyB,GAAG,sBAAsB,CAAC;AAEnG,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,iBAAiB,CAAC;AAEtF,KAAK,iCAAiC,CAClC,SAAS,SAAS,eAAe,EACjC,cAAc,SAAS,SAAS,eAAe,EAAE,IACjD,SAAS,SAAS,oCAAoC,GAAG,IAAI,GAC3D,sCAAsC,CAAC,cAAc,CAAC,CAAC;AAE7D,KAAK,iBAAiB,CAAC,KAAK,SAAS,SAAS,eAAe,EAAE,IAAI,KAAK,SAAS,SAAS;IACtF,MAAM,SAAS,SAAS,eAAe;IACvC,GAAG,eAAe,EAAE;CACvB,GAAG,SAAS,GACP,KAAK,CAAC;AAEZ,KAAK,sBAAsB,CAAC,KAAK,SAAS,SAAS,eAAe,EAAE,IAAI,KAAK,SAAS,SAAS;IAC3F,eAAe;IACf,GAAG,MAAM,cAAc,SAAS,SAAS,eAAe,EAAE;CAC7D,GAAG,cAAc,GACZ,KAAK,CAAC;AAEZ,KAAK,sCAAsC,CAAC,KAAK,SAAS,SAAS,eAAe,EAAE,IAAI,KAAK,SAAS,SAAS,EAAE,GAC3G,KAAK,GACL,iCAAiC,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;AAEjG,KAAK,4BAA4B,CAAC,KAAK,SAAS,SAAS,eAAe,EAAE,IAAI,MAAM,SAAS,KAAK,CAAC,QAAQ,CAAC,GAAG,KAAK,GAC9G,sCAAsC,CAAC,KAAK,CAAC,CAAC;AAEpD,KAAK,oBAAoB,CAAC,KAAK,SAAS,SAAS,eAAe,EAAE,IAAI;IAClE,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACtD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACzB,CAAC;AAEF,KAAK,0BAA0B,GAAG,CAC9B,KAAK,EAAE,aAAa,KACnB,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAE9D,KAAK,2BAA2B,GAAG,CAC/B,MAAM,EAAE,SAAS,KAChB,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAE9D,KAAK,0BAA0B,CAAC,KAAK,SAAS,SAAS,eAAe,EAAE,IAAI,oBAAoB,CAAC,KAAK,CAAC,GAAG;IACtG,QAAQ,CAAC,OAAO,EAAE,0BAA0B,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,2BAA2B,GAAG,IAAI,CAAC;CACzD,CAAC;AAEF,KAAK,6BAA6B,CAAC,KAAK,SAAS,SAAS,eAAe,EAAE,IAAI,oBAAoB,CAAC,KAAK,CAAC,GAAG;IACzG,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACjE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;CAC3E,CAAC;AAEF,KAAK,uBAAuB,CAAC,KAAK,SAAS,SAAS,eAAe,EAAE,IAAI;IACrE,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACtD,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACzB,CAAC;AAEF,KAAK,2BAA2B,GAAG,CAC/B,MAAM,EAAE,SAAS,KAChB,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAE9D,KAAK,6BAA6B,CAAC,KAAK,SAAS,SAAS,eAAe,EAAE,IAAI,uBAAuB,CAAC,KAAK,CAAC,GAAG;IAC5G,QAAQ,CAAC,QAAQ,EAAE,2BAA2B,CAAC;CAClD,CAAC;AAEF,KAAK,gCAAgC,CAAC,KAAK,SAAS,SAAS,eAAe,EAAE,IAAI,uBAAuB,CAAC,KAAK,CAAC,GAAG;IAC/G,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAClE,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,KAAK,SAAS,SAAS,eAAe,EAAE,GAAG,SAAS,eAAe,EAAE,IAC9F,4BAA4B,CAAC,KAAK,CAAC,SAAS,IAAI,GAAG,0BAA0B,CAAC,KAAK,CAAC,GAC9E,6BAA6B,CAAC,KAAK,CAAC,CAAC;AAE/C,MAAM,MAAM,mBAAmB,CAAC,KAAK,SAAS,SAAS,eAAe,EAAE,GAAG,SAAS,eAAe,EAAE,IACjG,4BAA4B,CAAC,KAAK,CAAC,SAAS,IAAI,GAAG,6BAA6B,CAAC,KAAK,CAAC,GACjF,gCAAgC,CAAC,KAAK,CAAC,CAAC;AAElD,KAAK,mBAAmB,GAAG,6BAA6B,CAAC,8BAA8B,CAAC,CAAC;AACzF,KAAK,sBAAsB,GAAG,0BAA0B,CAAC,8BAA8B,CAAC,CAAC;AACzF,KAAK,uBAAuB,GAAG,gCAAgC,CAAC,SAAS,eAAe,EAAE,CAAC,CAAC;AAC5F,KAAK,0BAA0B,GAAG,6BAA6B,CAAC,SAAS,eAAe,EAAE,CAAC,CAAC;AAC5F,KAAK,cAAc,GAAG,mBAAmB,GAAG,sBAAsB,CAAC;AACnE,KAAK,kBAAkB,GAAG,uBAAuB,GAAG,0BAA0B,CAAC;AAE/E,MAAM,MAAM,QAAQ,GAAG,cAAc,GAAG,kBAAkB,CAAC;AAoH3D,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,GAAG,IAAI,CAQ1E"}
|
package/engine/reporter.js
CHANGED
|
@@ -1,35 +1,77 @@
|
|
|
1
|
-
const
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
const managedStandardOutputSinkKinds = [
|
|
2
|
+
'stderr-managed-primary',
|
|
3
|
+
'stderr-managed-supplemental',
|
|
4
|
+
'stdout-managed-primary',
|
|
5
|
+
'stdout-managed-supplemental'
|
|
6
|
+
];
|
|
7
|
+
const managedStandardOutputSinkKindNames = managedStandardOutputSinkKinds;
|
|
8
|
+
export class ReporterSinkConflictError extends Error {
|
|
9
|
+
constructor(message, options) {
|
|
10
|
+
super(message, options);
|
|
11
|
+
this.name = 'ReporterSinkConflictError';
|
|
12
|
+
}
|
|
4
13
|
}
|
|
5
14
|
function pathSinkKey(sink) {
|
|
6
15
|
return `path:${sink.path}`;
|
|
7
16
|
}
|
|
8
|
-
function
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
17
|
+
function standardOutputStream(sink) {
|
|
18
|
+
return sink.kind.startsWith('stderr') ? 'stderr' : 'stdout';
|
|
19
|
+
}
|
|
20
|
+
function isManagedStandardOutputSink(sink) {
|
|
21
|
+
return managedStandardOutputSinkKindNames.includes(sink.kind);
|
|
22
|
+
}
|
|
23
|
+
function standardOutputRole(sink) {
|
|
24
|
+
if (sink.kind.endsWith('primary')) {
|
|
25
|
+
return 'primary';
|
|
14
26
|
}
|
|
27
|
+
return 'supplemental';
|
|
28
|
+
}
|
|
29
|
+
function standardOutputSinkConflictMessage(stream) {
|
|
30
|
+
return `Reporter sink conflict: ${stream} is claimed by incompatible reporters.`;
|
|
31
|
+
}
|
|
32
|
+
function nextClaimedStandardOutputRole(existingSink, sink) {
|
|
33
|
+
return existingSink?.role === 'primary' ? 'primary' : standardOutputRole(sink);
|
|
34
|
+
}
|
|
35
|
+
function claimStandardOutputSink(claimedSinks, key, sink) {
|
|
15
36
|
const updatedSinks = new Map(claimedSinks);
|
|
16
|
-
return updatedSinks.set(key,
|
|
17
|
-
|
|
37
|
+
return updatedSinks.set(key, sink);
|
|
38
|
+
}
|
|
39
|
+
function validateRawStandardOutputSink(claimedSinks, sink) {
|
|
40
|
+
const key = standardOutputStream(sink);
|
|
41
|
+
if (claimedSinks.has(key)) {
|
|
42
|
+
throw new ReporterSinkConflictError(standardOutputSinkConflictMessage(key));
|
|
43
|
+
}
|
|
44
|
+
return claimStandardOutputSink(claimedSinks, key, { mode: 'raw', role: null });
|
|
45
|
+
}
|
|
46
|
+
function validateManagedStandardOutputSink(claimedSinks, sink) {
|
|
47
|
+
const key = standardOutputStream(sink);
|
|
48
|
+
const existingSink = claimedSinks.get(key);
|
|
49
|
+
const sinkRole = standardOutputRole(sink);
|
|
50
|
+
if (existingSink?.mode === 'raw' || existingSink?.role === 'primary' && sinkRole === 'primary') {
|
|
51
|
+
throw new ReporterSinkConflictError(standardOutputSinkConflictMessage(key));
|
|
52
|
+
}
|
|
53
|
+
return claimStandardOutputSink(claimedSinks, key, {
|
|
54
|
+
mode: 'managed',
|
|
55
|
+
role: nextClaimedStandardOutputRole(existingSink, sink)
|
|
18
56
|
});
|
|
19
57
|
}
|
|
20
58
|
function validatePathSink(claimedSinks, sink) {
|
|
21
59
|
const key = pathSinkKey(sink);
|
|
22
60
|
if (claimedSinks.has(key)) {
|
|
23
|
-
throw new
|
|
61
|
+
throw new ReporterSinkConflictError(`Reporter sink conflict: path "${sink.path}" is claimed by multiple reporters.`);
|
|
24
62
|
}
|
|
25
63
|
const updatedSinks = new Map(claimedSinks);
|
|
26
64
|
return updatedSinks.set(key, {
|
|
27
|
-
|
|
65
|
+
mode: 'raw',
|
|
66
|
+
role: null
|
|
28
67
|
});
|
|
29
68
|
}
|
|
30
69
|
function validateReporterSink(claimedSinks, sink) {
|
|
31
|
-
if (sink.kind === 'stdout' || sink.kind === 'stderr') {
|
|
32
|
-
return
|
|
70
|
+
if (sink.kind === 'stdout-raw' || sink.kind === 'stderr-raw') {
|
|
71
|
+
return validateRawStandardOutputSink(claimedSinks, sink);
|
|
72
|
+
}
|
|
73
|
+
if (isManagedStandardOutputSink(sink)) {
|
|
74
|
+
return validateManagedStandardOutputSink(claimedSinks, sink);
|
|
33
75
|
}
|
|
34
76
|
if (sink.kind === 'file' || sink.kind === 'directory') {
|
|
35
77
|
return validatePathSink(claimedSinks, sink);
|
|
@@ -44,134 +86,4 @@ export function validateReporterSinks(reporters) {
|
|
|
44
86
|
}
|
|
45
87
|
}
|
|
46
88
|
}
|
|
47
|
-
function formatReporterError(reporter, cause) {
|
|
48
|
-
const reason = cause instanceof Error ? cause.message : String(cause);
|
|
49
|
-
return {
|
|
50
|
-
attributedTo: null,
|
|
51
|
-
cause,
|
|
52
|
-
message: `${reporter.name}: ${reason}`,
|
|
53
|
-
subtype: 'reporter'
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
function timeoutError(reporter) {
|
|
57
|
-
return new Error(`${reporter.name} reporter callback timed out after ${callbackTimeoutMs} ms.`);
|
|
58
|
-
}
|
|
59
|
-
async function runReporterCallback(callback) {
|
|
60
|
-
await callback();
|
|
61
|
-
}
|
|
62
|
-
export function createReporterDispatcher(dependencies) {
|
|
63
|
-
const { wallClock } = dependencies;
|
|
64
|
-
function createReporterTimeout(reporter) {
|
|
65
|
-
const { promise, reject } = Promise.withResolvers();
|
|
66
|
-
const timeout = wallClock.setTimeout(function rejectTimedOutCallback() {
|
|
67
|
-
reject(timeoutError(reporter));
|
|
68
|
-
}, callbackTimeoutMs);
|
|
69
|
-
return {
|
|
70
|
-
cancel() {
|
|
71
|
-
wallClock.clearTimeout(timeout);
|
|
72
|
-
},
|
|
73
|
-
promise
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
async function awaitReporterCallback(reporter, callback) {
|
|
77
|
-
const reporterTimeout = createReporterTimeout(reporter);
|
|
78
|
-
try {
|
|
79
|
-
await Promise.race([runReporterCallback(callback), reporterTimeout.promise]);
|
|
80
|
-
return null;
|
|
81
|
-
}
|
|
82
|
-
catch (error) {
|
|
83
|
-
return formatReporterError(reporter, error);
|
|
84
|
-
}
|
|
85
|
-
finally {
|
|
86
|
-
reporterTimeout.cancel();
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
async function reportEventToReporter(reporter, event) {
|
|
90
|
-
const error = await awaitReporterCallback(reporter, function sendReporterEvent() {
|
|
91
|
-
return reporter.onEvent(event);
|
|
92
|
-
});
|
|
93
|
-
if (error === null) {
|
|
94
|
-
return null;
|
|
95
|
-
}
|
|
96
|
-
return { error, reporter };
|
|
97
|
-
}
|
|
98
|
-
async function reportRunnerErrorToOtherReporters(reporters, failedReporter, error) {
|
|
99
|
-
const event = { error, kind: 'runner-error' };
|
|
100
|
-
const failures = await Promise.all(reporters.map(async function reportRunnerError(reporter) {
|
|
101
|
-
if (reporter.kind !== 'real-time' || reporter === failedReporter) {
|
|
102
|
-
return null;
|
|
103
|
-
}
|
|
104
|
-
return reportEventToReporter(reporter, event);
|
|
105
|
-
}));
|
|
106
|
-
return failures.flatMap(function collectFailure(failure) {
|
|
107
|
-
return failure === null ? [] : [failure.error];
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
async function collectReporterErrorsWithNotifications(reporters, reporterErrors) {
|
|
111
|
-
const notificationErrors = await Promise.all(reporterErrors.map(async function reportError(failure) {
|
|
112
|
-
return reportRunnerErrorToOtherReporters(reporters, failure.reporter, failure.error);
|
|
113
|
-
}));
|
|
114
|
-
return [
|
|
115
|
-
...reporterErrors.map(function toError(failure) {
|
|
116
|
-
return failure.error;
|
|
117
|
-
}),
|
|
118
|
-
...notificationErrors.flat()
|
|
119
|
-
];
|
|
120
|
-
}
|
|
121
|
-
async function reportEvent(reporters, event) {
|
|
122
|
-
const failures = await Promise.all(reporters.map(async function reportRealTimeEvent(reporter) {
|
|
123
|
-
if (reporter.kind !== 'real-time') {
|
|
124
|
-
return null;
|
|
125
|
-
}
|
|
126
|
-
return reportEventToReporter(reporter, event);
|
|
127
|
-
}));
|
|
128
|
-
const reporterErrors = failures.flatMap(function collectFailure(failure) {
|
|
129
|
-
return failure === null ? [] : [failure];
|
|
130
|
-
});
|
|
131
|
-
if (event.kind === 'runner-error') {
|
|
132
|
-
return reporterErrors.map(function toError(failure) {
|
|
133
|
-
return failure.error;
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
return collectReporterErrorsWithNotifications(reporters, reporterErrors);
|
|
137
|
-
}
|
|
138
|
-
async function reportResult(reporters, result) {
|
|
139
|
-
const failures = await Promise.all(reporters.map(async function reportFinalResult(reporter) {
|
|
140
|
-
if (reporter.kind === 'final-result') {
|
|
141
|
-
const error = await awaitReporterCallback(reporter, function reportResultToFinalReporter() {
|
|
142
|
-
return reporter.onResult(result);
|
|
143
|
-
});
|
|
144
|
-
return error === null ? null : { error, reporter };
|
|
145
|
-
}
|
|
146
|
-
if (reporter.onFinish === null) {
|
|
147
|
-
return null;
|
|
148
|
-
}
|
|
149
|
-
const { onFinish } = reporter;
|
|
150
|
-
const error = await awaitReporterCallback(reporter, function reportResultToRealTimeReporter() {
|
|
151
|
-
return onFinish(result);
|
|
152
|
-
});
|
|
153
|
-
return error === null ? null : { error, reporter };
|
|
154
|
-
}));
|
|
155
|
-
const reporterErrors = failures.flatMap(function collectFailure(failure) {
|
|
156
|
-
return failure === null ? [] : [failure];
|
|
157
|
-
});
|
|
158
|
-
return collectReporterErrorsWithNotifications(reporters, reporterErrors);
|
|
159
|
-
}
|
|
160
|
-
async function disposeReporters(reporters) {
|
|
161
|
-
const failures = await Promise.all(reporters.map(async function disposeReporter(reporter) {
|
|
162
|
-
if (reporter.dispose === null) {
|
|
163
|
-
return null;
|
|
164
|
-
}
|
|
165
|
-
const { dispose } = reporter;
|
|
166
|
-
const error = await awaitReporterCallback(reporter, function disposeReporterResources() {
|
|
167
|
-
return dispose();
|
|
168
|
-
});
|
|
169
|
-
return error === null ? null : { error, reporter };
|
|
170
|
-
}));
|
|
171
|
-
return failures.flatMap(function collectFailure(failure) {
|
|
172
|
-
return failure === null ? [] : [failure.error];
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
return { disposeReporters, reportEvent, reportResult };
|
|
176
|
-
}
|
|
177
89
|
//# sourceMappingURL=reporter.js.map
|
package/engine/reporter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../../../source/engine/reporter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../../../source/engine/reporter.ts"],"names":[],"mappings":"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"}
|
package/engine/run-if-main.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import type { WallClock } from '@enormora/wall-clock';
|
|
2
2
|
import type { Execute } from './execution.ts';
|
|
3
|
+
import { type OutputRenderer } from './reporter-output.ts';
|
|
3
4
|
import type { Reporter, RunFacts } from './reporter.ts';
|
|
4
5
|
import type { Metadata, RootOptions, TestNode, TestRoot } from './test-node.ts';
|
|
5
6
|
import type { TestPlanFactory } from './test-plan.ts';
|
|
6
7
|
export type RunIfMainOptions = {
|
|
8
|
+
readonly outputRenderer?: OutputRenderer;
|
|
7
9
|
readonly reporters?: readonly Reporter[];
|
|
8
10
|
readonly root?: RunIfMainRootOptions;
|
|
9
11
|
readonly runFacts?: RunFacts;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-if-main.d.ts","sourceRoot":"","sources":["../../../../source/engine/run-if-main.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,gBAAgB,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,MAAM,gBAAgB,GAAG;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;IACzC,QAAQ,CAAC,IAAI,CAAC,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAC/B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,CACpB,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC1B,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,gBAAgB,KACzB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,MAAM,MAAM,qBAAqB,GAAG;IAChC,QAAQ,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,QAAQ,CAAC;IACxD,QAAQ,CAAC,cAAc,EAAE,eAAe,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAChE,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACtD,CAAC;
|
|
1
|
+
{"version":3,"file":"run-if-main.d.ts","sourceRoot":"","sources":["../../../../source/engine/run-if-main.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAA6B,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtF,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,MAAM,gBAAgB,GAAG;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IACzC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;IACzC,QAAQ,CAAC,IAAI,CAAC,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAC/B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,CACpB,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC1B,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,gBAAgB,KACzB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,MAAM,MAAM,qBAAqB,GAAG;IAChC,QAAQ,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,QAAQ,CAAC;IACxD,QAAQ,CAAC,cAAc,EAAE,eAAe,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAChE,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACtD,CAAC;AAkDF,wBAAgB,eAAe,CAAC,YAAY,EAAE,qBAAqB,GAAG,SAAS,CAe9E"}
|
package/engine/run-if-main.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { createPlainOutputRenderer } from "./reporter-output.js";
|
|
1
2
|
const failureExitCodes = new Set([undefined, null, 0, '0']);
|
|
2
3
|
function shouldSetFailureExitCode(exitCode) {
|
|
3
4
|
return failureExitCodes.has(exitCode);
|
|
@@ -22,6 +23,7 @@ function createExecuteOptions(options, dependencies) {
|
|
|
22
23
|
const startedAt = new Date(dependencies.wallClock.currentTimestampInMilliseconds);
|
|
23
24
|
return {
|
|
24
25
|
execution: { mode: 'serial-in-process' },
|
|
26
|
+
outputRenderer: options?.outputRenderer ?? createPlainOutputRenderer(),
|
|
25
27
|
reporters: options?.reporters ?? [],
|
|
26
28
|
runFacts: {
|
|
27
29
|
...options?.runFacts,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-if-main.js","sourceRoot":"","sources":["../../../../source/engine/run-if-main.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-if-main.js","sourceRoot":"","sources":["../../../../source/engine/run-if-main.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAuB,MAAM,sBAAsB,CAAC;AAkCtF,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAqC,CAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAE,CAAC,CAAC;AAElG,SAAS,wBAAwB,CAAC,QAA4C;IAC1E,OAAO,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,UAAU,CAAC,MAAiB;IACjC,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,YAAY,CAAC,OAAqC;IACvD,OAAO,OAAO,EAAE,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC;AACzC,CAAC;AAED,SAAS,QAAQ,CAAC,IAA0B,EAAE,OAAqC;IAC/E,OAAO,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC;AAC3C,CAAC;AAED,SAAS,iBAAiB,CACtB,IAA0B,EAC1B,QAAkB,EAClB,OAAqC;IAErC,OAAO;QACH,QAAQ,EAAE,CAAE,QAAQ,CAAE;QACtB,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC;QAC/B,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;KAChC,CAAC;AACN,CAAC;AAED,SAAS,oBAAoB,CACzB,OAAqC,EACrC,YAAmC;IAEnC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;IAElF,OAAO;QACH,SAAS,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE;QACxC,cAAc,EAAE,OAAO,EAAE,cAAc,IAAI,yBAAyB,EAAE;QACtE,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI,EAAE;QACnC,QAAQ,EAAE;YACN,GAAG,OAAO,EAAE,QAAQ;YACpB,WAAW,EAAE,YAAY,CAAC,WAAW;SACxC;QACD,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE;KACrC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,YAAmC;IAC/D,OAAO,KAAK,UAAU,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO;QACnD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACb,OAAO;QACX,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,CACrC,YAAY,CAAC,cAAc,CAAC,YAAY,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,EAChG,oBAAoB,CAAC,OAAO,EAAE,YAAY,CAAC,CAC9C,CAAC;QAEF,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,wBAAwB,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC;YAC9E,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;IACL,CAAC,CAAC;AACN,CAAC"}
|
package/package.json
CHANGED
|
@@ -14,8 +14,11 @@ export type { Execute, ExecuteExecution, ExecuteOptions } from '../../engine/exe
|
|
|
14
14
|
export type { RunIfMain, RunIfMainOptions, RunIfMainRootOptions } from '../../engine/run-if-main.ts';
|
|
15
15
|
export { formatCaseId } from '../../engine/identity.ts';
|
|
16
16
|
export type { CaseId, TestId } from '../../engine/identity.ts';
|
|
17
|
-
export type { DirectorySinkDeclaration, FileSinkDeclaration, FinalResultReporter, MemorySinkDeclaration, RealTimeReporter, Reporter, ReporterEvent, RunFacts, SinkDeclaration, StandardOutputSinkDeclaration, StreamSinkDeclaration } from '../../engine/reporter.ts';
|
|
18
|
-
export {
|
|
17
|
+
export type { DirectorySinkDeclaration, FileSinkDeclaration, FinalResultReporter, MemorySinkDeclaration, ManagedStandardOutputSinkDeclaration, RealTimeReporter, Reporter, ReporterEvent, RunFacts, SinkDeclaration, RawStandardOutputSinkDeclaration, StandardOutputSinkDeclaration, StreamSinkDeclaration } from '../../engine/reporter.ts';
|
|
18
|
+
export type { ReporterDispatcher, ReporterDispatcherDependencies } from '../../engine/reporter-dispatcher.ts';
|
|
19
|
+
export { ReporterSinkConflictError, validateReporterSinks } from '../../engine/reporter.ts';
|
|
20
|
+
export { createPlainOutputRenderer } from '../../engine/reporter-output.ts';
|
|
21
|
+
export type { OutputIntentAnnotation, OutputIntentRole, OutputIntentSeverity, OutputLineIntent, OutputLineWriter, OutputRenderer, ReporterOutput } from '../../engine/reporter-output.ts';
|
|
19
22
|
export type { AssertAssertionFacade } from '../../engine/assertion-facade.ts';
|
|
20
23
|
export type { RequireAssertionFacade } from '../../engine/require-assertion-facade.ts';
|
|
21
24
|
export type { AssertionOptions, AssertionSource, DeepComparable, FailedCheck, FailedCompositeCheck, FailedForeignCheck, FailedLeafCheck, InstanceConstructor, NonEmptyReadonlyArray, ResolvableSourceLocation, SourceLocationProvider, SourceLocation } from '../../assertion-protocol/assertion-node-shape.ts';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.entry-point.d.ts","sourceRoot":"","sources":["../../../../../source/packages/engine/engine.entry-point.ts"],"names":[],"mappings":"AACA,OAAO,EAAwC,KAAK,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAG3F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EACR,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,QAAQ,EACX,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"engine.entry-point.d.ts","sourceRoot":"","sources":["../../../../../source/packages/engine/engine.entry-point.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,28 @@
|
|
|
1
1
|
import { createWallClock } from '@enormora/wall-clock';
|
|
2
2
|
import { createEngine as createEngineInstance } from "../../engine/engine.js";
|
|
3
3
|
import { createExecute } from "../../engine/execution.js";
|
|
4
|
-
import { createReporterDispatcher } from "../../engine/reporter.js";
|
|
4
|
+
import { createReporterDispatcher } from "../../engine/reporter-dispatcher.js";
|
|
5
5
|
function readProcessExitCode() {
|
|
6
6
|
return process.exitCode;
|
|
7
7
|
}
|
|
8
8
|
function writeProcessExitCode(exitCode) {
|
|
9
9
|
process.exitCode = exitCode;
|
|
10
10
|
}
|
|
11
|
+
function writeStdoutLine(line) {
|
|
12
|
+
process.stdout.write(`${line}\n`);
|
|
13
|
+
}
|
|
14
|
+
function writeStderrLine(line) {
|
|
15
|
+
process.stderr.write(`${line}\n`);
|
|
16
|
+
}
|
|
11
17
|
export function createEngine() {
|
|
12
18
|
const wallClock = createWallClock();
|
|
13
19
|
return createEngineInstance({
|
|
14
20
|
execute: createExecute({
|
|
15
|
-
reporterDispatcher: createReporterDispatcher({
|
|
21
|
+
reporterDispatcher: createReporterDispatcher({
|
|
22
|
+
stderr: { writeLine: writeStderrLine },
|
|
23
|
+
stdout: { writeLine: writeStdoutLine },
|
|
24
|
+
wallClock
|
|
25
|
+
}),
|
|
16
26
|
wallClock
|
|
17
27
|
}),
|
|
18
28
|
nodeVersion: process.versions.node,
|
|
@@ -44,7 +54,8 @@ export async function runIfMain(meta, testNode, options) {
|
|
|
44
54
|
await defaultEngine.runIfMain(meta, testNode, options);
|
|
45
55
|
}
|
|
46
56
|
export { formatCaseId } from "../../engine/identity.js";
|
|
47
|
-
export { validateReporterSinks } from "../../engine/reporter.js";
|
|
57
|
+
export { ReporterSinkConflictError, validateReporterSinks } from "../../engine/reporter.js";
|
|
58
|
+
export { createPlainOutputRenderer } from "../../engine/reporter-output.js";
|
|
48
59
|
export { defaultSerializationBudget, serializeValue, serializeValueWithBudget } from "../../compare/serialized-value.js";
|
|
49
60
|
export { captureSourceLocation, unknownSourceLocation } from "../../assertion-protocol/source-location.js";
|
|
50
61
|
//# sourceMappingURL=engine.entry-point.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.entry-point.js","sourceRoot":"","sources":["../../../../../source/packages/engine/engine.entry-point.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,YAAY,IAAI,oBAAoB,EAAe,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"engine.entry-point.js","sourceRoot":"","sources":["../../../../../source/packages/engine/engine.entry-point.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,YAAY,IAAI,oBAAoB,EAAe,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAW/E,SAAS,mBAAmB;IACxB,OAAO,OAAO,CAAC,QAAQ,CAAC;AAC5B,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAgB;IAC1C,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAChC,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,YAAY;IACxB,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;IAEpC,OAAO,oBAAoB,CAAC;QACxB,OAAO,EAAE,aAAa,CAAC;YACnB,kBAAkB,EAAE,wBAAwB,CAAC;gBACzC,MAAM,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE;gBACtC,MAAM,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE;gBACtC,SAAS;aACZ,CAAC;YACF,SAAS;SACZ,CAAC;QACF,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;QAClC,YAAY,EAAE,mBAAmB;QACjC,SAAS;QACT,aAAa,EAAE,oBAAoB;KACtC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,aAAa,GAAG,YAAY,EAAE,CAAC;AAErC,MAAM,UAAU,UAAU,CAAC,OAAoB;IAC3C,OAAO,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAqB;IAC7C,OAAO,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAqB;IAC7C,OAAO,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAwB;IACnD,OAAO,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAc;IACzC,OAAO,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CACzB,QAA0C,EAC1C,OAA0C;IAE1C,OAAO,MAAM,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC3B,IAA0B,EAC1B,QAAkB,EAClB,OAA0B;IAE1B,MAAM,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC;AAKD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAkBxD,OAAO,EACH,yBAAyB,EACzB,qBAAqB,EACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACH,yBAAyB,EAC5B,MAAM,iCAAiC,CAAC;AAoCzC,OAAO,EACH,0BAA0B,EAC1B,cAAc,EACd,wBAAwB,EAC3B,MAAM,mCAAmC,CAAC;AAS3C,OAAO,EACH,qBAAqB,EACrB,qBAAqB,EACxB,MAAM,6CAA6C,CAAC"}
|