@systemfsoftware/stryker-js-plugin-interface 5.0.0 → 6.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/dist/index.d.mts CHANGED
@@ -1,25 +1,38 @@
1
- import { CheckerFailed } from '@systemfsoftware/stryker-js-language';
2
- import { CheckResultSchema } from '@systemfsoftware/stryker-js-language';
3
1
  import * as Context from 'effect/Context';
4
- import { DryRunCompleted } from '@systemfsoftware/stryker-js-language';
5
- import { DryRunResultSchema } from '@systemfsoftware/stryker-js-language';
6
- import { Mutant } from '@systemfsoftware/stryker-js-language';
7
- import { MutantRunResultSchema } from '@systemfsoftware/stryker-js-language';
8
- import { MutantTested } from '@systemfsoftware/stryker-js-language';
9
- import { MutationTestingPlanReady } from '@systemfsoftware/stryker-js-language';
10
- import { MutationTestReportReady } from '@systemfsoftware/stryker-js-language';
2
+ import * as Effect$1 from 'effect/Effect';
3
+ import * as HashMap from 'effect/HashMap';
4
+ import { Location } from '@systemfsoftware/stryker-js-instrumenter/mutants';
5
+ import { LocationSchema } from '@systemfsoftware/stryker-js-instrumenter/mutants';
6
+ import { Mutant } from '@systemfsoftware/stryker-js-instrumenter/mutants';
7
+ import { MutantActivation } from '@systemfsoftware/stryker-js-instrumenter/mutants';
8
+ import { MutantActivationSchema } from '@systemfsoftware/stryker-js-instrumenter/mutants';
9
+ import { MutantCoverage } from '@systemfsoftware/stryker-js-instrumenter/mutants';
10
+ import { MutantRunOptions } from '@systemfsoftware/stryker-js-instrumenter/mutants';
11
+ import { MutantRunOptionsSchema } from '@systemfsoftware/stryker-js-instrumenter/mutants';
12
+ import { MutantStatus } from '@systemfsoftware/stryker-js-instrumenter/mutants';
13
+ import { MutantStatusSchema } from '@systemfsoftware/stryker-js-instrumenter/mutants';
14
+ import { OpenEndLocation } from '@systemfsoftware/stryker-js-instrumenter/mutants';
15
+ import { OpenEndLocationSchema } from '@systemfsoftware/stryker-js-instrumenter/mutants';
11
16
  import * as Option from 'effect/Option';
12
- import { ReporterEventUnion } from '@systemfsoftware/stryker-js-language';
13
- import { ReporterFailed } from '@systemfsoftware/stryker-js-language';
17
+ import { Position } from '@systemfsoftware/stryker-js-instrumenter/mutants';
18
+ import { PositionSchema } from '@systemfsoftware/stryker-js-instrumenter/mutants';
14
19
  import * as Rpc from 'effect/unstable/rpc/Rpc';
15
20
  import * as RpcGroup from 'effect/unstable/rpc/RpcGroup';
16
21
  import * as RpcMiddleware from 'effect/unstable/rpc/RpcMiddleware';
22
+ import { RunOptions } from '@systemfsoftware/stryker-js-instrumenter/mutants';
17
23
  import * as S from 'effect/Schema';
18
24
  import { Schema } from 'effect';
19
- import { TestRunnerCapabilitiesSchema } from '@systemfsoftware/stryker-js-language';
20
- import { TestRunnerFailed } from '@systemfsoftware/stryker-js-language';
25
+ import { StandardSchemaV1 } from 'effect/StandardSchema';
21
26
  import { YieldableError } from 'effect/Cause';
22
27
 
28
+ export declare interface BaseTestResult {
29
+ readonly id: string;
30
+ readonly name: string;
31
+ readonly timeSpentMs: number;
32
+ readonly fileName?: string;
33
+ readonly startPosition?: Position;
34
+ }
35
+
23
36
  export declare type BoundaryError = typeof BoundaryErrorSchema.Type;
24
37
 
25
38
  export declare const BoundaryErrorSchema: S.Union<readonly [typeof BoundaryPayloadRejected, typeof BoundaryUnrecognizedSignal, typeof TestRunnerFailed, typeof CheckerFailed, typeof ReporterFailed]>;
@@ -40,6 +53,17 @@ declare const BoundaryUnrecognizedSignal_base: S.Class<BoundaryUnrecognizedSigna
40
53
  readonly signal: S.String;
41
54
  }>, YieldableError>;
42
55
 
