supercov 0.0.3 → 0.0.5

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.
Files changed (89) hide show
  1. package/README.md +132 -76
  2. package/dist/analyze.d.ts.map +1 -1
  3. package/dist/analyze.js +1 -0
  4. package/dist/analyze.js.map +1 -1
  5. package/dist/buildCache.d.ts +14 -0
  6. package/dist/buildCache.d.ts.map +1 -0
  7. package/dist/buildCache.js +84 -0
  8. package/dist/buildCache.js.map +1 -0
  9. package/dist/cli.js +213 -26
  10. package/dist/cli.js.map +1 -1
  11. package/dist/directInstrumenter.d.ts +2 -2
  12. package/dist/directInstrumenter.d.ts.map +1 -1
  13. package/dist/directInstrumenter.js +18 -20
  14. package/dist/directInstrumenter.js.map +1 -1
  15. package/dist/esmInterceptor.d.ts +6 -0
  16. package/dist/esmInterceptor.d.ts.map +1 -0
  17. package/dist/esmInterceptor.js +63 -0
  18. package/dist/esmInterceptor.js.map +1 -0
  19. package/dist/evidenceArchive.d.ts +37 -0
  20. package/dist/evidenceArchive.d.ts.map +1 -0
  21. package/dist/evidenceArchive.js +110 -0
  22. package/dist/evidenceArchive.js.map +1 -0
  23. package/dist/instrumenter.d.ts.map +1 -1
  24. package/dist/instrumenter.js +10 -6
  25. package/dist/instrumenter.js.map +1 -1
  26. package/dist/integrity.d.ts.map +1 -1
  27. package/dist/integrity.js +3 -3
  28. package/dist/integrity.js.map +1 -1
  29. package/dist/launchSupervisor.d.ts +6 -0
  30. package/dist/launchSupervisor.d.ts.map +1 -1
  31. package/dist/launchSupervisor.js +78 -4
  32. package/dist/launchSupervisor.js.map +1 -1
  33. package/dist/merge.d.ts +2 -0
  34. package/dist/merge.d.ts.map +1 -0
  35. package/dist/merge.js +116 -0
  36. package/dist/merge.js.map +1 -0
  37. package/dist/nodeTest.d.ts +15 -0
  38. package/dist/nodeTest.d.ts.map +1 -0
  39. package/dist/nodeTest.js +121 -0
  40. package/dist/nodeTest.js.map +1 -0
  41. package/dist/project.d.ts +6 -1
  42. package/dist/project.d.ts.map +1 -1
  43. package/dist/project.js +26 -8
  44. package/dist/project.js.map +1 -1
  45. package/dist/query.d.ts +25 -0
  46. package/dist/query.d.ts.map +1 -1
  47. package/dist/query.js +280 -21
  48. package/dist/query.js.map +1 -1
  49. package/dist/register.mjs +40 -0
  50. package/dist/register.mjs.map +1 -1
  51. package/dist/reporter.d.ts +6 -13
  52. package/dist/reporter.d.ts.map +1 -1
  53. package/dist/reporter.js +21 -82
  54. package/dist/reporter.js.map +1 -1
  55. package/dist/resolve-loader.d.mts +1 -0
  56. package/dist/resolve-loader.d.mts.map +1 -1
  57. package/dist/resolve-loader.mjs +43 -0
  58. package/dist/resolve-loader.mjs.map +1 -1
  59. package/dist/runAnalysis.d.ts +19 -0
  60. package/dist/runAnalysis.d.ts.map +1 -0
  61. package/dist/runAnalysis.js +130 -0
  62. package/dist/runAnalysis.js.map +1 -0
  63. package/dist/runnerEvidence.d.ts +19 -0
  64. package/dist/runnerEvidence.d.ts.map +1 -0
  65. package/dist/runnerEvidence.js +93 -0
  66. package/dist/runnerEvidence.js.map +1 -0
  67. package/dist/runtime.d.ts.map +1 -1
  68. package/dist/runtime.js +3 -1
  69. package/dist/runtime.js.map +1 -1
  70. package/dist/sourceDiscovery.d.ts +9 -0
  71. package/dist/sourceDiscovery.d.ts.map +1 -0
  72. package/dist/sourceDiscovery.js +227 -0
  73. package/dist/sourceDiscovery.js.map +1 -0
  74. package/dist/transport.d.ts.map +1 -1
  75. package/dist/transport.js +11 -5
  76. package/dist/transport.js.map +1 -1
  77. package/dist/types.d.ts +15 -1
  78. package/dist/types.d.ts.map +1 -1
  79. package/dist/vitePlugin.d.ts +5 -0
  80. package/dist/vitePlugin.d.ts.map +1 -1
  81. package/dist/vitePlugin.js +44 -3
  82. package/dist/vitePlugin.js.map +1 -1
  83. package/dist/workspace.d.ts +39 -4
  84. package/dist/workspace.d.ts.map +1 -1
  85. package/dist/workspace.js +263 -46
  86. package/dist/workspace.js.map +1 -1
  87. package/docs/performance.md +107 -0
  88. package/docs/workspace-isolation.md +118 -0
  89. package/package.json +12 -2
