@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.
@@ -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 StandardOutputSinkDeclaration = {
7
- readonly conflictPolicy: 'exclusive' | 'shared';
8
- readonly kind: 'stderr' | 'stdout';
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
- export type RealTimeReporter = {
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: readonly SinkDeclaration[];
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
- export type FinalResultReporter = {
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: readonly SinkDeclaration[];
94
- readonly onResult: (result: RunResult) => Promise<void> | void;
156
+ readonly sinks: Sinks;
95
157
  };
96
- export type Reporter = FinalResultReporter | RealTimeReporter;
97
- export type ReporterDispatcher = {
98
- readonly disposeReporters: (reporters: readonly Reporter[]) => Promise<readonly RunnerError[]>;
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
- export type ReporterDispatcherDependencies = {
103
- readonly wallClock: WallClock;
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
@@ -1 +1 @@
1
- {"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../../../../source/engine/reporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../../../../source/engine/reporter.ts"],"names":[],"mappings":"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"}
@@ -1,35 +1,77 @@
1
- const callbackTimeoutMs = 100;
2
- function standardOutputSinkKey(sink) {
3
- return `standard-output:${sink.kind}`;
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 validateStandardOutputSink(claimedSinks, sink) {
9
- const key = standardOutputSinkKey(sink);
10
- const existingSink = claimedSinks.get(key);
11
- if (existingSink !== undefined &&
12
- (existingSink.conflictPolicy === 'exclusive' || sink.conflictPolicy === 'exclusive')) {
13
- throw new TypeError(`Reporter sink conflict: ${sink.kind} is claimed exclusively.`);
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
- conflictPolicy: sink.conflictPolicy
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 TypeError(`Reporter sink conflict: path "${sink.path}" is claimed by multiple reporters.`);
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
- conflictPolicy: sink.conflictPolicy
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 validateStandardOutputSink(claimedSinks, sink);
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
@@ -1 +1 @@
1
- {"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../../../source/engine/reporter.ts"],"names":[],"mappings":"AAwIA,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAW9B,SAAS,qBAAqB,CAAC,IAAmC;IAC9D,OAAO,mBAAmB,IAAI,CAAC,IAAI,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,WAAW,CAAC,IAAoD;IACrE,OAAO,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;AAC/B,CAAC;AAOD,SAAS,0BAA0B,CAC/B,YAA8C,EAC9C,IAAmC;IAEnC,MAAM,GAAG,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE3C,IACI,YAAY,KAAK,SAAS;QAC1B,CAAC,YAAY,CAAC,cAAc,KAAK,WAAW,IAAI,IAAI,CAAC,cAAc,KAAK,WAAW,CAAC,EACtF,CAAC;QACC,MAAM,IAAI,SAAS,CAAC,2BAA2B,IAAI,CAAC,IAAI,0BAA0B,CAAC,CAAC;IACxF,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;IAE3C,OAAO,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE;QACzB,cAAc,EAAE,IAAI,CAAC,cAAc;KACtC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,gBAAgB,CACrB,YAA8C,EAC9C,IAAoD;IAEpD,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAE9B,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,SAAS,CAAC,iCAAiC,IAAI,CAAC,IAAI,qCAAqC,CAAC,CAAC;IACzG,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;IAE3C,OAAO,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE;QACzB,cAAc,EAAE,IAAI,CAAC,cAAc;KACtC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,oBAAoB,CACzB,YAA8C,EAC9C,IAAqB;IAErB,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACnD,OAAO,0BAA0B,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACpD,OAAO,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,YAAY,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,SAA8B;IAChE,IAAI,YAAY,GAAqC,IAAI,GAAG,EAAE,CAAC;IAE/D,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YAChC,YAAY,GAAG,oBAAoB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAC5D,CAAC;IACL,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAkB,EAAE,KAAc;IAC3D,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEtE,OAAO;QACH,YAAY,EAAE,IAAI;QAClB,KAAK;QACL,OAAO,EAAE,GAAG,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE;QACtC,OAAO,EAAE,UAAU;KACtB,CAAC;AACN,CAAC;AAED,SAAS,YAAY,CAAC,QAAkB;IACpC,OAAO,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,sCAAsC,iBAAiB,MAAM,CAAC,CAAC;AACpG,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,QAAoC;IACnE,MAAM,QAAQ,EAAE,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,YAA4C;IACjF,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC;IAEnC,SAAS,qBAAqB,CAAC,QAAkB;QAC7C,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,EAAS,CAAC;QAC3D,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,SAAS,sBAAsB;YAChE,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnC,CAAC,EAAE,iBAAiB,CAAC,CAAC;QAEtB,OAAO;YACH,MAAM;gBACF,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC;YACD,OAAO;SACV,CAAC;IACN,CAAC;IAED,KAAK,UAAU,qBAAqB,CAChC,QAAkB,EAClB,QAAoC;QAEpC,MAAM,eAAe,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,CAAC;YACD,MAAM,OAAO,CAAC,IAAI,CAAC,CAAE,mBAAmB,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC,OAAO,CAAE,CAAC,CAAC;YAE/E,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,OAAO,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAChD,CAAC;gBAAS,CAAC;YACP,eAAe,CAAC,MAAM,EAAE,CAAC;QAC7B,CAAC;IACL,CAAC;IAED,KAAK,UAAU,qBAAqB,CAChC,QAA0B,EAC1B,KAAoB;QAEpB,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC,QAAQ,EAAE,SAAS,iBAAiB;YAC1E,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,UAAU,iCAAiC,CAC5C,SAA8B,EAC9B,cAAwB,EACxB,KAAkB;QAElB,MAAM,KAAK,GAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;QAC7D,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,SAAS,CAAC,GAAG,CAAC,KAAK,UAAU,iBAAiB,CAAC,QAAQ;YACnD,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;gBAC/D,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,OAAO,qBAAqB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC,CAAC,CACL,CAAC;QAEF,OAAO,QAAQ,CAAC,OAAO,CAAC,SAAS,cAAc,CAAC,OAAO;YACnD,OAAO,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,OAAO,CAAC,KAAK,CAAE,CAAC;QACrD,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,UAAU,sCAAsC,CACjD,SAA8B,EAC9B,cAAkD;QAElD,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,GAAG,CACxC,cAAc,CAAC,GAAG,CAAC,KAAK,UAAU,WAAW,CAAC,OAAO;YACjD,OAAO,iCAAiC,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACzF,CAAC,CAAC,CACL,CAAC;QAEF,OAAO;YACH,GAAG,cAAc,CAAC,GAAG,CAAC,SAAS,OAAO,CAAC,OAAO;gBAC1C,OAAO,OAAO,CAAC,KAAK,CAAC;YACzB,CAAC,CAAC;YACF,GAAG,kBAAkB,CAAC,IAAI,EAAE;SAC/B,CAAC;IACN,CAAC;IAED,KAAK,UAAU,WAAW,CACtB,SAA8B,EAC9B,KAAoB;QAEpB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,SAAS,CAAC,GAAG,CAAC,KAAK,UAAU,mBAAmB,CAAC,QAAQ;YACrD,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,OAAO,qBAAqB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC,CAAC,CACL,CAAC;QAEF,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,cAAc,CAAC,OAAO;YACnE,OAAO,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,OAAO,CAAE,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAChC,OAAO,cAAc,CAAC,GAAG,CAAC,SAAS,OAAO,CAAC,OAAO;gBAC9C,OAAO,OAAO,CAAC,KAAK,CAAC;YACzB,CAAC,CAAC,CAAC;QACP,CAAC;QAED,OAAO,sCAAsC,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,UAAU,YAAY,CACvB,SAA8B,EAC9B,MAAiB;QAEjB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,UAAU,iBAAiB,CAC7E,QAAQ;YAER,IAAI,QAAQ,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBACnC,MAAM,KAAK,GAAG,MAAM,qBAAqB,CACrC,QAAQ,EACR,SAAS,2BAA2B;oBAChC,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACrC,CAAC,CACJ,CAAC;gBAEF,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;YACvD,CAAC;YAED,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBAC7B,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,MAAM,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;YAC9B,MAAM,KAAK,GAAG,MAAM,qBAAqB,CACrC,QAAQ,EACR,SAAS,8BAA8B;gBACnC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC5B,CAAC,CACJ,CAAC;YAEF,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QACvD,CAAC,CAAC,CAAC,CAAC;QAEJ,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,cAAc,CAAC,OAAO;YACnE,OAAO,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,OAAO,CAAE,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,OAAO,sCAAsC,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,UAAU,gBAAgB,CAAC,SAA8B;QAC1D,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,UAAU,eAAe,CAC3E,QAAQ;YAER,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC5B,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAM,qBAAqB,CACrC,QAAQ,EACR,SAAS,wBAAwB;gBAC7B,OAAO,OAAO,EAAE,CAAC;YACrB,CAAC,CACJ,CAAC;YAEF,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QACvD,CAAC,CAAC,CAAC,CAAC;QAEJ,OAAO,QAAQ,CAAC,OAAO,CAAC,SAAS,cAAc,CAAC,OAAO;YACnD,OAAO,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,OAAO,CAAC,KAAK,CAAE,CAAC;QACrD,CAAC,CAAC,CAAC;IACP,CAAC;IAED,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;AAC3D,CAAC"}
1
+ {"version":3,"file":"reporter.js","sourceRoot":"","sources":["../../../../source/engine/reporter.ts"],"names":[],"mappings":"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"}
@@ -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;AAiDF,wBAAgB,eAAe,CAAC,YAAY,EAAE,qBAAqB,GAAG,SAAS,CAe9E"}
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"}
@@ -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":"AAkCA,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,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"}
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
@@ -48,5 +48,5 @@
48
48
  "./packages/engine/engine.entry-point.js"
49
49
  ],
50
50
  "type": "module",
51
- "version": "0.0.10"
51
+ "version": "0.0.12"
52
52
  }
@@ -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 { validateReporterSinks } from '../../engine/reporter.ts';
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;AAUnC,wBAAgB,YAAY,IAAI,MAAM,CAarC;AAID,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAEjF;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAEpF;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAEpF;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAE7F;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAEnF;AAED,wBAAsB,OAAO,CACzB,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAC1C,OAAO,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAC3C,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAE/B;AAED,wBAAsB,SAAS,CAC3B,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC1B,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,gBAAgB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,YAAY,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3F,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACrG,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EACR,wBAAwB,EACxB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,eAAe,EACf,6BAA6B,EAC7B,qBAAqB,EACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,YAAY,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAC9E,YAAY,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AACvF,YAAY,EACR,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,cAAc,EACjB,MAAM,kDAAkD,CAAC;AAC1D,YAAY,EACR,kBAAkB,EAClB,aAAa,EACb,IAAI,EACJ,eAAe,EACf,IAAI,EACJ,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACH,0BAA0B,EAC1B,cAAc,EACd,wBAAwB,EAC3B,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EACR,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,uBAAuB,EAC1B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACH,qBAAqB,EACrB,qBAAqB,EACxB,MAAM,6CAA6C,CAAC;AACrD,YAAY,EACR,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,0BAA0B,EAC1B,aAAa,EAChB,MAAM,4CAA4C,CAAC;AACpD,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AAC5G,YAAY,EACR,sBAAsB,EACtB,mBAAmB,EACtB,MAAM,mDAAmD,CAAC;AAC3D,YAAY,EACR,sBAAsB,EACtB,kBAAkB,EAClB,yBAAyB,EACzB,qBAAqB,EACxB,MAAM,iDAAiD,CAAC;AACzD,YAAY,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AACrF,YAAY,EACR,oBAAoB,EACpB,8BAA8B,EACjC,MAAM,gDAAgD,CAAC;AACxD,YAAY,EACR,iCAAiC,EACjC,oCAAoC,EACpC,6BAA6B,EAChC,MAAM,gDAAgD,CAAC;AACxD,YAAY,EACR,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,EACzB,MAAM,iDAAiD,CAAC;AACzD,YAAY,EACR,kBAAkB,EAClB,2BAA2B,EAC9B,MAAM,+CAA+C,CAAC;AACvD,YAAY,EACR,wBAAwB,EACxB,uBAAuB,EACvB,iBAAiB,EACpB,MAAM,mDAAmD,CAAC;AAC3D,YAAY,EACR,oBAAoB,EACpB,oBAAoB,EACpB,WAAW,EACX,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,aAAa,EACb,SAAS,EACT,WAAW,EACX,UAAU,EACV,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,uBAAuB,EACvB,WAAW,EACX,WAAW,EACd,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACR,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,2BAA2B,EAC3B,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACvB,MAAM,4CAA4C,CAAC;AACpD,YAAY,EACR,sBAAsB,EACtB,QAAQ,EACR,WAAW,EACX,KAAK,EACL,YAAY,EACZ,KAAK,EACL,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,QAAQ,EACR,SAAS,EACT,QAAQ,EACX,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,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({ wallClock }),
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,0BAA0B,CAAC;AAWpE,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,MAAM,UAAU,YAAY;IACxB,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;IAEpC,OAAO,oBAAoB,CAAC;QACxB,OAAO,EAAE,aAAa,CAAC;YACnB,kBAAkB,EAAE,wBAAwB,CAAC,EAAE,SAAS,EAAE,CAAC;YAC3D,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;AAexD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AA2BjE,OAAO,EACH,0BAA0B,EAC1B,cAAc,EACd,wBAAwB,EAC3B,MAAM,mCAAmC,CAAC;AAS3C,OAAO,EACH,qBAAqB,EACrB,qBAAqB,EACxB,MAAM,6CAA6C,CAAC"}
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"}