@systemfsoftware/stryker-js 10.2.0 → 11.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.
Files changed (33) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +34 -26
  3. package/dist/Run.schema-B_qdjbe9.mjs +226 -0
  4. package/dist/{Run.schema-B-Pi3bCB.d.mts → Run.schema-CUpTIyrj.d.mts} +91 -19
  5. package/dist/RunEnvironment.service-zgwzyXpO.d.mts +456 -0
  6. package/dist/config.d.mts +6 -22
  7. package/dist/config.mjs +2 -7
  8. package/dist/{Run.schema-Ba34IwAY.mjs → dist-ClUhPgb6.mjs} +3432 -4856
  9. package/dist/{dist-CjdAPjrJ.mjs → dist-DKhCurgc.mjs} +95 -1
  10. package/dist/events.d.mts +2 -2
  11. package/dist/events.mjs +2 -2
  12. package/dist/index-CMCCQdTd.d.mts +4087 -0
  13. package/dist/index.d.mts +1084 -3321
  14. package/dist/index.mjs +116 -3
  15. package/dist/main.mjs +114296 -87310
  16. package/dist/promises.d.mts +4 -4
  17. package/dist/promises.mjs +6 -10
  18. package/dist/{rolldown-runtime-XITHOX9H.mjs → rolldown-runtime-8H4AJuhK.mjs} +1 -2
  19. package/dist/run-stages.cell-CPpkn7og.mjs +8639 -0
  20. package/dist/stryker-config.schema-CCnDtVuW.mjs +82 -0
  21. package/dist/stryker-config.schema-lr7GMjpY.d.mts +35 -0
  22. package/package.json +31 -46
  23. package/dist/compiler-BTpMWGqK.mjs +0 -48955
  24. package/dist/compiler-CEwQzMxZ.mjs +0 -48955
  25. package/dist/dist-Cpq7Esc3.mjs +0 -17404
  26. package/dist/dist-Dmv1WEP8.mjs +0 -5337
  27. package/dist/dist-DsmXFb2_.mjs +0 -17404
  28. package/dist/index-tt2EziOT.d.mts +0 -1216
  29. package/dist/merge-config-CHZWyvVQ.mjs +0 -19
  30. package/dist/mutation-test.cell-Dq23b2NP.d.mts +0 -1758
  31. package/dist/output-mode-CfGHDpi5.d.mts +0 -17
  32. package/dist/sourcemap-codec-qFD3eFBj.mjs +0 -186
  33. package/dist/src-CcqEZJIY.mjs +0 -6559
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @systemfsoftware/stryker-js
2
2
 
3
+ ## 11.0.0
4
+
5
+ ### Patch Changes
6
+
7
+ - A mutation run no longer stalls forever when a checker or test-runner worker stops answering its connection. Previously a request that was in flight when the worker's connection dropped kept waiting on the dead connection, freezing progress until the CI timeout killed the run. Such a request now fails with a typed connection error when its connection drops, and the worker is restarted per the existing crash policy. Only requests already sent on the dropped connection fail: the client still reconnects on its own, and requests made while it reconnects, including the first request to a worker that is still booting, wait for the connection instead of failing.
8
+
3
9
  ## 10.2.0
4
10
 
5
11
  ### Minor Changes
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  The modern mutation testing framework for JavaScript and TypeScript.
4
4
  A ground-up, breaking-change fork of `@stryker-mutator/core` built with Effect 4:
5
- provides the `stryker` executable, in-memory V8 and isolated Vitest runners,
5
+ provides the `stryker` executable, in-process `vm` and isolated Vitest runners,
6
6
  and the typed `./config` authoring surface.
7
7
 
8
8
  ## Install
@@ -24,14 +24,14 @@ pnpm add -D @systemfsoftware/stryker-js \
24
24
  Create `stryker.config.ts` in your project root:
25
25
 
