@systemfsoftware/stryker-js 13.0.0 → 13.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.mjs CHANGED
@@ -52659,6 +52659,27 @@ const make$25 = /*#__PURE__*/ map$7(/*#__PURE__*/ service(OtelTracer), (tracer)
52659
52659
  }
52660
52660
  }));
52661
52661
  /**
52662
+ * Creates an Effect external span from an OpenTelemetry span context, preserving trace flags and trace state when provided.
52663
+ *
52664
+ * @category constructors
52665
+ * @since 4.0.0
52666
+ */
52667
+ const makeExternalSpan = (options) => {
52668
+ let annotations = empty$11();
52669
+ if (options.traceFlags !== void 0) annotations = add$1(annotations, OtelTraceFlags, options.traceFlags);
52670
+ if (typeof options.traceState === "string") try {
52671
+ annotations = add$1(annotations, OtelTraceState, createTraceState(options.traceState));
52672
+ } catch {}
52673
+ else if (options.traceState) annotations = add$1(annotations, OtelTraceState, options.traceState);
52674
+ return {
52675
+ _tag: "ExternalSpan",
52676
+ traceId: options.traceId,
52677
+ spanId: options.spanId,
52678
+ sampled: isNotUndefined(options.traceFlags) ? isSampled(options.traceFlags) : true,
52679
+ annotations
52680
+ };
52681
+ };
52682
+ /**
52662
52683
  * Layer that creates an OpenTelemetry tracer from the provided tracer provider and resource metadata.
52663
52684
  *
52664
52685
  * @category layers
@@ -57422,7 +57443,7 @@ const layer$8 = /*#__PURE__*/ succeed$6(Path$1)({
57422
57443
  .../*#__PURE__*/ fileUrlOps(void 0)
57423
57444
  });
57424
57445
  //#endregion
57425
- //#region ../../node_modules/.pnpm/@systemfsoftware+effect-cell-types@10.2.0_effect@4.0.0-rc.117/node_modules/@systemfsoftware/effect-cell-types/dist/rolldown-runtime-D7D4PA-g.mjs
57446
+ //#region ../../node_modules/.pnpm/@systemfsoftware+effect-cell-types@11.0.0_effect@4.0.0-rc.117/node_modules/@systemfsoftware/effect-cell-types/dist/rolldown-runtime-D7D4PA-g.mjs
57426
57447
  var __defProp$3 = Object.defineProperty;
