@systemfsoftware/stryker-js 16.0.0 → 17.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 +22 -0
- package/dist/{Run.schema-CgcTsB1w.d.mts → Run.schema-7DBK1X32.d.mts} +1 -1
- package/dist/{RunEnvironment.service-F8LgeCqh.d.mts → RunEnvironment.service-Cluh-Bxt.d.mts} +2 -2
- package/dist/config.d.mts +2 -2
- package/dist/config.mjs +1 -1
- package/dist/events.d.mts +1 -1
- package/dist/{index-DEphx668.d.mts → index-y-Pg3XgT.d.mts} +35 -3
- package/dist/index.d.mts +6 -4
- package/dist/index.mjs +2 -2
- package/dist/main.mjs +411 -195
- package/dist/{merge-config-b06M-Ccx.d.mts → merge-config-52qu-jD7.d.mts} +1 -1
- package/dist/{merge-config-BYhhPA7r.mjs → merge-config-ruui2TPS.mjs} +9 -2
- package/dist/promises.d.mts +2 -2
- package/dist/promises.mjs +1 -1
- package/dist/{run-stages-k4L7ymmp.mjs → run-stages-B5YfftjV.mjs} +57 -10
- package/package.json +12 -12
package/dist/main.mjs
CHANGED
|
@@ -11789,7 +11789,7 @@ const FailureImpl = function(failure) {
|
|
|
11789
11789
|
};
|
|
11790
11790
|
FailureImpl.prototype = FailureProto;
|
|
11791
11791
|
/** @internal */
|
|
11792
|
-
const fail$
|
|
11792
|
+
const fail$10 = (failure) => new FailureImpl(failure);
|
|
11793
11793
|
/** @internal */
|
|
11794
11794
|
const SuccessImpl = function(success) {
|
|
11795
11795
|
this.success = success;
|
|
@@ -11800,7 +11800,7 @@ const succeed$11 = (success) => new SuccessImpl(success);
|
|
|
11800
11800
|
/** @internal */
|
|
11801
11801
|
const getSuccess$1 = (self) => isFailure$2(self) ? none$1 : some$2(self.success);
|
|
11802
11802
|
/** @internal */
|
|
11803
|
-
const fromOption$3 = /*#__PURE__*/ dual(2, (self, onNone) => isNone$1(self) ? fail$
|
|
11803
|
+
const fromOption$3 = /*#__PURE__*/ dual(2, (self, onNone) => isNone$1(self) ? fail$10(onNone()) : succeed$11(self.value));
|
|
11804
11804
|
//#endregion
|
|
11805
11805
|
//#region ../../node_modules/.pnpm/effect@4.0.0/node_modules/effect/dist/Order.js
|
|
11806
11806
|
/**
|
|
@@ -14452,7 +14452,7 @@ const succeed$10 = succeed$11;
|
|
|
14452
14452
|
* @category constructors
|
|
14453
14453
|
* @since 4.0.0
|
|
14454
14454
|
*/
|
|
14455
|
-
const fail$
|
|
14455
|
+
const fail$9 = fail$10;
|
|
14456
14456
|
/**
|
|
14457
14457
|
* Converts an `Option<A>` into a `Result<A, E>`.
|
|
14458
14458
|
*
|
|
@@ -14489,12 +14489,12 @@ const try_$2 = (evaluate) => {
|
|
|
14489
14489
|
if (isFunction(evaluate)) try {
|
|
14490
14490
|
return succeed$10(evaluate());
|
|
14491
14491
|
} catch (e) {
|
|
14492
|
-
return fail$
|
|
14492
|
+
return fail$9(e);
|
|
14493
14493
|
}
|
|
14494
14494
|
else try {
|
|
14495
14495
|
return succeed$10(evaluate.try());
|
|
14496
14496
|
} catch (e) {
|
|
14497
|
-
return fail$
|
|
14497
|
+
return fail$9(evaluate.catch(e));
|
|
14498
14498
|
}
|
|
14499
14499
|
};
|
|
14500
14500
|
/**
|
|
@@ -14646,7 +14646,7 @@ const getSuccess = getSuccess$1;
|
|
|
14646
14646
|
* @category mapping
|
|
14647
14647
|
* @since 4.0.0
|
|
14648
14648
|
*/
|
|
14649
|
-
const mapError$5 = /*#__PURE__*/ dual(2, (self, f) => isFailure$1(self) ? fail$
|
|
14649
|
+
const mapError$5 = /*#__PURE__*/ dual(2, (self, f) => isFailure$1(self) ? fail$9(f(self.failure)) : self);
|
|
14650
14650
|
/**
|
|
14651
14651
|
* Transforms the success channel of a `Result`, leaving the failure channel unchanged.
|
|
14652
14652
|
*
|
|
@@ -14817,7 +14817,7 @@ const getOrThrow = /*#__PURE__*/ (/* @__PURE__ */ dual(2, (self, onFailure) => {
|
|
|
14817
14817
|
* @category sequencing
|
|
14818
14818
|
* @since 2.0.0
|
|
14819
14819
|
*/
|
|
14820
|
-
const flatMap$8 = /*#__PURE__*/ dual(2, (self, f) => isFailure$1(self) ? fail$
|
|
14820
|
+
const flatMap$8 = /*#__PURE__*/ dual(2, (self, f) => isFailure$1(self) ? fail$9(self.failure) : f(self.success));
|
|
14821
14821
|
/**
|
|
14822
14822
|
* Collects a structure of `Result`s into a single `Result` of collected values.
|
|
14823
14823
|
*
|
|
@@ -16900,7 +16900,7 @@ const toPredicate = (self) => (input) => !isFailure$1(self(input));
|
|
|
16900
16900
|
* @category constructors
|
|
16901
16901
|
* @since 4.0.0
|
|
16902
16902
|
*/
|
|
16903
|
-
const has$5 = (key) => (input) => input.has(key) ? succeed$10(input) : fail$
|
|
16903
|
+
const has$5 = (key) => (input) => input.has(key) ? succeed$10(input) : fail$9(input);
|
|
16904
16904
|
/**
|
|
16905
16905
|
* Composes two filters sequentially, feeding the output of the first into the second.
|
|
16906
16906
|
*
|
|
@@ -17919,7 +17919,7 @@ const causeInterrupt = (fiberId) => new CauseImpl([new Interrupt(fiberId)]);
|
|
|
17919
17919
|
/** @internal */
|
|
17920
17920
|
const findFail$1 = (self) => {
|
|
17921
17921
|
const reason = self.reasons.find(isFailReason$1);
|
|
17922
|
-
return reason ? succeed$10(reason) : fail$
|
|
17922
|
+
return reason ? succeed$10(reason) : fail$9(self);
|
|
17923
17923
|
};
|
|
17924
17924
|
/** @internal */
|
|
17925
17925
|
const findError$1 = (self) => {
|
|
@@ -17927,7 +17927,7 @@ const findError$1 = (self) => {
|
|
|
17927
17927
|
const reason = self.reasons[i];
|
|
17928
17928
|
if (reason._tag === "Fail") return succeed$10(reason.error);
|
|
17929
17929
|
}
|
|
17930
|
-
return fail$
|
|
17930
|
+
return fail$9(self);
|
|
17931
17931
|
};
|
|
17932
17932
|
/** @internal */
|
|
17933
17933
|
const findErrorOption$1 = /*#__PURE__*/ toOption$1(findError$1);
|
|
@@ -17936,7 +17936,7 @@ const hasDies$1 = (self) => self.reasons.some(isDieReason$1);
|
|
|
17936
17936
|
/** @internal */
|
|
17937
17937
|
const findDefect = (self) => {
|
|
17938
17938
|
const reason = self.reasons.find(isDieReason$1);
|
|
17939
|
-
return reason ? succeed$10(reason.defect) : fail$
|
|
17939
|
+
return reason ? succeed$10(reason.defect) : fail$9(self);
|
|
17940
17940
|
};
|
|
17941
17941
|
/** @internal */
|
|
17942
17942
|
const hasInterrupts$1 = (self) => self.reasons.some(isInterruptReason);
|
|
@@ -17949,7 +17949,7 @@ const causeFilterInterruptors = (self) => {
|
|
|
17949
17949
|
interruptors ??= /* @__PURE__ */ new Set();
|
|
17950
17950
|
if (f.fiberId !== void 0) interruptors.add(f.fiberId);
|
|
17951
17951
|
}
|
|
17952
|
-
return interruptors ? succeed$10(interruptors) : fail$
|
|
17952
|
+
return interruptors ? succeed$10(interruptors) : fail$9(self);
|
|
17953
17953
|
};
|
|
17954
17954
|
/** @internal */
|
|
17955
17955
|
const causeInterruptors = (self) => {
|
|
@@ -18407,7 +18407,7 @@ const succeed$9 = exitSucceed;
|
|
|
18407
18407
|
/** @internal */
|
|
18408
18408
|
const failCause$6 = exitFailCause;
|
|
18409
18409
|
/** @internal */
|
|
18410
|
-
const fail$
|
|
18410
|
+
const fail$8 = exitFail;
|
|
18411
18411
|
/** @internal */
|
|
18412
18412
|
const sync$1 = /*#__PURE__*/ makePrimitive$1({
|
|
18413
18413
|
op: "Sync",
|
|
@@ -18425,10 +18425,10 @@ const suspend$5 = /*#__PURE__*/ makePrimitive$1({
|
|
|
18425
18425
|
}
|
|
18426
18426
|
});
|
|
18427
18427
|
/** @internal */
|
|
18428
|
-
const fromOption$1 = /*#__PURE__*/ dual((args) => args.length >= 2 || isOption(args[0]), (option, onNone) => isNone(option) ? fail$
|
|
18428
|
+
const fromOption$1 = /*#__PURE__*/ dual((args) => args.length >= 2 || isOption(args[0]), (option, onNone) => isNone(option) ? fail$8(onNone ? onNone() : new NoSuchElementError("Effect.fromOption: Option.none")) : succeed$9(option.value));
|
|
18429
18429
|
/** @internal */
|
|
18430
18430
|
const fromResult$1 = /*#__PURE__*/ match$6({
|
|
18431
|
-
onFailure: fail$
|
|
18431
|
+
onFailure: fail$8,
|
|
18432
18432
|
onSuccess: succeed$9
|
|
18433
18433
|
});
|
|
18434
18434
|
/** @internal */
|
|
@@ -18454,7 +18454,7 @@ const failCauseSync$1 = (evaluate) => suspend$5(() => failCause$6(evaluate()));
|
|
|
18454
18454
|
/** @internal */
|
|
18455
18455
|
const die$3 = (defect) => exitDie(defect);
|
|
18456
18456
|
/** @internal */
|
|
18457
|
-
const failSync$1 = (error) => suspend$5(() => fail$
|
|
18457
|
+
const failSync$1 = (error) => suspend$5(() => fail$8(error()));
|
|
18458
18458
|
/** @internal */
|
|
18459
18459
|
const void_$3 = /*#__PURE__*/ succeed$9(void 0);
|
|
18460
18460
|
/** @internal */
|
|
@@ -18465,7 +18465,7 @@ const try_$1 = (options) => {
|
|
|
18465
18465
|
try {
|
|
18466
18466
|
return succeed$9(evaluate());
|
|
18467
18467
|
} catch (err) {
|
|
18468
|
-
return fail$
|
|
18468
|
+
return fail$8(catcher(err));
|
|
18469
18469
|
}
|
|
18470
18470
|
});
|
|
18471
18471
|
};
|
|
@@ -18480,7 +18480,7 @@ const tryPromise$1 = (options) => {
|
|
|
18480
18480
|
return callbackOptions(function(resume, signal) {
|
|
18481
18481
|
const failWithCatch = (cause) => {
|
|
18482
18482
|
try {
|
|
18483
|
-
resume(fail$
|
|
18483
|
+
resume(fail$8(internalCall(() => catcher(cause))));
|
|
18484
18484
|
} catch (err) {
|
|
18485
18485
|
resume(die$3(err));
|
|
18486
18486
|
}
|
|
@@ -18729,7 +18729,7 @@ const tap$3 = /*#__PURE__*/ dual(2, (self, f) => new ContImpl(self, isEffect$1(f
|
|
|
18729
18729
|
/** @internal */
|
|
18730
18730
|
const asVoid$1 = (self) => new ContImpl(self, returnPayload, exitVoid);
|
|
18731
18731
|
/** @internal */
|
|
18732
|
-
const sandbox$1 = (self) => catchCause$2(self, fail$
|
|
18732
|
+
const sandbox$1 = (self) => catchCause$2(self, fail$8);
|
|
18733
18733
|
/** @internal */
|
|
18734
18734
|
const raceAllFirst = (all, options) => withFiber$1((parent) => {
|
|
18735
18735
|
const fibers = /* @__PURE__ */ new Set();
|
|
@@ -18794,7 +18794,7 @@ const exitIsSuccess = (self) => self._tag === "Success";
|
|
|
18794
18794
|
/** @internal */
|
|
18795
18795
|
const exitIsFailure = (self) => self._tag === "Failure";
|
|
18796
18796
|
/** @internal */
|
|
18797
|
-
const exitFilterCause = (self) => self._tag === "Failure" ? succeed$10(self.cause) : fail$
|
|
18797
|
+
const exitFilterCause = (self) => self._tag === "Failure" ? succeed$10(self.cause) : fail$9(self);
|
|
18798
18798
|
/** @internal */
|
|
18799
18799
|
const exitVoid = /*#__PURE__*/ exitSucceed(void 0);
|
|
18800
18800
|
/** @internal */
|
|
@@ -18930,14 +18930,14 @@ const catchTags$1 = /*#__PURE__*/ dual((args) => isEffect$1(args[0]), (self, cas
|
|
|
18930
18930
|
let keys;
|
|
18931
18931
|
return catchFilter$1(self, (e) => {
|
|
18932
18932
|
keys ??= Object.keys(cases);
|
|
18933
|
-
return hasProperty(e, "_tag") && isString$1(e["_tag"]) && keys.includes(e["_tag"]) ? succeed$10(e) : fail$
|
|
18933
|
+
return hasProperty(e, "_tag") && isString$1(e["_tag"]) && keys.includes(e["_tag"]) ? succeed$10(e) : fail$9(e);
|
|
18934
18934
|
}, (e) => cases[e["_tag"]](e), orElse);
|
|
18935
18935
|
});
|
|
18936
18936
|
/** @internal */
|
|
18937
18937
|
const catchReason$1 = /*#__PURE__*/ dual((args) => isEffect$1(args[0]), (self, errorTag, reasonTag, f, orElse) => catchIf$1(self, (e) => isTagged(e, errorTag) && hasProperty(e, "reason") && (orElse !== void 0 || isTagged(e.reason, reasonTag)), (e) => {
|
|
18938
18938
|
const reason = e.reason;
|
|
18939
18939
|
if (isTagged(reason, reasonTag)) return f(reason, e);
|
|
18940
|
-
return orElse ? orElse(reason, e) : fail$
|
|
18940
|
+
return orElse ? orElse(reason, e) : fail$8(e);
|
|
18941
18941
|
}));
|
|
18942
18942
|
/** @internal */
|
|
18943
18943
|
const mapError$4 = /*#__PURE__*/ dual(2, (self, f) => catch_$3(self, (error) => failSync$1(() => f(error))));
|
|
@@ -18984,7 +18984,7 @@ const option$2 = (self) => match$4(self, {
|
|
|
18984
18984
|
});
|
|
18985
18985
|
/** @internal */
|
|
18986
18986
|
const result$2 = (self) => matchEager(self, {
|
|
18987
|
-
onFailure: fail$
|
|
18987
|
+
onFailure: fail$9,
|
|
18988
18988
|
onSuccess: succeed$10
|
|
18989
18989
|
});
|
|
18990
18990
|
/** @internal */
|
|
@@ -19069,7 +19069,7 @@ const timeout$1 = /*#__PURE__*/ dual(2, (self, duration) => {
|
|
|
19069
19069
|
const decoded = fromInputUnsafe$1(duration);
|
|
19070
19070
|
return timeoutOrElse$1(self, {
|
|
19071
19071
|
duration: decoded,
|
|
19072
|
-
orElse: () => fail$
|
|
19072
|
+
orElse: () => fail$8(timeoutErrorFromDuration(decoded))
|
|
19073
19073
|
});
|
|
19074
19074
|
});
|
|
19075
19075
|
/** @internal */
|
|
@@ -19855,7 +19855,7 @@ const annotateCurrentSpan$1 = (...args) => withFiber$1((fiber) => {
|
|
|
19855
19855
|
/** @internal */
|
|
19856
19856
|
const currentSpan$1 = /*#__PURE__*/ withFiber$1((fiber) => {
|
|
19857
19857
|
const span = fiber.currentSpanLocal;
|
|
19858
|
-
return span ? succeed$9(span) : fail$
|
|
19858
|
+
return span ? succeed$9(span) : fail$8(new NoSuchElementError());
|
|
19859
19859
|
});
|
|
19860
19860
|
/** @internal */
|
|
19861
19861
|
const ClockRef = /*#__PURE__*/ Reference("effect/Clock", { defaultValue: () => new ClockImpl() });
|
|
@@ -20229,7 +20229,7 @@ const failCause$5 = exitFailCause;
|
|
|
20229
20229
|
* @category constructors
|
|
20230
20230
|
* @since 2.0.0
|
|
20231
20231
|
*/
|
|
20232
|
-
const fail$
|
|
20232
|
+
const fail$7 = exitFail;
|
|
20233
20233
|
/**
|
|
20234
20234
|
* Creates a failed Exit from a defect (unexpected error).
|
|
20235
20235
|
*
|
|
@@ -20494,6 +20494,38 @@ const _await = (self) => callback$2((resume) => {
|
|
|
20494
20494
|
*/
|
|
20495
20495
|
const done$1 = /* @__PURE__ */ dual(2, (self, effect) => sync$1(() => doneUnsafe(self, effect)));
|
|
20496
20496
|
/**
|
|
20497
|
+
* Attempts to complete the `Deferred` with the specified error.
|
|
20498
|
+
*
|
|
20499
|
+
* **When to use**
|
|
20500
|
+
*
|
|
20501
|
+
* Use to complete a `Deferred` with a typed failure value.
|
|
20502
|
+
*
|
|
20503
|
+
* **Details**
|
|
20504
|
+
*
|
|
20505
|
+
* Fibers waiting on the `Deferred` fail with that error only if this call
|
|
20506
|
+
* completes it. The returned effect succeeds with `true` when this call
|
|
20507
|
+
* completed the `Deferred`, or `false` if it was already completed.
|
|
20508
|
+
*
|
|
20509
|
+
* **Example** (Failing a Deferred with an error)
|
|
20510
|
+
*
|
|
20511
|
+
* ```ts import.meta.vitest
|
|
20512
|
+
* import { Deferred, Effect, Exit } from "effect"
|
|
20513
|
+
*
|
|
20514
|
+
* const program = Effect.gen(function*() {
|
|
20515
|
+
* const deferred = yield* Deferred.make<number, string>()
|
|
20516
|
+
* const success = yield* Deferred.fail(deferred, "Operation failed")
|
|
20517
|
+
* const exit = yield* Effect.exit(Deferred.await(deferred))
|
|
20518
|
+
* return [success, exit]
|
|
20519
|
+
* })
|
|
20520
|
+
*
|
|
20521
|
+
* await Effect.runPromise(program) // => [true, Exit.fail("Operation failed")]
|
|
20522
|
+
* ```
|
|
20523
|
+
*
|
|
20524
|
+
* @category completion
|
|
20525
|
+
* @since 2.0.0
|
|
20526
|
+
*/
|
|
20527
|
+
const fail$6 = /*#__PURE__*/ dual(2, (self, error) => done$1(self, exitFail(error)));
|
|
20528
|
+
/**
|
|
20497
20529
|
* Attempts to complete the `Deferred` with the specified `Cause`.
|
|
20498
20530
|
*
|
|
20499
20531
|
* **When to use**
|
|
@@ -23532,8 +23564,8 @@ const filterDone = (cause) => {
|
|
|
23532
23564
|
let hasFailure = false;
|
|
23533
23565
|
for (const reason of cause.reasons) if (isDoneFailure(reason)) done ??= reason.error;
|
|
23534
23566
|
else if (reason._tag !== "Interrupt") hasFailure = true;
|
|
23535
|
-
if (done === void 0) return fail$
|
|
23536
|
-
return hasFailure ? fail$
|
|
23567
|
+
if (done === void 0) return fail$9(cause);
|
|
23568
|
+
return hasFailure ? fail$9(fromReasons(cause.reasons.filter((reason) => !isDoneFailure(reason)))) : succeed$10(done);
|
|
23537
23569
|
};
|
|
23538
23570
|
/**
|
|
23539
23571
|
* Filters a Cause to extract the leftover value from done errors.
|
|
@@ -24003,7 +24035,7 @@ const retryOrElse$1 = /*#__PURE__*/ dual(3, (self, policy, orElse) => flatMap$6(
|
|
|
24003
24035
|
/** @internal */
|
|
24004
24036
|
const retry$1 = /*#__PURE__*/ dual(2, (self, options) => {
|
|
24005
24037
|
const schedule = typeof options === "function" ? options(identity) : isSchedule(options) ? options : buildFromOptions(options);
|
|
24006
|
-
return retryOrElse$1(self, schedule, fail$
|
|
24038
|
+
return retryOrElse$1(self, schedule, fail$8);
|
|
24007
24039
|
});
|
|
24008
24040
|
const passthroughForever = /*#__PURE__*/ passthrough$2(forever$1);
|
|
24009
24041
|
/** @internal */
|
|
@@ -25358,7 +25390,7 @@ const gen = gen$1;
|
|
|
25358
25390
|
* @category constructors
|
|
25359
25391
|
* @since 2.0.0
|
|
25360
25392
|
*/
|
|
25361
|
-
const fail$4 = fail$
|
|
25393
|
+
const fail$4 = fail$8;
|
|
25362
25394
|
/**
|
|
25363
25395
|
* Creates an `Effect` that represents a recoverable error using a lazy evaluation.
|
|
25364
25396
|
*
|
|
@@ -35121,6 +35153,22 @@ const succeed$4 = (value) => fromEffect$2(succeed$5(value));
|
|
|
35121
35153
|
*/
|
|
35122
35154
|
const empty$13 = /*#__PURE__*/ fromPull$1(/*#__PURE__*/ succeed$5(/*#__PURE__*/ done()));
|
|
35123
35155
|
/**
|
|
35156
|
+
* Constructs a channel that fails immediately with the specified error.
|
|
35157
|
+
*
|
|
35158
|
+
* **Example** (Failing with an error)
|
|
35159
|
+
*
|
|
35160
|
+
* ```ts import.meta.vitest
|
|
35161
|
+
* import { Channel, Effect, Exit } from "effect"
|
|
35162
|
+
*
|
|
35163
|
+
* const failedChannel = Channel.fail("Something went wrong")
|
|
35164
|
+
* Effect.runSync(Effect.exit(Channel.runCollect(failedChannel))) // => Exit.fail("Something went wrong")
|
|
35165
|
+
* ```
|
|
35166
|
+
*
|
|
35167
|
+
* @category constructors
|
|
35168
|
+
* @since 2.0.0
|
|
35169
|
+
*/
|
|
35170
|
+
const fail$3 = (error) => fromPull$1(succeed$5(fail$4(error)));
|
|
35171
|
+
/**
|
|
35124
35172
|
* Constructs a channel that fails immediately with the specified `Cause`.
|
|
35125
35173
|
*
|
|
35126
35174
|
* **When to use**
|
|
@@ -35916,6 +35964,15 @@ const catchCauseFilter = /*#__PURE__*/ dual(3, (self, filter, f) => catchCause(s
|
|
|
35916
35964
|
}));
|
|
35917
35965
|
const catch_$1 = /*#__PURE__*/ dual(2, (self, f) => catchCauseFilter(self, findError, (e) => f(e)));
|
|
35918
35966
|
/**
|
|
35967
|
+
* Returns a new channel, which is the same as this one, except the failure
|
|
35968
|
+
* value of the returned channel is created by applying the specified function
|
|
35969
|
+
* to the failure value of this channel.
|
|
35970
|
+
*
|
|
35971
|
+
* @category error handling
|
|
35972
|
+
* @since 2.0.0
|
|
35973
|
+
*/
|
|
35974
|
+
const mapError$2 = /*#__PURE__*/ dual(2, (self, f) => catch_$1(self, (err) => fail$3(f(err))));
|
|
35975
|
+
/**
|
|
35919
35976
|
* Merges multiple channels with specified concurrency and buffering options.
|
|
35920
35977
|
*
|
|
35921
35978
|
* **When to use**
|
|
@@ -38228,6 +38285,30 @@ const filterMap$2 = /*#__PURE__*/ dual(2, (self, filter) => fromChannel(filterMa
|
|
|
38228
38285
|
const filterEffect = /*#__PURE__*/ dual(2, (self, predicate) => fromChannel(filterArrayEffect(toChannel(self), predicate)));
|
|
38229
38286
|
const catch_ = /*#__PURE__*/ dual(2, (self, f) => fromChannel(catch_$1(self.channel, (error) => f(error).channel)));
|
|
38230
38287
|
/**
|
|
38288
|
+
* Transforms the errors emitted by this stream using `f`.
|
|
38289
|
+
*
|
|
38290
|
+
* **Example** (Mapping stream errors)
|
|
38291
|
+
*
|
|
38292
|
+
* ```ts import.meta.vitest
|
|
38293
|
+
* import { Effect, Stream } from "effect"
|
|
38294
|
+
*
|
|
38295
|
+
* const program = Effect.gen(function*() {
|
|
38296
|
+
* const result = yield* Stream.fail("bad").pipe(
|
|
38297
|
+
* Stream.mapError((error) => `mapped: ${error}`),
|
|
38298
|
+
* Stream.catch((error) => Stream.make(`recovered from ${error}`)),
|
|
38299
|
+
* Stream.runCollect
|
|
38300
|
+
* )
|
|
38301
|
+
* result // => [ 'recovered from mapped: bad' ]
|
|
38302
|
+
* })
|
|
38303
|
+
*
|
|
38304
|
+
* await Effect.runPromise(program)
|
|
38305
|
+
* ```
|
|
38306
|
+
*
|
|
38307
|
+
* @category error handling
|
|
38308
|
+
* @since 2.0.0
|
|
38309
|
+
*/
|
|
38310
|
+
const mapError$1 = /*#__PURE__*/ dual(2, (self, f) => fromChannel(mapError$2(self.channel, f)));
|
|
38311
|
+
/**
|
|
38231
38312
|
* Takes elements until the predicate matches.
|
|
38232
38313
|
*
|
|
38233
38314
|
* **Details**
|
|
@@ -38466,7 +38547,7 @@ const transduce = /*#__PURE__*/ dual(2, (self, sink) => transformPull(self, (ups
|
|
|
38466
38547
|
}
|
|
38467
38548
|
return upstream;
|
|
38468
38549
|
}).pipe(catch_$2((error) => {
|
|
38469
|
-
done$10 = fail$
|
|
38550
|
+
done$10 = fail$7(error);
|
|
38470
38551
|
return done();
|
|
38471
38552
|
}));
|
|
38472
38553
|
const pull = map$7(suspend$4(() => sink.transform(upstreamWithLeftover, scope)), ([value, leftover_]) => {
|
|
@@ -40240,14 +40321,14 @@ const encode = (input) => encodeBytes(typeof input === "string" ? encoder$2.enco
|
|
|
40240
40321
|
const decode$1 = (str) => {
|
|
40241
40322
|
const stripped = stripCrlf(str);
|
|
40242
40323
|
const length = stripped.length;
|
|
40243
|
-
if (length % 4 !== 0) return fail$
|
|
40324
|
+
if (length % 4 !== 0) return fail$9(new EncodingError({
|
|
40244
40325
|
kind: "Decode",
|
|
40245
40326
|
module: "Base64",
|
|
40246
40327
|
input: stripped,
|
|
40247
40328
|
message: `Length must be a multiple of 4, but is ${length}`
|
|
40248
40329
|
}));
|
|
40249
40330
|
const index = stripped.indexOf("=");
|
|
40250
|
-
if (index !== -1 && (index < length - 2 || index === length - 2 && stripped[length - 1] !== "=")) return fail$
|
|
40331
|
+
if (index !== -1 && (index < length - 2 || index === length - 2 && stripped[length - 1] !== "=")) return fail$9(new EncodingError({
|
|
40251
40332
|
kind: "Decode",
|
|
40252
40333
|
module: "Base64",
|
|
40253
40334
|
input: stripped,
|
|
@@ -40264,7 +40345,7 @@ const decode$1 = (str) => {
|
|
|
40264
40345
|
}
|
|
40265
40346
|
return succeed$10(result);
|
|
40266
40347
|
} catch (cause) {
|
|
40267
|
-
return fail$
|
|
40348
|
+
return fail$9(new EncodingError({
|
|
40268
40349
|
kind: "Decode",
|
|
40269
40350
|
module: "Base64",
|
|
40270
40351
|
input: stripped,
|
|
@@ -44045,7 +44126,7 @@ function stepArray(s, item, exit, i) {
|
|
|
44045
44126
|
if (s.options.errors === "all") {
|
|
44046
44127
|
if (s.issues) s.issues.push(issue);
|
|
44047
44128
|
else s.issues = [issue];
|
|
44048
|
-
} else return fail$
|
|
44129
|
+
} else return fail$7(new Composite(s.ast, [issue], s.input, s.options));
|
|
44049
44130
|
}
|
|
44050
44131
|
}
|
|
44051
44132
|
const parseArrayOptions = {
|
|
@@ -44066,7 +44147,7 @@ const wrapPropertyKeyIssue = (s, ast, key, exit) => {
|
|
|
44066
44147
|
if (s.options.errors === "all") {
|
|
44067
44148
|
if (s.issues) s.issues.push(pointer);
|
|
44068
44149
|
else s.issues = [pointer];
|
|
44069
|
-
} else return fail$
|
|
44150
|
+
} else return fail$7(new Composite(ast, [pointer], s.input, s.options));
|
|
44070
44151
|
};
|
|
44071
44152
|
/**
|
|
44072
44153
|
* floating point or integer, with optional exponent
|
|
@@ -44369,7 +44450,7 @@ function stepProperty(s, p, exit) {
|
|
|
44369
44450
|
if (s.issues) s.issues.push(issue);
|
|
44370
44451
|
else s.issues = [issue];
|
|
44371
44452
|
return;
|
|
44372
|
-
} else return fail$
|
|
44453
|
+
} else return fail$7(new Composite(s.ast, [issue], s.input, s.options));
|
|
44373
44454
|
}
|
|
44374
44455
|
}
|
|
44375
44456
|
const parsePropertiesOptions = {
|
|
@@ -44711,7 +44792,7 @@ const Union$1 = class extends ASTNodeImpl {
|
|
|
44711
44792
|
function failSingleUnionCandidate(ast, cause, input, options) {
|
|
44712
44793
|
const issue = getSchemaIssue(cause);
|
|
44713
44794
|
if (!issue) return failCause$5(cause);
|
|
44714
|
-
return fail$
|
|
44795
|
+
return fail$7(new AnyOf(ast, [issue], input, options));
|
|
44715
44796
|
}
|
|
44716
44797
|
function catchSingleUnionCandidate(ast, result, input, options) {
|
|
44717
44798
|
return catchCause$1(result, (cause) => failSingleUnionCandidate(ast, cause, input, options));
|
|
@@ -44753,7 +44834,7 @@ const parseUnion = /*#__PURE__*/ iterateEager()({
|
|
|
44753
44834
|
} else {
|
|
44754
44835
|
if (s.out && s.successes) {
|
|
44755
44836
|
s.successes.push(s.ast.types[i]);
|
|
44756
|
-
return fail$
|
|
44837
|
+
return fail$7(new OneOf(s.ast, s.successes, s.input, s.options));
|
|
44757
44838
|
}
|
|
44758
44839
|
s.out = exit;
|
|
44759
44840
|
if (s.successes) s.successes.push(s.ast.types[i]);
|
|
@@ -46003,7 +46084,7 @@ function asResult(parser) {
|
|
|
46003
46084
|
return (input, options) => {
|
|
46004
46085
|
const exit = parserExit(input, options);
|
|
46005
46086
|
if (isSuccess(exit)) return succeed$10(exit.value);
|
|
46006
|
-
return fail$
|
|
46087
|
+
return fail$9(getSchemaIssueOrThrow(exit.cause, "Result adapter can only return schema issues"));
|
|
46007
46088
|
};
|
|
46008
46089
|
}
|
|
46009
46090
|
function runSync(effect, message) {
|
|
@@ -47702,7 +47783,7 @@ const wordToOctets = (word) => [
|
|
|
47702
47783
|
word >>> 8 & 255,
|
|
47703
47784
|
word & 255
|
|
47704
47785
|
];
|
|
47705
|
-
const addressError = (input, message) => fail$
|
|
47786
|
+
const addressError = (input, message) => fail$9(new NetAddressError({
|
|
47706
47787
|
input,
|
|
47707
47788
|
message
|
|
47708
47789
|
}));
|
|
@@ -51983,7 +52064,7 @@ function schema$1(codec, path) {
|
|
|
51983
52064
|
const fullPath = [...pathPrefix, ...localPath];
|
|
51984
52065
|
return loadCursor(provider, fullPath).pipe(flatMapEager((cursor) => decodeCursor(cursor).pipe(mapEager(succeed$10), catchEager((issue) => {
|
|
51985
52066
|
const error = new ConfigError$1(new SchemaError(fullPath.length > 0 ? new Pointer(fullPath, issue) : issue));
|
|
51986
|
-
return hasProviderInput(encodedAst, cursor.node) ? fail$4(error) : succeed$5(fail$
|
|
52067
|
+
return hasProviderInput(encodedAst, cursor.node) ? fail$4(error) : succeed$5(fail$9(error));
|
|
51987
52068
|
}))), catchDefect((defect) => isSourceError(defect) ? fail$4(new ConfigError$1(defect)) : die(defect)));
|
|
51988
52069
|
});
|
|
51989
52070
|
}
|
|
@@ -61777,7 +61858,7 @@ const makeOrPredicate = (patterns) => {
|
|
|
61777
61858
|
/** @internal */
|
|
61778
61859
|
const type$1 = () => makeTypeMatcher(identity, []);
|
|
61779
61860
|
/** @internal */
|
|
61780
|
-
const value$1 = (i) => makeValueMatcher(i, fail$
|
|
61861
|
+
const value$1 = (i) => makeValueMatcher(i, fail$9(i));
|
|
61781
61862
|
/** @internal */
|
|
61782
61863
|
const valueTags$1 = /*#__PURE__*/ dual(2, (input, fields) => {
|
|
61783
61864
|
return tagsExhaustive(fields)(makeTypeMatcher(identity, []))(input);
|
|
@@ -61848,7 +61929,7 @@ const result = (self) => {
|
|
|
61848
61929
|
const input = self.select(...args);
|
|
61849
61930
|
if (_case._tag === "When" && _case.guard(input) === true) return succeed$10(_case.evaluate(input, ...args));
|
|
61850
61931
|
else if (_case._tag === "Not" && _case.guard(input) === false) return succeed$10(_case.evaluate(input, ...args));
|
|
61851
|
-
return fail$
|
|
61932
|
+
return fail$9(input);
|
|
61852
61933
|
};
|
|
61853
61934
|
}
|
|
61854
61935
|
return (...args) => {
|
|
@@ -61858,7 +61939,7 @@ const result = (self) => {
|
|
|
61858
61939
|
if (_case._tag === "When" && _case.guard(input) === true) return succeed$10(_case.evaluate(input, ...args));
|
|
61859
61940
|
else if (_case._tag === "Not" && _case.guard(input) === false) return succeed$10(_case.evaluate(input, ...args));
|
|
61860
61941
|
}
|
|
61861
|
-
return fail$
|
|
61942
|
+
return fail$9(input);
|
|
61862
61943
|
};
|
|
61863
61944
|
};
|
|
61864
61945
|
const getExhaustiveAbsurdErrorMessage = "effect/match/Match/exhaustive: absurd";
|
|
@@ -65465,6 +65546,9 @@ const MutantRunResultSchema = Union([
|
|
|
65465
65546
|
errorMessage: String$7
|
|
65466
65547
|
})
|
|
65467
65548
|
]);
|
|
65549
|
+
var MutantRunStarted = class extends TaggedClass()("MutantRunStarted", {}) {};
|
|
65550
|
+
var MutantRunSettled$1 = class extends TaggedClass()("MutantRunSettled", { result: MutantRunResultSchema }) {};
|
|
65551
|
+
const MutantRunEventSchema = Union([MutantRunStarted, MutantRunSettled$1]);
|
|
65468
65552
|
const CoverageAnalysisSchema = Literals$3([
|
|
65469
65553
|
"off",
|
|
65470
65554
|
"all",
|
|
@@ -65680,8 +65764,9 @@ const dryRun$1 = make$32("dryRun", {
|
|
|
65680
65764
|
}).middleware(TraceContextMiddleware);
|
|
65681
65765
|
const mutantRun = make$32("mutantRun", {
|
|
65682
65766
|
payload: TestRunnerMutantRunRequest,
|
|
65683
|
-
success:
|
|
65684
|
-
error: TestRunnerFailed
|
|
65767
|
+
success: MutantRunEventSchema,
|
|
65768
|
+
error: TestRunnerFailed,
|
|
65769
|
+
stream: true
|
|
65685
65770
|
}).middleware(TraceContextMiddleware);
|
|
65686
65771
|
const check$1 = make$32("check", {
|
|
65687
65772
|
payload: CheckerRequest,
|
|
@@ -65832,7 +65917,10 @@ var TestRunner_exports = /* @__PURE__ */ __exportAll$4({
|
|
|
65832
65917
|
HitLimitReason: () => HitLimitReason,
|
|
65833
65918
|
HitLimitReasonPrefix: () => HitLimitReasonPrefix,
|
|
65834
65919
|
HitLimitReasonText: () => HitLimitReasonText,
|
|
65920
|
+
MutantRunEventSchema: () => MutantRunEventSchema,
|
|
65835
65921
|
MutantRunResultSchema: () => MutantRunResultSchema,
|
|
65922
|
+
MutantRunSettled: () => MutantRunSettled$1,
|
|
65923
|
+
MutantRunStarted: () => MutantRunStarted,
|
|
65836
65924
|
MutantRunStatus: () => MutantRunStatus,
|
|
65837
65925
|
TestId: () => TestId,
|
|
65838
65926
|
TestResultSchema: () => TestResultSchema,
|
|
@@ -71540,7 +71628,7 @@ var ErrorText = class extends Class("ErrorText")({ text: NonEmptyString }) {};
|
|
|
71540
71628
|
var CauseText = class extends Class("CauseText")({ text: NonEmptyString }) {};
|
|
71541
71629
|
const nonEmptyText$2 = liftPredicate(is$2(NonEmptyString));
|
|
71542
71630
|
const errorTextOf$2 = (cause) => flatMap$9(nonEmptyText$2(errorTextValueOf(cause)), (text) => ErrorText.makeOption({ text }));
|
|
71543
|
-
const causeTextOf$
|
|
71631
|
+
const causeTextOf$2 = (cause) => flatMap$9(nonEmptyText$2(causeChainTextOf(cause)), (text) => CauseText.makeOption({ text }));
|
|
71544
71632
|
function errorTextValueOf(error) {
|
|
71545
71633
|
return value(error).pipe(when(isEmptyError, () => ""), when(instanceOf(Error), errorText), orElse$1(() => stringifyNonError(error)));
|
|
71546
71634
|
}
|
|
@@ -71621,7 +71709,7 @@ function objectCauseTextOf(cause, depth) {
|
|
|
71621
71709
|
var ErrorText_exports = /* @__PURE__ */ __exportAll$2({
|
|
71622
71710
|
CauseText: () => CauseText,
|
|
71623
71711
|
ErrorText: () => ErrorText,
|
|
71624
|
-
causeTextOf: () => causeTextOf$
|
|
71712
|
+
causeTextOf: () => causeTextOf$2,
|
|
71625
71713
|
errorTextOf: () => errorTextOf$2
|
|
71626
71714
|
});
|
|
71627
71715
|
const MutatorNameSchema = String$7.pipe(check$2(isPattern(/^(?:[a-z][a-z0-9]*(?:-[a-z0-9]+)*\/)?[a-zA-Z][a-zA-Z0-9]*(?: [a-zA-Z][a-zA-Z0-9]*)*$/u)));
|
|
@@ -72843,7 +72931,7 @@ const applyMutant = dual((args) => args.length >= 2, applyMutantDataFirst);
|
|
|
72843
72931
|
function cloneWithReplacement(mutant, originalTree) {
|
|
72844
72932
|
const mutatedAst = cloneNode(originalTree);
|
|
72845
72933
|
const { original, replacement } = mutant;
|
|
72846
|
-
return value(hasReplaced(mutatedAst, original, replacement)).pipe(when(true, () => succeed$10(mutatedAst)), when(false, () => fail$
|
|
72934
|
+
return value(hasReplaced(mutatedAst, original, replacement)).pipe(when(true, () => succeed$10(mutatedAst)), when(false, () => fail$9(MutantNotApplied.make({
|
|
72847
72935
|
fileName: mutant.fileName,
|
|
72848
72936
|
mutatorName: mutant.mutatorName
|
|
72849
72937
|
}))), exhaustive);
|
|
@@ -74769,7 +74857,7 @@ const externalModuleArgumentText = (value) => match$1(isTruthy(value), {
|
|
|
74769
74857
|
function printDataFirst(file, entryForFormat) {
|
|
74770
74858
|
const context = { print: (inner) => print(inner, entryForFormat) };
|
|
74771
74859
|
return match$8(entryForFormat(formatKeyOf(file)), {
|
|
74772
|
-
onNone: () => fail$
|
|
74860
|
+
onNone: () => fail$9(PrintFailed.make({ message: `No registered format renders the "${formatKeyOf(file)}" AST` })),
|
|
74773
74861
|
onSome: (entry) => succeed$10(entry.print(file, context))
|
|
74774
74862
|
});
|
|
74775
74863
|
}
|
|
@@ -74864,7 +74952,7 @@ const resolveFormat = Workflow_exports.make({
|
|
|
74864
74952
|
command: FormatResolutionCommand,
|
|
74865
74953
|
decision: Union([FormatAssigned, FormatSkipped]),
|
|
74866
74954
|
error: FormatOverrideUnclaimed,
|
|
74867
|
-
decide: (command) => value(selectionFor(command)).pipe(tag("ClaimSelected", ({ claim }) => succeed$10(assignedFrom(claim, command))), tag("PinUnclaimed", ({ formatId }) => fail$
|
|
74955
|
+
decide: (command) => value(selectionFor(command)).pipe(tag("ClaimSelected", ({ claim }) => succeed$10(assignedFrom(claim, command))), tag("PinUnclaimed", ({ formatId }) => fail$9(overrideUnclaimedFrom(command, formatId))), tag("ExtensionUnclaimed", () => succeed$10(skippedFrom(command))), exhaustive)
|
|
74868
74956
|
});
|
|
74869
74957
|
const AridRuleId = Literals$3([
|
|
74870
74958
|
"arid-logging",
|
|
@@ -75200,7 +75288,7 @@ const claimingPlacer = (facts) => value(facts).pipe(when({
|
|
|
75200
75288
|
isExpression: true,
|
|
75201
75289
|
expressionIsValid: true
|
|
75202
75290
|
}, () => some$1("expression")), when({ isStatement: true }, () => some$1("statement")), when({ isSwitchCase: true }, () => some$1("switch-case")), orElse$1(() => none()));
|
|
75203
|
-
const placerOf = (command) => value(claimingPlacer(command.facts)).pipe(when(isSome, (chosen) => succeed$10(chosen.value)), when(isNone, () => fail$
|
|
75291
|
+
const placerOf = (command) => value(claimingPlacer(command.facts)).pipe(when(isSome, (chosen) => succeed$10(chosen.value)), when(isNone, () => fail$9(NoPlacerClaimsNode.make({ fileName: command.fileName }))), exhaustive);
|
|
75204
75292
|
const expectedKindOf = (placer) => value(placer).pipe(when("expression", () => "an expression"), when("statement", () => "a statement"), when("switch-case", () => "a switch case"), exhaustive);
|
|
75205
75293
|
const matchesPlacer = (placer, replacement) => value(placer).pipe(when("expression", () => replacement.isExpression), when("statement", () => replacement.isStatement), when("switch-case", () => replacement.isSwitchCase), exhaustive);
|
|
75206
75294
|
const firstMismatch = (command, placer) => map$13(fromNullishOr(command.mutants.find((mutant) => !matchesPlacer(placer, mutant.replacement))), (mutant) => MutantKindMismatch.make({
|
|
@@ -75210,7 +75298,7 @@ const firstMismatch = (command, placer) => map$13(fromNullishOr(command.mutants.
|
|
|
75210
75298
|
mutatorName: mutant.mutatorName,
|
|
75211
75299
|
expected: expectedKindOf(placer)
|
|
75212
75300
|
}));
|
|
75213
|
-
const placementRefusal = (command, placer) => value(firstMismatch(command, placer)).pipe(when(isSome, (mismatch) => fail$
|
|
75301
|
+
const placementRefusal = (command, placer) => value(firstMismatch(command, placer)).pipe(when(isSome, (mismatch) => fail$9(mismatch.value)), when(isNone, () => succeed$10(void 0)), exhaustive);
|
|
75214
75302
|
const siteOf = (command, placer) => {
|
|
75215
75303
|
const mutantIds = command.mutants.map((mutant) => mutant.id);
|
|
75216
75304
|
return value(placer).pipe(when("expression", () => ExpressionSite.make({
|
|
@@ -75415,7 +75503,7 @@ const shiftedLocation = (location, offset) => ({
|
|
|
75415
75503
|
end: shiftedPosition(location.end, offset)
|
|
75416
75504
|
});
|
|
75417
75505
|
const plannedMutant = (command, candidate, policyReason) => match$8(fromNullishOr(candidate.location), {
|
|
75418
|
-
onNone: () => fail$
|
|
75506
|
+
onNone: () => fail$9(MutantWithoutLocation.make({
|
|
75419
75507
|
fileName: command.fileName,
|
|
75420
75508
|
mutatorName: candidate.mutatorName
|
|
75421
75509
|
})),
|
|
@@ -75549,19 +75637,19 @@ const placementFailureMessage = (refusal, node, mutants, fileName, lineStarts, b
|
|
|
75549
75637
|
return `${placementLocation(node, fileName, lineStarts, basePath)} ${message}. Either remove this file from the list of files to be mutated, or exclude the mutator (using \`mutator.excludedMutations\`). Original error: ${refusalDetail(refusal)}`;
|
|
75550
75638
|
};
|
|
75551
75639
|
function nodeOfKind(mutant, node, isKind, kind) {
|
|
75552
|
-
return isKind(node) ? succeed$10(node) : fail$
|
|
75640
|
+
return isKind(node) ? succeed$10(node) : fail$9(/* @__PURE__ */ new Error(`Cannot place mutant ${mutant.id}: expected ${kind}, got ${node.type}`));
|
|
75553
75641
|
}
|
|
75554
75642
|
function expressionOf$2(node) {
|
|
75555
|
-
return isExpressionKind(node) ? succeed$10(node) : fail$
|
|
75643
|
+
return isExpressionKind(node) ? succeed$10(node) : fail$9(/* @__PURE__ */ new Error(`Expected an expression, got ${node.type}`));
|
|
75556
75644
|
}
|
|
75557
75645
|
function statementOf(node) {
|
|
75558
|
-
return isStatementKind(node) ? succeed$10(node) : fail$
|
|
75646
|
+
return isStatementKind(node) ? succeed$10(node) : fail$9(/* @__PURE__ */ new Error(`Expected a statement, got ${node.type}`));
|
|
75559
75647
|
}
|
|
75560
75648
|
function isSwitchCase(node) {
|
|
75561
75649
|
return nodeType(node) === "SwitchCase";
|
|
75562
75650
|
}
|
|
75563
75651
|
function switchCaseOf(node) {
|
|
75564
|
-
return isSwitchCase(node) ? succeed$10(node) : fail$
|
|
75652
|
+
return isSwitchCase(node) ? succeed$10(node) : fail$9(/* @__PURE__ */ new Error(`Expected a switch case, got ${node.type}`));
|
|
75565
75653
|
}
|
|
75566
75654
|
const fileNameWithin = (basePath, fileName) => basePath === void 0 ? fileName : relativeTo$1(basePath, fileName);
|
|
75567
75655
|
function placementLocation(node, fileName, lineStarts, basePath) {
|
|
@@ -75892,7 +75980,7 @@ const shouldSkipNode = (frame, location, mutateDescription) => [
|
|
|
75892
75980
|
isOutsideMutateRanges(location, mutateDescription)
|
|
75893
75981
|
].some((skip) => skip);
|
|
75894
75982
|
const locationOfNode = (frame, context) => match$8(map$13(fromNullishOr(spanOf$4(frame.node)), (span) => locationOf(context.lineStarts, span)), {
|
|
75895
|
-
onNone: () => fail$
|
|
75983
|
+
onNone: () => fail$9(NodeWithoutSpan.make({ fileName: context.fileName })),
|
|
75896
75984
|
onSome: succeed$10
|
|
75897
75985
|
});
|
|
75898
75986
|
const refusedPlacement = (refusal, node, mutants, context) => PlacementRefused.make({ message: placementFailureMessage(refusal, node, mutants, context.fileName, context.lineStarts, context.basePath) });
|
|
@@ -75910,7 +75998,7 @@ const applyToClaim = (mutants, target, state, context) => {
|
|
|
75910
75998
|
}));
|
|
75911
75999
|
};
|
|
75912
76000
|
const attachPlaceable = (mutants, frame, state, context) => value(mutants.length > 0).pipe(when(false, () => succeed$10(state)), when(true, () => match$8(fromNullishOr(framesUpward(frame).find((candidate) => state.claims.some((claim) => claim.node === candidate.node))), {
|
|
75913
|
-
onNone: () => fail$
|
|
76001
|
+
onNone: () => fail$9(MutantsUnplaced.make({
|
|
75914
76002
|
fileName: context.fileName,
|
|
75915
76003
|
detail: JSON.stringify(mutants, null, 2)
|
|
75916
76004
|
})),
|
|
@@ -75954,7 +76042,7 @@ const planMutantsAt = (frame, candidates, directives, location, state, context)
|
|
|
75954
76042
|
candidates: candidates.map((candidate) => candidate.data),
|
|
75955
76043
|
mutantSetPolicy: context.mutantSetPolicy
|
|
75956
76044
|
}));
|
|
75957
|
-
return value(plan).pipe(when(isFailure$1, (failed) => fail$
|
|
76045
|
+
return value(plan).pipe(when(isFailure$1, (failed) => fail$9(failed.failure)), orElse$1((succeeded) => collectPlan(frame, candidates, succeeded.success, state, context)));
|
|
75958
76046
|
};
|
|
75959
76047
|
const candidatesFor = (frame, location, context) => value(shouldMutateAt(location, context.mutateDescription)).pipe(when(true, () => mutablesFor(frame, location, context)), orElse$1(() => []));
|
|
75960
76048
|
const needsPlan = (candidates, directives) => [candidates.length > 0, directives.length > 0].some(Boolean);
|
|
@@ -75981,7 +76069,7 @@ const siteOfClaim = (claim, context) => {
|
|
|
75981
76069
|
facts: claim.facts,
|
|
75982
76070
|
mutants: claim.applied.map(([mutant, applied]) => replacementRecord(mutant, applied))
|
|
75983
76071
|
}));
|
|
75984
|
-
return value(decision).pipe(when(isFailure$1, (refused) => fail$
|
|
76072
|
+
return value(decision).pipe(when(isFailure$1, (refused) => fail$9(refusedPlacement(refused.failure, claim.node, mutants, context))), orElse$1((decided) => succeed$10(decided.success)));
|
|
75985
76073
|
};
|
|
75986
76074
|
const emitClaim = (claim, state, context) => value(claim.applied.length > 0).pipe(when(false, () => succeed$10(state)), when(true, () => map$12(siteOfClaim(claim, context), (site) => ({
|
|
75987
76075
|
...state,
|
|
@@ -76666,7 +76754,7 @@ const makeHtmlReporter = dual(2, (options, _init) => (events) => build(nodeFsPat
|
|
|
76666
76754
|
var HtmlReporter_exports = /* @__PURE__ */ __exportAll$3({ makeHtmlReporter: () => makeHtmlReporter });
|
|
76667
76755
|
//#endregion
|
|
76668
76756
|
//#region package.json
|
|
76669
|
-
var version = "
|
|
76757
|
+
var version = "17.0.0";
|
|
76670
76758
|
//#endregion
|
|
76671
76759
|
//#region ../../node_modules/.pnpm/effect@4.0.0/node_modules/effect/dist/cli/CliOutput.js
|
|
76672
76760
|
/**
|
|
@@ -83184,7 +83272,7 @@ const runWith = (command, config) => {
|
|
|
83184
83272
|
onSome: (level) => make$72(MinimumLogLevel, level)
|
|
83185
83273
|
});
|
|
83186
83274
|
yield* provideContext$3(program, services);
|
|
83187
|
-
}, catchFilter((error) => isCliError(error) && error._tag === "ShowHelp" ? succeed$10(error) : fail$
|
|
83275
|
+
}, catchFilter((error) => isCliError(error) && error._tag === "ShowHelp" ? succeed$10(error) : fail$9(error), (error) => andThen$1(showHelp(command, error, config.renderErrors !== false), fail$4(error))), catchFilter((error) => config.renderErrors !== false && isCliError(error) && error._tag === "UserError" ? succeed$10(error) : fail$9(error), (error) => andThen$1(showUserError(error), fail$4(error))), catchFilter((e) => isQuitError(e) ? succeed$10(e) : fail$9(e), (_) => interrupt$1));
|
|
83188
83276
|
};
|
|
83189
83277
|
//#endregion
|
|
83190
83278
|
//#region src/bin/enable-compile-cache.ts
|
|
@@ -83307,7 +83395,7 @@ const refusedOutcome = (observation) => RunRefused.make({
|
|
|
83307
83395
|
rule: observation.rule,
|
|
83308
83396
|
message: observation.message
|
|
83309
83397
|
});
|
|
83310
|
-
const decide$
|
|
83398
|
+
const decide$30 = (command) => value(command.observation).pipe(tag("RunSucceededClean", () => succeed$10(succeededCleanOutcome())), tag("RunSucceededVerdict", (observation) => succeed$10(succeededVerdictOutcome(observation))), tag("RunInterruptedObservation", () => fail$9(RunInterrupted.make({ code: 130 }))), tag("RunHelpObservation", (observation) => succeed$10(helpOutcome(observation))), tag("RunCliErrorObservation", (observation) => succeed$10(cliErrorOutcome(observation))), tag("RunSurvivorsRejectedObservation", (observation) => succeed$10(survivorsRejectedOutcome(observation))), tag("RunSchemaErrorObservation", (observation) => succeed$10(schemaErrorOutcome(observation))), tag("RunClassedObservation", (observation) => succeed$10(classedOutcome(observation))), tag("RunGenericFailureObservation", (observation) => succeed$10(genericFailureOutcome(observation))), tag("RunRefusedObservation", (observation) => succeed$10(refusedOutcome(observation))), exhaustive);
|
|
83311
83399
|
const classifyRunOutcome = Workflow_exports.make({
|
|
83312
83400
|
command: RunOutcomeCommand,
|
|
83313
83401
|
decision: Union([
|
|
@@ -83319,7 +83407,7 @@ const classifyRunOutcome = Workflow_exports.make({
|
|
|
83319
83407
|
RunFailed
|
|
83320
83408
|
]),
|
|
83321
83409
|
error: RunInterrupted,
|
|
83322
|
-
decide: decide$
|
|
83410
|
+
decide: decide$30
|
|
83323
83411
|
});
|
|
83324
83412
|
//#endregion
|
|
83325
83413
|
//#region src/plan-run-conclusion.workflow.ts
|
|
@@ -83367,7 +83455,11 @@ var RunConclusionEmittedFailed = class extends TaggedClass()("RunConclusionEmitt
|
|
|
83367
83455
|
var RunConclusionQuietOk = class extends TaggedClass()("RunConclusionQuietOk", {}) {
|
|
83368
83456
|
[PlanRunConclusionTypeId] = PlanRunConclusionTypeId;
|
|
83369
83457
|
};
|
|
83370
|
-
var RunConclusionQuietFailed = class extends TaggedClass()("RunConclusionQuietFailed", {
|
|
83458
|
+
var RunConclusionQuietFailed = class extends TaggedClass()("RunConclusionQuietFailed", {
|
|
83459
|
+
exitCode: Plugin_exports.ExitCode,
|
|
83460
|
+
exitClass: Union([Plugin_exports.ExitClass, RunOutcomeTag]),
|
|
83461
|
+
error: String$7
|
|
83462
|
+
}) {
|
|
83371
83463
|
[PlanRunConclusionTypeId] = PlanRunConclusionTypeId;
|
|
83372
83464
|
};
|
|
83373
83465
|
const PlanRunConclusionDecision = Union([
|
|
@@ -83383,11 +83475,18 @@ const emittedOf = (command) => match$1(command.exitCode === 0, {
|
|
|
83383
83475
|
exitCode: command.exitCode
|
|
83384
83476
|
})
|
|
83385
83477
|
});
|
|
83478
|
+
const BASELINE_CLASSES = filterMap$3(Plugin_exports.ExitClass.literals, (exitClass) => fromOption$2(map$13(decodeOption(Plugin_exports.ExitCodeFromClass)(exitClass), (code) => [code, exitClass]), () => exitClass));
|
|
83479
|
+
const baselineClassOf = (exitCode) => map$13(findFirst(BASELINE_CLASSES, ([code]) => code === exitCode), ([, exitClass]) => exitClass);
|
|
83480
|
+
const exitClassNameOf = (command) => getOrElse$1(baselineClassOf(command.exitCode), () => command.outcome);
|
|
83386
83481
|
const quietOf = (command) => match$1(command.exitCode === 0, {
|
|
83387
83482
|
onTrue: () => RunConclusionQuietOk.make({}),
|
|
83388
|
-
onFalse: () => RunConclusionQuietFailed.make({
|
|
83483
|
+
onFalse: () => RunConclusionQuietFailed.make({
|
|
83484
|
+
exitCode: command.exitCode,
|
|
83485
|
+
exitClass: exitClassNameOf(command),
|
|
83486
|
+
error: command.error
|
|
83487
|
+
})
|
|
83389
83488
|
});
|
|
83390
|
-
const decide$
|
|
83489
|
+
const decide$29 = (command) => succeed$10(match$1(command.machine, {
|
|
83391
83490
|
onTrue: () => emittedOf(command),
|
|
83392
83491
|
onFalse: () => quietOf(command)
|
|
83393
83492
|
}));
|
|
@@ -83395,7 +83494,7 @@ const planRunConclusion = Workflow_exports.make({
|
|
|
83395
83494
|
command: PlanRunConclusionCommand,
|
|
83396
83495
|
decision: PlanRunConclusionDecision,
|
|
83397
83496
|
error: Never,
|
|
83398
|
-
decide: decide$
|
|
83497
|
+
decide: decide$29
|
|
83399
83498
|
});
|
|
83400
83499
|
//#endregion
|
|
83401
83500
|
//#region src/reporting/run-failure.schema.ts
|
|
@@ -83422,7 +83521,7 @@ const exitCodeOf = (outcome) => value(outcome).pipe(tag("RunOk", () => 0), tag("
|
|
|
83422
83521
|
const nonEmptyText$1 = liftPredicate(is$2(NonEmptyString));
|
|
83423
83522
|
const capturedOrUnknown = (captured) => getOrElse$1(nonEmptyText$1(captured), () => UNKNOWN_FAILURE$1);
|
|
83424
83523
|
const capturedThenRecorded = (captured, recorded) => getOrElse$1(nonEmptyText$1(captured), () => getOrElse$1(fromNullishOr(recorded), () => UNKNOWN_FAILURE$1));
|
|
83425
|
-
const failureTextOf = (error, captured) => value(error).pipe(tag("RunParseFailed", (failed) => getOrElse$1(map$13(fromNullishOr(failed.unrecognized), (value) => `Received unknown argument: '${value}'`), () => capturedOrUnknown(captured))), tag("RunSurvivorsRejected", (failed) => getOrElse$1(fromNullishOr(failed.diagnostic), () => UNKNOWN_FAILURE$1)), tag("RunInterrupted", () => capturedOrUnknown(captured)), tag("RunConfigFailed", (failed) => capturedThenRecorded(captured, failed.detail)), tag("RunRefused", (failed) => failed.message), tag("RunFailed", (failed) => capturedThenRecorded(captured, failed.diagnostic)), exhaustive);
|
|
83524
|
+
const failureTextOf$1 = (error, captured) => value(error).pipe(tag("RunParseFailed", (failed) => getOrElse$1(map$13(fromNullishOr(failed.unrecognized), (value) => `Received unknown argument: '${value}'`), () => capturedOrUnknown(captured))), tag("RunSurvivorsRejected", (failed) => getOrElse$1(fromNullishOr(failed.diagnostic), () => UNKNOWN_FAILURE$1)), tag("RunInterrupted", () => capturedOrUnknown(captured)), tag("RunConfigFailed", (failed) => capturedThenRecorded(captured, failed.detail)), tag("RunRefused", (failed) => failed.message), tag("RunFailed", (failed) => capturedThenRecorded(captured, failed.diagnostic)), exhaustive);
|
|
83426
83525
|
const remediationTextOf$1 = (error) => value(error).pipe(tag("RunInterrupted", () => SIGNAL_REMEDIATION), tag("RunParseFailed", () => PARSE_REMEDIATION), tag("RunSurvivorsRejected", (failed) => getOrElse$1(fromNullishOr(failed.diagnostic), () => DEFAULT_REMEDIATION)), tag("RunConfigFailed", (failed) => match$8(fromNullishOr(failed.detail), {
|
|
83427
83526
|
onSome: (detail) => `check the config file: ${detail}`,
|
|
83428
83527
|
onNone: () => "check the config file"
|
|
@@ -83430,7 +83529,7 @@ const remediationTextOf$1 = (error) => value(error).pipe(tag("RunInterrupted", (
|
|
|
83430
83529
|
const errorEnvelopeFromOutcome = (input) => ErrorEnvelope.make({
|
|
83431
83530
|
schemaVersion: RunEvent_exports.StreamSchemaVersion.literal,
|
|
83432
83531
|
code: exitCodeOf(input.error),
|
|
83433
|
-
error: failureTextOf(input.error, input.captured),
|
|
83532
|
+
error: failureTextOf$1(input.error, input.captured),
|
|
83434
83533
|
remediation: remediationTextOf$1(input.error)
|
|
83435
83534
|
});
|
|
83436
83535
|
const runExitCodeFromOutcome = (outcome) => RunExitCode.make({ code: exitCodeOf(outcome) });
|
|
@@ -83469,6 +83568,7 @@ const readConclusion = fn(SpanTaxonomy_exports.Spans.runConclusionRead.name)(fun
|
|
|
83469
83568
|
conclusion: input
|
|
83470
83569
|
};
|
|
83471
83570
|
});
|
|
83571
|
+
const writeStderrLine = (line) => flatMap$4(Stdio, (stdio) => run$4(succeed$3(`${line}\n`), stdio.stderr({ endOnDone: false })).pipe(ignore$1));
|
|
83472
83572
|
const concludeRunCell = Sandwich_exports.named(SpanTaxonomy_exports.Spans.runConclude.name)(readConclusion).decide(planRunConclusion).write({
|
|
83473
83573
|
RunConclusionEmittedOk: (_decision, raw) => andThen$1(raw.conclusion.runEvents.emitMachineModeOutput({
|
|
83474
83574
|
stream: raw.conclusion.stream,
|
|
@@ -83485,7 +83585,7 @@ const concludeRunCell = Sandwich_exports.named(SpanTaxonomy_exports.Spans.runCon
|
|
|
83485
83585
|
pathService: raw.conclusion.pathService
|
|
83486
83586
|
}), andThen$1(raw.conclusion.stream.closeAndDrain, fail$4(RunExit.make({ code: decision.exitCode })))),
|
|
83487
83587
|
RunConclusionQuietOk: (_decision, raw) => andThen$1(raw.conclusion.stream.closeAndDrain, void_$1),
|
|
83488
|
-
RunConclusionQuietFailed: (decision, raw) => andThen$1(raw.conclusion.stream.closeAndDrain, fail$4(RunExit.make({ code: decision.exitCode }))),
|
|
83588
|
+
RunConclusionQuietFailed: (decision, raw) => andThen$1(raw.conclusion.stream.closeAndDrain, andThen$1(writeStderrLine(`exit ${decision.exitCode} (${decision.exitClass}): ${decision.error}`), fail$4(RunExit.make({ code: decision.exitCode })))),
|
|
83489
83589
|
CommandRejected: ({ issue }) => fail$4(StrykerError.make({ message: `the run conclusion command was rejected: ${issue}` }))
|
|
83490
83590
|
});
|
|
83491
83591
|
//#endregion
|
|
@@ -83505,11 +83605,11 @@ var LocalMutationRefused = class extends TaggedError()("LocalMutationRefused", {
|
|
|
83505
83605
|
rule: RunEvent_exports.RefusalRule,
|
|
83506
83606
|
message: String$7
|
|
83507
83607
|
}) {};
|
|
83508
|
-
const decide$
|
|
83608
|
+
const decide$28 = (command) => value({
|
|
83509
83609
|
dryRunOnly: command.dryRunOnly,
|
|
83510
83610
|
githubActions: command.githubActions,
|
|
83511
83611
|
allowLocalMutation: command.allowLocalMutation
|
|
83512
|
-
}).pipe(when({ dryRunOnly: true }, () => succeed$10(LocalMutationAllowed.make({}))), when({ githubActions: "true" }, () => succeed$10(LocalMutationAllowed.make({}))), when({ allowLocalMutation: "1" }, () => succeed$10(LocalMutationAllowed.make({}))), orElse$1(() => fail$
|
|
83612
|
+
}).pipe(when({ dryRunOnly: true }, () => succeed$10(LocalMutationAllowed.make({}))), when({ githubActions: "true" }, () => succeed$10(LocalMutationAllowed.make({}))), when({ allowLocalMutation: "1" }, () => succeed$10(LocalMutationAllowed.make({}))), orElse$1(() => fail$9(LocalMutationRefused.make({
|
|
83513
83613
|
rule: "mutation-runs-on-main-ci",
|
|
83514
83614
|
message: "mutation runs only on main CI"
|
|
83515
83615
|
}))));
|
|
@@ -83517,7 +83617,7 @@ const refuseLocalMutation = Workflow_exports.make({
|
|
|
83517
83617
|
command: RefuseLocalMutationCommand,
|
|
83518
83618
|
decision: LocalMutationAllowed,
|
|
83519
83619
|
error: LocalMutationRefused,
|
|
83520
|
-
decide: decide$
|
|
83620
|
+
decide: decide$28
|
|
83521
83621
|
});
|
|
83522
83622
|
//#endregion
|
|
83523
83623
|
//#region src/admit-survivors-run.workflow.ts
|
|
@@ -83627,7 +83727,7 @@ const ADMISSION_RULES = [
|
|
|
83627
83727
|
}
|
|
83628
83728
|
];
|
|
83629
83729
|
const admissionOutcomeOf = (input) => getOrElse$1(map$13(findFirst(ADMISSION_RULES, (rule) => rule.holds(input)), (rule) => rule.outcome), () => SurvivorsMatchOutcome.make({ survivors: input.priorSurvivors }));
|
|
83630
|
-
const reject = (reason, detail) => fail$
|
|
83730
|
+
const reject = (reason, detail) => fail$9(SurvivorsRejection.make({
|
|
83631
83731
|
reason,
|
|
83632
83732
|
remediation: `${detail} ${SURVIVORS_RUN_FIRST_REMEDIATION}`
|
|
83633
83733
|
}));
|
|
@@ -83645,6 +83745,13 @@ const admitSurvivorsRun = Workflow_exports.make({
|
|
|
83645
83745
|
});
|
|
83646
83746
|
//#endregion
|
|
83647
83747
|
//#region src/ConfigError.schema.ts
|
|
83748
|
+
const CAUSE_DEPTH = 4;
|
|
83749
|
+
const ownMessageOf = (value) => filter$7(map$13(liftPredicate(value, hasProperty("message")), (carrier) => String(carrier.message)), is$2(NonEmptyString));
|
|
83750
|
+
const causeMessagesOf = (value, depth) => depth === 0 ? [] : [...toArray(ownMessageOf(value)), ...match$8(liftPredicate(value, hasProperty("cause")), {
|
|
83751
|
+
onNone: () => [],
|
|
83752
|
+
onSome: (carrier) => causeMessagesOf(carrier.cause, depth - 1)
|
|
83753
|
+
})];
|
|
83754
|
+
const causeTextOf$1 = (cause) => liftPredicate(causeMessagesOf(cause, CAUSE_DEPTH).join(": "), is$2(NonEmptyString));
|
|
83648
83755
|
var ConfigFileNotFoundError = class extends TaggedError()("ConfigFileNotFoundError", { file: String$7 }) {
|
|
83649
83756
|
exitClass = "ConfigError";
|
|
83650
83757
|
get message() {
|
|
@@ -83666,7 +83773,10 @@ var ConfigFileUnreadableError = class extends TaggedError()("ConfigFileUnreadabl
|
|
|
83666
83773
|
}) {
|
|
83667
83774
|
exitClass = "ConfigError";
|
|
83668
83775
|
get message() {
|
|
83669
|
-
return
|
|
83776
|
+
return match$8(causeTextOf$1(this.cause), {
|
|
83777
|
+
onNone: () => `Config file is unreadable: ${this.file}`,
|
|
83778
|
+
onSome: (cause) => `Config file is unreadable: ${this.file}: ${cause}`
|
|
83779
|
+
});
|
|
83670
83780
|
}
|
|
83671
83781
|
};
|
|
83672
83782
|
var ConfigFileInvalidError = class extends TaggedError()("ConfigFileInvalidError", {
|
|
@@ -84457,7 +84567,7 @@ const resolveConfig = Workflow_exports.make({
|
|
|
84457
84567
|
error: ConfigOptionsRefused,
|
|
84458
84568
|
decide: (command) => match$6(decodeOptions$1(command.document), {
|
|
84459
84569
|
onSuccess: (options) => succeed$10(decidedFromOf(command.fileFound, options)),
|
|
84460
|
-
onFailure: (failure) => fail$
|
|
84570
|
+
onFailure: (failure) => fail$9(ConfigOptionsRefused.make({ message: failure.message }))
|
|
84461
84571
|
})
|
|
84462
84572
|
});
|
|
84463
84573
|
//#endregion
|
|
@@ -84574,7 +84684,7 @@ const fileNameOrder = mapInput$2(String$10, (reproducer) => reproducer.fileName)
|
|
|
84574
84684
|
const idOrder$3 = mapInput$2(String$10, (reproducer) => reproducer.id);
|
|
84575
84685
|
const reproducersOf = (report) => sort(flatMap$7(Object.entries(report.files), ([fileName, file]) => map$10(file.mutants, (mutant) => reproducerOf(fileName, file.source, mutant))), combine$2(fileNameOrder, idOrder$3));
|
|
84576
84686
|
const mutantsOf$1 = (report) => flatMap$7(Object.values(report.files), (file) => file.mutants);
|
|
84577
|
-
const decide$
|
|
84687
|
+
const decide$27 = (command) => {
|
|
84578
84688
|
const mutants = mutantsOf$1(command.report);
|
|
84579
84689
|
return match$1(mutants.length === 0, {
|
|
84580
84690
|
onTrue: () => NoMutantsToReproduce.make({}),
|
|
@@ -84585,7 +84695,7 @@ const buildReproducers = Workflow_exports.make({
|
|
|
84585
84695
|
command: BuildReproducersCommand,
|
|
84586
84696
|
decision: BuildReproducersDecision,
|
|
84587
84697
|
error: Never,
|
|
84588
|
-
decide: (command) => succeed$10(decide$
|
|
84698
|
+
decide: (command) => succeed$10(decide$27(command))
|
|
84589
84699
|
});
|
|
84590
84700
|
//#endregion
|
|
84591
84701
|
//#region src/checkpoint-mutants.workflow.ts
|
|
@@ -84609,7 +84719,7 @@ var CheckpointMutantsCommand = class extends TaggedClass()("CheckpointMutantsCom
|
|
|
84609
84719
|
};
|
|
84610
84720
|
const settledByIdOf = (settled) => fromIterable$4(settled.map((row) => [row.mutant.id, row]));
|
|
84611
84721
|
const rowOf = (mutant, settledById) => getOrElse$1(get$4(settledById, mutant.id), () => CheckpointPendingMutant.make({ mutant }));
|
|
84612
|
-
const decide$
|
|
84722
|
+
const decide$26 = (command) => {
|
|
84613
84723
|
const settledById = settledByIdOf(command.settled);
|
|
84614
84724
|
return succeed$10(command.plannedMutants.map((mutant) => rowOf(mutant, settledById)));
|
|
84615
84725
|
};
|
|
@@ -84617,7 +84727,7 @@ const checkpointMutants = Workflow_exports.make({
|
|
|
84617
84727
|
command: CheckpointMutantsCommand,
|
|
84618
84728
|
decision: ArraySchema(CheckpointMutantRow),
|
|
84619
84729
|
error: Never,
|
|
84620
|
-
decide: decide$
|
|
84730
|
+
decide: decide$26
|
|
84621
84731
|
});
|
|
84622
84732
|
//#endregion
|
|
84623
84733
|
//#region src/classify-exit.workflow.ts
|
|
@@ -84666,7 +84776,7 @@ const verdictExitClass = (score, breakingThreshold) => valueTags(score, {
|
|
|
84666
84776
|
onSome: (threshold) => value(percentage < threshold).pipe(when(true, () => "VerdictFail"), when(false, () => null), exhaustive)
|
|
84667
84777
|
})
|
|
84668
84778
|
});
|
|
84669
|
-
const decide$
|
|
84779
|
+
const decide$25 = (command) => match$8(fromNullishOr(verdictExitClass(command.score, command.breakingThreshold)), {
|
|
84670
84780
|
onNone: () => match$8(precedenceOf(command.pending), {
|
|
84671
84781
|
onNone: () => succeed$10(ExitPassed.make({})),
|
|
84672
84782
|
onSome: (exitClass) => succeed$10(decisionOf$2(exitClass))
|
|
@@ -84677,7 +84787,7 @@ const classifyExit = Workflow_exports.make({
|
|
|
84677
84787
|
command: ClassifyExitCommand,
|
|
84678
84788
|
decision: ClassifyExitDecision,
|
|
84679
84789
|
error: Never,
|
|
84680
|
-
decide: decide$
|
|
84790
|
+
decide: decide$25
|
|
84681
84791
|
});
|
|
84682
84792
|
//#endregion
|
|
84683
84793
|
//#region src/IncrementalDiff.schema.ts
|
|
@@ -87916,7 +88026,7 @@ const make$17 = /*#__PURE__*/ fnUntraced(function* (group, options) {
|
|
|
87916
88026
|
defect: decodeDefect(message.defect)
|
|
87917
88027
|
});
|
|
87918
88028
|
case "ClientProtocolError": {
|
|
87919
|
-
const exit = fail$
|
|
88029
|
+
const exit = fail$7(message.error);
|
|
87920
88030
|
return forEach$1(entries.keys(), (requestId) => write({
|
|
87921
88031
|
_tag: "Exit",
|
|
87922
88032
|
clientId: 0,
|
|
@@ -88872,7 +88982,7 @@ const mapRunResult = (mutant, result) => value(result).pipe(discriminator("statu
|
|
|
88872
88982
|
const uniqueNames = (names) => dedupe(filter$4(names, (name) => name !== void 0));
|
|
88873
88983
|
const partitionByFile = (files, fileNames) => {
|
|
88874
88984
|
const [present, missing] = separate(map$10(fileNames, (fileName) => match$8(get$9(files, fileName), {
|
|
88875
|
-
onNone: () => fail$
|
|
88985
|
+
onNone: () => fail$9(fileName),
|
|
88876
88986
|
onSome: (file) => succeed$10(file)
|
|
88877
88987
|
})));
|
|
88878
88988
|
return {
|
|
@@ -89175,7 +89285,7 @@ const writeIncrementalReport = fn(SpanTaxonomy_exports.Spans.mutationReportingWr
|
|
|
89175
89285
|
const runInputsDigest = yield* runInputsDigestOf(deps.fs, deps.path, input.basePath, input.options);
|
|
89176
89286
|
const json = yield* encodeEffect(fromJsonString(Unknown, { space: 2 }))({
|
|
89177
89287
|
incrementalVersion: "3",
|
|
89178
|
-
verdictSemanticsVersion:
|
|
89288
|
+
verdictSemanticsVersion: 4,
|
|
89179
89289
|
mutantSetPolicy: input.options.mutator.mutantSetPolicy,
|
|
89180
89290
|
runInputsDigest,
|
|
89181
89291
|
...report,
|
|
@@ -89225,7 +89335,7 @@ const slimIncrementalReport = fn(SpanTaxonomy_exports.Spans.mutationReportingSli
|
|
|
89225
89335
|
const runInputsDigest = yield* runInputsDigestOf(deps.fs, deps.path, input.basePath, input.options);
|
|
89226
89336
|
return {
|
|
89227
89337
|
incrementalVersion: "3",
|
|
89228
|
-
verdictSemanticsVersion:
|
|
89338
|
+
verdictSemanticsVersion: 4,
|
|
89229
89339
|
mutantSetPolicy: input.options.mutator.mutantSetPolicy,
|
|
89230
89340
|
runInputsDigest,
|
|
89231
89341
|
schemaVersion: Report_exports.WrittenSchemaVersion.literal,
|
|
@@ -89793,7 +89903,7 @@ const terminalReportOf = make$69((event) => value(event).pipe(tag("mutationTestR
|
|
|
89793
89903
|
report: ready.report,
|
|
89794
89904
|
metrics: ready.metrics,
|
|
89795
89905
|
static: ready.static
|
|
89796
|
-
})), orElse$1(() => fail$
|
|
89906
|
+
})), orElse$1(() => fail$9("not-terminal"))));
|
|
89797
89907
|
const renderOptionsOf = (options) => ({
|
|
89798
89908
|
allowColor: options.clearTextReporter.allowColor,
|
|
89799
89909
|
allowEmojis: options.clearTextReporter.allowEmojis,
|
|
@@ -89885,7 +89995,7 @@ const renderJsonReport = Workflow_exports.make({
|
|
|
89885
89995
|
});
|
|
89886
89996
|
//#endregion
|
|
89887
89997
|
//#region src/json-report.cell.ts
|
|
89888
|
-
const reportOf$1 = make$69((event) => value(event).pipe(tag("mutationTestReportReady", (ready) => succeed$10(ready.report)), orElse$1(() => fail$
|
|
89998
|
+
const reportOf$1 = make$69((event) => value(event).pipe(tag("mutationTestReportReady", (ready) => succeed$10(ready.report)), orElse$1(() => fail$9("not-ready"))));
|
|
89889
89999
|
const readJsonReport = (input) => map$7(fromAsyncIterable(input.events, failAsJsonReporter).pipe(filterMap$2(reportOf$1), run$4(last())), (last) => ({
|
|
89890
90000
|
_tag: "JsonReportCommand",
|
|
89891
90001
|
reported: getOrUndefined$1(last),
|
|
@@ -90318,7 +90428,7 @@ const logOf = (command, results) => {
|
|
|
90318
90428
|
}]
|
|
90319
90429
|
};
|
|
90320
90430
|
};
|
|
90321
|
-
const decide$
|
|
90431
|
+
const decide$24 = (command) => {
|
|
90322
90432
|
const surfaced = surfacedOf(command);
|
|
90323
90433
|
const results = take$2(surfaced, command.maxResults);
|
|
90324
90434
|
const log = logOf(command, results);
|
|
@@ -90334,7 +90444,7 @@ const sarifReport = Workflow_exports.make({
|
|
|
90334
90444
|
command: SarifReportCommand,
|
|
90335
90445
|
decision: SarifReportDecision,
|
|
90336
90446
|
error: Never,
|
|
90337
|
-
decide: (command) => succeed$10(decide$
|
|
90447
|
+
decide: (command) => succeed$10(decide$24(command))
|
|
90338
90448
|
});
|
|
90339
90449
|
//#endregion
|
|
90340
90450
|
//#region src/cap-survivors.workflow.ts
|
|
@@ -90456,7 +90566,7 @@ const linesOf = (command) => {
|
|
|
90456
90566
|
onFalse: () => flatMap$7(toArray(get$4(byId, ref.id)), (entry) => [lineOf(entry)])
|
|
90457
90567
|
}));
|
|
90458
90568
|
};
|
|
90459
|
-
const decide$
|
|
90569
|
+
const decide$23 = (command) => {
|
|
90460
90570
|
const lines = linesOf(command);
|
|
90461
90571
|
return match$1(length(lines) === 0, {
|
|
90462
90572
|
onTrue: () => NothingToAnnotate.make({ survivorCount: length(command.survivors) }),
|
|
@@ -90467,7 +90577,7 @@ const renderAnnotations = Workflow_exports.make({
|
|
|
90467
90577
|
command: RenderAnnotationsCommand,
|
|
90468
90578
|
decision: RenderAnnotationsDecision,
|
|
90469
90579
|
error: Never,
|
|
90470
|
-
decide: (command) => succeed$10(decide$
|
|
90580
|
+
decide: (command) => succeed$10(decide$23(command))
|
|
90471
90581
|
});
|
|
90472
90582
|
//#endregion
|
|
90473
90583
|
//#region src/surfacing.ts
|
|
@@ -90544,7 +90654,7 @@ const failAsSarif = (cause) => Reporter_exports.ReporterFailed.make({
|
|
|
90544
90654
|
event: "mutationTestReportReady",
|
|
90545
90655
|
cause: getOrElse$1(map$13(ErrorText_exports.errorTextOf(cause), (rendered) => rendered.text), () => "")
|
|
90546
90656
|
});
|
|
90547
|
-
const reportOf = make$69((event) => value(event).pipe(tag("mutationTestReportReady", (ready) => succeed$10(ready.report)), orElse$1(() => fail$
|
|
90657
|
+
const reportOf = make$69((event) => value(event).pipe(tag("mutationTestReportReady", (ready) => succeed$10(ready.report)), orElse$1(() => fail$9("not-ready"))));
|
|
90548
90658
|
const readSarifReport = (events) => map$7(fromAsyncIterable(events, failAsSarif).pipe(filterMap$2(reportOf), run$4(last())), (last) => getOrUndefined$1(last));
|
|
90549
90659
|
const writeSarifReport = (options, report) => gen(function* () {
|
|
90550
90660
|
const fs = yield* FileSystem;
|
|
@@ -90797,7 +90907,7 @@ const survivorsRawOf = (input) => {
|
|
|
90797
90907
|
priorReportPath
|
|
90798
90908
|
}),
|
|
90799
90909
|
onTrue: () => fromResult(match$6(decodeUnknownResult(PriorReportDocument)(read.raw), {
|
|
90800
|
-
onFailure: (error) => fail$
|
|
90910
|
+
onFailure: (error) => fail$9(error),
|
|
90801
90911
|
onSuccess: (document) => succeed$10({
|
|
90802
90912
|
currentConfig: resolvedOptions,
|
|
90803
90913
|
frameworkVersion: StrykerPackage.version,
|
|
@@ -91451,11 +91561,11 @@ const readableToPullUnsafe = (options) => {
|
|
|
91451
91561
|
latch.openUnsafe();
|
|
91452
91562
|
}
|
|
91453
91563
|
function onError(error) {
|
|
91454
|
-
exit.current = fail$
|
|
91564
|
+
exit.current = fail$7(options.onError(error));
|
|
91455
91565
|
latch.openUnsafe();
|
|
91456
91566
|
}
|
|
91457
91567
|
function onEnd() {
|
|
91458
|
-
exit.current = fail$
|
|
91568
|
+
exit.current = fail$7(Done());
|
|
91459
91569
|
latch.openUnsafe();
|
|
91460
91570
|
}
|
|
91461
91571
|
readable.on("readable", onReadable);
|
|
@@ -95894,7 +96004,7 @@ const makeNetServer = /*#__PURE__*/ fnUntraced(function* (options) {
|
|
|
95894
96004
|
if (!isDeno) conn.pause();
|
|
95895
96005
|
onConnection(conn);
|
|
95896
96006
|
});
|
|
95897
|
-
server.on("error", (err) => doneUnsafe(errorDeferred, fail$
|
|
96007
|
+
server.on("error", (err) => doneUnsafe(errorDeferred, fail$7(err)));
|
|
95898
96008
|
yield* callback$1((resume) => {
|
|
95899
96009
|
server.listen(options.listenOptions, () => resume(void_$1));
|
|
95900
96010
|
}).pipe(raceFirst(mapError$3(_await(errorDeferred), (err) => new SocketServerError({ reason: new SocketServerOpenError({ cause: err }) }))));
|
|
@@ -96092,7 +96202,7 @@ var WorkerCrashed = class extends TaggedClass()("WorkerCrashed", {
|
|
|
96092
96202
|
};
|
|
96093
96203
|
const ClassifyWorkerExitDecision = Union([WorkerOutOfMemory, WorkerCrashed]);
|
|
96094
96204
|
const OutOfMemoryExitCode = Literals$3([134, 137]);
|
|
96095
|
-
const decide$
|
|
96205
|
+
const decide$22 = (command) => match$1(is$2(OutOfMemoryExitCode)(command.exitCode), {
|
|
96096
96206
|
onTrue: () => succeed$10(WorkerOutOfMemory.make({
|
|
96097
96207
|
pid: command.pid,
|
|
96098
96208
|
exitCode: command.exitCode
|
|
@@ -96106,7 +96216,7 @@ const classifyWorkerExit = Workflow_exports.make({
|
|
|
96106
96216
|
command: ClassifyWorkerExitCommand,
|
|
96107
96217
|
decision: ClassifyWorkerExitDecision,
|
|
96108
96218
|
error: Never,
|
|
96109
|
-
decide: decide$
|
|
96219
|
+
decide: decide$22
|
|
96110
96220
|
});
|
|
96111
96221
|
//#endregion
|
|
96112
96222
|
//#region src/git-diff.schema.ts
|
|
@@ -96453,7 +96563,7 @@ const modeFromEnvironment = (command) => match$8(configured$1(command.envMode),
|
|
|
96453
96563
|
const decideMode = (command) => value(command).pipe(when({
|
|
96454
96564
|
text: true,
|
|
96455
96565
|
json: true
|
|
96456
|
-
}, () => fail$
|
|
96566
|
+
}, () => fail$9(ModeConflictError.make({
|
|
96457
96567
|
option: "json",
|
|
96458
96568
|
value: "text",
|
|
96459
96569
|
expected: CONFLICT_EXPECTED
|
|
@@ -96784,8 +96894,8 @@ const stateAfter = (decision, fallback) => match$6(decision, {
|
|
|
96784
96894
|
onSuccess: (d) => d.state
|
|
96785
96895
|
});
|
|
96786
96896
|
const framedEventOf = (decision) => match$8(decision, {
|
|
96787
|
-
onNone: () => fail$
|
|
96788
|
-
onSome: (d) => value(d).pipe(tag("EventFramed", (framed) => succeed$10(framed.event)), tag("EventSuppressed", () => fail$
|
|
96897
|
+
onNone: () => fail$9(void 0),
|
|
96898
|
+
onSome: (d) => value(d).pipe(tag("EventFramed", (framed) => succeed$10(framed.event)), tag("EventSuppressed", () => fail$9(void 0)), exhaustive)
|
|
96789
96899
|
});
|
|
96790
96900
|
const DEFAULT_PROGRESS_STREAM_FILE = "reports/mutation-stream.jsonl";
|
|
96791
96901
|
var RunEventDrain = class RunEventDrain extends Service$1()("@systemfsoftware/stryker-js/run-event-stream.service/RunEventDrain") {
|
|
@@ -97085,7 +97195,7 @@ const allowedSecondsOf = (baselineSeconds, tolerance) => baselineSeconds * (1 +
|
|
|
97085
97195
|
const withinOrExceeded = (command, baseline) => {
|
|
97086
97196
|
const allowedSeconds = allowedSecondsOf(baseline.actualSeconds, command.tolerance);
|
|
97087
97197
|
return match$1(command.actualSeconds > allowedSeconds, {
|
|
97088
|
-
onTrue: () => fail$
|
|
97198
|
+
onTrue: () => fail$9(BudgetExceeded.make({
|
|
97089
97199
|
baselineSeconds: baseline.actualSeconds,
|
|
97090
97200
|
allowedSeconds,
|
|
97091
97201
|
actualSeconds: command.actualSeconds,
|
|
@@ -97099,10 +97209,10 @@ const updated = (command) => BudgetWithin.make({ baseline: BudgetBaseline.make({
|
|
|
97099
97209
|
actualSeconds: command.actualSeconds
|
|
97100
97210
|
}) });
|
|
97101
97211
|
const baselineUnusable$1 = (baselineFile) => BudgetInputUnusable.make({ reason: `no usable budget baseline at ${baselineFile} (missing or undecodable); write one with \`stryker gate --update-budget-baseline\`` });
|
|
97102
|
-
const decide$
|
|
97212
|
+
const decide$21 = (command) => match$1(command.updateBaseline, {
|
|
97103
97213
|
onTrue: () => succeed$10(updated(command)),
|
|
97104
97214
|
onFalse: () => match$8(fromNullishOr(command.baseline), {
|
|
97105
|
-
onNone: () => fail$
|
|
97215
|
+
onNone: () => fail$9(baselineUnusable$1(command.baselineFile)),
|
|
97106
97216
|
onSome: (baseline) => withinOrExceeded(command, baseline)
|
|
97107
97217
|
})
|
|
97108
97218
|
});
|
|
@@ -97110,7 +97220,7 @@ const budgetGate = Workflow_exports.make({
|
|
|
97110
97220
|
command: BudgetGateCommand,
|
|
97111
97221
|
decision: BudgetGateDecision,
|
|
97112
97222
|
error: Union([BudgetExceeded, BudgetInputUnusable]),
|
|
97113
|
-
decide: decide$
|
|
97223
|
+
decide: decide$21
|
|
97114
97224
|
});
|
|
97115
97225
|
//#endregion
|
|
97116
97226
|
//#region src/cli-route-fields.ts
|
|
@@ -97244,18 +97354,18 @@ const mismatchesOf = (command) => {
|
|
|
97244
97354
|
const noise = fromIterable$2(command.noise);
|
|
97245
97355
|
return [...fromIterable$2([...idsOf(command.baseline), ...idsOf(command.fresh)])].filter((id) => !has$1(noise, id)).sort().flatMap((id) => toArray(mismatchAt(id, baseline, fresh)));
|
|
97246
97356
|
};
|
|
97247
|
-
const decide$
|
|
97357
|
+
const decide$20 = (command) => {
|
|
97248
97358
|
const mismatches = mismatchesOf(command);
|
|
97249
97359
|
return match$8(fromUndefinedOr(mismatches[0]), {
|
|
97250
97360
|
onNone: () => succeed$10(VerdictsMatch.make({})),
|
|
97251
|
-
onSome: () => fail$
|
|
97361
|
+
onSome: () => fail$9(VerdictsDiffer.make({ mismatches }))
|
|
97252
97362
|
});
|
|
97253
97363
|
};
|
|
97254
97364
|
const compareVerdicts = Workflow_exports.make({
|
|
97255
97365
|
command: CompareVerdictsCommand,
|
|
97256
97366
|
decision: VerdictsMatch,
|
|
97257
97367
|
error: VerdictsDiffer,
|
|
97258
|
-
decide: decide$
|
|
97368
|
+
decide: decide$20
|
|
97259
97369
|
});
|
|
97260
97370
|
//#endregion
|
|
97261
97371
|
//#region src/Feedback/Feedback.schema.ts
|
|
@@ -97431,17 +97541,17 @@ const clearedOrRejected = (command, committed) => {
|
|
|
97431
97541
|
baseline: null,
|
|
97432
97542
|
unchecked
|
|
97433
97543
|
})),
|
|
97434
|
-
onSome: () => fail$
|
|
97544
|
+
onSome: () => fail$9(GateRejected.make({
|
|
97435
97545
|
newSurvivors,
|
|
97436
97546
|
unchecked
|
|
97437
97547
|
}))
|
|
97438
97548
|
});
|
|
97439
97549
|
};
|
|
97440
97550
|
const verdictOf = (command) => match$8(fromNullishOr(command.committed), {
|
|
97441
|
-
onNone: () => fail$
|
|
97551
|
+
onNone: () => fail$9(baselineUnusable(command.baselineFile)),
|
|
97442
97552
|
onSome: (committed) => clearedOrRejected(command, committed)
|
|
97443
97553
|
});
|
|
97444
|
-
const decide$
|
|
97554
|
+
const decide$19 = (command) => match$1(command.updateBaseline, {
|
|
97445
97555
|
onTrue: () => succeed$10(clearedForUpdate(command)),
|
|
97446
97556
|
onFalse: () => verdictOf(command)
|
|
97447
97557
|
});
|
|
@@ -97449,7 +97559,7 @@ const gateNewSurvivors = Workflow_exports.make({
|
|
|
97449
97559
|
command: GateNewSurvivorsCommand,
|
|
97450
97560
|
decision: GateNewSurvivorsDecision,
|
|
97451
97561
|
error: Union([GateRejected, GateInputUnusable]),
|
|
97452
|
-
decide: decide$
|
|
97562
|
+
decide: decide$19
|
|
97453
97563
|
});
|
|
97454
97564
|
//#endregion
|
|
97455
97565
|
//#region ../../node_modules/.pnpm/effect@4.0.0/node_modules/effect/dist/ai/AiError.js
|
|
@@ -104588,12 +104698,12 @@ const splitOf = (details, checkerCount) => match$1(checkerCount > 0, {
|
|
|
104588
104698
|
announcement: details.announcement
|
|
104589
104699
|
})
|
|
104590
104700
|
});
|
|
104591
|
-
const decide$
|
|
104701
|
+
const decide$18 = (command) => succeed$10(splitOf(detailsOf(command.concurrency, command.availableParallelism), command.checkerCount));
|
|
104592
104702
|
const resolveConcurrency = Workflow_exports.make({
|
|
104593
104703
|
command: ResolveConcurrency,
|
|
104594
104704
|
decision: ConcurrencySplit,
|
|
104595
104705
|
error: Never,
|
|
104596
|
-
decide: decide$
|
|
104706
|
+
decide: decide$18
|
|
104597
104707
|
});
|
|
104598
104708
|
//#endregion
|
|
104599
104709
|
//#region src/concurrency.cell.ts
|
|
@@ -104808,7 +104918,7 @@ const discardOf = (reason, actual, expected) => IncrementalReportDiscard.make({
|
|
|
104808
104918
|
actual,
|
|
104809
104919
|
expected
|
|
104810
104920
|
});
|
|
104811
|
-
const decide$
|
|
104921
|
+
const decide$17 = (command) => match$8(fromUndefinedOr(command.report), {
|
|
104812
104922
|
onNone: () => discardOf("noPriorRecord", void 0, command.expectedIncrementalVersion),
|
|
104813
104923
|
onSome: (report) => match$8(firstSomeOf(identityMismatchesOf(command, report).map(mismatchOptionOf)), {
|
|
104814
104924
|
onNone: () => IncrementalReportKeep.make({ report }),
|
|
@@ -104819,7 +104929,7 @@ const admitIncrementalReport = Workflow_exports.make({
|
|
|
104819
104929
|
command: AdmitIncrementalReportCommand,
|
|
104820
104930
|
decision: Union([IncrementalReportKeep, IncrementalReportDiscard]),
|
|
104821
104931
|
error: Never,
|
|
104822
|
-
decide: (command) => succeed$10(decide$
|
|
104932
|
+
decide: (command) => succeed$10(decide$17(command))
|
|
104823
104933
|
});
|
|
104824
104934
|
//#endregion
|
|
104825
104935
|
//#region src/git-diff.workflow.ts
|
|
@@ -105412,7 +105522,7 @@ const readProject = fn(SpanTaxonomy_exports.Spans.projectReadFromDisk.name)(func
|
|
|
105412
105522
|
_tag: "AdmitIncrementalReportCommand",
|
|
105413
105523
|
report: reportRead.report,
|
|
105414
105524
|
expectedIncrementalVersion: "3",
|
|
105415
|
-
verdictSemanticsVersion:
|
|
105525
|
+
verdictSemanticsVersion: 4,
|
|
105416
105526
|
mutantSetPolicy: options.mutator.mutantSetPolicy,
|
|
105417
105527
|
runInputsDigest,
|
|
105418
105528
|
options,
|
|
@@ -105740,7 +105850,7 @@ const decideComplete = (command) => value({
|
|
|
105740
105850
|
testCount: command.testCount,
|
|
105741
105851
|
failedTestCount: command.failedTestCount,
|
|
105742
105852
|
failedTests: command.failedTests
|
|
105743
|
-
}).pipe(when({ outcome: "noTests" }, () => fail$
|
|
105853
|
+
}).pipe(when({ outcome: "noTests" }, () => fail$9(DryRunError.make({
|
|
105744
105854
|
stage: "dryRunNoTests",
|
|
105745
105855
|
reason: "No tests were executed. Stryker will exit prematurely. Please check your configuration."
|
|
105746
105856
|
}))), when({ outcome: "failed" }, ({ testCount, failedTestCount, failedTests }) => succeed$10(DryRunFailed.make({
|
|
@@ -105749,10 +105859,10 @@ const decideComplete = (command) => value({
|
|
|
105749
105859
|
failedTests
|
|
105750
105860
|
}))), when({ outcome: "passed" }, ({ testCount }) => succeed$10(DryRunPassed.make({ testCount }))), exhaustive);
|
|
105751
105861
|
const reasonOrDefault = (reason, fallback) => value(reason).pipe(when(void 0, () => fallback), orElse$1((present) => present));
|
|
105752
|
-
const decide$
|
|
105862
|
+
const decide$16 = (command) => value(command.status).pipe(when("Error", () => fail$9(DryRunError.make({
|
|
105753
105863
|
stage: "dryRun",
|
|
105754
105864
|
reason: reasonOrDefault(command.errorMessage, "Dry run error")
|
|
105755
|
-
}))), when("Timeout", () => fail$
|
|
105865
|
+
}))), when("Timeout", () => fail$9(DryRunError.make({
|
|
105756
105866
|
stage: "dryRun",
|
|
105757
105867
|
reason: reasonOrDefault(command.reason, "Initial test run timed out")
|
|
105758
105868
|
}))), when("Complete", () => decideComplete(command)), exhaustive);
|
|
@@ -105760,7 +105870,7 @@ const dryRun = Workflow_exports.make({
|
|
|
105760
105870
|
command: DryRunCommand,
|
|
105761
105871
|
decision: Union([DryRunPassed, DryRunFailed]),
|
|
105762
105872
|
error: DryRunError,
|
|
105763
|
-
decide: decide$
|
|
105873
|
+
decide: decide$16
|
|
105764
105874
|
});
|
|
105765
105875
|
//#endregion
|
|
105766
105876
|
//#region src/import-closure.schema.ts
|
|
@@ -105822,12 +105932,12 @@ const closureOf = (command, testFile) => {
|
|
|
105822
105932
|
open: closureOpen(command, files, testFile)
|
|
105823
105933
|
});
|
|
105824
105934
|
};
|
|
105825
|
-
const decide$
|
|
105935
|
+
const decide$15 = (command) => succeed$10(command.testFiles.map((testFile) => closureOf(command, testFile)));
|
|
105826
105936
|
const importClosure = Workflow_exports.make({
|
|
105827
105937
|
command: ImportClosureCommand,
|
|
105828
105938
|
decision: ArraySchema(TestFileClosure),
|
|
105829
105939
|
error: Never,
|
|
105830
|
-
decide: decide$
|
|
105940
|
+
decide: decide$15
|
|
105831
105941
|
});
|
|
105832
105942
|
//#endregion
|
|
105833
105943
|
//#region src/import-closure.cell.ts
|
|
@@ -106239,7 +106349,7 @@ const failedTestSummariesOf = (tests) => tests.filter((test) => test.status ===
|
|
|
106239
106349
|
name: test.name,
|
|
106240
106350
|
failureMessage: test.failureMessage
|
|
106241
106351
|
}));
|
|
106242
|
-
const decide$
|
|
106352
|
+
const decide$14 = (command) => value(command.dryRunResult).pipe(discriminator("status")("complete", (complete) => succeed$10(DryRunObservedComplete.make({
|
|
106243
106353
|
testCount: complete.tests.length,
|
|
106244
106354
|
failedTestCount: complete.tests.filter((test) => test.status === "failed").length,
|
|
106245
106355
|
failedTests: failedTestSummariesOf(complete.tests)
|
|
@@ -106255,7 +106365,7 @@ const interpretDryRunObservation = Workflow_exports.make({
|
|
|
106255
106365
|
DryRunObservedTimedOut
|
|
106256
106366
|
]),
|
|
106257
106367
|
error: Never,
|
|
106258
|
-
decide: decide$
|
|
106368
|
+
decide: decide$14
|
|
106259
106369
|
});
|
|
106260
106370
|
//#endregion
|
|
106261
106371
|
//#region src/PluginsError.schema.ts
|
|
@@ -106293,7 +106403,7 @@ var PluginLoadRefusedError = class extends TaggedError()("PluginLoadRefusedError
|
|
|
106293
106403
|
const TypeId$9 = Symbol.for("~systemfsoftware/stryker-js/Sandbox");
|
|
106294
106404
|
const SandboxHandle = Handle_exports.make()(TypeId$9);
|
|
106295
106405
|
SandboxHandle.is;
|
|
106296
|
-
const sandboxFileNameOf = (fileMap, fileName) => value(fileMap.get(fileName)).pipe(when(isString$1, (sandboxFileName) => succeed$10(sandboxFileName)), orElse$1(() => fail$
|
|
106406
|
+
const sandboxFileNameOf = (fileMap, fileName) => value(fileMap.get(fileName)).pipe(when(isString$1, (sandboxFileName) => succeed$10(sandboxFileName)), orElse$1(() => fail$9(StrykerError.make({ message: `Cannot find sandbox file for ${fileName}` }))));
|
|
106297
106407
|
const withoutLeadingSeparator = (suffix) => match$1(suffix.startsWith("/"), {
|
|
106298
106408
|
onTrue: () => suffix.slice(1),
|
|
106299
106409
|
onFalse: () => suffix
|
|
@@ -106387,7 +106497,7 @@ const executedTestsOf$1 = (tests) => tests.filter((test) => test.status !== "ski
|
|
|
106387
106497
|
timeSpentMs: test.timeSpentMs
|
|
106388
106498
|
}));
|
|
106389
106499
|
const firstFailedTestOf = (failed) => fromUndefinedOr(failed.at(0));
|
|
106390
|
-
const decide$
|
|
106500
|
+
const decide$13 = (command) => value(command.dryRunResult).pipe(discriminator("status")("complete", (complete) => {
|
|
106391
106501
|
const failed = failedTestsOf(complete.tests);
|
|
106392
106502
|
const nrOfTests = countedTestsOf(complete.tests);
|
|
106393
106503
|
const executedTests = executedTestsOf$1(complete.tests);
|
|
@@ -106416,7 +106526,7 @@ const interpretDryRunResult = Workflow_exports.make({
|
|
|
106416
106526
|
MutantRunTimedOut
|
|
106417
106527
|
]),
|
|
106418
106528
|
error: Never,
|
|
106419
|
-
decide: decide$
|
|
106529
|
+
decide: decide$13
|
|
106420
106530
|
});
|
|
106421
106531
|
//#endregion
|
|
106422
106532
|
//#region src/pooled-test-runner.handle.ts
|
|
@@ -106429,6 +106539,43 @@ const make$1 = (runner) => PooledTestRunner.make({
|
|
|
106429
106539
|
dryRun: runner.dryRun,
|
|
106430
106540
|
mutantRun: runner.mutantRun
|
|
106431
106541
|
});
|
|
106542
|
+
const wallClockTimeoutResult = {
|
|
106543
|
+
status: "timeout",
|
|
106544
|
+
reason: TestRunner_exports.WallClockTimeoutReason.literal
|
|
106545
|
+
};
|
|
106546
|
+
const endedWithoutResult = () => TestRunner_exports.TestRunnerFailed.make({
|
|
106547
|
+
runnerName: "test runner",
|
|
106548
|
+
phase: "mutantRun",
|
|
106549
|
+
cause: "the mutant run ended without reporting a result"
|
|
106550
|
+
});
|
|
106551
|
+
const deadlineArmedMutantRun = dual(2, (events, timeoutMs) => scoped$3(gen(function* () {
|
|
106552
|
+
const started = yield* make$67();
|
|
106553
|
+
const settled = yield* make$67();
|
|
106554
|
+
const pump = events.pipe(runForEach((event) => value(event).pipe(tag("MutantRunStarted", () => succeed$7(started, void 0)), tag("MutantRunSettled", ({ result }) => succeed$7(settled, result)), exhaustive, asVoid)), onExit((exit) => match$3(exit, {
|
|
106555
|
+
onFailure: (cause) => failCause$4(settled, cause),
|
|
106556
|
+
onSuccess: () => fail$6(settled, endedWithoutResult())
|
|
106557
|
+
}).pipe(asVoid)));
|
|
106558
|
+
yield* forkScoped(pump);
|
|
106559
|
+
const deadline = raceFirst(_await(started).pipe(as(true)), _await(settled).pipe(as(false))).pipe(timeoutOption(WORKER_BOOT_TIMEOUT), flatMap$4(match$8({
|
|
106560
|
+
onNone: () => succeed$5(wallClockTimeoutResult),
|
|
106561
|
+
onSome: (began) => began ? sleep(millis(timeoutMs)).pipe(as(wallClockTimeoutResult)) : _await(settled)
|
|
106562
|
+
})));
|
|
106563
|
+
return yield* raceFirst(deadline, _await(settled));
|
|
106564
|
+
})));
|
|
106565
|
+
/**
|
|
106566
|
+
* The dry run keeps the configured absolute budget. A mutant run is bounded from
|
|
106567
|
+
* its own start by {@link deadlineArmedMutantRun}, so it is not wrapped here.
|
|
106568
|
+
*/
|
|
106569
|
+
const withDryRunTimeout = (inner) => make$1({
|
|
106570
|
+
...inner,
|
|
106571
|
+
dryRun: (options) => inner.dryRun(options).pipe(timeoutOrElse({
|
|
106572
|
+
duration: millis(options.timeout),
|
|
106573
|
+
orElse: () => succeed$5({
|
|
106574
|
+
status: "timeout",
|
|
106575
|
+
reason: TestRunner_exports.WallClockTimeoutReason.literal
|
|
106576
|
+
})
|
|
106577
|
+
}))
|
|
106578
|
+
});
|
|
106432
106579
|
const withTimeout = (inner) => make$1({
|
|
106433
106580
|
...inner,
|
|
106434
106581
|
dryRun: (options) => inner.dryRun(options).pipe(timeoutOrElse({
|
|
@@ -106651,7 +106798,7 @@ const scopedOf = fnUntraced(function* (params) {
|
|
|
106651
106798
|
capabilities: client.capabilities().pipe(mapError$3(toRunnerFailure(runnerName, "capabilities"))),
|
|
106652
106799
|
init: void_$1,
|
|
106653
106800
|
dryRun: (options) => client.dryRun({ options }).pipe(mapError$3(toRunnerFailure(runnerName, "dryRun"))),
|
|
106654
|
-
mutantRun: (options) => client.mutantRun({ options }).pipe(mapError$
|
|
106801
|
+
mutantRun: (options) => deadlineArmedMutantRun(client.mutantRun({ options }).pipe(mapError$1(toRunnerFailure(runnerName, "mutantRun"))), options.timeout)
|
|
106655
106802
|
});
|
|
106656
106803
|
});
|
|
106657
106804
|
const TestRunners = Blueprint_exports.make()(TypeId$6).steps({
|
|
@@ -106663,7 +106810,7 @@ const commandRunnerEffect = (context) => ChildProcessSpawner.pipe(map$7((spawner
|
|
|
106663
106810
|
const inProcessRunner = (context) => value(context.options.testRunner).pipe(when(isCommandRunner, () => some$1(commandRunnerEffect(context))), orElse$1(() => none()));
|
|
106664
106811
|
const decorateChildRunner = fnUntraced(function* (context, childProcessRunner) {
|
|
106665
106812
|
const base = yield* childProcessRunner;
|
|
106666
|
-
const timed =
|
|
106813
|
+
const timed = withDryRunTimeout(base);
|
|
106667
106814
|
const limited = yield* withMaxReuse(context.options, context.retire)(timed);
|
|
106668
106815
|
const reloading = yield* withEnvironmentReload(context.retire)(limited);
|
|
106669
106816
|
return withRetry(reloading);
|
|
@@ -106864,18 +107011,18 @@ const resolvedSpawnOf = (command, matches, label) => match$8(workerSourceOf(comm
|
|
|
106864
107011
|
})),
|
|
106865
107012
|
onNone: () => {
|
|
106866
107013
|
const kindLabel = labelOfKind(command.kind);
|
|
106867
|
-
return fail$
|
|
107014
|
+
return fail$9(WorkerSpawnMissing.make({
|
|
106868
107015
|
reason: `the ${kindLabel} plugin "${label}" is not among the loaded plugins`,
|
|
106869
107016
|
descriptor: `${command.kind}:${label}`
|
|
106870
107017
|
}));
|
|
106871
107018
|
}
|
|
106872
107019
|
});
|
|
106873
|
-
const decide$
|
|
107020
|
+
const decide$12 = (command) => value(command.configured).pipe(tag("ConfiguredPluginName", (configured) => resolvedSpawnOf(command, (worker) => worker.name.toLowerCase() === configured.name.toLowerCase(), configured.name)), tag("ConfiguredPluginModulePath", (configured) => resolvedSpawnOf(command, (worker) => worker.modulePath === configured.modulePath, configured.modulePath)), exhaustive);
|
|
106874
107021
|
const resolveConfiguredPlugin = Workflow_exports.make({
|
|
106875
107022
|
command: WorkerSpawnCommand,
|
|
106876
107023
|
decision: WorkerSpawnResolved,
|
|
106877
107024
|
error: WorkerSpawnMissing,
|
|
106878
|
-
decide: decide$
|
|
107025
|
+
decide: decide$12
|
|
106879
107026
|
});
|
|
106880
107027
|
//#endregion
|
|
106881
107028
|
//#region src/run/dry-run.cell.ts
|
|
@@ -107250,7 +107397,7 @@ var EphemeralInstrument = class extends TaggedClass()("EphemeralInstrument", {
|
|
|
107250
107397
|
}) {
|
|
107251
107398
|
[InstrumentDecisionTypeId] = InstrumentDecisionTypeId;
|
|
107252
107399
|
};
|
|
107253
|
-
const decide$
|
|
107400
|
+
const decide$11 = (command) => value(command.inPlace).pipe(when(true, () => succeed$10(InPlaceInstrument.make({
|
|
107254
107401
|
workingDirectoryHint: "inPlace",
|
|
107255
107402
|
backupDirectoryHint: "backup",
|
|
107256
107403
|
fileCount: command.fileCount
|
|
@@ -107262,7 +107409,7 @@ const planInstrumentation = Workflow_exports.make({
|
|
|
107262
107409
|
command: InstrumentCommand,
|
|
107263
107410
|
decision: Union([InPlaceInstrument, EphemeralInstrument]),
|
|
107264
107411
|
error: Never,
|
|
107265
|
-
decide: decide$
|
|
107412
|
+
decide: decide$11
|
|
107266
107413
|
});
|
|
107267
107414
|
//#endregion
|
|
107268
107415
|
//#region ../../node_modules/.pnpm/@jsr+std__jsonc@1.0.2/node_modules/@jsr/std__jsonc/parse.js
|
|
@@ -108076,12 +108223,12 @@ var MutationTestDryRunOnly = class extends TaggedClass()("MutationTestDryRunOnly
|
|
|
108076
108223
|
var MutationTestNoTests = class extends TaggedClass()("MutationTestNoTests", {}) {
|
|
108077
108224
|
[MutationTestDecisionTypeId] = MutationTestDecisionTypeId;
|
|
108078
108225
|
};
|
|
108079
|
-
const decide$
|
|
108226
|
+
const decide$10 = (command) => value({
|
|
108080
108227
|
invalid: command.testCount < 0,
|
|
108081
108228
|
dryRunOnly: command.dryRunOnly,
|
|
108082
108229
|
isZero: command.isZero,
|
|
108083
108230
|
allowEmpty: command.allowEmpty
|
|
108084
|
-
}).pipe(when({ invalid: true }, () => fail$
|
|
108231
|
+
}).pipe(when({ invalid: true }, () => fail$9(MutationTestError.make({
|
|
108085
108232
|
stage: "mutationTest",
|
|
108086
108233
|
reason: "Invalid test count"
|
|
108087
108234
|
}))), when({ dryRunOnly: true }, () => succeed$10(MutationTestDryRunOnly.make({}))), when({
|
|
@@ -108096,7 +108243,7 @@ const admitMutationTest = Workflow_exports.make({
|
|
|
108096
108243
|
MutationTestNoTests
|
|
108097
108244
|
]),
|
|
108098
108245
|
error: MutationTestError,
|
|
108099
|
-
decide: decide$
|
|
108246
|
+
decide: decide$10
|
|
108100
108247
|
});
|
|
108101
108248
|
//#endregion
|
|
108102
108249
|
//#region src/admit-checker-answer.workflow.ts
|
|
@@ -108154,7 +108301,7 @@ const skippedRequested = (command, acknowledged) => liftPredicate(isReadonlyArra
|
|
|
108154
108301
|
const contractBreach = (command, requested, submitted) => firstSomeOf([answeredUnrequested(command, submitted, requested), skippedRequested(command, acknowledgedIds(submitted, requested))]);
|
|
108155
108302
|
const admit = (command, requested, submitted, decision) => match$8(contractBreach(command, requested, submitted), {
|
|
108156
108303
|
onNone: () => succeed$10(decision),
|
|
108157
|
-
onSome: (breach) => fail$
|
|
108304
|
+
onSome: (breach) => fail$9(breach)
|
|
108158
108305
|
});
|
|
108159
108306
|
const idGroupsOf = (command) => getOrElse$1(() => [])(fromUndefinedOr(command.idGroups));
|
|
108160
108307
|
const answersOf = (command) => getOrElse$1(() => ({}))(fromUndefinedOr(command.answers));
|
|
@@ -108263,7 +108410,7 @@ const lookupOf = (partitioned) => ({
|
|
|
108263
108410
|
wireById: new Map(partitioned.wire.map((mutant) => [mutant.id, mutant])),
|
|
108264
108411
|
undescribableById: new Map(partitioned.undescribable.map((mutant) => [mutant.id, mutant]))
|
|
108265
108412
|
});
|
|
108266
|
-
const wireOrFallbackOf = (mutant, lookup) => getOrElse$1(map$13(fromUndefinedOr(lookup.wireById.get(mutant.id)), succeed$10), () => getOrElse$1(map$13(fromUndefinedOr(lookup.undescribableById.get(mutant.id)), fail$
|
|
108413
|
+
const wireOrFallbackOf = (mutant, lookup) => getOrElse$1(map$13(fromUndefinedOr(lookup.wireById.get(mutant.id)), succeed$10), () => getOrElse$1(map$13(fromUndefinedOr(lookup.undescribableById.get(mutant.id)), fail$9), () => wireRecordOf(mutant)));
|
|
108267
108414
|
const selectedFromLookup = (plans, lookup) => {
|
|
108268
108415
|
const [wire, undescribable] = separate(map$10(plans, (plan) => wireOrFallbackOf(plan.mutant, lookup)));
|
|
108269
108416
|
return {
|
|
@@ -108452,7 +108599,7 @@ const decideCheckedPlan = (mutantId, result, entryIndex) => match$8(liftPredicat
|
|
|
108452
108599
|
})
|
|
108453
108600
|
})
|
|
108454
108601
|
});
|
|
108455
|
-
const decide$
|
|
108602
|
+
const decide$9 = (command) => succeed$10(command.checked.map(([mutantId, result], entryIndex) => decideCheckedPlan(mutantId, result, entryIndex)));
|
|
108456
108603
|
const partitionCheckedPlans = Workflow_exports.make({
|
|
108457
108604
|
command: PartitionCheckedPlansCommand,
|
|
108458
108605
|
decision: ArraySchema(Union([
|
|
@@ -108461,7 +108608,7 @@ const partitionCheckedPlans = Workflow_exports.make({
|
|
|
108461
108608
|
CheckedPlanIgnored
|
|
108462
108609
|
])),
|
|
108463
108610
|
error: Never,
|
|
108464
|
-
decide: decide$
|
|
108611
|
+
decide: decide$9
|
|
108465
108612
|
});
|
|
108466
108613
|
//#endregion
|
|
108467
108614
|
//#region src/Checker/checker-pool.handle.ts
|
|
@@ -108817,7 +108964,7 @@ const decideChanged = (command) => {
|
|
|
108817
108964
|
const recordsById = recordsByIdOf(command.previousRecords);
|
|
108818
108965
|
return command.currentMutants.map((mutant) => decideForMutant(mutant, command, recordsById));
|
|
108819
108966
|
};
|
|
108820
|
-
const decide$
|
|
108967
|
+
const decide$8 = (command) => match$1(command.force, {
|
|
108821
108968
|
onTrue: () => succeed$10(command.currentMutants.map(forcedRun)),
|
|
108822
108969
|
onFalse: () => succeed$10(decideChanged(command))
|
|
108823
108970
|
});
|
|
@@ -108825,7 +108972,7 @@ const incrementalDiff = Workflow_exports.make({
|
|
|
108825
108972
|
command: IncrementalDiffCommand,
|
|
108826
108973
|
decision: ArraySchema(Union([MutantRemembered, MutantToRun])),
|
|
108827
108974
|
error: Never,
|
|
108828
|
-
decide: decide$
|
|
108975
|
+
decide: decide$8
|
|
108829
108976
|
});
|
|
108830
108977
|
//#endregion
|
|
108831
108978
|
//#region src/report-test-ids.workflow.ts
|
|
@@ -108847,12 +108994,12 @@ const testIdsOfFile = (file, testFile) => testFile.tests.map((test) => ReportTes
|
|
|
108847
108994
|
}));
|
|
108848
108995
|
const testIdsOfFiles = (testFiles) => Object.entries(testFiles).flatMap(([file, testFile]) => testIdsOfFile(file, testFile));
|
|
108849
108996
|
const tableOf = (testFiles) => testIdsOfFiles(getOrElse$1(fromUndefinedOr(testFiles), () => EMPTY_TEST_FILES));
|
|
108850
|
-
const decide$
|
|
108997
|
+
const decide$7 = (command) => succeed$10(tableOf(command.testFiles));
|
|
108851
108998
|
const reportTestIds = Workflow_exports.make({
|
|
108852
108999
|
command: ResolveReportTestIds,
|
|
108853
109000
|
decision: ArraySchema(ReportTestId),
|
|
108854
109001
|
error: Never,
|
|
108855
|
-
decide: decide$
|
|
109002
|
+
decide: decide$7
|
|
108856
109003
|
});
|
|
108857
109004
|
//#endregion
|
|
108858
109005
|
//#region src/run/incremental-reuse.cell.ts
|
|
@@ -108982,7 +109129,7 @@ const readIncrementalReuseCommand = fn(SpanTaxonomy_exports.Spans.incrementalReu
|
|
|
108982
109129
|
previousRecords: [...previousRecords],
|
|
108983
109130
|
closureDigestsByMutantId: closures.digests,
|
|
108984
109131
|
closureAnalysisFailed: closures.failed,
|
|
108985
|
-
verdictSemanticsVersion:
|
|
109132
|
+
verdictSemanticsVersion: 4,
|
|
108986
109133
|
mutantSetPolicy: input.options.mutator.mutantSetPolicy,
|
|
108987
109134
|
runInputsDigest,
|
|
108988
109135
|
force: input.force,
|
|
@@ -109125,7 +109272,7 @@ const decideGuard = (command) => match$1(coveringTestMissing(command), {
|
|
|
109125
109272
|
onTrue: () => decideRetry(command),
|
|
109126
109273
|
onFalse: () => succeed$10(MutantRunSettled.make({}))
|
|
109127
109274
|
});
|
|
109128
|
-
const decide$
|
|
109275
|
+
const decide$6 = (command) => match$1(command.wallClockTimeout, {
|
|
109129
109276
|
onTrue: () => succeed$10(MutantRunPoolInvalidated.make({})),
|
|
109130
109277
|
onFalse: () => decideGuard(command)
|
|
109131
109278
|
});
|
|
@@ -109138,7 +109285,7 @@ const interpretMutantRun = Workflow_exports.make({
|
|
|
109138
109285
|
MutantRunRetryExhausted
|
|
109139
109286
|
]),
|
|
109140
109287
|
error: Never,
|
|
109141
|
-
decide: decide$
|
|
109288
|
+
decide: decide$6
|
|
109142
109289
|
});
|
|
109143
109290
|
//#endregion
|
|
109144
109291
|
//#region src/mutant-run-span.ts
|
|
@@ -109526,7 +109673,7 @@ const toRunPlan = (mutant, command, netTime, testFilter, isStatic, coveredBy) =>
|
|
|
109526
109673
|
...staticField(isStatic),
|
|
109527
109674
|
...coveredByField(coveredBy)
|
|
109528
109675
|
})),
|
|
109529
|
-
onFalse: () => fail$
|
|
109676
|
+
onFalse: () => fail$9(MutantTimeoutNotFinite.make({ mutantId: mutant.id }))
|
|
109530
109677
|
});
|
|
109531
109678
|
};
|
|
109532
109679
|
const toEarlyResultPlan = (mutant, isStatic, status, statusReason, coveredBy) => PlannedEarlyResultMutant.make({
|
|
@@ -109609,15 +109756,15 @@ const missingHitCountIds = (command) => openMutantsOf(command.mutants).flatMap((
|
|
|
109609
109756
|
onFalse: () => []
|
|
109610
109757
|
}));
|
|
109611
109758
|
const plannedMutantsOf = (command) => command.mutants.reduce((planned, mutant) => flatMap$8(planned, (soFar) => map$12(decidePlanForMutant(mutant, command), (next) => [...soFar, next])), succeed$10([]));
|
|
109612
|
-
const decide$
|
|
109759
|
+
const decide$5 = (command) => match$8(fromUndefinedOr(missingHitCountIds(command)[0]), {
|
|
109613
109760
|
onNone: () => plannedMutantsOf(command),
|
|
109614
|
-
onSome: (first) => fail$
|
|
109761
|
+
onSome: (first) => fail$9(CoveredMutantHitCountMissing.make({ missingIds: [first, ...missingHitCountIds(command).slice(1)] }))
|
|
109615
109762
|
});
|
|
109616
109763
|
const planMutantTests = Workflow_exports.make({
|
|
109617
109764
|
command: MutantTestPlanCommand,
|
|
109618
109765
|
decision: ArraySchema(Union([PlannedRunMutant, PlannedEarlyResultMutant])),
|
|
109619
109766
|
error: Union([CoveredMutantHitCountMissing, MutantTimeoutNotFinite]),
|
|
109620
|
-
decide: decide$
|
|
109767
|
+
decide: decide$5
|
|
109621
109768
|
});
|
|
109622
109769
|
//#endregion
|
|
109623
109770
|
//#region src/materialize-mutant-plans.workflow.ts
|
|
@@ -109728,12 +109875,12 @@ const earlyResultPlanOf = (mutant, early) => ({
|
|
|
109728
109875
|
coveredBy: early.coveredBy
|
|
109729
109876
|
})
|
|
109730
109877
|
});
|
|
109731
|
-
const decide$
|
|
109878
|
+
const decide$4 = (command) => value(command.plan).pipe(tag("PlannedRunMutant", (run) => succeed$10(MutantRunPlanMaterialized.make({ plan: runPlanOf(command.mutant, run) }))), tag("PlannedEarlyResultMutant", (early) => succeed$10(MutantEarlyResultPlanMaterialized.make({ plan: earlyResultPlanOf(command.mutant, early) }))), exhaustive);
|
|
109732
109879
|
const materializeMutantPlans = Workflow_exports.make({
|
|
109733
109880
|
command: MaterializeMutantPlanCommand,
|
|
109734
109881
|
decision: Union([MutantRunPlanMaterialized, MutantEarlyResultPlanMaterialized]),
|
|
109735
109882
|
error: Never,
|
|
109736
|
-
decide: decide$
|
|
109883
|
+
decide: decide$4
|
|
109737
109884
|
});
|
|
109738
109885
|
//#endregion
|
|
109739
109886
|
//#region src/MutantsError.schema.ts
|
|
@@ -109767,12 +109914,12 @@ const orderedOf = (plans) => [...plans].sort(comparePlans).map((plan) => Ordered
|
|
|
109767
109914
|
netTime: plan.netTime,
|
|
109768
109915
|
reloadEnvironment: plan.reloadEnvironment
|
|
109769
109916
|
}));
|
|
109770
|
-
const decide$
|
|
109917
|
+
const decide$3 = (command) => succeed$10(orderedOf(command.plans));
|
|
109771
109918
|
const sortRunPlans = Workflow_exports.make({
|
|
109772
109919
|
command: SortRunPlans,
|
|
109773
109920
|
decision: ArraySchema(OrderedRunPlan),
|
|
109774
109921
|
error: Never,
|
|
109775
|
-
decide: decide$
|
|
109922
|
+
decide: decide$3
|
|
109776
109923
|
});
|
|
109777
109924
|
//#endregion
|
|
109778
109925
|
//#region src/run/mutation-test-plan.cell.ts
|
|
@@ -110253,7 +110400,7 @@ const catalogsOf = (command) => [command.stock, ...command.providers.map((provid
|
|
|
110253
110400
|
}))];
|
|
110254
110401
|
const planCatalogs = (command) => match$8(refusalOf(command), {
|
|
110255
110402
|
onNone: () => succeed$10(MutatorCatalogsPlanned.make({ catalogs: [...catalogsOf(command)] })),
|
|
110256
|
-
onSome: (refused) => fail$
|
|
110403
|
+
onSome: (refused) => fail$9(refused)
|
|
110257
110404
|
});
|
|
110258
110405
|
const planMutatorCatalogs = Workflow_exports.make({
|
|
110259
110406
|
command: PlanMutatorCatalogsCommand,
|
|
@@ -110299,19 +110446,19 @@ const reasonFor = (index, name) => match$1(index.declared.includes(name), {
|
|
|
110299
110446
|
});
|
|
110300
110447
|
const excludedRefusalOf = (index, command) => match$8(refusedNameIn(index.declared, command.excludedMutations), {
|
|
110301
110448
|
onNone: () => succeed$10(void 0),
|
|
110302
|
-
onSome: (name) => fail$
|
|
110449
|
+
onSome: (name) => fail$9(MutatorSelectionRefused.make({
|
|
110303
110450
|
reason: "UnknownName",
|
|
110304
110451
|
name
|
|
110305
110452
|
}))
|
|
110306
110453
|
});
|
|
110307
110454
|
const optInRefusalOf = (index, command) => match$8(refusedNameIn(index.optIn, command.optInMutations), {
|
|
110308
110455
|
onNone: () => succeed$10(void 0),
|
|
110309
|
-
onSome: (name) => fail$
|
|
110456
|
+
onSome: (name) => fail$9(MutatorSelectionRefused.make({
|
|
110310
110457
|
reason: reasonFor(index, name),
|
|
110311
110458
|
name
|
|
110312
110459
|
}))
|
|
110313
110460
|
});
|
|
110314
|
-
const decide$
|
|
110461
|
+
const decide$2 = (command) => {
|
|
110315
110462
|
const index = indexOf(command.catalogs);
|
|
110316
110463
|
return map$12(flatMap$8(excludedRefusalOf(index, command), () => optInRefusalOf(index, command)), () => MutatorSelectionDecoded.make({
|
|
110317
110464
|
excludedMutations: [...command.excludedMutations],
|
|
@@ -110322,7 +110469,7 @@ const decodeMutatorSelection = Workflow_exports.make({
|
|
|
110322
110469
|
command: DecodeMutatorSelectionCommand,
|
|
110323
110470
|
decision: MutatorSelectionDecoded,
|
|
110324
110471
|
error: MutatorSelectionRefused,
|
|
110325
|
-
decide: decide$
|
|
110472
|
+
decide: decide$2
|
|
110326
110473
|
});
|
|
110327
110474
|
//#endregion
|
|
110328
110475
|
//#region src/framework-claimant.service.ts
|
|
@@ -110857,12 +111004,12 @@ var KeepTempDirCommand = class extends TaggedClass()("KeepTempDirCommand", {
|
|
|
110857
111004
|
static [Workflow_exports.InstrumentationBrand] = {};
|
|
110858
111005
|
};
|
|
110859
111006
|
const keptIff = (kept) => value(kept).pipe(when(true, () => TempDirKept.make({})), when(false, () => TempDirRemoved.make({})), exhaustive);
|
|
110860
|
-
const decide = (command) => value(command.cleanTempDir).pipe(when(false, () => TempDirKept.make({})), when(true, () => keptIff(command.failed)), when("always", () => TempDirRemoved.make({})), exhaustive, succeed$10);
|
|
111007
|
+
const decide$1 = (command) => value(command.cleanTempDir).pipe(when(false, () => TempDirKept.make({})), when(true, () => keptIff(command.failed)), when("always", () => TempDirRemoved.make({})), exhaustive, succeed$10);
|
|
110861
111008
|
const keepTempDir = Workflow_exports.make({
|
|
110862
111009
|
command: KeepTempDirCommand,
|
|
110863
111010
|
decision: Union([TempDirKept, TempDirRemoved]),
|
|
110864
111011
|
error: Never,
|
|
110865
|
-
decide
|
|
111012
|
+
decide: decide$1
|
|
110866
111013
|
});
|
|
110867
111014
|
//#endregion
|
|
110868
111015
|
//#region src/Sandbox.service.ts
|
|
@@ -111324,7 +111471,7 @@ const applyPrepare = fn(SpanTaxonomy_exports.Spans.prepareApply.name)(function*
|
|
|
111324
111471
|
})));
|
|
111325
111472
|
const admission = admitNonEmptyProject(NonEmptyProjectCommand.make({ fileCount: pipe(raw.project.files, size$3) }));
|
|
111326
111473
|
const emptyAdmission = filter$7(getSuccess(admission), is$2(ProjectEmpty));
|
|
111327
|
-
const emptyProjectGuard = getOrElse$1(map$13(emptyAdmission, () => fail$
|
|
111474
|
+
const emptyProjectGuard = getOrElse$1(map$13(emptyAdmission, () => fail$9(StageError.make({
|
|
111328
111475
|
stage: "prepare",
|
|
111329
111476
|
reason: "No input files found.",
|
|
111330
111477
|
cause: PrepareError.make({
|
|
@@ -111370,7 +111517,7 @@ const prepareCell = Sandwich_exports.named(SpanTaxonomy_exports.Spans.prepare.na
|
|
|
111370
111517
|
});
|
|
111371
111518
|
//#endregion
|
|
111372
111519
|
//#region src/run/run-stages.cell.ts
|
|
111373
|
-
const configReadReasonOf = (cause) =>
|
|
111520
|
+
const configReadReasonOf = (cause) => cause.message;
|
|
111374
111521
|
const mutationTestCell = Cell_exports.andThen(Cell_exports.andThen(Cell_exports.andThen(Cell_exports.andThen(Cell_exports.mapError(loadConfigCell, (cause) => StageError.make({
|
|
111375
111522
|
stage: "prepare",
|
|
111376
111523
|
reason: configReadReasonOf(cause),
|
|
@@ -112541,7 +112688,7 @@ const selectShard = Workflow_exports.make({
|
|
|
112541
112688
|
decision: SelectedShard,
|
|
112542
112689
|
error: ShardUnknown,
|
|
112543
112690
|
decide: (command) => match$8(fromUndefinedOr(command.plan.shards.find((candidate) => labelOf(candidate) === command.shard)), {
|
|
112544
|
-
onNone: () => fail$
|
|
112691
|
+
onNone: () => fail$9(ShardUnknown.make({
|
|
112545
112692
|
shard: command.shard,
|
|
112546
112693
|
reason: `unknown shard ${command.shard}; plan has ${command.plan.shards.map(labelOf).join(", ")}`
|
|
112547
112694
|
})),
|
|
@@ -112722,7 +112869,7 @@ const mergeShardReports = Workflow_exports.make({
|
|
|
112722
112869
|
command: MergeShardReportsCommand,
|
|
112723
112870
|
decision: MergedShardReports,
|
|
112724
112871
|
error: Union([ShardReportGap, ShardReportOverlap]),
|
|
112725
|
-
decide: (command) => value(completenessOf(command)).pipe(tag("ShardReportOverlap", (overlap) => fail$
|
|
112872
|
+
decide: (command) => value(completenessOf(command)).pipe(tag("ShardReportOverlap", (overlap) => fail$9(overlap)), tag("ShardReportGap", (gap) => fail$9(gap)), tag("ShardReportsComplete", () => succeed$10(MergedShardReports.make({ projects: mergedProjectsOf(command) }))), exhaustive)
|
|
112726
112873
|
});
|
|
112727
112874
|
//#endregion
|
|
112728
112875
|
//#region src/shard/shard-merge.schema.ts
|
|
@@ -112750,6 +112897,19 @@ const rebuiltReportOf = (text) => flatMap$9(fromUndefinedOr(text), (present) =>
|
|
|
112750
112897
|
onSuccess: (decision) => map$13(liftPredicate(decision, is$2(ReportFromStreamRebuilt)), (rebuilt) => rebuilt.report)
|
|
112751
112898
|
}));
|
|
112752
112899
|
const resultOfReport = (text) => reportFromStream(ReportFromStreamCommand.make({ text }));
|
|
112900
|
+
const decodeVerdictLine = decodeOption(fromJsonString(RunEvent_exports.VerdictReached));
|
|
112901
|
+
const budgetOfStream = (text) => map$13(last$1(match$8(fromUndefinedOr(text), {
|
|
112902
|
+
onNone: () => [],
|
|
112903
|
+
onSome: (present) => present.split("\n").flatMap((line) => toArray(decodeVerdictLine(line.trim())))
|
|
112904
|
+
})), (verdict) => verdict.budget);
|
|
112905
|
+
const shardBudgetOf = (budgets) => map$13(all$4(budgets), (present) => ({
|
|
112906
|
+
predictedSeconds: reduce$2(present, 0, (total, budget) => total + budget.predictedSeconds),
|
|
112907
|
+
actualSeconds: reduce$2(present, 0, (total, budget) => total + budget.actualSeconds)
|
|
112908
|
+
}));
|
|
112909
|
+
const mergedBudgetOf = (plan, shardBudgets) => map$13(all$4(shardBudgets), (present) => ({
|
|
112910
|
+
predictedSeconds: reduce$2(plan.shards, 0, (slowest, shard) => Math.max(slowest, shard.predictedSeconds)),
|
|
112911
|
+
actualSeconds: reduce$2(present, 0, (slowest, budget) => Math.max(slowest, budget.actualSeconds))
|
|
112912
|
+
}));
|
|
112753
112913
|
const incrementalTextsOf = (dir) => gen(function* () {
|
|
112754
112914
|
const candidates = [...yield* (yield* FileSystem).readDirectory(dir).pipe(orElseSucceed(() => []))].filter((name) => INCREMENTAL_PART_NAME.test(name)).sort();
|
|
112755
112915
|
return (yield* forEach$1(candidates, (name) => readText(`${dir}/${name}`), { concurrency: 1 })).filter((text) => text !== void 0);
|
|
@@ -112774,11 +112934,15 @@ const mergeFiles = (reports) => reduce$2(reports.flatMap(({ project, report }) =
|
|
|
112774
112934
|
const headReportOf = (reports) => head(reports);
|
|
112775
112935
|
const schemaVersionOf = (reports) => getOrElse$1(map$13(headReportOf(reports), (first) => first.report.schemaVersion), () => DEFAULT_SCHEMA_VERSION);
|
|
112776
112936
|
const thresholdsOf = (reports) => getOrElse$1(map$13(headReportOf(reports), (first) => first.report.thresholds), () => DEFAULT_THRESHOLDS);
|
|
112777
|
-
const mergedReportOf = (reports) => ({
|
|
112937
|
+
const mergedReportOf = (reports, budget) => ({
|
|
112778
112938
|
files: mergeFiles(reports),
|
|
112779
112939
|
schemaVersion: schemaVersionOf(reports),
|
|
112780
112940
|
thresholds: thresholdsOf(reports),
|
|
112781
|
-
config: {}
|
|
112941
|
+
config: {},
|
|
112942
|
+
...match$8(budget, {
|
|
112943
|
+
onNone: () => ({}),
|
|
112944
|
+
onSome: (present) => ({ budget: present })
|
|
112945
|
+
})
|
|
112782
112946
|
});
|
|
112783
112947
|
const mutantsOfReport = (report) => Object.values(report.files).flatMap((file) => file.mutants);
|
|
112784
112948
|
const verdictsOf = (report) => mutantsOfReport(report).map((mutant) => ({
|
|
@@ -112799,7 +112963,8 @@ const reportedOf = (shard, project, report) => match$8(report, {
|
|
|
112799
112963
|
});
|
|
112800
112964
|
const collectProject = (input, path, dir, shard, project) => gen(function* () {
|
|
112801
112965
|
const projectDir = path.join(path.resolve(input.basePath, dir), project.project);
|
|
112802
|
-
const
|
|
112966
|
+
const stream = yield* readText(path.join(projectDir, STREAM_FILE$1));
|
|
112967
|
+
const report = rebuiltReportOf(stream);
|
|
112803
112968
|
const incrementalTexts = yield* incrementalTextsOf(projectDir);
|
|
112804
112969
|
return {
|
|
112805
112970
|
reported: reportedOf(shard, project.project, report),
|
|
@@ -112810,13 +112975,15 @@ const collectProject = (input, path, dir, shard, project) => gen(function* () {
|
|
|
112810
112975
|
incremental: {
|
|
112811
112976
|
project: project.project,
|
|
112812
112977
|
texts: incrementalTexts
|
|
112813
|
-
}
|
|
112978
|
+
},
|
|
112979
|
+
budget: budgetOfStream(stream)
|
|
112814
112980
|
};
|
|
112815
112981
|
});
|
|
112816
112982
|
const collectShardReports = (input, path, dir, shard) => forEach$1(shard.projects, (project) => collectProject(input, path, dir, shard.index, project), { concurrency: 1 }).pipe(map$7((parts) => ({
|
|
112817
112983
|
reports: parts.map((part) => part.reported),
|
|
112818
112984
|
projectReports: getSomes(parts.map((part) => part.projectReport)),
|
|
112819
|
-
incrementals: parts.map((part) => part.incremental)
|
|
112985
|
+
incrementals: parts.map((part) => part.incremental),
|
|
112986
|
+
shardBudgets: [shardBudgetOf(parts.map((part) => part.budget))]
|
|
112820
112987
|
})));
|
|
112821
112988
|
const collectProjectReports = (input, path) => forEach$1(input.shardDirs.map((dir, index) => ({
|
|
112822
112989
|
dir,
|
|
@@ -112827,7 +112994,8 @@ const collectProjectReports = (input, path) => forEach$1(input.shardDirs.map((di
|
|
|
112827
112994
|
}), { concurrency: 1 }).pipe(map$7((parts) => ({
|
|
112828
112995
|
reports: parts.flatMap((part) => part.reports),
|
|
112829
112996
|
projectReports: parts.flatMap((part) => part.projectReports),
|
|
112830
|
-
incrementals: parts.flatMap((part) => part.incrementals)
|
|
112997
|
+
incrementals: parts.flatMap((part) => part.incrementals),
|
|
112998
|
+
shardBudgets: parts.flatMap((part) => part.shardBudgets)
|
|
112831
112999
|
})));
|
|
112832
113000
|
const shardsOf = (input) => input.plan.shards.map((shard) => ({
|
|
112833
113001
|
index: shard.index,
|
|
@@ -112858,7 +113026,7 @@ const mergeShards = (input) => gen(function* () {
|
|
|
112858
113026
|
})));
|
|
112859
113027
|
const outDir = outputDirOf(input, path);
|
|
112860
113028
|
yield* fs.makeDirectory(outDir, { recursive: true });
|
|
112861
|
-
const json = yield* orDie(encodeEffect(fromJsonString(Unknown, { space: 2 }))(mergedReportOf(collected.projectReports)));
|
|
113029
|
+
const json = yield* orDie(encodeEffect(fromJsonString(Unknown, { space: 2 }))(mergedReportOf(collected.projectReports, mergedBudgetOf(input.plan, collected.shardBudgets))));
|
|
112862
113030
|
yield* writeFileAtomic({
|
|
112863
113031
|
fs,
|
|
112864
113032
|
path
|
|
@@ -112898,15 +113066,50 @@ const loadShardPlan = dual(2, (basePath, file) => gen(function* () {
|
|
|
112898
113066
|
};
|
|
112899
113067
|
}));
|
|
112900
113068
|
//#endregion
|
|
113069
|
+
//#region src/shard/settle-shard-child.workflow.ts
|
|
113070
|
+
const SettleShardChildTypeId = Symbol.for("@systemfsoftware/stryker-js/SettleShardChild");
|
|
113071
|
+
const COMPLETED_CODE = 0;
|
|
113072
|
+
const verdictFailCode = getOrUndefined$1(decodeOption(Plugin_exports.ExitCodeFromClass)("VerdictFail"));
|
|
113073
|
+
var SettleShardChildCommand = class extends TaggedClass()("SettleShardChildCommand", { exitCode: Int$4 }) {
|
|
113074
|
+
static [Workflow_exports.InstrumentationBrand] = {};
|
|
113075
|
+
};
|
|
113076
|
+
var ShardChildCompleted = class extends TaggedClass()("ShardChildCompleted", {}) {
|
|
113077
|
+
[SettleShardChildTypeId] = SettleShardChildTypeId;
|
|
113078
|
+
};
|
|
113079
|
+
var ShardChildVerdictFailed = class extends TaggedClass()("ShardChildVerdictFailed", {}) {
|
|
113080
|
+
[SettleShardChildTypeId] = SettleShardChildTypeId;
|
|
113081
|
+
};
|
|
113082
|
+
var ShardChildAborted = class extends TaggedClass()("ShardChildAborted", { exitCode: Int$4 }) {
|
|
113083
|
+
[SettleShardChildTypeId] = SettleShardChildTypeId;
|
|
113084
|
+
};
|
|
113085
|
+
const SettleShardChildDecision = Union([
|
|
113086
|
+
ShardChildCompleted,
|
|
113087
|
+
ShardChildVerdictFailed,
|
|
113088
|
+
ShardChildAborted
|
|
113089
|
+
]);
|
|
113090
|
+
const decide = (command) => match$1(command.exitCode === COMPLETED_CODE, {
|
|
113091
|
+
onTrue: () => succeed$10(ShardChildCompleted.make({})),
|
|
113092
|
+
onFalse: () => match$1(command.exitCode === verdictFailCode, {
|
|
113093
|
+
onTrue: () => succeed$10(ShardChildVerdictFailed.make({})),
|
|
113094
|
+
onFalse: () => succeed$10(ShardChildAborted.make({ exitCode: command.exitCode }))
|
|
113095
|
+
})
|
|
113096
|
+
});
|
|
113097
|
+
const settleShardChild = Workflow_exports.make({
|
|
113098
|
+
command: SettleShardChildCommand,
|
|
113099
|
+
decision: SettleShardChildDecision,
|
|
113100
|
+
error: Never,
|
|
113101
|
+
decide
|
|
113102
|
+
});
|
|
113103
|
+
//#endregion
|
|
112901
113104
|
//#region src/shard/shard-run.schema.ts
|
|
112902
113105
|
var ShardChildFailed = class extends TaggedError()("ShardChildFailed", {
|
|
112903
113106
|
project: String$7,
|
|
112904
113107
|
exitCode: Int$4,
|
|
112905
|
-
|
|
113108
|
+
childOutput: String$7
|
|
112906
113109
|
}) {
|
|
112907
113110
|
exitClass = "RuntimeError";
|
|
112908
113111
|
get message() {
|
|
112909
|
-
return `shard child for ${this.project} failed with exit code ${this.exitCode}: ${this.
|
|
113112
|
+
return `shard child for ${this.project} failed with exit code ${this.exitCode}: ${this.childOutput}`;
|
|
112910
113113
|
}
|
|
112911
113114
|
};
|
|
112912
113115
|
//#endregion
|
|
@@ -112914,7 +113117,6 @@ var ShardChildFailed = class extends TaggedError()("ShardChildFailed", {
|
|
|
112914
113117
|
const SHARD_OUT_MARKER = "reports/shards";
|
|
112915
113118
|
const STREAM_FILE = "mutation-stream.jsonl";
|
|
112916
113119
|
const INCREMENTAL_FILE = "stryker-incremental.json";
|
|
112917
|
-
const STDERR_LIMIT = 4096;
|
|
112918
113120
|
const childArgsOf = (input, project, projectOut, path) => [
|
|
112919
113121
|
globalThis.process.argv[1] ?? "",
|
|
112920
113122
|
"run",
|
|
@@ -112938,6 +113140,13 @@ const seedIncremental = (path, fs, projectDir, projectOut) => gen(function* () {
|
|
|
112938
113140
|
const hasTarget = yield* fs.exists(target);
|
|
112939
113141
|
yield* when$2(fs.copyFile(cached, target), succeed$5(hasCached && !hasTarget));
|
|
112940
113142
|
});
|
|
113143
|
+
const settlementOf$1 = (exitCode) => getOrElse(settleShardChild(SettleShardChildCommand.make({ exitCode })), (neverError) => neverError);
|
|
113144
|
+
const subThresholdLine = (project) => `stryker shard: ${project} scored below thresholds.break over this shard's mutants; the merged report carries the project verdict`;
|
|
113145
|
+
const missingStreamFailure = (project, exitCode, streamFile) => ShardChildFailed.make({
|
|
113146
|
+
project,
|
|
113147
|
+
exitCode,
|
|
113148
|
+
childOutput: `the shard child completed without leaving its progress stream at ${streamFile}`
|
|
113149
|
+
});
|
|
112941
113150
|
const runShard = (input) => gen(function* () {
|
|
112942
113151
|
const selected = yield* fromResult(selectShard(SelectShardCommand.make({
|
|
112943
113152
|
plan: input.plan,
|
|
@@ -112950,6 +113159,7 @@ const runShard = (input) => gen(function* () {
|
|
|
112950
113159
|
yield* forEach$1(selected.projects, (project) => gen(function* () {
|
|
112951
113160
|
const projectDir = path.resolve(input.planDirectory, project.project);
|
|
112952
113161
|
const projectOut = path.join(outDir, project.project);
|
|
113162
|
+
const streamFile = path.join(projectOut, STREAM_FILE);
|
|
112953
113163
|
yield* fs.makeDirectory(projectOut, { recursive: true });
|
|
112954
113164
|
yield* seedIncremental(path, fs, projectDir, projectOut);
|
|
112955
113165
|
const handle = yield* spawner.spawn(make$14(globalThis.process.execPath, childArgsOf(input, project.project, projectOut, path), {
|
|
@@ -112961,15 +113171,17 @@ const runShard = (input) => gen(function* () {
|
|
|
112961
113171
|
}));
|
|
112962
113172
|
const stderr = yield* handle.stderr.pipe(decodeText$1, mkString);
|
|
112963
113173
|
const exitCode = Number(yield* handle.exitCode);
|
|
112964
|
-
yield* exitCode
|
|
113174
|
+
yield* value(settlementOf$1(exitCode)).pipe(tag("ShardChildCompleted", () => void_$1), tag("ShardChildVerdictFailed", () => logInfo(subThresholdLine(project.project))), tag("ShardChildAborted", () => fail$4(ShardChildFailed.make({
|
|
112965
113175
|
project: project.project,
|
|
112966
113176
|
exitCode,
|
|
112967
|
-
|
|
112968
|
-
}));
|
|
113177
|
+
childOutput: stderr.slice(-4096)
|
|
113178
|
+
}))), exhaustive);
|
|
113179
|
+
const streamPresent = yield* fs.exists(streamFile);
|
|
113180
|
+
yield* value(streamPresent).pipe(when(true, () => void_$1), when(false, () => fail$4(missingStreamFailure(project.project, exitCode, streamFile))), exhaustive);
|
|
112969
113181
|
}).pipe(catchTag("PlatformError", (cause) => fail$4(ShardChildFailed.make({
|
|
112970
113182
|
project: project.project,
|
|
112971
113183
|
exitCode: -1,
|
|
112972
|
-
|
|
113184
|
+
childOutput: cause.message
|
|
112973
113185
|
})))), {
|
|
112974
113186
|
concurrency: 1,
|
|
112975
113187
|
discard: true
|
|
@@ -113104,10 +113316,10 @@ const runBudgetGate = (gate, report, basePath) => forEach$1(toArray(fromUndefine
|
|
|
113104
113316
|
}), { discard: true });
|
|
113105
113317
|
const reportUnchecked = (unchecked) => logInfo(`stryker gate: ${unchecked.length} mutant(s) unchecked (in scope with no verdict)`);
|
|
113106
113318
|
const GATE_REMEDIATION_LINE = "accept the new survivors with `stryker gate --update-baseline`, or kill them before the next run";
|
|
113107
|
-
const
|
|
113319
|
+
const remediateGateRefusal = (failure) => match$1(is$2(BudgetExceeded)(failure) || is$2(BudgetInputUnusable)(failure), {
|
|
113108
113320
|
onTrue: () => void_$1,
|
|
113109
113321
|
onFalse: () => logInfo(GATE_REMEDIATION_LINE)
|
|
113110
|
-
})
|
|
113322
|
+
});
|
|
113111
113323
|
const gateReport = (gate, channel) => gen(function* () {
|
|
113112
113324
|
const path = yield* Path$1;
|
|
113113
113325
|
const basePath = channel.environment.basePath;
|
|
@@ -113204,7 +113416,7 @@ const runRequestCell = Sandwich_exports.named(SpanTaxonomy_exports.Spans.runRequ
|
|
|
113204
113416
|
});
|
|
113205
113417
|
}),
|
|
113206
113418
|
CliCompareRequested: (compare) => compareReports(compare),
|
|
113207
|
-
CliGateRequested: (gate, channel) => gateReport(gate, channel).pipe(tapError(
|
|
113419
|
+
CliGateRequested: (gate, channel) => gateReport(gate, channel).pipe(tapError(remediateGateRefusal)),
|
|
113208
113420
|
CliAnnotateRequested: (annotate, channel) => annotateReport(annotate, channel),
|
|
113209
113421
|
CliPlanRequested: (plan, channel) => planRequest({
|
|
113210
113422
|
request: plan,
|
|
@@ -113215,7 +113427,7 @@ const runRequestCell = Sandwich_exports.named(SpanTaxonomy_exports.Spans.runRequ
|
|
|
113215
113427
|
CliServeRequested: (serve, channel) => serveMutationServer(serveRequestOf(serve, channel.options)).pipe(scoped$3),
|
|
113216
113428
|
CliRunRequested: (_, channel) => runStage(channel),
|
|
113217
113429
|
CliSurvivorsRequested: (_, channel) => survivorsAdmissionCell.run(survivorsInputOf(channel)),
|
|
113218
|
-
CliRerunRequested: (rerun, channel) => mutantRerunAdmissionCell.run(rerunInputOf(channel, rerun.ids))
|
|
113430
|
+
CliRerunRequested: (rerun, channel) => mutantRerunAdmissionCell.run(rerunInputOf(channel, rerun.ids)),
|
|
113219
113431
|
CommandRejected: ({ issue }) => fail$4(StrykerError.make({ message: `the CLI read resolved a command the route schema rejects: ${issue}` }))
|
|
113220
113432
|
});
|
|
113221
113433
|
//#endregion
|
|
@@ -113696,6 +113908,13 @@ const servedInvocation = (argv) => exists$1(fromUndefinedOr(argv.find((argument)
|
|
|
113696
113908
|
const SPAN_ERROR_LIMIT = 1024;
|
|
113697
113909
|
const TRUNCATION_SUFFIX = "…[truncated]";
|
|
113698
113910
|
const boundedErrorText = (text) => text.length > SPAN_ERROR_LIMIT ? text.slice(0, SPAN_ERROR_LIMIT) + TRUNCATION_SUFFIX : text;
|
|
113911
|
+
const failureTextOf = (failure, captured) => {
|
|
113912
|
+
const envelope = errorEnvelopeFromOutcome({
|
|
113913
|
+
error: failure,
|
|
113914
|
+
captured
|
|
113915
|
+
});
|
|
113916
|
+
return value(envelope.remediation).pipe(when("", () => boundedErrorText(envelope.error)), when((remediation) => remediation.includes(envelope.error), (remediation) => boundedErrorText(remediation)), orElse$1((remediation) => `${boundedErrorText(envelope.error)} — ${remediation}`));
|
|
113917
|
+
};
|
|
113699
113918
|
const strykerProgram = gen(function* () {
|
|
113700
113919
|
const args = [...yield* (yield* Stdio).args];
|
|
113701
113920
|
const probeMode = gen(function* () {
|
|
@@ -113747,10 +113966,7 @@ const strykerProgram = gen(function* () {
|
|
|
113747
113966
|
const outcome = classifyRunOutcome(conclusionCommand);
|
|
113748
113967
|
const classified = getOrElse(outcome, (interrupted) => interrupted);
|
|
113749
113968
|
const machineConsoleService = yield* MachineConsole;
|
|
113750
|
-
const errorText = getOrElse$1(map$13(liftPredicate(is$2(FailedRunOutcomeSchema))(classified), (failure) =>
|
|
113751
|
-
error: failure,
|
|
113752
|
-
captured: machineConsoleService.read()
|
|
113753
|
-
}).error)), () => "");
|
|
113969
|
+
const errorText = getOrElse$1(map$13(liftPredicate(is$2(FailedRunOutcomeSchema))(classified), (failure) => failureTextOf(failure, machineConsoleService.read())), () => "");
|
|
113754
113970
|
yield* annotateCurrentSpan({
|
|
113755
113971
|
"stryker.run.outcome": classified._tag,
|
|
113756
113972
|
"stryker.run.exit_code": runExitCodeFromOutcome(classified).code,
|