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
package/README.md CHANGED
@@ -36,8 +36,8 @@ The coverage engine has seven independent release gates:
36
36
  - release CI shards the pinned TC39 Test262 corpus across 16 workers, runs the
37
37
  official Test262 harness on original and instrumented sources, and rejects
38
38
  any scenario that passes originally but fails after transformation; and
39
- - checked performance budgets cover transform latency, output expansion, and
40
- runtime probe overhead.
39
+ - checked performance budgets cover transform latency, transactional workspace
40
+ preparation, output expansion, and runtime probe overhead.
41
41
 
42
42
  ```sh
43
43
  npm test
@@ -51,7 +51,9 @@ computed logical assignments, defaults, `try`/`catch`/`finally`, iterator
51
51
  closing, switch fallthrough, labeled loops, async functions, and generators.
52
52
  The compatibility workflow additionally runs Node 22/24/25, Playwright
53
53
  1.55/current, Vite 5/current, Vitest 2/current, Chromium, Firefox, WebKit, and
54
- modern JavaScript/JSX/TypeScript/TSX syntax fixtures. Test262's module, async,
54
+ modern JavaScript/JSX/TypeScript/TSX syntax fixtures. Filesystem publication,
55
+ symlink, copy fallback, ENOSPC, failed rename, and forced-termination recovery
56
+ also run on Ubuntu, macOS, and Windows. Test262's module, async,
55
57
  raw, parse/resolution-negative, Annex B sloppy-script extension, and explicit
56
58
  `Function.prototype.toString`/function-source-coercion tests are intentionally
57
59
  excluded from the source-rewrite comparison, with reason counts printed for
@@ -66,11 +68,14 @@ blocks the trusted-publishing workflow.
66
68
 
67
69
  ## Agent query workflow
68
70
 
69
- Each run is stored locally as a compressed, immutable report under
70
- `.supercov/runs/<run-id>/`. Its `report.json.gz`, `run.json`, and
71
- `report.html` keep the machine report, run metadata, and human report together.
72
- Agents should use bounded CLI queries instead of loading the complete report
73
- into context.
71
+ Each run is stored locally as two immutable files under
72
+ `.supercov/runs/<run-id>/`: `evidence.raw.gz` and `run.json`. The archive
73
+ contains the exact coverage denominator manifest plus raw per-worker and
74
+ background evidence. Every query reconstructs its requested coverage view
75
+ directly from that archive; no derived report or query cache is retained.
76
+ Loose evidence is removed only after the whole run directory is atomically
77
+ visible. HTML is not generated during a test run; agents should use bounded
78
+ CLI queries instead of loading the complete derived model into context.
74
79
 
75
80
  ```sh
76
81
  # Orient using only a few lines.
@@ -80,10 +85,11 @@ npx supercov runs latest coverage --filter passed
80
85
  npx supercov runs latest coverage --filter failed
81
86
  npx supercov runs latest coverage kinds
82
87
  npx supercov runs latest coverage runners
88
+ npx supercov runs latest coverage scope
83
89
  npx supercov runs latest coverage --kind e2e
84
90
  npx supercov runs latest coverage files
85
- npx supercov runs latest coverage gaps --limit 10
86
- npx supercov runs latest coverage gaps --kind e2e --limit 10
91
+ npx supercov runs latest coverage gaps
92
+ npx supercov runs latest coverage gaps --kind e2e
87
93
 
88
94
  # Drill into one target selected from the gap list.
89
95
  npx supercov runs latest coverage file app/routes/example.ts
@@ -93,17 +99,22 @@ npx supercov runs latest coverage covers app/routes/example.ts:57
93
99
  # Understand redundancy/contribution and validate a newly written test. Replace
94
100
  # "latest" with the immutable run ID when an agent continues work later.
95
101
  npx supercov runs latest coverage test "test title fragment"
102
+ npx supercov runs latest coverage minimize --filter passed
103
+ npx supercov runs latest coverage minimize --filter passed --metric mcdc --target 80
96
104
  npx supercov diff <older-run> <newer-run>
