@systemfsoftware/stryker-js 10.1.0 → 10.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/{Run.schema-B0ERLxQj.mjs → Run.schema-B_KpPeBA.mjs} +98 -72
- package/dist/{Run.schema-RWUb38ZE.d.mts → Run.schema-BsSOfQnD.d.mts} +1 -1
- package/dist/config.d.mts +1 -1
- package/dist/config.mjs +1 -1
- package/dist/events.d.mts +1 -1
- package/dist/events.mjs +1 -1
- package/dist/{index-BopuZXrl.d.mts → index-CogNSD0V.d.mts} +6 -5
- package/dist/index.d.mts +15 -14
- package/dist/index.mjs +2 -2
- package/dist/main.mjs +541 -298
- package/dist/merge-config-CHZWyvVQ.mjs +19 -0
- package/dist/{mutation-test.cell-CobzlfL-.d.mts → mutation-test.cell-DS86DvC9.d.mts} +32 -32
- package/dist/promises.d.mts +2 -2
- package/dist/promises.mjs +1 -1
- package/dist/{src-Baq6uz-6.mjs → src-BkTsNvl0.mjs} +199 -209
- package/package.json +7 -7
- package/dist/merge-config-BrrNQWje.mjs +0 -16
package/dist/main.mjs
CHANGED
|
@@ -1452,7 +1452,7 @@ const random = (self) => {
|
|
|
1452
1452
|
* @category hashing
|
|
1453
1453
|
* @since 2.0.0
|
|
1454
1454
|
*/
|
|
1455
|
-
const combine$
|
|
1455
|
+
const combine$2 = /*#__PURE__*/ dual(2, (self, b) => self * 53 ^ b);
|
|
1456
1456
|
/**
|
|
1457
1457
|
* Applies bit manipulation techniques to optimize a hash value.
|
|
1458
1458
|
*
|
|
@@ -1613,7 +1613,7 @@ const string$2 = (str) => {
|
|
|
1613
1613
|
*/
|
|
1614
1614
|
const structureKeys = (o, keys) => {
|
|
1615
1615
|
let h = 12289;
|
|
1616
|
-
for (const key of keys) h ^= combine$
|
|
1616
|
+
for (const key of keys) h ^= combine$2(hash(key), hash(o[key]));
|
|
1617
1617
|
return optimize(h);
|
|
1618
1618
|
};
|
|
1619
1619
|
/**
|
|
@@ -1691,7 +1691,7 @@ const iterableWith = (seed, f) => (iter) => {
|
|
|
1691
1691
|
* @since 2.0.0
|
|
1692
1692
|
*/
|
|
1693
1693
|
const array = /*#__PURE__*/ iterableWith(6151, hash);
|
|
1694
|
-
const hashMap = /*#__PURE__*/ iterableWith(/*#__PURE__*/ string$2("Map"), ([k, v]) => combine$
|
|
1694
|
+
const hashMap = /*#__PURE__*/ iterableWith(/*#__PURE__*/ string$2("Map"), ([k, v]) => combine$2(hash(k), hash(v)));
|
|
1695
1695
|
const hashSet = /*#__PURE__*/ iterableWith(/*#__PURE__*/ string$2("Set"), hash);
|
|
1696
1696
|
const randomHashCache = /*#__PURE__*/ new WeakMap();
|
|
1697
1697
|
const hashCache = /*#__PURE__*/ new WeakMap();
|
|
@@ -2732,7 +2732,7 @@ var Fail = class extends ReasonBase {
|
|
|
2732
2732
|
return isFailReason$1(that) && equals$2(this.error, that.error) && equals$2(this.annotations, that.annotations);
|
|
2733
2733
|
}
|
|
2734
2734
|
[symbol$2]() {
|
|
2735
|
-
return combine$
|
|
2735
|
+
return combine$2(string$2(this._tag))(combine$2(hash(this.error))(hash(this.annotations)));
|
|
2736
2736
|
}
|
|
2737
2737
|
};
|
|
2738
2738
|
/** @internal */
|
|
@@ -2760,7 +2760,7 @@ var Die = class extends ReasonBase {
|
|
|
2760
2760
|
return isDieReason$1(that) && equals$2(this.defect, that.defect) && equals$2(this.annotations, that.annotations);
|
|
2761
2761
|
}
|
|
2762
2762
|
[symbol$2]() {
|
|
2763
|
-
return combine$
|
|
2763
|
+
return combine$2(string$2(this._tag))(combine$2(hash(this.defect))(hash(this.annotations)));
|
|
2764
2764
|
}
|
|
2765
2765
|
};
|
|
2766
2766
|
/** @internal */
|
|
@@ -2822,7 +2822,7 @@ const makeExit = (options) => {
|
|
|
2822
2822
|
return isExit$1(that) && that._tag === this._tag && equals$2(this[args], that[args]);
|
|
2823
2823
|
},
|
|
2824
2824
|
[symbol$2]() {
|
|
2825
|
-
return combine$
|
|
2825
|
+
return combine$2(string$2(options.op), hash(this[args]));
|
|
2826
2826
|
}
|
|
2827
2827
|
};
|
|
2828
2828
|
const ExitPrimitive = function(value) {
|
|
@@ -2969,7 +2969,7 @@ const SomeProto = /*#__PURE__*/ Object.defineProperty(/*#__PURE__*/ Object.assig
|
|
|
2969
2969
|
return isOption$1(that) && isSome$1(that) && equals$2(this.value, that.value);
|
|
2970
2970
|
},
|
|
2971
2971
|
[symbol$2]() {
|
|
2972
|
-
return combine$
|
|
2972
|
+
return combine$2(hash(this._tag))(hash(this.value));
|
|
2973
2973
|
},
|
|
2974
2974
|
toString() {
|
|
2975
2975
|
return `some(${format$2(this.value)})`;
|
|
@@ -3041,7 +3041,7 @@ const SuccessProto = /*#__PURE__*/ Object.assign(/*#__PURE__*/ Object.create(Com
|
|
|
3041
3041
|
return isResult$1(that) && isSuccess$2(that) && equals$2(this.success, that.success);
|
|
3042
3042
|
},
|
|
3043
3043
|
[symbol$2]() {
|
|
3044
|
-
return combine$
|
|
3044
|
+
return combine$2(hash(this._tag))(hash(this.success));
|
|
3045
3045
|
},
|
|
3046
3046
|
toString() {
|
|
3047
3047
|
return `success(${format$2(this.success)})`;
|
|
@@ -3061,7 +3061,7 @@ const FailureProto = /*#__PURE__*/ Object.assign(/*#__PURE__*/ Object.create(Com
|
|
|
3061
3061
|
return isResult$1(that) && isFailure$2(that) && equals$2(this.failure, that.failure);
|
|
3062
3062
|
},
|
|
3063
3063
|
[symbol$2]() {
|
|
3064
|
-
return combine$
|
|
3064
|
+
return combine$2(hash(this._tag))(hash(this.failure));
|
|
3065
3065
|
},
|
|
3066
3066
|
toString() {
|
|
3067
3067
|
return `failure(${format$2(this.failure)})`;
|
|
@@ -5519,22 +5519,6 @@ const findFirst$1 = /*#__PURE__*/ dual(2, (self, f) => {
|
|
|
5519
5519
|
*/
|
|
5520
5520
|
const empty$9 = () => ({});
|
|
5521
5521
|
/**
|
|
5522
|
-
* Determines if a mutable record is empty.
|
|
5523
|
-
*
|
|
5524
|
-
* **Example** (Checking for an empty record)
|
|
5525
|
-
*
|
|
5526
|
-
* ```ts import.meta.vitest
|
|
5527
|
-
* import { Record } from "effect"
|
|
5528
|
-
*
|
|
5529
|
-
* Record.isEmptyRecord({}) // => true
|
|
5530
|
-
* Record.isEmptyRecord({ a: 3 }) // => false
|
|
5531
|
-
* ```
|
|
5532
|
-
*
|
|
5533
|
-
* @category guards
|
|
5534
|
-
* @since 2.0.0
|
|
5535
|
-
*/
|
|
5536
|
-
const isEmptyRecord = (self) => Object.keys(self).length === 0;
|
|
5537
|
-
/**
|
|
5538
5522
|
* Checks whether a given `key` exists in a record.
|
|
5539
5523
|
*
|
|
5540
5524
|
* **Example** (Checking key membership)
|
|
@@ -5653,30 +5637,6 @@ const isSubrecordBy = (equivalence) => dual(2, (self, that) => {
|
|
|
5653
5637
|
return true;
|
|
5654
5638
|
});
|
|
5655
5639
|
/**
|
|
5656
|
-
* Merges two records, preserving entries that exist in either of the records.
|
|
5657
|
-
* For keys that exist in both records, the provided combine function is used to merge the values.
|
|
5658
|
-
*
|
|
5659
|
-
* **Example** (Merging records with union)
|
|
5660
|
-
*
|
|
5661
|
-
* ```ts import.meta.vitest
|
|
5662
|
-
* import { Record } from "effect"
|
|
5663
|
-
*
|
|
5664
|
-
* Record.union({ a: 1, b: 2 }, { b: 3, c: 4 }, (a, b) => a + b) // => { a: 1, b: 5, c: 4 }
|
|
5665
|
-
* ```
|
|
5666
|
-
*
|
|
5667
|
-
* @category combining
|
|
5668
|
-
* @since 2.0.0
|
|
5669
|
-
*/
|
|
5670
|
-
const union$1 = /*#__PURE__*/ dual(3, (self, that, combine) => {
|
|
5671
|
-
if (isEmptyRecord(self)) return { ...that };
|
|
5672
|
-
if (isEmptyRecord(that)) return { ...self };
|
|
5673
|
-
const out = empty$9();
|
|
5674
|
-
for (const key of keys$3(self)) if (has$3(that, key)) assignProperty$1(out, key, combine(self[key], that[key]));
|
|
5675
|
-
else assignProperty$1(out, key, self[key]);
|
|
5676
|
-
for (const key of keys$3(that)) if (!has$3(out, key)) assignProperty$1(out, key, that[key]);
|
|
5677
|
-
return out;
|
|
5678
|
-
});
|
|
5679
|
-
/**
|
|
5680
5640
|
* Create an `Equivalence` for records using the provided `Equivalence` for values.
|
|
5681
5641
|
* Two records are considered equivalent if they have the same keys and their corresponding values are equivalent.
|
|
5682
5642
|
*
|
|
@@ -8018,7 +7978,7 @@ var Interrupt = class extends ReasonBase {
|
|
|
8018
7978
|
return isInterruptReason(that) && this.fiberId === that.fiberId && this.annotations === that.annotations;
|
|
8019
7979
|
}
|
|
8020
7980
|
[symbol$2]() {
|
|
8021
|
-
return combine$
|
|
7981
|
+
return combine$2(string$2(`${this._tag}:${this.fiberId}`))(random(this.annotations));
|
|
8022
7982
|
}
|
|
8023
7983
|
};
|
|
8024
7984
|
/** @internal */
|
|
@@ -24558,7 +24518,7 @@ const layer$12 = /* @__PURE__ */ succeed$6(Stdio, /*#__PURE__*/ make$29({
|
|
|
24558
24518
|
}));
|
|
24559
24519
|
//#endregion
|
|
24560
24520
|
//#region package.json
|
|
24561
|
-
var version = "10.1.
|
|
24521
|
+
var version = "10.1.1";
|
|
24562
24522
|
var engines = { "node": ">=22.18.0" };
|
|
24563
24523
|
//#endregion
|
|
24564
24524
|
//#region ../../node_modules/.pnpm/effect@4.0.0-rc.116/node_modules/effect/dist/Logger.js
|
|
@@ -25715,7 +25675,7 @@ const BigDecimalProto = {
|
|
|
25715
25675
|
[TypeId$25]: TypeId$25,
|
|
25716
25676
|
[symbol$2]() {
|
|
25717
25677
|
const normalized = normalize(this);
|
|
25718
|
-
return combine$
|
|
25678
|
+
return combine$2(hash(normalized.value), number$2(normalized.scale));
|
|
25719
25679
|
},
|
|
25720
25680
|
[symbol$1](that) {
|
|
25721
25681
|
return isBigDecimal(that) && equals(this, that);
|
|
@@ -31626,6 +31586,150 @@ function toStandardSchemaV1$1(self, options) {
|
|
|
31626
31586
|
} });
|
|
31627
31587
|
}
|
|
31628
31588
|
//#endregion
|
|
31589
|
+
//#region ../../node_modules/.pnpm/effect@4.0.0-rc.116/node_modules/effect/dist/internal/schema/toEquivalence.js
|
|
31590
|
+
/** @internal */
|
|
31591
|
+
const toEquivalence$1 = /*#__PURE__*/ memoize((ast) => {
|
|
31592
|
+
return recur(ast, []);
|
|
31593
|
+
});
|
|
31594
|
+
function recur(ast, path) {
|
|
31595
|
+
const annotation = resolve$1(ast)?.["toEquivalence"];
|
|
31596
|
+
if (annotation) return annotation(isDeclaration(ast) ? ast.typeParameters.map((tp) => recur(tp, path)) : []);
|
|
31597
|
+
switch (ast._tag) {
|
|
31598
|
+
case "Never": return strictEqual();
|
|
31599
|
+
case "Declaration": return declarationEquivalence(ast, path);
|
|
31600
|
+
case "Null":
|
|
31601
|
+
case "Undefined":
|
|
31602
|
+
case "Void":
|
|
31603
|
+
case "Unknown":
|
|
31604
|
+
case "Any":
|
|
31605
|
+
case "String":
|
|
31606
|
+
case "Number":
|
|
31607
|
+
case "Boolean":
|
|
31608
|
+
case "BigInt":
|
|
31609
|
+
case "Symbol":
|
|
31610
|
+
case "Literal":
|
|
31611
|
+
case "UniqueSymbol":
|
|
31612
|
+
case "ObjectKeyword":
|
|
31613
|
+
case "Enum":
|
|
31614
|
+
case "TemplateLiteral": return equals$2;
|
|
31615
|
+
case "Arrays": {
|
|
31616
|
+
const elements = ast.elements.map((e, i) => recur(e, [...path, i]));
|
|
31617
|
+
const len = ast.elements.length;
|
|
31618
|
+
const rest = ast.rest.map((r, i) => recur(r, [...path, len + i]));
|
|
31619
|
+
return make$44((a, b) => {
|
|
31620
|
+
if (!Array.isArray(a) || !Array.isArray(b)) return false;
|
|
31621
|
+
const len = a.length;
|
|
31622
|
+
if (len !== b.length) return false;
|
|
31623
|
+
let i = 0;
|
|
31624
|
+
for (; i < Math.min(len, ast.elements.length); i++) if (!elements[i](a[i], b[i])) return false;
|
|
31625
|
+
if (rest.length > 0) {
|
|
31626
|
+
const [head, ...tail] = rest;
|
|
31627
|
+
for (; i < len - tail.length; i++) if (!head(a[i], b[i])) return false;
|
|
31628
|
+
for (let j = 0; j < tail.length; j++) if (!tail[j](a[i + j], b[i + j])) return false;
|
|
31629
|
+
}
|
|
31630
|
+
return true;
|
|
31631
|
+
});
|
|
31632
|
+
}
|
|
31633
|
+
case "Objects": {
|
|
31634
|
+
if (ast.propertySignatures.length === 0 && ast.indexSignatures.length === 0) return equals$2;
|
|
31635
|
+
const propertySignatures = ast.propertySignatures.map((ps) => recur(ps.type, [...path, ps.name]));
|
|
31636
|
+
const indexSignatures = ast.indexSignatures.map((is) => recur(is.type, path));
|
|
31637
|
+
return make$44((a, b) => {
|
|
31638
|
+
if (!isObject(a) || !isObject(b)) return false;
|
|
31639
|
+
for (let i = 0; i < propertySignatures.length; i++) {
|
|
31640
|
+
const ps = ast.propertySignatures[i];
|
|
31641
|
+
const name = ps.name;
|
|
31642
|
+
const aHas = Object.hasOwn(a, name);
|
|
31643
|
+
const bHas = Object.hasOwn(b, name);
|
|
31644
|
+
if (isOptional(ps.type)) {
|
|
31645
|
+
if (aHas !== bHas) return false;
|
|
31646
|
+
}
|
|
31647
|
+
if (aHas && bHas && !propertySignatures[i](a[name], b[name])) return false;
|
|
31648
|
+
}
|
|
31649
|
+
for (let i = 0; i < indexSignatures.length; i++) {
|
|
31650
|
+
const is = ast.indexSignatures[i];
|
|
31651
|
+
const aKeys = getIndexSignatureKeys(a, is.parameter);
|
|
31652
|
+
const bKeys = getIndexSignatureKeys(b, is.parameter);
|
|
31653
|
+
if (aKeys.length !== bKeys.length) return false;
|
|
31654
|
+
for (let j = 0; j < aKeys.length; j++) {
|
|
31655
|
+
const key = aKeys[j];
|
|
31656
|
+
if (!Object.hasOwn(b, key) || !indexSignatures[i](a[key], b[key])) return false;
|
|
31657
|
+
}
|
|
31658
|
+
}
|
|
31659
|
+
return true;
|
|
31660
|
+
});
|
|
31661
|
+
}
|
|
31662
|
+
case "Union": {
|
|
31663
|
+
const types = toType(ast).types;
|
|
31664
|
+
const compiled = new Map(types.map((candidate, i) => [candidate, [_is(candidate), recur(ast.types[i], path)]]));
|
|
31665
|
+
return make$44((a, b) => {
|
|
31666
|
+
const candidates = getCandidates(a, types);
|
|
31667
|
+
for (let i = 0; i < candidates.length; i++) {
|
|
31668
|
+
const [is, equivalence] = compiled.get(candidates[i]);
|
|
31669
|
+
if (is(a) && is(b)) return equivalence(a, b);
|
|
31670
|
+
}
|
|
31671
|
+
return false;
|
|
31672
|
+
});
|
|
31673
|
+
}
|
|
31674
|
+
case "Suspend": {
|
|
31675
|
+
let equivalence;
|
|
31676
|
+
return make$44((a, b) => (equivalence ??= recur(ast.thunk(), path))(a, b));
|
|
31677
|
+
}
|
|
31678
|
+
}
|
|
31679
|
+
}
|
|
31680
|
+
function declarationEquivalence(ast, path) {
|
|
31681
|
+
const representation = ast.annotations?.representation;
|
|
31682
|
+
if (representation === void 0) return equals$2;
|
|
31683
|
+
switch (representation.id) {
|
|
31684
|
+
case "effect/schema/Option": {
|
|
31685
|
+
const [value] = declarationTypeParameters(ast, path);
|
|
31686
|
+
return (a, b) => a._tag === b._tag && (a._tag === "None" || value(a.value, b.value));
|
|
31687
|
+
}
|
|
31688
|
+
case "effect/schema/Result": {
|
|
31689
|
+
const [success, failure] = declarationTypeParameters(ast, path);
|
|
31690
|
+
return (a, b) => a._tag === b._tag && (a._tag === "Success" ? success(a.success, b.success) : failure(a.failure, b.failure));
|
|
31691
|
+
}
|
|
31692
|
+
case "effect/schema/CauseReason": {
|
|
31693
|
+
const [error, defect] = declarationTypeParameters(ast, path);
|
|
31694
|
+
return causeReasonEquivalence(error, defect);
|
|
31695
|
+
}
|
|
31696
|
+
case "effect/schema/Cause": {
|
|
31697
|
+
const [error, defect] = declarationTypeParameters(ast, path);
|
|
31698
|
+
return causeEquivalence(error, defect);
|
|
31699
|
+
}
|
|
31700
|
+
case "effect/schema/Exit": {
|
|
31701
|
+
const [value, error, defect] = declarationTypeParameters(ast, path);
|
|
31702
|
+
const cause = causeEquivalence(error, defect);
|
|
31703
|
+
return (a, b) => a._tag === b._tag && (a._tag === "Success" ? value(a.value, b.value) : cause(a.cause, b.cause));
|
|
31704
|
+
}
|
|
31705
|
+
case "effect/schema/ReadonlyMap": {
|
|
31706
|
+
const [key, value] = declarationTypeParameters(ast, path);
|
|
31707
|
+
return makeCompareMap(key, value);
|
|
31708
|
+
}
|
|
31709
|
+
case "effect/schema/ReadonlySet": return makeCompareSet(declarationTypeParameters(ast, path)[0]);
|
|
31710
|
+
case "effect/schema/RegExp": return (a, b) => a.source === b.source && a.flags === b.flags;
|
|
31711
|
+
case "effect/schema/URL": return (a, b) => a.toString() === b.toString();
|
|
31712
|
+
default: return equals$2;
|
|
31713
|
+
}
|
|
31714
|
+
}
|
|
31715
|
+
function declarationTypeParameters(ast, path) {
|
|
31716
|
+
return ast.typeParameters.map((parameter) => recur(parameter, path));
|
|
31717
|
+
}
|
|
31718
|
+
function causeReasonEquivalence(error, defect) {
|
|
31719
|
+
return (a, b) => {
|
|
31720
|
+
if (a._tag !== b._tag) return false;
|
|
31721
|
+
switch (a._tag) {
|
|
31722
|
+
case "Fail": return error(a.error, b.error);
|
|
31723
|
+
case "Die": return defect(a.defect, b.defect);
|
|
31724
|
+
case "Interrupt": return a.fiberId === b.fiberId;
|
|
31725
|
+
}
|
|
31726
|
+
};
|
|
31727
|
+
}
|
|
31728
|
+
function causeEquivalence(error, defect) {
|
|
31729
|
+
const reasons = Array_(causeReasonEquivalence(error, defect));
|
|
31730
|
+
return (a, b) => reasons(a.reasons, b.reasons);
|
|
31731
|
+
}
|
|
31732
|
+
//#endregion
|
|
31629
31733
|
//#region ../../node_modules/.pnpm/effect@4.0.0-rc.116/node_modules/effect/dist/Struct.js
|
|
31630
31734
|
/**
|
|
31631
31735
|
* Wraps a plain function as a {@link Lambda} value so it can be used with
|
|
@@ -34277,6 +34381,28 @@ const TaggedError = (identifier) => {
|
|
|
34277
34381
|
};
|
|
34278
34382
|
};
|
|
34279
34383
|
/**
|
|
34384
|
+
* Derives an `Equivalence` from a schema. Two values are considered equal when
|
|
34385
|
+
* every field (and nested field) compares equal according to the schema
|
|
34386
|
+
* structure.
|
|
34387
|
+
*
|
|
34388
|
+
* **Example** (Comparing structs)
|
|
34389
|
+
*
|
|
34390
|
+
* ```ts import.meta.vitest
|
|
34391
|
+
* import { Schema } from "effect"
|
|
34392
|
+
*
|
|
34393
|
+
* const eq = Schema.toEquivalence(Schema.Struct({ id: Schema.Number, name: Schema.String }))
|
|
34394
|
+
*
|
|
34395
|
+
* eq({ id: 1, name: "Alice" }, { id: 1, name: "Alice" }) // => true
|
|
34396
|
+
* eq({ id: 1, name: "Alice" }, { id: 2, name: "Alice" }) // => false
|
|
34397
|
+
* ```
|
|
34398
|
+
*
|
|
34399
|
+
* @category instances
|
|
34400
|
+
* @since 4.0.0
|
|
34401
|
+
*/
|
|
34402
|
+
function toEquivalence(schema) {
|
|
34403
|
+
return toEquivalence$1(schema.ast);
|
|
34404
|
+
}
|
|
34405
|
+
/**
|
|
34280
34406
|
* Returns a JSON Schema document using draft 2020-12.
|
|
34281
34407
|
*
|
|
34282
34408
|
* **When to use**
|
|
@@ -36500,7 +36626,7 @@ const ulidString = (timestampMillis, bytes) => {
|
|
|
36500
36626
|
//#region ../../node_modules/.pnpm/effect@4.0.0-rc.116/node_modules/effect/dist/internal/uuid.js
|
|
36501
36627
|
const hex = (byte) => byte.toString(16).padStart(2, "0");
|
|
36502
36628
|
/** @internal */
|
|
36503
|
-
const stringify
|
|
36629
|
+
const stringify = (bytes) => {
|
|
36504
36630
|
return [
|
|
36505
36631
|
bytes.subarray(0, 4),
|
|
36506
36632
|
bytes.subarray(4, 6),
|
|
@@ -36517,7 +36643,7 @@ function v4Bytes(bytes = randomBytes$2()) {
|
|
|
36517
36643
|
return bytes;
|
|
36518
36644
|
}
|
|
36519
36645
|
/** @internal */
|
|
36520
|
-
const v4String = (bytes) => stringify
|
|
36646
|
+
const v4String = (bytes) => stringify(bytes === void 0 ? v4Bytes() : v4Bytes(bytes));
|
|
36521
36647
|
const maxV7Timestamp = 2 ** 48 - 1;
|
|
36522
36648
|
/** @internal */
|
|
36523
36649
|
function v7Bytes(timestampMillis, bytes = randomBytes$2()) {
|
|
@@ -36533,7 +36659,7 @@ function v7Bytes(timestampMillis, bytes = randomBytes$2()) {
|
|
|
36533
36659
|
return bytes;
|
|
36534
36660
|
}
|
|
36535
36661
|
/** @internal */
|
|
36536
|
-
const v7String = (timestampMillis, bytes) => stringify
|
|
36662
|
+
const v7String = (timestampMillis, bytes) => stringify(bytes === void 0 ? v7Bytes(timestampMillis) : v7Bytes(timestampMillis, bytes));
|
|
36537
36663
|
//#endregion
|
|
36538
36664
|
//#region ../../node_modules/.pnpm/effect@4.0.0-rc.116/node_modules/effect/dist/Crypto.js
|
|
36539
36665
|
/**
|
|
@@ -40387,24 +40513,29 @@ const COMMENT_KEYS = /* @__PURE__ */ new Set(["leadingComments", "trailingCommen
|
|
|
40387
40513
|
function isCommentKey(key) {
|
|
40388
40514
|
return typeof key === "string" && COMMENT_KEYS.has(key);
|
|
40389
40515
|
}
|
|
40516
|
+
function walkTraverse(root, stack, visitors) {
|
|
40517
|
+
walk(walkableNode(root), {
|
|
40518
|
+
enter(node, _parent, context) {
|
|
40519
|
+
readPath(stack, node, this, context, visitors);
|
|
40520
|
+
},
|
|
40521
|
+
leave(_node, _parent, context) {
|
|
40522
|
+
closePath(stack, context, visitors);
|
|
40523
|
+
}
|
|
40524
|
+
});
|
|
40525
|
+
}
|
|
40526
|
+
const toTraverseError = (error) => error instanceof Error ? error : new Error("Traversal failed", { cause: error });
|
|
40527
|
+
const handleTraverseError = (error) => {
|
|
40528
|
+
const err = toTraverseError(error);
|
|
40529
|
+
if (!is$2(TraversalStopped)(err)) throw err;
|
|
40530
|
+
};
|
|
40390
40531
|
function traverse(root, visitors) {
|
|
40391
40532
|
const stack = [];
|
|
40392
40533
|
try {
|
|
40393
|
-
|
|
40394
|
-
enter(node, _parent, context) {
|
|
40395
|
-
readPath(stack, node, this, context, visitors);
|
|
40396
|
-
},
|
|
40397
|
-
leave(_node, _parent, context) {
|
|
40398
|
-
closePath(stack, context, visitors);
|
|
40399
|
-
}
|
|
40400
|
-
});
|
|
40534
|
+
walkTraverse(root, stack, visitors);
|
|
40401
40535
|
} catch (error) {
|
|
40402
|
-
|
|
40536
|
+
handleTraverseError(error);
|
|
40403
40537
|
}
|
|
40404
40538
|
}
|
|
40405
|
-
const rethrowUnlessStopped = (error) => {
|
|
40406
|
-
if (!is$2(TraversalStopped)(error)) throw error;
|
|
40407
|
-
};
|
|
40408
40539
|
const readPath = (stack, node, controls, context, visitors) => {
|
|
40409
40540
|
if (isCommentKey(context.key)) return;
|
|
40410
40541
|
const path = createPath(node, parentOf(stack), controls, context);
|
|
@@ -40472,7 +40603,7 @@ function writeInto(parent, key, index, replacement) {
|
|
|
40472
40603
|
writeAtKey(parent, key, index, replacement);
|
|
40473
40604
|
}
|
|
40474
40605
|
function writeAtKey(parent, key, index, replacement) {
|
|
40475
|
-
|
|
40606
|
+
if (isString(key)) writeAtSlot(parent, key, index, replacement);
|
|
40476
40607
|
}
|
|
40477
40608
|
function writeAtSlot(parent, key, index, replacement) {
|
|
40478
40609
|
value(index).pipe(when(_null, () => overwrite(parent, key, replacement)), orElse$1((position) => writeElement(parent[key], position, replacement)));
|
|
@@ -40552,17 +40683,16 @@ function isRangedBaseNode(value) {
|
|
|
40552
40683
|
function isNonEmptyArray(value) {
|
|
40553
40684
|
return Array.isArray(value) && value.length > 0;
|
|
40554
40685
|
}
|
|
40555
|
-
function
|
|
40556
|
-
return isPlainRecord(value) &&
|
|
40557
|
-
}
|
|
40558
|
-
function hasContent(value) {
|
|
40559
|
-
return hasField(value, "content");
|
|
40686
|
+
function hasContentField(value) {
|
|
40687
|
+
return isPlainRecord(value) && "content" in value;
|
|
40560
40688
|
}
|
|
40561
|
-
function
|
|
40562
|
-
return
|
|
40689
|
+
function hasHtmlField(value) {
|
|
40690
|
+
return isPlainRecord(value) && "html" in value;
|
|
40563
40691
|
}
|
|
40564
|
-
|
|
40565
|
-
|
|
40692
|
+
const readRecordField = (record, key) => record[key];
|
|
40693
|
+
function fieldOf$1(value, key) {
|
|
40694
|
+
if (!isPlainRecord(value)) return void 0;
|
|
40695
|
+
return readRecordField(value, key);
|
|
40566
40696
|
}
|
|
40567
40697
|
function appendIfDefined(values, value) {
|
|
40568
40698
|
if (value !== void 0) values.push(value);
|
|
@@ -40836,12 +40966,12 @@ function isTextRange(value) {
|
|
|
40836
40966
|
function isTemplateExpressionTag(value) {
|
|
40837
40967
|
return isTypedRecord(value) && TEMPLATE_EXPRESSION_TYPES[value["type"]] === true;
|
|
40838
40968
|
}
|
|
40839
|
-
|
|
40840
|
-
|
|
40841
|
-
|
|
40842
|
-
|
|
40969
|
+
const firstChild = (element) => {
|
|
40970
|
+
const children = element["children"];
|
|
40971
|
+
return isNonEmptyArray(children) ? getOrUndefined$1(head(children)) : void 0;
|
|
40972
|
+
};
|
|
40843
40973
|
function scriptChild(node) {
|
|
40844
|
-
return
|
|
40974
|
+
return isScriptElement(node) ? firstChild(node) : void 0;
|
|
40845
40975
|
}
|
|
40846
40976
|
function tryGetScriptRangeFromElement(node) {
|
|
40847
40977
|
return value(scriptChild(node)).pipe(when(isTextRange, (range) => ({
|
|
@@ -40851,14 +40981,14 @@ function tryGetScriptRangeFromElement(node) {
|
|
|
40851
40981
|
})), orElse$1(() => void 0));
|
|
40852
40982
|
}
|
|
40853
40983
|
function templateExpressionRange(node) {
|
|
40854
|
-
return
|
|
40984
|
+
return isTemplateExpressionTag(node) ? rangedExpressionOf(node["expression"]) : void 0;
|
|
40855
40985
|
}
|
|
40856
40986
|
function rangedExpressionOf(payload) {
|
|
40857
|
-
|
|
40858
|
-
start:
|
|
40859
|
-
end:
|
|
40987
|
+
if (isRangedBaseNode(payload)) return {
|
|
40988
|
+
start: payload.start,
|
|
40989
|
+
end: payload.end,
|
|
40860
40990
|
isExpression: true
|
|
40861
|
-
}
|
|
40991
|
+
};
|
|
40862
40992
|
}
|
|
40863
40993
|
/**
|
|
40864
40994
|
* Allow instrumentation of Svelte 5 projects without dropping support for Svelte 4.
|
|
@@ -40870,9 +41000,10 @@ const loadWalker = (version, fileName) => value(isAtLeast(version, SVELTE_5)).pi
|
|
|
40870
41000
|
* The specifier is chosen at run time and both modules are optional peers of
|
|
40871
41001
|
* this package, so neither can be a static import.
|
|
40872
41002
|
*/
|
|
41003
|
+
const findWalker = (module) => isRecordWithWalk(module) ? module.walk : void 0;
|
|
40873
41004
|
const loadWalkerModule = (specifier, fileName, cause) => gen(function* () {
|
|
40874
41005
|
const module = yield* promise(() => import(specifier));
|
|
40875
|
-
const walk =
|
|
41006
|
+
const walk = findWalker(module);
|
|
40876
41007
|
if (walk === void 0) return yield* SvelteWalkerNotFound.make({
|
|
40877
41008
|
fileName,
|
|
40878
41009
|
cause
|
|
@@ -40947,29 +41078,31 @@ function getTemplateScriptRanges(ast, walker) {
|
|
|
40947
41078
|
return ranges;
|
|
40948
41079
|
}
|
|
40949
41080
|
function htmlRootOf(ast) {
|
|
40950
|
-
|
|
40951
|
-
|
|
40952
|
-
}));
|
|
41081
|
+
if (!hasHtmlField(ast)) throw new Error("Svelte AST without html");
|
|
41082
|
+
return ast["html"];
|
|
40953
41083
|
}
|
|
40954
41084
|
function instanceScriptRange(ast) {
|
|
40955
|
-
|
|
41085
|
+
const record = contentFieldOf(fieldOf$1(ast, "instance"));
|
|
41086
|
+
return record === void 0 ? void 0 : scriptContentRange(record["content"], INSTANCE_RANGE_MISSING);
|
|
40956
41087
|
}
|
|
40957
41088
|
function scriptContentRange(content, missingRange) {
|
|
40958
|
-
|
|
40959
|
-
start:
|
|
40960
|
-
end:
|
|
41089
|
+
if (isRange(content)) return {
|
|
41090
|
+
start: content.start,
|
|
41091
|
+
end: content.end,
|
|
40961
41092
|
isExpression: false
|
|
40962
|
-
}
|
|
40963
|
-
|
|
40964
|
-
}));
|
|
41093
|
+
};
|
|
41094
|
+
throw new Error(missingRange);
|
|
40965
41095
|
}
|
|
40966
41096
|
function getModuleScriptRange(svelteAst) {
|
|
40967
41097
|
return value(fieldOf$1(svelteAst, "module")).pipe(when(void 0, () => void 0), when(null, () => void 0), orElse$1((block) => moduleBlockRange(block)));
|
|
40968
41098
|
}
|
|
41099
|
+
function contentFieldOf(value) {
|
|
41100
|
+
return getOrUndefined$1(filter$4(fromNullishOr(value), hasContentField));
|
|
41101
|
+
}
|
|
40969
41102
|
function moduleBlockRange(block) {
|
|
40970
|
-
|
|
40971
|
-
|
|
40972
|
-
|
|
41103
|
+
const record = contentFieldOf(block);
|
|
41104
|
+
if (record === void 0) throw new Error(MODULE_RANGE_MISSING);
|
|
41105
|
+
return scriptContentRange(record["content"], MODULE_RANGE_MISSING);
|
|
40973
41106
|
}
|
|
40974
41107
|
/**
|
|
40975
41108
|
* Remaps script locations back to the original places using the script map
|
|
@@ -43167,16 +43300,19 @@ function literalWithoutRegex(node) {
|
|
|
43167
43300
|
return valueLiteralText(node.value);
|
|
43168
43301
|
}
|
|
43169
43302
|
function valueLiteralText(value) {
|
|
43170
|
-
|
|
43171
|
-
|
|
43172
|
-
|
|
43173
|
-
|
|
43174
|
-
|
|
43175
|
-
|
|
43176
|
-
|
|
43177
|
-
|
|
43178
|
-
|
|
43179
|
-
|
|
43303
|
+
if (typeof value === "string") return JSON.stringify(value);
|
|
43304
|
+
return nonStringLiteralText(value);
|
|
43305
|
+
}
|
|
43306
|
+
function nonStringLiteralText(value) {
|
|
43307
|
+
if (typeof value === "number") return String(value);
|
|
43308
|
+
return booleanOrBigintText(value);
|
|
43309
|
+
}
|
|
43310
|
+
function booleanOrBigintText(value) {
|
|
43311
|
+
if (typeof value === "boolean") return String(value);
|
|
43312
|
+
return bigintText(value);
|
|
43313
|
+
}
|
|
43314
|
+
function bigintText(value) {
|
|
43315
|
+
return typeof value === "bigint" ? `${value}n` : "null";
|
|
43180
43316
|
}
|
|
43181
43317
|
function flagText(present, text) {
|
|
43182
43318
|
switch (Boolean(present)) {
|
|
@@ -43228,13 +43364,12 @@ const HASHBANG_FIELDS = {
|
|
|
43228
43364
|
function isHashbang(value) {
|
|
43229
43365
|
return isObject(value) && Object.entries(HASHBANG_FIELDS).every(([key, accepts]) => accepts(value[key]));
|
|
43230
43366
|
}
|
|
43231
|
-
const
|
|
43232
|
-
|
|
43233
|
-
|
|
43234
|
-
|
|
43235
|
-
};
|
|
43236
|
-
const
|
|
43237
|
-
const tsPrint = (file) => printProgram(file.root, { hashbang: hashbangOf(file.root) });
|
|
43367
|
+
const toHashbang = (hashbang) => isHashbang(hashbang) ? hashbang : null;
|
|
43368
|
+
function getHashbang(root) {
|
|
43369
|
+
return toHashbang("hashbang" in root ? root.hashbang : null);
|
|
43370
|
+
}
|
|
43371
|
+
const jsPrint = (file) => printProgram(file.root, { hashbang: getHashbang(file.root) });
|
|
43372
|
+
const tsPrint = (file) => printProgram(file.root, { hashbang: getHashbang(file.root) });
|
|
43238
43373
|
function getScriptStart$1(script) {
|
|
43239
43374
|
const span = spanOf(script.root);
|
|
43240
43375
|
if (span === void 0) throw new Error("Script AST root without start");
|
|
@@ -43298,18 +43433,23 @@ function normalizeFileName$4(fileName) {
|
|
|
43298
43433
|
}
|
|
43299
43434
|
const hasText = (value) => isString(value) && value.length > 0;
|
|
43300
43435
|
const textIfNonEmpty = (value) => getOrUndefined$1(filter$4(fromUndefinedOr(value), hasText));
|
|
43301
|
-
|
|
43302
|
-
return
|
|
43303
|
-
}
|
|
43436
|
+
function readFieldOf(record, key) {
|
|
43437
|
+
return record[key];
|
|
43438
|
+
}
|
|
43439
|
+
const hasFieldIn = (value, key) => key in value;
|
|
43440
|
+
const fieldOf = (value, key) => {
|
|
43441
|
+
if (!hasFieldIn(value, key)) return;
|
|
43442
|
+
return readFieldOf(value, key);
|
|
43443
|
+
};
|
|
43304
43444
|
const hasStringCode = (error) => value(fieldOf(error, "code")).pipe(when(string, () => true), orElse$1(() => false));
|
|
43305
43445
|
function isErrnoException(error) {
|
|
43306
43446
|
return value(error).pipe(when(instanceOf(Error), hasStringCode), orElse$1(() => false));
|
|
43307
43447
|
}
|
|
43308
|
-
const isEmptyNumber = (value$
|
|
43448
|
+
const isEmptyNumber = (value$21) => value(value$21).pipe(when(0, () => true), orElse$1(Number.isNaN));
|
|
43309
43449
|
const isEmptyError = (error) => value(error).pipe(when(_undefined, () => true), when(_null, () => true), when(string, (text) => text.length === 0), when(number, isEmptyNumber), when(boolean, (value) => !value), orElse$1(() => false));
|
|
43310
43450
|
const formatErrnoException = (error) => value(error.stack).pipe(when(hasText, (stack) => `${error.name}: ${error.code} (${error.syscall}) ${stack}`), orElse$1(() => `${error.name}: ${error.code} (${error.syscall})`));
|
|
43311
43451
|
const formatError = (error) => value(error.stack).pipe(when(hasText, (stack) => `${error.name}: ${error.message}\n${stack}`), orElse$1(() => `${error.name}: ${error.message}`));
|
|
43312
|
-
const isJsonPrimitive = (value$
|
|
43452
|
+
const isJsonPrimitive = (value$19) => value(value$19).pipe(when(number, () => true), when(boolean, () => true), when(bigint, () => true), orElse$1(() => false));
|
|
43313
43453
|
const jsonText = (error) => {
|
|
43314
43454
|
try {
|
|
43315
43455
|
return textIfNonEmpty(JSON.stringify(error));
|
|
@@ -43324,33 +43464,54 @@ const isNonPlaceholderText = (text) => value({
|
|
|
43324
43464
|
hasLength: true,
|
|
43325
43465
|
isPlaceholder: false
|
|
43326
43466
|
}, () => true), orElse$1(() => false));
|
|
43327
|
-
const isUsableText = (value$
|
|
43328
|
-
const usableText = (value
|
|
43329
|
-
const objectToStringText = (value$
|
|
43467
|
+
const isUsableText = (value$18) => value(value$18).pipe(when(string, isNonPlaceholderText), orElse$1(() => false));
|
|
43468
|
+
const usableText = (value) => isUsableText(value) ? value : "";
|
|
43469
|
+
const objectToStringText = (value$22) => value(fieldOf(value$22, "toString")).pipe(when(instanceOf(Function), (callable) => {
|
|
43330
43470
|
try {
|
|
43331
|
-
return usableText(Reflect.apply(callable, value$
|
|
43471
|
+
return usableText(Reflect.apply(callable, value$22, []));
|
|
43332
43472
|
} catch {
|
|
43333
43473
|
return "";
|
|
43334
43474
|
}
|
|
43335
43475
|
}), orElse$1(() => ""));
|
|
43336
43476
|
const isObjectType = (cause) => typeof cause === "object";
|
|
43337
|
-
const
|
|
43338
|
-
const
|
|
43339
|
-
const
|
|
43477
|
+
const isNonNullObjectType = (error) => error !== null && isObjectType(error);
|
|
43478
|
+
const toStringText = (error) => isNonNullObjectType(error) ? objectToStringText(error) : "";
|
|
43479
|
+
const stringifyRest = (error) => {
|
|
43480
|
+
const json = jsonText(error);
|
|
43481
|
+
return hasText(json) ? json : toStringText(error);
|
|
43482
|
+
};
|
|
43483
|
+
function primitiveJsonOf(error) {
|
|
43484
|
+
return isJsonPrimitive(error) ? JSON.stringify(error) : void 0;
|
|
43485
|
+
}
|
|
43486
|
+
const stringifyNonError = (error) => typeof error === "string" ? error : nonStringTextOf(error);
|
|
43487
|
+
function nonStringTextOf(error) {
|
|
43488
|
+
return primitiveJsonOf(error) ?? stringifyRest(error);
|
|
43489
|
+
}
|
|
43340
43490
|
const errorText$2 = (error) => value(error).pipe(when(isErrnoException, formatErrnoException), orElse$1(() => formatError(error)));
|
|
43341
43491
|
function errorToString(error) {
|
|
43342
43492
|
return value(error).pipe(when(isEmptyError, () => ""), when(instanceOf(Error), errorText$2), orElse$1(() => stringifyNonError(error)));
|
|
43343
43493
|
}
|
|
43344
43494
|
Object.freeze({ NoSuchFileOrDirectory: "ENOENT" });
|
|
43345
|
-
const errorNameOf = (value$
|
|
43346
|
-
const tagOf = (value$
|
|
43495
|
+
const errorNameOf = (value$17) => value(value$17).pipe(when(instanceOf(Error), (error) => textIfNonEmpty(error.name)), orElse$1(() => void 0));
|
|
43496
|
+
const tagOf = (value$20) => value(textIfNonEmpty(fieldOf(value$20, "_tag"))).pipe(when(hasText, (tag) => tag), orElse$1(() => errorNameOf(value$20)));
|
|
43347
43497
|
const textWithNested = (own, nested) => value(own).pipe(when(hasText, (text) => appendNested(text, nested)), orElse$1(() => nested));
|
|
43348
43498
|
const appendNested = (own, nested) => value(nested).pipe(when(hasText, (text) => `${own}: ${text}`), orElse$1(() => own));
|
|
43349
43499
|
const errorMessage = (error) => value(error.message.length > 0).pipe(when(true, () => error.message), orElse$1(() => tagOf(error)));
|
|
43350
|
-
const errorMessageOrTag = (value$
|
|
43351
|
-
const messageText = (value$
|
|
43352
|
-
const ownCauseText = (value$
|
|
43353
|
-
const
|
|
43500
|
+
const errorMessageOrTag = (value$16) => value(value$16).pipe(when(instanceOf(Error), errorMessage), orElse$1(() => tagOf(value$16)));
|
|
43501
|
+
const messageText = (value$23) => value(textIfNonEmpty(fieldOf(value$23, "message"))).pipe(when(hasText, (message) => message), orElse$1(() => errorMessageOrTag(value$23)));
|
|
43502
|
+
const ownCauseText = (value$15) => value(textIfNonEmpty(fieldOf(value$15, "reason"))).pipe(when(hasText, (reason) => reason), orElse$1(() => messageText(value$15)));
|
|
43503
|
+
const isPastDepth = (depth) => depth > 4;
|
|
43504
|
+
const isMissingCause = (cause) => cause === void 0 || cause === null;
|
|
43505
|
+
const causeText = (cause, depth) => isPastDepth(depth) ? void 0 : missingCauseTextOf(cause, depth);
|
|
43506
|
+
function missingCauseTextOf(cause, depth) {
|
|
43507
|
+
return isMissingCause(cause) ? void 0 : causeTextOfValue(cause, depth);
|
|
43508
|
+
}
|
|
43509
|
+
function causeTextOfValue(cause, depth) {
|
|
43510
|
+
return typeof cause === "string" ? textIfNonEmpty(cause) : objectCauseTextOf(cause, depth);
|
|
43511
|
+
}
|
|
43512
|
+
function objectCauseTextOf(cause, depth) {
|
|
43513
|
+
return isObjectType(cause) ? textWithNested(ownCauseText(cause), causeText(fieldOf(cause, "cause"), depth + 1)) : void 0;
|
|
43514
|
+
}
|
|
43354
43515
|
/**
|
|
43355
43516
|
* Mutator — every mutation operator and its registry.
|
|
43356
43517
|
*/
|
|
@@ -43637,9 +43798,10 @@ function withOperator(node, operator) {
|
|
|
43637
43798
|
function mutantsWhen(holds, build) {
|
|
43638
43799
|
return value(holds).pipe(when(true, build), orElse$1(() => NO_MUTANTS));
|
|
43639
43800
|
}
|
|
43640
|
-
|
|
43801
|
+
const hasPropertyIn = (node, key) => key in node;
|
|
43802
|
+
const readPropertyOf = (node, key) => hasPropertyIn(node, key) ? node[key] : void 0;
|
|
43641
43803
|
function propertyOf(node, key) {
|
|
43642
|
-
return
|
|
43804
|
+
return isObject(node) ? readPropertyOf(node, key) : void 0;
|
|
43643
43805
|
}
|
|
43644
43806
|
function isIdentifier(node) {
|
|
43645
43807
|
return nodeType(node) === "Identifier";
|
|
@@ -44703,7 +44865,8 @@ function frozenContainer(value) {
|
|
|
44703
44865
|
freezableChildren(object).forEach((child) => {
|
|
44704
44866
|
deepFreeze$2(child);
|
|
44705
44867
|
});
|
|
44706
|
-
|
|
44868
|
+
Object.freeze(object);
|
|
44869
|
+
return value;
|
|
44707
44870
|
});
|
|
44708
44871
|
}
|
|
44709
44872
|
function freezableChildren(value) {
|
|
@@ -45747,7 +45910,7 @@ const FrameworkInformationSchema = Struct({
|
|
|
45747
45910
|
branding: optional$4(BrandingInformationSchema),
|
|
45748
45911
|
dependencies: optional$4(DependenciesSchema)
|
|
45749
45912
|
});
|
|
45750
|
-
const MutationTestResultSchema
|
|
45913
|
+
const MutationTestResultSchema = Struct({
|
|
45751
45914
|
schemaVersion: String$7,
|
|
45752
45915
|
files: FileResultDictionarySchema,
|
|
45753
45916
|
thresholds: ThresholdsSchema,
|
|
@@ -45893,7 +46056,7 @@ var MutantTested = class extends TaggedClass()("mutantTested", {
|
|
|
45893
46056
|
total: NonNegativeInt
|
|
45894
46057
|
}) {};
|
|
45895
46058
|
var MutationTestReportReady = class extends TaggedClass()("mutationTestReportReady", {
|
|
45896
|
-
report: MutationTestResultSchema
|
|
46059
|
+
report: MutationTestResultSchema,
|
|
45897
46060
|
metrics: MetricsResultSchema
|
|
45898
46061
|
}) {};
|
|
45899
46062
|
const ReporterEventUnion = Union([
|
|
@@ -47130,7 +47293,7 @@ const cyanBright = `${ESC}96m`;
|
|
|
47130
47293
|
const annotate = (text, ...styles) => {
|
|
47131
47294
|
return `${styles.flat().join("")}${text}${reset$1}`;
|
|
47132
47295
|
};
|
|
47133
|
-
const combine$
|
|
47296
|
+
const combine$1 = (...styles) => styles;
|
|
47134
47297
|
/** @internal */
|
|
47135
47298
|
const cursorTo = (column, row) => {
|
|
47136
47299
|
if (row === void 0) return `${ESC}${Math.max(column + 1, 0)}G`;
|
|
@@ -47226,7 +47389,7 @@ const getTheme = (options) => map$7(Theme, (theme) => ({
|
|
|
47226
47389
|
...options.theme
|
|
47227
47390
|
}));
|
|
47228
47391
|
const annotateLine = (line) => annotate(line, bold);
|
|
47229
|
-
const annotateErrorLine = (line, color) => annotate(line, combine$
|
|
47392
|
+
const annotateErrorLine = (line, color) => annotate(line, combine$1(italicized, color));
|
|
47230
47393
|
const annotateSymbol = (symbol, ...styles) => symbol.length === 0 ? "" : annotate(symbol, ...styles);
|
|
47231
47394
|
const separateSymbol = (symbol, text) => symbol.length === 0 ? text : symbol + " " + text;
|
|
47232
47395
|
const renderPagingPrefix = (theme, showArrowUp, showArrowDown) => {
|
|
@@ -47700,7 +47863,7 @@ const renderParts = (state, theme, submitted = false) => {
|
|
|
47700
47863
|
return reduce$2(state.dateParts, "", (doc, part, currentIndex) => {
|
|
47701
47864
|
const partDoc = part.toString();
|
|
47702
47865
|
if (currentIndex === state.cursor && !submitted) {
|
|
47703
|
-
const annotation = combine$
|
|
47866
|
+
const annotation = combine$1(underlined, theme.primaryColor);
|
|
47704
47867
|
return doc + annotate(partDoc, annotation);
|
|
47705
47868
|
}
|
|
47706
47869
|
return doc + partDoc;
|
|
@@ -48129,7 +48292,7 @@ const handleNumberClear = (options) => {
|
|
|
48129
48292
|
const renderNumberInput = (state, submitted, theme, renderOptions) => {
|
|
48130
48293
|
const value = state.value === "" ? "" : `${state.value}`;
|
|
48131
48294
|
if (submitted || renderOptions?.plain === true) return value;
|
|
48132
|
-
const annotation = isSome(state.error) ? theme.errorColor : combine$
|
|
48295
|
+
const annotation = isSome(state.error) ? theme.errorColor : combine$1(underlined, theme.primaryColor);
|
|
48133
48296
|
return annotate(value, annotation);
|
|
48134
48297
|
};
|
|
48135
48298
|
const renderNumberError = (state, pointer, theme, renderOptions) => {
|
|
@@ -48301,7 +48464,7 @@ const renderChoicePrefix = (state, choices, toDisplay, currentIndex, figures, re
|
|
|
48301
48464
|
const prefix = renderPagingPrefix(figures, currentIndex === toDisplay.startIndex && toDisplay.startIndex > 0, currentIndex === toDisplay.endIndex - 1 && toDisplay.endIndex < choices.length);
|
|
48302
48465
|
if (renderOptions?.plain === true) return state === currentIndex ? figures.pointer + prefix : prefix + " ".repeat(figures.pointer.length);
|
|
48303
48466
|
if (choices[currentIndex].disabled) {
|
|
48304
|
-
const annotation = combine$
|
|
48467
|
+
const annotation = combine$1(bold, figures.mutedColor);
|
|
48305
48468
|
return state === currentIndex ? annotateSymbol(figures.pointer, annotation) + prefix : prefix + " ".repeat(figures.pointer.length);
|
|
48306
48469
|
}
|
|
48307
48470
|
return state === currentIndex ? annotateSymbol(figures.pointer, figures.primaryColor) + prefix : prefix + " ".repeat(figures.pointer.length);
|
|
@@ -48309,8 +48472,8 @@ const renderChoicePrefix = (state, choices, toDisplay, currentIndex, figures, re
|
|
|
48309
48472
|
const renderChoiceTitle = (choice, isSelected, theme, renderOptions) => {
|
|
48310
48473
|
if (renderOptions?.plain === true) return choice.title;
|
|
48311
48474
|
const title = choice.title;
|
|
48312
|
-
if (isSelected) return choice.disabled ? annotate(title, combine$
|
|
48313
|
-
return choice.disabled ? annotate(title, combine$
|
|
48475
|
+
if (isSelected) return choice.disabled ? annotate(title, combine$1(underlined, theme.mutedColor)) : annotate(title, combine$1(underlined, theme.primaryColor));
|
|
48476
|
+
return choice.disabled ? annotate(title, combine$1(strikethrough, theme.mutedColor)) : title;
|
|
48314
48477
|
};
|
|
48315
48478
|
const renderSelectChoices = (state, options, figures, renderOptions) => {
|
|
48316
48479
|
const choices = options.choices;
|
|
@@ -48402,7 +48565,7 @@ const renderTextInput = (nextState, options, theme, submitted, renderOptions) =>
|
|
|
48402
48565
|
case "text": return text;
|
|
48403
48566
|
}
|
|
48404
48567
|
if (text.length === 0) return "";
|
|
48405
|
-
const annotation = isSome(nextState.error) ? theme.errorColor : submitted ? theme.submittedColor : combine$
|
|
48568
|
+
const annotation = isSome(nextState.error) ? theme.errorColor : submitted ? theme.submittedColor : combine$1(underlined, theme.primaryColor);
|
|
48406
48569
|
switch (options.type) {
|
|
48407
48570
|
case "hidden": return "";
|
|
48408
48571
|
case "password": return annotateSymbol(theme.passwordMask.repeat(text.length), annotation);
|
|
@@ -48581,7 +48744,7 @@ const handleToggleClear = /*#__PURE__*/ fnUntraced(function* (options) {
|
|
|
48581
48744
|
});
|
|
48582
48745
|
const renderToggle = (value, options, theme, submitted = false) => {
|
|
48583
48746
|
const separator = annotateSymbol(theme.toggleSeparator, theme.mutedColor);
|
|
48584
|
-
const selectedAnnotation = combine$
|
|
48747
|
+
const selectedAnnotation = combine$1(underlined, submitted ? theme.submittedColor : theme.primaryColor);
|
|
48585
48748
|
const inactive = value ? options.inactive : annotate(options.inactive, selectedAnnotation);
|
|
48586
48749
|
return (value ? annotate(options.active, selectedAnnotation) : options.active) + " " + separateSymbol(separator, inactive);
|
|
48587
48750
|
};
|
|
@@ -52977,9 +53140,7 @@ const PriorReportDocument = Struct({
|
|
|
52977
53140
|
}))
|
|
52978
53141
|
}))
|
|
52979
53142
|
});
|
|
52980
|
-
const
|
|
52981
|
-
const { entries: objectEntries$1, fromEntries: objectFromEntries$1, keys: objectKeys } = Object;
|
|
52982
|
-
const stringify = JSON.stringify;
|
|
53143
|
+
const { entries: objectEntries$1, fromEntries: objectFromEntries$1 } = Object;
|
|
52983
53144
|
const SURVIVORS_RUN_FIRST_REMEDIATION = "run a full `stryker run` first, then re-run with --survivors";
|
|
52984
53145
|
const SURVIVORS_BOOKKEEPING_KEYS = ["survivorsPriorReport"];
|
|
52985
53146
|
function stripSurvivorsKeys(config) {
|
|
@@ -52988,11 +53149,22 @@ function stripSurvivorsKeys(config) {
|
|
|
52988
53149
|
function wasProducedBySurvivorsRun(priorReport) {
|
|
52989
53150
|
return exists$1(liftPredicate(priorReport.config, record), (config) => SURVIVORS_BOOKKEEPING_KEYS.some((bookkeeping) => bookkeeping in config));
|
|
52990
53151
|
}
|
|
52991
|
-
|
|
52992
|
-
|
|
52993
|
-
|
|
52994
|
-
|
|
52995
|
-
|
|
53152
|
+
const hashValueSchema = () => Union([
|
|
53153
|
+
Null,
|
|
53154
|
+
Finite$3,
|
|
53155
|
+
Boolean$5,
|
|
53156
|
+
String$7,
|
|
53157
|
+
ArraySchema(suspend$1(hashValueSchema)),
|
|
53158
|
+
Record(String$7, suspend$1(hashValueSchema))
|
|
53159
|
+
]);
|
|
53160
|
+
const SurvivorsHashInput = Struct({
|
|
53161
|
+
frameworkVersion: UndefinedOr(String$7),
|
|
53162
|
+
resolvedOptions: Record(String$7, UndefinedOr(suspend$1(hashValueSchema))),
|
|
53163
|
+
sourceContentHashes: Record(String$7, String$7)
|
|
53164
|
+
});
|
|
53165
|
+
const hashesEquivalent = toEquivalence(SurvivorsHashInput);
|
|
53166
|
+
function decodeSurvivorsHashInput(input) {
|
|
53167
|
+
return decodeUnknownResult(SurvivorsHashInput)(input);
|
|
52996
53168
|
}
|
|
52997
53169
|
var PriorReportFacts = class extends Class("PriorReportFacts")({
|
|
52998
53170
|
config: Record(String$7, Unknown),
|
|
@@ -53010,14 +53182,20 @@ const NO_REPORT_DETAIL = "No prior mutation report found — a --survivors run n
|
|
|
53010
53182
|
const SURVIVORS_RUN_SOURCE_DETAIL = "The prior mutation report was itself produced by a --survivors run, so it is not a valid input for another one.";
|
|
53011
53183
|
const MISMATCH_DETAIL = "The prior mutation report does not match the current run (resolved options, framework version, or source content differ).";
|
|
53012
53184
|
function hashesMatch(priorReport, input) {
|
|
53013
|
-
return
|
|
53185
|
+
return match$6(decodeSurvivorsHashInput({
|
|
53014
53186
|
resolvedOptions: stripSurvivorsKeys(priorReport.config),
|
|
53015
53187
|
frameworkVersion: priorReport.frameworkVersion,
|
|
53016
53188
|
sourceContentHashes: input.priorSourceHashes
|
|
53017
|
-
})
|
|
53018
|
-
|
|
53019
|
-
|
|
53020
|
-
|
|
53189
|
+
}), {
|
|
53190
|
+
onFailure: () => false,
|
|
53191
|
+
onSuccess: (prior) => match$6(decodeSurvivorsHashInput({
|
|
53192
|
+
resolvedOptions: stripSurvivorsKeys(input.currentConfig),
|
|
53193
|
+
frameworkVersion: input.frameworkVersion,
|
|
53194
|
+
sourceContentHashes: input.sourceContentHashes
|
|
53195
|
+
}), {
|
|
53196
|
+
onFailure: () => false,
|
|
53197
|
+
onSuccess: (current) => hashesEquivalent(prior, current)
|
|
53198
|
+
})
|
|
53021
53199
|
});
|
|
53022
53200
|
}
|
|
53023
53201
|
const SurvivorsAdmissionTypeId = Symbol.for("@systemfsoftware/stryker-js/SurvivorsAdmission");
|
|
@@ -53169,8 +53347,8 @@ const rejectNonFileUrlPlugin = (flagName) => (specifiers) => {
|
|
|
53169
53347
|
return `--${flagName} takes plugin entrypoints as file URLs. Resolve each one with import.meta.resolve in your config. Not a file URL: ${specifiers.filter((specifier) => isNone(decodePluginFileUrl(specifier))).join(", ")}`;
|
|
53170
53348
|
};
|
|
53171
53349
|
const CLEAN_TEMP_DIR_DISABLED = ["false", "0"];
|
|
53172
|
-
function parseCleanDirOption(value$
|
|
53173
|
-
const normalized = value$
|
|
53350
|
+
function parseCleanDirOption(value$14) {
|
|
53351
|
+
const normalized = value$14.toLocaleLowerCase();
|
|
53174
53352
|
return value(normalized).pipe(when("always", () => "always"), orElse$1(() => !CLEAN_TEMP_DIR_DISABLED.some((disabled) => disabled === normalized)));
|
|
53175
53353
|
}
|
|
53176
53354
|
function parseConcurrency(value) {
|
|
@@ -53299,8 +53477,10 @@ const carriesExitClass = (value) => isObjectOrArray(value) && "exitClass" in val
|
|
|
53299
53477
|
const carriesCause = (value) => isObjectOrArray(value) && "cause" in value;
|
|
53300
53478
|
const carriesReason = (value) => isObjectOrArray(value) && "reason" in value;
|
|
53301
53479
|
const carriesMessageField = (value) => isObjectOrArray(value) && "message" in value;
|
|
53302
|
-
|
|
53303
|
-
|
|
53480
|
+
const isNonNullObject$2 = (value) => typeof value === "object" && value !== null;
|
|
53481
|
+
function exitClassOf(value) {
|
|
53482
|
+
if (!carriesExitClass(value)) return;
|
|
53483
|
+
return getOrUndefined$1(asExitClass(value.exitClass));
|
|
53304
53484
|
}
|
|
53305
53485
|
const MAX_TRAVERSAL_DEPTH = 10;
|
|
53306
53486
|
function isUnseenObject(value, seen) {
|
|
@@ -53312,9 +53492,12 @@ function isReachableValue(value, depth, seen) {
|
|
|
53312
53492
|
function isChildList(value) {
|
|
53313
53493
|
return Array.isArray(value);
|
|
53314
53494
|
}
|
|
53315
|
-
function causeChildrenOf(value
|
|
53316
|
-
const cause =
|
|
53317
|
-
return
|
|
53495
|
+
function causeChildrenOf(value) {
|
|
53496
|
+
const cause = carriesCause(value) ? value.cause : void 0;
|
|
53497
|
+
return match$7(fromNullishOr(cause), {
|
|
53498
|
+
onNone: () => [],
|
|
53499
|
+
onSome: (settled) => isChildList(settled) ? settled : [settled]
|
|
53500
|
+
});
|
|
53318
53501
|
}
|
|
53319
53502
|
function visitReachableValue(value, depth, seen, visit) {
|
|
53320
53503
|
if (isReachableValue(value, depth, seen)) {
|
|
@@ -53329,7 +53512,13 @@ function findReachableValue(value, depth, seen, read) {
|
|
|
53329
53512
|
return orElse$3(read(value), () => findFirst(causeChildrenOf(value), (child) => findReachableValue(child, depth + 1, seen, read)));
|
|
53330
53513
|
}
|
|
53331
53514
|
function causePayloadOf(reason) {
|
|
53332
|
-
return
|
|
53515
|
+
return isFailReason(reason) ? reason.error : objectPayloadOf(reason);
|
|
53516
|
+
}
|
|
53517
|
+
function objectPayloadOf(reason) {
|
|
53518
|
+
return getOrUndefined$1(filter$4(dieDefectOf(reason), isNonNullObject$2));
|
|
53519
|
+
}
|
|
53520
|
+
function dieDefectOf(reason) {
|
|
53521
|
+
return isDieReason(reason) ? some(reason.defect) : none();
|
|
53333
53522
|
}
|
|
53334
53523
|
const failedExit = liftPredicate(isFailure);
|
|
53335
53524
|
function failurePayloads(exit) {
|
|
@@ -53346,20 +53535,20 @@ function collectExitClasses(exit) {
|
|
|
53346
53535
|
return out;
|
|
53347
53536
|
}
|
|
53348
53537
|
const nonEmptyText = liftPredicate(is$2(NonEmptyString));
|
|
53349
|
-
function reasonOf$1(value$
|
|
53350
|
-
const declared = value(value$
|
|
53351
|
-
return getOrUndefined$1(map$13(nonEmptyText(declared), (reason) => match$7(fromNullishOr(causeTextOf(value$
|
|
53538
|
+
function reasonOf$1(value$13) {
|
|
53539
|
+
const declared = value(value$13).pipe(when(carriesReason, (carrier) => carrier.reason), orElse$1(() => void 0));
|
|
53540
|
+
return getOrUndefined$1(map$13(nonEmptyText(declared), (reason) => match$7(fromNullishOr(causeTextOf(value$13)), {
|
|
53352
53541
|
onNone: () => reason,
|
|
53353
53542
|
onSome: (detail) => `${reason}: ${detail}`
|
|
53354
53543
|
})));
|
|
53355
53544
|
}
|
|
53356
|
-
function causeTextOf(value$
|
|
53357
|
-
const cause = value(value$
|
|
53545
|
+
function causeTextOf(value$12) {
|
|
53546
|
+
const cause = value(value$12).pipe(when(carriesCause, (carrier) => carrier.cause), orElse$1(() => void 0));
|
|
53358
53547
|
return causeText(cause, 1);
|
|
53359
53548
|
}
|
|
53360
|
-
function firstConfiguredText(value$
|
|
53361
|
-
const reason = value(value$
|
|
53362
|
-
const message = value(value$
|
|
53549
|
+
function firstConfiguredText(value$11) {
|
|
53550
|
+
const reason = value(value$11).pipe(when(carriesReason, (carrier) => carrier.reason), orElse$1(() => void 0));
|
|
53551
|
+
const message = value(value$11).pipe(when(carriesMessageField, (carrier) => carrier.message), orElse$1(() => void 0));
|
|
53363
53552
|
return orElse$3(nonEmptyText(reason), () => nonEmptyText(message));
|
|
53364
53553
|
}
|
|
53365
53554
|
function configDetailAt(value) {
|
|
@@ -53384,8 +53573,20 @@ function isMessageError(value) {
|
|
|
53384
53573
|
function declaresReasonText(value) {
|
|
53385
53574
|
return carriesReason(value) && isSome(nonEmptyText(value.reason));
|
|
53386
53575
|
}
|
|
53387
|
-
function
|
|
53388
|
-
return
|
|
53576
|
+
function remediationTextOf(value) {
|
|
53577
|
+
return is$2(SurvivorsRejection)(value) ? some(value.remediation) : none();
|
|
53578
|
+
}
|
|
53579
|
+
function reasonTextOf(value) {
|
|
53580
|
+
return declaresReasonText(value) ? fromNullishOr(reasonOf$1(value)) : none();
|
|
53581
|
+
}
|
|
53582
|
+
function errorMessageTextOf(value) {
|
|
53583
|
+
return isMessageError(value) ? some(value.message) : none();
|
|
53584
|
+
}
|
|
53585
|
+
function primitiveTextOf(value) {
|
|
53586
|
+
return isPrimitiveText(value) ? some(String(value)) : none();
|
|
53587
|
+
}
|
|
53588
|
+
function failureValueDescription(value) {
|
|
53589
|
+
return remediationTextOf(value).pipe(orElse$3(() => reasonTextOf(value)), orElse$3(() => errorMessageTextOf(value)), orElse$3(() => primitiveTextOf(value)));
|
|
53389
53590
|
}
|
|
53390
53591
|
function failureDescriptionOf(exit) {
|
|
53391
53592
|
return failureValueDescription(failureValue(exit)).pipe(orElse$3(() => fromNullishOr(firstConfigErrorDetail(exit))), orElse$3(() => flatMap$6(failedExit(exit), (failure) => nonEmptyText(pretty(failure.cause)))));
|
|
@@ -53396,8 +53597,18 @@ function describeFailure(exit) {
|
|
|
53396
53597
|
function unrecognizedArgumentOf(exit, argv) {
|
|
53397
53598
|
return getOrUndefined$1(cliErrorList(exit).pipe(flatMap$6((errors) => findFirst(errors, (error) => argumentHintOf(error, argv)))));
|
|
53398
53599
|
}
|
|
53600
|
+
function showHelpErrors(help) {
|
|
53601
|
+
return help.errors;
|
|
53602
|
+
}
|
|
53603
|
+
function showHelpErrorsOf(value) {
|
|
53604
|
+
return is$2(ShowHelp)(value) ? some(showHelpErrors(value)) : none();
|
|
53605
|
+
}
|
|
53399
53606
|
function cliErrorList(exit) {
|
|
53400
|
-
|
|
53607
|
+
const value = failureValue(exit);
|
|
53608
|
+
return match$7(showHelpErrorsOf(value), {
|
|
53609
|
+
onSome: (errors) => some(errors),
|
|
53610
|
+
onNone: () => isCliError(value) ? some([value]) : none()
|
|
53611
|
+
});
|
|
53401
53612
|
}
|
|
53402
53613
|
function argumentHintOf(error, argv) {
|
|
53403
53614
|
return value(error).pipe(tag("UnrecognizedOption", (unrecognized) => some(unrecognizedArgument(argv, unrecognized.option))), tag("UnexpectedArgument", (unexpected) => fromNullishOr(unexpected.arguments[0])), tag("UnknownSubcommand", (unknown) => some(unknown.subcommand)), orElse$1(() => none()));
|
|
@@ -53414,17 +53625,20 @@ function failureValue(exit) {
|
|
|
53414
53625
|
const SIGNAL_REMEDIATION = "the run was interrupted by a signal; re-run it to continue";
|
|
53415
53626
|
const PARSE_REMEDIATION = "re-run with --help to see the full usage";
|
|
53416
53627
|
const DEFAULT_REMEDIATION = "see --reportFile or the verdict envelope on stdout";
|
|
53417
|
-
function verdictExitClass(value
|
|
53418
|
-
return
|
|
53628
|
+
function verdictExitClass(value) {
|
|
53629
|
+
return hasProperty("verdict")(value) ? getOrUndefined$1(asExitClass(value.verdict)) : void 0;
|
|
53419
53630
|
}
|
|
53420
53631
|
function successExitClassOf(exit) {
|
|
53421
|
-
return
|
|
53632
|
+
return isSuccess(exit) ? verdictExitClass(exit.value) : void 0;
|
|
53633
|
+
}
|
|
53634
|
+
function showHelpErrorCount(help) {
|
|
53635
|
+
return help.errors.length;
|
|
53422
53636
|
}
|
|
53423
|
-
function helpErrorCountOf(value
|
|
53424
|
-
return
|
|
53637
|
+
function helpErrorCountOf(value) {
|
|
53638
|
+
return is$2(ShowHelp)(value) ? showHelpErrorCount(value) : void 0;
|
|
53425
53639
|
}
|
|
53426
|
-
function survivorsRejectionOf(value
|
|
53427
|
-
return
|
|
53640
|
+
function survivorsRejectionOf(value) {
|
|
53641
|
+
return is$2(SurvivorsRejection)(value) ? value : void 0;
|
|
53428
53642
|
}
|
|
53429
53643
|
function present(value) {
|
|
53430
53644
|
if (value === null) return;
|
|
@@ -53546,11 +53760,9 @@ function formatTemplate(template, args) {
|
|
|
53546
53760
|
const trailing = progress.args.slice(progress.cursor).map((argument) => ` ${inspectValue(argument)}`);
|
|
53547
53761
|
return progress.text + trailing.join("");
|
|
53548
53762
|
}
|
|
53549
|
-
function isTextTemplate(args) {
|
|
53550
|
-
return typeof args[0] === "string";
|
|
53551
|
-
}
|
|
53552
53763
|
function formatArgs(args) {
|
|
53553
|
-
|
|
53764
|
+
const [first, ...rest] = args;
|
|
53765
|
+
return typeof first === "string" ? formatTemplate(first, rest) : args.map(inspectValue).join(" ");
|
|
53554
53766
|
}
|
|
53555
53767
|
function captureSync(args) {
|
|
53556
53768
|
capturedConsoleChunks.push(formatArgs(args));
|
|
@@ -53630,18 +53842,19 @@ function resetCapturedConsole() {
|
|
|
53630
53842
|
//#endregion
|
|
53631
53843
|
//#region src/config-defaults.ts
|
|
53632
53844
|
const isNonNullObject$1 = (value) => typeof value === "object" && value !== null;
|
|
53845
|
+
const isRecordValue$1 = (value) => isNonNullObject$1(value) && Array.isArray(value) === false;
|
|
53633
53846
|
const isArrayValue$1 = (value) => Array.isArray(value);
|
|
53634
|
-
const freezeArrayValue$1 = (value) => Object.freeze(value.map(deepFreeze$1));
|
|
53847
|
+
const freezeArrayValue$1 = (value) => Object.freeze(value.map((element) => deepFreeze$1(element)));
|
|
53635
53848
|
const freezeMapEntry$1 = ([entryKey, entryValue]) => [deepFreeze$1(entryKey), deepFreeze$1(entryValue)];
|
|
53636
53849
|
const freezeMapValue$1 = (value) => Object.freeze(new Map([...value.entries()].map(freezeMapEntry$1)));
|
|
53637
|
-
const freezeSetValue$1 = (value) => Object.freeze(new Set([...value.values()].map(deepFreeze$1)));
|
|
53850
|
+
const freezeSetValue$1 = (value) => Object.freeze(new Set([...value.values()].map((element) => deepFreeze$1(element))));
|
|
53638
53851
|
const freezeRegExpValue$1 = (value) => Object.freeze(value);
|
|
53639
53852
|
const freezeRecordValue$1 = (value) => Object.freeze(Object.entries(value).reduce((frozen, [property, propertyValue]) => {
|
|
53640
53853
|
frozen[property] = deepFreeze$1(propertyValue);
|
|
53641
53854
|
return frozen;
|
|
53642
53855
|
}, {}));
|
|
53643
53856
|
function deepFreeze$1(target) {
|
|
53644
|
-
return value(target).pipe(when(isArrayValue$1, freezeArrayValue$1), when((value) => value instanceof Map, freezeMapValue$1), when((value) => value instanceof RegExp, freezeRegExpValue$1), when((value) => value instanceof Set, freezeSetValue$1), when(
|
|
53857
|
+
return value(target).pipe(when(isArrayValue$1, freezeArrayValue$1), when((value) => value instanceof Map, freezeMapValue$1), when((value) => value instanceof RegExp, freezeRegExpValue$1), when((value) => value instanceof Set, freezeSetValue$1), when(isRecordValue$1, freezeRecordValue$1), orElse$1(() => target));
|
|
53645
53858
|
}
|
|
53646
53859
|
const optionsPath$1 = (...path) => path.join(".");
|
|
53647
53860
|
const SUPPORTED_CONFIG_FILE_EXTENSIONS$1 = [
|
|
@@ -53665,6 +53878,51 @@ export default {
|
|
|
53665
53878
|
};
|
|
53666
53879
|
See https://stryker-mutator.io/docs/stryker-js/config-file for more information.`.trim();
|
|
53667
53880
|
const defaultOptions$1 = map$7(decodeEffect(StrykerOptionsSchema)({}).pipe(orDie), (opts) => deepFreeze$1(opts));
|
|
53881
|
+
const scopedUnserializable = (scope) => (description) => ({
|
|
53882
|
+
...description,
|
|
53883
|
+
path: [scope, ...description.path]
|
|
53884
|
+
});
|
|
53885
|
+
const describeUnserializableChild = (child, scope) => value(findUnserializables(child)).pipe(when(void 0, () => []), orElse$1((descriptions) => descriptions.map(scopedUnserializable(scope))));
|
|
53886
|
+
const collectUnserializables = (groups) => {
|
|
53887
|
+
const found = groups.flat();
|
|
53888
|
+
if (found.length > 0) return found;
|
|
53889
|
+
};
|
|
53890
|
+
const describeUnserializableArray = (value) => collectUnserializables(value.map((child, index) => describeUnserializableChild(child, index.toString())));
|
|
53891
|
+
const describeUnserializableRecord = (value) => collectUnserializables(Object.entries(value).map(([key, child]) => describeUnserializableChild(child, key)));
|
|
53892
|
+
const isPlainObjectValue = (value) => !Array.isArray(value) && value.constructor === Object;
|
|
53893
|
+
const classNameOf = (value$10) => value(value$10.constructor).pipe(when(defined, (ctor) => ctor.name), orElse$1(() => "Object"));
|
|
53894
|
+
const describeUnserializableInstance = (value) => [{
|
|
53895
|
+
path: [],
|
|
53896
|
+
reason: `Value is an instance of "${classNameOf(value)}", this detail will get lost in translation during serialization`
|
|
53897
|
+
}];
|
|
53898
|
+
const describeUnserializableObject = (value$9) => value(value$9).pipe(when(isArrayValue$1, describeUnserializableArray), when(isPlainObjectValue, describeUnserializableRecord), orElse$1(describeUnserializableInstance));
|
|
53899
|
+
const NON_JSON_PRIMITIVE_TYPES = [
|
|
53900
|
+
"bigint",
|
|
53901
|
+
"function",
|
|
53902
|
+
"symbol"
|
|
53903
|
+
];
|
|
53904
|
+
const isNonJsonPrimitive = (value) => NON_JSON_PRIMITIVE_TYPES.includes(typeof value);
|
|
53905
|
+
const describeNonJsonPrimitive = (value) => [{
|
|
53906
|
+
path: [],
|
|
53907
|
+
reason: `Primitive type "${typeof value}" has no JSON representation`
|
|
53908
|
+
}];
|
|
53909
|
+
const describeNumber = (value) => {
|
|
53910
|
+
if (isFinite(value)) return void 0;
|
|
53911
|
+
return [{
|
|
53912
|
+
reason: `Number value \`${value}\` has no JSON representation`,
|
|
53913
|
+
path: []
|
|
53914
|
+
}];
|
|
53915
|
+
};
|
|
53916
|
+
function findUnserializables(thing) {
|
|
53917
|
+
if (typeof thing === "number") return describeNumber(thing);
|
|
53918
|
+
return describeNonNumberValue(thing);
|
|
53919
|
+
}
|
|
53920
|
+
function describeNonNumberValue(thing) {
|
|
53921
|
+
return isNonJsonPrimitive(thing) ? describeNonJsonPrimitive(thing) : describeObjectValue(thing);
|
|
53922
|
+
}
|
|
53923
|
+
function describeObjectValue(thing) {
|
|
53924
|
+
return isNonNullObject$1(thing) ? describeUnserializableObject(thing) : void 0;
|
|
53925
|
+
}
|
|
53668
53926
|
function isWarningEnabled$1(warningType, warningOptions) {
|
|
53669
53927
|
if (typeof warningOptions === "boolean") return warningOptions;
|
|
53670
53928
|
else return warningOptions[warningType] === true;
|
|
@@ -54265,7 +54523,6 @@ function emitMachineModeOutput(stream, mode, outcome, basePath, pathService) {
|
|
|
54265
54523
|
}
|
|
54266
54524
|
//#endregion
|
|
54267
54525
|
//#region ../stryker-js-html-reporter/dist/index.mjs
|
|
54268
|
-
const MutationTestResultSchema = Unknown;
|
|
54269
54526
|
var HtmlReportCommand = class extends TaggedClass()("HtmlReportCommand", {
|
|
54270
54527
|
report: MutationTestResultSchema,
|
|
54271
54528
|
scriptContent: String$7
|
|
@@ -54365,7 +54622,7 @@ const ReportPart = Struct({
|
|
|
54365
54622
|
label: String$7,
|
|
54366
54623
|
outcome: String$7,
|
|
54367
54624
|
incomplete: Boolean$5,
|
|
54368
|
-
report: optional$4(MutationTestResultSchema
|
|
54625
|
+
report: optional$4(MutationTestResultSchema)
|
|
54369
54626
|
});
|
|
54370
54627
|
const MergeVerdictRow = Struct({
|
|
54371
54628
|
label: String$7,
|
|
@@ -54387,7 +54644,7 @@ var MergeReportPartsCommand = class extends Class("MergeReportPartsCommand")({
|
|
|
54387
54644
|
}) {};
|
|
54388
54645
|
const MergeReportPartsTypeId = Symbol.for("@systemfsoftware/stryker-js/MergeReportParts");
|
|
54389
54646
|
var MergedReports = class extends TaggedClass()("MergedReports", {
|
|
54390
|
-
report: MutationTestResultSchema
|
|
54647
|
+
report: MutationTestResultSchema,
|
|
54391
54648
|
rows: ArraySchema(MergeVerdictRow),
|
|
54392
54649
|
survivors: ArraySchema(MergeSurvivor)
|
|
54393
54650
|
}) {
|
|
@@ -54692,7 +54949,7 @@ const decodedPart = (bytes) => match$7(flatMap$6(fromNullishOr(bytes.metaText),
|
|
|
54692
54949
|
incomplete: false
|
|
54693
54950
|
};
|
|
54694
54951
|
return match$7(fromNullishOr(bytes.reportText), {
|
|
54695
|
-
onSome: (text) => match$7(decodeOption(fromJsonString(MutationTestResultSchema
|
|
54952
|
+
onSome: (text) => match$7(decodeOption(fromJsonString(MutationTestResultSchema))(text), {
|
|
54696
54953
|
onNone: () => ({
|
|
54697
54954
|
part: some(base),
|
|
54698
54955
|
unreadable: true
|
|
@@ -61438,9 +61695,10 @@ const sandboxFor = (platform, fileName, activeMutantId) => {
|
|
|
61438
61695
|
exports: moduleExports,
|
|
61439
61696
|
__filename: fileName
|
|
61440
61697
|
};
|
|
61441
|
-
sandbox
|
|
61442
|
-
|
|
61443
|
-
|
|
61698
|
+
return Object.assign(sandbox, {
|
|
61699
|
+
global: sandbox,
|
|
61700
|
+
globalThis: sandbox
|
|
61701
|
+
});
|
|
61444
61702
|
};
|
|
61445
61703
|
const resultFromRun = (failureMessage, timeSpentMs) => value(failureMessage).pipe(when(string, (failure) => ({
|
|
61446
61704
|
status: "complete",
|
|
@@ -61464,10 +61722,7 @@ const isPlainObject = (value) => {
|
|
|
61464
61722
|
if (!isObject(value)) return false;
|
|
61465
61723
|
return true;
|
|
61466
61724
|
};
|
|
61467
|
-
const descriptorValue = (descriptor) =>
|
|
61468
|
-
if (descriptor === void 0) return;
|
|
61469
|
-
return descriptor.value;
|
|
61470
|
-
};
|
|
61725
|
+
const descriptorValue = (descriptor) => descriptor === void 0 ? void 0 : descriptor.value;
|
|
61471
61726
|
const hostStrykerNamespace = () => {
|
|
61472
61727
|
const current = descriptorValue(Object.getOwnPropertyDescriptor(globalThis, INSTRUMENTER_CONSTANTS.NAMESPACE));
|
|
61473
61728
|
if (isPlainObject(current)) return current;
|
|
@@ -79214,8 +79469,12 @@ const incrementalDiffOfChanges = (input) => {
|
|
|
79214
79469
|
};
|
|
79215
79470
|
};
|
|
79216
79471
|
const computeIncrementalDiff = (input) => value(input.force).pipe(when(true, () => forcedDiff(input)), orElse$1(() => incrementalDiffOfChanges(input)));
|
|
79217
|
-
const
|
|
79218
|
-
const
|
|
79472
|
+
const filesFieldOf = (report) => getOrElse(decodeUnknownOption(PreviousFilesSchema)(report.files), () => ({}));
|
|
79473
|
+
const previousFilesFrom = (report) => hasProperty(report, "files") ? filesFieldOf(report) : {};
|
|
79474
|
+
const previousFilesOf = (rawReport) => isObject(rawReport) ? previousFilesFrom(rawReport) : {};
|
|
79475
|
+
const testFilesFieldOf = (report) => getOrElse(decodeUnknownOption(PreviousTestFilesSchema)(report.testFiles), () => ({}));
|
|
79476
|
+
const previousTestFilesFrom = (report) => hasProperty(report, "testFiles") ? testFilesFieldOf(report) : {};
|
|
79477
|
+
const previousTestFilesOf = (rawReport) => isObject(rawReport) ? previousTestFilesFrom(rawReport) : {};
|
|
79219
79478
|
const hasTestFileName = (result) => result.fileName !== void 0;
|
|
79220
79479
|
const testIdsByRelativeFile = (testCoverage, basePath) => {
|
|
79221
79480
|
const byFile = {};
|
|
@@ -79302,15 +79561,18 @@ const compileIgnoreRule = (pattern) => {
|
|
|
79302
79561
|
//#endregion
|
|
79303
79562
|
//#region src/config/merge-config.ts
|
|
79304
79563
|
const usable = (value, key) => key !== "__proto__" && value !== void 0;
|
|
79305
|
-
const
|
|
79306
|
-
|
|
79307
|
-
|
|
79564
|
+
const isConfigRecord = (value) => isObject(value);
|
|
79565
|
+
const copyRecord = (source) => filter$3(source, usable);
|
|
79566
|
+
const mergeNested = (base, override) => isConfigRecord(override) ? mergeRecords(base, override) : override;
|
|
79567
|
+
const mergeKeyInto = (merged, key, override) => {
|
|
79568
|
+
const base = merged[key];
|
|
79569
|
+
merged[key] = isConfigRecord(base) ? mergeNested(base, override) : override;
|
|
79570
|
+
};
|
|
79571
|
+
const mergeRecords = (base, overrides) => {
|
|
79572
|
+
const merged = copyRecord(base);
|
|
79573
|
+
for (const [key, override] of Object.entries(filter$3(overrides, usable))) mergeKeyInto(merged, key, override);
|
|
79574
|
+
return merged;
|
|
79308
79575
|
};
|
|
79309
|
-
const combine$1 = (left, right) => {
|
|
79310
|
-
if (isObject(left)) return combineNested(left, right);
|
|
79311
|
-
return right;
|
|
79312
|
-
};
|
|
79313
|
-
const mergeRecords = (base, overrides) => union$1(base, filter$3(overrides, usable), combine$1);
|
|
79314
79576
|
const mergeConfig = (defaults, overrides) => mergeRecords(defaults, overrides);
|
|
79315
79577
|
//#endregion
|
|
79316
79578
|
//#region src/Project.ignore.ts
|
|
@@ -79619,6 +79881,7 @@ const buildTestRunner = (context, childProcessRunner) => gen(function* () {
|
|
|
79619
79881
|
//#endregion
|
|
79620
79882
|
//#region src/run/load-config.cell.ts
|
|
79621
79883
|
const isNonNullObject = (value) => typeof value === "object" && value !== null;
|
|
79884
|
+
const isRecordValue = (value) => isNonNullObject(value) && Array.isArray(value) === false;
|
|
79622
79885
|
const optionsPath = (...path) => path.join(".");
|
|
79623
79886
|
const combine = (prefixes, suffixes, extensions) => prefixes.flatMap((prefix) => suffixes.flatMap((suffix) => extensions.map((extension) => `${prefix}stryker${suffix}.${extension}`)));
|
|
79624
79887
|
const CONFIG_FILE_NAME_PREFIXES = ["", "."];
|
|
@@ -79639,55 +79902,19 @@ const unsupportedConfigHint = (file) => `"${file}" is not a supported config fil
|
|
|
79639
79902
|
const extendsChildHint = (file) => `The extended config "${file}" is a JSON or CommonJS config file, which Stryker no longer reads. Convert it to a config module — Stryker reads config modules with ${SUPPORTED_CONFIG_FILE_EXTENSION_GUIDE} — and point "extends" at the converted file.`;
|
|
79640
79903
|
const shadowedLegacyWarning = (legacyFile, supportedFile) => `Ignoring the legacy config file "${legacyFile}": "${supportedFile}" is the config Stryker reads. Stryker no longer reads JSON or CommonJS config files; delete the legacy file.`;
|
|
79641
79904
|
const isArrayValue = (value) => Array.isArray(value);
|
|
79642
|
-
const
|
|
79905
|
+
const isMapValue = (value) => value instanceof Map;
|
|
79906
|
+
const isSetValue = (value) => value instanceof Set;
|
|
79907
|
+
const freezeArrayValue = (value) => Object.freeze(value.map((element) => deepFreeze(element)));
|
|
79643
79908
|
const freezeMapEntry = ([entryKey, entryValue]) => [deepFreeze(entryKey), deepFreeze(entryValue)];
|
|
79644
79909
|
const freezeMapValue = (value) => Object.freeze(new Map([...value.entries()].map(freezeMapEntry)));
|
|
79645
|
-
const freezeSetValue = (value) => Object.freeze(new Set([...value.values()].map(deepFreeze)));
|
|
79910
|
+
const freezeSetValue = (value) => Object.freeze(new Set([...value.values()].map((element) => deepFreeze(element))));
|
|
79646
79911
|
const freezeRegExpValue = (value) => Object.freeze(value);
|
|
79647
79912
|
const freezeRecordValue = (value) => Object.freeze(Object.entries(value).reduce((frozen, [property, propertyValue]) => {
|
|
79648
79913
|
frozen[property] = deepFreeze(propertyValue);
|
|
79649
79914
|
return frozen;
|
|
79650
79915
|
}, {}));
|
|
79651
79916
|
function deepFreeze(target) {
|
|
79652
|
-
return value(target).pipe(when(isArrayValue, freezeArrayValue), when(
|
|
79653
|
-
}
|
|
79654
|
-
const scopedUnserializable = (scope) => (description) => ({
|
|
79655
|
-
...description,
|
|
79656
|
-
path: [scope, ...description.path]
|
|
79657
|
-
});
|
|
79658
|
-
const describeUnserializableChild = (child, scope) => value(findUnserializables(child)).pipe(when(void 0, () => []), orElse$1((descriptions) => descriptions.map(scopedUnserializable(scope))));
|
|
79659
|
-
const collectUnserializables = (groups) => {
|
|
79660
|
-
const found = groups.flat();
|
|
79661
|
-
if (found.length > 0) return found;
|
|
79662
|
-
};
|
|
79663
|
-
const describeUnserializableArray = (value) => collectUnserializables(value.map((child, index) => describeUnserializableChild(child, index.toString())));
|
|
79664
|
-
const describeUnserializableRecord = (value) => collectUnserializables(Object.entries(value).map(([key, child]) => describeUnserializableChild(child, key)));
|
|
79665
|
-
const isPlainObjectValue = (value) => !Array.isArray(value) && value.constructor === Object;
|
|
79666
|
-
const classNameOf = (value$9) => value(value$9.constructor).pipe(when(defined, (ctor) => ctor.name), orElse$1(() => "Object"));
|
|
79667
|
-
const describeUnserializableInstance = (value) => [{
|
|
79668
|
-
path: [],
|
|
79669
|
-
reason: `Value is an instance of "${classNameOf(value)}", this detail will get lost in translation during serialization`
|
|
79670
|
-
}];
|
|
79671
|
-
const describeUnserializableObject = (value$10) => value(value$10).pipe(when(isArrayValue, describeUnserializableArray), when(isPlainObjectValue, describeUnserializableRecord), orElse$1(describeUnserializableInstance));
|
|
79672
|
-
const NON_JSON_PRIMITIVE_TYPES = [
|
|
79673
|
-
"bigint",
|
|
79674
|
-
"function",
|
|
79675
|
-
"symbol"
|
|
79676
|
-
];
|
|
79677
|
-
const isNonJsonPrimitive = (value) => NON_JSON_PRIMITIVE_TYPES.includes(typeof value);
|
|
79678
|
-
const describeNonJsonPrimitive = (value) => [{
|
|
79679
|
-
path: [],
|
|
79680
|
-
reason: `Primitive type "${typeof value}" has no JSON representation`
|
|
79681
|
-
}];
|
|
79682
|
-
const describeNumber = (value) => {
|
|
79683
|
-
if (isFinite(value)) return void 0;
|
|
79684
|
-
return [{
|
|
79685
|
-
reason: `Number value \`${value}\` has no JSON representation`,
|
|
79686
|
-
path: []
|
|
79687
|
-
}];
|
|
79688
|
-
};
|
|
79689
|
-
function findUnserializables(thing) {
|
|
79690
|
-
return value(thing).pipe(when((value) => typeof value === "number", describeNumber), when(isNonJsonPrimitive, describeNonJsonPrimitive), when(isNonNullObject, describeUnserializableObject), orElse$1(() => void 0));
|
|
79917
|
+
return value(target).pipe(when(isArrayValue, freezeArrayValue), when(isMapValue, freezeMapValue), when((value) => value instanceof RegExp, freezeRegExpValue), when(isSetValue, freezeSetValue), when(isRecordValue, freezeRecordValue), orElse$1(() => target));
|
|
79691
79918
|
}
|
|
79692
79919
|
function isWarningEnabled(warningType, warningOptions) {
|
|
79693
79920
|
if (typeof warningOptions === "boolean") return warningOptions;
|
|
@@ -79748,10 +79975,18 @@ const mergePluginDescriptors = (parentPlugins, childPlugins) => {
|
|
|
79748
79975
|
const merged = [...parentPlugins, ...childPlugins];
|
|
79749
79976
|
return merged.filter(isFirstDescriptorOccurrence(merged));
|
|
79750
79977
|
};
|
|
79751
|
-
const
|
|
79752
|
-
|
|
79753
|
-
|
|
79754
|
-
|
|
79978
|
+
const isConfigOptionsRecord = (value) => isNonNullObject(value) && Array.isArray(value) === false;
|
|
79979
|
+
function mergeConfigRecords(parentNested, childNested) {
|
|
79980
|
+
return {
|
|
79981
|
+
...parentNested,
|
|
79982
|
+
...childNested
|
|
79983
|
+
};
|
|
79984
|
+
}
|
|
79985
|
+
const toConfigRecordOption = (value) => isConfigOptionsRecord(value) ? some(value) : none();
|
|
79986
|
+
const inheritNested = (parentValue, childValue) => match$7(all$2([toConfigRecordOption(parentValue), toConfigRecordOption(childValue)]), {
|
|
79987
|
+
onSome: ([parentNested, childNested]) => mergeConfigRecords(parentNested, childNested),
|
|
79988
|
+
onNone: () => childValue
|
|
79989
|
+
});
|
|
79755
79990
|
const inheritEntry = (out, key, parentValue, childValue) => value(childValue).pipe(when(null, () => {
|
|
79756
79991
|
const next = { ...out };
|
|
79757
79992
|
delete next[key];
|
|
@@ -79807,15 +80042,20 @@ const decodeConfigDocument = (configFile, document) => decodeUnknownEffect(Confi
|
|
|
79807
80042
|
file: configFile,
|
|
79808
80043
|
cause
|
|
79809
80044
|
})));
|
|
79810
|
-
const
|
|
79811
|
-
file: configFile,
|
|
79812
|
-
cause: "Config file must have a default export!"
|
|
79813
|
-
}))), when(isNonNullObject, (value) => succeed$5(value)), orElse$1(() => fail$2(ConfigFileInvalidError.make({
|
|
80045
|
+
const failInvalidConfig = (configFile, cause) => fail$2(ConfigFileInvalidError.make({
|
|
79814
80046
|
file: configFile,
|
|
79815
|
-
cause
|
|
79816
|
-
}))
|
|
80047
|
+
cause
|
|
80048
|
+
}));
|
|
80049
|
+
const requireDefaultExport = (configFile, defaultExport) => defaultExport === void 0 ? failInvalidConfig(configFile, "Config file must have a default export!") : settleObjectExport(configFile, defaultExport);
|
|
80050
|
+
function settleObjectExport(configFile, value) {
|
|
80051
|
+
return isNonNullObject(value) ? succeed$5(value) : failInvalidConfig(configFile, "Default export of config file must be an object!");
|
|
80052
|
+
}
|
|
79817
80053
|
const isConfigFactory = (value) => typeof value === "function";
|
|
79818
|
-
|
|
80054
|
+
function wrappedFactoryFailure(error) {
|
|
80055
|
+
return new Error(`Evaluating the config module's exported factory failed: ${error.message}`, { cause: error });
|
|
80056
|
+
}
|
|
80057
|
+
const factoryFailureCause = (cause) => cause instanceof Error ? wrappedFactoryFailure(cause) : cause;
|
|
80058
|
+
const applyConfigFactory = (factory, configEnv) => factory(configEnv);
|
|
79819
80059
|
/**
|
|
79820
80060
|
* Settle a config module's default export into the object the document schema decodes.
|
|
79821
80061
|
*
|
|
@@ -79826,7 +80066,7 @@ const factoryFailureCause = (cause) => value(cause).pipe(when(instanceOf(Error),
|
|
|
79826
80066
|
* non-null object and would otherwise reach the document decoder as one.
|
|
79827
80067
|
*/
|
|
79828
80068
|
const settleConfigDefault = (configFile, defaultExport, configEnv) => tryPromise({
|
|
79829
|
-
try: () => Promise.resolve(defaultExport).then((exported) =>
|
|
80069
|
+
try: () => Promise.resolve(defaultExport).then((exported) => isConfigFactory(exported) ? applyConfigFactory(exported, configEnv) : exported),
|
|
79830
80070
|
catch: (cause) => ConfigFileInvalidError.make({
|
|
79831
80071
|
file: configFile,
|
|
79832
80072
|
cause: factoryFailureCause(cause)
|
|
@@ -79834,14 +80074,14 @@ const settleConfigDefault = (configFile, defaultExport, configEnv) => tryPromise
|
|
|
79834
80074
|
}).pipe(flatMap$2((settled) => requireDefaultExport(configFile, settled)));
|
|
79835
80075
|
const ERASABLE_SYNTAX_HELP = "Config modules may use only erasable TypeScript syntax: no enums, no namespaces with runtime code, no parameter properties, and no decorators.";
|
|
79836
80076
|
const carriesCode = (cause) => cause instanceof Error && "code" in cause;
|
|
79837
|
-
|
|
79838
|
-
|
|
79839
|
-
|
|
79840
|
-
|
|
79841
|
-
const errorMessageOf = (cause) =>
|
|
79842
|
-
|
|
79843
|
-
|
|
79844
|
-
}
|
|
80077
|
+
function codeOf(coded) {
|
|
80078
|
+
return typeof coded.code === "string" ? coded.code : void 0;
|
|
80079
|
+
}
|
|
80080
|
+
const errorCodeOf = (cause) => carriesCode(cause) ? codeOf(cause) : void 0;
|
|
80081
|
+
const errorMessageOf = (cause) => cause instanceof Error ? errorTextOf(cause) : void 0;
|
|
80082
|
+
function errorTextOf(error) {
|
|
80083
|
+
return typeof error.message === "string" ? error.message : void 0;
|
|
80084
|
+
}
|
|
79845
80085
|
const importFailureDetail = (failure) => errorMessageOf(failure.cause) ?? failure.message;
|
|
79846
80086
|
const configImportCause = (configFile, failure) => value(errorCodeOf(failure.cause)).pipe(when("ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX", () => new Error(`The config file "${configFile}" uses TypeScript syntax Node cannot execute. ${ERASABLE_SYNTAX_HELP}`, { cause: failure.cause })), when("ERR_UNKNOWN_FILE_EXTENSION", () => new Error(`The config file "${configFile}" has an extension Node cannot load. Stryker reads config modules with ${SUPPORTED_CONFIG_FILE_EXTENSION_GUIDE}.`, { cause: failure.cause })), when("ERR_MODULE_NOT_FOUND", () => new Error(`The config file "${configFile}" imports a module Node cannot find. The specifier is most likely not installed — install it as a dependency of the project, or remove the import. Node reported: ${importFailureDetail(failure)}`, { cause: failure.cause })), when("ERR_PACKAGE_PATH_NOT_EXPORTED", () => new Error(`The config file "${configFile}" imports a path a package does not export. The package is installed but its "exports" map leaves this specifier out — import a path the package publishes. Node reported: ${importFailureDetail(failure)}`, { cause: failure.cause })), orElse$1(() => failure));
|
|
79847
80087
|
const configModuleUrl = (configFile, pathService) => value(configFile.startsWith("file:")).pipe(when(true, () => try_({
|
|
@@ -80070,10 +80310,10 @@ const discoverConfigFile = () => firstExistingConfigFile([...SUPPORTED_CONFIG_FI
|
|
|
80070
80310
|
onSome: (supportedFile) => warnShadowedLegacyConfig(supportedFile)
|
|
80071
80311
|
})));
|
|
80072
80312
|
function findConfigFile(configFileName) {
|
|
80073
|
-
return
|
|
80313
|
+
return typeof configFileName === "string" ? configFileFor(configFileName) : discoverConfigFile();
|
|
80074
80314
|
}
|
|
80075
|
-
const resolveChildExtends = (configFile, child, configEnv) =>
|
|
80076
|
-
const isCiEnvironment = String$6("CI").pipe(map$7((value$
|
|
80315
|
+
const resolveChildExtends = (configFile, child, configEnv) => "extends" in child ? resolveExtends(configFile, child, configEnv) : succeed$5(child);
|
|
80316
|
+
const isCiEnvironment = String$6("CI").pipe(map$7((value$8) => value(value$8.trim().toLowerCase()).pipe(when("", () => false), when("0", () => false), when("false", () => false), orElse$1(() => true))), orElseSucceed(() => false));
|
|
80077
80317
|
function loadOptionsFromConfigFile(cliOptions, configEnv) {
|
|
80078
80318
|
return findConfigFile(cliOptions["configFile"]).pipe(flatMap$2((configFile) => value(configFile).pipe(when(void 0, () => succeed$5({})), orElse$1((found) => readConfigModule(found, configEnv).pipe(flatMap$2((child) => resolveChildExtends(found, child, configEnv)))))));
|
|
80079
80319
|
}
|
|
@@ -80087,7 +80327,7 @@ function readConfig(cliOptions, invocation) {
|
|
|
80087
80327
|
};
|
|
80088
80328
|
const cliRecord = yield* decodeEffect(ConfigDocumentSchema)(cliOptions).pipe(orDie);
|
|
80089
80329
|
const fileRecord = yield* loadOptionsFromConfigFile(cliRecord, configEnv);
|
|
80090
|
-
const fileOptions = yield* match$6(
|
|
80330
|
+
const fileOptions = yield* match$6(decodeResult(ConfigDocumentSchema)(fileRecord), {
|
|
80091
80331
|
onFailure: (cause) => fail$2(ConfigFileInvalidError.make({
|
|
80092
80332
|
file: "config",
|
|
80093
80333
|
cause
|
|
@@ -80197,7 +80437,9 @@ const failPluginLoad = (descriptor, error) => logWarning(`Error during loading "
|
|
|
80197
80437
|
}))));
|
|
80198
80438
|
const modulePluginContributions = (module) => value(hasProperty(module, "strykerPlugins")).pipe(when(true, () => decodeUnknownResult(PluginModuleSchema)(module).pipe(map$12((pluginModule) => pluginModule.strykerPlugins))), orElse$1(() => succeed$9(void 0)));
|
|
80199
80439
|
const moduleIgnorers = (module) => value(hasProperty(module, "strykerIgnorers")).pipe(when(true, () => decodeUnknownResult(IgnorerModuleSchema)(module).pipe(map$12((ignorerModule) => ignorerModule.strykerIgnorers))), orElse$1(() => succeed$9(void 0)));
|
|
80200
|
-
const moduleSchemaContribution = (module) =>
|
|
80440
|
+
const moduleSchemaContribution = (module) => {
|
|
80441
|
+
if (hasValidationSchemaContribution(module)) return module.strykerValidationSchema;
|
|
80442
|
+
};
|
|
80201
80443
|
const pluginContributionsOf = (module) => flatMap$5(moduleIgnorers(module), (ignorers) => map$12(modulePluginContributions(module), (plugins) => ({
|
|
80202
80444
|
plugins,
|
|
80203
80445
|
ignorers,
|
|
@@ -80346,9 +80588,9 @@ const declaresTerminalReport = (result) => {
|
|
|
80346
80588
|
if (result.done !== true) return isTerminalReportEvent(result.value);
|
|
80347
80589
|
return false;
|
|
80348
80590
|
};
|
|
80349
|
-
const closeIterator = (iterator, value$
|
|
80591
|
+
const closeIterator = (iterator, value$7) => {
|
|
80350
80592
|
const finish = iterator.return?.bind(iterator);
|
|
80351
|
-
return value(finish).pipe(when(void 0, () => Promise.resolve(closedIteratorResult)), orElse$1((close) => close(value$
|
|
80593
|
+
return value(finish).pipe(when(void 0, () => Promise.resolve(closedIteratorResult)), orElse$1((close) => close(value$7)));
|
|
80352
80594
|
};
|
|
80353
80595
|
const attachReporterFactories = (inputs, options, init) => forEach$1(inputs, (input) => gen(function* () {
|
|
80354
80596
|
const inbox = yield* bounded(256);
|
|
@@ -80924,9 +81166,9 @@ function resolveAgainstBase(basePath, pattern) {
|
|
|
80924
81166
|
const base = trimTrailingSlashes(normalizeFileName$1(basePath));
|
|
80925
81167
|
return value(normalized.startsWith("/")).pipe(when(true, () => normalized), orElse$1(() => value(normalized.startsWith("./")).pipe(when(true, () => `${base}/${normalized.slice(2)}`), orElse$1(() => `${base}/${normalized}`))));
|
|
80926
81168
|
}
|
|
80927
|
-
function trimTrailingSlashes(value$
|
|
80928
|
-
const trimmed = value$
|
|
80929
|
-
return value(trimmed.length === 0).pipe(when(true, () => value$
|
|
81169
|
+
function trimTrailingSlashes(value$6) {
|
|
81170
|
+
const trimmed = value$6.replace(/\/+$/, "");
|
|
81171
|
+
return value(trimmed.length === 0).pipe(when(true, () => value$6.slice(0, 1)), orElse$1(() => trimmed));
|
|
80930
81172
|
}
|
|
80931
81173
|
function globPatternOf(pattern) {
|
|
80932
81174
|
if (typeof pattern === "boolean") return value(pattern).pipe(when(true, () => DEFAULT_GLOB$1), orElse$1(() => void 0));
|
|
@@ -81611,7 +81853,10 @@ const parseJsonText = (jsonText) => {
|
|
|
81611
81853
|
return fail$6(errorToString(error));
|
|
81612
81854
|
}
|
|
81613
81855
|
};
|
|
81614
|
-
const parseTsConfigShape = (fileName, parsed) =>
|
|
81856
|
+
const parseTsConfigShape = (fileName, parsed) => {
|
|
81857
|
+
if (is$2(TsConfigSchema)(parsed)) return succeed$9(parsed);
|
|
81858
|
+
return fail$6(tsConfigParseError(fileName, `parsed to ${JSON.stringify(parsed)}, which does not match the tsconfig shape this package consumes`));
|
|
81859
|
+
};
|
|
81615
81860
|
function parseTsConfig(fileName, jsonText) {
|
|
81616
81861
|
return match$6(parseJsonText(jsonText), {
|
|
81617
81862
|
onFailure: (reason) => fail$6(tsConfigParseError(fileName, reason)),
|
|
@@ -81851,7 +82096,7 @@ const restoreOriginalFiles = (workingDirectory, backupDirectory, basePath) => ad
|
|
|
81851
82096
|
yield* logInfo(`Resetting your original files from ${p.relative(basePath, backupDirectory)}.`);
|
|
81852
82097
|
yield* moveDirectoryRecursive(backupDirectory, workingDirectory).pipe(orDie);
|
|
81853
82098
|
}).pipe(orDie));
|
|
81854
|
-
const isNonEmptyString = (value$
|
|
82099
|
+
const isNonEmptyString = (value$5) => value(value$5).pipe(when(isString, (text) => text !== ""), orElse$1(() => false));
|
|
81855
82100
|
const runConfiguredBuild = (options, workingDirectory) => value(options.buildCommand).pipe(when(isNonEmptyString, (command) => logInfo(`Running build command "${command}" in "${workingDirectory}".`).pipe(andThen$2(() => runBuildCommandIn(command, workingDirectory)))), orElse$1(() => void_$1));
|
|
81856
82101
|
const linksNodeModules = (options) => value(options.symlinkNodeModules).pipe(when(true, () => !options.inPlace), orElse$1(() => false));
|
|
81857
82102
|
const linkNodeModules = (nodeModules, workingDirectory, basePath, pathService) => gen(function* () {
|
|
@@ -82897,8 +83142,8 @@ const reportDroppedMutants = (dropped) => value(dropped.length).pipe(when(0, ()
|
|
|
82897
83142
|
yield* update$1(checkerMutantsSkipped, dropped.length);
|
|
82898
83143
|
yield* logWarning(`${dropped.length} mutant(s) cannot be described to a checker and were left out of the run (${droppedIdsOf(dropped)})`);
|
|
82899
83144
|
})));
|
|
82900
|
-
const
|
|
82901
|
-
const reasonOf = (result) =>
|
|
83145
|
+
const stringReasonOrUndefined = (val) => typeof val === "string" ? val : void 0;
|
|
83146
|
+
const reasonOf = (result) => "reason" in result ? stringReasonOrUndefined(result.reason) : void 0;
|
|
82902
83147
|
const stopWallClock = (result) => {
|
|
82903
83148
|
if (!wallClockTimeoutStopsRun(result.status, reasonOf(result))) return void_$1;
|
|
82904
83149
|
return fail$2(StageError.make({
|
|
@@ -83244,7 +83489,7 @@ const padColumn = (column, input) => value(column.kind === "file").pipe(when(tru
|
|
|
83244
83489
|
const drawLine = (column) => repeat("-", columnWidth(column));
|
|
83245
83490
|
const drawHeader = (column) => padColumn(column, column.header);
|
|
83246
83491
|
const mutationScoreOf = (scoreType, metrics) => value(scoreType).pipe(when("total", () => metrics.mutationScore), when("covered", () => metrics.mutationScoreBasedOnCoveredCode), exhaustive);
|
|
83247
|
-
const thresholdColor = (thresholds, value$
|
|
83492
|
+
const thresholdColor = (thresholds, value$4) => value(value$4).pipe(when((present) => Number.isNaN(present), () => ansi.grey), when((present) => present >= thresholds.high, () => ansi.green), when((present) => present >= thresholds.low, () => ansi.yellow), orElse$1(() => ansi.red));
|
|
83248
83493
|
const scoreColor = (column, score) => value(column.allowColor).pipe(when(true, () => thresholdColor(column.thresholds, mutationScoreOf(column.scoreType, score.metrics))), when(false, () => (input) => input), exhaustive);
|
|
83249
83494
|
const colorFor = (column, score) => value(column).pipe(discriminator("kind")("mutationScore", (scored) => scoreColor(scored, score)), orElse$1(() => (input) => input));
|
|
83250
83495
|
const drawTableCell = (column, score, ancestorCount) => {
|
|
@@ -83365,7 +83610,7 @@ const drawMutationScoreTable = (metricsResult, options) => {
|
|
|
83365
83610
|
//#endregion
|
|
83366
83611
|
//#region src/Reporter.schema.ts
|
|
83367
83612
|
var ClearTextReportCommand = class extends TaggedClass()("ClearTextReportCommand", {
|
|
83368
|
-
report: MutationTestResultSchema
|
|
83613
|
+
report: MutationTestResultSchema,
|
|
83369
83614
|
metrics: MetricsResultSchema
|
|
83370
83615
|
}) {};
|
|
83371
83616
|
//#endregion
|
|
@@ -83849,9 +84094,7 @@ var MachineReporters = class extends TaggedClass()("MachineReporters", { reporte
|
|
|
83849
84094
|
const planPrepare = Workflow_exports.total(PrepareDecoded, (decoded) => value(decoded.mode).pipe(when("human", () => succeed$9(HumanReporters.make({ reporters: decoded.reporters }))), when("machine", () => succeed$9(MachineReporters.make({ reporters: decoded.reporters }))), exhaustive));
|
|
83850
84095
|
//#endregion
|
|
83851
84096
|
//#region src/run/prepare.cell.ts
|
|
83852
|
-
const
|
|
83853
|
-
const asRecord = (value$4) => value(value$4).pipe(when(isRecord, (record) => Object.fromEntries(Object.entries(record))), orElse$1(() => ({})));
|
|
83854
|
-
const schemaPropertiesOf = (document) => asRecord(asRecord(document)["properties"]);
|
|
84097
|
+
const schemaPropertiesOf = (document) => getOrElse(fromNullishOr(document.properties), () => ({}));
|
|
83855
84098
|
const buildMergedSchema = (core, contributions) => value(contributions.length === 0).pipe(when(true, () => core), orElse$1(() => ({
|
|
83856
84099
|
...core,
|
|
83857
84100
|
properties: Object.assign({}, schemaPropertiesOf(core), ...contributions.map((contribution) => schemaPropertiesOf(contribution)))
|
|
@@ -84575,7 +84818,7 @@ const sha256 = /* @__PURE__ */ createHasher(() => new _SHA256(), /* @__PURE__ */
|
|
|
84575
84818
|
//#endregion
|
|
84576
84819
|
//#region src/Survivors.ts
|
|
84577
84820
|
const DEFAULT_SURVIVORS_PRIOR_REPORT = "reports/mutation-report.json";
|
|
84578
|
-
const decodePriorReport = decodeUnknownResult(PriorReportDocument);
|
|
84821
|
+
const decodePriorReport = (raw) => decodeUnknownResult(PriorReportDocument)(raw);
|
|
84579
84822
|
const { entries: objectEntries, fromEntries: objectFromEntries } = Object;
|
|
84580
84823
|
const EMPTY_CONFIG = {};
|
|
84581
84824
|
function sourceContentHash(content, hash) {
|