@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.
- package/CHANGELOG.md +6 -0
- package/README.md +34 -26
- package/dist/Run.schema-B_qdjbe9.mjs +226 -0
- package/dist/{Run.schema-B-Pi3bCB.d.mts → Run.schema-CUpTIyrj.d.mts} +91 -19
- package/dist/RunEnvironment.service-zgwzyXpO.d.mts +456 -0
- package/dist/config.d.mts +6 -22
- package/dist/config.mjs +2 -7
- package/dist/{Run.schema-Ba34IwAY.mjs → dist-ClUhPgb6.mjs} +3432 -4856
- package/dist/{dist-CjdAPjrJ.mjs → dist-DKhCurgc.mjs} +95 -1
- package/dist/events.d.mts +2 -2
- package/dist/events.mjs +2 -2
- package/dist/index-CMCCQdTd.d.mts +4087 -0
- package/dist/index.d.mts +1084 -3321
- package/dist/index.mjs +116 -3
- package/dist/main.mjs +114296 -87310
- package/dist/promises.d.mts +4 -4
- package/dist/promises.mjs +6 -10
- package/dist/{rolldown-runtime-XITHOX9H.mjs → rolldown-runtime-8H4AJuhK.mjs} +1 -2
- package/dist/run-stages.cell-CPpkn7og.mjs +8639 -0
- package/dist/stryker-config.schema-CCnDtVuW.mjs +82 -0
- package/dist/stryker-config.schema-lr7GMjpY.d.mts +35 -0
- package/package.json +31 -46
- package/dist/compiler-BTpMWGqK.mjs +0 -48955
- package/dist/compiler-CEwQzMxZ.mjs +0 -48955
- package/dist/dist-Cpq7Esc3.mjs +0 -17404
- package/dist/dist-Dmv1WEP8.mjs +0 -5337
- package/dist/dist-DsmXFb2_.mjs +0 -17404
- package/dist/index-tt2EziOT.d.mts +0 -1216
- package/dist/merge-config-CHZWyvVQ.mjs +0 -19
- package/dist/mutation-test.cell-Dq23b2NP.d.mts +0 -1758
- package/dist/output-mode-CfGHDpi5.d.mts +0 -17
- package/dist/sourcemap-codec-qFD3eFBj.mjs +0 -186
- 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-
|
|
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 {
|
|
27
|
+
import { StrykerConfig } from '@systemfsoftware/stryker-js/config'
|
|
28
28
|
|
|
29
|
-
export default
|
|
29
|
+
export default StrykerConfig.define({
|
|
30
30
|
testRunner: 'vitest',
|
|
31
31
|
checkers: ['typescript'],
|
|
32
32
|
plugins: [
|
|
33
|
-
|
|
34
|
-
|
|
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 {
|
|
67
|
+
import { StrykerConfig } from '@systemfsoftware/stryker-js/config'
|
|
63
68
|
|
|
64
|
-
export default
|
|
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-
|
|
78
|
+
### 2. In-Process `vm` Runner (`testRunner: 'vm'`)
|
|
74
79
|
|
|
75
|
-
|
|
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 {
|
|
83
|
+
import { StrykerConfig } from '@systemfsoftware/stryker-js/config'
|
|
79
84
|
|
|
80
|
-
export default
|
|
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
|
|
94
|
+
The `./config` subpath exports the typed configuration authoring surface:
|
|
90
95
|
|
|
91
96
|
```ts
|
|
92
|
-
import {
|
|
97
|
+
import { StrykerConfig } from '@systemfsoftware/stryker-js/config'
|
|
93
98
|
```
|
|
94
99
|
|
|
95
|
-
### `
|
|
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
|
|
105
|
+
export default StrykerConfig.define(({ isCi, command }) => ({
|
|
101
106
|
testRunner: 'vitest',
|
|
102
|
-
plugins: [
|
|
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
|
-
### `
|
|
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 {
|
|
118
|
+
import { StrykerConfig } from '@systemfsoftware/stryker-js/config'
|
|
114
119
|
import baseConfig from './stryker.base.config.ts'
|
|
115
120
|
|
|
116
|
-
export default
|
|
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 {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
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` | `
|
|
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 {
|
|
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/
|
|
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.
|
|
33
|
-
readonly column: S.
|
|
32
|
+
readonly line: S.Int;
|
|
33
|
+
readonly column: S.Int;
|
|
34
34
|
}>;
|
|
35
35
|
readonly end: S.Struct<{
|
|
36
|
-
readonly line: S.
|
|
37
|
-
readonly column: S.
|
|
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.
|
|
64
|
-
readonly column: S.
|
|
63
|
+
readonly line: S.Int;
|
|
64
|
+
readonly column: S.Int;
|
|
65
65
|
}>;
|
|
66
66
|
readonly end: S.Struct<{
|
|
67
|
-
readonly line: S.
|
|
68
|
-
readonly column: S.
|
|
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.
|
|
104
|
-
readonly column: S.
|
|
103
|
+
readonly line: S.Int;
|
|
104
|
+
readonly column: S.Int;
|
|
105
105
|
}>;
|
|
106
106
|
readonly end: S.Struct<{
|
|
107
|
-
readonly line: S.
|
|
108
|
-
readonly column: S.
|
|
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 {
|
|
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 };
|