supercov 0.0.9 → 0.0.11

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 (100) hide show
  1. package/bin/native.js +87 -0
  2. package/bin/supercov.js +20 -3
  3. package/dist/agentJson.d.ts +2 -1
  4. package/dist/agentJson.d.ts.map +1 -1
  5. package/dist/agentJson.js +18 -0
  6. package/dist/agentJson.js.map +1 -1
  7. package/dist/analyze.d.ts.map +1 -1
  8. package/dist/analyze.js +9 -4
  9. package/dist/analyze.js.map +1 -1
  10. package/dist/cli.js +115 -24
  11. package/dist/cli.js.map +1 -1
  12. package/dist/directInstrumenter.d.ts.map +1 -1
  13. package/dist/directInstrumenter.js +39 -19
  14. package/dist/directInstrumenter.js.map +1 -1
  15. package/dist/engineEvidence.d.ts +9 -0
  16. package/dist/engineEvidence.d.ts.map +1 -0
  17. package/dist/engineEvidence.js +31 -0
  18. package/dist/engineEvidence.js.map +1 -0
  19. package/dist/engineInstrumenter.d.ts +16 -0
  20. package/dist/engineInstrumenter.d.ts.map +1 -0
  21. package/dist/engineInstrumenter.js +50 -0
  22. package/dist/engineInstrumenter.js.map +1 -0
  23. package/dist/engineProcess.d.ts +11 -0
  24. package/dist/engineProcess.d.ts.map +1 -0
  25. package/dist/engineProcess.js +59 -0
  26. package/dist/engineProcess.js.map +1 -0
  27. package/dist/evidenceArchive.d.ts +1 -0
  28. package/dist/evidenceArchive.d.ts.map +1 -1
  29. package/dist/evidenceArchive.js +59 -13
  30. package/dist/evidenceArchive.js.map +1 -1
  31. package/dist/instrumenter.d.ts +8 -1
  32. package/dist/instrumenter.d.ts.map +1 -1
  33. package/dist/instrumenter.js +478 -80
  34. package/dist/instrumenter.js.map +1 -1
  35. package/dist/integrity.d.ts.map +1 -1
  36. package/dist/integrity.js +9 -1
  37. package/dist/integrity.js.map +1 -1
  38. package/dist/launchSupervisor.d.ts.map +1 -1
  39. package/dist/launchSupervisor.js +3 -0
  40. package/dist/launchSupervisor.js.map +1 -1
  41. package/dist/merge.d.ts.map +1 -1
  42. package/dist/merge.js +9 -6
  43. package/dist/merge.js.map +1 -1
  44. package/dist/nodeAssertionInstrumenter.d.ts +2 -2
  45. package/dist/nodeAssertionInstrumenter.d.ts.map +1 -1
  46. package/dist/nodeAssertionInstrumenter.js +12 -4
  47. package/dist/nodeAssertionInstrumenter.js.map +1 -1
  48. package/dist/nodeTest.d.ts.map +1 -1
  49. package/dist/nodeTest.js +13 -4
  50. package/dist/nodeTest.js.map +1 -1
  51. package/dist/playwright.d.ts.map +1 -1
  52. package/dist/playwright.js +177 -89
  53. package/dist/playwright.js.map +1 -1
  54. package/dist/processDiagnostics.d.ts +34 -0
  55. package/dist/processDiagnostics.d.ts.map +1 -0
  56. package/dist/processDiagnostics.js +155 -0
  57. package/dist/processDiagnostics.js.map +1 -0
  58. package/dist/project.d.ts +1 -0
  59. package/dist/project.d.ts.map +1 -1
  60. package/dist/project.js +39 -4
  61. package/dist/project.js.map +1 -1
  62. package/dist/query.d.ts +11 -0
  63. package/dist/query.d.ts.map +1 -1
  64. package/dist/query.js +224 -11
  65. package/dist/query.js.map +1 -1
  66. package/dist/register.mjs +52 -0
  67. package/dist/register.mjs.map +1 -1
  68. package/dist/resolve-loader.d.mts.map +1 -1
  69. package/dist/resolve-loader.mjs +8 -2
  70. package/dist/resolve-loader.mjs.map +1 -1
  71. package/dist/runAnalysis.d.ts.map +1 -1
  72. package/dist/runAnalysis.js +3 -1
  73. package/dist/runAnalysis.js.map +1 -1
  74. package/dist/runnerEvidence.d.ts +2 -2
  75. package/dist/runnerEvidence.d.ts.map +1 -1
  76. package/dist/runnerEvidence.js +6 -4
  77. package/dist/runnerEvidence.js.map +1 -1
  78. package/dist/runtime.d.ts +56 -4
  79. package/dist/runtime.d.ts.map +1 -1
  80. package/dist/runtime.js +308 -27
  81. package/dist/runtime.js.map +1 -1
  82. package/dist/sourceDiscovery.d.ts.map +1 -1
  83. package/dist/sourceDiscovery.js +6 -2
  84. package/dist/sourceDiscovery.js.map +1 -1
  85. package/dist/transport.js +2 -2
  86. package/dist/transport.js.map +1 -1
  87. package/dist/vitePlugin.d.ts.map +1 -1
  88. package/dist/vitePlugin.js +21 -7
  89. package/dist/vitePlugin.js.map +1 -1
  90. package/dist/vitest.js +38 -7
  91. package/dist/vitest.js.map +1 -1
  92. package/dist/waivers.d.ts +52 -0
  93. package/dist/waivers.d.ts.map +1 -0
  94. package/dist/waivers.js +121 -0
  95. package/dist/waivers.js.map +1 -0
  96. package/dist/workspace.d.ts +36 -0
  97. package/dist/workspace.d.ts.map +1 -1
  98. package/dist/workspace.js +212 -36
  99. package/dist/workspace.js.map +1 -1
  100. package/package.json +29 -3