57427
57448
  var __exportAll$3 = (all, no_symbols) => {
57428
57449
  let target = {};
@@ -57729,7 +57750,7 @@ const update$1 = /*#__PURE__*/ dual(2, (self, f) => sync(() => {
57729
57750
  */
57730
57751
  const updateAndGet = /*#__PURE__*/ dual(2, (self, f) => sync(() => self.ref.current = f(self.ref.current)));
57731
57752
  //#endregion
57732
- //#region ../../node_modules/.pnpm/@systemfsoftware+effect-cell-types@10.2.0_effect@4.0.0-rc.117/node_modules/@systemfsoftware/effect-cell-types/dist/index.mjs
57753
+ //#region ../../node_modules/.pnpm/@systemfsoftware+effect-cell-types@11.0.0_effect@4.0.0-rc.117/node_modules/@systemfsoftware/effect-cell-types/dist/index.mjs
57733
57754
  var Blueprint_exports = /* @__PURE__ */ __exportAll$3({
57734
57755
  IndexId: () => IndexId,
57735
57756
  make: () => make$3$1
@@ -57978,7 +57999,11 @@ const make$1$1 = () => (typeId) => ({
57978
57999
  return self[SlotId];
57979
58000
  }
57980
58001
  });
57981
- var CommandRejected = class extends TaggedError()("CommandRejected", { issue: String$7 }) {};
58002
+ var CommandRejected = class extends TaggedError()("CommandRejected", { issue: String$7 }) {
58003
+ get message() {
58004
+ return this.issue;
58005
+ }
58006
+ };
57982
58007
  var Workflow_exports = /* @__PURE__ */ __exportAll$3({
57983
58008
  InstrumentationBrand: () => InstrumentationBrand,
57984
58009
  WorkflowSchemasKey: () => WorkflowSchemasKey,
@@ -57991,7 +58016,8 @@ const make$21 = (options) => {
57991
58016
  Object.assign(decide, { [WorkflowSchemasKey]: {
57992
58017
  command,
57993
58018
  decision,
57994
- error
58019
+ error,
58020
+ decideStacktrace: String((/* @__PURE__ */ new Error()).stack)
57995
58021
  } });
57996
58022
  return decide;
57997
58023
  };
@@ -58027,6 +58053,32 @@ const entriesOf = (map) => Object.entries(map);
58027
58053
  const isMapDeclaration = (value) => typeof value === "object" && value !== null;
58028
58054
  const annotateFields = (schema, command) => forEach$1(entriesOf(schema[InstrumentationBrand]), ([field, attribute]) => annotateCurrentSpan(attribute, Reflect.get(Object(command), field)), { discard: true });
58029
58055
  const tagOf$1 = (value) => String(Reflect.get(Object(value), "_tag"));
58056
+ const tagIfPresent = (value) => {
58057
+ const tag = Reflect.get(Object(value), "_tag");
58058
+ return typeof tag === "string" ? tag : void 0;
58059
+ };
58060
+ const declaredFields = (schema, command) => Object.fromEntries(entriesOf(schema[InstrumentationBrand]).map(([field]) => [field, Reflect.get(Object(command), field)]));
58061
+ const taggedMember = (command, field) => {
58062
+ const tag = tagIfPresent(Reflect.get(Object(command), field));
58063
+ return tag === void 0 ? [] : [[field, tag]];
58064
+ };
58065
+ const memberTags = (command, fields) => Object.fromEntries(Object.keys(fields).filter((field) => field !== "_tag").flatMap((field) => taggedMember(command, field)));
58066
+ const outcomeTag = (outcome) => match$6(outcome, {
58067
+ onSuccess: tagOf$1,
58068
+ onFailure: tagOf$1
58069
+ });
58070
+ const annotateCellIdentity = (name, stacktrace, decideStacktrace) => gen(function* () {
58071
+ yield* annotateCurrentSpan("cell.name", name);
58072
+ yield* annotateCurrentSpan("cell.stacktrace", stacktrace);
58073
+ yield* annotateCurrentSpan("cell.decide_stacktrace", decideStacktrace);
58074
+ });
58075
+ const annotateCommand = (schema, decoded) => gen(function* () {
58076
+ const commandTag = tagIfPresent(decoded);
58077
+ yield* commandTag === void 0 ? void_$1 : annotateCurrentSpan("cell.command_tag", commandTag);
58078
+ yield* annotateCurrentSpan("cell.member_tags", memberTags(decoded, schema.fields));
58079
+ yield* annotateCurrentSpan("cell.declared", declaredFields(schema, decoded));
58080
+ });
58081
+ const annotateCellOutcome = (outcome) => annotateCurrentSpan("cell.outcome", outcomeTag(outcome));
58030
58082
  const holdsBrand = (holder) => isMapDeclaration(Reflect.get(Object(holder), InstrumentationBrand));
58031
58083
  const hasHeldBrand = (value) => holdsBrand(Reflect.get(Object(value), "constructor"));
58032
58084
  const heldMap = (value) => hasHeldBrand(value) ? value.constructor[InstrumentationBrand] : {};
@@ -58048,14 +58100,14 @@ const recordDuration = (histogram, startNanos, resultClass) => gen(function* ()
58048
58100
  yield* update$2(withAttributes(histogram, { result_class: resultClass }), seconds);
58049
58101
  });
58050
58102
  /** Runs the shell inside the parent span, records duration on every exit, and closes the span. */
58051
- const monitoredRun = (name, histogram, core) => gen(function* () {
58103
+ const monitoredRun = (name, stacktrace, decideStacktrace, histogram, core) => gen(function* () {
58052
58104
  const settled = yield* make$22("infrastructure");
58053
58105
  const startNanos = yield* monotonicTimeNanos;
58054
58106
  const timed = onExit(core((resultClass) => set(settled, resultClass)), (exit) => gen(function* () {
58055
58107
  const resultClass = yield* get$2(settled);
58056
58108
  yield* recordDuration(histogram, startNanos, recordedClass(isSuccess(exit), resultClass));
58057
58109
  }));
58058
- return yield* withSpan(timed, name);
58110
+ return yield* withSpan(andThen$1(annotateCellIdentity(name, stacktrace, decideStacktrace), timed), name);
58059
58111
  });
58060
58112
  const boundariesFor = (options) => options === void 0 ? DEFAULT_DURATION_BOUNDARIES : options.boundaries;
58061
58113
  const histogramFor = (name, options) => histogram(`app.${name}.duration`, { boundaries: boundariesFor(options) });
@@ -58069,12 +58121,18 @@ const dispatchAll = (handlers, values, raw) => forEach$1(values, (value) => disp
58069
58121
  const isEventList = (candidate) => Array.isArray(candidate);
58070
58122
  const dispatchEncoded = (handlers, encoded, raw) => isEventList(encoded) ? dispatchAll(handlers, encoded, raw) : dispatchOne(handlers, encoded, raw);
58071
58123
  const writeValue = (name, handlers, value, raw) => withSpan(dispatchEncoded(handlers, value, raw), `${name}.write`);
58072
- const rejectedRun = (name, handlers, raw, issue, settle) => andThen$1(settle("failure"), writeValue(name, handlers, new CommandRejected({ issue }), raw));
58124
+ const rejectedRun = (name, handlers, raw, issue, settle) => gen(function* () {
58125
+ yield* settle("failure");
58126
+ yield* annotateCurrentSpan("cell.outcome", "CommandRejected");
58127
+ return yield* writeValue(name, handlers, new CommandRejected({ issue }), raw);
58128
+ });
58073
58129
  const encodeValue = (schema, value) => getOrThrow(encodeResult(schema)(value));
58074
58130
  const outcomeRun = (name, schemas, workflow, handlers, decoded, raw, settle) => gen(function* () {
58075
58131
  yield* annotateFields(schemas.command, decoded);
58132
+ yield* annotateCommand(schemas.command, decoded);
58076
58133
  const outcome = workflow(decoded);
58077
58134
  yield* annotateOutcome(name, outcome);
58135
+ yield* annotateCellOutcome(outcome);
58078
58136
  yield* settle(okOrRefusal(outcome));
58079
58137
  return yield* match$6(outcome, {
58080
58138
  onFailure: (refusal) => writeValue(name, handlers, encodeValue(schemas.error, refusal), raw),
@@ -58098,10 +58156,11 @@ const runOnce = (name, schemas, workflow, handlers, raw, settle) => match$6(deco
58098
58156
  const namedImpl = (name, options) => {
58099
58157
  const histogram = histogramFor(name, options);
58100
58158
  return (read) => {
58159
+ const stacktrace = String((/* @__PURE__ */ new Error()).stack);
58101
58160
  const decide = (workflow) => {
58102
58161
  const schemas = workflow[WorkflowSchemasKey];
58103
58162
  const write = (handlers) => {
58104
- const run = (input) => monitoredRun(name, histogram, (settle) => gen(function* () {
58163
+ const run = (input) => monitoredRun(name, stacktrace, schemas.decideStacktrace, histogram, (settle) => gen(function* () {
58105
58164
  const raw = yield* withSpan(read(input), `${name}.read`);
58106
58165
  return yield* runOnce(name, schemas, workflow, handlers, raw, settle);
58107
58166
  }));
@@ -61737,7 +61796,7 @@ const isEmptyNumber = (value$16) => value(value$16).pipe(when(0, () => true), or
61737
61796
  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(() => false));
61738
61797
  const formatErrnoException = (error) => value(error.stack).pipe(when(hasText, (stack) => `${error.name}: ${error.code} (${error.syscall}) ${stack}`), orElse(() => `${error.name}: ${error.code} (${error.syscall})`));
61739
61798
  const formatError = (error) => value(error.stack).pipe(when(hasText, (stack) => `${error.name}: ${error.message}\n${stack}`), orElse(() => `${error.name}: ${error.message}`));
61740
- const isJsonPrimitive = (value$15) => value(value$15).pipe(when(number, () => true), when(boolean, () => true), when(bigint, () => true), orElse(() => false));
61799
+ const isJsonPrimitive = (value$12) => value(value$12).pipe(when(number, () => true), when(boolean, () => true), when(bigint, () => true), orElse(() => false));
61741
61800
  const jsonText = (error) => getOrElse(try_$2({
61742
61801
  try: () => textIfNonEmpty(JSON.stringify(error)),
61743
61802
  catch: () => void 0
@@ -61751,8 +61810,8 @@ const isNonPlaceholderText = (text) => value({
61751
61810
  }, () => true), orElse(() => false));
61752
61811
  const isUsableText = (value$17) => value(value$17).pipe(when(string, isNonPlaceholderText), orElse(() => false));
61753
61812
  const usableText = (value) => isUsableText(value) ? value : "";
61754
- const objectToStringText = (value$21) => value(fieldOf(value$21, "toString")).pipe(when(instanceOf(Function), (callable) => getOrElse(try_$2({
61755
- try: () => usableText(Reflect.apply(callable, value$21, [])),
61813
+ const objectToStringText = (value$20) => value(fieldOf(value$20, "toString")).pipe(when(instanceOf(Function), (callable) => getOrElse(try_$2({
61814
+ try: () => usableText(Reflect.apply(callable, value$20, [])),
61756
61815
  catch: () => ""
61757
61816
  }), () => "")), orElse(() => ""));
61758
61817
  const toStringText = (error) => isObjectOrArray(error) ? objectToStringText(error) : "";
@@ -61768,14 +61827,14 @@ function nonStringTextOf(error) {
61768
61827
  return primitiveJsonOf(error) ?? stringifyRest(error);
61769
61828
  }
61770
61829
  const errorText = (error) => value(error).pipe(when(isErrnoException, formatErrnoException), orElse(() => formatError(error)));
61771
- const errorNameOf = (value$14) => value(value$14).pipe(when(instanceOf(Error), (error) => textIfNonEmpty(error.name)), orElse(() => void 0));
61830
+ const errorNameOf = (value$11) => value(value$11).pipe(when(instanceOf(Error), (error) => textIfNonEmpty(error.name)), orElse(() => void 0));
61772
61831
  const tagOf = (value$28) => value(textIfNonEmpty(fieldOf(value$28, "_tag"))).pipe(when(hasText, (tag) => tag), orElse(() => errorNameOf(value$28)));
61773
61832
  const textWithNested = (own, nested) => value(own).pipe(when(hasText, (text) => appendNested(text, nested)), orElse(() => nested));
61774
61833
  const appendNested = (own, nested) => value(nested).pipe(when(hasText, (text) => `${own}: ${text}`), orElse(() => own));
61775
61834
  const errorMessage = (error) => value(error.message.length > 0).pipe(when(true, () => error.message), orElse(() => tagOf(error)));
61776
- const errorMessageOrTag = (value$23) => value(value$23).pipe(when(instanceOf(Error), errorMessage), orElse(() => tagOf(value$23)));
61777
- const messageText = (value$11) => value(textIfNonEmpty(fieldOf(value$11, "message"))).pipe(when(hasText, (message) => message), orElse(() => errorMessageOrTag(value$11)));
61778
- const ownCauseText = (value$22) => value(textIfNonEmpty(fieldOf(value$22, "reason"))).pipe(when(hasText, (reason) => reason), orElse(() => messageText(value$22)));
61835
+ const errorMessageOrTag = (value$22) => value(value$22).pipe(when(instanceOf(Error), errorMessage), orElse(() => tagOf(value$22)));
61836
+ const messageText = (value$10) => value(textIfNonEmpty(fieldOf(value$10, "message"))).pipe(when(hasText, (message) => message), orElse(() => errorMessageOrTag(value$10)));
61837
+ const ownCauseText = (value$21) => value(textIfNonEmpty(fieldOf(value$21, "reason"))).pipe(when(hasText, (reason) => reason), orElse(() => messageText(value$21)));
61779
61838
  const isPastDepth = (depth) => depth > 4;
61780
61839
  const isMissingCause = (cause) => cause === void 0 || cause === null;
61781
61840
  function causeText(cause, depth) {
@@ -62019,16 +62078,32 @@ var MutantsUnapplied = class extends TaggedError()("MutantsUnapplied", {
62019
62078
  placer: PlacerNameSchema,
62020
62079
  mutatorNames: ArraySchema(MutatorNameSchema),
62021
62080
  cause: Defect()
62022
- }) {};
62081
+ }) {
62082
+ get message() {
62083
+ return `Failed to apply ${this.mutatorNames.join(", ")} in ${this.fileName}`;
62084
+ }
62085
+ };
62023
62086
  var MutantNotApplied = class extends TaggedError()("MutantNotApplied", {
62024
62087
  fileName: String$7,
62025
62088
  mutatorName: MutatorNameSchema
62026
- }) {};
62027
- var NodeWithoutSpan = class extends TaggedError()("NodeWithoutSpan", { fileName: String$7 }) {};
62089
+ }) {
62090
+ get message() {
62091
+ return `Could not apply the ${this.mutatorName} mutant in ${this.fileName}`;
62092
+ }
62093
+ };
62094
+ var NodeWithoutSpan = class extends TaggedError()("NodeWithoutSpan", { fileName: String$7 }) {
62095
+ get message() {
62096
+ return `Node without a span in ${this.fileName}`;
62097
+ }
62098
+ };
62028
62099
  var MutantsUnplaced = class extends TaggedError()("MutantsUnplaced", {
62029
62100
  fileName: String$7,
62030
62101
  detail: String$7
62031
- }) {};
62102
+ }) {
62103
+ get message() {
62104
+ return `Mutants cannot be placed. This shouldn't happen! Unplaced mutants: ${this.detail}`;
62105
+ }
62106
+ };
62032
62107
  var PlacementRefused = class extends TaggedError()("PlacementRefused", { message: String$7 }) {};
62033
62108
  const LINE_TERMINATOR = /\r\n|[\n\r\u2028\u2029]/g;
62034
62109
  const lineStartsOf = (text) => [0, ...[...text.matchAll(LINE_TERMINATOR)].map((match) => match.index + match[0].length)];
@@ -62785,7 +62860,7 @@ const identifierText = (node) => match$8(fromNullishOr(node), {
62785
62860
  onNone: () => none(),
62786
62861
  onSome: (present) => value(present).pipe(when(isNamedIdentifier, (name) => some(name.name)), when(isStringLiteral$1, (literal) => literalValueText(literal.value)), orElse(() => none()))
62787
62862
  });
62788
- const literalValueText = (value$20) => value(value$20).pipe(when(isString$1, (text) => some(text)), orElse(() => none()));
62863
+ const literalValueText = (value$15) => value(value$15).pipe(when(isString$1, (text) => some(text)), orElse(() => none()));
62789
62864
  const moduleExportName = (name) => getOrElse$1(identifierText(name), () => "");
62790
62865
  const staticMemberName = (member) => value(member.computed).pipe(when(false, () => identifierText(member.property)), orElse(() => none()));
62791
62866
  const nodesOutsideFunctions = (root) => {
@@ -62809,7 +62884,7 @@ const pruneAtFunction = (path) => match$8(onlyWhen(isFunctionLike(path.node), pa
62809
62884
  });
62810
62885
  const moduleCallDataFirst = (module, property, args) => callExpression(memberExpression(module, identifier(property), false), args);
62811
62886
  const moduleCall = dual((args) => args.length >= 3, moduleCallDataFirst);
62812
- const onlyWhenDataFirst = (holds, value$13) => value(holds).pipe(when(true, () => some(value$13)), orElse(() => none()));
62887
+ const onlyWhenDataFirst = (holds, value$27) => value(holds).pipe(when(true, () => some(value$27)), orElse(() => none()));
62813
62888
  const onlyWhen = dual((args) => args.length >= 2, onlyWhenDataFirst);
62814
62889
  const holdsAny = (conditions) => conditions.some((condition) => condition);
62815
62890
  const sameNode = (first, second) => first === second;
@@ -64337,10 +64412,10 @@ const literalWithoutRegex = (node) => match$8(fromNullishOr(node.bigint), {
64337
64412
  onSome: (bigint) => bigint,
64338
64413
  onNone: () => valueLiteralText(node.value)
64339
64414
  });
64340
- const valueLiteralText = (value$10) => value(value$10).pipe(when(string, (v) => JSON.stringify(v)), orElse(nonStringLiteralText));
64341
- const nonStringLiteralText = (value$25) => value(value$25).pipe(when(number, (v) => String(v)), orElse(booleanOrBigintText));
64342
- const booleanOrBigintText = (value$12) => value(value$12).pipe(when(boolean, (v) => String(v)), orElse(bigintText));
64343
- const bigintText = (value$19) => value(value$19).pipe(when((candidate) => typeof candidate === "bigint", (v) => `${String(v)}n`), orElse(() => "null"));
64415
+ const valueLiteralText = (value$25) => value(value$25).pipe(when(string, (v) => JSON.stringify(v)), orElse(nonStringLiteralText));
64416
+ const nonStringLiteralText = (value$19) => value(value$19).pipe(when(number, (v) => String(v)), orElse(booleanOrBigintText));
64417
+ const booleanOrBigintText = (value$26) => value(value$26).pipe(when(boolean, (v) => String(v)), orElse(bigintText));
64418
+ const bigintText = (value$14) => value(value$14).pipe(when((candidate) => typeof candidate === "bigint", (v) => `${String(v)}n`), orElse(() => "null"));
64344
64419
  const flagText = (present, text) => match(isTruthy(present), {
64345
64420
  onTrue: () => text,
64346
64421
  onFalse: () => ""
@@ -64355,7 +64430,7 @@ const objectExpressionText = (ctx, node) => match(node.properties.length === 0,
64355
64430
  onFalse: () => `{ ${nodeListText(ctx, node.properties, PREC.Sequence)} }`
64356
64431
  });
64357
64432
  const propertyText = (ctx, node) => value(propertyFormOf(node)).pipe(when("accessor", () => `${node.kind} ${propertyKeyText(ctx, node.key, node.computed === true, PREC.Assignment)}${functionValueTailText(ctx, node.value)}`), when("method", () => `${propertyKeyText(ctx, node.key, node.computed === true, PREC.Assignment)}${functionValueTailText(ctx, node.value)}`), when("shorthand", () => identifierNameText(node.key)), when("shorthandDefault", () => shorthandDefaultPropertyText(ctx, node)), orElse(() => `${propertyKeyText(ctx, node.key, node.computed === true, PREC.Assignment)}: ${printNodePrec(ctx, node.value, PREC.Assignment)}`));
64358
- const functionValueTailText = (ctx, value$18) => value(value$18).pipe(when(isFunctionNode, (fn) => functionTailText(ctx, fn)), orElse(() => ""));
64433
+ const functionValueTailText = (ctx, value$13) => value(value$13).pipe(when(isFunctionNode, (fn) => functionTailText(ctx, fn)), orElse(() => ""));
64359
64434
  const shorthandDefaultPropertyText = (ctx, node) => value(node.value).pipe(when(isAssignmentPattern, (value) => `${identifierNameText(node.key)} = ${printNodePrec(ctx, value.right, PREC.Assignment)}`), orElse(() => ""));
64360
64435
  const propertyKeyText = (ctx, key, computed, computedPrec) => match(computed, {
64361
64436
  onTrue: () => `[${dispatchNode(ctx, key, computedPrec)}]`,
@@ -64494,7 +64569,7 @@ const jsxAttributeValueClauseText = (ctx, value) => match$8(fromNullishOr(value)
64494
64569
  onSome: (nonNull) => `=${jsxAttributeValueText(ctx, nonNull)}`,
64495
64570
  onNone: () => ""
64496
64571
  });
64497
- const jsxAttributeValueText = (ctx, value$24) => value(value$24).pipe(discriminators("type")({
64572
+ const jsxAttributeValueText = (ctx, value$18) => value(value$18).pipe(discriminators("type")({
64498
64573
  Literal: (n) => literalText(n),
64499
64574
  JSXExpressionContainer: (n) => `{${sequenceNodeText(ctx, n.expression)}}`,
64500
64575
  JSXElement: (n) => sequenceNodeText(ctx, n),
@@ -64536,7 +64611,7 @@ const doWhileStatementText = (ctx, node) => `do ${statementOrBlockText(ctx, node
64536
64611
  const forStatementText = (ctx, node) => `for (${declarationOrExpressionText(ctx, node.init)}; ${optionalSequenceText(ctx, node.test)}; ${optionalSequenceText(ctx, node.update)}) ${statementOrBlockText(ctx, node.body)}`;
64537
64612
  const declarationOrExpressionText = (ctx, node) => match$8(fromNullishOr(node), {
64538
64613
  onNone: () => "",
64539
- onSome: (value$27) => value(value$27).pipe(discriminators("type")({ VariableDeclaration: (n) => variableDeclarationText(ctx, n) }), orElse((n) => printNodePrec(ctx, n, PREC.Sequence)))
64614
+ onSome: (value$24) => value(value$24).pipe(discriminators("type")({ VariableDeclaration: (n) => variableDeclarationText(ctx, n) }), orElse((n) => printNodePrec(ctx, n, PREC.Sequence)))
64540
64615
  });
64541
64616
  const optionalSequenceText = (ctx, node) => sequenceNodeText(ctx, node);
64542
64617
  const forInStatementText = (ctx, node) => `for (${value(node.left).pipe(discriminators("type")({ VariableDeclaration: (n) => variableDeclarationText(ctx, n) }), orElse((n) => printNodePrec(ctx, n, PREC.Sequence)))} in ${printNodePrec(ctx, node.right, PREC.Sequence)}) ${statementOrBlockText(ctx, node.body)}`;
@@ -64794,7 +64869,7 @@ const identifierName = (node) => getOrUndefined$1(map$13(filter$7(fromNullishOr(
64794
64869
  const identifierNameText = (node) => identifierName(node) ?? "";
64795
64870
  const privateIdentifierText = (node) => match$8(fromNullishOr(node), {
64796
64871
  onNone: () => "",
64797
- onSome: (value$26) => value(value$26).pipe(discriminators("type")({ PrivateIdentifier: (n) => `#${n.name}` }), orElse(() => ""))
64872
+ onSome: (value$23) => value(value$23).pipe(discriminators("type")({ PrivateIdentifier: (n) => `#${n.name}` }), orElse(() => ""))
64798
64873
  });
64799
64874
  const precOf = type().pipe(discriminators("type")({
64800
64875
  SequenceExpression: () => PREC.Sequence,
@@ -64995,7 +65070,11 @@ var FormatOverrideUnclaimed = class extends TaggedError()("FormatOverrideUnclaim
64995
65070
  fileName: String$7,
64996
65071
  formatId: String$7,
64997
65072
  reason: String$7
64998
- }) {};
65073
+ }) {
65074
+ get message() {
65075
+ return `Cannot instrument ${this.fileName}: ${this.reason}`;
65076
+ }
65077
+ };
64999
65078
  const pinOf = (command) => fromUndefinedOr(command.formatId);
65000
65079
  const matchesCommand = (claim, command) => value(pinOf(command)).pipe(when(isSome, (pin) => claim.formatId === pin.value), orElse(() => claim.extensions.includes(command.extension)));
65001
65080
  const claimFor = (command) => command.claims.find((claim) => matchesCommand(claim, command));
@@ -65223,8 +65302,16 @@ var MutantKindMismatch = class extends TaggedError()("MutantKindMismatch", {
65223
65302
  mutantId: MutantId,
65224
65303
  mutatorName: MutatorNameSchema,
65225
65304
  expected: ExpectedKindSchema
65226
- }) {};
65227
- var NoPlacerClaimsNode = class extends TaggedError()("NoPlacerClaimsNode", { fileName: String$7 }) {};
65305
+ }) {
65306
+ get message() {
65307
+ return `Expected ${this.expected} for mutant ${this.mutantId} (${this.mutatorName}) in ${this.fileName}`;
65308
+ }
65309
+ };
65310
+ var NoPlacerClaimsNode = class extends TaggedError()("NoPlacerClaimsNode", { fileName: String$7 }) {
65311
+ get message() {
65312
+ return `No placer claims the node in ${this.fileName}`;
65313
+ }
65314
+ };
65228
65315
  const claimingPlacer = (facts) => value(facts).pipe(when({
65229
65316
  isExpression: true,
65230
65317
  expressionIsValid: true
@@ -65324,7 +65411,11 @@ var MutantsFullyIgnored = class extends TaggedClass()("MutantsFullyIgnored", {
65324
65411
  var MutantWithoutLocation = class extends TaggedError()("MutantWithoutLocation", {
65325
65412
  fileName: String$7,
65326
65413
  mutatorName: MutatorNameSchema
65327
- }) {};
65414
+ }) {
65415
+ get message() {
65416
+ return `Mutant without a source location: ${this.mutatorName} in ${this.fileName}`;
65417
+ }
65418
+ };
65328
65419
  const reachedLine = (located, line) => value(located.directive.scope).pipe(when(NEXT_LINE, () => located.governedLine === line), when("block", () => true), exhaustive);
65329
65420
  const namesMutator = (located, lowerMutatorName) => located.directive.mutatorNames.some((name) => [name === WILDCARD, name.toLowerCase() === lowerMutatorName].some(Boolean));
65330
65421
  const lastReachingDirective = (rule, lowerMutatorName, line) => fromNullishOr(rule.findLast((located) => [reachedLine(located, line), namesMutator(located, lowerMutatorName)].every(Boolean)));
@@ -68443,7 +68534,12 @@ var CheckerFailed = class extends TaggedError()("CheckerFailed", {
68443
68534
  cause: String$7,
68444
68535
  checkerName: String$7,
68445
68536
  mutantIds: ArraySchema(Mutant_exports.MutantId)
68446
- }) {};
68537
+ }) {
68538
+ get message() {
68539
+ const mutants = this.mutantIds.length === 0 ? "" : ` for mutants ${this.mutantIds.join(", ")}`;
68540
+ return `Checker "${this.checkerName}" failed${mutants}: ${this.cause}`;
68541
+ }
68542
+ };
68447
68543
  var Checker = class extends Service$1()("@systemfsoftware/stryker-js-plugin-interface/Checker.service/Checker") {};
68448
68544
  var Checker_exports = /* @__PURE__ */ __exportAll$1({
68449
68545
  CheckResultSchema: () => CheckResultSchema,
@@ -68622,7 +68718,11 @@ var TestRunnerFailed = class extends TaggedError()("TestRunnerFailed", {
68622
68718
  "mutantRun"
68623
68719
  ]),
68624
68720
  runnerName: String$7
68625
- }) {};
68721
+ }) {
68722
+ get message() {
68723
+ return `Test runner "${this.runnerName}" failed during ${this.phase}: ${this.cause}`;
68724
+ }
68725
+ };
68626
68726
  const MutantResultSchema = Struct({
68627
68727
  id: Mutant_exports.MutantId,
68628
68728
  mutatorName: String$7,
@@ -68994,7 +69094,11 @@ var ReporterFailed = class extends TaggedError()("ReporterFailed", {
68994
69094
  cause: String$7,
68995
69095
  event: ReporterEventKind,
68996
69096
  reporterName: String$7
68997
- }) {};
69097
+ }) {
69098
+ get message() {
69099
+ return `Reporter "${this.reporterName}" failed while handling ${this.event}: ${this.cause}`;
69100
+ }
69101
+ };
68998
69102
  const TraceparentHeader = Literal("traceparent");
68999
69103
  const TracestateHeader = Literal("tracestate");
69000
69104
  const VERSION = String$7.pipe(check$2(isPattern(/^([0-9a-e][0-9a-f]|[0-9a-f][0-9a-e])$/)));
@@ -69091,12 +69195,20 @@ var BoundaryPayloadRejected = class extends TaggedError()("BoundaryPayloadReject
69091
69195
  pluginName: String$7,
69092
69196
  method: String$7,
69093
69197
  cause: String$7
69094
- }) {};
69198
+ }) {
69199
+ get message() {
69200
+ return `Plugin "${this.pluginName}" rejected the payload for ${this.method}: ${this.cause}`;
69201
+ }
69202
+ };
69095
69203
  var BoundaryUnrecognizedSignal = class extends TaggedError()("BoundaryUnrecognizedSignal", {
69096
69204
  pluginName: String$7,
69097
69205
  method: String$7,
69098
69206
  signal: String$7
69099
- }) {};
69207
+ }) {
69208
+ get message() {
69209
+ return `Plugin "${this.pluginName}" sent an unrecognized signal "${this.signal}" for ${this.method}`;
69210
+ }
69211
+ };
69100
69212
  const BoundaryErrorSchema = Union([
69101
69213
  BoundaryPayloadRejected,
69102
69214
  BoundaryUnrecognizedSignal,
@@ -69379,7 +69491,7 @@ const makeHtmlReporter = dual(2, (options, _init) => (events) => build(nodeFsPat
69379
69491
  var HtmlReporter_exports = /* @__PURE__ */ __exportAll$4({ makeHtmlReporter: () => makeHtmlReporter });
69380
69492
  //#endregion
69381
69493
  //#region package.json
69382
- var version = "13.0.0";
69494
+ var version = "13.1.0";
69383
69495
  //#endregion
69384
69496
  //#region ../../node_modules/.pnpm/effect@4.0.0-rc.117/node_modules/effect/dist/unstable/cli/CliOutput.js
69385
69497
  /**
@@ -75770,6 +75882,9 @@ var RunExit = class extends TaggedError()("RunExit", { code: Plugin_exports.Exit
75770
75882
  get [errorExitCode]() {
75771
75883
  return this.code;
75772
75884
  }
75885
+ get message() {
75886
+ return `Run exited with code ${this.code}`;
75887
+ }
75773
75888
  };
75774
75889
  const CONFIG_CODE$1 = 2;
75775
75890
  const classCode = (exitClass) => value(exitClass).pipe(when("VerdictFail", () => 1), when("ConfigError", () => CONFIG_CODE$1), when("RuntimeError", () => 3), when("InternalError", () => 4), exhaustive);
@@ -75779,6 +75894,9 @@ var RunOk = class extends TaggedClass()("RunOk", { help: Boolean$6 }) {
75779
75894
  };
75780
75895
  var RunInterrupted = class extends TaggedError()("RunInterrupted", { code: Plugin_exports.ExitCode }) {
75781
75896
  [RunOutcomeTypeId] = RunOutcomeTypeId;
75897
+ get message() {
75898
+ return `Run interrupted by a signal (exit code ${this.code})`;
75899
+ }
75782
75900
  };
75783
75901
  var RunParseFailed = class extends TaggedClass()("RunParseFailed", { unrecognized: optional$4(String$7) }) {
75784
75902
  [RunOutcomeTypeId] = RunOutcomeTypeId;
@@ -75953,7 +76071,11 @@ var StrykerError = class extends TaggedError()("StrykerError", {
75953
76071
  message: String$7,
75954
76072
  cause: optional$4(Unknown)
75955
76073
  }) {};
75956
- var ReporterStageForged = class extends TaggedError()("ReporterStageForged", {}) {};
76074
+ var ReporterStageForged = class extends TaggedError()("ReporterStageForged", {}) {
76075
+ get message() {
76076
+ return "Reporter stage is missing its attachments";
76077
+ }
76078
+ };
75957
76079
  var ReporterFactoryThrew = class extends TaggedError()("ReporterFactoryThrew", {
75958
76080
  reporterName: String$7,
75959
76081
  message: String$7,
@@ -75995,6 +76117,9 @@ var SurvivorsRejection = class extends TaggedError()("SurvivorsRejection", {
75995
76117
  remediation: String$7
75996
76118
  }) {
75997
76119
  [SurvivorsAdmissionTypeId] = SurvivorsAdmissionTypeId;
76120
+ get message() {
76121
+ return this.remediation;
76122
+ }
75998
76123
  };
75999
76124
  const SURVIVORS_RUN_FIRST_REMEDIATION = "run a full `stryker run` first, then re-run with --survivors";
76000
76125
  const SURVIVORS_BOOKKEEPING_KEYS = ["survivorsPriorReport"];
@@ -76737,6 +76862,9 @@ const sha256 = /* @__PURE__ */ createHasher(() => new _SHA256(), /* @__PURE__ */
76737
76862
  //#region src/ConfigError.schema.ts
76738
76863
  var ConfigFileNotFoundError = class extends TaggedError()("ConfigFileNotFoundError", { file: String$7 }) {
76739
76864
  exitClass = "ConfigError";
76865
+ get message() {
76866
+ return `Config file not found: ${this.file}`;
76867
+ }
76740
76868
  };
76741
76869
  var ConfigFileUnsupportedError = class extends TaggedError()("ConfigFileUnsupportedError", {
76742
76870
  file: String$7,
@@ -76752,12 +76880,18 @@ var ConfigFileUnreadableError = class extends TaggedError()("ConfigFileUnreadabl
76752
76880
  cause: Unknown
76753
76881
  }) {
76754
76882
  exitClass = "ConfigError";
76883
+ get message() {
76884
+ return `Config file is unreadable: ${this.file}`;
76885
+ }
76755
76886
  };
76756
76887
  var ConfigFileInvalidError = class extends TaggedError()("ConfigFileInvalidError", {
76757
76888
  file: String$7,
76758
76889
  cause: Unknown
76759
76890
  }) {
76760
76891
  exitClass = "ConfigError";
76892
+ get message() {
76893
+ return `Invalid config file: ${this.file}`;
76894
+ }
76761
76895
  };
76762
76896
  var ConfigFactoryFailed = class extends TaggedError()("ConfigFactoryFailed", {
76763
76897
  message: String$7,
@@ -77604,7 +77738,11 @@ const classifyExit = Workflow_exports.make({
77604
77738
  var ManifestUnreadable = class extends TaggedError()("ManifestUnreadable", {
77605
77739
  specifier: String$7,
77606
77740
  cause: Unknown
77607
- }) {};
77741
+ }) {
77742
+ get message() {
77743
+ return `Package manifest is unreadable: ${this.specifier}`;
77744
+ }
77745
+ };
77608
77746
  const ManifestSchema = Struct({ version: optional$4(String$7) });
77609
77747
  //#endregion
77610
77748
  //#region src/project-files.service.ts
@@ -78780,7 +78918,11 @@ const makeSocketProtocol = /*#__PURE__*/ gen(function* () {
78780
78918
  //#endregion
78781
78919
  //#region ../stryker-js-plugin-runtime/dist/index.mjs
78782
78920
  init_esm$2();
78783
- var TraceContextUnavailable = class extends TaggedError()("TraceContextUnavailable", { reason: Literals$2(["invalid-span-context", "undecodable-parts"]) }) {};
78921
+ var TraceContextUnavailable = class extends TaggedError()("TraceContextUnavailable", { reason: Literals$2(["invalid-span-context", "undecodable-parts"]) }) {
78922
+ get message() {
78923
+ return value(this.reason).pipe(when("invalid-span-context", () => "Cannot read trace context: the span context is invalid"), when("undecodable-parts", () => "Cannot read trace context: the trace context parts could not be decoded"), exhaustive);
78924
+ }
78925
+ };
78784
78926
  const CURRENT_VERSION = "00";
78785
78927
  const SAMPLED_FLAG = 1;
78786
78928
  const EffectSpanShape = Struct({
@@ -79611,6 +79753,13 @@ var ChildProcessCrashedError = class extends TaggedError()("ChildProcessCrashedE
79611
79753
  }) {
79612
79754
  [WorkerExitTypeId$1] = WorkerExitTypeId$1;
79613
79755
  exitClass = "InternalError";
79756
+ get message() {
79757
+ const exit = valueTags(this.exit, {
79758
+ Code: ({ code }) => `exit code ${code}`,
79759
+ Signal: ({ signal }) => `signal ${signal}`
79760
+ });
79761
+ return `Worker child process ${this.pid} crashed (${exit})`;
79762
+ }
79614
79763
  };
79615
79764
  var OutOfMemoryError = class extends TaggedError()("OutOfMemoryError", {
79616
79765
  pid: ProcessId$1,
@@ -79618,9 +79767,15 @@ var OutOfMemoryError = class extends TaggedError()("OutOfMemoryError", {
79618
79767
  }) {
79619
79768
  [WorkerExitTypeId$1] = WorkerExitTypeId$1;
79620
79769
  exitClass = "RuntimeError";
79770
+ get message() {
79771
+ return `Worker process ${this.pid} ran out of memory (exit code ${this.exitCode})`;
79772
+ }
79621
79773
  };
79622
79774
  var WorkerBootTimeoutError = class extends TaggedError()("WorkerBootTimeoutError", { pid: ProcessId$1 }) {
79623
79775
  exitClass = "InternalError";
79776
+ get message() {
79777
+ return `Worker process ${this.pid} did not boot before the boot window closed`;
79778
+ }
79624
79779
  };
79625
79780
  //#endregion
79626
79781
  //#region src/WorkerLauncher.service.ts
@@ -79860,6 +80015,17 @@ const environmentTraceInit = fn("stryker.reporterStream.environmentTraceInit")(f
79860
80015
  };
79861
80016
  });
79862
80017
  const initFromEnvironment = () => map$7(environmentTraceInit(), (init) => getOrUndefined$1(filter$7(some(init), hasTraceFields)));
80018
+ const environmentParentContext = gen(function* () {
80019
+ const traceparent = yield* String$6("TRACEPARENT").pipe(option$1);
80020
+ const tracestate = yield* String$6("TRACESTATE").pipe(option$1);
80021
+ return map$13(flatMap$9(traceparent, decodeOption(Trace_exports$1.Traceparent)), (parts) => ({
80022
+ ...parts,
80023
+ ...match$8(flatMap$9(tracestate, decodeOption(Trace_exports$1.Tracestate)), {
80024
+ onNone: () => ({}),
80025
+ onSome: (traceState) => ({ traceState })
80026
+ })
80027
+ }));
80028
+ });
79863
80029
  const currentReporterInit = fn("stryker.reporterStream.currentReporterInit")(function* (span) {
79864
80030
  const fromEnvironment = yield* initFromEnvironment();
79865
80031
  const current = getOrUndefined$1(yield* currentSpan.pipe(option$1));
@@ -79921,6 +80087,9 @@ Struct({
79921
80087
  //#region src/PluginsError.schema.ts
79922
80088
  var PluginNotFoundError = class extends TaggedError()("PluginNotFoundError", { descriptor: String$7 }) {
79923
80089
  exitClass = "ConfigError";
80090
+ get message() {
80091
+ return `Plugin "${this.descriptor}" was not found`;
80092
+ }
79924
80093
  };
79925
80094
  const PluginLoadFailureReason = Union([
79926
80095
  TaggedStruct("PeerMissing", { peer: String$7 }),
@@ -87334,6 +87503,9 @@ var ModeConflictError = class extends TaggedError()("ModeConflictError", {
87334
87503
  expected: String$7
87335
87504
  }) {
87336
87505
  [ResolveModeTypeId] = ResolveModeTypeId;
87506
+ get message() {
87507
+ return `Invalid value "${this.value}" for option "${this.option}": ${this.expected}`;
87508
+ }
87337
87509
  };
87338
87510
  var HumanOutput = class extends TaggedClass()("HumanOutput", {
87339
87511
  signal: ModeSignal,
@@ -88024,8 +88196,16 @@ var MergedReports = class extends TaggedClass()("MergedReports", {
88024
88196
  var NoMergedReports = class extends TaggedClass()("NoMergedReports", { rows: ArraySchema(MergeVerdictRow) }) {
88025
88197
  [MergeReportPartsTypeId] = MergeReportPartsTypeId;
88026
88198
  };
88027
- var DuplicatePackageLabel = class extends TaggedError()("DuplicatePackageLabel", { label: String$7 }) {};
88028
- var MissingPackages = class extends TaggedError()("MissingPackages", { packages: ArraySchema(String$7) }) {};
88199
+ var DuplicatePackageLabel = class extends TaggedError()("DuplicatePackageLabel", { label: String$7 }) {
88200
+ get message() {
88201
+ return `Duplicate package label: ${this.label}`;
88202
+ }
88203
+ };
88204
+ var MissingPackages = class extends TaggedError()("MissingPackages", { packages: ArraySchema(String$7) }) {
88205
+ get message() {
88206
+ return value(this.packages.length === 0).pipe(when(true, () => "No mutation report parts were produced"), when(false, () => `No mutation report parts for packages: ${this.packages.join(", ")}`), exhaustive);
88207
+ }
88208
+ };
88029
88209
  /** The value a present option carries, or the fallback a missing one takes. */
88030
88210
  const orDefault = (present, fallback) => getOrElse$1(present, () => fallback);
88031
88211
  const thresholdsOf = (part) => orDefault(map$13(fromUndefinedOr(part), (present) => present.report.thresholds), DEFAULT_THRESHOLDS);
@@ -88202,7 +88382,11 @@ const mergeReportParts = Workflow_exports.make({
88202
88382
  });
88203
88383
  //#endregion
88204
88384
  //#region src/merge-reports.schema.ts
88205
- var MergeReportsFailed = class extends TaggedError()("MergeReportsFailed", { reason: String$7 }) {};
88385
+ var MergeReportsFailed = class extends TaggedError()("MergeReportsFailed", { reason: String$7 }) {
88386
+ get message() {
88387
+ return `Merge reports failed: ${this.reason}`;
88388
+ }
88389
+ };
88206
88390
  const PartMetaSchema = Struct({
88207
88391
  package: String$7,
88208
88392
  outcome: String$7
@@ -89964,7 +90148,11 @@ var WorkerSpawnResolved = class extends TaggedClass()("WorkerSpawnResolved", {
89964
90148
  var WorkerSpawnMissing = class extends TaggedError()("WorkerSpawnMissing", {
89965
90149
  reason: String$7,
89966
90150
  descriptor: String$7
89967
- }) {};
90151
+ }) {
90152
+ get message() {
90153
+ return `${this.reason} (${this.descriptor})`;
90154
+ }
90155
+ };
89968
90156
  var WorkerSpawnCommand = class extends TaggedClass()("WorkerSpawnCommand", {
89969
90157
  sources: ArraySchema(PluginSourceSchema),
89970
90158
  kind: Plugin_exports.WorkerPluginKind,
@@ -91083,12 +91271,20 @@ var CheckerAnsweredUnrequested = class extends TaggedError()("CheckerAnsweredUnr
91083
91271
  phase: Literals$2(["check", "group"]),
91084
91272
  unrequestedIds: ArraySchema(String$7),
91085
91273
  requestedIds: ArraySchema(String$7)
91086
- }) {};
91274
+ }) {
91275
+ get message() {
91276
+ return `Checker "${this.checkerName}" answered about mutants it was not asked about (${this.phase} phase): ${this.unrequestedIds.join(", ")}`;
91277
+ }
91278
+ };
91087
91279
  var CheckerSkippedRequested = class extends TaggedError()("CheckerSkippedRequested", {
91088
91280
  checkerName: String$7,
91089
91281
  phase: Literals$2(["check", "group"]),
91090
91282
  missingIds: ArraySchema(String$7)
91091
- }) {};
91283
+ }) {
91284
+ get message() {
91285
+ return `Checker "${this.checkerName}" skipped requested mutants (${this.phase} phase): ${this.missingIds.join(", ")}`;
91286
+ }
91287
+ };
91092
91288
  var CheckerCommand = class extends TaggedClass()("CheckerCommand", {
91093
91289
  checkerName: String$7,
91094
91290
  requestedIds: ArraySchema(Mutant_exports.MutantId),
@@ -91189,6 +91385,9 @@ var UndescribableMutant = class extends TaggedError()("UndescribableMutant", {
91189
91385
  reason: String$7
91190
91386
  }) {
91191
91387
  static skipped = counter("stryker.checker.mutants.skipped", { description: "Total number of mutants dropped because they cannot be described to a checker" });
91388
+ get message() {
91389
+ return `Mutant ${this.id} in ${this.fileName} cannot be described to a checker: ${this.reason}`;
91390
+ }
91192
91391
  };
91193
91392
  const CheckerMutantFromMutant = decodeTo(toType(Checker_exports.CheckerMutantWire), transform$2({
91194
91393
  decode: (mutant) => ({
@@ -91806,8 +92005,16 @@ var PlannedEarlyResultMutant = class extends TaggedClass()("PlannedEarlyResultMu
91806
92005
  }) {
91807
92006
  [MutantPlanTypeId] = MutantPlanTypeId;
91808
92007
  };
91809
- var CoveredMutantHitCountMissing = class extends TaggedError()("CoveredMutantHitCountMissing", { missingIds: ArraySchema(String$7) }) {};
91810
- var MutantTimeoutNotFinite = class extends TaggedError()("MutantTimeoutNotFinite", { mutantId: Mutant_exports.MutantId }) {};
92008
+ var CoveredMutantHitCountMissing = class extends TaggedError()("CoveredMutantHitCountMissing", { missingIds: ArraySchema(String$7) }) {
92009
+ get message() {
92010
+ return `Hit count missing for covered mutants: ${this.missingIds.join(", ")}`;
92011
+ }
92012
+ };
92013
+ var MutantTimeoutNotFinite = class extends TaggedError()("MutantTimeoutNotFinite", { mutantId: Mutant_exports.MutantId }) {
92014
+ get message() {
92015
+ return `Computed test timeout for mutant ${this.mutantId} is not finite`;
92016
+ }
92017
+ };
91811
92018
  const firstDefined$1 = (first, second) => getOrElse$1(fromNullishOr(first), () => second);
91812
92019
  const staticField = (isStatic) => match$8(fromUndefinedOr(isStatic), {
91813
92020
  onNone: () => ({}),
@@ -93729,7 +93936,8 @@ const strykerProgram = gen(function* () {
93729
93936
  onTrue: () => MachineConsole.captureLayer,
93730
93937
  onFalse: () => empty$7
93731
93938
  });
93732
- return yield* uninterruptibleMask((restore) => withSpan("stryker.cli.run")(gen(function* () {
93939
+ const parent = getOrUndefined$1(map$13(yield* environmentParentContext, makeExternalSpan));
93940
+ return yield* uninterruptibleMask((restore) => withSpan("stryker.cli.run", { parent })(gen(function* () {
93733
93941
  const exit$2 = yield* exit(restore(runWith(command, { version })(args).pipe(provide(machineConsole), andThen$1(get$2(answer)))));
93734
93942
  const conclusionCommand = runOutcomeCommandOf({
93735
93943
  exit: exit$2,