supercov 0.0.0 → 0.0.2
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/bin/supercov.js +2 -5
- package/dist/analyze.d.ts +12 -0
- package/dist/analyze.d.ts.map +1 -0
- package/dist/analyze.js +699 -0
- package/dist/analyze.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +245 -0
- package/dist/cli.js.map +1 -0
- package/dist/instrumenter.d.ts +11 -0
- package/dist/instrumenter.d.ts.map +1 -0
- package/dist/instrumenter.js +940 -0
- package/dist/instrumenter.js.map +1 -0
- package/dist/integrity.d.ts +10 -0
- package/dist/integrity.d.ts.map +1 -0
- package/dist/integrity.js +153 -0
- package/dist/integrity.js.map +1 -0
- package/dist/playwright.d.ts +13 -0
- package/dist/playwright.d.ts.map +1 -0
- package/dist/playwright.js +794 -0
- package/dist/playwright.js.map +1 -0
- package/dist/playwrightReporter.d.ts +6 -0
- package/dist/playwrightReporter.d.ts.map +1 -0
- package/dist/playwrightReporter.js +40 -0
- package/dist/playwrightReporter.js.map +1 -0
- package/dist/project.d.ts +11 -0
- package/dist/project.d.ts.map +1 -0
- package/dist/project.js +112 -0
- package/dist/project.js.map +1 -0
- package/dist/provenance.d.ts +9 -0
- package/dist/provenance.d.ts.map +1 -0
- package/dist/provenance.js +51 -0
- package/dist/provenance.js.map +1 -0
- package/dist/query.d.ts +9 -0
- package/dist/query.d.ts.map +1 -0
- package/dist/query.js +911 -0
- package/dist/query.js.map +1 -0
- package/dist/queueAdapters.d.ts +15 -0
- package/dist/queueAdapters.d.ts.map +1 -0
- package/dist/queueAdapters.js +55 -0
- package/dist/queueAdapters.js.map +1 -0
- package/dist/register.d.mts +2 -0
- package/dist/register.d.mts.map +1 -0
- package/dist/register.mjs +112 -0
- package/dist/register.mjs.map +1 -0
- package/dist/reporter.d.ts +17 -0
- package/dist/reporter.d.ts.map +1 -0
- package/dist/reporter.js +311 -0
- package/dist/reporter.js.map +1 -0
- package/dist/resolve-loader.d.mts +2 -0
- package/dist/resolve-loader.d.mts.map +1 -0
- package/dist/resolve-loader.mjs +40 -0
- package/dist/resolve-loader.mjs.map +1 -0
- package/dist/runtime.d.ts +46 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +480 -0
- package/dist/runtime.js.map +1 -0
- package/dist/transport.d.ts +15 -0
- package/dist/transport.d.ts.map +1 -0
- package/dist/transport.js +100 -0
- package/dist/transport.js.map +1 -0
- package/dist/types.d.ts +353 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/vitePlugin.d.ts +8 -0
- package/dist/vitePlugin.d.ts.map +1 -0
- package/dist/vitePlugin.js +83 -0
- package/dist/vitePlugin.js.map +1 -0
- package/dist/vitest.d.ts +2 -0
- package/dist/vitest.d.ts.map +1 -0
- package/dist/vitest.js +89 -0
- package/dist/vitest.js.map +1 -0
- package/dist/vitestReporter.d.ts +28 -0
- package/dist/vitestReporter.d.ts.map +1 -0
- package/dist/vitestReporter.js +48 -0
- package/dist/vitestReporter.js.map +1 -0
- package/package.json +21 -9
- package/src/analyze.ts +0 -993
- package/src/cli.ts +0 -336
- package/src/instrumenter.ts +0 -1254
- package/src/integrity.ts +0 -187
- package/src/playwright.ts +0 -1009
- package/src/playwrightReporter.ts +0 -55
- package/src/project.ts +0 -149
- package/src/provenance.ts +0 -69
- package/src/query.ts +0 -1354
- package/src/queueAdapters.ts +0 -104
- package/src/register.mjs +0 -123
- package/src/reporter.ts +0 -431
- package/src/resolve-loader.mjs +0 -45
- package/src/runtime.ts +0 -656
- package/src/transport.ts +0 -132
- package/src/types.ts +0 -412
- package/src/vitePlugin.ts +0 -121
- package/src/vitest.ts +0 -101
- package/src/vitestReporter.ts +0 -72
package/dist/runtime.js
ADDED
|
@@ -0,0 +1,480 @@
|
|
|
1
|
+
import { backgroundEvidenceDirectory, backgroundEvidencePath, COVERAGE_CARRIER_ENV, COVERAGE_PHASE_HEADER, COVERAGE_SCOPE_HEADER, decodeCoverageCarrier, decodeCoverageScope, encodeCoverageCarrier, encodeCoverageScope, serverEvidenceDirectory, serverEvidencePath, } from "./transport.js";
|
|
2
|
+
const runtimeGlobal = globalThis;
|
|
3
|
+
const isBrowser = !(typeof process !== "undefined" &&
|
|
4
|
+
typeof process.versions?.node === "string");
|
|
5
|
+
const testId = runtimeGlobal.__SUPERCOV_MCDC_TEST_ID__ ?? "unscoped";
|
|
6
|
+
const storageKey = "__supercov_coverage_" + testId;
|
|
7
|
+
const phaseStorageKey = "__supercov_phase";
|
|
8
|
+
const pendingDefaults = new Map();
|
|
9
|
+
function vectorKey(vector) {
|
|
10
|
+
return (vector.values
|
|
11
|
+
.map((value) => (value === null ? "-" : value ? "T" : "F"))
|
|
12
|
+
.join("") +
|
|
13
|
+
":" +
|
|
14
|
+
(vector.outcome ? "T" : "F"));
|
|
15
|
+
}
|
|
16
|
+
function getFs() {
|
|
17
|
+
if (isBrowser || typeof process === "undefined")
|
|
18
|
+
return undefined;
|
|
19
|
+
try {
|
|
20
|
+
const getBuiltinModule = process.getBuiltinModule;
|
|
21
|
+
return getBuiltinModule?.("node:fs");
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function createState() {
|
|
28
|
+
const state = {
|
|
29
|
+
decisions: new Map(),
|
|
30
|
+
hits: new Set(),
|
|
31
|
+
events: [],
|
|
32
|
+
eventKeys: new Set(),
|
|
33
|
+
};
|
|
34
|
+
if (!isBrowser)
|
|
35
|
+
return state;
|
|
36
|
+
try {
|
|
37
|
+
const stored = JSON.parse(localStorage.getItem(storageKey) ?? "{}");
|
|
38
|
+
for (const snapshot of stored.decisions ?? []) {
|
|
39
|
+
state.decisions.set(snapshot.meta.id, {
|
|
40
|
+
meta: snapshot.meta,
|
|
41
|
+
vectors: new Map(snapshot.vectors.map((vector) => [vectorKey(vector), vector])),
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
for (const id of stored.hits ?? [])
|
|
45
|
+
state.hits.add(id);
|
|
46
|
+
for (const event of stored.events ?? []) {
|
|
47
|
+
state.events.push(event);
|
|
48
|
+
state.eventKeys.add(eventKey(event));
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
// Corrupt or unavailable storage must not affect application execution.
|
|
53
|
+
}
|
|
54
|
+
return state;
|
|
55
|
+
}
|
|
56
|
+
const state = runtimeGlobal.__SUPERCOV_MCDC_STATE__ ?? createState();
|
|
57
|
+
runtimeGlobal.__SUPERCOV_MCDC_STATE__ = state;
|
|
58
|
+
function createServerPhaseStorage() {
|
|
59
|
+
if (isBrowser || typeof process === "undefined")
|
|
60
|
+
return undefined;
|
|
61
|
+
try {
|
|
62
|
+
const getBuiltinModule = process.getBuiltinModule;
|
|
63
|
+
const AsyncLocalStorage = getBuiltinModule?.("node:async_hooks")?.AsyncLocalStorage;
|
|
64
|
+
return AsyncLocalStorage ? new AsyncLocalStorage() : undefined;
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
const serverPhaseStorage = runtimeGlobal.__SUPERCOV_SERVER_PHASE_STORAGE__ ??
|
|
71
|
+
createServerPhaseStorage();
|
|
72
|
+
if (serverPhaseStorage)
|
|
73
|
+
runtimeGlobal.__SUPERCOV_SERVER_PHASE_STORAGE__ =
|
|
74
|
+
serverPhaseStorage;
|
|
75
|
+
function decisionSnapshot() {
|
|
76
|
+
return [...state.decisions.values()].map((decision) => ({
|
|
77
|
+
meta: decision.meta,
|
|
78
|
+
vectors: [...decision.vectors.values()],
|
|
79
|
+
}));
|
|
80
|
+
}
|
|
81
|
+
export function coverageSnapshot() {
|
|
82
|
+
return {
|
|
83
|
+
decisions: decisionSnapshot(),
|
|
84
|
+
hits: [...state.hits],
|
|
85
|
+
events: state.events,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
export function resetCoverage(testId) {
|
|
89
|
+
state.decisions.clear();
|
|
90
|
+
state.hits.clear();
|
|
91
|
+
state.events.length = 0;
|
|
92
|
+
state.eventKeys.clear();
|
|
93
|
+
if (testId)
|
|
94
|
+
runtimeGlobal.__SUPERCOV_MCDC_TEST_ID__ = testId;
|
|
95
|
+
if (isBrowser) {
|
|
96
|
+
try {
|
|
97
|
+
localStorage.removeItem(storageKey);
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
// Storage is optional in test environments.
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
runtimeGlobal.__SUPERCOV_MCDC_SNAPSHOT__ = decisionSnapshot;
|
|
105
|
+
runtimeGlobal.__SUPERCOV_COVERAGE_SNAPSHOT__ = coverageSnapshot;
|
|
106
|
+
runtimeGlobal.__SUPERCOV_RESET__ = resetCoverage;
|
|
107
|
+
function persistBrowser() {
|
|
108
|
+
if (!isBrowser)
|
|
109
|
+
return;
|
|
110
|
+
try {
|
|
111
|
+
localStorage.setItem(storageKey, JSON.stringify(coverageSnapshot()));
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
// Coverage persistence is best-effort and must never change app behavior.
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
function appendServer(record) {
|
|
118
|
+
const fs = getFs();
|
|
119
|
+
if (!fs)
|
|
120
|
+
return;
|
|
121
|
+
const context = currentRequestContext();
|
|
122
|
+
const scope = context.scope;
|
|
123
|
+
const runId = scope?.runId ??
|
|
124
|
+
(typeof process !== "undefined"
|
|
125
|
+
? process.env["SUPERCOV_RUN_ID"]
|
|
126
|
+
: undefined);
|
|
127
|
+
if (!runId)
|
|
128
|
+
return;
|
|
129
|
+
try {
|
|
130
|
+
const directory = scope
|
|
131
|
+
? serverEvidenceDirectory(scope)
|
|
132
|
+
: backgroundEvidenceDirectory(runId);
|
|
133
|
+
const path = scope
|
|
134
|
+
? serverEvidencePath(scope)
|
|
135
|
+
: backgroundEvidencePath(runId);
|
|
136
|
+
fs.mkdirSync(directory, { recursive: true });
|
|
137
|
+
fs.appendFileSync(path, JSON.stringify({ ...record, ...(scope ? { scope } : {}) }) + "\n");
|
|
138
|
+
}
|
|
139
|
+
catch {
|
|
140
|
+
// The instrumented build must remain behaviorally identical if collection fails.
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
function environmentRequestContext() {
|
|
144
|
+
if (isBrowser || typeof process === "undefined")
|
|
145
|
+
return undefined;
|
|
146
|
+
const carrier = decodeCoverageCarrier(process.env[COVERAGE_CARRIER_ENV]);
|
|
147
|
+
return carrier
|
|
148
|
+
? {
|
|
149
|
+
...(carrier.scope ? { scope: carrier.scope } : {}),
|
|
150
|
+
...(carrier.phaseId ? { phaseId: carrier.phaseId } : {}),
|
|
151
|
+
}
|
|
152
|
+
: undefined;
|
|
153
|
+
}
|
|
154
|
+
function currentRequestContext() {
|
|
155
|
+
return serverPhaseStorage?.getStore() ?? environmentRequestContext() ?? {};
|
|
156
|
+
}
|
|
157
|
+
export function coverageCarrier() {
|
|
158
|
+
const context = currentRequestContext();
|
|
159
|
+
return {
|
|
160
|
+
version: 1,
|
|
161
|
+
...(context.scope ? { scope: context.scope } : {}),
|
|
162
|
+
...(context.phaseId ? { phaseId: context.phaseId } : {}),
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
export function withCoverageCarrier(carrier, callback) {
|
|
166
|
+
const decoded = typeof carrier === "string" ? decodeCoverageCarrier(carrier) : carrier;
|
|
167
|
+
if (!serverPhaseStorage || !decoded)
|
|
168
|
+
return callback();
|
|
169
|
+
return serverPhaseStorage.run({
|
|
170
|
+
...(decoded.scope ? { scope: decoded.scope } : {}),
|
|
171
|
+
...(decoded.phaseId ? { phaseId: decoded.phaseId } : {}),
|
|
172
|
+
}, callback);
|
|
173
|
+
}
|
|
174
|
+
export function bindCoverageContext(callback, carrier = coverageCarrier()) {
|
|
175
|
+
return function boundCoverageContext(...args) {
|
|
176
|
+
return withCoverageCarrier(carrier, () => Reflect.apply(callback, this, args));
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
export function coverageContextHeaders() {
|
|
180
|
+
const context = currentRequestContext();
|
|
181
|
+
if (!context.scope)
|
|
182
|
+
return {};
|
|
183
|
+
return {
|
|
184
|
+
[COVERAGE_SCOPE_HEADER]: encodeCoverageScope(context.scope),
|
|
185
|
+
...(context.phaseId
|
|
186
|
+
? { [COVERAGE_PHASE_HEADER]: context.phaseId }
|
|
187
|
+
: {}),
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
export function coverageContextEnvironment() {
|
|
191
|
+
return { [COVERAGE_CARRIER_ENV]: encodeCoverageCarrier(coverageCarrier()) };
|
|
192
|
+
}
|
|
193
|
+
function installServerFetchPropagation() {
|
|
194
|
+
if (isBrowser ||
|
|
195
|
+
runtimeGlobal.__SUPERCOV_FETCH_PATCHED__ ||
|
|
196
|
+
typeof globalThis.fetch !== "function")
|
|
197
|
+
return;
|
|
198
|
+
const originalFetch = globalThis.fetch.bind(globalThis);
|
|
199
|
+
globalThis.fetch = ((input, init) => {
|
|
200
|
+
const coverage = coverageContextHeaders();
|
|
201
|
+
if (Object.keys(coverage).length === 0)
|
|
202
|
+
return originalFetch(input, init);
|
|
203
|
+
const headers = new Headers(init?.headers ?? (input instanceof Request ? input.headers : undefined));
|
|
204
|
+
for (const [name, value] of Object.entries(coverage))
|
|
205
|
+
headers.set(name, value);
|
|
206
|
+
return originalFetch(input, { ...init, headers });
|
|
207
|
+
});
|
|
208
|
+
runtimeGlobal.__SUPERCOV_FETCH_PATCHED__ = true;
|
|
209
|
+
}
|
|
210
|
+
installServerFetchPropagation();
|
|
211
|
+
function installServerChildPropagation() {
|
|
212
|
+
if (isBrowser ||
|
|
213
|
+
runtimeGlobal.__SUPERCOV_CHILD_PATCHED__ ||
|
|
214
|
+
typeof process === "undefined")
|
|
215
|
+
return;
|
|
216
|
+
const getBuiltinModule = process.getBuiltinModule;
|
|
217
|
+
const child = getBuiltinModule?.("node:child_process");
|
|
218
|
+
if (!child)
|
|
219
|
+
return;
|
|
220
|
+
const mutableChild = child;
|
|
221
|
+
const optionIndex = (method, args) => {
|
|
222
|
+
if (method === "spawn" ||
|
|
223
|
+
method === "spawnSync" ||
|
|
224
|
+
method === "fork" ||
|
|
225
|
+
method === "execFile" ||
|
|
226
|
+
method === "execFileSync")
|
|
227
|
+
return Array.isArray(args[1]) ? 2 : 1;
|
|
228
|
+
return 1;
|
|
229
|
+
};
|
|
230
|
+
for (const method of [
|
|
231
|
+
"exec",
|
|
232
|
+
"execFile",
|
|
233
|
+
"execFileSync",
|
|
234
|
+
"execSync",
|
|
235
|
+
"fork",
|
|
236
|
+
"spawn",
|
|
237
|
+
"spawnSync",
|
|
238
|
+
]) {
|
|
239
|
+
const original = mutableChild[method];
|
|
240
|
+
if (typeof original !== "function")
|
|
241
|
+
continue;
|
|
242
|
+
mutableChild[method] = function (...args) {
|
|
243
|
+
const index = optionIndex(method, args);
|
|
244
|
+
const existing = args[index] && typeof args[index] === "object"
|
|
245
|
+
? args[index]
|
|
246
|
+
: {};
|
|
247
|
+
const options = {
|
|
248
|
+
...existing,
|
|
249
|
+
env: {
|
|
250
|
+
...process.env,
|
|
251
|
+
...(existing.env ?? {}),
|
|
252
|
+
...coverageContextEnvironment(),
|
|
253
|
+
},
|
|
254
|
+
};
|
|
255
|
+
const scoped = [...args];
|
|
256
|
+
if (typeof scoped[index] === "function")
|
|
257
|
+
scoped.splice(index, 0, options);
|
|
258
|
+
else
|
|
259
|
+
scoped[index] = options;
|
|
260
|
+
return Reflect.apply(original, child, scoped);
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
const moduleBuiltin = getBuiltinModule?.("node:module");
|
|
264
|
+
moduleBuiltin?.syncBuiltinESMExports?.();
|
|
265
|
+
runtimeGlobal.__SUPERCOV_CHILD_PATCHED__ = true;
|
|
266
|
+
}
|
|
267
|
+
installServerChildPropagation();
|
|
268
|
+
function currentPhaseId() {
|
|
269
|
+
if (runtimeGlobal.__SUPERCOV_PHASE_ID__)
|
|
270
|
+
return runtimeGlobal.__SUPERCOV_PHASE_ID__;
|
|
271
|
+
if (!isBrowser)
|
|
272
|
+
return currentRequestContext().phaseId;
|
|
273
|
+
try {
|
|
274
|
+
const local = localStorage.getItem(phaseStorageKey);
|
|
275
|
+
if (local)
|
|
276
|
+
return local;
|
|
277
|
+
return undefined;
|
|
278
|
+
}
|
|
279
|
+
catch {
|
|
280
|
+
return undefined;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
function requestHeaders(value) {
|
|
284
|
+
if (!value || typeof value !== "object")
|
|
285
|
+
return undefined;
|
|
286
|
+
const directHeaders = value.headers;
|
|
287
|
+
const request = directHeaders && typeof directHeaders === "object"
|
|
288
|
+
? value
|
|
289
|
+
: value.request;
|
|
290
|
+
if (!request || typeof request !== "object")
|
|
291
|
+
return undefined;
|
|
292
|
+
const headers = request.headers;
|
|
293
|
+
if (!headers || typeof headers !== "object")
|
|
294
|
+
return undefined;
|
|
295
|
+
const get = headers.get;
|
|
296
|
+
if (typeof get === "function")
|
|
297
|
+
return {
|
|
298
|
+
get(name) {
|
|
299
|
+
return Reflect.apply(get, headers, [name]);
|
|
300
|
+
},
|
|
301
|
+
};
|
|
302
|
+
const values = headers;
|
|
303
|
+
return Object.keys(values).length > 0
|
|
304
|
+
? {
|
|
305
|
+
get(name) {
|
|
306
|
+
return values[name] ?? values[name.toLowerCase()];
|
|
307
|
+
},
|
|
308
|
+
}
|
|
309
|
+
: undefined;
|
|
310
|
+
}
|
|
311
|
+
function requestCoverageContext(value) {
|
|
312
|
+
const headers = requestHeaders(value);
|
|
313
|
+
if (!headers)
|
|
314
|
+
return {};
|
|
315
|
+
const encodedScope = headers.get(COVERAGE_SCOPE_HEADER);
|
|
316
|
+
const rawPhaseId = headers.get(COVERAGE_PHASE_HEADER);
|
|
317
|
+
const scope = decodeCoverageScope(typeof encodedScope === "string" ? encodedScope : undefined);
|
|
318
|
+
const phaseId = typeof rawPhaseId === "string" && rawPhaseId.length > 0
|
|
319
|
+
? rawPhaseId
|
|
320
|
+
: undefined;
|
|
321
|
+
return {
|
|
322
|
+
...(scope ? { scope } : {}),
|
|
323
|
+
...(phaseId ? { phaseId } : {}),
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
export function withRequestPhase(handler) {
|
|
327
|
+
if (!serverPhaseStorage)
|
|
328
|
+
return handler;
|
|
329
|
+
return function coverageRequestPhase(...args) {
|
|
330
|
+
const requestContext = args
|
|
331
|
+
.map((argument) => requestCoverageContext(argument))
|
|
332
|
+
.find((context) => context.scope || context.phaseId) ?? {};
|
|
333
|
+
const inheritedContext = currentRequestContext();
|
|
334
|
+
const context = {
|
|
335
|
+
...(requestContext.scope ?? inheritedContext.scope
|
|
336
|
+
? { scope: requestContext.scope ?? inheritedContext.scope }
|
|
337
|
+
: {}),
|
|
338
|
+
...(requestContext.phaseId ?? inheritedContext.phaseId
|
|
339
|
+
? { phaseId: requestContext.phaseId ?? inheritedContext.phaseId }
|
|
340
|
+
: {}),
|
|
341
|
+
};
|
|
342
|
+
const invoke = () => Reflect.apply(handler, this, args);
|
|
343
|
+
return context.scope || context.phaseId
|
|
344
|
+
? serverPhaseStorage.run(context, invoke)
|
|
345
|
+
: invoke();
|
|
346
|
+
};
|
|
347
|
+
}
|
|
348
|
+
function eventKey(event) {
|
|
349
|
+
const suffix = event.type === "decision"
|
|
350
|
+
? `${event.id}:${vectorKey(event.vector)}`
|
|
351
|
+
: event.id;
|
|
352
|
+
return `${event.phaseId ?? "unscoped"}:${event.type}:${suffix}`;
|
|
353
|
+
}
|
|
354
|
+
function recordBrowserEvent(event) {
|
|
355
|
+
const key = eventKey(event);
|
|
356
|
+
if (state.eventKeys.has(key))
|
|
357
|
+
return false;
|
|
358
|
+
state.eventKeys.add(key);
|
|
359
|
+
state.events.push(event);
|
|
360
|
+
return true;
|
|
361
|
+
}
|
|
362
|
+
export function coverageHit(id) {
|
|
363
|
+
state.hits.add(id);
|
|
364
|
+
const timestampMs = Date.now();
|
|
365
|
+
const phaseId = currentPhaseId();
|
|
366
|
+
if (isBrowser) {
|
|
367
|
+
if (recordBrowserEvent({
|
|
368
|
+
type: "hit",
|
|
369
|
+
id,
|
|
370
|
+
timestampMs,
|
|
371
|
+
...(phaseId ? { phaseId } : {}),
|
|
372
|
+
environment: "browser",
|
|
373
|
+
}))
|
|
374
|
+
persistBrowser();
|
|
375
|
+
}
|
|
376
|
+
else {
|
|
377
|
+
// The server process cannot directly see the browser's active phase.
|
|
378
|
+
// Keep repeated executions and correlate them to phase time windows in
|
|
379
|
+
// the analyzer; global first-hit de-duplication would lose later actions.
|
|
380
|
+
appendServer({
|
|
381
|
+
type: "hit",
|
|
382
|
+
id,
|
|
383
|
+
timestampMs,
|
|
384
|
+
...(phaseId ? { phaseId } : {}),
|
|
385
|
+
});
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
export function selectionBegin(shortId, rightId) {
|
|
389
|
+
return { shortId, rightId, rightEvaluated: false };
|
|
390
|
+
}
|
|
391
|
+
export function selectionRight(frame, value) {
|
|
392
|
+
frame.rightEvaluated = true;
|
|
393
|
+
return value;
|
|
394
|
+
}
|
|
395
|
+
export function selectionEnd(frame, value) {
|
|
396
|
+
coverageHit(frame.rightEvaluated ? frame.rightId : frame.shortId);
|
|
397
|
+
return value;
|
|
398
|
+
}
|
|
399
|
+
export function optionalSelect(shortId, continuedId, value) {
|
|
400
|
+
coverageHit(value === null || value === undefined ? shortId : continuedId);
|
|
401
|
+
return value;
|
|
402
|
+
}
|
|
403
|
+
export function defaultSelected(defaultId, value) {
|
|
404
|
+
pendingDefaults.set(defaultId, (pendingDefaults.get(defaultId) ?? 0) + 1);
|
|
405
|
+
return value;
|
|
406
|
+
}
|
|
407
|
+
export function defaultEntered(defaultId, providedId) {
|
|
408
|
+
const pending = pendingDefaults.get(defaultId) ?? 0;
|
|
409
|
+
if (pending > 0) {
|
|
410
|
+
pendingDefaults.set(defaultId, pending - 1);
|
|
411
|
+
coverageHit(defaultId);
|
|
412
|
+
}
|
|
413
|
+
else {
|
|
414
|
+
coverageHit(providedId);
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
export function tryBegin(successId, catchId) {
|
|
418
|
+
return { successId, catchId, caught: false };
|
|
419
|
+
}
|
|
420
|
+
export function tryCatch(frame, value) {
|
|
421
|
+
frame.caught = true;
|
|
422
|
+
return value;
|
|
423
|
+
}
|
|
424
|
+
export function tryEnd(frame) {
|
|
425
|
+
coverageHit(frame.caught ? frame.catchId : frame.successId);
|
|
426
|
+
}
|
|
427
|
+
export function loopBegin(zeroId, enteredId) {
|
|
428
|
+
return { zeroId, enteredId, entered: false };
|
|
429
|
+
}
|
|
430
|
+
export function loopEntered(frame) {
|
|
431
|
+
frame.entered = true;
|
|
432
|
+
}
|
|
433
|
+
export function loopEnd(frame) {
|
|
434
|
+
coverageHit(frame.entered ? frame.enteredId : frame.zeroId);
|
|
435
|
+
}
|
|
436
|
+
export function mcdcBegin(id, meta) {
|
|
437
|
+
if (!state.decisions.has(id)) {
|
|
438
|
+
state.decisions.set(id, { meta, vectors: new Map() });
|
|
439
|
+
}
|
|
440
|
+
return {
|
|
441
|
+
meta,
|
|
442
|
+
values: Array.from({ length: meta.conditions.length }, () => null),
|
|
443
|
+
};
|
|
444
|
+
}
|
|
445
|
+
export function mcdcCondition(frame, index, value) {
|
|
446
|
+
frame.values[index] = Boolean(value);
|
|
447
|
+
return value;
|
|
448
|
+
}
|
|
449
|
+
export function mcdcEnd(frame, value) {
|
|
450
|
+
const decision = state.decisions.get(frame.meta.id);
|
|
451
|
+
if (!decision)
|
|
452
|
+
return value;
|
|
453
|
+
const vector = { values: frame.values, outcome: Boolean(value) };
|
|
454
|
+
const key = vectorKey(vector);
|
|
455
|
+
decision.vectors.set(key, vector);
|
|
456
|
+
const timestampMs = Date.now();
|
|
457
|
+
const phaseId = currentPhaseId();
|
|
458
|
+
if (isBrowser) {
|
|
459
|
+
if (recordBrowserEvent({
|
|
460
|
+
type: "decision",
|
|
461
|
+
id: decision.meta.id,
|
|
462
|
+
vector,
|
|
463
|
+
timestampMs,
|
|
464
|
+
...(phaseId ? { phaseId } : {}),
|
|
465
|
+
environment: "browser",
|
|
466
|
+
}))
|
|
467
|
+
persistBrowser();
|
|
468
|
+
}
|
|
469
|
+
else {
|
|
470
|
+
appendServer({
|
|
471
|
+
type: "decision",
|
|
472
|
+
meta: decision.meta,
|
|
473
|
+
vector,
|
|
474
|
+
timestampMs,
|
|
475
|
+
...(phaseId ? { phaseId } : {}),
|
|
476
|
+
});
|
|
477
|
+
}
|
|
478
|
+
return value;
|
|
479
|
+
}
|
|
480
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { CoverageCarrier, CoverageExecutionScope } from "./types.ts";
|
|
2
|
+
export declare const COVERAGE_SCOPE_HEADER = "x-supercov-scope";
|
|
3
|
+
export declare const COVERAGE_PHASE_HEADER = "x-supercov-phase";
|
|
4
|
+
export declare const COVERAGE_CARRIER_ENV = "SUPERCOV_CONTEXT";
|
|
5
|
+
export declare const DEFAULT_SERVER_EVIDENCE_ROOT = "/tmp/supercov-server-evidence";
|
|
6
|
+
export declare function encodeCoverageScope(scope: CoverageExecutionScope): string;
|
|
7
|
+
export declare function decodeCoverageScope(encoded: string | undefined): CoverageExecutionScope | undefined;
|
|
8
|
+
export declare function encodeCoverageCarrier(carrier: CoverageCarrier): string;
|
|
9
|
+
export declare function decodeCoverageCarrier(encoded: string | undefined): CoverageCarrier | undefined;
|
|
10
|
+
export declare function serverRunEvidenceDirectory(runId: string, root?: string): string;
|
|
11
|
+
export declare function serverEvidenceDirectory(scope: CoverageExecutionScope, root?: string): string;
|
|
12
|
+
export declare function serverEvidencePath(scope: CoverageExecutionScope, root?: string): string;
|
|
13
|
+
export declare function backgroundEvidenceDirectory(runId: string, root?: string): string;
|
|
14
|
+
export declare function backgroundEvidencePath(runId: string, processId?: string, root?: string): string;
|
|
15
|
+
//# sourceMappingURL=transport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAE1E,eAAO,MAAM,qBAAqB,qBAAqB,CAAC;AACxD,eAAO,MAAM,qBAAqB,qBAAqB,CAAC;AACxD,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AACvD,eAAO,MAAM,4BAA4B,kCACR,CAAC;AAelC,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,CAUzE;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,sBAAsB,GAAG,SAAS,CAmCpC;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAEtE;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,eAAe,GAAG,SAAS,CAiB7B;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,MAAM,EACb,IAAI,SAA+B,GAClC,MAAM,CAER;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,sBAAsB,EAC7B,IAAI,SAA+B,GAClC,MAAM,CAER;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,sBAAsB,EAC7B,IAAI,SAA+B,GAClC,MAAM,CAER;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,MAAM,EACb,IAAI,SAA+B,GAClC,MAAM,CAER;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,SAAS,SAAmE,EAC5E,IAAI,SAA+B,GAClC,MAAM,CAER"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
export const COVERAGE_SCOPE_HEADER = "x-supercov-scope";
|
|
2
|
+
export const COVERAGE_PHASE_HEADER = "x-supercov-phase";
|
|
3
|
+
export const COVERAGE_CARRIER_ENV = "SUPERCOV_CONTEXT";
|
|
4
|
+
export const DEFAULT_SERVER_EVIDENCE_ROOT = "/tmp/supercov-server-evidence";
|
|
5
|
+
function nonEmpty(value) {
|
|
6
|
+
return typeof value === "string" && value.length > 0;
|
|
7
|
+
}
|
|
8
|
+
function safeKey(value) {
|
|
9
|
+
return /^[a-zA-Z0-9_-]+$/.test(value);
|
|
10
|
+
}
|
|
11
|
+
function pathComponent(value) {
|
|
12
|
+
const safe = value.replace(/[^a-zA-Z0-9_-]/g, "_");
|
|
13
|
+
return safe || "unscoped";
|
|
14
|
+
}
|
|
15
|
+
export function encodeCoverageScope(scope) {
|
|
16
|
+
return new URLSearchParams({
|
|
17
|
+
v: String(scope.version),
|
|
18
|
+
r: scope.runId,
|
|
19
|
+
w: scope.workerId,
|
|
20
|
+
t: scope.testId,
|
|
21
|
+
k: scope.testKey,
|
|
22
|
+
a: String(scope.retry),
|
|
23
|
+
i: scope.attemptId,
|
|
24
|
+
}).toString();
|
|
25
|
+
}
|
|
26
|
+
export function decodeCoverageScope(encoded) {
|
|
27
|
+
if (!encoded)
|
|
28
|
+
return undefined;
|
|
29
|
+
try {
|
|
30
|
+
const values = new URLSearchParams(encoded);
|
|
31
|
+
const runId = values.get("r");
|
|
32
|
+
const workerId = values.get("w");
|
|
33
|
+
const testId = values.get("t");
|
|
34
|
+
const testKey = values.get("k");
|
|
35
|
+
const attemptId = values.get("i");
|
|
36
|
+
const retry = Number(values.get("a"));
|
|
37
|
+
if (values.get("v") !== "1" ||
|
|
38
|
+
!nonEmpty(runId) ||
|
|
39
|
+
!nonEmpty(workerId) ||
|
|
40
|
+
!nonEmpty(testId) ||
|
|
41
|
+
!nonEmpty(testKey) ||
|
|
42
|
+
!safeKey(testKey) ||
|
|
43
|
+
!nonEmpty(attemptId) ||
|
|
44
|
+
!safeKey(attemptId) ||
|
|
45
|
+
!Number.isSafeInteger(retry) ||
|
|
46
|
+
retry < 0)
|
|
47
|
+
return undefined;
|
|
48
|
+
return {
|
|
49
|
+
version: 1,
|
|
50
|
+
runId,
|
|
51
|
+
workerId,
|
|
52
|
+
testId,
|
|
53
|
+
testKey,
|
|
54
|
+
retry,
|
|
55
|
+
attemptId,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
return undefined;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
export function encodeCoverageCarrier(carrier) {
|
|
63
|
+
return Buffer.from(JSON.stringify(carrier), "utf8").toString("base64url");
|
|
64
|
+
}
|
|
65
|
+
export function decodeCoverageCarrier(encoded) {
|
|
66
|
+
if (!encoded)
|
|
67
|
+
return undefined;
|
|
68
|
+
try {
|
|
69
|
+
const value = JSON.parse(Buffer.from(encoded, "base64url").toString("utf8"));
|
|
70
|
+
if (value.version !== 1)
|
|
71
|
+
return undefined;
|
|
72
|
+
if (value.scope) {
|
|
73
|
+
const roundTrip = decodeCoverageScope(encodeCoverageScope(value.scope));
|
|
74
|
+
if (!roundTrip)
|
|
75
|
+
return undefined;
|
|
76
|
+
}
|
|
77
|
+
if (value.phaseId !== undefined && value.phaseId.length === 0)
|
|
78
|
+
return undefined;
|
|
79
|
+
return value;
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
return undefined;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
export function serverRunEvidenceDirectory(runId, root = DEFAULT_SERVER_EVIDENCE_ROOT) {
|
|
86
|
+
return `${root.replace(/\/+$/, "")}/${pathComponent(runId)}`;
|
|
87
|
+
}
|
|
88
|
+
export function serverEvidenceDirectory(scope, root = DEFAULT_SERVER_EVIDENCE_ROOT) {
|
|
89
|
+
return `${serverRunEvidenceDirectory(scope.runId, root)}/${pathComponent(scope.workerId)}/${scope.testKey}/${scope.retry}`;
|
|
90
|
+
}
|
|
91
|
+
export function serverEvidencePath(scope, root = DEFAULT_SERVER_EVIDENCE_ROOT) {
|
|
92
|
+
return `${serverEvidenceDirectory(scope, root)}/server.jsonl`;
|
|
93
|
+
}
|
|
94
|
+
export function backgroundEvidenceDirectory(runId, root = DEFAULT_SERVER_EVIDENCE_ROOT) {
|
|
95
|
+
return `${serverRunEvidenceDirectory(runId, root)}/background`;
|
|
96
|
+
}
|
|
97
|
+
export function backgroundEvidencePath(runId, processId = typeof process === "undefined" ? "unknown" : String(process.pid), root = DEFAULT_SERVER_EVIDENCE_ROOT) {
|
|
98
|
+
return `${backgroundEvidenceDirectory(runId, root)}/${pathComponent(processId)}.jsonl`;
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
|