package/dist/workspace.js CHANGED
@@ -1,7 +1,10 @@
1
- import { copyFileSync, constants, existsSync, lstatSync, mkdirSync, openSync, closeSync, fsyncSync, readFileSync, readdirSync, readlinkSync, realpathSync, rmSync, symlinkSync, statSync, writeFileSync, } from "node:fs";
1
+ import { copyFileSync, constants, existsSync, lstatSync, mkdirSync, openSync, closeSync, fsyncSync, readFileSync, readdirSync, readlinkSync, realpathSync, renameSync, rmSync, symlinkSync, statSync, writeFileSync, } from "node:fs";
2
+ import { spawn } from "node:child_process";
2
3
  import { randomUUID } from "node:crypto";
4
+ import { tmpdir } from "node:os";
3
5
  import { basename, dirname, isAbsolute, relative, resolve, sep } from "node:path";
4
6
  import { atomicRenameSync, atomicWriteFileSync } from "./atomic.js";
7
+ export const RUN_STORE_CONTRACT_VERSION = 1;
5
8
  const TERMINAL = new Set([
6
9
  "complete",
7
10
  "failed",
@@ -24,6 +27,121 @@ const ROOT_EXCLUSIONS = new Set([
24
27
  "test-results",
25
28
  ]);
26
29
  const NESTED_SUPERCOV_EXCLUSIONS = new Set([".supercov", ".mcdc-pool"]);
30
+ const TRASH_DIRECTORY = ".supercov/.trash";
31
+ /**
32
+ * Unlinking a large tree (workspace copies, per-attempt evidence) can take
33
+ * minutes of uninterruptible I/O — observed at 26+ minutes on a real project.
34
+ * Removal must never block the command: rename the tree into the store's
35
+ * trash (atomic on the same filesystem, so the path disappears instantly) and
36
+ * let a detached deleter unlink it after this process has already returned.
37
+ * A crash between rename and unlink just leaves the entry in the trash, and
38
+ * every later invocation sweeps whatever it finds there.
39
+ */
40
+ export function removeStoredTreeDeferred(root, target) {
41
+ const resolvedRoot = resolve(root);
42
+ const resolvedTarget = resolve(target);
43
+ if (!existsSync(resolvedTarget))
44
+ return undefined;
45
+ const trash = resolve(root, TRASH_DIRECTORY);
46
+ const store = resolve(resolvedRoot, ".supercov");
47
+ const container = workspaceContainerPath(resolvedRoot);
48
+ const inStore = resolvedTarget !== store &&
49
+ inside(store, resolvedTarget) &&
50
+ !inside(trash, resolvedTarget);
51
+ const inWorkspaceContainer = isWorkspaceContainer(container) && inside(container, resolvedTarget);
52
+ if (!inStore && !inWorkspaceContainer)
53
+ throw new Error(`Refusing to defer removal outside Supercov-owned storage: ${resolvedTarget}`);
54
+ mkdirSync(trash, { recursive: true });
55
+ const destination = resolve(trash, `${process.pid}-${randomUUID()}`);
56
+ try {
57
+ renameSync(resolvedTarget, destination);
58
+ }
59
+ catch (error) {
60
+ const code = error.code ?? "unknown";
61
+ throw new Error(`Could not move Supercov data into deferred trash (${code}): ${resolvedTarget}`, { cause: error });
62
+ }
63
+ return destination;
64
+ }
65
+ /** The detached deleter's whole program; also executed verbatim by tests. */
66
+ export const TRASH_DELETER_SCRIPT = [
67
+ `const { closeSync, openSync, readFileSync, readdirSync, rmSync, unlinkSync, writeFileSync } = require("node:fs");`,
68
+ `const { resolve } = require("node:path");`,
69
+ `const trash = process.argv[1];`,
70
+ `const lock = resolve(trash, ".deleter.lock");`,
71
+ `const alive = (pid) => { try { process.kill(pid, 0); return true; } catch { return false; } };`,
72
+ `try {`,
73
+ ` const existing = Number(readFileSync(lock, "utf8"));`,
74
+ ` if (Number.isSafeInteger(existing) && existing > 0 && alive(existing)) process.exit(0);`,
75
+ ` try { unlinkSync(lock); } catch {}`,
76
+ `} catch {}`,
77
+ `let descriptor;`,
78
+ `try { descriptor = openSync(lock, "wx"); writeFileSync(descriptor, String(process.pid)); closeSync(descriptor); } catch { process.exit(0); }`,
79
+ `let entries = [];`,
80
+ `try { entries = readdirSync(trash); } catch {}`,
81
+ `for (const entry of entries) {`,
82
+ ` if (entry === ".deleter.lock") continue;`,
83
+ ` try { rmSync(resolve(trash, entry), { recursive: true, force: true, maxRetries: 3 }); } catch {}`,
84
+ `}`,
85
+ `try { unlinkSync(lock); } catch {}`,
86
+ ].join("\n");
87
+ /** Unlink everything in the trash without making anyone wait for it. */
88
+ export function spawnTrashDeleter(root) {
89
+ const trash = resolve(root, TRASH_DIRECTORY);
90
+ try {
91
+ if (readdirSync(trash).length === 0)
92
+ return;
93
+ }
94
+ catch {
95
+ return;
96
+ }
97
+ try {
98
+ spawn(process.execPath, ["-e", TRASH_DELETER_SCRIPT, trash], {
99
+ // A detached process must never inherit a project-owned directory as
100
+ // its cwd. Windows keeps that directory open and rejects the final
101
+ // recursive removal with EPERM until the deleter exits.
102
+ cwd: tmpdir(),
103
+ detached: true,
104
+ stdio: "ignore",
105
+ }).unref();
106
+ }
107
+ catch {
108
+ // Spawning is best-effort; the next invocation sweeps the same trash.
109
+ }
110
+ }
111
+ /** Marks `supercov/` as ours, so a project may own a directory by that name. */
112
+ const WORKSPACE_CONTAINER_MARKER = ".supercov-workspace-store";
113
+ /**
114
+ * The instrumented workspace deliberately lives outside the dotted store.
115
+ * Widely used libraries treat *any* dot-prefixed path segment as a hidden
116
+ * dotfile — `send` (and therefore `express.static`, `serve-static` and
117
+ * `res.sendFile`) answers 404 for them by default — so an application under
118
+ * test cannot serve its own files from a dotted workspace. Copied test files
119
+ * are kept out of the user's ordinary runner discovery by
120
+ * `pruneCachedWorkspaceSources` at run end, not by hiding the path.
121
+ */
122
+ export function workspaceContainerPath(root) {
123
+ return resolve(root, "supercov");
124
+ }
125
+ /** True only for a `supercov/` directory this tool created. */
126
+ function isWorkspaceContainer(path) {
127
+ return (basename(path) === "supercov" &&
128
+ existsSync(resolve(path, WORKSPACE_CONTAINER_MARKER)));
129
+ }
130
+ function ensureWorkspaceContainer(root) {
131
+ const container = workspaceContainerPath(root);
132
+ mkdirSync(container, { recursive: true });
133
+ // Self-ignoring, so the directory never reaches the user's diff, and marked
134
+ // so source copying can distinguish it from a project's own `supercov/`.
135
+ for (const [file, contents] of [
136
+ [".gitignore", "*\n"],
137
+ [WORKSPACE_CONTAINER_MARKER, "Supercov instrumented workspace. Safe to delete.\n"],
138
+ ]) {
139
+ const path = resolve(container, file);
140
+ if (!existsSync(path))
141
+ atomicWriteFileSync(path, contents);
142
+ }
143
+ return container;
144
+ }
27
145
  function processExists(pid) {
28
146
  if (!Number.isSafeInteger(pid) || pid <= 0)
29
147
  return false;
@@ -56,7 +174,39 @@ export function isolatedWorkspacePath(root, runId) {
56
174
  * The project lock makes refreshes single-writer.
57
175
  */
58
176
  export function cachedWorkspacePath(root) {
59
- return resolve(root, ".supercov/cache/instrumented-workspace", basename(root));
177
+ return resolve(workspaceContainerPath(root), "workspace", basename(root));
178
+ }
179
+ /**
180
+ * Remove the copied source and test files from the stable cached workspace
181
+ * once a run ends. Between runs those copies are pure liability: the next
182
+ * refresh re-copies them anyway, but an ordinary test runner invoked at the
183
+ * project root (whose default discovery does not exclude dot-directories —
184
+ * Vitest 4 excludes only node_modules and .git) would find the copied test
185
+ * files and silently double-count the user's suite. Keep only what the next
186
+ * run genuinely reuses: dependency symlinks, the generated adapter directory,
187
+ * and the instrumented build artifacts the build cache declares.
188
+ */
189
+ export function pruneCachedWorkspaceSources(root) {
190
+ const workspace = cachedWorkspacePath(root);
191
+ if (!existsSync(workspace))
192
+ return [];
193
+ const metadata = readJson(resolve(workspace, ".supercov/build-cache.json"));
194
+ const keepRoots = new Set(["node_modules", ".supercov"]);
195
+ for (const artifact of metadata?.artifactPaths ?? []) {
196
+ const top = artifact.split(/[\\/]/)[0];
197
+ if (top)
198
+ keepRoots.add(top);
199
+ }
200
+ const removed = [];
201
+ for (const entry of readdirSync(workspace, { withFileTypes: true })) {
202
+ if (keepRoots.has(entry.name))
203
+ continue;
204
+ removeStoredTreeDeferred(root, resolve(workspace, entry.name));
205
+ removed.push(entry.name);
206
+ }
207
+ if (removed.length > 0)
208
+ spawnTrashDeleter(root);
209
+ return removed.sort();
60
210
  }
61
211
  function cacheTransactionPrefix(root, kind) {
62
212
  return `.${basename(root)}.${kind}-`;
@@ -95,11 +245,13 @@ export function recoverCachedWorkspace(root) {
95
245
  restoredPrevious = true;
96
246
  }
97
247
  for (const path of staging)
98
- rmSync(path, { recursive: true, force: true });
248
+ removeStoredTreeDeferred(root, path);
99
249
  for (const path of previous)
100
- rmSync(path, { recursive: true, force: true });
250
+ removeStoredTreeDeferred(root, path);
101
251
  for (const path of invalidPrevious)
102
- rmSync(path, { recursive: true, force: true });
252
+ removeStoredTreeDeferred(root, path);
253
+ if (staging.length + previous.length + invalidPrevious.length > 0)
254
+ spawnTrashDeleter(root);
103
255
  return {
104
256
  restoredPrevious,
105
257
  removedStaging: staging.length,
@@ -135,18 +287,16 @@ export function finalizePublishedRunStorage(root, runId) {
135
287
  !existsSync(resolve(runDirectory, "evidence.raw.gz"))) {
136
288
  return false;
137
289
  }
138
- rmSync(resolve(root, ".supercov/evidence", runId), {
139
- recursive: true,
140
- force: true,
141
- });
142
- rmSync(resolve(root, ".supercov/work", runId), {
143
- recursive: true,
144
- force: true,
145
- });
290
+ removeStoredTreeDeferred(root, resolve(root, ".supercov/evidence", runId));
291
+ removeStoredTreeDeferred(root, resolve(root, ".supercov/work", runId));
292
+ spawnTrashDeleter(root);
146
293
  return true;
147
294
  }
148
295
  /** Recover dead runs and finish any publication whose atomic rename landed. */
149
296
  export function recoverAbandonedRuns(root) {
297
+ // A prior detached deleter may have been killed with the host. Sweep its
298
+ // durable trash before inspecting current run state.
299
+ spawnTrashDeleter(root);
150
300
  const workRoot = resolve(root, ".supercov/work");
151
301
  if (!existsSync(workRoot))
152
302
  return [];
@@ -167,14 +317,8 @@ export function recoverAbandonedRuns(root) {
167
317
  // Never trust a persisted path as a deletion target. A partially written
168
318
  // or manually edited state file cannot widen cleanup beyond this run's
169
319
  // deterministic workspace namespace.
170
- rmSync(isolatedWorkspacePath(root, entry.name), {
171
- recursive: true,
172
- force: true,
173
- });
174
- rmSync(resolve(root, ".supercov/work", entry.name, "run-publication"), {
175
- recursive: true,
176
- force: true,
177
- });
320
+ removeStoredTreeDeferred(root, isolatedWorkspacePath(root, entry.name));
321
+ removeStoredTreeDeferred(root, resolve(root, ".supercov/work", entry.name, "run-publication"));
178
322
  if (finalizePublishedRunStorage(root, entry.name)) {
179
323
  // The run directory is published by one atomic rename before the run
180
324
  // state flips terminal. Its run.json is the durable terminal record, so
@@ -184,10 +328,7 @@ export function recoverAbandonedRuns(root) {
184
328
  // Evidence moved out of the disposable workspace before run
185
329
  // generation is not a visible run. Remove that orphan on recovery so a
186
330
  // hard kill cannot accumulate partial run data indefinitely.
187
- rmSync(resolve(root, ".supercov/evidence", entry.name), {
188
- recursive: true,
189
- force: true,
190
- });
331
+ removeStoredTreeDeferred(root, resolve(root, ".supercov/evidence", entry.name));
191
332
  updateRunState(root, entry.name, {
192
333
  status: "abandoned",
193
334
  error: `Recovered after process ${state.pid} exited without cleanup`,
@@ -195,6 +336,8 @@ export function recoverAbandonedRuns(root) {
195
336
  }
196
337
  recovered.push(entry.name);
197
338
  }
339
+ if (recovered.length > 0)
340
+ spawnTrashDeleter(root);
198
341
  return recovered.sort();
199
342
  }
200
343
  export function acquireProjectLock(root, runId) {
@@ -254,6 +397,10 @@ function copyTree(source, destination, root = false, sourceRoot = source, destin
254
397
  NESTED_SUPERCOV_EXCLUSIONS.has(entry.name))
255
398
  continue;
256
399
  const from = resolve(source, entry.name);
400
+ // Never copy our own workspace into itself. Matched by marker rather than
401
+ // by name so a project may legitimately own a `supercov/` directory.
402
+ if (entry.isDirectory() && isWorkspaceContainer(from))
403
+ continue;
257
404
  const to = resolve(destination, entry.name);
258
405
  const stat = lstatSync(from);
259
406
  if (stat.isDirectory())
@@ -304,7 +451,8 @@ function copyTree(source, destination, root = false, sourceRoot = source, destin
304
451
  /** Create a copy-on-write project snapshot whose build outputs are disposable. */
305
452
  export function prepareIsolatedWorkspace(root, runId) {
306
453
  const workspace = isolatedWorkspacePath(root, runId);
307
- rmSync(workspace, { recursive: true, force: true });
454
+ if (removeStoredTreeDeferred(root, workspace))
455
+ spawnTrashDeleter(root);
308
456
  copyTree(root, workspace, true);
309
457
  const nodeModules = resolve(root, "node_modules");
310
458
  if (existsSync(nodeModules)) {
@@ -332,6 +480,7 @@ export function prepareIsolatedWorkspace(root, runId) {
332
480
  /** Refresh the stable, disposable instrumented-build namespace. */
333
481
  export function prepareCachedWorkspace(root, hooks = {}) {
334
482
  const workspace = cachedWorkspacePath(root);
483
+ ensureWorkspaceContainer(root);
335
484
  recoverCachedWorkspace(root);
336
485
  const staging = cacheTransactionPath(root, "staging");
337
486
  const previous = cacheTransactionPath(root, "previous");
@@ -399,13 +548,15 @@ export function prepareCachedWorkspace(root, hooks = {}) {
399
548
  throw error;
400
549
  }
401
550
  finally {
402
- rmSync(staging, { recursive: true, force: true });
551
+ if (removeStoredTreeDeferred(root, staging))
552
+ spawnTrashDeleter(root);
403
553
  }
404
554
  // Failure to remove an obsolete previous generation must not invalidate the
405
555
  // newly published cache. The next invocation and `supercov clean` both
406
556
  // remove it deterministically.
407
557
  try {
408
- rmSync(previous, { recursive: true, force: true });
558
+ if (removeStoredTreeDeferred(root, previous))
559
+ spawnTrashDeleter(root);
409
560
  }
410
561
  catch {
411
562
  // Deliberately retained for recoverCachedWorkspace().
@@ -418,7 +569,8 @@ export function removeIsolatedWorkspace(root, runId) {
418
569
  if (relativePath.startsWith("..") || relativePath.split(sep).length < 2) {
419
570
  throw new Error(`Refusing to remove unexpected workspace path: ${workspace}`);
420
571
  }
421
- rmSync(workspace, { recursive: true, force: true });
572
+ if (removeStoredTreeDeferred(root, workspace))
573
+ spawnTrashDeleter(root);
422
574
  }
423
575
  /** Deterministic retention: IDs sort newest-first because run IDs are UTC. */
424
576
  function cleanCoverageStorageLocked(root, options, removeBuildCache) {
@@ -461,24 +613,48 @@ function cleanCoverageStorageLocked(root, options, removeBuildCache) {
461
613
  if (removeTransientWork) {
462
614
  removedWorkspaces.push(id);
463
615
  if (!options.dryRun)
464
- rmSync(work, { recursive: true, force: true });
616
+ removeStoredTreeDeferred(root, work);
465
617
  }
466
618
  const hasLooseEvidence = existsSync(resolve(evidenceRoot, id));
467
619
  if (hasLooseEvidence && (!hasPublishedRun || removeHistory)) {
468
620
  removedEvidence.push(id);
469
621
  if (!options.dryRun)
470
- rmSync(resolve(evidenceRoot, id), { recursive: true, force: true });
622
+ removeStoredTreeDeferred(root, resolve(evidenceRoot, id));
471
623
  }
472
624
  if (removeHistory) {
473
625
  removedRuns.push(id);
474
626
  if (!options.dryRun)
475
- rmSync(resolve(runsRoot, id), { recursive: true, force: true });
627
+ removeStoredTreeDeferred(root, resolve(runsRoot, id));
476
628
  }
477
629
  }
478
- const buildCache = resolve(root, ".supercov/cache/instrumented-workspace");
479
- const removedBuildCache = removeBuildCache && active.size === 0 && existsSync(buildCache);
480
- if (removedBuildCache && !options.dryRun)
481
- rmSync(buildCache, { recursive: true, force: true });
630
+ const buildCache = workspaceContainerPath(root);
631
+ // Releases before the workspace was moved out of the dotted store used
632
+ // both of these names. `clean` is the explicit destructive command, so it
633
+ // must migrate them too; otherwise a project can retain millions of files
634
+ // in a layout the current engine will never reuse. `prune` deliberately
635
+ // preserves every cache generation.
636
+ const legacyBuildCaches = [
637
+ resolve(root, ".supercov/.cache"),
638
+ resolve(root, ".supercov/cache"),
639
+ ];
640
+ const removableBuildCaches = removeBuildCache && active.size === 0
641
+ ? [
642
+ ...(existsSync(buildCache) && isWorkspaceContainer(buildCache)
643
+ ? [buildCache]
644
+ : []),
645
+ ...legacyBuildCaches.filter((path) => existsSync(path)),
646
+ ]
647
+ : [];
648
+ const removedBuildCache = removableBuildCaches.length > 0;
649
+ if (!options.dryRun)
650
+ for (const path of removableBuildCaches)
651
+ removeStoredTreeDeferred(root, path);
652
+ if (!options.dryRun &&
653
+ (removedRuns.length > 0 ||
654
+ removedWorkspaces.length > 0 ||
655
+ removedEvidence.length > 0 ||
656
+ removedBuildCache))
657
+ spawnTrashDeleter(root);
482
658
  return { removedRuns, removedWorkspaces, removedEvidence, removedBuildCache };
483
659
  }
484
660
  /** Cleanup is itself a project-wide transaction, so it cannot race a run. */
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "supercov",
3
- "version": "0.0.9",
3
+ "version": "0.0.11",
4
4
  "description": "Zero-edit, runner-aware coverage completeness for JavaScript test suites",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -35,17 +35,35 @@
35
35
  },
36
36
  "scripts": {
37
37
  "build": "tsc -p tsconfig.build.json && node scripts/build-runtime.mjs",
38
+ "sync:runtime": "npm run build && node scripts/sync-embedded-runtime.mjs",
39
+ "sync:rust-assets": "node scripts/sync-rust-package-assets.mjs",
40
+ "test:embedded-runtime": "node scripts/sync-embedded-runtime.mjs --check",
41
+ "test:rust-assets": "node scripts/sync-rust-package-assets.mjs --check",
38
42
  "test": "node --test --test-concurrency=4 tests/unit/*.test.ts",
39
43
  "test:types": "tsc --noEmit",
40
44
  "test:fixture": "npm run build && npm --prefix tests/fixtures/generic-playwright run test:coverage && node scripts/opaque-runner-integration.mjs && node scripts/opaque-esm-integration.mjs && node scripts/node-test-integration.mjs && node scripts/jest-integration.mjs && node scripts/generic-build-integration.mjs && node scripts/next-integration.mjs && node scripts/distributed-merge-integration.mjs && node scripts/agent-query-eval.mjs",
41
45
  "test:packed-npx": "node scripts/packed-npx-integration.mjs",
42
46
  "test:isolation": "npm run build && node scripts/isolation-integration.mjs",
43
47
  "test:filesystem": "npm run build && node --test --test-concurrency=1 tests/unit/atomic.test.ts tests/unit/evidenceArchive.test.ts tests/unit/workspace.test.ts && node scripts/workspace-crash-integration.mjs",
48
+ "test:watchdog": "npm run build && node scripts/watchdog-integration.mjs",
49
+ "test:engine-contract": "npm run build && node scripts/engine-contract.mjs",
50
+ "test:rust": "cargo fmt --all -- --check && cargo clippy --workspace --all-targets -- -D warnings && cargo test --workspace && cargo build -p supercov && npm run build && npm run test:embedded-runtime && npm run test:rust-assets && node scripts/rust-js-differential.mjs && node scripts/rust-analysis-differential.mjs && node scripts/rust-report-differential.mjs && node scripts/rust-archive-differential.mjs && node scripts/rust-minimize-differential.mjs && node scripts/rust-source-discovery-differential.mjs && node scripts/rust-project-discovery-differential.mjs && node scripts/rust-lifecycle-differential.mjs && node scripts/rust-query-differential.mjs && node scripts/rust-workspace-differential.mjs && node scripts/rust-process-supervision.mjs && node scripts/rust-direct-node-integration.mjs && node scripts/rust-public-run-integration.mjs && node scripts/rust-embedded-runtime-integration.mjs && node scripts/rust-direct-vitest-integration.mjs && node scripts/rust-direct-playwright-integration.mjs && node scripts/rust-generic-esbuild-integration.mjs && node scripts/rust-generic-tsc-integration.mjs && node scripts/rust-generic-build-matrix.mjs",
51
+ "test:rust-engine": "npm run build && cargo build -p supercov && node scripts/rust-engine-parity.mjs",
52
+ "test:rust-platform": "cargo test --workspace && cargo build -p supercov && node scripts/rust-process-supervision.mjs && node scripts/workspace-crash-integration.mjs --engine rust",
53
+ "test:native-package": "npm run build && cargo build --release -p supercov && node scripts/native-package-integration.mjs && node scripts/native-release-set-integration.mjs",
54
+ "test:pypi-wheel": "node scripts/pypi-wheel-integration.mjs",
55
+ "test:pypi-registry": "node scripts/pypi-registry-integration.mjs",
56
+ "build:rubygem": "cargo build --release -p supercov && node scripts/build-rubygem.mjs",
57
+ "test:rubygem": "node scripts/rubygem-integration.mjs",
58
+ "test:rubygem-registry": "node scripts/rubygem-registry-integration.mjs",
59
+ "test:rust-syntax": "npm run build && cargo build -p supercov && node scripts/rust-syntax-matrix.mjs",
60
+ "test:rust-fixture": "npm run build && cargo build -p supercov && node scripts/rust-vite-playwright-integration.mjs && node scripts/rust-fixture-matrix.mjs",
44
61
  "test:clang-mcdc": "node scripts/clang-mcdc-oracle.mjs",
45
- "test:test262": "npm run build && node scripts/test262-equivalence.mjs",
62
+ "test:test262": "npm run build && cargo build --release -p supercov && node scripts/test262-equivalence.mjs --engine rust",
46
63
  "benchmark:check": "npm run build && node scripts/benchmark.mjs",
64
+ "benchmark:rust-transform": "npm run build && cargo build --release -p supercov && node scripts/rust-transform-benchmark.mjs",
47
65
  "check": "npm run test && npm run test:types",
48
- "release:check": "npm run check && npm run build && node scripts/isolation-integration.mjs && npm run test:packed-npx && npm run test:clang-mcdc && node scripts/benchmark.mjs",
66
+ "release:check": "npm run check && npm run test:rust && npm run test:watchdog && npm run test:engine-contract && npm run test:packed-npx && npm run test:clang-mcdc && node scripts/benchmark.mjs && npm run benchmark:rust-transform",
49
67
  "prepack": "npm run build",
50
68
  "prepublishOnly": "npm run release:check"
51
69
  },
@@ -55,6 +73,14 @@
55
73
  "@babel/traverse": "^8.0.4",
56
74
  "@babel/types": "^8.0.4"
57
75
  },
76
+ "optionalDependencies": {
77
+ "@supercov/cli-darwin-arm64": "0.0.11",
78
+ "@supercov/cli-darwin-x64": "0.0.11",
79
+ "@supercov/cli-linux-arm64-gnu": "0.0.11",
80
+ "@supercov/cli-linux-arm64-musl": "0.0.11",
81
+ "@supercov/cli-linux-x64-gnu": "0.0.11",
82
+ "@supercov/cli-linux-x64-musl": "0.0.11"
83
+ },
58
84
  "peerDependencies": {
59
85
  "@playwright/test": ">=1.55.0",
60
86
  "vite": ">=5.0.0",