56
+ export declare type BrandingInformation = typeof BrandingInformationSchema.Type;
57
+
58
+ export declare const BrandingInformationSchema: S.Struct<{
59
+ readonly homepageUrl: S.String;
60
+ readonly imageUrl: S.optional<S.String>;
61
+ }>;
62
+
63
+ export declare class Checker extends Checker_base {}
64
+
65
+ declare const Checker_base: Context.ServiceClass<Checker, "@systemfsoftware/stryker-js-plugin-interface/Checker", CheckerService>;
66
+
43
67
  export declare const CheckerCheckResult: S.$Record<S.String, S.Union<readonly [S.Struct<{
44
68
  readonly status: S.Literal<"passed">;
45
69
  }>, S.Struct<{
@@ -47,7 +71,29 @@ export declare const CheckerCheckResult: S.$Record<S.String, S.Union<readonly [S
47
71
  readonly reason: S.String;
48
72
  }>]>>;
49
73
 
50
- export { CheckerFailed }
74
+ export declare type CheckerCustomConfig = typeof CheckerCustomConfigSchema.Type;
75
+
76
+ export declare const CheckerCustomConfigSchema: S.Struct<{
77
+ readonly plugin: S.String;
78
+ readonly nodeArgs: S.optional<S.$Array<S.String>>;
79
+ readonly options: S.optional<S.$Record<S.String, S.Unknown>>;
80
+ }>;
81
+
82
+ export declare type CheckerEntryConfig = typeof CheckerEntryConfigSchema.Type;
83
+
84
+ export declare const CheckerEntryConfigSchema: S.Struct<{
85
+ readonly plugin: S.String;
86
+ readonly nodeArgs: S.optional<S.$Array<S.String>>;
87
+ readonly options: S.optional<S.$Record<S.String, S.Unknown>>;
88
+ }>;
89
+
90
+ export declare class CheckerFailed extends CheckerFailed_base {}
91
+
92
+ declare const CheckerFailed_base: S.Class<CheckerFailed, S.TaggedStruct<"CheckerFailed", {
93
+ readonly cause: S.String;
94
+ readonly checkerName: S.String;
95
+ readonly mutantIds: S.$Array<S.String>;
96
+ }>, YieldableError>;
51
97
 
52
98
  export declare const CheckerGroupResult: S.$Array<S.$Array<S.String>>;
53
99
 
@@ -60,31 +106,720 @@ export declare type CheckerRequest = typeof CheckerRequest.Type;
60
106
 
61
107
  export declare const CheckerRpcs: RpcGroup.RpcGroup<TracedRpc<'check', typeof CheckerRequest, typeof CheckerCheckResult, typeof CheckerFailed> | TracedRpc<'group', typeof CheckerRequest, typeof CheckerGroupResult, typeof CheckerFailed>>;
62
108
 
63
- export { CheckResultSchema }
109
+ export declare interface CheckerService {
110
+ readonly init: Effect$1.Effect<void, CheckerFailed>;
111
+ readonly check: (mutants: readonly Mutant[]) => Effect$1.Effect<HashMap.HashMap<string, CheckResult>, CheckerFailed>;
112
+ readonly group: (mutants: readonly Mutant[]) => Effect$1.Effect<readonly (readonly string[])[], CheckerFailed>;
113
+ }
114
+
115
+ export declare type CheckResult = FailedCheckResult | PassedCheckResult;
116
+
117
+ export declare const CheckResultSchema: S.Union<readonly [S.Struct<{
118
+ readonly status: S.Literal<"passed">;
119
+ }>, S.Struct<{
120
+ readonly status: S.Literal<"compileError">;
121
+ readonly reason: S.String;
122
+ }>]>;
123
+
124
+ export declare const CheckStatus: S.Literals<readonly ["passed", "compileError"]>;
125
+
126
+ export declare type CheckStatus = typeof CheckStatus.Type;
127
+
128
+ export declare type CommandRunnerOptions = S.Schema.Type<typeof CommandRunnerOptionsSchema>;
64
129
 
65
- export { DryRunResultSchema }
130
+ export declare const CommandRunnerOptionsSchema: S.StructWithRest<S.Struct<{
131
+ readonly command: S.withDecodingDefaultKey<S.String, never>;
132
+ }>, readonly [S.$Record<S.String, S.Unknown>]>;
133
+
134
+ export declare interface CompleteDryRunResult {
135
+ readonly tests: readonly TestResult[];
136
+ readonly mutantCoverage?: MutantCoverage;
137
+ readonly status: 'complete';
138
+ }
139
+
140
+ export declare type CoverageAnalysis = 'off' | 'all' | 'perTest';
141
+
142
+ declare const CoverageAnalysisMode: S.Literals<readonly ["off", "all", "perTest"]>;
143
+
144
+ declare type CoverageAnalysisMode = typeof CoverageAnalysisMode.Type;
145
+ export { CoverageAnalysisMode }
146
+ export { CoverageAnalysisMode as CoverageAnalysisModeType }
147
+
148
+ export declare const CoverageAnalysisSchema: S.Literals<readonly ["off", "all", "perTest"]>;
149
+
150
+ /**
151
+ * Every option optional, all the way down, and mutable: this is the type a
152
+ * caller CONSTRUCTS by assignment, so `readonly` is stripped. The decoded
153
+ * `StrykerOptions` keeps it - that side is read, never built.
154
+ */
155
+ export declare type DeepOptional<T> = { -readonly [P in keyof T]?: T[P] extends Record<string, unknown> ? DeepOptional<T[P]> | undefined : T[P]; };
156
+
157
+ export declare type Dependencies = typeof DependenciesSchema.Type;
158
+
159
+ export declare const DependenciesSchema: S.$Record<S.String, S.String>;
160
+
161
+ export declare class DryRunCompleted extends DryRunCompleted_base {}
162
+
163
+ declare const DryRunCompleted_base: S.Class<DryRunCompleted, S.TaggedStruct<"dryRunCompleted", {
164
+ readonly timing: S.Struct<{
165
+ readonly net: S.Finite;
166
+ readonly overhead: S.Finite;
167
+ }>;
168
+ readonly capabilities: S.Struct<{
169
+ readonly reloadEnvironment: S.Boolean;
170
+ }>;
171
+ readonly testCount: S.Finite;
172
+ readonly tests: S.$Array<S.Union<readonly [S.Struct<{
173
+ readonly id: S.String;
174
+ readonly name: S.String;
175
+ readonly timeSpentMs: S.Finite;
176
+ readonly fileName: S.optionalKey<S.String>;
177
+ readonly startPosition: S.optionalKey<S.Struct<{
178
+ readonly line: S.Finite;
179
+ readonly column: S.Finite;
180
+ }>>;
181
+ readonly status: S.Literal<"failed">;
182
+ readonly failureMessage: S.String;
183
+ }>, S.Struct<{
184
+ readonly id: S.String;
185
+ readonly name: S.String;
186
+ readonly timeSpentMs: S.Finite;
187
+ readonly fileName: S.optionalKey<S.String>;
188
+ readonly startPosition: S.optionalKey<S.Struct<{
189
+ readonly line: S.Finite;
190
+ readonly column: S.Finite;
191
+ }>>;
192
+ readonly status: S.Literal<"skipped">;
193
+ }>, S.Struct<{
194
+ readonly id: S.String;
195
+ readonly name: S.String;
196
+ readonly timeSpentMs: S.Finite;
197
+ readonly fileName: S.optionalKey<S.String>;
198
+ readonly startPosition: S.optionalKey<S.Struct<{
199
+ readonly line: S.Finite;
200
+ readonly column: S.Finite;
201
+ }>>;
202
+ readonly status: S.Literal<"success">;
203
+ }>]>>;
204
+ }>, {}>;
205
+
206
+ export declare interface DryRunOptions extends RunOptions {
207
+ readonly coverageAnalysis: CoverageAnalysis;
208
+ readonly files?: readonly string[];
209
+ readonly testFiles?: readonly string[];
210
+ }
211
+
212
+ export declare const DryRunOptionsSchema: S.Struct<{
213
+ readonly timeout: S.Finite;
214
+ readonly disableBail: S.Boolean;
215
+ readonly coverageAnalysis: S.Literals<readonly ["off", "all", "perTest"]>;
216
+ readonly files: S.optionalKey<S.$Array<S.String>>;
217
+ readonly testFiles: S.optionalKey<S.$Array<S.String>>;
218
+ }>;
219
+
220
+ export declare type DryRunResult = CompleteDryRunResult | ErrorDryRunResult | TimeoutDryRunResult;
221
+
222
+ export declare const DryRunResultSchema: S.Union<readonly [S.Struct<{
223
+ readonly status: S.Literal<"complete">;
224
+ readonly tests: S.$Array<S.Union<readonly [S.Struct<{
225
+ readonly id: S.String;
226
+ readonly name: S.String;
227
+ readonly timeSpentMs: S.Finite;
228
+ readonly fileName: S.optionalKey<S.String>;
229
+ readonly startPosition: S.optionalKey<S.Struct<{
230
+ readonly line: S.Finite;
231
+ readonly column: S.Finite;
232
+ }>>;
233
+ readonly status: S.Literal<"failed">;
234
+ readonly failureMessage: S.String;
235
+ }>, S.Struct<{
236
+ readonly id: S.String;
237
+ readonly name: S.String;
238
+ readonly timeSpentMs: S.Finite;
239
+ readonly fileName: S.optionalKey<S.String>;
240
+ readonly startPosition: S.optionalKey<S.Struct<{
241
+ readonly line: S.Finite;
242
+ readonly column: S.Finite;
243
+ }>>;
244
+ readonly status: S.Literal<"skipped">;
245
+ }>, S.Struct<{
246
+ readonly id: S.String;
247
+ readonly name: S.String;
248
+ readonly timeSpentMs: S.Finite;
249
+ readonly fileName: S.optionalKey<S.String>;
250
+ readonly startPosition: S.optionalKey<S.Struct<{
251
+ readonly line: S.Finite;
252
+ readonly column: S.Finite;
253
+ }>>;
254
+ readonly status: S.Literal<"success">;
255
+ }>]>>;
256
+ readonly mutantCoverage: S.optionalKey<S.Struct<{
257
+ readonly perTest: S.$Record<S.String, S.$Record<S.String, S.Finite>>;
258
+ readonly static: S.$Record<S.String, S.Finite>;
259
+ }>>;
260
+ }>, S.Struct<{
261
+ readonly status: S.Literal<"timeout">;
262
+ readonly reason: S.optionalKey<S.String>;
263
+ }>, S.Struct<{
264
+ readonly status: S.Literal<"error">;
265
+ readonly errorMessage: S.String;
266
+ }>]>;
267
+
268
+ export declare const DryRunStatus: S.Literals<readonly ["complete", "error", "timeout"]>;
269
+
270
+ export declare type DryRunStatus = typeof DryRunStatus.Type;
271
+
272
+ export declare interface ErrorDryRunResult {
273
+ readonly status: 'error';
274
+ readonly errorMessage: string;
275
+ }
276
+
277
+ export declare interface ErrorMutantRunResult {
278
+ readonly status: 'error';
279
+ readonly errorMessage: string;
280
+ }
281
+
282
+ export declare class Evaluator extends Evaluator_base {}
283
+
284
+ declare const Evaluator_base: Context.ServiceClass<Evaluator, "@systemfsoftware/stryker-js-plugin-interface/Evaluator", EvaluatorService>;
285
+
286
+ export declare class EvaluatorFailed extends EvaluatorFailed_base {}
287
+
288
+ declare const EvaluatorFailed_base: S.Class<EvaluatorFailed, S.TaggedStruct<"EvaluatorFailed", {
289
+ readonly cause: S.Unknown;
290
+ }>, YieldableError>;
291
+
292
+ export declare interface EvaluatorService {
293
+ readonly evaluate: (report: MutationTestResult) => Effect$1.Effect<ExitClass | null, EvaluatorFailed>;
294
+ }
295
+
296
+ export declare const EXIT_CODE: Record<ExitClass, number>;
297
+
298
+ export declare const ExitClass: S.Literals<readonly ["VerdictFail", "ConfigError", "RuntimeError", "InternalError"]>;
299
+
300
+ export declare type ExitClass = typeof ExitClass.Type;
301
+
302
+ export declare interface FailedCheckResult {
303
+ readonly reason: string;
304
+ readonly status: 'compileError';
305
+ }
306
+
307
+ export declare interface FailedTestResult extends BaseTestResult {
308
+ readonly status: 'failed';
309
+ readonly failureMessage: string;
310
+ }
311
+
312
+ export declare type FileResult = typeof FileResultSchema.Type;
313
+
314
+ export declare type FileResultDictionary = typeof FileResultDictionarySchema.Type;
315
+
316
+ export declare const FileResultDictionarySchema: S.$Record<S.String, S.Struct<{
317
+ readonly language: S.String;
318
+ readonly source: S.String;
319
+ readonly mutants: S.$Array<S.Struct<{
320
+ readonly id: S.String;
321
+ readonly mutatorName: S.String;
322
+ readonly status: S.Literals<readonly ["Killed", "Survived", "NoCoverage", "CompileError", "RuntimeError", "Timeout", "Ignored", "Pending"]>;
323
+ readonly location: S.Struct<{
324
+ readonly start: S.Struct<{
325
+ readonly line: S.Finite;
326
+ readonly column: S.Finite;
327
+ }>;
328
+ readonly end: S.Struct<{
329
+ readonly line: S.Finite;
330
+ readonly column: S.Finite;
331
+ }>;
332
+ }>;
333
+ readonly replacement: S.optional<S.String>;
334
+ readonly description: S.optional<S.String>;
335
+ readonly statusReason: S.optional<S.String>;
336
+ readonly static: S.optional<S.Boolean>;
337
+ readonly coveredBy: S.optional<S.$Array<S.String>>;
338
+ readonly killedBy: S.optional<S.$Array<S.String>>;
339
+ readonly testsCompleted: S.optional<S.Finite>;
340
+ readonly duration: S.optional<S.Finite>;
341
+ }>>;
342
+ }>>;
343
+
344
+ export declare const FileResultSchema: S.Struct<{
345
+ readonly language: S.String;
346
+ readonly source: S.String;
347
+ readonly mutants: S.$Array<S.Struct<{
348
+ readonly id: S.String;
349
+ readonly mutatorName: S.String;
350
+ readonly status: S.Literals<readonly ["Killed", "Survived", "NoCoverage", "CompileError", "RuntimeError", "Timeout", "Ignored", "Pending"]>;
351
+ readonly location: S.Struct<{
352
+ readonly start: S.Struct<{
353
+ readonly line: S.Finite;
354
+ readonly column: S.Finite;
355
+ }>;
356
+ readonly end: S.Struct<{
357
+ readonly line: S.Finite;
358
+ readonly column: S.Finite;
359
+ }>;
360
+ }>;
361
+ readonly replacement: S.optional<S.String>;
362
+ readonly description: S.optional<S.String>;
363
+ readonly statusReason: S.optional<S.String>;
364
+ readonly static: S.optional<S.Boolean>;
365
+ readonly coveredBy: S.optional<S.$Array<S.String>>;
366
+ readonly killedBy: S.optional<S.$Array<S.String>>;
367
+ readonly testsCompleted: S.optional<S.Finite>;
368
+ readonly duration: S.optional<S.Finite>;
369
+ }>>;
370
+ }>;
66
371
 
67
372
  export declare const formatTraceparent: (parts: TraceContextParts) => Traceparent;
68
373
 
69
- export { MutantRunResultSchema }
374
+ export declare type FrameworkInformation = typeof FrameworkInformationSchema.Type;
375
+
376
+ export declare const FrameworkInformationSchema: S.Struct<{
377
+ readonly name: S.String;
378
+ readonly version: S.optional<S.String>;
379
+ readonly branding: S.optional<S.Struct<{
380
+ readonly homepageUrl: S.String;
381
+ readonly imageUrl: S.optional<S.String>;
382
+ }>>;
383
+ readonly dependencies: S.optional<S.$Record<S.String, S.String>>;
384
+ }>;
385
+
386
+ export declare const isCustomTestRunner: (value: TestRunnerConfig) => value is TestRunnerCustomConfig;
387
+
388
+ export declare interface KilledMutantRunResult {
389
+ readonly status: 'killed';
390
+ readonly killedBy: readonly string[];
391
+ readonly failureMessage: string;
392
+ readonly nrOfTests: number;
393
+ }
394
+
395
+ /**
396
+ * Known keys filters out the index signature from the keys of a type
397
+ * @see https://stackoverflow.com/questions/51465182/typescript-remove-index-signature-using-mapped-types
398
+ */
399
+ export declare type KnownKeys<T> = keyof { [P in keyof T as string extends P ? never : number extends P ? never : P]: T[P]; };
400
+
401
+ export { Location }
402
+
403
+ export { LocationSchema }
404
+
405
+ declare const LogLevel: S.Literals<readonly ["off", "fatal", "error", "warn", "info", "debug", "trace"]>;
406
+
407
+ /** The generated module exported these as TypeScript types; consumers still name them that way. */
408
+ declare type LogLevel = typeof LogLevel.Type;
409
+ export { LogLevel }
410
+ export { LogLevel as LogLevelType }
411
+
412
+ export declare type Metrics = typeof MetricsSchema.Type;
413
+
414
+ export declare interface MetricsResult {
415
+ readonly name: string;
416
+ readonly metrics: Metrics;
417
+ readonly childResults: readonly MetricsResult[];
418
+ }
419
+
420
+ export declare const MetricsResultSchema: S.Struct<{
421
+ readonly name: S.String;
422
+ readonly metrics: S.Struct<{
423
+ readonly pending: S.Finite;
424
+ readonly killed: S.Finite;
425
+ readonly timeout: S.Finite;
426
+ readonly survived: S.Finite;
427
+ readonly noCoverage: S.Finite;
428
+ readonly runtimeErrors: S.Finite;
429
+ readonly compileErrors: S.Finite;
430
+ readonly ignored: S.Finite;
431
+ readonly totalDetected: S.Finite;
432
+ readonly totalUndetected: S.Finite;
433
+ readonly totalInvalid: S.Finite;
434
+ readonly totalValid: S.Finite;
435
+ readonly totalMutants: S.Finite;
436
+ readonly totalCovered: S.Finite;
437
+ readonly mutationScore: S.Finite;
438
+ readonly mutationScoreBasedOnCoveredCode: S.Finite;
439
+ }>;
440
+ readonly childResults: S.$Array<S.suspend<S.Codec<MetricsResult, MetricsResult, never, never>>>;
441
+ }>;
442
+
443
+ export declare const MetricsSchema: S.Struct<{
444
+ readonly pending: S.Finite;
445
+ readonly killed: S.Finite;
446
+ readonly timeout: S.Finite;
447
+ readonly survived: S.Finite;
448
+ readonly noCoverage: S.Finite;
449
+ readonly runtimeErrors: S.Finite;
450
+ readonly compileErrors: S.Finite;
451
+ readonly ignored: S.Finite;
452
+ readonly totalDetected: S.Finite;
453
+ readonly totalUndetected: S.Finite;
454
+ readonly totalInvalid: S.Finite;
455
+ readonly totalValid: S.Finite;
456
+ readonly totalMutants: S.Finite;
457
+ readonly totalCovered: S.Finite;
458
+ readonly mutationScore: S.Finite;
459
+ readonly mutationScoreBasedOnCoveredCode: S.Finite;
460
+ }>;
461
+
462
+ export { MutantActivation }
463
+
464
+ export { MutantActivationSchema }
465
+
466
+ export { MutantCoverage }
467
+
468
+ export declare const MutantCoverageSchema: S.Struct<{
469
+ readonly perTest: S.$Record<S.String, S.$Record<S.String, S.Finite>>;
470
+ readonly static: S.$Record<S.String, S.Finite>;
471
+ }>;
472
+
473
+ export declare type MutantResult = typeof MutantResultSchema.Type;
474
+
475
+ export declare const MutantResultSchema: S.Struct<{
476
+ readonly id: S.String;
477
+ readonly mutatorName: S.String;
478
+ readonly status: S.Literals<readonly ["Killed", "Survived", "NoCoverage", "CompileError", "RuntimeError", "Timeout", "Ignored", "Pending"]>;
479
+ readonly location: S.Struct<{
480
+ readonly start: S.Struct<{
481
+ readonly line: S.Finite;
482
+ readonly column: S.Finite;
483
+ }>;
484
+ readonly end: S.Struct<{
485
+ readonly line: S.Finite;
486
+ readonly column: S.Finite;
487
+ }>;
488
+ }>;
489
+ readonly replacement: S.optional<S.String>;
490
+ readonly description: S.optional<S.String>;
491
+ readonly statusReason: S.optional<S.String>;
492
+ readonly static: S.optional<S.Boolean>;
493
+ readonly coveredBy: S.optional<S.$Array<S.String>>;
494
+ readonly killedBy: S.optional<S.$Array<S.String>>;
495
+ readonly testsCompleted: S.optional<S.Finite>;
496
+ readonly duration: S.optional<S.Finite>;
497
+ }>;
498
+
499
+ export { MutantRunOptions }
500
+
501
+ export { MutantRunOptionsSchema }
502
+
503
+ export declare type MutantRunResult = ErrorMutantRunResult | KilledMutantRunResult | SurvivedMutantRunResult | TimeoutMutantRunResult;
504
+
505
+ export declare const MutantRunResultSchema: S.Union<readonly [S.Struct<{
506
+ readonly status: S.Literal<"killed">;
507
+ readonly killedBy: S.$Array<S.String>;
508
+ readonly failureMessage: S.String;
509
+ readonly nrOfTests: S.Finite;
510
+ }>, S.Struct<{
511
+ readonly status: S.Literal<"survived">;
512
+ readonly nrOfTests: S.Finite;
513
+ }>, S.Struct<{
514
+ readonly status: S.Literal<"timeout">;
515
+ readonly reason: S.optionalKey<S.String>;
516
+ }>, S.Struct<{
517
+ readonly status: S.Literal<"error">;
518
+ readonly errorMessage: S.String;
519
+ }>]>;
520
+
521
+ export declare const MutantRunStatus: S.Literals<readonly ["killed", "survived", "timeout", "error"]>;
522
+
523
+ export declare type MutantRunStatus = typeof MutantRunStatus.Type;
524
+
525
+ export { MutantStatus }
526
+
527
+ export { MutantStatusSchema }
528
+
529
+ export declare class MutantTested extends MutantTested_base {}
530
+
531
+ declare const MutantTested_base: S.Class<MutantTested, S.TaggedStruct<"mutantTested", {
532
+ readonly id: S.String;
533
+ readonly status: S.Literals<readonly ["Killed", "Survived", "NoCoverage", "CompileError", "RuntimeError", "Timeout", "Ignored", "Pending"]>;
534
+ readonly file: S.String;
535
+ readonly location: S.Struct<{
536
+ readonly start: S.Struct<{
537
+ readonly line: S.Finite;
538
+ readonly column: S.Finite;
539
+ }>;
540
+ readonly end: S.Struct<{
541
+ readonly line: S.Finite;
542
+ readonly column: S.Finite;
543
+ }>;
544
+ }>;
545
+ readonly mutator: S.String;
546
+ readonly replacement: S.NullOr<S.String>;
547
+ readonly completed: S.Finite;
548
+ readonly total: S.Finite;
549
+ }>, {}>;
550
+
551
+ export declare type MutationScoreThresholds = typeof MutationScoreThresholdsSchema.Type;
552
+
553
+ export declare const MutationScoreThresholdsSchema: S.Struct<{
554
+ readonly high: S.withDecodingDefaultKey<S.Finite, never>;
555
+ readonly low: S.withDecodingDefaultKey<S.Finite, never>;
556
+ readonly break: S.withDecodingDefaultKey<S.NullOr<S.Finite>, never>;
557
+ }>;
558
+
559
+ export declare class MutationTestingPlanReady extends MutationTestingPlanReady_base {}
560
+
561
+ declare const MutationTestingPlanReady_base: S.Class<MutationTestingPlanReady, S.TaggedStruct<"mutationTestingPlanReady", {
562
+ readonly total: S.Finite;
563
+ readonly plans: S.$Array<S.Struct<{
564
+ readonly mutantId: S.String;
565
+ readonly plan: S.Literals<readonly ["EarlyResult", "Run"]>;
566
+ readonly netTime: S.Finite;
567
+ readonly reloadEnvironment: S.Boolean;
568
+ }>>;
569
+ }>, {}>;
570
+
571
+ export declare class MutationTestReportReady extends MutationTestReportReady_base {}
572
+
573
+ declare const MutationTestReportReady_base: S.Class<MutationTestReportReady, S.TaggedStruct<"mutationTestReportReady", {
574
+ readonly report: S.Struct<{
575
+ readonly schemaVersion: S.String;
576
+ readonly files: S.$Record<S.String, S.Struct<{
577
+ readonly language: S.String;
578
+ readonly source: S.String;
579
+ readonly mutants: S.$Array<S.Struct<{
580
+ readonly id: S.String;
581
+ readonly mutatorName: S.String;
582
+ readonly status: S.Literals<readonly ["Killed", "Survived", "NoCoverage", "CompileError", "RuntimeError", "Timeout", "Ignored", "Pending"]>;
583
+ readonly location: S.Struct<{
584
+ readonly start: S.Struct<{
585
+ readonly line: S.Finite;
586
+ readonly column: S.Finite;
587
+ }>;
588
+ readonly end: S.Struct<{
589
+ readonly line: S.Finite;
590
+ readonly column: S.Finite;
591
+ }>;
592
+ }>;
593
+ readonly replacement: S.optional<S.String>;
594
+ readonly description: S.optional<S.String>;
595
+ readonly statusReason: S.optional<S.String>;
596
+ readonly static: S.optional<S.Boolean>;
597
+ readonly coveredBy: S.optional<S.$Array<S.String>>;
598
+ readonly killedBy: S.optional<S.$Array<S.String>>;
599
+ readonly testsCompleted: S.optional<S.Finite>;
600
+ readonly duration: S.optional<S.Finite>;
601
+ }>>;
602
+ }>>;
603
+ readonly thresholds: S.Struct<{
604
+ readonly high: S.Finite;
605
+ readonly low: S.Finite;
606
+ }>;
607
+ readonly config: S.optional<S.$Record<S.String, S.Unknown>>;
608
+ readonly testFiles: S.optional<S.$Record<S.String, S.Struct<{
609
+ readonly source: S.optional<S.String>;
610
+ readonly tests: S.$Array<S.Struct<{
611
+ readonly id: S.String;
612
+ readonly name: S.String;
613
+ readonly location: S.optional<S.Struct<{
614
+ readonly start: S.Struct<{
615
+ readonly line: S.Finite;
616
+ readonly column: S.Finite;
617
+ }>;
618
+ readonly end: S.optional<S.Struct<{
619
+ readonly line: S.Finite;
620
+ readonly column: S.Finite;
621
+ }>>;
622
+ }>>;
623
+ }>>;
624
+ }>>>;
625
+ readonly projectRoot: S.optional<S.String>;
626
+ readonly framework: S.optional<S.Struct<{
627
+ readonly name: S.String;
628
+ readonly version: S.optional<S.String>;
629
+ readonly branding: S.optional<S.Struct<{
630
+ readonly homepageUrl: S.String;
631
+ readonly imageUrl: S.optional<S.String>;
632
+ }>>;
633
+ readonly dependencies: S.optional<S.$Record<S.String, S.String>>;
634
+ }>>;
635
+ }>;
636
+ readonly metrics: S.Struct<{
637
+ readonly name: S.String;
638
+ readonly metrics: S.Struct<{
639
+ readonly pending: S.Finite;
640
+ readonly killed: S.Finite;
641
+ readonly timeout: S.Finite;
642
+ readonly survived: S.Finite;
643
+ readonly noCoverage: S.Finite;
644
+ readonly runtimeErrors: S.Finite;
645
+ readonly compileErrors: S.Finite;
646
+ readonly ignored: S.Finite;
647
+ readonly totalDetected: S.Finite;
648
+ readonly totalUndetected: S.Finite;
649
+ readonly totalInvalid: S.Finite;
650
+ readonly totalValid: S.Finite;
651
+ readonly totalMutants: S.Finite;
652
+ readonly totalCovered: S.Finite;
653
+ readonly mutationScore: S.Finite;
654
+ readonly mutationScoreBasedOnCoveredCode: S.Finite;
655
+ }>;
656
+ readonly childResults: S.$Array<S.suspend<S.Codec<MetricsResult, MetricsResult, never, never>>>;
657
+ }>;
658
+ }>, {}>;
659
+
660
+ export declare type MutationTestResult = typeof MutationTestResultSchema.Type;
661
+
662
+ export declare const MutationTestResultSchema: S.Struct<{
663
+ readonly schemaVersion: S.String;
664
+ readonly files: S.$Record<S.String, S.Struct<{
665
+ readonly language: S.String;
666
+ readonly source: S.String;
667
+ readonly mutants: S.$Array<S.Struct<{
668
+ readonly id: S.String;
669
+ readonly mutatorName: S.String;
670
+ readonly status: S.Literals<readonly ["Killed", "Survived", "NoCoverage", "CompileError", "RuntimeError", "Timeout", "Ignored", "Pending"]>;
671
+ readonly location: S.Struct<{
672
+ readonly start: S.Struct<{
673
+ readonly line: S.Finite;
674
+ readonly column: S.Finite;
675
+ }>;
676
+ readonly end: S.Struct<{
677
+ readonly line: S.Finite;
678
+ readonly column: S.Finite;
679
+ }>;
680
+ }>;
681
+ readonly replacement: S.optional<S.String>;
682
+ readonly description: S.optional<S.String>;
683
+ readonly statusReason: S.optional<S.String>;
684
+ readonly static: S.optional<S.Boolean>;
685
+ readonly coveredBy: S.optional<S.$Array<S.String>>;
686
+ readonly killedBy: S.optional<S.$Array<S.String>>;
687
+ readonly testsCompleted: S.optional<S.Finite>;
688
+ readonly duration: S.optional<S.Finite>;
689
+ }>>;
690
+ }>>;
691
+ readonly thresholds: S.Struct<{
692
+ readonly high: S.Finite;
693
+ readonly low: S.Finite;
694
+ }>;
695
+ readonly config: S.optional<S.$Record<S.String, S.Unknown>>;
696
+ readonly testFiles: S.optional<S.$Record<S.String, S.Struct<{
697
+ readonly source: S.optional<S.String>;
698
+ readonly tests: S.$Array<S.Struct<{
699
+ readonly id: S.String;
700
+ readonly name: S.String;
701
+ readonly location: S.optional<S.Struct<{
702
+ readonly start: S.Struct<{
703
+ readonly line: S.Finite;
704
+ readonly column: S.Finite;
705
+ }>;
706
+ readonly end: S.optional<S.Struct<{
707
+ readonly line: S.Finite;
708
+ readonly column: S.Finite;
709
+ }>>;
710
+ }>>;
711
+ }>>;
712
+ }>>>;
713
+ readonly projectRoot: S.optional<S.String>;
714
+ readonly framework: S.optional<S.Struct<{
715
+ readonly name: S.String;
716
+ readonly version: S.optional<S.String>;
717
+ readonly branding: S.optional<S.Struct<{
718
+ readonly homepageUrl: S.String;
719
+ readonly imageUrl: S.optional<S.String>;
720
+ }>>;
721
+ readonly dependencies: S.optional<S.$Record<S.String, S.String>>;
722
+ }>>;
723
+ }>;
724
+
725
+ export declare type OnlyObject<T> = Exclude<T, Primitive>;
726
+
727
+ export { OpenEndLocation }
728
+
729
+ export { OpenEndLocationSchema }
730
+
731
+ declare const PackageManager: S.Literals<readonly ["npm", "yarn", "pnpm"]>;
732
+
733
+ declare type PackageManager = typeof PackageManager.Type;
734
+ export { PackageManager }
735
+ export { PackageManager as PackageManagerType }
70
736
 
71
737
  export declare const parseTraceparent: (value: string) => Option.Option<TraceContextParts>;
72
738
 
739
+ /**
740
+ * The deep-partial input type: when configuring Stryker, every option is
741
+ * optional, including deep properties like `dashboard.project`.
742
+ */
743
+ export declare type PartialStrykerOptions = DeepOptional<StrykerOptions>;
744
+
745
+ export declare interface PassedCheckResult {
746
+ readonly status: 'passed';
747
+ }
748
+
749
+ export declare const PluginFileUrl: S.String;
750
+
751
+ export { Position }
752
+
753
+ export { PositionSchema }
754
+
755
+ export declare type Primitive = boolean | number | string | null | undefined;
756
+
73
757
  export declare class PropagatedTrace extends PropagatedTrace_base {}
74
758
 
75
759
  declare const PropagatedTrace_base: Context.ServiceClass<PropagatedTrace, "@systemfsoftware/stryker-js-plugin-interface/TraceContextRpc/PropagatedTrace", Option.Option<TraceContextParts>>;
76
760
 
761
+ /**
762
+ * Given a base type, allows type safe access to the name of a property.
763
+ * @param prop - The property name
764
+ */
765
+ export declare function propertyPath<T>(): PropertyPathOverloads<T>;
766
+
767
+ export declare interface PropertyPathOverloads<T> {
768
+ (key: KnownKeys<T>): string;
769
+ <TProp1 extends KnownKeys<T>>(key: TProp1, key2: KnownKeys<OnlyObject<T[TProp1]>>): string;
770
+ <TProp1 extends KnownKeys<T>, TProp2 extends KnownKeys<OnlyObject<T[TProp1]>>>(key: TProp1, key2: TProp2, key3: KnownKeys<OnlyObject<OnlyObject<T[TProp1]>[TProp2]>>): string;
771
+ }
772
+
773
+ /**
774
+ * The four option defaults a human reads about in help text.
775
+ *
776
+ * `Schema.schema.ts` declares every default, and a CLI that wants to
777
+ * name one in a `--help` description must read it from here rather than type
778
+ * the literal a second time: a restated default drifts the moment the schema
779
+ * moves, and no gate compares a help string against a schema annotation.
780
+ *
781
+ * Only these four are here because only these four are rendered. A default
782
+ * nobody prints has one declaration site already, which is the schema.
783
+ */
784
+ export declare const RENDERED_OPTION_DEFAULTS: {
785
+ readonly coverageAnalysis: 'perTest';
786
+ readonly fileLogLevel: 'off';
787
+ readonly logLevel: 'info';
788
+ readonly tempDirName: '.stryker-tmp';
789
+ };
790
+
77
791
  export declare const ReporterAck: S.Void;
78
792
 
79
793
  export declare const ReporterDrained: S.Void;
80
794
 
81
- export declare const ReporterEventBatch: S.$Array<S.Union<readonly [DryRunCompleted, MutationTestingPlanReady, MutantTested, MutationTestReportReady]>>;
795
+ export declare type ReporterEvent = DryRunCompleted | MutationTestingPlanReady | MutantTested | MutationTestReportReady;
796
+
797
+ export declare const ReporterEventBatch: S.$Array<S.Union<readonly [typeof DryRunCompleted, typeof MutationTestingPlanReady, typeof MutantTested, typeof MutationTestReportReady]>>;
82
798
 
83
799
  export declare type ReporterEventBatch = typeof ReporterEventBatch.Type;
84
800
 
85
- export { ReporterEventUnion }
801
+ export declare const ReporterEventKind: S.Literals<readonly ["dryRunCompleted", "mutationTestingPlanReady", "mutantTested", "mutationTestReportReady"]>;
802
+
803
+ export declare type ReporterEventKind = typeof ReporterEventKind.Type;
86
804
 
87
- export { ReporterFailed }
805
+ export declare const ReporterEventSchema: StandardSchemaV1<unknown, ReporterEvent>;
806
+
807
+ export declare const ReporterEventUnion: S.Union<readonly [typeof DryRunCompleted, typeof MutationTestingPlanReady, typeof MutantTested, typeof MutationTestReportReady]>;
808
+
809
+ export declare type ReporterFactory = (options: StrykerOptions, init: ReporterInit) => (events: AsyncIterable<ReporterEvent>) => Effect$1.Effect<void, ReporterFailed>;
810
+
811
+ export declare class ReporterFailed extends ReporterFailed_base {}
812
+
813
+ declare const ReporterFailed_base: S.Class<ReporterFailed, S.TaggedStruct<"ReporterFailed", {
814
+ readonly cause: S.String;
815
+ readonly event: S.Literals<readonly ["dryRunCompleted", "mutationTestingPlanReady", "mutantTested", "mutationTestReportReady"]>;
816
+ readonly reporterName: S.String;
817
+ }>, YieldableError>;
818
+
819
+ export declare interface ReporterInit {
820
+ readonly traceparent?: string | undefined;
821
+ readonly tracestate?: string | undefined;
822
+ }
88
823
 
89
824
  export declare const ReporterInitOptions: S.Struct<{
90
825
  readonly traceparent: S.optionalKey<S.String>;
@@ -93,9 +828,279 @@ export declare const ReporterInitOptions: S.Struct<{
93
828
 
94
829
  export declare type ReporterInitOptions = typeof ReporterInitOptions.Type;
95
830
 
831
+ export declare type ReporterPlanDescriptor = typeof ReporterPlanDescriptorSchema.Type;
832
+
833
+ export declare const ReporterPlanDescriptorSchema: S.Struct<{
834
+ readonly mutantId: S.String;
835
+ readonly plan: S.Literals<readonly ["EarlyResult", "Run"]>;
836
+ readonly netTime: S.Finite;
837
+ readonly reloadEnvironment: S.Boolean;
838
+ }>;
839
+
840
+ export declare const ReporterPlanKind: S.Literals<readonly ["EarlyResult", "Run"]>;
841
+
96
842
  export declare const ReporterRpcs: RpcGroup.RpcGroup<TracedRpc<'init', typeof ReporterInitOptions, typeof ReporterAck, typeof ReporterFailed> | TracedRpc<'onEventBatch', typeof ReporterEventBatch, typeof ReporterAck, typeof ReporterFailed> | TracedRpc<'flush', Schema.Void, typeof ReporterDrained, typeof ReporterFailed>>;
97
843
 
98
- export { TestRunnerCapabilitiesSchema }
844
+ declare const ReportType: S.Literals<readonly ["full", "mutationScore"]>;
845
+
846
+ declare type ReportType = typeof ReportType.Type;
847
+ export { ReportType }
848
+ export { ReportType as ReportTypeType }
849
+
850
+ export { RunOptions }
851
+
852
+ export declare type RunTiming = typeof RunTimingSchema.Type;
853
+
854
+ export declare const RunTimingSchema: S.Struct<{
855
+ readonly net: S.Finite;
856
+ readonly overhead: S.Finite;
857
+ }>;
858
+
859
+ export declare interface SkippedTestResult extends BaseTestResult {
860
+ readonly status: 'skipped';
861
+ }
862
+
863
+ /**
864
+ * The JSON Schema document derived from `StrykerOptionsSchema`, self-contained.
865
+ *
866
+ * It lives beside the schema module rather than inside it because it is a *use*
867
+ * of that schema, not a declaration of one: `S.toJsonSchemaDocument` consumes a
868
+ * schema and returns a plain document. Keeping uses out of a `*.schema.ts` is
869
+ * what lets a tool read every exported schema in a package and trust that each
870
+ * one is a schema - the generated law suite does exactly that, and a document
871
+ * handed to `toEncoded` takes the whole suite down with it.
872
+ */
873
+ export declare const strykerCoreSchema: Record<string, unknown>;
874
+
875
+ /** The decoded type: every defaulted option is present. */
876
+ export declare type StrykerOptions = S.Schema.Type<typeof StrykerOptionsSchema>;
877
+
878
+ export declare const StrykerOptionsSchema: S.StructWithRest<S.Struct<{
879
+ readonly allowConsoleColors: S.withDecodingDefaultKey<S.Boolean, never>;
880
+ readonly buildCommand: S.optional<S.String>;
881
+ readonly checkers: S.withDecodingDefaultKey<S.$Array<S.Struct<{
882
+ readonly plugin: S.String;
883
+ readonly nodeArgs: S.optional<S.$Array<S.String>>;
884
+ readonly options: S.optional<S.$Record<S.String, S.Unknown>>;
885
+ }>>, never>;
886
+ readonly checkerNodeArgs: S.withDecodingDefaultKey<S.$Array<S.String>, never>;
887
+ readonly concurrency: S.optional<S.Union<readonly [S.Finite, S.String]>>;
888
+ readonly commandRunner: S.withDecodingDefaultKey<S.StructWithRest<S.Struct<{
889
+ readonly command: S.withDecodingDefaultKey<S.String, never>;
890
+ }>, readonly [S.$Record<S.String, S.Unknown>]>, never>;
891
+ readonly coverageAnalysis: S.withDecodingDefaultKey<S.Literals<readonly ["off", "all", "perTest"]>, never>;
892
+ readonly clearTextReporter: S.withDecodingDefaultKey<S.StructWithRest<S.Struct<{
893
+ readonly allowColor: S.withDecodingDefaultKey<S.Boolean, never>;
894
+ readonly allowEmojis: S.withDecodingDefaultKey<S.Boolean, never>;
895
+ readonly logTests: S.withDecodingDefaultKey<S.Boolean, never>;
896
+ readonly maxTestsToLog: S.withDecodingDefaultKey<S.Finite, never>;
897
+ readonly reportTests: S.withDecodingDefaultKey<S.Boolean, never>;
898
+ readonly reportMutants: S.withDecodingDefaultKey<S.Boolean, never>;
899
+ readonly reportScoreTable: S.withDecodingDefaultKey<S.Boolean, never>;
900
+ readonly skipFull: S.withDecodingDefaultKey<S.Boolean, never>;
901
+ }>, readonly [S.$Record<S.String, S.Unknown>]>, never>;
902
+ readonly dryRunOnly: S.withDecodingDefaultKey<S.Boolean, never>;
903
+ readonly ignorePatterns: S.withDecodingDefaultKey<S.$Array<S.String>, never>;
904
+ readonly ignoreStatic: S.withDecodingDefaultKey<S.Boolean, never>;
905
+ readonly incremental: S.withDecodingDefaultKey<S.Boolean, never>;
906
+ readonly incrementalFile: S.withDecodingDefaultKey<S.String, never>;
907
+ readonly progressStreamFile: S.withDecodingDefaultKey<S.String, never>;
908
+ readonly force: S.withDecodingDefaultKey<S.Boolean, never>;
909
+ readonly fileLogLevel: S.withDecodingDefaultKey<S.Literals<readonly ["off", "fatal", "error", "warn", "info", "debug", "trace"]>, never>;
910
+ readonly inPlace: S.withDecodingDefaultKey<S.Boolean, never>;
911
+ readonly logLevel: S.withDecodingDefaultKey<S.Literals<readonly ["off", "fatal", "error", "warn", "info", "debug", "trace"]>, never>;
912
+ readonly maxConcurrentTestRunners: S.withDecodingDefaultKey<S.Finite, never>;
913
+ readonly maxTestRunnerReuse: S.withDecodingDefaultKey<S.Finite, never>;
914
+ readonly mutate: S.withDecodingDefaultKey<S.$Array<S.String>, never>;
915
+ readonly mutator: S.withDecodingDefaultKey<S.Struct<{
916
+ readonly excludedMutations: S.withDecodingDefaultKey<S.$Array<S.String>, never>;
917
+ }>, never>;
918
+ readonly packageManager: S.optional<S.Literals<readonly ["npm", "yarn", "pnpm"]>>;
919
+ readonly plugins: S.withDecodingDefaultKey<S.$Array<S.String>, never>;
920
+ readonly appendPlugins: S.withDecodingDefaultKey<S.$Array<S.String>, never>;
921
+ readonly reporters: S.withDecodingDefaultKey<S.$Array<S.String>, never>;
922
+ readonly htmlReporter: S.withDecodingDefaultKey<S.Struct<{
923
+ readonly fileName: S.withDecodingDefaultKey<S.String, never>;
924
+ }>, never>;
925
+ readonly jsonReporter: S.withDecodingDefaultKey<S.Struct<{
926
+ readonly fileName: S.withDecodingDefaultKey<S.String, never>;
927
+ }>, never>;
928
+ readonly disableTypeChecks: S.withDecodingDefaultKey<S.Union<readonly [S.Boolean, S.String]>, never>;
929
+ readonly symlinkNodeModules: S.withDecodingDefaultKey<S.Boolean, never>;
930
+ readonly tempDirName: S.withDecodingDefaultKey<S.String, never>;
931
+ readonly cleanTempDir: S.withDecodingDefaultKey<S.Literals<readonly ["always", false, true]>, never>;
932
+ readonly testRunner: S.withDecodingDefaultKey<S.Union<readonly [S.String, S.Struct<{
933
+ readonly plugin: S.String;
934
+ readonly nodeArgs: S.optional<S.$Array<S.String>>;
935
+ readonly options: S.optional<S.$Record<S.String, S.Unknown>>;
936
+ }>]>, never>;
937
+ readonly testRunnerNodeArgs: S.withDecodingDefaultKey<S.$Array<S.String>, never>;
938
+ readonly thresholds: S.withDecodingDefaultKey<S.Struct<{
939
+ readonly high: S.withDecodingDefaultKey<S.Finite, never>;
940
+ readonly low: S.withDecodingDefaultKey<S.Finite, never>;
941
+ readonly break: S.withDecodingDefaultKey<S.NullOr<S.Finite>, never>;
942
+ }>, never>;
943
+ readonly timeoutFactor: S.withDecodingDefaultKey<S.Finite, never>;
944
+ readonly timeoutMS: S.withDecodingDefaultKey<S.Finite, never>;
945
+ readonly dryRunTimeoutMinutes: S.withDecodingDefaultKey<S.Finite, never>;
946
+ readonly tsconfigFile: S.withDecodingDefaultKey<S.String, never>;
947
+ readonly warnings: S.withDecodingDefaultKey<S.Union<readonly [S.Boolean, S.StructWithRest<S.Struct<{
948
+ readonly unknownOptions: S.withDecodingDefaultKey<S.Boolean, never>;
949
+ readonly preprocessorErrors: S.withDecodingDefaultKey<S.Boolean, never>;
950
+ readonly unserializableOptions: S.withDecodingDefaultKey<S.Boolean, never>;
951
+ readonly slow: S.withDecodingDefaultKey<S.Boolean, never>;
952
+ }>, readonly [S.$Record<S.String, S.Unknown>]>]>, never>;
953
+ readonly disableBail: S.withDecodingDefaultKey<S.Boolean, never>;
954
+ readonly allowEmpty: S.withDecodingDefaultKey<S.Boolean, never>;
955
+ readonly ignorers: S.withDecodingDefaultKey<S.$Array<S.String>, never>;
956
+ readonly testFiles: S.withDecodingDefaultKey<S.$Array<S.String>, never>;
957
+ }>, readonly [S.$Record<S.String, S.Unknown>]>;
958
+
959
+ /**
960
+ * Creates a URL to the page where a consumer can report a bug against this
961
+ * project.
962
+ *
963
+ * The tracker is ours. The ported original addressed the upstream StrykerJS
964
+ * repository, along with its label and issue-template parameters, so every bug
965
+ * a consumer filed from a Stryker run arrived at a project that does not own
966
+ * this code (`REPO-O1`) and prefilled a template that does not exist here.
967
+ *
968
+ * @param titleSuggestion - The title to be prefilled in.
969
+ */
970
+ export declare function strykerReportBugUrl(titleSuggestion: string): string;
971
+
972
+ export declare interface SuccessTestResult extends BaseTestResult {
973
+ readonly status: 'success';
974
+ }
975
+
976
+ export declare interface SurvivedMutantRunResult {
977
+ readonly status: 'survived';
978
+ readonly nrOfTests: number;
979
+ }
980
+
981
+ export declare type TestDefinition = typeof TestDefinitionSchema.Type;
982
+
983
+ export declare const TestDefinitionSchema: S.Struct<{
984
+ readonly id: S.String;
985
+ readonly name: S.String;
986
+ readonly location: S.optional<S.Struct<{
987
+ readonly start: S.Struct<{
988
+ readonly line: S.Finite;
989
+ readonly column: S.Finite;
990
+ }>;
991
+ readonly end: S.optional<S.Struct<{
992
+ readonly line: S.Finite;
993
+ readonly column: S.Finite;
994
+ }>>;
995
+ }>>;
996
+ }>;
997
+
998
+ export declare type TestFile = typeof TestFileSchema.Type;
999
+
1000
+ export declare type TestFileDefinitionDictionary = typeof TestFileDefinitionDictionarySchema.Type;
1001
+
1002
+ export declare const TestFileDefinitionDictionarySchema: S.$Record<S.String, S.Struct<{
1003
+ readonly source: S.optional<S.String>;
1004
+ readonly tests: S.$Array<S.Struct<{
1005
+ readonly id: S.String;
1006
+ readonly name: S.String;
1007
+ readonly location: S.optional<S.Struct<{
1008
+ readonly start: S.Struct<{
1009
+ readonly line: S.Finite;
1010
+ readonly column: S.Finite;
1011
+ }>;
1012
+ readonly end: S.optional<S.Struct<{
1013
+ readonly line: S.Finite;
1014
+ readonly column: S.Finite;
1015
+ }>>;
1016
+ }>>;
1017
+ }>>;
1018
+ }>>;
1019
+
1020
+ export declare const TestFileSchema: S.Struct<{
1021
+ readonly source: S.optional<S.String>;
1022
+ readonly tests: S.$Array<S.Struct<{
1023
+ readonly id: S.String;
1024
+ readonly name: S.String;
1025
+ readonly location: S.optional<S.Struct<{
1026
+ readonly start: S.Struct<{
1027
+ readonly line: S.Finite;
1028
+ readonly column: S.Finite;
1029
+ }>;
1030
+ readonly end: S.optional<S.Struct<{
1031
+ readonly line: S.Finite;
1032
+ readonly column: S.Finite;
1033
+ }>>;
1034
+ }>>;
1035
+ }>>;
1036
+ }>;
1037
+
1038
+ export declare function testFilesProvided(options: {
1039
+ readonly testFiles?: readonly string[];
1040
+ }): boolean;
1041
+
1042
+ export declare type TestResult = FailedTestResult | SkippedTestResult | SuccessTestResult;
1043
+
1044
+ export declare const TestResultSchema: S.Union<readonly [S.Struct<{
1045
+ readonly id: S.String;
1046
+ readonly name: S.String;
1047
+ readonly timeSpentMs: S.Finite;
1048
+ readonly fileName: S.optionalKey<S.String>;
1049
+ readonly startPosition: S.optionalKey<S.Struct<{
1050
+ readonly line: S.Finite;
1051
+ readonly column: S.Finite;
1052
+ }>>;
1053
+ readonly status: S.Literal<"failed">;
1054
+ readonly failureMessage: S.String;
1055
+ }>, S.Struct<{
1056
+ readonly id: S.String;
1057
+ readonly name: S.String;
1058
+ readonly timeSpentMs: S.Finite;
1059
+ readonly fileName: S.optionalKey<S.String>;
1060
+ readonly startPosition: S.optionalKey<S.Struct<{
1061
+ readonly line: S.Finite;
1062
+ readonly column: S.Finite;
1063
+ }>>;
1064
+ readonly status: S.Literal<"skipped">;
1065
+ }>, S.Struct<{
1066
+ readonly id: S.String;
1067
+ readonly name: S.String;
1068
+ readonly timeSpentMs: S.Finite;
1069
+ readonly fileName: S.optionalKey<S.String>;
1070
+ readonly startPosition: S.optionalKey<S.Struct<{
1071
+ readonly line: S.Finite;
1072
+ readonly column: S.Finite;
1073
+ }>>;
1074
+ readonly status: S.Literal<"success">;
1075
+ }>]>;
1076
+
1077
+ export declare class TestRunner extends TestRunner_base {}
1078
+
1079
+ declare const TestRunner_base: Context.ServiceClass<TestRunner, "@systemfsoftware/stryker-js-plugin-interface/TestRunner", TestRunnerService>;
1080
+
1081
+ export declare interface TestRunnerCapabilities {
1082
+ readonly reloadEnvironment: boolean;
1083
+ }
1084
+
1085
+ export declare const TestRunnerCapabilitiesSchema: S.Struct<{
1086
+ readonly reloadEnvironment: S.Boolean;
1087
+ }>;
1088
+
1089
+ export declare type TestRunnerConfig = typeof TestRunnerConfigSchema.Type;
1090
+
1091
+ export declare const TestRunnerConfigSchema: S.Union<readonly [S.String, S.Struct<{
1092
+ readonly plugin: S.String;
1093
+ readonly nodeArgs: S.optional<S.$Array<S.String>>;
1094
+ readonly options: S.optional<S.$Record<S.String, S.Unknown>>;
1095
+ }>]>;
1096
+
1097
+ export declare type TestRunnerCustomConfig = typeof TestRunnerCustomConfigSchema.Type;
1098
+
1099
+ export declare const TestRunnerCustomConfigSchema: S.Struct<{
1100
+ readonly plugin: S.String;
1101
+ readonly nodeArgs: S.optional<S.$Array<S.String>>;
1102
+ readonly options: S.optional<S.$Record<S.String, S.Unknown>>;
1103
+ }>;
99
1104
 
100
1105
  export declare const TestRunnerDryRunRequest: S.Struct<{
101
1106
  readonly options: S.Struct<{
@@ -109,7 +1114,13 @@ export declare const TestRunnerDryRunRequest: S.Struct<{
109
1114
 
110
1115
  export declare type TestRunnerDryRunRequest = typeof TestRunnerDryRunRequest.Type;
111
1116
 
112
- export { TestRunnerFailed }
1117
+ export declare class TestRunnerFailed extends TestRunnerFailed_base {}
1118
+
1119
+ declare const TestRunnerFailed_base: S.Class<TestRunnerFailed, S.TaggedStruct<"TestRunnerFailed", {
1120
+ readonly cause: S.String;
1121
+ readonly phase: S.Literals<readonly ["capabilities", "dispose", "dryRun", "init", "mutantRun"]>;
1122
+ readonly runnerName: S.String;
1123
+ }>, YieldableError>;
113
1124
 
114
1125
  export declare const TestRunnerMutantRunRequest: S.Struct<{
115
1126
  readonly options: S.Struct<{
@@ -128,6 +1139,37 @@ export declare type TestRunnerMutantRunRequest = typeof TestRunnerMutantRunReque
128
1139
 
129
1140
  export declare const TestRunnerRpcs: RpcGroup.RpcGroup<TracedRpc<'capabilities', Schema.Void, typeof TestRunnerCapabilitiesSchema, typeof TestRunnerFailed> | TracedRpc<'dryRun', typeof TestRunnerDryRunRequest, typeof DryRunResultSchema, typeof TestRunnerFailed> | TracedRpc<'mutantRun', typeof TestRunnerMutantRunRequest, typeof MutantRunResultSchema, typeof TestRunnerFailed>>;
130
1141
 
1142
+ export declare interface TestRunnerService {
1143
+ readonly capabilities: Effect$1.Effect<TestRunnerCapabilities, TestRunnerFailed>;
1144
+ readonly init: Effect$1.Effect<void, TestRunnerFailed>;
1145
+ readonly dryRun: (options: DryRunOptions) => Effect$1.Effect<DryRunResult, TestRunnerFailed>;
1146
+ readonly mutantRun: (options: MutantRunOptions) => Effect$1.Effect<MutantRunResult, TestRunnerFailed>;
1147
+ readonly dispose: Effect$1.Effect<void, TestRunnerFailed>;
1148
+ }
1149
+
1150
+ export declare const TestStatus: S.Literals<readonly ["success", "failed", "skipped"]>;
1151
+
1152
+ export declare type TestStatus = typeof TestStatus.Type;
1153
+
1154
+ export declare type Thresholds = typeof ThresholdsSchema.Type;
1155
+
1156
+ export declare const ThresholdsSchema: S.Struct<{
1157
+ readonly high: S.Finite;
1158
+ readonly low: S.Finite;
1159
+ }>;
1160
+
1161
+ export declare interface TimeoutDryRunResult {
1162
+ readonly status: 'timeout';
1163
+ readonly reason?: string;
1164
+ }
1165
+
1166
+ export declare interface TimeoutMutantRunResult {
1167
+ readonly status: 'timeout';
1168
+ readonly reason?: string;
1169
+ }
1170
+
1171
+ export declare function toMutantRunResult(dryRunResult: DryRunResult, reportAllKillers: boolean): MutantRunResult;
1172
+
131
1173
  export declare class TraceContextMiddleware extends TraceContextMiddleware_base {}
132
1174
 
133
1175
  declare const TraceContextMiddleware_base: RpcMiddleware.ServiceClass<TraceContextMiddleware, "@systemfsoftware/stryker-js-plugin-interface/TraceContextMiddleware", typeof PropagatedTrace, Schema.Never, never, never, true>;