@overkill-dev/engine 0.0.11 → 0.0.13
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-result.js +77 -0
- package/engine/execution-result.js.map +1 -0
- package/engine/execution.d.ts +6 -2
- package/engine/execution.d.ts.map +1 -1
- package/engine/execution.js +68 -108
- 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 +86 -21
- package/engine/reporter.d.ts.map +1 -1
- package/engine/reporter.js +51 -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/engine/run-result.d.ts +22 -0
- package/engine/run-result.d.ts.map +1 -1
- package/engine/run-result.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 +13 -2
- package/packages/engine/engine.entry-point.js.map +1 -1
- package/readme.md +13 -3
- package/sbom.cdx.json +5 -5
package/engine/reporter.js
CHANGED
|
@@ -1,26 +1,58 @@
|
|
|
1
|
+
const managedStandardOutputSinkKinds = [
|
|
2
|
+
'stderr-managed-primary',
|
|
3
|
+
'stderr-managed-supplemental',
|
|
4
|
+
'stdout-managed-primary',
|
|
5
|
+
'stdout-managed-supplemental'
|
|
6
|
+
];
|
|
7
|
+
const managedStandardOutputSinkKindNames = managedStandardOutputSinkKinds;
|
|
1
8
|
export class ReporterSinkConflictError extends Error {
|
|
2
9
|
constructor(message, options) {
|
|
3
10
|
super(message, options);
|
|
4
11
|
this.name = 'ReporterSinkConflictError';
|
|
5
12
|
}
|
|
6
13
|
}
|
|
7
|
-
const callbackTimeoutMs = 100;
|
|
8
|
-
function standardOutputSinkKey(sink) {
|
|
9
|
-
return `standard-output:${sink.kind}`;
|
|
10
|
-
}
|
|
11
14
|
function pathSinkKey(sink) {
|
|
12
15
|
return `path:${sink.path}`;
|
|
13
16
|
}
|
|
14
|
-
function
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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';
|
|
20
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) {
|
|
21
36
|
const updatedSinks = new Map(claimedSinks);
|
|
22
|
-
return updatedSinks.set(key,
|
|
23
|
-
|
|
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)
|
|
24
56
|
});
|
|
25
57
|
}
|
|
26
58
|
function validatePathSink(claimedSinks, sink) {
|
|
@@ -30,12 +62,16 @@ function validatePathSink(claimedSinks, sink) {
|
|
|
30
62
|
}
|
|
31
63
|
const updatedSinks = new Map(claimedSinks);
|
|
32
64
|
return updatedSinks.set(key, {
|
|
33
|
-
|
|
65
|
+
mode: 'raw',
|
|
66
|
+
role: null
|
|
34
67
|
});
|
|
35
68
|
}
|
|
36
69
|
function validateReporterSink(claimedSinks, sink) {
|
|
37
|
-
if (sink.kind === 'stdout' || sink.kind === 'stderr') {
|
|
38
|
-
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);
|
|
39
75
|
}
|
|
40
76
|
if (sink.kind === 'file' || sink.kind === 'directory') {
|
|
41
77
|
return validatePathSink(claimedSinks, sink);
|
|
@@ -50,134 +86,4 @@ export function validateReporterSinks(reporters) {
|
|
|
50
86
|
}
|
|
51
87
|
}
|
|
52
88
|
}
|
|
53
|
-
function formatReporterError(reporter, cause) {
|
|
54
|
-
const reason = cause instanceof Error ? cause.message : String(cause);
|
|
55
|
-
return {
|
|
56
|
-
attributedTo: null,
|
|
57
|
-
cause,
|
|
58
|
-
message: `${reporter.name}: ${reason}`,
|
|
59
|
-
subtype: 'reporter'
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
function timeoutError(reporter) {
|
|
63
|
-
return new Error(`${reporter.name} reporter callback timed out after ${callbackTimeoutMs} ms.`);
|
|
64
|
-
}
|
|
65
|
-
async function runReporterCallback(callback) {
|
|
66
|
-
await callback();
|
|
67
|
-
}
|
|
68
|
-
export function createReporterDispatcher(dependencies) {
|
|
69
|
-
const { wallClock } = dependencies;
|
|
70
|
-
function createReporterTimeout(reporter) {
|
|
71
|
-
const { promise, reject } = Promise.withResolvers();
|
|
72
|
-
const timeout = wallClock.setTimeout(function rejectTimedOutCallback() {
|
|
73
|
-
reject(timeoutError(reporter));
|
|
74
|
-
}, callbackTimeoutMs);
|
|
75
|
-
return {
|
|
76
|
-
cancel() {
|
|
77
|
-
wallClock.clearTimeout(timeout);
|
|
78
|
-
},
|
|
79
|
-
promise
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
async function awaitReporterCallback(reporter, callback) {
|
|
83
|
-
const reporterTimeout = createReporterTimeout(reporter);
|
|
84
|
-
try {
|
|
85
|
-
await Promise.race([runReporterCallback(callback), reporterTimeout.promise]);
|
|
86
|
-
return null;
|
|
87
|
-
}
|
|
88
|
-
catch (error) {
|
|
89
|
-
return formatReporterError(reporter, error);
|
|
90
|
-
}
|
|
91
|
-
finally {
|
|
92
|
-
reporterTimeout.cancel();
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
async function reportEventToReporter(reporter, event) {
|
|
96
|
-
const error = await awaitReporterCallback(reporter, function sendReporterEvent() {
|
|
97
|
-
return reporter.onEvent(event);
|
|
98
|
-
});
|
|
99
|
-
if (error === null) {
|
|
100
|
-
return null;
|
|
101
|
-
}
|
|
102
|
-
return { error, reporter };
|
|
103
|
-
}
|
|
104
|
-
async function reportRunnerErrorToOtherReporters(reporters, failedReporter, error) {
|
|
105
|
-
const event = { error, kind: 'runner-error' };
|
|
106
|
-
const failures = await Promise.all(reporters.map(async function reportRunnerError(reporter) {
|
|
107
|
-
if (reporter.kind !== 'real-time' || reporter === failedReporter) {
|
|
108
|
-
return null;
|
|
109
|
-
}
|
|
110
|
-
return reportEventToReporter(reporter, event);
|
|
111
|
-
}));
|
|
112
|
-
return failures.flatMap(function collectFailure(failure) {
|
|
113
|
-
return failure === null ? [] : [failure.error];
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
async function collectReporterErrorsWithNotifications(reporters, reporterErrors) {
|
|
117
|
-
const notificationErrors = await Promise.all(reporterErrors.map(async function reportError(failure) {
|
|
118
|
-
return reportRunnerErrorToOtherReporters(reporters, failure.reporter, failure.error);
|
|
119
|
-
}));
|
|
120
|
-
return [
|
|
121
|
-
...reporterErrors.map(function toError(failure) {
|
|
122
|
-
return failure.error;
|
|
123
|
-
}),
|
|
124
|
-
...notificationErrors.flat()
|
|
125
|
-
];
|
|
126
|
-
}
|
|
127
|
-
async function reportEvent(reporters, event) {
|
|
128
|
-
const failures = await Promise.all(reporters.map(async function reportRealTimeEvent(reporter) {
|
|
129
|
-
if (reporter.kind !== 'real-time') {
|
|
130
|
-
return null;
|
|
131
|
-
}
|
|
132
|
-
return reportEventToReporter(reporter, event);
|
|
133
|
-
}));
|
|
134
|
-
const reporterErrors = failures.flatMap(function collectFailure(failure) {
|
|
135
|
-
return failure === null ? [] : [failure];
|
|
136
|
-
});
|
|
137
|
-
if (event.kind === 'runner-error') {
|
|
138
|
-
return reporterErrors.map(function toError(failure) {
|
|
139
|
-
return failure.error;
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
return collectReporterErrorsWithNotifications(reporters, reporterErrors);
|
|
143
|
-
}
|
|
144
|
-
async function reportResult(reporters, result) {
|
|
145
|
-
const failures = await Promise.all(reporters.map(async function reportFinalResult(reporter) {
|
|
146
|
-
if (reporter.kind === 'final-result') {
|
|
147
|
-
const error = await awaitReporterCallback(reporter, function reportResultToFinalReporter() {
|
|
148
|
-
return reporter.onResult(result);
|
|
149
|
-
});
|
|
150
|
-
return error === null ? null : { error, reporter };
|
|
151
|
-
}
|
|
152
|
-
if (reporter.onFinish === null) {
|
|
153
|
-
return null;
|
|
154
|
-
}
|
|
155
|
-
const { onFinish } = reporter;
|
|
156
|
-
const error = await awaitReporterCallback(reporter, function reportResultToRealTimeReporter() {
|
|
157
|
-
return onFinish(result);
|
|
158
|
-
});
|
|
159
|
-
return error === null ? null : { error, reporter };
|
|
160
|
-
}));
|
|
161
|
-
const reporterErrors = failures.flatMap(function collectFailure(failure) {
|
|
162
|
-
return failure === null ? [] : [failure];
|
|
163
|
-
});
|
|
164
|
-
return collectReporterErrorsWithNotifications(reporters, reporterErrors);
|
|
165
|
-
}
|
|
166
|
-
async function disposeReporters(reporters) {
|
|
167
|
-
const failures = await Promise.all(reporters.map(async function disposeReporter(reporter) {
|
|
168
|
-
if (reporter.dispose === null) {
|
|
169
|
-
return null;
|
|
170
|
-
}
|
|
171
|
-
const { dispose } = reporter;
|
|
172
|
-
const error = await awaitReporterCallback(reporter, function disposeReporterResources() {
|
|
173
|
-
return dispose();
|
|
174
|
-
});
|
|
175
|
-
return error === null ? null : { error, reporter };
|
|
176
|
-
}));
|
|
177
|
-
return failures.flatMap(function collectFailure(failure) {
|
|
178
|
-
return failure === null ? [] : [failure.error];
|
|
179
|
-
});
|
|
180
|
-
}
|
|
181
|
-
return { disposeReporters, reportEvent, reportResult };
|
|
182
|
-
}
|
|
183
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/engine/run-result.d.ts
CHANGED
|
@@ -91,6 +91,27 @@ export type SuiteRunCounts = {
|
|
|
91
91
|
readonly executed: number;
|
|
92
92
|
readonly planned: number;
|
|
93
93
|
};
|
|
94
|
+
export type ResourceUsageSnapshot = {
|
|
95
|
+
readonly activeResourceCount: number;
|
|
96
|
+
readonly activeResourceTypes: readonly string[];
|
|
97
|
+
readonly capturedAtMilliseconds: number;
|
|
98
|
+
readonly javaScriptEngineHeapBytes: number;
|
|
99
|
+
readonly residentSetBytes: number;
|
|
100
|
+
};
|
|
101
|
+
export type RunResourceUsage = {
|
|
102
|
+
readonly activeResourceTypes: readonly string[];
|
|
103
|
+
readonly end: ResourceUsageSnapshot;
|
|
104
|
+
readonly peakActiveResourceCount: number;
|
|
105
|
+
readonly peakJavaScriptEngineHeapBytes: number;
|
|
106
|
+
readonly peakResidentSetBytes: number;
|
|
107
|
+
readonly peakResidentSetGrowthBytesPerSecond: number;
|
|
108
|
+
readonly sampleCount: number;
|
|
109
|
+
readonly start: ResourceUsageSnapshot;
|
|
110
|
+
};
|
|
111
|
+
export type RunResourceUsageTracker = {
|
|
112
|
+
readonly finish: () => RunResourceUsage;
|
|
113
|
+
readonly start: () => void;
|
|
114
|
+
};
|
|
94
115
|
export type OrphanedNode = {
|
|
95
116
|
readonly file: string | null;
|
|
96
117
|
readonly kind: 'suite' | 'table' | 'test';
|
|
@@ -101,6 +122,7 @@ export type RunResult = {
|
|
|
101
122
|
readonly bySuite: Readonly<Record<string, SuiteRunCounts>>;
|
|
102
123
|
readonly orphans: readonly OrphanedNode[];
|
|
103
124
|
readonly perTest: readonly PerTestResult[];
|
|
125
|
+
readonly resourceUsage: RunResourceUsage | null;
|
|
104
126
|
readonly runnerErrors: readonly RunnerError[];
|
|
105
127
|
readonly summary: RunSummary;
|
|
106
128
|
readonly wallTimeMs: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-result.d.ts","sourceRoot":"","sources":["../../../../source/engine/run-result.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run-result.d.ts","sourceRoot":"","sources":["../../../../source/engine/run-result.ts"],"names":[],"mappings":"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"}
|
package/engine/run-result.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-result.js","sourceRoot":"","sources":["../../../../source/engine/run-result.ts"],"names":[],"mappings":"AA6DA,MAAM,UAAU,kCAAkC,CAAC,MAAmC;IAClF,OAAO;QACH,MAAM;QACN,IAAI,EAAE,gCAAgC;QACtC,QAAQ,EAAE,sCAAsC;QAChD,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,iDAAiD;KAC7D,CAAC;AACN,CAAC;
|
|
1
|
+
{"version":3,"file":"run-result.js","sourceRoot":"","sources":["../../../../source/engine/run-result.ts"],"names":[],"mappings":"AA6DA,MAAM,UAAU,kCAAkC,CAAC,MAAmC;IAClF,OAAO;QACH,MAAM;QACN,IAAI,EAAE,gCAAgC;QACtC,QAAQ,EAAE,sCAAsC;QAChD,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,iDAAiD;KAC7D,CAAC;AACN,CAAC;AA4FD,MAAM,UAAU,kBAAkB,CAAC,OAAoB;IACnD,OAAO,OAAO,CAAC,IAAI,CAAC;AACxB,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';
|
|
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';
|
|
18
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';
|
|
@@ -33,7 +36,7 @@ export type { ArrayContainsPartialAssertionNode, MembersPartialDeepEqualAssertio
|
|
|
33
36
|
export type { DefinedAssertionNode, NotNullAssertionNode, NullAssertionNode, UndefinedAssertionNode } from '../../assertion-protocol/assertions/presence.ts';
|
|
34
37
|
export type { MatchAssertionNode, StringContainsAssertionNode } from '../../assertion-protocol/assertions/string.ts';
|
|
35
38
|
export type { HasPropertyAssertionNode, InstanceOfAssertionNode, TypeAssertionNode } from '../../assertion-protocol/assertions/type-shape.ts';
|
|
36
|
-
export type { AssertionTestFailure, BodyErrorTestFailure, FailOutcome, InconclusiveOutcome, OrphanedNode, PassOutcome, PerTestResult, RunResult, RunnerError, RunSummary, SkipOutcome, SuiteRunCounts, TestContractFailure, TestContractFailureCode, TestFailure, TestOutcome } from '../../engine/run-result.ts';
|
|
39
|
+
export type { AssertionTestFailure, BodyErrorTestFailure, FailOutcome, InconclusiveOutcome, OrphanedNode, PassOutcome, PerTestResult, ResourceUsageSnapshot, RunResourceUsage, RunResourceUsageTracker, RunResult, RunnerError, RunSummary, SkipOutcome, SuiteRunCounts, TestContractFailure, TestContractFailureCode, TestFailure, TestOutcome } from '../../engine/run-result.ts';
|
|
37
40
|
export type { AssertAssertionNode, AssertionNode, AssertionResult, CompositeAssertionChildNode, CompositeAssertionNode, ForeignAssertionNode, ForeignAssertionResult, RequireAssertionNode } from '../../assertion-protocol/assertion-node.ts';
|
|
38
41
|
export type { TestScopeAssertContext, Metadata, RootOptions, Suite, SuiteOptions, Table, TableCase, TableCaseOptions, TableOptions, TestBody, TestCase, TestCaseOptions, TestRoot, TestScope, TestNode } from '../../engine/test-node.ts';
|
|
39
42
|
export type { TestPlan, TestPlanCase, TestPlanCaseBody } from '../../engine/test-plan.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,
|
|
@@ -45,6 +55,7 @@ export async function runIfMain(meta, testNode, options) {
|
|
|
45
55
|
}
|
|
46
56
|
export { formatCaseId } from "../../engine/identity.js";
|
|
47
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"}
|
package/readme.md
CHANGED
|
@@ -14,10 +14,11 @@ Top-level API:
|
|
|
14
14
|
- `createEngine()`
|
|
15
15
|
- `formatCaseId(caseId)`
|
|
16
16
|
- `validateReporterSinks(reporters)`
|
|
17
|
+
- `createPlainOutputRenderer()`
|
|
17
18
|
- `captureSourceLocation()`
|
|
18
19
|
- `unknownSourceLocation`
|
|
19
20
|
- `CaseId`, `TestId`, `TestRoot`, `TestPlan`, `ExecuteOptions`, `RunIfMainOptions`, `NonEmptyReadonlyArray`, `DeepComparable`
|
|
20
|
-
- `Reporter`, `ReporterEvent`, `RealTimeReporter`, `FinalResultReporter`, `RunFacts`, `SinkDeclaration`
|
|
21
|
+
- `Reporter`, `ReporterEvent`, `RealTimeReporter`, `FinalResultReporter`, `RunFacts`, `SinkDeclaration`, `OutputLineIntent`, `OutputRenderer`
|
|
21
22
|
- `RunResult`, `TestOutcome`, `PassOutcome`, `FailOutcome`, `SkipOutcome`, `InconclusiveOutcome`
|
|
22
23
|
- `AssertionNode`, `AssertionResult`, `AssertAssertionFacade`, `TestScopeAssertContext`
|
|
23
24
|
- `ThrownMatcher`, `ErrorMatcher`, `ExactThrownMatcher`
|
|
@@ -93,10 +94,19 @@ Reporter lifecycle:
|
|
|
93
94
|
|
|
94
95
|
Reporter sinks:
|
|
95
96
|
|
|
96
|
-
- `stdout` and `stderr`
|
|
97
|
-
- `
|
|
97
|
+
- `stdout-raw` and `stderr-raw` own a stream directly and cannot share it.
|
|
98
|
+
- `stdout-managed-primary` and `stderr-managed-primary` return line intents
|
|
99
|
+
through the reporter callback. A stream can have one managed primary.
|
|
100
|
+
- `stdout-managed-supplemental` and `stderr-managed-supplemental` can
|
|
101
|
+
cooperate with a managed primary and other supplemental reporters.
|
|
102
|
+
- Reporters without managed stdout or stderr sinks return only `void` or
|
|
103
|
+
`Promise<void>` from reporter methods.
|
|
104
|
+
- `file` and `directory` sinks conflict on the same declared path.
|
|
105
|
+
- `stream` sinks are private to each reporter.
|
|
98
106
|
- `memory` sinks are private to each reporter.
|
|
99
107
|
- `execute()` validates declared sink conflicts before emitting `run-start`.
|
|
108
|
+
- Managed output uses one `OutputRenderer`. `createPlainOutputRenderer()`
|
|
109
|
+
renders each line intent as plain text.
|
|
100
110
|
|
|
101
111
|
Assertion bodies:
|
|
102
112
|
|
package/sbom.cdx.json
CHANGED
|
@@ -9,16 +9,16 @@
|
|
|
9
9
|
{
|
|
10
10
|
"type": "application",
|
|
11
11
|
"name": "packtory",
|
|
12
|
-
"version": "0.0.
|
|
12
|
+
"version": "0.0.92"
|
|
13
13
|
}
|
|
14
14
|
]
|
|
15
15
|
},
|
|
16
16
|
"component": {
|
|
17
17
|
"type": "library",
|
|
18
18
|
"name": "@overkill-dev/engine",
|
|
19
|
-
"version": "0.0.
|
|
20
|
-
"bom-ref": "pkg:npm/@overkill-dev/engine@0.0.
|
|
21
|
-
"purl": "pkg:npm/@overkill-dev/engine@0.0.
|
|
19
|
+
"version": "0.0.13",
|
|
20
|
+
"bom-ref": "pkg:npm/@overkill-dev/engine@0.0.13",
|
|
21
|
+
"purl": "pkg:npm/@overkill-dev/engine@0.0.13"
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
24
|
"components": [
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"ref": "pkg:npm/@enormora/wall-clock@0.0.3"
|
|
55
55
|
},
|
|
56
56
|
{
|
|
57
|
-
"ref": "pkg:npm/@overkill-dev/engine@0.0.
|
|
57
|
+
"ref": "pkg:npm/@overkill-dev/engine@0.0.13",
|
|
58
58
|
"dependsOn": [
|
|
59
59
|
"pkg:npm/@enormora/wall-clock@0.0.3",
|
|
60
60
|
"pkg:npm/diff@9.0.0"
|