@systemfsoftware/stryker-js-plugin-interface 7.0.0 → 7.1.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/dist/index.d.mts +56 -72
- package/dist/index.mjs +125 -37
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @systemfsoftware/stryker-js-plugin-interface
|
|
2
2
|
|
|
3
|
+
## 7.1.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- A checker that fails now fails mutation testing with that checker's cause, instead of crashing with an empty error. The TypeScript checker type-checks each mutant, so compile errors appear in the report. Verdict counts are non-negative integers; `Metrics` is a class you can build from mutant statuses; a threshold `low` may not exceed `high`.
|
|
8
|
+
|
|
3
9
|
## 7.0.0
|
|
4
10
|
|
|
5
11
|
### Major Changes
|
package/dist/index.d.mts
CHANGED
|
@@ -192,6 +192,8 @@ export declare type Dependencies = typeof DependenciesSchema.Type;
|
|
|
192
192
|
|
|
193
193
|
export declare const DependenciesSchema: S.$Record<S.String, S.String>;
|
|
194
194
|
|
|
195
|
+
export declare const DetectedStatus: S.Union<readonly [S.Literal<"Killed">, S.Literal<"Timeout">]>;
|
|
196
|
+
|
|
195
197
|
export declare class DryRunCompleted extends DryRunCompleted_base {}
|
|
196
198
|
|
|
197
199
|
declare const DryRunCompleted_base: S.Class<DryRunCompleted, S.TaggedStruct<"dryRunCompleted", {
|
|
@@ -202,7 +204,7 @@ declare const DryRunCompleted_base: S.Class<DryRunCompleted, S.TaggedStruct<"dry
|
|
|
202
204
|
readonly capabilities: S.Struct<{
|
|
203
205
|
readonly reloadEnvironment: S.Boolean;
|
|
204
206
|
}>;
|
|
205
|
-
readonly testCount: S.
|
|
207
|
+
readonly testCount: S.Int;
|
|
206
208
|
readonly tests: S.$Array<S.Union<readonly [S.Struct<{
|
|
207
209
|
readonly id: S.String;
|
|
208
210
|
readonly name: S.String;
|
|
@@ -370,7 +372,7 @@ export declare const FileResultDictionarySchema: S.$Record<S.String, S.Struct<{
|
|
|
370
372
|
readonly static: S.optional<S.Boolean>;
|
|
371
373
|
readonly coveredBy: S.optional<S.$Array<S.String>>;
|
|
372
374
|
readonly killedBy: S.optional<S.$Array<S.String>>;
|
|
373
|
-
readonly testsCompleted: S.optional<S.
|
|
375
|
+
readonly testsCompleted: S.optional<S.Int>;
|
|
374
376
|
readonly duration: S.optional<S.Finite>;
|
|
375
377
|
}>>;
|
|
376
378
|
}>>;
|
|
@@ -398,7 +400,7 @@ export declare const FileResultSchema: S.Struct<{
|
|
|
398
400
|
readonly static: S.optional<S.Boolean>;
|
|
399
401
|
readonly coveredBy: S.optional<S.$Array<S.String>>;
|
|
400
402
|
readonly killedBy: S.optional<S.$Array<S.String>>;
|
|
401
|
-
readonly testsCompleted: S.optional<S.
|
|
403
|
+
readonly testsCompleted: S.optional<S.Int>;
|
|
402
404
|
readonly duration: S.optional<S.Finite>;
|
|
403
405
|
}>>;
|
|
404
406
|
}>;
|
|
@@ -417,6 +419,8 @@ export declare const FrameworkInformationSchema: S.Struct<{
|
|
|
417
419
|
readonly dependencies: S.optional<S.$Record<S.String, S.String>>;
|
|
418
420
|
}>;
|
|
419
421
|
|
|
422
|
+
export declare const InvalidStatus: S.Union<readonly [S.Literal<"CompileError">, S.Literal<"RuntimeError">]>;
|
|
423
|
+
|
|
420
424
|
export declare const isCustomTestRunner: (value: TestRunnerConfig) => value is TestRunnerCustomConfig;
|
|
421
425
|
|
|
422
426
|
export declare interface KilledMutantRunResult {
|
|
@@ -443,7 +447,30 @@ declare type LogLevel = typeof LogLevel.Type;
|
|
|
443
447
|
export { LogLevel }
|
|
444
448
|
export { LogLevel as LogLevelType }
|
|
445
449
|
|
|
446
|
-
export declare
|
|
450
|
+
export declare class Metrics extends Metrics_base {
|
|
451
|
+
get totalDetected(): number;
|
|
452
|
+
get totalUndetected(): number;
|
|
453
|
+
get totalCovered(): number;
|
|
454
|
+
get totalValid(): number;
|
|
455
|
+
get totalInvalid(): number;
|
|
456
|
+
get totalMutants(): number;
|
|
457
|
+
get mutationScore(): number;
|
|
458
|
+
get mutationScoreBasedOnCoveredCode(): number;
|
|
459
|
+
static fromMutants(mutants: readonly {
|
|
460
|
+
readonly status: string;
|
|
461
|
+
}[]): Metrics;
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
declare const Metrics_base: S.Class<Metrics, S.Struct<{
|
|
465
|
+
readonly pending: S.Int;
|
|
466
|
+
readonly killed: S.Int;
|
|
467
|
+
readonly timeout: S.Int;
|
|
468
|
+
readonly survived: S.Int;
|
|
469
|
+
readonly noCoverage: S.Int;
|
|
470
|
+
readonly runtimeErrors: S.Int;
|
|
471
|
+
readonly compileErrors: S.Int;
|
|
472
|
+
readonly ignored: S.Int;
|
|
473
|
+
}>, {}>;
|
|
447
474
|
|
|
448
475
|
export declare interface MetricsResult {
|
|
449
476
|
readonly name: string;
|
|
@@ -451,47 +478,15 @@ export declare interface MetricsResult {
|
|
|
451
478
|
readonly childResults: readonly MetricsResult[];
|
|
452
479
|
}
|
|
453
480
|
|
|
454
|
-
export declare
|
|
455
|
-
readonly name:
|
|
456
|
-
readonly metrics:
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
readonly timeout: S.Finite;
|
|
460
|
-
readonly survived: S.Finite;
|
|
461
|
-
readonly noCoverage: S.Finite;
|
|
462
|
-
readonly runtimeErrors: S.Finite;
|
|
463
|
-
readonly compileErrors: S.Finite;
|
|
464
|
-
readonly ignored: S.Finite;
|
|
465
|
-
readonly totalDetected: S.Finite;
|
|
466
|
-
readonly totalUndetected: S.Finite;
|
|
467
|
-
readonly totalInvalid: S.Finite;
|
|
468
|
-
readonly totalValid: S.Finite;
|
|
469
|
-
readonly totalMutants: S.Finite;
|
|
470
|
-
readonly totalCovered: S.Finite;
|
|
471
|
-
readonly mutationScore: S.Finite;
|
|
472
|
-
readonly mutationScoreBasedOnCoveredCode: S.Finite;
|
|
473
|
-
}>;
|
|
474
|
-
readonly childResults: S.$Array<S.suspend<S.Codec<MetricsResult, MetricsResult, never, never>>>;
|
|
475
|
-
}>;
|
|
481
|
+
export declare interface MetricsResultEncoded {
|
|
482
|
+
readonly name: string;
|
|
483
|
+
readonly metrics: typeof Metrics.Encoded;
|
|
484
|
+
readonly childResults: readonly MetricsResultEncoded[];
|
|
485
|
+
}
|
|
476
486
|
|
|
477
|
-
export declare const
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
readonly timeout: S.Finite;
|
|
481
|
-
readonly survived: S.Finite;
|
|
482
|
-
readonly noCoverage: S.Finite;
|
|
483
|
-
readonly runtimeErrors: S.Finite;
|
|
484
|
-
readonly compileErrors: S.Finite;
|
|
485
|
-
readonly ignored: S.Finite;
|
|
486
|
-
readonly totalDetected: S.Finite;
|
|
487
|
-
readonly totalUndetected: S.Finite;
|
|
488
|
-
readonly totalInvalid: S.Finite;
|
|
489
|
-
readonly totalValid: S.Finite;
|
|
490
|
-
readonly totalMutants: S.Finite;
|
|
491
|
-
readonly totalCovered: S.Finite;
|
|
492
|
-
readonly mutationScore: S.Finite;
|
|
493
|
-
readonly mutationScoreBasedOnCoveredCode: S.Finite;
|
|
494
|
-
}>;
|
|
487
|
+
export declare const MetricsResultSchema: S.Codec<MetricsResult, MetricsResultEncoded>;
|
|
488
|
+
|
|
489
|
+
export declare const MetricsSchema: typeof Metrics;
|
|
495
490
|
|
|
496
491
|
export { MutantActivation }
|
|
497
492
|
|
|
@@ -526,7 +521,7 @@ export declare const MutantResultSchema: S.Struct<{
|
|
|
526
521
|
readonly static: S.optional<S.Boolean>;
|
|
527
522
|
readonly coveredBy: S.optional<S.$Array<S.String>>;
|
|
528
523
|
readonly killedBy: S.optional<S.$Array<S.String>>;
|
|
529
|
-
readonly testsCompleted: S.optional<S.
|
|
524
|
+
readonly testsCompleted: S.optional<S.Int>;
|
|
530
525
|
readonly duration: S.optional<S.Finite>;
|
|
531
526
|
}>;
|
|
532
527
|
|
|
@@ -578,8 +573,8 @@ declare const MutantTested_base: S.Class<MutantTested, S.TaggedStruct<"mutantTes
|
|
|
578
573
|
}>;
|
|
579
574
|
readonly mutator: S.String;
|
|
580
575
|
readonly replacement: S.NullOr<S.String>;
|
|
581
|
-
readonly completed: S.
|
|
582
|
-
readonly total: S.
|
|
576
|
+
readonly completed: S.Int;
|
|
577
|
+
readonly total: S.Int;
|
|
583
578
|
}>, {}>;
|
|
584
579
|
|
|
585
580
|
export declare type MutationScoreThresholds = typeof MutationScoreThresholdsSchema.Type;
|
|
@@ -593,7 +588,7 @@ export declare const MutationScoreThresholdsSchema: S.Struct<{
|
|
|
593
588
|
export declare class MutationTestingPlanReady extends MutationTestingPlanReady_base {}
|
|
594
589
|
|
|
595
590
|
declare const MutationTestingPlanReady_base: S.Class<MutationTestingPlanReady, S.TaggedStruct<"mutationTestingPlanReady", {
|
|
596
|
-
readonly total: S.
|
|
591
|
+
readonly total: S.Int;
|
|
597
592
|
readonly plans: S.$Array<S.Struct<{
|
|
598
593
|
readonly mutantId: S.String;
|
|
599
594
|
readonly plan: S.Literals<readonly ["EarlyResult", "Run"]>;
|
|
@@ -630,7 +625,7 @@ declare const MutationTestReportReady_base: S.Class<MutationTestReportReady, S.T
|
|
|
630
625
|
readonly static: S.optional<S.Boolean>;
|
|
631
626
|
readonly coveredBy: S.optional<S.$Array<S.String>>;
|
|
632
627
|
readonly killedBy: S.optional<S.$Array<S.String>>;
|
|
633
|
-
readonly testsCompleted: S.optional<S.
|
|
628
|
+
readonly testsCompleted: S.optional<S.Int>;
|
|
634
629
|
readonly duration: S.optional<S.Finite>;
|
|
635
630
|
}>>;
|
|
636
631
|
}>>;
|
|
@@ -667,28 +662,7 @@ declare const MutationTestReportReady_base: S.Class<MutationTestReportReady, S.T
|
|
|
667
662
|
readonly dependencies: S.optional<S.$Record<S.String, S.String>>;
|
|
668
663
|
}>>;
|
|
669
664
|
}>;
|
|
670
|
-
readonly metrics: S.
|
|
671
|
-
readonly name: S.String;
|
|
672
|
-
readonly metrics: S.Struct<{
|
|
673
|
-
readonly pending: S.Finite;
|
|
674
|
-
readonly killed: S.Finite;
|
|
675
|
-
readonly timeout: S.Finite;
|
|
676
|
-
readonly survived: S.Finite;
|
|
677
|
-
readonly noCoverage: S.Finite;
|
|
678
|
-
readonly runtimeErrors: S.Finite;
|
|
679
|
-
readonly compileErrors: S.Finite;
|
|
680
|
-
readonly ignored: S.Finite;
|
|
681
|
-
readonly totalDetected: S.Finite;
|
|
682
|
-
readonly totalUndetected: S.Finite;
|
|
683
|
-
readonly totalInvalid: S.Finite;
|
|
684
|
-
readonly totalValid: S.Finite;
|
|
685
|
-
readonly totalMutants: S.Finite;
|
|
686
|
-
readonly totalCovered: S.Finite;
|
|
687
|
-
readonly mutationScore: S.Finite;
|
|
688
|
-
readonly mutationScoreBasedOnCoveredCode: S.Finite;
|
|
689
|
-
}>;
|
|
690
|
-
readonly childResults: S.$Array<S.suspend<S.Codec<MetricsResult, MetricsResult, never, never>>>;
|
|
691
|
-
}>;
|
|
665
|
+
readonly metrics: S.Codec<MetricsResult, MetricsResultEncoded, never, never>;
|
|
692
666
|
}>, {}>;
|
|
693
667
|
|
|
694
668
|
export declare type MutationTestResult = typeof MutationTestResultSchema.Type;
|
|
@@ -718,7 +692,7 @@ export declare const MutationTestResultSchema: S.Struct<{
|
|
|
718
692
|
readonly static: S.optional<S.Boolean>;
|
|
719
693
|
readonly coveredBy: S.optional<S.$Array<S.String>>;
|
|
720
694
|
readonly killedBy: S.optional<S.$Array<S.String>>;
|
|
721
|
-
readonly testsCompleted: S.optional<S.
|
|
695
|
+
readonly testsCompleted: S.optional<S.Int>;
|
|
722
696
|
readonly duration: S.optional<S.Finite>;
|
|
723
697
|
}>>;
|
|
724
698
|
}>>;
|
|
@@ -756,6 +730,10 @@ export declare const MutationTestResultSchema: S.Struct<{
|
|
|
756
730
|
}>>;
|
|
757
731
|
}>;
|
|
758
732
|
|
|
733
|
+
export declare const NonNegativeFinite: S.Finite;
|
|
734
|
+
|
|
735
|
+
export declare const NonNegativeInt: S.Int;
|
|
736
|
+
|
|
759
737
|
export declare type OnlyObject<T> = Exclude<T, Primitive>;
|
|
760
738
|
|
|
761
739
|
export { OpenEndLocation }
|
|
@@ -780,6 +758,8 @@ export declare interface PassedCheckResult {
|
|
|
780
758
|
readonly status: 'passed';
|
|
781
759
|
}
|
|
782
760
|
|
|
761
|
+
export declare const Percentage: S.Finite;
|
|
762
|
+
|
|
783
763
|
export declare const PluginFileUrl: S.String;
|
|
784
764
|
|
|
785
765
|
export { Position }
|
|
@@ -1228,6 +1208,10 @@ export declare const TRACEPARENT_HEADER = "traceparent";
|
|
|
1228
1208
|
|
|
1229
1209
|
export declare const TRACESTATE_HEADER = "tracestate";
|
|
1230
1210
|
|
|
1211
|
+
export declare const UndetectedStatus: S.Union<readonly [S.Literal<"Survived">, S.Literal<"NoCoverage">]>;
|
|
1212
|
+
|
|
1213
|
+
export declare const UntestedStatus: S.Union<readonly [S.Literal<"Ignored">, S.Literal<"Pending">]>;
|
|
1214
|
+
|
|
1231
1215
|
export declare const WorkerEntryUrl: S.String;
|
|
1232
1216
|
|
|
1233
1217
|
export declare type WorkerEntryUrl = typeof WorkerEntryUrl.Type;
|
package/dist/index.mjs
CHANGED
|
@@ -71,27 +71,87 @@ const EXIT_CODE = {
|
|
|
71
71
|
};
|
|
72
72
|
//#endregion
|
|
73
73
|
//#region src/Metrics.schema.ts
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
74
|
+
const DetectedStatus = S.Union([S.Literal("Killed"), S.Literal("Timeout")]);
|
|
75
|
+
const UndetectedStatus = S.Union([S.Literal("Survived"), S.Literal("NoCoverage")]);
|
|
76
|
+
const InvalidStatus = S.Union([S.Literal("CompileError"), S.Literal("RuntimeError")]);
|
|
77
|
+
const UntestedStatus = S.Union([S.Literal("Ignored"), S.Literal("Pending")]);
|
|
78
|
+
const NonNegativeInt = S.Int.pipe(S.check(S.isGreaterThanOrEqualTo(0)));
|
|
79
|
+
const NonNegativeFinite = S.Finite.pipe(S.check(S.isGreaterThanOrEqualTo(0)));
|
|
80
|
+
const Percentage = S.Finite.pipe(S.check(S.isBetween({
|
|
81
|
+
minimum: 0,
|
|
82
|
+
maximum: 100
|
|
83
|
+
})));
|
|
84
|
+
var Metrics = class Metrics extends S.Class("Metrics")({
|
|
85
|
+
pending: NonNegativeInt,
|
|
86
|
+
killed: NonNegativeInt,
|
|
87
|
+
timeout: NonNegativeInt,
|
|
88
|
+
survived: NonNegativeInt,
|
|
89
|
+
noCoverage: NonNegativeInt,
|
|
90
|
+
runtimeErrors: NonNegativeInt,
|
|
91
|
+
compileErrors: NonNegativeInt,
|
|
92
|
+
ignored: NonNegativeInt
|
|
93
|
+
}) {
|
|
94
|
+
get totalDetected() {
|
|
95
|
+
return this.timeout + this.killed;
|
|
96
|
+
}
|
|
97
|
+
get totalUndetected() {
|
|
98
|
+
return this.survived + this.noCoverage;
|
|
99
|
+
}
|
|
100
|
+
get totalCovered() {
|
|
101
|
+
return this.totalDetected + this.survived;
|
|
102
|
+
}
|
|
103
|
+
get totalValid() {
|
|
104
|
+
return this.totalUndetected + this.totalDetected;
|
|
105
|
+
}
|
|
106
|
+
get totalInvalid() {
|
|
107
|
+
return this.runtimeErrors + this.compileErrors;
|
|
108
|
+
}
|
|
109
|
+
get totalMutants() {
|
|
110
|
+
return this.totalValid + this.totalInvalid + this.ignored + this.pending;
|
|
111
|
+
}
|
|
112
|
+
get mutationScore() {
|
|
113
|
+
if (this.totalValid === 0) return NaN;
|
|
114
|
+
return Math.min(100, Math.max(0, this.totalDetected / this.totalValid * 100));
|
|
115
|
+
}
|
|
116
|
+
get mutationScoreBasedOnCoveredCode() {
|
|
117
|
+
if (this.totalCovered === 0) return NaN;
|
|
118
|
+
return Math.min(100, Math.max(0, this.totalDetected / this.totalCovered * 100));
|
|
119
|
+
}
|
|
120
|
+
static fromMutants(mutants) {
|
|
121
|
+
const counts = emptyMetricCounts();
|
|
122
|
+
for (const mutant of mutants) incrementMetricStatus(counts, mutant.status);
|
|
123
|
+
return Metrics.make(counts);
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
const emptyMetricCounts = () => ({
|
|
127
|
+
pending: 0,
|
|
128
|
+
killed: 0,
|
|
129
|
+
timeout: 0,
|
|
130
|
+
survived: 0,
|
|
131
|
+
noCoverage: 0,
|
|
132
|
+
runtimeErrors: 0,
|
|
133
|
+
compileErrors: 0,
|
|
134
|
+
ignored: 0
|
|
91
135
|
});
|
|
136
|
+
const METRIC_STATUS_KEYS = {
|
|
137
|
+
Pending: "pending",
|
|
138
|
+
Killed: "killed",
|
|
139
|
+
Timeout: "timeout",
|
|
140
|
+
Survived: "survived",
|
|
141
|
+
NoCoverage: "noCoverage",
|
|
142
|
+
RuntimeError: "runtimeErrors",
|
|
143
|
+
CompileError: "compileErrors",
|
|
144
|
+
Ignored: "ignored"
|
|
145
|
+
};
|
|
146
|
+
const incrementMetricStatus = (counts, status) => {
|
|
147
|
+
const key = METRIC_STATUS_KEYS[status];
|
|
148
|
+
if (key === void 0) return;
|
|
149
|
+
counts[key] += 1;
|
|
150
|
+
};
|
|
151
|
+
const MetricsSchema = Metrics;
|
|
92
152
|
const MetricsResultSchema = S.Struct({
|
|
93
153
|
name: S.String,
|
|
94
|
-
metrics:
|
|
154
|
+
metrics: Metrics,
|
|
95
155
|
childResults: S.Array(S.suspend(() => MetricsResultSchema))
|
|
96
156
|
}).annotate({ identifier: "MetricsResult" });
|
|
97
157
|
//#endregion
|
|
@@ -107,8 +167,8 @@ const MutantResultSchema = S.Struct({
|
|
|
107
167
|
static: S.optional(S.Boolean),
|
|
108
168
|
coveredBy: S.optional(S.Array(S.String)),
|
|
109
169
|
killedBy: S.optional(S.Array(S.String)),
|
|
110
|
-
testsCompleted: S.optional(
|
|
111
|
-
duration: S.optional(
|
|
170
|
+
testsCompleted: S.optional(NonNegativeInt),
|
|
171
|
+
duration: S.optional(NonNegativeFinite)
|
|
112
172
|
});
|
|
113
173
|
const FileResultSchema = S.Struct({
|
|
114
174
|
language: S.String,
|
|
@@ -127,9 +187,23 @@ const TestFileSchema = S.Struct({
|
|
|
127
187
|
});
|
|
128
188
|
const TestFileDefinitionDictionarySchema = S.Record(S.String, TestFileSchema);
|
|
129
189
|
const ThresholdsSchema = S.Struct({
|
|
130
|
-
high:
|
|
131
|
-
low:
|
|
132
|
-
})
|
|
190
|
+
high: Percentage,
|
|
191
|
+
low: Percentage
|
|
192
|
+
}).pipe(S.check(S.makeFilter((t) => t.low <= t.high, {
|
|
193
|
+
expected: "thresholds where low <= high",
|
|
194
|
+
arbitrary: { candidate: { make: (fc) => fc.tuple(fc.float({
|
|
195
|
+
min: 0,
|
|
196
|
+
max: 100,
|
|
197
|
+
noNaN: true
|
|
198
|
+
}), fc.float({
|
|
199
|
+
min: 0,
|
|
200
|
+
max: 100,
|
|
201
|
+
noNaN: true
|
|
202
|
+
})).map(([a, b]) => ({
|
|
203
|
+
high: Math.max(a, b),
|
|
204
|
+
low: Math.min(a, b)
|
|
205
|
+
})) } }
|
|
206
|
+
})));
|
|
133
207
|
const BrandingInformationSchema = S.Struct({
|
|
134
208
|
homepageUrl: S.String,
|
|
135
209
|
imageUrl: S.optional(S.String)
|
|
@@ -261,24 +335,24 @@ const ReporterEventKind = S.Literals([
|
|
|
261
335
|
"mutationTestReportReady"
|
|
262
336
|
]);
|
|
263
337
|
const RunTimingSchema = S.Struct({
|
|
264
|
-
net:
|
|
265
|
-
overhead:
|
|
338
|
+
net: NonNegativeFinite,
|
|
339
|
+
overhead: NonNegativeFinite
|
|
266
340
|
});
|
|
267
341
|
const ReporterPlanKind = S.Literals(["EarlyResult", "Run"]);
|
|
268
342
|
const ReporterPlanDescriptorSchema = S.Struct({
|
|
269
343
|
mutantId: S.String,
|
|
270
344
|
plan: ReporterPlanKind,
|
|
271
|
-
netTime:
|
|
345
|
+
netTime: NonNegativeFinite,
|
|
272
346
|
reloadEnvironment: S.Boolean
|
|
273
347
|
});
|
|
274
348
|
var DryRunCompleted = class extends S.TaggedClass()("dryRunCompleted", {
|
|
275
349
|
timing: RunTimingSchema,
|
|
276
350
|
capabilities: TestRunnerCapabilitiesSchema,
|
|
277
|
-
testCount:
|
|
351
|
+
testCount: NonNegativeInt,
|
|
278
352
|
tests: S.Array(TestResultSchema)
|
|
279
353
|
}) {};
|
|
280
354
|
var MutationTestingPlanReady = class extends S.TaggedClass()("mutationTestingPlanReady", {
|
|
281
|
-
total:
|
|
355
|
+
total: NonNegativeInt,
|
|
282
356
|
plans: S.Array(ReporterPlanDescriptorSchema)
|
|
283
357
|
}) {};
|
|
284
358
|
var MutantTested = class extends S.TaggedClass()("mutantTested", {
|
|
@@ -288,8 +362,8 @@ var MutantTested = class extends S.TaggedClass()("mutantTested", {
|
|
|
288
362
|
location: LocationSchema$1,
|
|
289
363
|
mutator: S.String,
|
|
290
364
|
replacement: S.NullOr(S.String),
|
|
291
|
-
completed:
|
|
292
|
-
total:
|
|
365
|
+
completed: NonNegativeInt,
|
|
366
|
+
total: NonNegativeInt
|
|
293
367
|
}) {};
|
|
294
368
|
var MutationTestReportReady = class extends S.TaggedClass()("mutationTestReportReady", {
|
|
295
369
|
report: MutationTestResultSchema,
|
|
@@ -461,11 +535,6 @@ const PackageManager = S.Literals([
|
|
|
461
535
|
"yarn",
|
|
462
536
|
"pnpm"
|
|
463
537
|
]);
|
|
464
|
-
/** 0–100 percentage used by the mutation-score thresholds. */
|
|
465
|
-
const Percentage = S.Finite.pipe(S.check(S.isBetween({
|
|
466
|
-
minimum: 0,
|
|
467
|
-
maximum: 100
|
|
468
|
-
})));
|
|
469
538
|
const CommandRunnerOptionsSchema = openStruct({ command: defaulted(S.String, "npm test") });
|
|
470
539
|
const ClearTextReporterOptions = openStruct({
|
|
471
540
|
allowColor: defaulted(S.Boolean, true),
|
|
@@ -483,7 +552,26 @@ const MutationScoreThresholdsSchema = S.Struct({
|
|
|
483
552
|
high: defaulted(Percentage, 80),
|
|
484
553
|
low: defaulted(Percentage, 60),
|
|
485
554
|
break: defaulted(S.NullOr(Percentage), null)
|
|
486
|
-
})
|
|
555
|
+
}).pipe(S.check(S.makeFilter((t) => t.low <= t.high, {
|
|
556
|
+
expected: "thresholds where low <= high",
|
|
557
|
+
arbitrary: { candidate: { make: (fc) => fc.tuple(fc.float({
|
|
558
|
+
min: 0,
|
|
559
|
+
max: 100,
|
|
560
|
+
noNaN: true
|
|
561
|
+
}), fc.float({
|
|
562
|
+
min: 0,
|
|
563
|
+
max: 100,
|
|
564
|
+
noNaN: true
|
|
565
|
+
}), fc.option(fc.float({
|
|
566
|
+
min: 0,
|
|
567
|
+
max: 100,
|
|
568
|
+
noNaN: true
|
|
569
|
+
}), { nil: null })).map(([a, b, brk]) => ({
|
|
570
|
+
high: Math.max(a, b),
|
|
571
|
+
low: Math.min(a, b),
|
|
572
|
+
break: brk
|
|
573
|
+
})) } }
|
|
574
|
+
})));
|
|
487
575
|
const MutatorDescriptor = S.Struct({ excludedMutations: defaulted(S.Array(S.String), []) });
|
|
488
576
|
const WarningOptions = openStruct({
|
|
489
577
|
unknownOptions: defaulted(S.Boolean, true),
|
|
@@ -708,4 +796,4 @@ const parseTraceparent = (value) => {
|
|
|
708
796
|
};
|
|
709
797
|
const TraceContextReference = Context.Reference("@systemfsoftware/stryker-js-plugin-interface/TraceContextReference", { defaultValue: () => Option.none() });
|
|
710
798
|
//#endregion
|
|
711
|
-
export { BoundaryErrorSchema, BoundaryPayloadRejected, BoundaryUnrecognizedSignal, BrandingInformationSchema, CheckResultSchema, CheckStatus, Checker, CheckerCheckResult, CheckerCustomConfigSchema, CheckerEntryConfigSchema, CheckerFailed, CheckerGroupResult, CheckerMutantWire, CheckerRequest, CheckerRpcs, CommandRunnerOptionsSchema, CoverageAnalysisMode, CoverageAnalysisSchema, DependenciesSchema, DryRunCompleted, DryRunOptionsSchema, DryRunResultSchema, DryRunStatus, EXIT_CODE, Evaluator, EvaluatorFailed, ExitClass, FileResultDictionarySchema, FileResultSchema, FrameworkInformationSchema, LocationSchema, LogLevel, MetricsResultSchema, MetricsSchema, MutantActivationSchema, MutantCoverageSchema, MutantResultSchema, MutantRunOptionsSchema, MutantRunResultSchema, MutantRunStatus, MutantStatusSchema, MutantTested, MutationScoreThresholdsSchema, MutationTestReportReady, MutationTestResultSchema, MutationTestingPlanReady, OpenEndLocationSchema, PackageManager, PluginFileUrl, PositionSchema, PropagatedTrace, RENDERED_OPTION_DEFAULTS, ReportType, ReporterAck, ReporterDrained, ReporterEventBatch, ReporterEventKind, ReporterEventSchema, ReporterEventUnion, ReporterFailed, ReporterInitOptions, ReporterPlanDescriptorSchema, ReporterPlanKind, ReporterRpcs, RunTimingSchema, StrykerOptionsSchema, TRACEPARENT_HEADER, TRACESTATE_HEADER, TestDefinitionSchema, TestFileDefinitionDictionarySchema, TestFileSchema, TestResultSchema, TestRunner, TestRunnerCapabilitiesSchema, TestRunnerConfigSchema, TestRunnerCustomConfigSchema, TestRunnerDryRunRequest, TestRunnerFailed, TestRunnerMutantRunRequest, TestRunnerRpcs, TestStatus, ThresholdsSchema, TraceContextMiddleware, TraceContextReference, WorkerEntryUrl, WorkerPluginKind, WorkerPluginSpawnSchema, formatTraceparent, isCustomTestRunner, parseTraceparent, propertyPath, strykerCoreSchema, strykerReportBugUrl, testFilesProvided, toMutantRunResult };
|
|
799
|
+
export { BoundaryErrorSchema, BoundaryPayloadRejected, BoundaryUnrecognizedSignal, BrandingInformationSchema, CheckResultSchema, CheckStatus, Checker, CheckerCheckResult, CheckerCustomConfigSchema, CheckerEntryConfigSchema, CheckerFailed, CheckerGroupResult, CheckerMutantWire, CheckerRequest, CheckerRpcs, CommandRunnerOptionsSchema, CoverageAnalysisMode, CoverageAnalysisSchema, DependenciesSchema, DetectedStatus, DryRunCompleted, DryRunOptionsSchema, DryRunResultSchema, DryRunStatus, EXIT_CODE, Evaluator, EvaluatorFailed, ExitClass, FileResultDictionarySchema, FileResultSchema, FrameworkInformationSchema, InvalidStatus, LocationSchema, LogLevel, Metrics, MetricsResultSchema, MetricsSchema, MutantActivationSchema, MutantCoverageSchema, MutantResultSchema, MutantRunOptionsSchema, MutantRunResultSchema, MutantRunStatus, MutantStatusSchema, MutantTested, MutationScoreThresholdsSchema, MutationTestReportReady, MutationTestResultSchema, MutationTestingPlanReady, NonNegativeFinite, NonNegativeInt, OpenEndLocationSchema, PackageManager, Percentage, PluginFileUrl, PositionSchema, PropagatedTrace, RENDERED_OPTION_DEFAULTS, ReportType, ReporterAck, ReporterDrained, ReporterEventBatch, ReporterEventKind, ReporterEventSchema, ReporterEventUnion, ReporterFailed, ReporterInitOptions, ReporterPlanDescriptorSchema, ReporterPlanKind, ReporterRpcs, RunTimingSchema, StrykerOptionsSchema, TRACEPARENT_HEADER, TRACESTATE_HEADER, TestDefinitionSchema, TestFileDefinitionDictionarySchema, TestFileSchema, TestResultSchema, TestRunner, TestRunnerCapabilitiesSchema, TestRunnerConfigSchema, TestRunnerCustomConfigSchema, TestRunnerDryRunRequest, TestRunnerFailed, TestRunnerMutantRunRequest, TestRunnerRpcs, TestStatus, ThresholdsSchema, TraceContextMiddleware, TraceContextReference, UndetectedStatus, UntestedStatus, WorkerEntryUrl, WorkerPluginKind, WorkerPluginSpawnSchema, formatTraceparent, isCustomTestRunner, parseTraceparent, propertyPath, strykerCoreSchema, strykerReportBugUrl, testFilesProvided, toMutantRunResult };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@systemfsoftware/stryker-js-plugin-interface",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.1.0",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/systemfsoftware/stryker-js-effect.git",
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
"tsdown": "^0.23.0",
|
|
37
37
|
"typescript": "^7",
|
|
38
38
|
"vitest": "^4",
|
|
39
|
-
"@systemfsoftware/
|
|
40
|
-
"@systemfsoftware/
|
|
39
|
+
"@systemfsoftware/tsdown-config": "^0.1.0",
|
|
40
|
+
"@systemfsoftware/vitest-config": "^0.1.0"
|
|
41
41
|
},
|
|
42
42
|
"publishConfig": {
|
|
43
43
|
"access": "public",
|