26
26
  ```ts
27
- import { defineConfig } from '@systemfsoftware/stryker-js/config'
27
+ import { StrykerConfig } from '@systemfsoftware/stryker-js/config'
28
28
 
29
- export default defineConfig({
29
+ export default StrykerConfig.define({
30
30
  testRunner: 'vitest',
31
31
  checkers: ['typescript'],
32
32
  plugins: [
33
- import.meta.resolve('@systemfsoftware/stryker-js-vitest-runner'),
34
- import.meta.resolve('@systemfsoftware/stryker-js-typescript-checker'),
33
+ '@systemfsoftware/stryker-js-vitest-runner',
34
+ '@systemfsoftware/stryker-js-typescript-checker',
35
35
  ],
36
36
  mutate: [
37
37
  'src/**/*.ts',
@@ -54,14 +54,19 @@ pnpm exec stryker run
54
54
 
55
55
  ## Zero-Plugin Built-in Runners
56
56
 
57
+ The `vm` runner is the default: with no `testRunner` and no `testFiles`
58
+ configured, it discovers `*.test` / `*.spec` files itself and runs them. It loads
59
+ your suites through your project's `vitest`, so `vitest` must be installed.
60
+ Set `testFiles` explicitly, or pick one of the runners below, to take control.
61
+
57
62
  ### 1. Shell Command Runner (`testRunner: 'command'`)
58
63
 
59
64
  Execute any test suite without extra plugins:
60
65
 
61
66
  ```ts
62
- import { defineConfig } from '@systemfsoftware/stryker-js/config'
67
+ import { StrykerConfig } from '@systemfsoftware/stryker-js/config'
63
68
 
