@systemfsoftware/stryker-js 15.0.0 → 16.0.0
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/CHANGELOG.md +44 -0
- package/README.md +12 -6
- package/dist/{Run.schema-B1HZugu9.d.mts → Run.schema-CgcTsB1w.d.mts} +1 -1
- package/dist/{RunEnvironment.service-B1bsWOQ9.d.mts → RunEnvironment.service-F8LgeCqh.d.mts} +90 -18
- package/dist/config.d.mts +2 -2
- package/dist/config.mjs +1 -1
- package/dist/events.d.mts +1 -1
- package/dist/{index-Cf9G6kA8.d.mts → index-DEphx668.d.mts} +11 -2
- package/dist/index.d.mts +11 -6
- package/dist/index.mjs +3 -2
- package/dist/main.mjs +2077 -1350
- package/dist/{merge-config-zsGl1aWc.mjs → merge-config-BYhhPA7r.mjs} +12 -5
- package/dist/{merge-config-BdQdK3PM.d.mts → merge-config-b06M-Ccx.d.mts} +2 -2
- package/dist/promises.d.mts +2 -2
- package/dist/promises.mjs +1 -1
- package/dist/{run-stages-aBT_QAfO.mjs → run-stages-k4L7ymmp.mjs} +570 -254
- package/package.json +10 -10
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,49 @@
|
|
|
1
1
|
# @systemfsoftware/stryker-js
|
|
2
2
|
|
|
3
|
+
## 16.0.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- Mutation testing is now incremental by default: `incremental` defaults to `true`, so an unchanged mutant whose covering tests are unchanged is re-used instead of re-run. `--full` (aliasing the old `--force`) re-verifies every mutant, ignoring the cache and the persisted dry run. The `verdict` stream event records `incrementalMode` (`incremental` or `full`). A run with no reusable cache falls back to a full run as before.
|
|
8
|
+
|
|
9
|
+
- The incremental report and its checkpoints now record a `costs` entry for every mutant: the predicted milliseconds from the measured dry-run times of its covering tests plus the run's fixed overhead, the wall time of its last executed run, and its covering-test count. A verdict reused from an earlier run carries its recorded `actualMs` forward instead of losing it. The incremental cache layout moves to version `3`, so a report written by an earlier release is discarded rather than reused.
|
|
10
|
+
|
|
11
|
+
- A mutation run now starts only on main CI. The `run` command, the programmatic run entry point, and every other surface that begins a mutation run refuse to start unless the process runs under GitHub Actions (`GITHUB_ACTIONS=true`); anything else — a developer machine, a fork, or another CI — exits non-zero instead of running mutants. A refused run ends the machine-readable output with a new `refused` event whose `rule` is `mutation-runs-on-main-ci`, and the machine-stream schema version is now `3.0`. Dry runs (`--dryRunOnly`), `--version`, and config and help commands are unaffected.
|
|
12
|
+
|
|
13
|
+
- The old report-merge command becomes `merge`, which now reads the shard plan and the per-shard report directories and combines them into one mutation report and a per-project incremental report. A merge fails, naming the mutants, when a planned mutant is missing from its shard report or reported by two shards. A new shard mode runs exactly the mutants of one shard, spawning a child run per project the shard lists, so a plan can be executed across parallel jobs and merged afterwards; mutants outside a shard are neither run nor reported.
|
|
14
|
+
|
|
15
|
+
- The TypeScript checker now applies Trivial Compiler Equivalence (Papadakis et al., ICSE 2015). Each mutant of a file is emitted to JavaScript from the project's own TypeScript configuration in transpile-only mode, normalized, and compared with the original file's emit and with the mutants already emitted at the same site. A mutant whose emit equals the original's is dropped as `Ignored` with reason `equivalent-to-original: tce`; one that equals an earlier same-site mutant's is dropped with `duplicate-at-site: tce`; every mutant whose emit differs is kept, so the check never removes a mutant that changes the program. Checkers gain an `ignored` result variant carrying the suppression reason, and a run publishes the new `tce` machine-stream event with the `equivalentToOriginal` and `duplicateAtSite` counts. Verdict semantics move to version 3.
|
|
16
|
+
|
|
17
|
+
- Every mutation and incremental run now records a `budget` of predicted and actual seconds on its machine verdict line and in its mutation and incremental reports, derived from the measured cost of the mutants it scheduled and the wall time the run took. `stryker gate` takes `--budget-baseline <file>`, an optional `--budget-tolerance` (default 0.25), and `--update-budget-baseline`; it fails with exit 1 when the finished run's actual seconds exceed the committed baseline by more than the tolerance, naming both numbers, and rewrites the baseline with the current run when updating.
|
|
18
|
+
|
|
19
|
+
### Minor Changes
|
|
20
|
+
|
|
21
|
+
- A new `stryker plan` subcommand discovers each project's mutants without running tests, decides reuse against that project's incremental report, costs every scheduled mutant, and packs them into deterministically LPT-scheduled shards. It takes `--target-seconds`, optional `--max-shards`, `--projects`, `--out`, and `--full`, writes a `ShardPlan`, and emits a `plan` stream event.
|
|
22
|
+
|
|
23
|
+
- Every test-runner and checker process boot now publishes a `worker` line on the machine stream carrying its role, boot ordinal and measured start-up time, so the once-per-worker start-up cost is observable instead of hidden behind the first mutant's per-run overhead. The stream schema version is now `6.0`.
|
|
24
|
+
|
|
25
|
+
### Patch Changes
|
|
26
|
+
|
|
27
|
+
- The README now has an upgrade note for 13.x users. 14.0.0 made `'default'` the default `mutator.mutantSetPolicy`, so scores graded under 13.x and later releases cover different mutant sets and are not comparable. The note names where each run records its policy, and states that `mutator: { mutantSetPolicy: 'full' }` keeps the 13.x mutant set.
|
|
28
|
+
|
|
29
|
+
- A cached incremental report that cannot be decoded now names the decode failure in the run log, so a cache written by an older release says which field the reader refused instead of only that the file could not be parsed.
|
|
30
|
+
|
|
31
|
+
- Repeating an incremental run in a workspace that builds with Turbo now reuses the pending dry-run coverage and the cached verdicts again. A package's `.turbo` task logs are generated by each build and record that build, so they no longer count as project files the run must watch: a rebuild no longer invalidates coverage whose inputs did not change.
|
|
32
|
+
|
|
33
|
+
- Mutants no test covers are now verified by the configured checkers before they are reported `NoCoverage`. A checker that rejects such a mutant reports it `CompileError`, with the checker's reason, instead of `NoCoverage`; uncovered mutants that pass every checker are still reported `NoCoverage`. Previously the checkers never saw uncovered mutants, so a non-compiling mutant no test reaches counted as an undetected survivor.
|
|
34
|
+
|
|
35
|
+
- The incremental report and its checkpoints are now written atomically: the bytes go to a temporary file in the same directory and are renamed over the target, so an interrupted or killed run (a job-cap timeout, or a process stopped while the report is being saved) can no longer leave a truncated incremental file behind. A run that finds a cache written this way decodes it and reuses it instead of discarding the whole mutation history. The mutation report, summary, and incremental report that `stryker merge` writes are saved the same way.
|
|
36
|
+
|
|
37
|
+
## 15.0.1
|
|
38
|
+
|
|
39
|
+
### Patch Changes
|
|
40
|
+
|
|
41
|
+
- `cleanTempDir` now decides from how the run ended. With the default (`true`), a successful run removes its `.stryker-tmp/sandbox-*` directory and a failed run keeps it; previously every sandbox was kept, so `.stryker-tmp` grew with each run. `cleanTempDir: false` now keeps the sandbox after every run instead of deleting it. `'always'` still removes it after every run.
|
|
42
|
+
|
|
43
|
+
- A test runner, checker, or reporter process that stops responding no longer hangs the mutation run forever. When such a process does not exit within 5 seconds of being asked to stop, Stryker force-kills it, so the run ends with an error instead of waiting until something kills it from outside.
|
|
44
|
+
|
|
45
|
+
- A test runner, checker, or reporter process that starts but never accepts its connection no longer hangs the mutation run forever. Stryker gives each plugin worker 30 seconds to accept the connection on `STRYKER_SOCKET`; a worker that misses that window fails the run with a boot error naming its process id, and the process is stopped. The window does not depend on `dryRunTimeoutMinutes`. A worker that has already connected still reconnects after a dropped connection, as before.
|
|
46
|
+
|
|
3
47
|
## 15.0.0
|
|
4
48
|
|
|
5
49
|
### Major Changes
|
package/README.md
CHANGED
|
@@ -153,14 +153,14 @@ pnpm exec stryker run --mutant <id,...>
|
|
|
153
153
|
# Re-test only surviving mutants from prior run
|
|
154
154
|
pnpm exec stryker run --survivors
|
|
155
155
|
|
|
156
|
-
#
|
|
157
|
-
pnpm exec stryker run --
|
|
156
|
+
# Incremental caching is on by default; re-verify every mutant instead
|
|
157
|
+
pnpm exec stryker run --full
|
|
158
158
|
|
|
159
159
|
# Run with specific concurrency
|
|
160
160
|
pnpm exec stryker run --concurrency 4
|
|
161
161
|
|
|
162
162
|
# Merge partial mutation reports from parallel CI shards
|
|
163
|
-
pnpm exec stryker merge
|
|
163
|
+
pnpm exec stryker merge --plan plan.json reports/shards/1 reports/shards/2 --out reports/mutation
|
|
164
164
|
|
|
165
165
|
# Fail on survivors absent from a committed baseline
|
|
166
166
|
pnpm exec stryker gate --baseline .stryker-baseline.json
|
|
@@ -177,7 +177,9 @@ pnpm exec stryker serve stdio
|
|
|
177
177
|
pnpm exec stryker mcp
|
|
178
178
|
```
|
|
179
179
|
|
|
180
|
-
`stryker run --since <ref>` takes the merge base of `<ref>` and the working tree, diffs it at `--unified=0`, and intersects the changed lines with `mutate`; it falls back to a full run when the Stryker config, a test-runner config, `package.json`, or the lockfile changed. `stryker run --mutant <id,...>` admits each id against the previous report (`reports/mutation/mutation.json`), restricts the run to those mutants' files, and emits each one's status, covering tests, killing test, and a `stryker run --mutant <id>` reproducer. `stryker gate` exits non-zero on survivors missing from its baseline, `stryker compare` exits `1` on a status mismatch after subtracting a `--noise` file, and `stryker annotate` prints GitHub workflow commands at each surfaced survivor.
|
|
180
|
+
`stryker run --since <ref>` takes the merge base of `<ref>` and the working tree, diffs it at `--unified=0`, and intersects the changed lines with `mutate`; it falls back to a full run when the Stryker config, a test-runner config, `package.json`, or the lockfile changed. `stryker run --mutant <id,...>` admits each id against the previous report (`reports/mutation/mutation.json`), restricts the run to those mutants' files, and emits each one's status, covering tests, killing test, and a `stryker run --mutant <id>` reproducer. `stryker gate` exits non-zero on survivors missing from its baseline, `stryker compare` exits `1` on a status mismatch after subtracting a `--noise` file, and `stryker annotate` prints GitHub workflow commands at each surfaced survivor.
|
|
181
|
+
|
|
182
|
+
A mutation run only starts on main CI. `stryker run` — and the programmatic `run`/`strykerCell` entry, the MSP `mutationTest` request, and the MCP `rerun_mutant` tool — refuses to start unless `GITHUB_ACTIONS` is `true`. A refused run exits non-zero and ends the machine stream with a `refused` event naming the rule (`mutation-runs-on-main-ci`). Dry runs (`--dryRunOnly`), `--version`, config and help commands, the MSP `discover` request, and the read-only MCP tools are unaffected. `stryker serve stdio|socket` speaks the Mutation Server Protocol and `stryker mcp` serves MCP over stdio.
|
|
181
183
|
|
|
182
184
|
## Output Modes
|
|
183
185
|
|
|
@@ -188,16 +190,20 @@ pnpm exec stryker run --json # wire records on stdout, diagnostic
|
|
|
188
190
|
STRYKER_MODE=machine pnpm exec stryker run # the same, named by environment
|
|
189
191
|
```
|
|
190
192
|
|
|
191
|
-
`--format text` names the human format explicitly; `--json` together with `--format text` is a usage error (exit 2). Under `--json`, `stdout` carries wire records and nothing else — progress lines and log output stay on `stderr`. Every run also writes the same records to `reports/mutation-stream.jsonl` (`--progressStreamFile`) in both modes, which is the artifact `stryker merge
|
|
193
|
+
`--format text` names the human format explicitly; `--json` together with `--format text` is a usage error (exit 2). Under `--json`, `stdout` carries wire records and nothing else — progress lines and log output stay on `stderr`. Every run also writes the same records to `reports/mutation-stream.jsonl` (`--progressStreamFile`) in both modes, which is the artifact `stryker merge` rebuilds a shard's partial report from.
|
|
192
194
|
|
|
193
195
|
## Reporters, Sidecars, and Verdict Reuse
|
|
194
196
|
|
|
195
197
|
`reporters` defaults to `['clear-text', 'progress', 'html']`. Add `sarif` to also write `reports/mutation/mutation.sarif` (SARIF 2.1.0, named from `jsonReporter.fileName`): each survivor is a `warning` result, each no-coverage mutant a `note`, the fingerprint is the mutant's content id, and the log is capped at 5,000 results. Every run writes `reports/mutation/reproducers.json`: one entry per mutant in the report, holding its mutated-lines diff and the `stryker run --mutant <id>` command that reproduces it.
|
|
196
198
|
|
|
197
|
-
The incremental cache is keyed by content: a mutant's id, the import-closure digest of its covering tests, the run inputs, the verdict-semantics version, and the mutant-set policy. Nothing in the key names a shard, branch, report path, or machine, so verdicts from different runs union and are reused wherever their inputs match. `incrementalSources` accepts globs of further incremental reports to union beside `incrementalFile`, which is how a sharded CI workspace reuses the reports it restored from other shards. Each run's stream carries a `reuse` line with the reused, ran, and per-reason refused counts, and an unchanged project reuses its persisted initial test run instead of repeating it.
|
|
199
|
+
Incremental reuse is on by default: an unchanged mutant whose covering tests are unchanged is re-used and the verdict records its `incrementalMode` (`incremental` or `full`). Pass `--full` to re-verify every mutant, ignoring the cache and the persisted dry run. The incremental cache is keyed by content: a mutant's id, the import-closure digest of its covering tests, the run inputs, the verdict-semantics version, and the mutant-set policy. Nothing in the key names a shard, branch, report path, or machine, so verdicts from different runs union and are reused wherever their inputs match. `incrementalSources` accepts globs of further incremental reports to union beside `incrementalFile`, which is how a sharded CI workspace reuses the reports it restored from other shards. Each run's stream carries a `reuse` line with the reused, ran, and per-reason refused counts, and an unchanged project reuses its persisted initial test run instead of repeating it.
|
|
198
200
|
|
|
199
201
|
`mutator.mutantSetPolicy` defaults to `'default'`, which suppresses the mutants a rule proves redundant — a relational replacement outside the sufficient set, a conditional that collapses to a literal, a replacement equal to the original code, or a duplicate already planted at the site — and records the rule id in the mutant's report entry. Set `mutator: { mutantSetPolicy: 'full' }` to keep every variant. `surfacing` (`{ perLine: 1, perFile: 7 }`) caps how many survivors reach the review surfaces and SARIF, without changing what the engine computes.
|
|
200
202
|
|
|
203
|
+
### Upgrading from 13.x: the mutant set changed in 14.0.0
|
|
204
|
+
|
|
205
|
+
14.0.0 made `'default'` the default `mutator.mutantSetPolicy`; 13.x generated what `'full'` generates now. A score produced under one policy grades a different mutant set from a score under the other, so the two are not comparable: removing a killed mutant lowers the score, removing a survivor raises it. Every run records its policy (the stream's `verdict.mutantSetPolicy` and the incremental report), and a cached verdict from the other policy is refused with `policyChanged`. To compare against a 13.x baseline, or to keep grading the 13.x mutant set, set `mutator: { mutantSetPolicy: 'full' }`.
|
|
206
|
+
|
|
201
207
|
## Programmatic API
|
|
202
208
|
|
|
203
209
|
### Effect 4 Native Interface
|
package/dist/{RunEnvironment.service-B1bsWOQ9.d.mts → RunEnvironment.service-F8LgeCqh.d.mts}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as mod_d_exports$6, c as mod_d_exports$9, d as Program$2, f as Statement, i as mod_d_exports$5, l as Ignorer$1, n as mod_d_exports$2$1, o as mod_d_exports$7, r as mod_d_exports$4, s as mod_d_exports$8, t as mod_d_exports$3 } from "./index-
|
|
2
|
-
import "./Run.schema-
|
|
1
|
+
import { a as mod_d_exports$6, c as mod_d_exports$9, d as Program$2, f as Statement, i as mod_d_exports$5, l as Ignorer$1, n as mod_d_exports$2$1, o as mod_d_exports$7, r as mod_d_exports$4, s as mod_d_exports$8, t as mod_d_exports$3 } from "./index-DEphx668.mjs";
|
|
2
|
+
import "./Run.schema-CgcTsB1w.mjs";
|
|
3
3
|
import { Cell, Handle, Sandwich, Workflow } from "@systemfsoftware/effect-cell-types";
|
|
4
4
|
import * as S from "effect/Schema";
|
|
5
5
|
import * as Option$1 from "effect/Option";
|
|
@@ -144,7 +144,7 @@ type RunPhase = typeof RunPhase.Type;
|
|
|
144
144
|
declare const RunId: S.brand<S.String, "RunId">;
|
|
145
145
|
type RunId = typeof RunId.Type;
|
|
146
146
|
declare const RunStarted_base: S.Class<RunStarted, S.TaggedStruct<"stream", {
|
|
147
|
-
readonly schemaVersion: S.Literal<"
|
|
147
|
+
readonly schemaVersion: S.Literal<"6.0">;
|
|
148
148
|
readonly runId: S.brand<S.String, "RunId">;
|
|
149
149
|
readonly mode: S.Literals<readonly ["human", "machine"]>;
|
|
150
150
|
readonly signal: S.Literals<readonly ["flag", "env", "tty", "agent", "tool"]>;
|
|
@@ -157,8 +157,36 @@ declare const PhaseEntered_base: S.Class<PhaseEntered, S.TaggedStruct<"phase", {
|
|
|
157
157
|
declare class PhaseEntered extends PhaseEntered_base {}
|
|
158
158
|
declare const PlanKnown_base: S.Class<PlanKnown, S.TaggedStruct<"plan", {
|
|
159
159
|
readonly total: S.Int;
|
|
160
|
+
readonly shardPlan: S.NullOr<S.Struct<{
|
|
161
|
+
readonly version: S.Literal<1>;
|
|
162
|
+
readonly targetSeconds: S.Finite;
|
|
163
|
+
readonly shards: S.$Array<S.Struct<{
|
|
164
|
+
readonly index: S.Int;
|
|
165
|
+
readonly count: S.Int;
|
|
166
|
+
readonly predictedSeconds: S.Finite;
|
|
167
|
+
readonly projects: S.$Array<S.Struct<{
|
|
168
|
+
readonly project: S.String;
|
|
169
|
+
readonly mutants: S.$Array<S.String>;
|
|
170
|
+
}>>;
|
|
171
|
+
}>>;
|
|
172
|
+
readonly matrix: S.Struct<{
|
|
173
|
+
readonly include: S.$Array<S.Struct<{
|
|
174
|
+
readonly shard: S.String;
|
|
175
|
+
readonly predictedSeconds: S.Finite;
|
|
176
|
+
}>>;
|
|
177
|
+
}>;
|
|
178
|
+
}>>;
|
|
160
179
|
}>, {}>;
|
|
161
180
|
declare class PlanKnown extends PlanKnown_base {}
|
|
181
|
+
declare const WorkerRole: S.Literals<readonly ["testRunner", "checker"]>;
|
|
182
|
+
type WorkerRole = typeof WorkerRole.Type;
|
|
183
|
+
declare const WorkerReported_base: S.Class<WorkerReported, S.TaggedStruct<"worker", {
|
|
184
|
+
readonly schemaVersion: S.Literal<"6.0">;
|
|
185
|
+
readonly role: S.Literals<readonly ["testRunner", "checker"]>;
|
|
186
|
+
readonly index: S.Int;
|
|
187
|
+
readonly startupMs: S.Finite;
|
|
188
|
+
}>, {}>;
|
|
189
|
+
declare class WorkerReported extends WorkerReported_base {}
|
|
162
190
|
declare const MutantCost: S.Struct<{
|
|
163
191
|
readonly fixedOverheadMs: S.Finite;
|
|
164
192
|
readonly testBodyMs: S.Finite;
|
|
@@ -309,6 +337,8 @@ declare const RunScope: S.Literals<readonly ["full", "diff"]>;
|
|
|
309
337
|
type RunScope = typeof RunScope.Type;
|
|
310
338
|
declare const MutantSetPolicy: S.Literals<readonly ["default", "full"]>;
|
|
311
339
|
type MutantSetPolicy = typeof MutantSetPolicy.Type;
|
|
340
|
+
declare const IncrementalMode: S.Literals<readonly ["incremental", "full"]>;
|
|
341
|
+
type IncrementalMode = typeof IncrementalMode.Type;
|
|
312
342
|
declare const PhaseDurations: S.Struct<{
|
|
313
343
|
readonly prepare: S.Finite;
|
|
314
344
|
readonly instrument: S.Finite;
|
|
@@ -321,8 +351,13 @@ declare const StaticVerdict: S.Struct<{
|
|
|
321
351
|
readonly costMs: S.Finite;
|
|
322
352
|
}>;
|
|
323
353
|
type StaticVerdict = typeof StaticVerdict.Type;
|
|
354
|
+
declare const Budget: S.Struct<{
|
|
355
|
+
readonly predictedSeconds: S.Finite;
|
|
356
|
+
readonly actualSeconds: S.Finite;
|
|
357
|
+
}>;
|
|
358
|
+
type Budget = typeof Budget.Type;
|
|
324
359
|
declare const VerdictReached_base: S.Class<VerdictReached, S.TaggedStruct<"verdict", {
|
|
325
|
-
readonly schemaVersion: S.Literal<"
|
|
360
|
+
readonly schemaVersion: S.Literal<"6.0">;
|
|
326
361
|
readonly runId: S.brand<S.String, "RunId">;
|
|
327
362
|
readonly mode: S.Literals<readonly ["human", "machine"]>;
|
|
328
363
|
readonly signal: S.Literals<readonly ["flag", "env", "tty", "agent", "tool"]>;
|
|
@@ -353,6 +388,7 @@ declare const VerdictReached_base: S.Class<VerdictReached, S.TaggedStruct<"verdi
|
|
|
353
388
|
}>>;
|
|
354
389
|
readonly scope: S.Literals<readonly ["full", "diff"]>;
|
|
355
390
|
readonly mutantSetPolicy: S.Literals<readonly ["default", "full"]>;
|
|
391
|
+
readonly incrementalMode: S.optionalKey<S.Literals<readonly ["incremental", "full"]>>;
|
|
356
392
|
readonly phaseDurations: S.NullOr<S.Struct<{
|
|
357
393
|
readonly prepare: S.Finite;
|
|
358
394
|
readonly instrument: S.Finite;
|
|
@@ -363,6 +399,10 @@ declare const VerdictReached_base: S.Class<VerdictReached, S.TaggedStruct<"verdi
|
|
|
363
399
|
readonly count: S.Int;
|
|
364
400
|
readonly costMs: S.Finite;
|
|
365
401
|
}>>;
|
|
402
|
+
readonly budget: S.Struct<{
|
|
403
|
+
readonly predictedSeconds: S.Finite;
|
|
404
|
+
readonly actualSeconds: S.Finite;
|
|
405
|
+
}>;
|
|
366
406
|
}>, {}>;
|
|
367
407
|
declare class VerdictReached extends VerdictReached_base {}
|
|
368
408
|
declare const FrameworkContributionRow: S.Struct<{
|
|
@@ -456,6 +496,11 @@ declare const ReuseReported_base: S.Class<ReuseReported, S.TaggedStruct<"reuse",
|
|
|
456
496
|
}>;
|
|
457
497
|
}>, {}>;
|
|
458
498
|
declare class ReuseReported extends ReuseReported_base {}
|
|
499
|
+
declare const TceReported_base: S.Class<TceReported, S.TaggedStruct<"tce", {
|
|
500
|
+
readonly equivalentToOriginal: S.Int;
|
|
501
|
+
readonly duplicateAtSite: S.Int;
|
|
502
|
+
}>, {}>;
|
|
503
|
+
declare class TceReported extends TceReported_base {}
|
|
459
504
|
declare const MutantDetailReported_base: S.Class<MutantDetailReported, S.TaggedStruct<"mutant-detail", {
|
|
460
505
|
readonly id: S.brand<S.String, "MutantId">;
|
|
461
506
|
readonly status: S.Literals<readonly ["Killed", "Survived", "NoCoverage", "CompileError", "RuntimeError", "Timeout", "Ignored", "Pending"]>;
|
|
@@ -473,7 +518,7 @@ declare const FeedbackReported_base: S.Class<FeedbackReported, S.TaggedStruct<"f
|
|
|
473
518
|
}>, {}>;
|
|
474
519
|
declare class FeedbackReported extends FeedbackReported_base {}
|
|
475
520
|
declare const RunFailed_base: S.Class<RunFailed, S.TaggedStruct<"error", {
|
|
476
|
-
readonly schemaVersion: S.Literal<"
|
|
521
|
+
readonly schemaVersion: S.Literal<"6.0">;
|
|
477
522
|
readonly code: S.Int;
|
|
478
523
|
readonly error: S.String;
|
|
479
524
|
readonly remediation: S.String;
|
|
@@ -492,12 +537,20 @@ declare const RunFailed_base: S.Class<RunFailed, S.TaggedStruct<"error", {
|
|
|
492
537
|
}>, {}>;
|
|
493
538
|
declare class RunFailed extends RunFailed_base {}
|
|
494
539
|
declare const HelpRendered_base: S.Class<HelpRendered, S.TaggedStruct<"help", {
|
|
495
|
-
readonly schemaVersion: S.Literal<"
|
|
540
|
+
readonly schemaVersion: S.Literal<"6.0">;
|
|
496
541
|
readonly code: S.Literals<readonly [0]>;
|
|
497
542
|
readonly help: S.String;
|
|
498
543
|
}>, {}>;
|
|
499
544
|
declare class HelpRendered extends HelpRendered_base {}
|
|
500
|
-
declare const
|
|
545
|
+
declare const RefusalRule: S.Literal<"mutation-runs-on-main-ci">;
|
|
546
|
+
type RefusalRule = typeof RefusalRule.Type;
|
|
547
|
+
declare const Refused_base: S.Class<Refused, S.TaggedStruct<"refused", {
|
|
548
|
+
readonly schemaVersion: S.Literal<"6.0">;
|
|
549
|
+
readonly rule: S.Literal<"mutation-runs-on-main-ci">;
|
|
550
|
+
readonly message: S.String;
|
|
551
|
+
}>, {}>;
|
|
552
|
+
declare class Refused extends Refused_base {}
|
|
553
|
+
declare const RunEvent: S.Union<readonly [typeof RunStarted, typeof PhaseEntered, typeof PlanKnown, typeof WorkerReported, S.Codec<RunMutantTestedEvent, {
|
|
501
554
|
readonly _tag: "mutant";
|
|
502
555
|
readonly id: string;
|
|
503
556
|
readonly status: "CompileError" | "Ignored" | "Killed" | "NoCoverage" | "Pending" | "RuntimeError" | "Survived" | "Timeout";
|
|
@@ -523,14 +576,14 @@ declare const RunEvent: S.Union<readonly [typeof RunStarted, typeof PhaseEntered
|
|
|
523
576
|
readonly testsExecuted: number;
|
|
524
577
|
readonly shared: boolean;
|
|
525
578
|
} | null;
|
|
526
|
-
}, never, never>, typeof Heartbeat, typeof PluginsReported, typeof FormatRegistryResolved, typeof SkippedReported, typeof ReuseReported, typeof MutantDetailReported, typeof FeedbackReported, typeof VerdictReached, typeof RunFailed, typeof HelpRendered]> & {
|
|
579
|
+
}, never, never>, typeof Heartbeat, typeof PluginsReported, typeof FormatRegistryResolved, typeof SkippedReported, typeof ReuseReported, typeof TceReported, typeof MutantDetailReported, typeof FeedbackReported, typeof VerdictReached, typeof RunFailed, typeof HelpRendered, typeof Refused]> & {
|
|
527
580
|
QUEUE_BOUND: number;
|
|
528
581
|
};
|
|
529
582
|
type RunEvent = typeof RunEvent.Type;
|
|
530
|
-
type RunTerminalEvent = VerdictReached | RunFailed | HelpRendered;
|
|
583
|
+
type RunTerminalEvent = VerdictReached | RunFailed | HelpRendered | Refused;
|
|
531
584
|
//#endregion
|
|
532
585
|
//#region src/run-event-wire.schema.d.ts
|
|
533
|
-
declare const RunEventWireLine: S.decodeTo<S.fromJsonString<S.Union<readonly [typeof RunStarted, typeof PhaseEntered, typeof PlanKnown, S.Codec<RunMutantTestedEvent, {
|
|
586
|
+
declare const RunEventWireLine: S.decodeTo<S.fromJsonString<S.Union<readonly [typeof RunStarted, typeof PhaseEntered, typeof PlanKnown, typeof WorkerReported, S.Codec<RunMutantTestedEvent, {
|
|
534
587
|
readonly _tag: "mutant";
|
|
535
588
|
readonly id: string;
|
|
536
589
|
readonly status: "CompileError" | "Ignored" | "Killed" | "NoCoverage" | "Pending" | "RuntimeError" | "Survived" | "Timeout";
|
|
@@ -556,16 +609,16 @@ declare const RunEventWireLine: S.decodeTo<S.fromJsonString<S.Union<readonly [ty
|
|
|
556
609
|
readonly testsExecuted: number;
|
|
557
610
|
readonly shared: boolean;
|
|
558
611
|
} | null;
|
|
559
|
-
}, never, never>, typeof Heartbeat, typeof PluginsReported, typeof FormatRegistryResolved, typeof SkippedReported, typeof ReuseReported, typeof MutantDetailReported, typeof FeedbackReported, typeof VerdictReached, typeof RunFailed, typeof HelpRendered]> & {
|
|
612
|
+
}, never, never>, typeof Heartbeat, typeof PluginsReported, typeof FormatRegistryResolved, typeof SkippedReported, typeof ReuseReported, typeof TceReported, typeof MutantDetailReported, typeof FeedbackReported, typeof VerdictReached, typeof RunFailed, typeof HelpRendered, typeof Refused]> & {
|
|
560
613
|
QUEUE_BOUND: number;
|
|
561
614
|
}>, S.String, never, never>;
|
|
562
615
|
type RunEventWireLine = typeof RunEventWireLine.Type;
|
|
563
616
|
//#endregion
|
|
564
617
|
//#region src/stream-version.schema.d.ts
|
|
565
|
-
declare const StreamSchemaVersion: S.Literal<"
|
|
618
|
+
declare const StreamSchemaVersion: S.Literal<"6.0">;
|
|
566
619
|
type StreamSchemaVersion = typeof StreamSchemaVersion.Type;
|
|
567
620
|
declare namespace mod_d_exports$1$1 {
|
|
568
|
-
export { FeedbackJudgment, FeedbackReported, FormatClaimShadowingRow, FormatRegistryResolved, FormatRegistryRow, FrameworkContributionRow, FrameworkModuleRow, Heartbeat, HelpRendered, MutantCost, MutantDetailReported, MutantSetPolicy, PhaseDurations, PhaseEntered, PlanKnown, PluginLoadFailureReason, PluginsReported, ReuseRefusals, ReuseReported, RunEvent, RunEventWireLine, RunFailed, RunId, RunMutantTested, RunMutantTestedEvent, RunPhase, RunScope, RunStarted, RunTerminalEvent, SkippedFileRow, SkippedReported, StaticVerdict, StreamSchemaVersion, VerdictCounts, VerdictLocation, VerdictMutant, VerdictReached, VerdictThresholds };
|
|
621
|
+
export { Budget, FeedbackJudgment, FeedbackReported, FormatClaimShadowingRow, FormatRegistryResolved, FormatRegistryRow, FrameworkContributionRow, FrameworkModuleRow, Heartbeat, HelpRendered, IncrementalMode, MutantCost, MutantDetailReported, MutantSetPolicy, PhaseDurations, PhaseEntered, PlanKnown, PluginLoadFailureReason, PluginsReported, RefusalRule, Refused, ReuseRefusals, ReuseReported, RunEvent, RunEventWireLine, RunFailed, RunId, RunMutantTested, RunMutantTestedEvent, RunPhase, RunScope, RunStarted, RunTerminalEvent, SkippedFileRow, SkippedReported, StaticVerdict, StreamSchemaVersion, TceReported, VerdictCounts, VerdictLocation, VerdictMutant, VerdictReached, VerdictThresholds, WorkerReported, WorkerRole };
|
|
569
622
|
}
|
|
570
623
|
//#endregion
|
|
571
624
|
//#region src/run/phase-clock.service.d.ts
|
|
@@ -619,7 +672,7 @@ declare const makeRunEventStream: (resolved: {
|
|
|
619
672
|
readonly mode: "human" | "machine";
|
|
620
673
|
readonly signal: "agent" | "env" | "flag" | "tool" | "tty";
|
|
621
674
|
}) => Effect$1.Effect<{
|
|
622
|
-
queue: Queue.Queue<mod_d_exports$1$1.FeedbackReported | mod_d_exports$1$1.FormatRegistryResolved | mod_d_exports$1$1.Heartbeat | mod_d_exports$1$1.HelpRendered | mod_d_exports$1$1.MutantDetailReported | mod_d_exports$1$1.PhaseEntered | mod_d_exports$1$1.PlanKnown | mod_d_exports$1$1.PluginsReported | mod_d_exports$1$1.ReuseReported | mod_d_exports$1$1.RunFailed | mod_d_exports$1$1.RunMutantTestedEvent | mod_d_exports$1$1.RunStarted | mod_d_exports$1$1.SkippedReported | mod_d_exports$1$1.VerdictReached, Cause.Done<void>>;
|
|
675
|
+
queue: Queue.Queue<mod_d_exports$1$1.FeedbackReported | mod_d_exports$1$1.FormatRegistryResolved | mod_d_exports$1$1.Heartbeat | mod_d_exports$1$1.HelpRendered | mod_d_exports$1$1.MutantDetailReported | mod_d_exports$1$1.PhaseEntered | mod_d_exports$1$1.PlanKnown | mod_d_exports$1$1.PluginsReported | mod_d_exports$1$1.Refused | mod_d_exports$1$1.ReuseReported | mod_d_exports$1$1.RunFailed | mod_d_exports$1$1.RunMutantTestedEvent | mod_d_exports$1$1.RunStarted | mod_d_exports$1$1.SkippedReported | mod_d_exports$1$1.TceReported | mod_d_exports$1$1.VerdictReached | mod_d_exports$1$1.WorkerReported, Cause.Done<void>>;
|
|
623
676
|
runId: string & import("effect/Brand").Brand<"RunId">;
|
|
624
677
|
startedAt: number;
|
|
625
678
|
isOpen: Effect$1.Effect<boolean, never, never>;
|
|
@@ -629,7 +682,7 @@ declare const makeRunEventStream: (resolved: {
|
|
|
629
682
|
}, never, RunEventDrain | Stdio.Stdio>;
|
|
630
683
|
//#endregion
|
|
631
684
|
//#region src/run-events.service.d.ts
|
|
632
|
-
declare const RunEvents_base: Context.ServiceClass<RunEvents, "@systemfsoftware/stryker-js/run-events.service/RunEvents", Queue.Queue<mod_d_exports$1$1.FeedbackReported | mod_d_exports$1$1.FormatRegistryResolved | mod_d_exports$1$1.Heartbeat | mod_d_exports$1$1.HelpRendered | mod_d_exports$1$1.MutantDetailReported | mod_d_exports$1$1.PhaseEntered | mod_d_exports$1$1.PlanKnown | mod_d_exports$1$1.PluginsReported | mod_d_exports$1$1.ReuseReported | mod_d_exports$1$1.RunFailed | mod_d_exports$1$1.RunMutantTestedEvent | mod_d_exports$1$1.RunStarted | mod_d_exports$1$1.SkippedReported | mod_d_exports$1$1.VerdictReached, Cause.Done<void>>>;
|
|
685
|
+
declare const RunEvents_base: Context.ServiceClass<RunEvents, "@systemfsoftware/stryker-js/run-events.service/RunEvents", Queue.Queue<mod_d_exports$1$1.FeedbackReported | mod_d_exports$1$1.FormatRegistryResolved | mod_d_exports$1$1.Heartbeat | mod_d_exports$1$1.HelpRendered | mod_d_exports$1$1.MutantDetailReported | mod_d_exports$1$1.PhaseEntered | mod_d_exports$1$1.PlanKnown | mod_d_exports$1$1.PluginsReported | mod_d_exports$1$1.Refused | mod_d_exports$1$1.ReuseReported | mod_d_exports$1$1.RunFailed | mod_d_exports$1$1.RunMutantTestedEvent | mod_d_exports$1$1.RunStarted | mod_d_exports$1$1.SkippedReported | mod_d_exports$1$1.TceReported | mod_d_exports$1$1.VerdictReached | mod_d_exports$1$1.WorkerReported, Cause.Done<void>>>;
|
|
633
686
|
declare class RunEvents extends RunEvents_base {}
|
|
634
687
|
interface RunIdentityShape {
|
|
635
688
|
readonly runId: string;
|
|
@@ -637,6 +690,11 @@ interface RunIdentityShape {
|
|
|
637
690
|
}
|
|
638
691
|
declare const RunIdentity_base: Context.ServiceClass<RunIdentity, "@systemfsoftware/stryker-js/run-events.service/RunIdentity", RunIdentityShape>;
|
|
639
692
|
declare class RunIdentity extends RunIdentity_base {}
|
|
693
|
+
interface WorkerReportsShape {
|
|
694
|
+
readonly report: (role: mod_d_exports$1$1.WorkerRole, startupMs: number) => Effect$1.Effect<void>;
|
|
695
|
+
}
|
|
696
|
+
declare const WorkerReports_base: Context.ServiceClass<WorkerReports, "@systemfsoftware/stryker-js/run-events.service/WorkerReports", WorkerReportsShape>;
|
|
697
|
+
declare class WorkerReports extends WorkerReports_base {}
|
|
640
698
|
declare namespace git_diff_schema_d_exports {
|
|
641
699
|
export { DiffHunk, DiffScopeCommand, DiffScopeDecision, DiffScoped, FullScope, GitCommandFailed, GitDiffError, GitDiffResult, GitRefUnresolved };
|
|
642
700
|
}
|
|
@@ -2516,6 +2574,11 @@ declare const IncrementalReportSchema: S.StructWithRest<S.Struct<{
|
|
|
2516
2574
|
readonly ownerVersion: S.String;
|
|
2517
2575
|
}>>;
|
|
2518
2576
|
}>>;
|
|
2577
|
+
readonly costs: S.$Record<S.brand<S.String, "MutantId">, S.Struct<{
|
|
2578
|
+
readonly predictedMs: S.Finite;
|
|
2579
|
+
readonly actualMs: S.NullOr<S.Finite>;
|
|
2580
|
+
readonly coveringTests: S.Int;
|
|
2581
|
+
}>>;
|
|
2519
2582
|
readonly testFiles: S.optional<S.$Record<S.String, S.Struct<{
|
|
2520
2583
|
readonly source: S.optional<S.String>;
|
|
2521
2584
|
readonly tests: S.$Array<S.Struct<{
|
|
@@ -2551,6 +2614,10 @@ declare const IncrementalReportSchema: S.StructWithRest<S.Struct<{
|
|
|
2551
2614
|
}>, never, never>>;
|
|
2552
2615
|
}>>;
|
|
2553
2616
|
}>>>;
|
|
2617
|
+
readonly budget: S.optional<S.Struct<{
|
|
2618
|
+
readonly predictedSeconds: S.Finite;
|
|
2619
|
+
readonly actualSeconds: S.Finite;
|
|
2620
|
+
}>>;
|
|
2554
2621
|
readonly dryRunCoverage: S.optionalKey<S.Unknown>;
|
|
2555
2622
|
}>, readonly [S.$Record<S.String, S.Unknown>]>;
|
|
2556
2623
|
type IncrementalReport = S.Schema.Type<typeof IncrementalReportSchema>;
|
|
@@ -2868,11 +2935,16 @@ interface MutationReportingInput {
|
|
|
2868
2935
|
readonly basePath: string;
|
|
2869
2936
|
readonly reporterStage: ReporterStage;
|
|
2870
2937
|
readonly formatRegistry: mod_d_exports$1.FormatRegistry;
|
|
2938
|
+
readonly timeOverheadMs: number;
|
|
2871
2939
|
readonly closureDigestsByMutantId?: Readonly<Record<string, string>>;
|
|
2872
2940
|
readonly timeoutEvidenceByMutantId?: Readonly<Record<string, TimeoutEvidence>>;
|
|
2941
|
+
readonly concurrency: number;
|
|
2942
|
+
readonly runStartedAt: number;
|
|
2873
2943
|
}
|
|
2874
2944
|
interface MutationReportingService {
|
|
2875
|
-
readonly reportCheckFailure: (mutant: mod_d_exports$2$1.MutantTestCoverage, result:
|
|
2945
|
+
readonly reportCheckFailure: (mutant: mod_d_exports$2$1.MutantTestCoverage, result: mod_d_exports$3.FailedCheckResult) => Effect$1.Effect<mod_d_exports$2$1.RunMutantResult>;
|
|
2946
|
+
readonly reportIgnored: (mutant: mod_d_exports$2$1.MutantTestCoverage, result: mod_d_exports$3.IgnoredCheckResult) => Effect$1.Effect<mod_d_exports$2$1.RunMutantResult>;
|
|
2947
|
+
readonly reportNoCoverage: (mutant: mod_d_exports$2$1.MutantTestCoverage) => Effect$1.Effect<mod_d_exports$2$1.RunMutantResult>;
|
|
2876
2948
|
readonly reportMutantRunResult: (mutant: mod_d_exports$2$1.MutantTestCoverage, result: mod_d_exports$9.MutantRunResult) => Effect$1.Effect<mod_d_exports$2$1.RunMutantResult>;
|
|
2877
2949
|
readonly reportAll: (input: MutationReportingInput) => Effect$1.Effect<MutationTestDone, PlatformError>;
|
|
2878
2950
|
readonly checkpoint: (input: MutationReportingInput, plannedMutants: readonly mod_d_exports$2$1.Mutant[]) => Effect$1.Effect<void, PlatformError>;
|
|
@@ -2892,9 +2964,9 @@ declare class IdGenerator extends IdGenerator_base {
|
|
|
2892
2964
|
}
|
|
2893
2965
|
//#endregion
|
|
2894
2966
|
//#region src/run/StageServices.service.d.ts
|
|
2895
|
-
type StageServices = ChildProcessSpawner.ChildProcessSpawner | FileSystem.FileSystem | GitDiff | IdGenerator | MutationReporting | Path.Path | PhaseClock | ProjectFiles | Reporter | RunEnvironment | RunEvents | Scope.Scope | Stdio.Stdio | WorkerLauncher;
|
|
2967
|
+
type StageServices = ChildProcessSpawner.ChildProcessSpawner | FileSystem.FileSystem | GitDiff | IdGenerator | MutationReporting | Path.Path | PhaseClock | ProjectFiles | Reporter | RunEnvironment | RunEvents | WorkerReports | Scope.Scope | Stdio.Stdio | WorkerLauncher;
|
|
2896
2968
|
type EnginePorts = ChildProcessSpawner.ChildProcessSpawner | FileSystem.FileSystem | GitDiff | Path.Path | Stdio.Stdio | WorkerLauncher;
|
|
2897
|
-
type RunStageServices = ProjectFiles | Reporter | RunEnvironment | RunEvents | IdGenerator | MutationReporting | PhaseClock | Scope.Scope;
|
|
2969
|
+
type RunStageServices = ProjectFiles | Reporter | RunEnvironment | RunEvents | WorkerReports | IdGenerator | MutationReporting | PhaseClock | Scope.Scope;
|
|
2898
2970
|
type WiredRunLayer = Layer.Layer<RunStageServices | EnginePorts, never, never>;
|
|
2899
2971
|
//#endregion
|
|
2900
2972
|
//#region src/run/RunEnvironment.service.d.ts
|
package/dist/config.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { i as mod_d_exports$5 } from "./index-
|
|
2
|
-
import { a as ImmutablePrimitive, c as StrykerConfigExport, i as Immutable, l as StrykerConfigFn, o as Primitive, r as ConfigEnv, s as StrykerConfig, t as mergeConfig } from "./merge-config-
|
|
1
|
+
import { i as mod_d_exports$5 } from "./index-DEphx668.mjs";
|
|
2
|
+
import { a as ImmutablePrimitive, c as StrykerConfigExport, i as Immutable, l as StrykerConfigFn, o as Primitive, r as ConfigEnv, s as StrykerConfig, t as mergeConfig } from "./merge-config-b06M-Ccx.mjs";
|
|
3
3
|
//#region src/config/define-config.d.ts
|
|
4
4
|
export declare function defineConfig(config: StrykerConfig): StrykerConfig;
|
|
5
5
|
export declare function defineConfig(config: Promise<StrykerConfig>): Promise<StrykerConfig>;
|
package/dist/config.mjs
CHANGED
package/dist/events.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as StageError, t as PrepareError } from "./Run.schema-
|
|
1
|
+
import { n as StageError, t as PrepareError } from "./Run.schema-CgcTsB1w.mjs";
|
|
2
2
|
export { PrepareError, StageError };
|
|
@@ -1358,8 +1358,11 @@ declare const CheckResultSchema: S.toTaggedUnion<"status", readonly [S.Struct<{
|
|
|
1358
1358
|
}>, S.Struct<{
|
|
1359
1359
|
readonly status: S.Literal<"compileError">;
|
|
1360
1360
|
readonly reason: S.String;
|
|
1361
|
+
}>, S.Struct<{
|
|
1362
|
+
readonly status: S.Literal<"ignored">;
|
|
1363
|
+
readonly reason: S.String;
|
|
1361
1364
|
}>]>;
|
|
1362
|
-
declare const CheckStatus: S.Literals<readonly ["passed", "compileError"]>;
|
|
1365
|
+
declare const CheckStatus: S.Literals<readonly ["passed", "compileError", "ignored"]>;
|
|
1363
1366
|
type CheckStatus = typeof CheckStatus.Type;
|
|
1364
1367
|
declare const CheckerFailed_base: S.Class<CheckerFailed, S.TaggedStruct<"CheckerFailed", {
|
|
1365
1368
|
readonly cause: S.String;
|
|
@@ -1373,6 +1376,9 @@ type CheckResult = typeof CheckResultSchema.Type;
|
|
|
1373
1376
|
type FailedCheckResult = Extract<CheckResult, {
|
|
1374
1377
|
readonly status: 'compileError';
|
|
1375
1378
|
}>;
|
|
1379
|
+
type IgnoredCheckResult = Extract<CheckResult, {
|
|
1380
|
+
readonly status: 'ignored';
|
|
1381
|
+
}>;
|
|
1376
1382
|
type PassedCheckResult = Extract<CheckResult, {
|
|
1377
1383
|
readonly status: 'passed';
|
|
1378
1384
|
}>;
|
|
@@ -1386,7 +1392,7 @@ interface CheckerService {
|
|
|
1386
1392
|
declare const Checker_base: Context.ServiceClass<Checker, "@systemfsoftware/stryker-js-plugin-interface/Checker.service/Checker", CheckerService>;
|
|
1387
1393
|
declare class Checker extends Checker_base {}
|
|
1388
1394
|
declare namespace mod_d_exports {
|
|
1389
|
-
export { CheckResult, CheckResultSchema, CheckStatus, Checker, CheckerFailed, CheckerMutantWire, CheckerService, FailedCheckResult, PassedCheckResult };
|
|
1395
|
+
export { CheckResult, CheckResultSchema, CheckStatus, Checker, CheckerFailed, CheckerMutantWire, CheckerService, FailedCheckResult, IgnoredCheckResult, PassedCheckResult };
|
|
1390
1396
|
}
|
|
1391
1397
|
//#endregion
|
|
1392
1398
|
//#region src/Mutant.schema.d.ts
|
|
@@ -2929,6 +2935,9 @@ declare const CheckerCheckResult: S.$Record<S.String, S.toTaggedUnion<"status",
|
|
|
2929
2935
|
}>, S.Struct<{
|
|
2930
2936
|
readonly status: S.Literal<"compileError">;
|
|
2931
2937
|
readonly reason: S.String;
|
|
2938
|
+
}>, S.Struct<{
|
|
2939
|
+
readonly status: S.Literal<"ignored">;
|
|
2940
|
+
readonly reason: S.String;
|
|
2932
2941
|
}>]>>;
|
|
2933
2942
|
declare const CheckerGroupResult: S.$Array<S.$Array<S.String>>;
|
|
2934
2943
|
declare const ReporterInitOptions: S.Struct<{
|
package/dist/index.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { c as mod_d_exports$9, i as mod_d_exports$5$1, l as Ignorer, n as mod_d_exports$2$1, o as mod_d_exports$7$1, t as mod_d_exports$8, u as Node_2 } from "./index-
|
|
2
|
-
import { a as ImmutablePrimitive, i as Immutable, n as mergeConfigs, o as Primitive } from "./merge-config-
|
|
3
|
-
import { n as StageError } from "./Run.schema-
|
|
4
|
-
import { $ as makeRunEventStream, A as ReporterWorkerClient, B as ProjectFile, C as PluginSource, D as TestCoverage, E as SandboxHandle, F as WorkerLauncherShape, G as git_diff_service_d_exports, H as mod_d_exports$2$11, I as WorkerSpawnParams, J as RunIdentity, K as git_diff_schema_d_exports, L as SpawnedSocketWorker, M as reporterWorkerFactory, N as spawnReporterWorker, O as REPORTER_EVENT_BATCH_BOUND, P as WorkerLauncher, Q as RunEventStream, R as make, S as PluginKind, T as WorkerPluginSource, U as Framework, V as IncrementalReportSchema, W as GitDiff, X as RunEventDrain, Y as RunIdentityShape, Z as RunEventDrainLive, _ as EvaluatorPluginDescriptor, a as StageServices, at as StrykerError, b as PluginDescriptor, c as IdGeneratorShape, ct as ConfigFileNotFoundError, d as InstrumentDone, dt as ChildProcessCrashedError, et as ResolvedModeInput, f as PrepareDone, ft as OutOfMemoryError, g as AnyWorkerPluginSource, h as AnyWorkerPluginDescriptor, ht as WorkerExit, i as RunStageServices, it as mod_d_exports$1$7, j as SpawnReporterWorkerParams, k as ReporterStage, l as MutationTestDone, lt as ConfigFileUnreadableError, m as AnyPluginDescriptor, mt as WorkerBootTimeoutError, n as RunEnvironmentShape, nt as PhaseClock, o as WiredRunLayer, ot as ConfigError, p as PrepareExecutorArgs, pt as WorkerBootError, q as RunEvents, r as EnginePorts, rt as mod_d_exports$10, s as IdGenerator, st as ConfigFileInvalidError, t as RunEnvironment, tt as ResolvedMode, u as DryRunDone, ut as ConfigFileUnsupportedError, v as EvaluatorPluginSource, w as WorkerPluginDescriptor, x as PluginDescriptorOf, y as LoadedPlugins, z as Project } from "./RunEnvironment.service-
|
|
1
|
+
import { c as mod_d_exports$9, i as mod_d_exports$5$1, l as Ignorer, n as mod_d_exports$2$1, o as mod_d_exports$7$1, t as mod_d_exports$8, u as Node_2 } from "./index-DEphx668.mjs";
|
|
2
|
+
import { a as ImmutablePrimitive, i as Immutable, n as mergeConfigs, o as Primitive } from "./merge-config-b06M-Ccx.mjs";
|
|
3
|
+
import { n as StageError } from "./Run.schema-CgcTsB1w.mjs";
|
|
4
|
+
import { $ as makeRunEventStream, A as ReporterWorkerClient, B as ProjectFile, C as PluginSource, D as TestCoverage, E as SandboxHandle, F as WorkerLauncherShape, G as git_diff_service_d_exports, H as mod_d_exports$2$11, I as WorkerSpawnParams, J as RunIdentity, K as git_diff_schema_d_exports, L as SpawnedSocketWorker, M as reporterWorkerFactory, N as spawnReporterWorker, O as REPORTER_EVENT_BATCH_BOUND, P as WorkerLauncher, Q as RunEventStream, R as make, S as PluginKind, T as WorkerPluginSource, U as Framework, V as IncrementalReportSchema, W as GitDiff, X as RunEventDrain, Y as RunIdentityShape, Z as RunEventDrainLive, _ as EvaluatorPluginDescriptor, a as StageServices, at as StrykerError, b as PluginDescriptor, c as IdGeneratorShape, ct as ConfigFileNotFoundError, d as InstrumentDone, dt as ChildProcessCrashedError, et as ResolvedModeInput, f as PrepareDone, ft as OutOfMemoryError, g as AnyWorkerPluginSource, h as AnyWorkerPluginDescriptor, ht as WorkerExit, i as RunStageServices, it as mod_d_exports$1$7, j as SpawnReporterWorkerParams, k as ReporterStage, l as MutationTestDone, lt as ConfigFileUnreadableError, m as AnyPluginDescriptor, mt as WorkerBootTimeoutError, n as RunEnvironmentShape, nt as PhaseClock, o as WiredRunLayer, ot as ConfigError, p as PrepareExecutorArgs, pt as WorkerBootError, q as RunEvents, r as EnginePorts, rt as mod_d_exports$10, s as IdGenerator, st as ConfigFileInvalidError, t as RunEnvironment, tt as ResolvedMode, u as DryRunDone, ut as ConfigFileUnsupportedError, v as EvaluatorPluginSource, w as WorkerPluginDescriptor, x as PluginDescriptorOf, y as LoadedPlugins, z as Project } from "./RunEnvironment.service-F8LgeCqh.mjs";
|
|
5
5
|
import { Blueprint, Cell, Handle, Sandwich, Workflow } from "@systemfsoftware/effect-cell-types";
|
|
6
6
|
import * as S from "effect/Schema";
|
|
7
7
|
import * as Option from "effect/Option";
|
|
@@ -495,7 +495,7 @@ type ValidationSchemaDocument<A = unknown> = {
|
|
|
495
495
|
//#endregion
|
|
496
496
|
//#region src/run/load-config.d.ts
|
|
497
497
|
interface ConfigInvocation {
|
|
498
|
-
readonly command: 'run' | 'merge
|
|
498
|
+
readonly command: 'run' | 'merge';
|
|
499
499
|
readonly mode: mod_d_exports$10.OutputMode;
|
|
500
500
|
}
|
|
501
501
|
declare const forkCoreSchema: import("effect/JsonSchema").JsonSchema;
|
|
@@ -1136,7 +1136,7 @@ declare const staticVerdictOf: (results: readonly mod_d_exports$2$1.RunMutantRes
|
|
|
1136
1136
|
//#endregion
|
|
1137
1137
|
//#region src/reporting/verdict-envelope.schema.d.ts
|
|
1138
1138
|
declare const VerdictEnvelope_base: S.Class<VerdictEnvelope, S.Struct<{
|
|
1139
|
-
readonly schemaVersion: S.Literal<"
|
|
1139
|
+
readonly schemaVersion: S.Literal<"6.0">;
|
|
1140
1140
|
readonly runId: S.brand<S.String, "RunId">;
|
|
1141
1141
|
readonly mode: S.Literals<readonly ["human", "machine"]>;
|
|
1142
1142
|
readonly signal: S.Literals<readonly ["flag", "env", "tty", "agent", "tool"]>;
|
|
@@ -1167,6 +1167,7 @@ declare const VerdictEnvelope_base: S.Class<VerdictEnvelope, S.Struct<{
|
|
|
1167
1167
|
}>>;
|
|
1168
1168
|
readonly scope: S.Literals<readonly ["full", "diff"]>;
|
|
1169
1169
|
readonly mutantSetPolicy: S.Literals<readonly ["default", "full"]>;
|
|
1170
|
+
readonly incrementalMode: S.Literals<readonly ["incremental", "full"]>;
|
|
1170
1171
|
readonly phaseDurations: S.NullOr<S.Struct<{
|
|
1171
1172
|
readonly prepare: S.Finite;
|
|
1172
1173
|
readonly instrument: S.Finite;
|
|
@@ -1177,6 +1178,10 @@ declare const VerdictEnvelope_base: S.Class<VerdictEnvelope, S.Struct<{
|
|
|
1177
1178
|
readonly count: S.Int;
|
|
1178
1179
|
readonly costMs: S.Finite;
|
|
1179
1180
|
}>>;
|
|
1181
|
+
readonly budget: S.Struct<{
|
|
1182
|
+
readonly predictedSeconds: S.Finite;
|
|
1183
|
+
readonly actualSeconds: S.Finite;
|
|
1184
|
+
}>;
|
|
1180
1185
|
}>, {}>;
|
|
1181
1186
|
declare class VerdictEnvelope extends VerdictEnvelope_base {}
|
|
1182
1187
|
//#endregion
|
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.mjs";
|
|
2
|
-
import { i as Mutant_exports, l as Report_exports, n as mergeConfigs } from "./merge-config-
|
|
3
|
-
import { $ as WorkerLauncher, A as classifyWorkerExit, At as OutOfMemoryError, B as SurvivorRef, C as nodePlatformLayer, Ct as MergeResult, D as git_diff_schema_exports, Dt as survivorsPriorReport, E as git_diff_service_exports, Et as forkOptionsSchema, F as readConfig, Ft as CheckerAnsweredUnrequested, G as generateRunId, H as RunEvents, I as RunEnvironment, It as CheckerSkippedRequested, J as metricsResultFromFiles, K as VerdictEnvelope, L as IdGenerator, M as loadConfigCell, Mt as OutputMode_exports, N as describeErrors, Nt as RunEvent_exports$1, O as ClassifyWorkerExitCommand, Ot as checkGroupedPlans, P as forkCoreSchema, Pt as SpanTaxonomy_exports, Q as makeWorkerClient, R as surfacedSurvivorsOf, S as IncrementalReportSchema, St as MergeCommand, T as GitDiff, Tt as extendsPropertySchema, U as RunIdentity, V as StrykerPackage, W as buildVerdictEnvelope, X as reporterWorkerFactory, Y as MetricsResultFromReport, Z as spawnReporterWorker, _ as isCommandRunner, _t as defaultOptions, a as MachineConsole, at as initialExtendsStepState, b as readProjectCell, bt as ExtendsStepStateSchema, c as prepareCell, ct as ExtendsStepRead, d as buildTestRunner, dt as ConfigError, et as make, f as makeChildProcessTestRunner, ft as ConfigFileInvalidError, g as vmTestRunnerConfig, gt as createDefaultOptions, h as vmRunnerPluginUrl, ht as ConfigFileUnsupportedError, i as makeRunEventStream, it as importModule, j as validateOptions, jt as WorkerBootTimeoutError, k as ClassifyWorkerExitDecision, kt as ChildProcessCrashedError, l as mutantDetailEventsOf, lt as ExtendsStepRefused, m as testRunnerConfigOf, mt as ConfigFileUnreadableError, n as RunEventDrain, nt as FileMatcher, o as HtmlReporter_exports, ot as StrykerError, p as isVmRunner, pt as ConfigFileNotFoundError, q as staticVerdictOf, r as RunEventDrainLive, rt as decideExtendsStep, s as mutationTestCell, st as ExtendsStepDone, t as strykerCell, tt as ReproducerSchema, u as instrumentCell, ut as ExtendsStepResolve, v as import_closure_cell_exports, vt as ConfigDocumentSchema, w as layerWorkerProtocol, wt as ReadConfigCommand, x as concurrencyCell, xt as ImportedModuleSchema, y as relativeNormalizedFileName, yt as ExtendsStepDocumentSchema, z as SurfacingFields } from "./run-stages-
|
|
2
|
+
import { i as Mutant_exports, l as Report_exports, n as mergeConfigs } from "./merge-config-BYhhPA7r.mjs";
|
|
3
|
+
import { $ as WorkerLauncher, A as classifyWorkerExit, At as OutOfMemoryError, B as SurvivorRef, C as nodePlatformLayer, Ct as MergeResult, D as git_diff_schema_exports, Dt as survivorsPriorReport, E as git_diff_service_exports, Et as forkOptionsSchema, F as readConfig, Ft as CheckerAnsweredUnrequested, G as generateRunId, H as RunEvents, I as RunEnvironment, It as CheckerSkippedRequested, J as metricsResultFromFiles, K as VerdictEnvelope, L as IdGenerator, M as loadConfigCell, Mt as OutputMode_exports, N as describeErrors, Nt as RunEvent_exports$1, O as ClassifyWorkerExitCommand, Ot as checkGroupedPlans, P as forkCoreSchema, Pt as SpanTaxonomy_exports, Q as makeWorkerClient, R as surfacedSurvivorsOf, S as IncrementalReportSchema, St as MergeCommand, T as GitDiff, Tt as extendsPropertySchema, U as RunIdentity, V as StrykerPackage, W as buildVerdictEnvelope, X as reporterWorkerFactory, Y as MetricsResultFromReport, Z as spawnReporterWorker, _ as isCommandRunner, _t as defaultOptions, a as MachineConsole, at as initialExtendsStepState, b as readProjectCell, bt as ExtendsStepStateSchema, c as prepareCell, ct as ExtendsStepRead, d as buildTestRunner, dt as ConfigError, et as make, f as makeChildProcessTestRunner, ft as ConfigFileInvalidError, g as vmTestRunnerConfig, gt as createDefaultOptions, h as vmRunnerPluginUrl, ht as ConfigFileUnsupportedError, i as makeRunEventStream, it as importModule, j as validateOptions, jt as WorkerBootTimeoutError, k as ClassifyWorkerExitDecision, kt as ChildProcessCrashedError, l as mutantDetailEventsOf, lt as ExtendsStepRefused, m as testRunnerConfigOf, mt as ConfigFileUnreadableError, n as RunEventDrain, nt as FileMatcher, o as HtmlReporter_exports, ot as StrykerError, p as isVmRunner, pt as ConfigFileNotFoundError, q as staticVerdictOf, r as RunEventDrainLive, rt as decideExtendsStep, s as mutationTestCell, st as ExtendsStepDone, t as strykerCell, tt as ReproducerSchema, u as instrumentCell, ut as ExtendsStepResolve, v as import_closure_cell_exports, vt as ConfigDocumentSchema, w as layerWorkerProtocol, wt as ReadConfigCommand, x as concurrencyCell, xt as ImportedModuleSchema, y as relativeNormalizedFileName, yt as ExtendsStepDocumentSchema, z as SurfacingFields } from "./run-stages-k4L7ymmp.mjs";
|
|
4
4
|
import { n as StageError } from "./Run.schema-DuaneDGd.mjs";
|
|
5
5
|
import { Cell, Sandwich, Workflow } from "@systemfsoftware/effect-cell-types";
|
|
6
6
|
import * as S from "effect/Schema";
|
|
@@ -242,6 +242,7 @@ const admitMutantRerun = Workflow.make({
|
|
|
242
242
|
const PriorReportDocument = S.Struct({
|
|
243
243
|
config: S.optional(S.Record(S.String, S.Unknown)),
|
|
244
244
|
framework: S.optional(S.Struct({ version: S.optional(S.String) })),
|
|
245
|
+
budget: S.optional(RunEvent_exports$1.Budget),
|
|
245
246
|
files: S.Record(S.String, S.Struct({
|
|
246
247
|
source: S.String,
|
|
247
248
|
mutants: S.Array(S.Struct({
|