105
+
106
+ # Combine compatible shards without deleting their immutable source runs.
107
+ npx supercov merge <first-run-id> <second-run-id>
97
108
  ```
98
109
 
99
110
  Coverage queries use `--filter all` by default, matching conventional coverage
100
111
  tools: every executed attempt contributes, including attempts that later fail.
101
112
  Use `--filter passed` for verified coverage from successful attempts of
102
113
  ultimately passing tests, or `--filter failed` to inspect only execution from
103
- failed attempts (including failed retries of flaky tests). Reports record
114
+ failed attempts (including failed retries of flaky tests). Evidence records
104
115
  attempt status and classify each test as passed, failed, flaky, skipped, timed
105
- out, interrupted, or unknown. The HTML equivalents are `report.html`,
106
- `report-passed.html`, and `report-failed.html`.
116
+ out, interrupted, or unknown. Passed and failed views are derived from the
117
+ same immutable archive rather than duplicated into presentation files.
107
118
 
108
119
  The run ID is positional because all coverage queries operate on one immutable
109
120
  run. `latest` is a convenience selector for interactive use. Every query
@@ -112,69 +123,114 @@ Every collection is paginated at 20 items by default and prints its range plus
112
123
  a copyable next-page command; generated commands omit the default limit.
113
124
  Text output is concise for an interactive agent; JSON is the stable machine
114
125
  interface that can later back hosted coverage tools without changing the
115
- stored schema.
116
-
117
- For a conventional Vite project, or a Node project with no build step, the
118
- CLI:
126
+ stored evidence schema. `coverage minimize` is an exact branch-and-bound
127
+ solver: line, statement, function, and branch obligations use per-test
128
+ provenance, while MC/DC obligations retain complete independence-witness pairs
129
+ and are recomputed for every candidate subset. Its result is therefore a
130
+ proved minimum, not a greedy approximation.
131
+ It intentionally refuses a view containing background/unattributed evidence:
132
+ there is no honest way to claim an exact test subset when the runner did not
133
+ expose test boundaries.
134
+
135
+ `merge` accepts only runs with identical source, test, dependency,
136
+ configuration, instrumenter, schema, and denominator fingerprints. It rewrites
137
+ the run scope inside every evidence record, namespaces shard paths, publishes a
138
+ new immutable run atomically, and leaves all input runs untouched. This is the
139
+ distributed/multi-host primitive; incompatible shards fail clearly instead of
140
+ producing a plausible but invalid aggregate.
141
+
142
+ For a JavaScript or TypeScript project, the CLI:
119
143
 
120
144
  1. refreshes a stable isolated source namespace under
121
145
  `.supercov/cache/instrumented-workspace/<project>/`, links the existing
122
- dependency tree, and creates all Vite, Vitest, Playwright, and build output
123
- only there; the stable path lets VM/container snapshot systems reuse a
124
- coverage build without touching the application's ordinary build;
125
- 2. inventories every `app/**/*.ts(x)` and `src/**/*.ts(x)` file for the
126
- denominator, then instruments modules loaded by Vite without changing the
127
- project's config; when no build script exists, it instruments only the
128
- disposable source copy and supplies a module-format-neutral runtime through
129
- the inherited Node preload;
130
- 3. discovers the Playwright-compatible fixture provider, test export, and
131
- additional named exports from the suite's existing imports, then redirects
132
- that provider at module-load time; Vitest setup is injected through the
133
- child runner's generated config;
146
+ dependency tree, and creates generated runner configuration and build output
147
+ only there; file data uses copy-on-write reflinks where the filesystem
148
+ supports them, and falls back to copying where it does not; the stable path
149
+ lets VM/container snapshot systems reuse a coverage build without touching
150
+ the application's ordinary build; when the complete source/config/toolchain
151
+ fingerprint is unchanged, the prior instrumented output and manifest are
152
+ carried into the refreshed source snapshot and the build is skipped;
153
+ 2. inventories first-party source from package entry points, workspaces,
154
+ conventional source directories, and TypeScript roots. Every candidate is
155
+ retained as included, excluded, or ambiguous; ambiguity blocks a complete
156
+ verdict and is inspectable with `coverage scope`. Set
157
+ `SUPERCOV_SOURCE_ROOTS` for an explicit authoritative scope;
158
+ 3. instruments through the existing Vite graph when available, or instruments
159
+ only the disposable source copy before the project's unchanged
160
+ Next/Turbopack, Webpack, esbuild, SWC, or other build command. No-build ESM
161
+ and CommonJS projects use the same disposable direct path;
134
162
  4. runs the exact command following `--`, propagating coverage through every
135
- Node child process it launches;
136
- 5. attributes every source hit and decision vector to its individual test,
163
+ Node child process it launches. Generated adapters provide exact test,
164
+ worker, retry, and outcome scopes for Playwright, Vitest, Jest, and
165
+ `node:test` without changing test imports or configs;
166
+ 5. attributes source hits and decision vectors to individual tests where an
167
+ exact adapter is active,
137
168
  automatically wraps Playwright actions and assertions, and records the
138
- action/assertion phase responsible for each correlated hit; then merges
139
- server and browser evidence into HTML and JSON reports; and
140
- 6. atomically publishes the evidence/report into `.supercov/` and retains only
141
- the disposable isolated build namespace as a provider snapshot cache. The
169
+ action/assertion phase responsible for each correlated hit; and
170
+ 6. atomically publishes the exact denominator and raw evidence into one gzip
171
+ archive under `.supercov/`, then
172
+ removes loose evidence and terminal per-run work state, retaining only the
173
+ immutable run and disposable isolated build namespace. The
142
174
  ordinary application build is never read as an input, overwritten, or
143
175
  rebuilt afterward.
144
176
 
145
177
  Only `.supercov/` is modified in the user's checkout. A per-project lock
146
178
  rejects overlapping runs before either can build. Run state is durably written
147
- through preparing/building/testing/reporting/terminal phases; SIGINT, SIGTERM,
179
+ through preparing/building/testing/publishing phases; SIGINT, SIGTERM,
148
180
  and SIGHUP are forwarded to the entire child process group. If the process is
149
181
  killed without a cleanup opportunity, the next invocation marks the dead PID's
150
- run abandoned and refreshes the isolated namespace before using it. Report,
151
- evidence, and state writes use sibling-temp files, fsync, and atomic rename;
152
- lock acquisition uses exclusive creation and fsync.
182
+ run abandoned and refreshes the isolated namespace before using it. Cache
183
+ refresh is transactional: a new sibling generation is prepared completely,
184
+ the stable name is switched only at publication, and the prior complete
185
+ generation is retained until that switch succeeds. The next invocation
186
+ discards orphan staging trees or restores the prior generation if a host crash
187
+ landed between the two same-filesystem renames. Evidence archive, metadata, and
188
+ state writes use sibling-temp files, fsync, and atomic rename; lock acquisition
189
+ uses exclusive creation and fsync. Published `run.json` is the durable terminal
190
+ record, so terminal work state is not retained.
153
191
 
154
192
  Retention is deterministic because UTC run IDs sort chronologically:
155
193
 
156
194
  ```sh