64
- export default defineConfig({
69
+ export default StrykerConfig.define({
65
70
  testRunner: 'command',
66
71
  commandRunner: {
67
72
  command: 'npm test',
@@ -70,14 +75,14 @@ export default defineConfig({
70
75
  })
71
76
  ```
72
77
 
73
- ### 2. In-Memory V8 VM Runner (`testRunner: 'vm'`)
78
+ ### 2. In-Process `vm` Runner (`testRunner: 'vm'`)
74
79
 
75
- Run pure unit tests directly inside Node's native V8 VM with zero process spawning overhead:
80
+ Runs Vitest suites in-process, in one worker thread per test runner, loading each test file as native ESM through Node's module hooks. No child process and no bundler step. Each file gets its own module state by default; your `vitest.config.*` (environment, setup files, globals, projects) is picked up through your project's `vitest` install. Vitest browser-mode suites are refused with an error naming `testRunner: 'vitest'`; pick the `vitest` runner for those.
76
81
 
77
82
  ```ts
78
- import { defineConfig } from '@systemfsoftware/stryker-js/config'
83
+ import { StrykerConfig } from '@systemfsoftware/stryker-js/config'
79
84
 
80
- export default defineConfig({
85
+ export default StrykerConfig.define({
81
86
  testRunner: 'vm',
82
87
  testFiles: ['test/**/*.test.ts'],
83
88
  mutate: ['src/**/*.ts', '!src/**/*.test.ts'],
@@ -86,34 +91,34 @@ export default defineConfig({
86
91
 
87
92
  ## Configuration API (`@systemfsoftware/stryker-js/config`)
88
93
 
89
- The `./config` subpath exports lightweight, inert TypeScript configuration helpers:
94
+ The `./config` subpath exports the typed configuration authoring surface:
90
95
 
91
96
  ```ts
92
- import { defineConfig, mergeConfig } from '@systemfsoftware/stryker-js/config'
97
+ import { StrykerConfig } from '@systemfsoftware/stryker-js/config'
93
98
  ```
94
99
 
95
- ### `defineConfig(options | configFactory)`
100
+ ### `StrykerConfig.define(options | configFactory)`
96
101
 
97
102
  Identity function providing strict autocompletion and type checking without runtime dependencies. Can take a configuration object or a factory receiving `ConfigEnv`:
98
103
 
99
104
  ```ts
100
- export default defineConfig(({ isCi, command }) => ({
105
+ export default StrykerConfig.define(({ isCi, command }) => ({
101
106
  testRunner: 'vitest',
102
- plugins: [import.meta.resolve('@systemfsoftware/stryker-js-vitest-runner')],
107
+ plugins: ['@systemfsoftware/stryker-js-vitest-runner'],
103
108
  mutate: ['src/**/*.ts', '!src/**/*.test.ts'],
104
109
  concurrency: isCi ? 2 : 4,
105
110
  }))
106
111
  ```
107
112
 
108
- ### `mergeConfig(base, overrides)`
113
+ ### `StrykerConfig.merge(base, overrides)`
109
114
 
110
115
  Deeply merges configuration presets. Keys in records merge recursively; scalar values and arrays in `overrides` completely replace base values:
111
116
 
112
117
  ```ts
113
- import { mergeConfig } from '@systemfsoftware/stryker-js/config'
118
+ import { StrykerConfig } from '@systemfsoftware/stryker-js/config'
114
119
  import baseConfig from './stryker.base.config.ts'
115
120
 
116
- export default mergeConfig(baseConfig, {
121
+ export default StrykerConfig.merge(baseConfig, {
117
122
  concurrency: 8,
118
123
  mutate: ['packages/core/src/**/*.ts'],
119
124
  })
@@ -147,12 +152,15 @@ pnpm exec stryker merge-reports --output reports/mutation/mutation.json "reports
147
152
 
148
153
  ```ts
149
154
  import { NodeRuntime } from '@effect/platform-node'
150
- import { strykerCell } from '@systemfsoftware/stryker-js'
151
-
152
- NodeRuntime.runMain(strykerCell({
153
- mutate: ['src/**/*.ts'],
154
- testRunner: 'command',
155
- }))
155
+ import { Engine } from '@systemfsoftware/stryker-js'
156
+ import * as Effect from 'effect/Effect'
157
+
158
+ NodeRuntime.runMain(
159
+ Engine.strykerCell({
160
+ mutate: ['src/**/*.ts'],
161
+ testRunner: 'command',
162
+ }).pipe(Effect.provide(Engine.nodePlatformLayer)),
163
+ )
156
164
  ```
157
165
 
158
166
  ### Vanilla Promise Interface (`./promises`)
@@ -175,7 +183,7 @@ console.log(`Mutation score: ${verdict.score}%`)
175
183
  | Subpath | Description |
176
184
  | ------------ | ------------------------------------------------------------------ |
177
185
  | `.` | Main entry point: `strykerCell`, runtime layers, and error schemas |
178
- | `./config` | `defineConfig`, `mergeConfig`, and `StrykerConfig` typing |
186
+ | `./config` | `StrykerConfig` authoring surface (`define`, `merge`) |
179
187
  | `./promises` | `run()` wrapper returning standard JavaScript promises |
180
188
 
181
189
  ## License
@@ -0,0 +1,226 @@
1
+ import { d as Mutant_exports, i as Report_exports } from "./dist-ClUhPgb6.mjs";
2
+ import * as Match from "effect/Match";
3
+ import * as S from "effect/Schema";
4
+ import { SchemaGetter, SchemaTransformation } from "effect";
5
+ //#region src/run-event.schema.ts
6
+ const RunPhase = S.Literals([
7
+ "prepare",
8
+ "instrument",
9
+ "dry-run",
10
+ "mutation-test"
11
+ ]);
12
+ const OutputMode = S.Literals(["human", "machine"]);
13
+ const ModeSignal = S.Literals([
14
+ "flag",
15
+ "env",
16
+ "tty",
17
+ "agent",
18
+ "tool"
19
+ ]);
20
+ var RunStarted = class extends S.TaggedClass()("stream", {
21
+ schemaVersion: S.String,
22
+ runId: S.String,
23
+ mode: OutputMode,
24
+ signal: ModeSignal
25
+ }) {};
26
+ var PhaseEntered = class extends S.TaggedClass()("phase", {
27
+ phase: RunPhase,
28
+ elapsedMs: Report_exports.NonNegativeFinite
29
+ }) {};
30
+ var PlanKnown = class extends S.TaggedClass()("plan", { total: Report_exports.NonNegativeInt }) {};
31
+ var RunMutantTested = class extends S.TaggedClass()("mutant", {
32
+ id: S.String,
33
+ status: Mutant_exports.MutantStatusSchema,
34
+ file: S.String,
35
+ location: Mutant_exports.LocationSchema,
36
+ mutator: S.String,
37
+ replacement: S.NullOr(S.String),
38
+ completed: Report_exports.NonNegativeInt,
39
+ total: Report_exports.NonNegativeInt
40
+ }) {};
41
+ var Heartbeat = class extends S.TaggedClass()("tick", {
42
+ elapsedMs: Report_exports.NonNegativeFinite,
43
+ completed: Report_exports.NonNegativeInt,
44
+ total: S.NullOr(Report_exports.NonNegativeInt)
45
+ }) {};
46
+ const VerdictThresholdsValuesSchema = S.Struct({
47
+ high: Report_exports.Percentage,
48
+ low: Report_exports.Percentage,
49
+ break: S.NullOr(Report_exports.Percentage)
50
+ });
51
+ const isVerdictThresholds = (value) => S.is(VerdictThresholdsValuesSchema)(value) && value.low <= value.high;
52
+ /**
53
+ * The pair is *built* ordered — a drawn pair is sorted — rather than drawn at
54
+ * random and discarded until it happens to be ordered. The invariant lives on
55
+ * the declaration because a filter over the pair cannot express `low <= high`
56
+ * in the generation-constraint vocabulary, and only a declaration carries a
57
+ * `toCodecArbitrary` derivation. The struct stays the wire side, so decoding
58
+ * keeps its field paths.
59
+ */
60
+ const OrderedVerdictThresholds = S.declare(isVerdictThresholds, {
61
+ message: "expected thresholds where low <= high",
62
+ toCodecArbitrary: () => S.link()(VerdictThresholdsValuesSchema, {
63
+ decode: SchemaGetter.transform(({ break: breaking, high, low }) => ({
64
+ break: breaking,
65
+ high: Math.max(high, low),
66
+ low: Math.min(high, low)
67
+ })),
68
+ encode: SchemaGetter.transform((thresholds) => thresholds)
69
+ })
70
+ });
71
+ const VerdictThresholds = VerdictThresholdsValuesSchema.pipe(S.decodeTo(OrderedVerdictThresholds, SchemaTransformation.passthrough()));
72
+ const VerdictMutant = S.Struct({
73
+ id: S.String,
74
+ file: S.String,
75
+ location: Mutant_exports.LocationSchema,
76
+ mutator: S.String,
77
+ replacement: S.NullOr(S.String),
78
+ status: Mutant_exports.MutantStatusSchema
79
+ });
80
+ var VerdictReached = class extends S.TaggedClass()("verdict", {
81
+ schemaVersion: S.String,
82
+ runId: S.String,
83
+ mode: OutputMode,
84
+ signal: ModeSignal,
85
+ score: S.NullOr(Report_exports.Percentage),
86
+ thresholds: VerdictThresholds,
87
+ reportFile: S.NullOr(S.String),
88
+ counts: Report_exports.Metrics,
89
+ mutants: S.Array(VerdictMutant)
90
+ }) {};
91
+ const FrameworkContributionRow = S.Struct({
92
+ name: S.String,
93
+ formatId: S.String,
94
+ extensions: S.Array(S.String)
95
+ });
96
+ const FrameworkModuleRow = S.Struct({
97
+ moduleName: S.String,
98
+ contributions: S.Array(FrameworkContributionRow)
99
+ });
100
+ const FormatClaimShadowingRow = S.Struct({
101
+ extension: S.String,
102
+ winner: S.String,
103
+ loser: S.String
104
+ });
105
+ var PluginsReported = class extends S.TaggedClass()("plugins", {
106
+ modules: S.Array(FrameworkModuleRow),
107
+ shadowings: S.Array(FormatClaimShadowingRow)
108
+ }) {};
109
+ const FormatRegistryRow = S.Struct({
110
+ extension: S.String,
111
+ formatId: S.String,
112
+ ownerModule: S.String,
113
+ language: S.String
114
+ });
115
+ var FormatRegistryResolved = class extends S.TaggedClass()("formats", { rows: S.Array(FormatRegistryRow) }) {};
116
+ const SkippedFileRow = S.Struct({
117
+ file: S.String,
118
+ extension: S.String,
119
+ reason: S.String
120
+ });
121
+ var SkippedReported = class extends S.TaggedClass()("skipped", { files: S.Array(SkippedFileRow) }) {};
122
+ const PluginFailureReason = S.Literals([
123
+ "PeerMissing",
124
+ "PeerVersionUnsupported",
125
+ "PeerUnrecognized",
126
+ "InvalidContribution",
127
+ "ImportFailed"
128
+ ]);
129
+ var RunFailed = class extends S.TaggedClass()("error", {
130
+ schemaVersion: S.String,
131
+ code: S.Finite,
132
+ error: S.String,
133
+ remediation: S.String,
134
+ reason: S.NullOr(PluginFailureReason)
135
+ }) {};
136
+ var HelpRendered = class extends S.TaggedClass()("help", {
137
+ schemaVersion: S.String,
138
+ code: S.Literals([0]),
139
+ help: S.String
140
+ }) {};
141
+ const RunEvent = Object.assign(S.Union([
142
+ RunStarted,
143
+ PhaseEntered,
144
+ PlanKnown,
145
+ RunMutantTested,
146
+ Heartbeat,
147
+ PluginsReported,
148
+ FormatRegistryResolved,
149
+ SkippedReported,
150
+ VerdictReached,
151
+ RunFailed,
152
+ HelpRendered
153
+ ]), { QUEUE_BOUND: 256 });
154
+ S.TaggedClass()("RunCommand", {
155
+ cliOptionsJson: S.String,
156
+ targetMutatePatterns: S.Array(S.String)
157
+ });
158
+ S.TaggedClass()("RunOutput", {
159
+ verdictJson: S.String,
160
+ exitCode: S.Finite
161
+ });
162
+ var RunDecodeError = class extends S.TaggedError()("RunDecodeError", { message: S.String }) {};
163
+ var RunReadError = class extends S.TaggedError()("RunReadError", { message: S.String }) {};
164
+ S.TaggedError()("RunWriteError", { message: S.String });
165
+ var PlanMutationRunCommand = class extends S.TaggedClass()("PlanMutationRunCommand", {
166
+ configMutatePatterns: S.Array(S.String),
167
+ configMutatorNames: S.Array(S.String),
168
+ targetMutatePatterns: S.Array(S.String),
169
+ availableMutators: S.Array(S.String)
170
+ }) {};
171
+ var MutationRunPlan = class extends S.TaggedClass()("MutationRunPlan", {
172
+ mutatePatterns: S.Array(S.String),
173
+ mutatorNames: S.Array(S.String)
174
+ }) {};
175
+ //#endregion
176
+ //#region src/Run.schema.ts
177
+ const TypeId = "~stryker/mutation-run/StageError";
178
+ var StageError = class extends S.TaggedError(TypeId)("StageError", {
179
+ stage: S.Literals([
180
+ "prepare",
181
+ "instrument",
182
+ "dryRun",
183
+ "dryRunNoTests",
184
+ "mutationTest"
185
+ ]),
186
+ reason: S.String,
187
+ cause: S.optional(S.Defect()),
188
+ command: S.optional(S.String)
189
+ }) {
190
+ [TypeId] = TypeId;
191
+ get exitClass() {
192
+ return STAGE_PRESENTATION[this.stage].exitClass;
193
+ }
194
+ get message() {
195
+ const failure = `${STAGE_PRESENTATION[this.stage].label} failed: ${this.reason}`;
196
+ return Match.value(this.command).pipe(Match.when(Match.nonEmptyString, (present) => `${failure} (command: ${present})`), Match.orElse(() => failure));
197
+ }
198
+ };
199
+ const STAGE_PRESENTATION = {
200
+ prepare: {
201
+ label: "Prepare",
202
+ exitClass: "ConfigError"
203
+ },
204
+ instrument: {
205
+ label: "Instrument",
206
+ exitClass: "RuntimeError"
207
+ },
208
+ dryRun: {
209
+ label: "Dry run",
210
+ exitClass: "RuntimeError"
211
+ },
212
+ dryRunNoTests: {
213
+ label: "Dry run",
214
+ exitClass: "ConfigError"
215
+ },
216
+ mutationTest: {
217
+ label: "Mutation testing",
218
+ exitClass: "RuntimeError"
219
+ }
220
+ };
221
+ var PrepareError = class extends S.TaggedError()("PrepareError", {
222
+ stage: S.Literal("prepare"),
223
+ reason: S.String
224
+ }) {};
225
+ //#endregion
226
+ export { RunReadError as C, VerdictReached as D, SkippedReported as E, RunPhase as S, SkippedFileRow as T, PluginsReported as _, FormatRegistryRow as a, RunFailed as b, Heartbeat as c, MutationRunPlan as d, OutputMode as f, PluginFailureReason as g, PlanMutationRunCommand as h, FormatRegistryResolved as i, HelpRendered as l, PlanKnown as m, StageError as n, FrameworkContributionRow as o, PhaseEntered as p, FormatClaimShadowingRow as r, FrameworkModuleRow as s, PrepareError as t, ModeSignal as u, RunDecodeError as v, RunStarted as w, RunMutantTested as x, RunEvent as y };
@@ -1,6 +1,6 @@
1
- import { C as Metrics, _ as ExitClass } from "./index-tt2EziOT.mjs";
1
+ import { i as mod_d_exports$4, r as mod_d_exports$3 } from "./index-CMCCQdTd.mjs";
2
2
  import * as S from "effect/Schema";
3
- //#region src/RunEvent.schema.d.ts
3
+ //#region src/run-event.schema.d.ts
4
4
  declare const RunPhase: S.Literals<readonly ["prepare", "instrument", "dry-run", "mutation-test"]>;
5
5
  type RunPhase = typeof RunPhase.Type;
6
6
  declare const OutputMode: S.Literals<readonly ["human", "machine"]>;
@@ -29,12 +29,12 @@ declare const RunMutantTested_base: S.Class<RunMutantTested, S.TaggedStruct<"mut
29
29
  readonly file: S.String;
30
30
  readonly location: S.Struct<{
31
31
  readonly start: S.Struct<{
32
- readonly line: S.Finite;
33
- readonly column: S.Finite;
32
+ readonly line: S.Int;
33
+ readonly column: S.Int;
34
34
  }>;
35
35
  readonly end: S.Struct<{
36
- readonly line: S.Finite;
37
- readonly column: S.Finite;
36
+ readonly line: S.Int;
37
+ readonly column: S.Int;
38
38
  }>;
39
39
  }>;
40
40
  readonly mutator: S.String;
@@ -60,12 +60,12 @@ declare const VerdictMutant: S.Struct<{
60
60
  readonly file: S.String;
61
61
  readonly location: S.Struct<{
62
62
  readonly start: S.Struct<{
63
- readonly line: S.Finite;
64
- readonly column: S.Finite;
63
+ readonly line: S.Int;
64
+ readonly column: S.Int;
65
65
  }>;
66
66
  readonly end: S.Struct<{
67
- readonly line: S.Finite;
68
- readonly column: S.Finite;
67
+ readonly line: S.Int;
68
+ readonly column: S.Int;
69
69
  }>;
70
70
  }>;
71
71
  readonly mutator: S.String;
@@ -73,7 +73,7 @@ declare const VerdictMutant: S.Struct<{
73
73
  readonly status: S.Literals<readonly ["Killed", "Survived", "NoCoverage", "CompileError", "RuntimeError", "Timeout", "Ignored", "Pending"]>;
74
74
  }>;
75
75
  type VerdictMutant = typeof VerdictMutant.Type;
76
- type VerdictCounts = Metrics;
76
+ type VerdictCounts = mod_d_exports$4.Metrics;
77
77
  declare const VerdictReached_base: S.Class<VerdictReached, S.TaggedStruct<"verdict", {
78
78
  readonly schemaVersion: S.String;
79
79
  readonly runId: S.String;
@@ -94,18 +94,18 @@ declare const VerdictReached_base: S.Class<VerdictReached, S.TaggedStruct<"verdi
94
94
  readonly break: S.NullOr<S.Finite>;
95
95
  }>, never, never>;
96
96
  readonly reportFile: S.NullOr<S.String>;
97
- readonly counts: typeof Metrics;
97
+ readonly counts: typeof mod_d_exports$4.Metrics;
98
98
  readonly mutants: S.$Array<S.Struct<{
99
99
  readonly id: S.String;
100
100
  readonly file: S.String;
101
101
  readonly location: S.Struct<{
102
102
  readonly start: S.Struct<{
103
- readonly line: S.Finite;
104
- readonly column: S.Finite;
103
+ readonly line: S.Int;
104
+ readonly column: S.Int;
105
105
  }>;
106
106
  readonly end: S.Struct<{
107
- readonly line: S.Finite;
108
- readonly column: S.Finite;
107
+ readonly line: S.Int;
108
+ readonly column: S.Int;
109
109
  }>;
110
110
  }>;
111
111
  readonly mutator: S.String;
@@ -114,11 +114,81 @@ declare const VerdictReached_base: S.Class<VerdictReached, S.TaggedStruct<"verdi
114
114
  }>>;
115
115
  }>, {}>;
116
116
  declare class VerdictReached extends VerdictReached_base {}
117
+ declare const FrameworkContributionRow: S.Struct<{
118
+ readonly name: S.String;
119
+ readonly formatId: S.String;
120
+ readonly extensions: S.$Array<S.String>;
121
+ }>;
122
+ type FrameworkContributionRow = typeof FrameworkContributionRow.Type;
123
+ declare const FrameworkModuleRow: S.Struct<{
124
+ readonly moduleName: S.String;
125
+ readonly contributions: S.$Array<S.Struct<{
126
+ readonly name: S.String;
127
+ readonly formatId: S.String;
128
+ readonly extensions: S.$Array<S.String>;
129
+ }>>;
130
+ }>;
131
+ type FrameworkModuleRow = typeof FrameworkModuleRow.Type;
132
+ declare const FormatClaimShadowingRow: S.Struct<{
133
+ readonly extension: S.String;
134
+ readonly winner: S.String;
135
+ readonly loser: S.String;
136
+ }>;
137
+ type FormatClaimShadowingRow = typeof FormatClaimShadowingRow.Type;
138
+ declare const PluginsReported_base: S.Class<PluginsReported, S.TaggedStruct<"plugins", {
139
+ readonly modules: S.$Array<S.Struct<{
140
+ readonly moduleName: S.String;
141
+ readonly contributions: S.$Array<S.Struct<{
142
+ readonly name: S.String;
143
+ readonly formatId: S.String;
144
+ readonly extensions: S.$Array<S.String>;
145
+ }>>;
146
+ }>>;
147
+ readonly shadowings: S.$Array<S.Struct<{
148
+ readonly extension: S.String;
149
+ readonly winner: S.String;
150
+ readonly loser: S.String;
151
+ }>>;
152
+ }>, {}>;
153
+ declare class PluginsReported extends PluginsReported_base {}
154
+ declare const FormatRegistryRow: S.Struct<{
155
+ readonly extension: S.String;
156
+ readonly formatId: S.String;
157
+ readonly ownerModule: S.String;
158
+ readonly language: S.String;
159
+ }>;
160
+ type FormatRegistryRow = typeof FormatRegistryRow.Type;
161
+ declare const FormatRegistryResolved_base: S.Class<FormatRegistryResolved, S.TaggedStruct<"formats", {
162
+ readonly rows: S.$Array<S.Struct<{
163
+ readonly extension: S.String;
164
+ readonly formatId: S.String;
165
+ readonly ownerModule: S.String;
166
+ readonly language: S.String;
167
+ }>>;
168
+ }>, {}>;
169
+ declare class FormatRegistryResolved extends FormatRegistryResolved_base {}
170
+ declare const SkippedFileRow: S.Struct<{
171
+ readonly file: S.String;
172
+ readonly extension: S.String;
173
+ readonly reason: S.String;
174
+ }>;
175
+ type SkippedFileRow = typeof SkippedFileRow.Type;
176
+ declare const SkippedReported_base: S.Class<SkippedReported, S.TaggedStruct<"skipped", {
177
+ readonly files: S.$Array<S.Struct<{
178
+ readonly file: S.String;
179
+ readonly extension: S.String;
180
+ readonly reason: S.String;
181
+ }>>;
182
+ }>, {}>;
183
+ declare class SkippedReported extends SkippedReported_base {}
184
+ declare const PluginFailureReason: S.Literals<readonly ["PeerMissing", "PeerVersionUnsupported", "PeerUnrecognized", "InvalidContribution", "ImportFailed"]>;
185
+ type PluginFailureReason = typeof PluginFailureReason.Type;
117
186
  declare const RunFailed_base: S.Class<RunFailed, S.TaggedStruct<"error", {
118
187
  readonly schemaVersion: S.String;
119
188
  readonly code: S.Finite;
120
189
  readonly error: S.String;
121
190
  readonly remediation: S.String;
191
+ readonly reason: S.NullOr<S.Literals<readonly ["PeerMissing", "PeerVersionUnsupported", "PeerUnrecognized", "InvalidContribution", "ImportFailed"]>>;
122
192
  }>, {}>;
123
193
  declare class RunFailed extends RunFailed_base {}
124
194
  declare const HelpRendered_base: S.Class<HelpRendered, S.TaggedStruct<"help", {
@@ -127,7 +197,9 @@ declare const HelpRendered_base: S.Class<HelpRendered, S.TaggedStruct<"help", {
127
197
  readonly help: S.String;
128
198
  }>, {}>;
129
199
  declare class HelpRendered extends HelpRendered_base {}
130
- declare const RunEvent: S.Union<readonly [typeof RunStarted, typeof PhaseEntered, typeof PlanKnown, typeof RunMutantTested, typeof Heartbeat, typeof VerdictReached, typeof RunFailed, typeof HelpRendered]>;
200
+ declare const RunEvent: S.Union<readonly [typeof RunStarted, typeof PhaseEntered, typeof PlanKnown, typeof RunMutantTested, typeof Heartbeat, typeof PluginsReported, typeof FormatRegistryResolved, typeof SkippedReported, typeof VerdictReached, typeof RunFailed, typeof HelpRendered]> & {
201
+ QUEUE_BOUND: number;
202
+ };
131
203
  type RunEvent = typeof RunEvent.Type;
132
204
  type RunTerminalEvent = VerdictReached | RunFailed | HelpRendered;
133
205
  declare const RunDecodeError_base: S.Class<RunDecodeError, S.TaggedStruct<"RunDecodeError", {
@@ -161,7 +233,7 @@ declare const StageError_base: S.Class<StageError, S.TaggedStruct<"StageError",
161
233
  }>, import("effect/Cause").YieldableError>;
162
234
  declare class StageError extends StageError_base {
163
235
  readonly [TypeId]: "~stryker/mutation-run/StageError";
164
- get exitClass(): ExitClass;
236
+ get exitClass(): mod_d_exports$3.ExitClass;
165
237
  get message(): string;
166
238
  }
167
239
  declare const PrepareError_base: S.Class<PrepareError, S.TaggedStruct<"PrepareError", {
@@ -170,4 +242,4 @@ declare const PrepareError_base: S.Class<PrepareError, S.TaggedStruct<"PrepareEr
170
242
  }>, import("effect/Cause").YieldableError>;
171
243
  declare class PrepareError extends PrepareError_base {}
172
244
  //#endregion
173
- export { VerdictThresholds as S, RunStarted as _, ModeSignal as a, VerdictMutant as b, PhaseEntered as c, RunDecodeError as d, RunEvent as f, RunReadError as g, RunPhase as h, HelpRendered as i, PlanKnown as l, RunMutantTested as m, StageError as n, MutationRunPlan as o, RunFailed as p, Heartbeat as r, OutputMode as s, PrepareError as t, PlanMutationRunCommand as u, RunTerminalEvent as v, VerdictReached as x, VerdictCounts as y };
245
+ export { VerdictReached as A, RunReadError as C, SkippedReported as D, SkippedFileRow as E, VerdictCounts as O, RunPhase as S, RunTerminalEvent as T, PluginsReported as _, FormatRegistryRow as a, RunFailed as b, Heartbeat as c, MutationRunPlan as d, OutputMode as f, PluginFailureReason as g, PlanMutationRunCommand as h, FormatRegistryResolved as i, VerdictThresholds as j, VerdictMutant as k, HelpRendered as l, PlanKnown as m, StageError as n, FrameworkContributionRow as o, PhaseEntered as p, FormatClaimShadowingRow as r, FrameworkModuleRow as s, PrepareError as t, ModeSignal as u, RunDecodeError as v, RunStarted as w, RunMutantTested as x, RunEvent as y };