@@ -15,6 +15,7 @@ const CACHE_IDENTITY = /^(?:warmup|snapshot|cache)(?:key|tag|id)$/i;
15
15
  const patchedBuilders = new WeakSet();
16
16
  const exportedValues = new WeakSet();
17
17
  const capabilityProxies = new WeakMap();
18
+ const importedCapabilityProxies = new WeakMap();
18
19
  let installed = false;
19
20
  let remoteLaunchSequence = 0;
20
21
  function executionLogPath(path) {
@@ -246,14 +247,31 @@ export function wrapCapabilityObject(value, mapping) {
246
247
  return member;
247
248
  return (...args) => {
248
249
  let callArguments = args;
249
- const index = args.findIndex(launchOptions);
250
+ let index = args.findIndex(launchOptions);
251
+ let positionalCommand;
252
+ if (index < 0 &&
253
+ typeof property === "string" &&
254
+ /^(?:exec|execute|launch|run|spawn)$/i.test(property)) {
255
+ const commandIndex = args.findIndex((argument) => typeof argument === "string" ||
256
+ (Array.isArray(argument) && argument.every((item) => typeof item === "string")));
257
+ if (commandIndex >= 0) {
258
+ const command = args[commandIndex];
259
+ positionalCommand = Array.isArray(command)
260
+ ? command
261
+ : [String(command), ...(Array.isArray(args[commandIndex + 1]) ? args[commandIndex + 1] : [])];
262
+ index = args.findIndex((argument, argumentIndex) => argumentIndex > commandIndex &&
263
+ Boolean(argument) &&
264
+ typeof argument === "object" &&
265
+ !Array.isArray(argument));
266
+ }
267
+ }
250
268
  if (index >= 0) {
251
269
  const original = args[index];
252
270
  callArguments = [...args];
253
271
  callArguments[index] = injectRemoteLaunch(original, mapping);
254
272
  record({
255
273
  event: "remote-launch",
256
- command: commandSummary(launchArgv(original)),
274
+ command: commandSummary(positionalCommand ?? launchArgv(original)),
257
275
  guestRoot: mapping.guestRoot,
258
276
  });
259
277
  }
@@ -264,6 +282,58 @@ export function wrapCapabilityObject(value, mapping) {
264
282
  capabilityProxies.set(object, proxy);
265
283
  return proxy;
266
284
  }
285
+ /**
286
+ * Proxy a value imported by a first-party ESM launcher. The proxy remains
287
+ * provider-neutral: it waits until arguments reveal a host/guest mount, then
288
+ * delegates to the same capability graph used for CommonJS exports.
289
+ */
290
+ export function wrapImportedCapability(value) {
291
+ if ((!value || typeof value !== "object") && typeof value !== "function")
292
+ return value;
293
+ const object = value;
294
+ const cached = importedCapabilityProxies.get(object);
295
+ if (cached)
296
+ return cached;
297
+ const invoke = (callable, receiver, args) => {
298
+ const hostRoot = process.env["SUPERCOV_PROJECT_ROOT"];
299
+ const mapping = hostRoot
300
+ ? args.map((argument) => discoverWorkspaceMapping(argument, hostRoot)).find(Boolean)
301
+ : undefined;
302
+ if (mapping) {
303
+ const fingerprint = process.env["SUPERCOV_EXECUTION_FINGERPRINT"] ?? "unversioned";
304
+ const scopedArguments = args.map((argument) => scopeCapabilityCache(argument, fingerprint));
305
+ record({
306
+ event: "workspace-capability",
307
+ hostRoot: mapping.hostRoot,
308
+ guestRoot: mapping.guestRoot,
309
+ cacheIdentities: scopedArguments.flatMap((entry) => entry.changed),
310
+ });
311
+ return wrapResult(Reflect.apply(callable, receiver, scopedArguments.map((entry) => entry.value)), mapping);
312
+ }
313
+ return wrapImportedCapability(Reflect.apply(callable, receiver, args));
314
+ };
315
+ const proxy = new Proxy(object, {
316
+ get(target, property) {
317
+ const member = Reflect.get(target, property, target);
318
+ if (typeof member !== "function")
319
+ return wrapImportedCapability(member);
320
+ return (...args) => invoke(member, target, args);
321
+ },
322
+ ...(typeof value === "function"
323
+ ? {
324
+ apply(target, thisArgument, args) {
325
+ return invoke(target, thisArgument, args);
326
+ },
327
+ construct(target, args, newTarget) {
328
+ const result = Reflect.construct(target, args, newTarget);
329
+ return wrapImportedCapability(result);
330
+ },
331
+ }
332
+ : {}),
333
+ });
334
+ importedCapabilityProxies.set(object, proxy);
335
+ return proxy;
336
+ }
267
337
  function patchBuilder(builder) {
268
338
  if (patchedBuilders.has(builder))
269
339
  return;
@@ -319,12 +389,16 @@ function inspectExports(value, depth = 0) {
319
389
  }
320
390
  function childOptionsIndex(method, args) {
321
391
  if (method === "spawn" || method === "spawnSync" || method === "fork")
322
- return Array.isArray(args[1]) ? 2 : 1;
392
+ return Array.isArray(args[1]) || (args.length > 2 && args[2] !== undefined)
393
+ ? 2
394
+ : 1;
323
395
  if (method === "exec" ||
324
396
  method === "execSync" ||
325
397
  method === "execFile" ||
326
398
  method === "execFileSync")
327
- return Array.isArray(args[1]) ? 2 : 1;
399
+ return Array.isArray(args[1]) || (args.length > 2 && args[2] !== undefined)
400
+ ? 2
401
+ : 1;
328
402
  return undefined;
329
403
  }
330
404
  function injectChildEnvironment(method, args) {
@@ -1 +1 @@
1
- {"version":3,"file":"launchSupervisor.js","sourceRoot":"","sources":["../src/launchSupervisor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"launchSupervisor.js","sourceRoot":"","sources":["../src/launchSupervisor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function mergeCoverageRuns(root: string, runIds: string[]): string;
2
+ //# sourceMappingURL=merge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../src/merge.ts"],"names":[],"mappings":"AAsEA,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAwExE"}
package/dist/merge.js ADDED
@@ -0,0 +1,116 @@
1
+ import { existsSync, mkdirSync, readFileSync, rmSync } from "node:fs";
2
+ import { basename, resolve } from "node:path";
3
+ import { atomicRenameSync, atomicWriteFileSync } from "./atomic.js";
4
+ import { EVIDENCE_ARCHIVE_SCHEMA_VERSION, readEvidenceArchive, writeEvidenceArchiveEntries, } from "./evidenceArchive.js";
5
+ import { acquireProjectLock } from "./workspace.js";
6
+ function metadata(root, id) {
7
+ const path = resolve(root, ".supercov/runs", id, "run.json");
8
+ try {
9
+ const value = JSON.parse(readFileSync(path, "utf8"));
10
+ if (value.id !== id ||
11
+ value.rawEvidence?.schemaVersion !== EVIDENCE_ARCHIVE_SCHEMA_VERSION ||
12
+ !existsSync(resolve(root, ".supercov/runs", id, "evidence.raw.gz")))
13
+ throw new Error("incomplete run");
14
+ return value;
15
+ }
16
+ catch (error) {
17
+ throw new Error(`Cannot merge coverage run ${id}: ${String(error)}`);
18
+ }
19
+ }
20
+ function rewrittenContents(contents, mergedRunId) {
21
+ const rewrite = (value) => {
22
+ if (!value || typeof value !== "object")
23
+ return value;
24
+ if (Array.isArray(value))
25
+ return value.map(rewrite);
26
+ const record = value;
27
+ return Object.fromEntries(Object.entries(record).map(([key, nested]) => [
28
+ key,
29
+ key === "scope" && nested && typeof nested === "object"
30
+ ? { ...nested, runId: mergedRunId }
31
+ : rewrite(nested),
32
+ ]));
33
+ };
34
+ return contents
35
+ .split("\n")
36
+ .map((line) => {
37
+ if (!line)
38
+ return line;
39
+ try {
40
+ return JSON.stringify(rewrite(JSON.parse(line)));
41
+ }
42
+ catch {
43
+ return line;
44
+ }
45
+ })
46
+ .join("\n");
47
+ }
48
+ function mergedPath(path, shard) {
49
+ if (path.startsWith("server/background/"))
50
+ return `server/background/shard-${shard}-${basename(path)}`;
51
+ if (path.startsWith("server/"))
52
+ return `server/shard-${shard}/${path.slice("server/".length)}`;
53
+ return `shards/${shard}/${path}`;
54
+ }
55
+ export function mergeCoverageRuns(root, runIds) {
56
+ if (runIds.length < 2)
57
+ throw new Error("Usage: supercov merge <run-id> <run-id> [...]");
58
+ if (new Set(runIds).size !== runIds.length)
59
+ throw new Error("Each merged run must be unique");
60
+ const inputs = runIds.map((id) => ({
61
+ id,
62
+ metadata: metadata(root, id),
63
+ archive: readEvidenceArchive(resolve(root, ".supercov/runs", id, "evidence.raw.gz")),
64
+ }));
65
+ const integrity = inputs[0].metadata.integrity;
66
+ if (!integrity)
67
+ throw new Error(`Run ${inputs[0].id} has no source-integrity fingerprint`);
68
+ for (const input of inputs.slice(1)) {
69
+ if (!input.metadata.integrity ||
70
+ input.metadata.integrity.fingerprint.combined !== integrity.fingerprint.combined ||
71
+ input.metadata.integrity.schemaVersion !== integrity.schemaVersion ||
72
+ input.metadata.integrity.instrumenterVersion !== integrity.instrumenterVersion) {
73
+ throw new Error(`Cannot merge incompatible run ${input.id}: source, tests, dependencies, configuration, or instrumenter differ`);
74
+ }
75
+ }
76
+ const manifests = inputs.map((input) => input.archive.files.find((entry) => entry.path === "manifest.json")?.contents);
77
+ if (!manifests[0] || manifests.some((manifest) => manifest !== manifests[0]))
78
+ throw new Error("Cannot merge runs with different coverage denominators");
79
+ const mergedRunId = `${new Date().toISOString().replace(/[:.]/g, "-")}-merge`;
80
+ const lock = acquireProjectLock(root, mergedRunId);
81
+ const staging = resolve(root, ".supercov/work", mergedRunId, "run-publication");
82
+ const destination = resolve(root, ".supercov/runs", mergedRunId);
83
+ try {
84
+ rmSync(staging, { recursive: true, force: true });
85
+ mkdirSync(staging, { recursive: true });
86
+ const entries = [
87
+ { path: "manifest.json", contents: manifests[0] },
88
+ ...inputs.flatMap((input, shard) => input.archive.files
89
+ .filter((entry) => entry.path !== "manifest.json")
90
+ .map((entry) => ({
91
+ path: mergedPath(entry.path, shard),
92
+ contents: rewrittenContents(entry.contents, mergedRunId),
93
+ }))),
94
+ ];
95
+ const rawEvidence = writeEvidenceArchiveEntries(entries, resolve(staging, "evidence.raw.gz"));
96
+ const startedAt = new Date().toISOString();
97
+ atomicWriteFileSync(resolve(staging, "run.json"), `${JSON.stringify({
98
+ id: mergedRunId,
99
+ startedAt,
100
+ durationMs: 0,
101
+ command: ["supercov", "merge", ...runIds],
102
+ testExitCode: inputs.every((input) => input.metadata.testExitCode === 0) ? 0 : 1,
103
+ integrity,
104
+ rawEvidence,
105
+ merged: true,
106
+ parents: runIds,
107
+ }, null, 2)}\n`);
108
+ atomicRenameSync(staging, destination);
109
+ return mergedRunId;
110
+ }
111
+ finally {
112
+ rmSync(resolve(root, ".supercov/work", mergedRunId), { recursive: true, force: true });
113
+ lock.release();
114
+ }
115
+ }
116
+ //# sourceMappingURL=merge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge.js","sourceRoot":"","sources":["../src/merge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import * as native from "node:test";
2
+ export declare const test: typeof native.test;
3
+ export declare const it: typeof native.it;
4
+ export declare const suite: typeof native.suite;
5
+ export declare const describe: typeof native.suite;
6
+ export declare const before: typeof native.before;
7
+ export declare const after: typeof native.after;
8
+ export declare const beforeEach: typeof native.beforeEach;
9
+ export declare const afterEach: typeof native.afterEach;
10
+ export declare const mock: native.MockTracker;
11
+ export declare const snapshot: typeof native.snapshot;
12
+ export declare const run: typeof native.run;
13
+ export declare const assert: typeof native.assert;
14
+ export default test;
15
+ //# sourceMappingURL=nodeTest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeTest.d.ts","sourceRoot":"","sources":["../src/nodeTest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;AAwIpC,eAAO,MAAM,IAAI,EAAsE,OAAO,MAAM,CAAC,IAAI,CAAC;AAC1G,eAAO,MAAM,EAAE,EAAoE,OAAO,MAAM,CAAC,EAAE,CAAC;AACpG,eAAO,MAAM,KAAK,qBAAe,CAAC;AAClC,eAAO,MAAM,QAAQ,qBAAkB,CAAC;AACxC,eAAO,MAAM,MAAM,sBAAgB,CAAC;AACpC,eAAO,MAAM,KAAK,qBAAe,CAAC;AAClC,eAAO,MAAM,UAAU,0BAAoB,CAAC;AAC5C,eAAO,MAAM,SAAS,yBAAmB,CAAC;AAC1C,eAAO,MAAM,IAAI,oBAAc,CAAC;AAChC,eAAO,MAAM,QAAQ,wBAAkB,CAAC;AACxC,eAAO,MAAM,GAAG,mBAAa,CAAC;AAC9B,eAAO,MAAM,MAAM,sBAAgB,CAAC;eACrB,IAAI"}
@@ -0,0 +1,121 @@
1
+ import * as native from "node:test";
2
+ import { withCoverageCarrier } from "./runtime.js";
3
+ import { callerLocation, runnerExecutionScope, writeRunnerEvidence, } from "./runnerEvidence.js";
4
+ function callbackIndex(args) {
5
+ for (let index = args.length - 1; index >= 0; index -= 1)
6
+ if (typeof args[index] === "function")
7
+ return index;
8
+ return -1;
9
+ }
10
+ function testName(args, callback) {
11
+ return typeof args[0] === "string" ? args[0] : callback.name || "anonymous test";
12
+ }
13
+ function testOptions(args, index) {
14
+ const candidate = args.slice(0, index).find((value) => value && typeof value === "object" && !Array.isArray(value));
15
+ return candidate;
16
+ }
17
+ function wrappedRegistration(original) {
18
+ const wrapped = function supercovNodeTest(...args) {
19
+ const index = callbackIndex(args);
20
+ if (index < 0)
21
+ return Reflect.apply(original, this, args);
22
+ const callback = args[index];
23
+ const location = callerLocation(/(?:nodeTest|runnerEvidence)\.[cm]?[jt]s/);
24
+ const identity = {
25
+ runner: "node:test",
26
+ name: testName(args, callback),
27
+ ...location,
28
+ };
29
+ const scope = runnerExecutionScope(identity);
30
+ const options = testOptions(args, index);
31
+ const next = [...args];
32
+ const execute = (callbackThis, context, done) => {
33
+ let status = options?.skip || options?.todo
34
+ ? "skipped"
35
+ : "passed";
36
+ const contextProxy = new Proxy(context, {
37
+ get(target, property, receiver) {
38
+ const value = Reflect.get(target, property, receiver);
39
+ if ((property === "skip" || property === "todo") && typeof value === "function") {
40
+ return (...callArgs) => {
41
+ status = "skipped";
42
+ return Reflect.apply(value, target, callArgs);
43
+ };
44
+ }
45
+ if (property === "test" && typeof value === "function")
46
+ return wrappedRegistration(value.bind(target));
47
+ return typeof value === "function" ? value.bind(target) : value;
48
+ },
49
+ });
50
+ let emitted = false;
51
+ const emit = (nextStatus = status) => {
52
+ if (emitted)
53
+ return;
54
+ emitted = true;
55
+ writeRunnerEvidence(identity, nextStatus, scope);
56
+ };
57
+ try {
58
+ if (callback.length >= 2) {
59
+ const callbackDone = (error) => {
60
+ if (error)
61
+ status = "failed";
62
+ emit();
63
+ done?.(error);
64
+ };
65
+ return withCoverageCarrier({ version: 1, scope }, () => Reflect.apply(callback, callbackThis, [contextProxy, callbackDone]));
66
+ }
67
+ const result = withCoverageCarrier({ version: 1, scope }, () => Reflect.apply(callback, callbackThis, [contextProxy]));
68
+ if (result && typeof result.then === "function")
69
+ return Promise.resolve(result).then((value) => {
70
+ emit();
71
+ return value;
72
+ }, (error) => {
73
+ status = "failed";
74
+ emit();
75
+ throw error;
76
+ });
77
+ emit();
78
+ return result;
79
+ }
80
+ catch (error) {
81
+ status = "failed";
82
+ emit();
83
+ throw error;
84
+ }
85
+ };
86
+ // node:test uses callback arity to distinguish promise/synchronous tests
87
+ // from the legacy done-callback form. Preserve it exactly.
88
+ next[index] = callback.length >= 2
89
+ ? function supercovNodeTestDoneCallback(context, done) {
90
+ return execute(this, context, done);
91
+ }
92
+ : function supercovNodeTestCallback(context) {
93
+ return execute(this, context);
94
+ };
95
+ return Reflect.apply(original, this, next);
96
+ };
97
+ for (const property of ["skip", "todo", "only"]) {
98
+ const member = original[property];
99
+ if (typeof member === "function")
100
+ Object.defineProperty(wrapped, property, {
101
+ configurable: true,
102
+ enumerable: true,
103
+ value: wrappedRegistration(member),
104
+ });
105
+ }
106
+ return wrapped;
107
+ }
108
+ export const test = wrappedRegistration(native.test);
109
+ export const it = wrappedRegistration(native.it);
110
+ export const suite = native.suite;
111
+ export const describe = native.describe;
112
+ export const before = native.before;
113
+ export const after = native.after;
114
+ export const beforeEach = native.beforeEach;
115
+ export const afterEach = native.afterEach;
116
+ export const mock = native.mock;
117
+ export const snapshot = native.snapshot;
118
+ export const run = native.run;
119
+ export const assert = native.assert;
120
+ export default test;
121
+ //# sourceMappingURL=nodeTest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeTest.js","sourceRoot":"","sources":["../src/nodeTest.ts"],"names":[],"mappings":"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"}
package/dist/project.d.ts CHANGED
@@ -1,12 +1,17 @@
1
+ import type { CoverageLimitation, CoverageSourceScope } from "./types.ts";
1
2
  export interface CoverageProject {
2
3
  root: string;
3
4
  sourceRoots: string[];
5
+ sourceFiles: string[];
6
+ sourceScope: CoverageSourceScope;
7
+ sourceLimitations: CoverageLimitation[];
4
8
  playwrightConfig?: string;
5
9
  vitestConfig?: string;
10
+ jestConfig?: string;
6
11
  playwrightModule: string;
7
12
  playwrightTestExport: string;
8
13
  playwrightExports: string[];
9
- buildAdapter: "vite" | "direct";
14
+ buildAdapter: "vite" | "generic" | "direct";
10
15
  buildCommand: string[];
11
16
  buildEnvironment: Record<string, string>;
12
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,YAAY,EAAE,MAAM,GAAG,QAAQ,CAAC;IAChC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AA6PD,wBAAgB,uBAAuB,CACrC,IAAI,SAAgB,EACpB,WAAW,GAAE,MAAM,CAAC,UAAwB,EAC5C,OAAO,GAAE,MAAM,EAAO,GACrB,eAAe,CA4EjB"}
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,mBAAmB,CAAC;IACjC,iBAAiB,EAAE,kBAAkB,EAAE,CAAC;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC5C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAsQD,wBAAgB,uBAAuB,CACrC,IAAI,SAAgB,EACpB,WAAW,GAAE,MAAM,CAAC,UAAwB,EAC5C,OAAO,GAAE,MAAM,EAAO,GACrB,eAAe,CAkFjB"}
package/dist/project.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { existsSync, readFileSync, readdirSync } from "node:fs";
2
2
  import { basename, resolve } from "node:path";
3
+ import { discoverSourceScope } from "./sourceDiscovery.js";
3
4
  const PLAYWRIGHT_CONFIG_CANDIDATES = [
4
5
  "playwright.config.ts",
5
6
  "playwright.config.mts",
@@ -20,6 +21,14 @@ const VITEST_CONFIG_CANDIDATES = [
20
21
  "vite.config.js",
21
22
  "vite.config.mjs",
22
23
  ];
24
+ const JEST_CONFIG_CANDIDATES = [
25
+ "jest.config.ts",
26
+ "jest.config.mts",
27
+ "jest.config.js",
28
+ "jest.config.mjs",
29
+ "jest.config.cts",
30
+ "jest.config.cjs",
31
+ ];
23
32
  function packageJson(root) {
24
33
  try {
25
34
  return JSON.parse(readFileSync(resolve(root, "package.json"), "utf8"));
@@ -220,9 +229,9 @@ export function discoverCoverageProject(root = process.cwd(), environment = proc
220
229
  ?.split(",")
221
230
  .map((value) => value.trim())
222
231
  .filter(Boolean);
223
- const sourceRoots = (configuredSourceRoots?.length ? configuredSourceRoots : ["app", "src"]).filter((directory) => existsSync(resolve(root, directory)));
224
- if (sourceRoots.length === 0) {
225
- throw new Error("No application source root found. Set SUPERCOV_SOURCE_ROOTS=src,app.");
232
+ const discoveredSource = discoverSourceScope(root, configuredSourceRoots);
233
+ if (discoveredSource.sourceFiles.length === 0) {
234
+ throw new Error("No application source files were discovered. Set SUPERCOV_SOURCE_ROOTS=src,app.");
226
235
  }
227
236
  const configuredPlaywright = environment["SUPERCOV_PLAYWRIGHT_CONFIG"];
228
237
  const playwrightConfig = configuredPlaywright
@@ -235,6 +244,10 @@ export function discoverCoverageProject(root = process.cwd(), environment = proc
235
244
  const vitestConfig = configuredVitest
236
245
  ? resolve(root, configuredVitest)
237
246
  : VITEST_CONFIG_CANDIDATES.map((candidate) => resolve(root, candidate)).find((candidate) => existsSync(candidate));
247
+ const configuredJest = environment["SUPERCOV_JEST_CONFIG"];
248
+ const jestConfig = configuredJest
249
+ ? resolve(root, configuredJest)
250
+ : JEST_CONFIG_CANDIDATES.map((candidate) => resolve(root, candidate)).find((candidate) => existsSync(candidate));
238
251
  const discoveredPlaywright = discoverPlaywrightAdapter(root);
239
252
  const playwrightModule = environment["SUPERCOV_PLAYWRIGHT_MODULE"] ?? discoveredPlaywright.module;
240
253
  const playwrightTestExport = environment["SUPERCOV_PLAYWRIGHT_TEST_EXPORT"] ??
@@ -256,20 +269,25 @@ export function discoverCoverageProject(root = process.cwd(), environment = proc
256
269
  const buildCommand = manifest.scripts?.["build"]
257
270
  ? ["npm", "run", "build"]
258
271
  : [];
259
- if (buildCommand.length > 0 && !hasVite) {
260
- throw new Error("The project is not a detected Vite build. A framework build adapter is required.");
261
- }
262
272
  return {
263
273
  root,
264
- sourceRoots,
274
+ sourceRoots: discoveredSource.sourceRoots,
275
+ sourceFiles: discoveredSource.sourceFiles,
276
+ sourceScope: discoveredSource.scope,
277
+ sourceLimitations: discoveredSource.limitations,
265
278
  ...(playwrightConfig ? { playwrightConfig } : {}),
266
279
  ...(vitestConfig ? { vitestConfig } : {}),
280
+ ...(jestConfig ? { jestConfig } : {}),
267
281
  playwrightModule,
268
282
  playwrightTestExport,
269
283
  playwrightExports: playwrightModule === discoveredPlaywright.module
270
284
  ? discoveredPlaywright.exports
271
285
  : [playwrightTestExport, "expect"],
272
- buildAdapter: buildCommand.length > 0 ? "vite" : "direct",
286
+ buildAdapter: buildCommand.length > 0
287
+ ? hasVite
288
+ ? "vite"
289
+ : "generic"
290
+ : "direct",
273
291
  buildCommand,
274
292
  buildEnvironment: inferBuildEnvironment(root, command, environment),
275
293
  };