157
- npx supercov clean --keep 20
158
- npx supercov clean --keep 20 --dry-run
195
+ npx supercov prune --keep 20
196
+ npx supercov prune --keep 20 --dry-run
197
+ npx supercov clean --keep 20 # also removes the shared build cache
159
198
  ```
160
199
 
161
- The cleanup command never removes an active workspace and never touches files
162
- outside `.supercov/`.
163
-
164
- The automatic adapters currently support standard Playwright suites (ESM and
165
- CommonJS specs in arbitrary project directories), project-owned Playwright
166
- fixture packages, Vitest, no-build Node commands, and Node coordinators that
167
- launch tests inside a mounted VM/container workspace. A single command such as
168
- `supercov -- npm test` can collect Vitest and Playwright evidence into the same
169
- run. No-build Node execution is retained as background/unattributed evidence
170
- until a recognized test-runner adapter supplies exact test boundaries. Jest,
171
- exact `node:test` attribution, non-Vite application builds, browser component
172
- runners, and distributed multi-host merging still require adapters; they are
173
- not silently reported as per-test coverage.
200
+ Neither operation runs automatically. `prune` removes explicit history beyond
201
+ the requested retention and orphan/terminal transient data while preserving
202
+ the shared cache. `clean` also removes that cache. Both acquire the same lock
203
+ as a coverage run, refuse to race an active run, and never touch files outside
204
+ `.supercov/`.
205
+
206
+ The complete ownership, crash-recovery, symlink, and future copy-free design is
207
+ documented in [Workspace isolation](docs/workspace-isolation.md).
208
+
209
+ Every run prints and stores monotonic phase timings for initialization,
210
+ workspace preparation, adapter setup, the instrumented build, the unchanged
211
+ test command, and evidence publication. They are available in
212
+ `.supercov/runs/<run-id>/run.json` and in the JSON form of `supercov runs`.
213
+ These phase timings do not pretend to be end-to-end overhead: that percentage
214
+ requires an explicit comparison with the same command run without Supercov,
215
+ which Supercov never executes automatically because an arbitrary test command
216
+ may have side effects or external cost. See
217
+ [Performance and storage](docs/performance.md) for the comparison methodology,
218
+ strategy trade-offs, and a measured real-suite reference.
219
+
220
+ The automatic exact-attribution adapters support standard Playwright suites
221
+ (ESM and CommonJS specs in arbitrary project directories), project-owned
222
+ Playwright fixture packages, Vitest, Jest—including concurrent and
223
+ parameterized tests—and `node:test`. A single command can collect several
224
+ runners into one run. Unsupported runners such as AVA or Mocha still receive
225
+ aggregate first-party structural coverage through inherited process
226
+ instrumentation, but their hits remain background/unattributed rather than
227
+ being guessed onto tests. Browser component runners without a recognized
228
+ adapter have the same explicit boundary.
174
229
 
175
230
  Remote execution discovery is structural rather than provider-specific. The
176
- preload observes CommonJS exports for a static `build(options)` capability,
177
- activates only when those options contain a host-to-guest mount that includes
231
+ preload and narrowly gated ESM transform observe exports for a static
232
+ `build(options)` capability,
233
+ activate only when those options contain a host-to-guest mount that includes
178
234
  the isolated project, scopes an existing cache/snapshot identity to the run's
179
235
  source fingerprint, and follows the opaque returned object graph. A method
180
236
  whose options contain `argv`, `cmd`, or `command` receives guest-translated
@@ -182,17 +238,17 @@ Supercov paths and a guest-valid Node preload. The execution log records this
182
238
  process/capability graph but hashes long or multiline arguments so embedded
183
239
  shell bodies and credentials are never persisted.
184
240
 
185
- This first zero-edit mechanism has explicit boundaries. It follows Node child
241
+ This zero-edit mechanism has explicit boundaries. It follows Node child
186
242
  processes, not arbitrary non-Node supervisors or a remote control plane that
187
- never exposes launches to the local process. The remote SDK must currently be
188
- visible through CommonJS loading, its build options must expose the workspace
189
- mount, and its execution call must accept an environment. Pure-ESM executor
190
- SDKs, positional-only remote exec APIs, and providers that hide all launch
191
- state behind an RPC need additional interception layers. Supercov reports
192
- missing evidence rather than claiming those paths are covered.
193
-
194
- The public regression suite includes a provider-neutral opaque executor. Its
195
- CommonJS SDK exposes only a static build capability, a host-to-guest mount,
243
+ never exposes launches to the local process. CommonJS and pure-ESM executor
244
+ SDKs, object-shaped and positional execution APIs, and opaque returned object
245
+ graphs are covered when a discoverable build capability exposes the workspace
246
+ mount and an execution capability accepts an environment. Providers that hide
247
+ all launch state behind an out-of-process RPC still need an adapter. Supercov
248
+ reports missing evidence rather than claiming those paths are covered.
249
+
250
+ The public regression suite includes provider-neutral CommonJS and pure-ESM
251
+ opaque executors. Each exposes only a static build capability, a host-to-guest mount,
196
252
  an existing snapshot key, an opaque image/pool/machine chain, and an
197
253
  argv-shaped execution method. CI requires Supercov to discover that structure,
198
254
  scope the cache identity, translate paths and the Node preload into the guest,
@@ -229,20 +285,20 @@ for either filtered subset. With `--kind e2e`, gap and file queries also
229
285
  distinguish obligations covered only by other test levels from obligations
230
286
  uncovered everywhere.
231
287
 
232
- The JSON report contains both per-test and per-test-file coverage data. MC/DC
233
- stores vector-level provenance rather than only a decision-level test list, so
234
- a later suite minimizer can recompute valid independence pairs for any proposed
235
- subset. This matters because the two vectors in a witness pair may come from
236
- different tests.
288
+ The query model reconstructed from the archive contains both per-test and
289
+ per-test-file coverage data. MC/DC stores vector-level provenance rather than
290
+ only a decision-level test list, so the exact minimizer recomputes valid
291
+ independence pairs for every proposed subset. This matters because the two
292
+ vectors in a witness pair may come from different tests.
237
293
 
238
- The same report also contains an action/assertion trace without requiring spec
294
+ The reconstructed query model also contains an action/assertion trace without requiring spec
239
295
  changes. Calls such as `page.goto()`, `locator.click()`, and `locator.fill()`
240
296
  open action phases; Playwright `expect()` matchers open assertion phases. The
241
297
  phase travels on browser requests into automatically wrapped Remix loaders,
242
298
  actions, and the server document renderer. Node async context preserves that
243
299
  ID through awaited helpers. An assertion also retains the preceding action ID,
244
300
  making chains such as “click -> application lines/decisions -> visible
245
- assertion” queryable in JSON and visible in HTML.
301
+ assertion” queryable in JSON.
246
302
 
247
303
  Server evidence is safe when Playwright uses multiple workers against one
248
304
  application server. Every routed request carries a run/worker/test/retry scope;
@@ -256,7 +312,7 @@ test. HTTP callbacks inherit the carrier automatically; child processes inherit
256
312
  it through their environment; and exported queue helpers support BullMQ,
257
313
  Bee-Queue, pg-boss, Agenda, and in-process schedulers. Evidence that arrives
258
314
  without a carrier is persisted under a first-class `background/unattributed`
259
- scope. It is visible in the all-attempt report and excluded from passed-only
315
+ scope. It is visible in the all-attempt view and excluded from passed-only
260
316
  per-test coverage.
261
317
 
262
318
  The Playwright adapter covers the page and request fixtures, API request
@@ -266,7 +322,7 @@ processes. A two-worker generic fixture exercises these surfaces without
266
322
  changing its test imports or Playwright config.
267
323
 
268
324
  Every run stores SHA-256 fingerprints for source, tests, dependency lockfiles,
269
- test/build configuration, and the instrumenter, plus its report schema and Git
325
+ test/build configuration, and the instrumenter, plus its evidence schema and Git
270
326
  revision/dirty state. Queries compare the stored fingerprint with the current
271
327
  workspace, visibly mark stale runs, and reject evidence carrying a different
272
328
  run scope.
@@ -292,5 +348,5 @@ The v2 denominator additionally measures optional-chain short-circuiting,
292
348
  logical assignments, parameter/destructuring defaults, try versus catch,
293
349
  zero versus entered `for-in`/`for-of`, and implicit switch no-match. Direct
294
350
  `eval`/`Function` source cannot receive a stable pre-run denominator; when such
295
- code is discovered the report records its exact location as a completeness
351
+ code is discovered the evidence records its exact location as a completeness
296
352
  blocker instead of allowing a misleading 100% verdict.
@@ -1 +1 @@
1
- {"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../src/analyze.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,eAAe,EACf,gBAAgB,EAKhB,iBAAiB,EACjB,UAAU,EACV,UAAU,EAIX,MAAM,YAAY,CAAC;AAiFpB;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,UAAU,EAClB,cAAc,EAAE,MAAM,GACrB,OAAO,CAmBT;AAoKD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,GACxB,eAAe,CAQjB;AAgCD,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,gBAAgB,EAC1B,UAAU,EAAE,iBAAiB,EAAE,GAC9B,UAAU,CAgpBZ"}
1
+ {"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../src/analyze.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,eAAe,EACf,gBAAgB,EAKhB,iBAAiB,EACjB,UAAU,EACV,UAAU,EAIX,MAAM,YAAY,CAAC;AAiFpB;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,UAAU,EAClB,cAAc,EAAE,MAAM,GACrB,OAAO,CAmBT;AAoKD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,GACxB,eAAe,CAQjB;AAgCD,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,gBAAgB,EAC1B,UAAU,EAAE,iBAAiB,EAAE,GAC9B,UAAU,CAipBZ"}
package/dist/analyze.js CHANGED
@@ -657,6 +657,7 @@ export function createMcdcReport(manifest, rawResults) {
657
657
  return {
658
658
  generatedAt: new Date().toISOString(),
659
659
  variant: "masking-short-circuit",
660
+ ...(manifest.scope ? { scope: manifest.scope } : {}),
660
661
  model: {
661
662
  name: "coverage-completeness-v2",
662
663
  completenessMeaning: "Every obligation in the measured model was observed by at least one existing test; test assertions and product correctness are separate assumptions.",
@@ -1 +1 @@
1
- {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../src/analyze.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../src/analyze.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { CoverageRunIntegrity } from "./types.ts";
2
+ import type { CoverageProject } from "./project.ts";
3
+ export declare const INSTRUMENTED_BUILD_CACHE_SCHEMA_VERSION = 1;
4
+ export interface InstrumentedBuildCache {
5
+ schemaVersion: typeof INSTRUMENTED_BUILD_CACHE_SCHEMA_VERSION;
6
+ key: string;
7
+ createdAt: string;
8
+ artifactPaths: string[];
9
+ }
10
+ export declare function instrumentedBuildCacheKey(integrity: CoverageRunIntegrity, project: CoverageProject): string;
11
+ export declare function readInstrumentedBuildCache(workspace: string, key: string): InstrumentedBuildCache | undefined;
12
+ export declare function writeInstrumentedBuildCache(workspace: string, key: string): InstrumentedBuildCache | undefined;
13
+ export declare function buildCacheReusePaths(metadata: InstrumentedBuildCache): string[];
14
+ //# sourceMappingURL=buildCache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildCache.d.ts","sourceRoot":"","sources":["../src/buildCache.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,eAAO,MAAM,uCAAuC,IAAI,CAAC;AAUzD,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,OAAO,uCAAuC,CAAC;IAC9D,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAgBD,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,oBAAoB,EAC/B,OAAO,EAAE,eAAe,GACvB,MAAM,CAeR;AAED,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,GACV,sBAAsB,GAAG,SAAS,CAqBpC;AAED,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,GACV,sBAAsB,GAAG,SAAS,CAqCpC;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,sBAAsB,GAC/B,MAAM,EAAE,CAEV"}
@@ -0,0 +1,84 @@
1
+ import { createHash } from "node:crypto";
2
+ import { existsSync, readFileSync } from "node:fs";
3
+ import { isAbsolute, resolve, sep } from "node:path";
4
+ import { atomicWriteFileSync } from "./atomic.js";
5
+ export const INSTRUMENTED_BUILD_CACHE_SCHEMA_VERSION = 1;
6
+ const BUILD_OUTPUT_CANDIDATES = [
7
+ "build",
8
+ "dist",
9
+ ".next",
10
+ ".nuxt",
11
+ ".output",
12
+ ];
13
+ function metadataPath(workspace) {
14
+ return resolve(workspace, ".supercov/build-cache.json");
15
+ }
16
+ function safeRelativePath(path) {
17
+ return Boolean(path &&
18
+ !isAbsolute(path) &&
19
+ path !== ".." &&
20
+ !path.startsWith(`..${sep}`) &&
21
+ !path.split(/[\\/]/).includes(".."));
22
+ }
23
+ export function instrumentedBuildCacheKey(integrity, project) {
24
+ return createHash("sha256")
25
+ .update(JSON.stringify({
26
+ schemaVersion: INSTRUMENTED_BUILD_CACHE_SCHEMA_VERSION,
27
+ executionFingerprint: integrity.fingerprint.execution,
28
+ adapter: project.buildAdapter,
29
+ command: project.buildCommand,
30
+ environment: project.buildEnvironment,
31
+ node: process.versions.node,
32
+ platform: process.platform,
33
+ architecture: process.arch,
34
+ }))
35
+ .digest("hex");
36
+ }
37
+ export function readInstrumentedBuildCache(workspace, key) {
38
+ let metadata;
39
+ try {
40
+ metadata = JSON.parse(readFileSync(metadataPath(workspace), "utf8"));
41
+ }
42
+ catch {
43
+ return undefined;
44
+ }
45
+ if (metadata.schemaVersion !== INSTRUMENTED_BUILD_CACHE_SCHEMA_VERSION ||
46
+ metadata.key !== key ||
47
+ !Array.isArray(metadata.artifactPaths) ||
48
+ metadata.artifactPaths.length === 0 ||
49
+ metadata.artifactPaths.some((path) => !safeRelativePath(path) || !existsSync(resolve(workspace, path)))) {
50
+ return undefined;
51
+ }
52
+ return metadata;
53
+ }
54
+ export function writeInstrumentedBuildCache(workspace, key) {
55
+ let declared = {};
56
+ try {
57
+ declared = JSON.parse(readFileSync(resolve(workspace, ".supercov/build-outputs.json"), "utf8"));
58
+ }
59
+ catch {
60
+ // Older/native Vite integrations use the conservative known outputs.
61
+ }
62
+ const existingOutputs = [
63
+ ...new Set([
64
+ ...BUILD_OUTPUT_CANDIDATES,
65
+ ...(declared.paths ?? []).filter(safeRelativePath),
66
+ ]),
67
+ ].filter((path) => existsSync(resolve(workspace, path)));
68
+ const outputs = existingOutputs.filter((path) => !existingOutputs.some((parent) => parent !== path && path.startsWith(`${parent}/`)));
69
+ const manifest = ".supercov/manifest.json";
70
+ if (outputs.length === 0 || !existsSync(resolve(workspace, manifest)))
71
+ return undefined;
72
+ const metadata = {
73
+ schemaVersion: INSTRUMENTED_BUILD_CACHE_SCHEMA_VERSION,
74
+ key,
75
+ createdAt: new Date().toISOString(),
76
+ artifactPaths: [...outputs, manifest],
77
+ };
78
+ atomicWriteFileSync(metadataPath(workspace), `${JSON.stringify(metadata, null, 2)}\n`);
79
+ return metadata;
80
+ }
81
+ export function buildCacheReusePaths(metadata) {
82
+ return [...metadata.artifactPaths, ".supercov/build-cache.json"];
83
+ }
84
+ //# sourceMappingURL=buildCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildCache.js","sourceRoot":"","sources":["../src/buildCache.ts"],"names":[],"mappings":"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"}