@systemfsoftware/stryker-js-cli-contract 0.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/index.mjs ADDED
@@ -0,0 +1,1709 @@
1
+ import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.mjs";
2
+ import * as S from "effect/Schema";
3
+ import { Schema, SchemaGetter } from "effect";
4
+ import * as SchemaGetter$1 from "effect/SchemaGetter";
5
+ import { Mutant, Plugin, Report } from "@systemfsoftware/stryker-js-plugin-interface";
6
+ //#region src/output-mode.schema.ts
7
+ const OutputMode = S.Literals(["human", "machine"]);
8
+ const ModeSignal = S.Literals([
9
+ "flag",
10
+ "env",
11
+ "tty",
12
+ "agent",
13
+ "tool"
14
+ ]);
15
+ //#endregion
16
+ //#region src/OutputMode/mod.ts
17
+ var OutputMode_exports = /* @__PURE__ */ __exportAll({
18
+ ModeSignal: () => ModeSignal,
19
+ OutputMode: () => OutputMode
20
+ });
21
+ //#endregion
22
+ //#region src/plugin-load-failure-reason.schema.ts
23
+ const PluginLoadFailureReason = Schema.Union([
24
+ Schema.TaggedStruct("PeerMissing", { peer: Schema.String }),
25
+ Schema.TaggedStruct("PeerVersionUnsupported", {
26
+ peer: Schema.String,
27
+ detail: Schema.String
28
+ }),
29
+ Schema.TaggedStruct("PeerUnrecognized", { peer: Schema.String }),
30
+ Schema.TaggedStruct("InvalidContribution", { detail: Schema.String }),
31
+ Schema.TaggedStruct("ImportFailed", { cause: Schema.Unknown })
32
+ ]);
33
+ //#endregion
34
+ //#region src/stream-version.schema.ts
35
+ const StreamSchemaVersion = S.Literal("2.0");
36
+ //#endregion
37
+ //#region src/run-event.schema.ts
38
+ const RunPhase = S.Literals([
39
+ "prepare",
40
+ "instrument",
41
+ "dry-run",
42
+ "mutation-test"
43
+ ]);
44
+ const RunId = S.String.pipe(S.check(S.isPattern(/^[0-9A-HJKMNP-TV-Z]{26}$/)), S.brand("RunId"));
45
+ var RunStarted = class extends S.TaggedClass()("stream", {
46
+ schemaVersion: StreamSchemaVersion,
47
+ runId: RunId,
48
+ mode: OutputMode,
49
+ signal: ModeSignal
50
+ }) {};
51
+ var PhaseEntered = class extends S.TaggedClass()("phase", {
52
+ phase: RunPhase,
53
+ elapsedMs: Report.NonNegativeFinite
54
+ }) {};
55
+ var PlanKnown = class extends S.TaggedClass()("plan", { total: Report.NonNegativeInt }) {};
56
+ const MutantCost = S.Struct({
57
+ fixedOverheadMs: Report.NonNegativeFinite,
58
+ testBodyMs: Report.NonNegativeFinite,
59
+ testsExecuted: Report.NonNegativeInt,
60
+ shared: S.Boolean
61
+ });
62
+ /**
63
+ * The machine-stream line a tested mutant is published as. Its wire shape is a
64
+ * published contract: the `mutant` tag and the `file`/`mutator` keys must not
65
+ * change. The line carries the verified fields of `Reporter.MutantTested` plus
66
+ * the static classification (R24) and the measured cost breakdown (R39).
67
+ */
68
+ var RunMutantTestedEvent = class extends S.TaggedClass()("mutantTested", {
69
+ id: Mutant.MutantId,
70
+ status: Mutant.MutantStatusSchema,
71
+ fileName: Mutant.CanonicalFileName,
72
+ location: Mutant.Location,
73
+ mutatorName: Mutant.MutatorName,
74
+ replacement: S.NullOr(S.String),
75
+ completed: Report.NonNegativeInt,
76
+ total: Report.NonNegativeInt,
77
+ static: S.Boolean,
78
+ cost: S.NullOr(MutantCost)
79
+ }) {};
80
+ const RunMutantTested = S.TaggedStruct("mutant", {
81
+ id: Mutant.MutantId,
82
+ status: Mutant.MutantStatusSchema,
83
+ file: S.toType(Mutant.CanonicalFileName),
84
+ location: Mutant.Location,
85
+ mutator: Mutant.MutatorName,
86
+ replacement: S.NullOr(S.String),
87
+ completed: Report.NonNegativeInt,
88
+ total: Report.NonNegativeInt,
89
+ static: S.Boolean,
90
+ cost: S.NullOr(MutantCost)
91
+ }).pipe(S.decodeTo(S.toType(RunMutantTestedEvent), {
92
+ decode: SchemaGetter.transform((line) => RunMutantTestedEvent.make({
93
+ id: line.id,
94
+ status: line.status,
95
+ fileName: line.file,
96
+ location: line.location,
97
+ mutatorName: line.mutator,
98
+ replacement: line.replacement,
99
+ completed: line.completed,
100
+ total: line.total,
101
+ static: line.static,
102
+ cost: line.cost
103
+ })),
104
+ encode: SchemaGetter.transform((tested) => ({
105
+ _tag: "mutant",
106
+ id: tested.id,
107
+ status: tested.status,
108
+ file: tested.fileName,
109
+ location: tested.location,
110
+ mutator: tested.mutatorName,
111
+ replacement: tested.replacement,
112
+ completed: tested.completed,
113
+ total: tested.total,
114
+ static: tested.static,
115
+ cost: tested.cost
116
+ }))
117
+ }));
118
+ var Heartbeat = class extends S.TaggedClass()("tick", {
119
+ elapsedMs: Report.NonNegativeFinite,
120
+ completed: Report.NonNegativeInt,
121
+ total: S.NullOr(Report.NonNegativeInt)
122
+ }) {};
123
+ const VerdictLocation = S.Struct({
124
+ start: Mutant.Position,
125
+ end: Mutant.Position
126
+ });
127
+ const VerdictThresholds = S.Struct({
128
+ high: Report.Percentage,
129
+ low: Report.Percentage,
130
+ break: S.NullOr(Report.Percentage)
131
+ });
132
+ const VerdictMutant = S.Struct({
133
+ id: S.String,
134
+ file: S.String,
135
+ location: VerdictLocation,
136
+ mutator: S.String,
137
+ replacement: S.NullOr(S.String),
138
+ status: Mutant.MutantStatusSchema
139
+ });
140
+ const RunScope = S.Literals(["full", "diff"]);
141
+ const MutantSetPolicy = S.Literals(["default", "full"]);
142
+ const PhaseDurations = S.Struct({
143
+ prepare: Report.NonNegativeFinite,
144
+ instrument: Report.NonNegativeFinite,
145
+ "dry-run": Report.NonNegativeFinite,
146
+ "mutation-test": Report.NonNegativeFinite
147
+ });
148
+ const StaticVerdict = S.Struct({
149
+ count: Report.NonNegativeInt,
150
+ costMs: Report.NonNegativeFinite
151
+ });
152
+ var VerdictReached = class extends S.TaggedClass()("verdict", {
153
+ schemaVersion: StreamSchemaVersion,
154
+ runId: RunId,
155
+ mode: OutputMode,
156
+ signal: ModeSignal,
157
+ score: S.NullOr(Report.Percentage),
158
+ thresholds: VerdictThresholds,
159
+ reportFile: S.NullOr(S.String),
160
+ counts: Report.Metrics,
161
+ mutants: S.Array(VerdictMutant),
162
+ scope: RunScope,
163
+ mutantSetPolicy: MutantSetPolicy,
164
+ phaseDurations: S.NullOr(PhaseDurations),
165
+ static: S.NullOr(StaticVerdict)
166
+ }) {};
167
+ const FrameworkContributionRow = S.Struct({
168
+ name: S.String,
169
+ formatId: S.String,
170
+ extensions: S.Array(S.String)
171
+ });
172
+ const FrameworkModuleRow = S.Struct({
173
+ moduleName: S.String,
174
+ contributions: S.Array(FrameworkContributionRow)
175
+ });
176
+ const FormatClaimShadowingRow = S.Struct({
177
+ extension: S.String,
178
+ winner: S.String,
179
+ loser: S.String
180
+ });
181
+ var PluginsReported = class extends S.TaggedClass()("plugins", {
182
+ modules: S.Array(FrameworkModuleRow),
183
+ shadowings: S.Array(FormatClaimShadowingRow)
184
+ }) {};
185
+ const FormatRegistryRow = S.Struct({
186
+ extension: S.String,
187
+ formatId: S.String,
188
+ ownerModule: S.String,
189
+ language: S.String
190
+ });
191
+ var FormatRegistryResolved = class extends S.TaggedClass()("formats", { rows: S.Array(FormatRegistryRow) }) {};
192
+ const SkippedFileRow = S.Struct({
193
+ file: S.String,
194
+ extension: S.String,
195
+ reason: S.String
196
+ });
197
+ var SkippedReported = class extends S.TaggedClass()("skipped", { files: S.Array(SkippedFileRow) }) {};
198
+ const ReuseRefusals = S.Struct({
199
+ semanticsChanged: Report.NonNegativeInt,
200
+ policyChanged: Report.NonNegativeInt,
201
+ runInputsChanged: Report.NonNegativeInt,
202
+ closureChanged: Report.NonNegativeInt,
203
+ timeoutUnreproduced: Report.NonNegativeInt,
204
+ flakyDependency: Report.NonNegativeInt,
205
+ noPriorRecord: Report.NonNegativeInt
206
+ });
207
+ var ReuseReported = class extends S.TaggedClass()("reuse", {
208
+ reused: Report.NonNegativeInt,
209
+ ran: Report.NonNegativeInt,
210
+ refused: ReuseRefusals
211
+ }) {};
212
+ var MutantDetailReported = class extends S.TaggedClass()("mutant-detail", {
213
+ id: Mutant.MutantId,
214
+ status: Mutant.MutantStatusSchema,
215
+ coveringTests: S.Array(S.String),
216
+ killedBy: S.NullOr(S.String),
217
+ reproducer: S.NullOr(S.String)
218
+ }) {};
219
+ const FeedbackJudgment = S.Literals(["useful", "not-useful"]);
220
+ var FeedbackReported = class extends S.TaggedClass()("feedback", {
221
+ id: Mutant.MutantId,
222
+ judgment: FeedbackJudgment,
223
+ reason: S.NullOr(S.String)
224
+ }) {};
225
+ var RunFailed = class extends S.TaggedClass()("error", {
226
+ schemaVersion: StreamSchemaVersion,
227
+ code: Plugin.ExitCode,
228
+ error: S.String,
229
+ remediation: S.String,
230
+ reason: S.NullOr(PluginLoadFailureReason)
231
+ }) {};
232
+ var HelpRendered = class extends S.TaggedClass()("help", {
233
+ schemaVersion: StreamSchemaVersion,
234
+ code: S.Literals([0]),
235
+ help: S.String
236
+ }) {};
237
+ const RunEvent = Object.assign(S.Union([
238
+ RunStarted,
239
+ PhaseEntered,
240
+ PlanKnown,
241
+ RunMutantTested,
242
+ Heartbeat,
243
+ PluginsReported,
244
+ FormatRegistryResolved,
245
+ SkippedReported,
246
+ ReuseReported,
247
+ MutantDetailReported,
248
+ FeedbackReported,
249
+ VerdictReached,
250
+ RunFailed,
251
+ HelpRendered
252
+ ]), { QUEUE_BOUND: 256 });
253
+ //#endregion
254
+ //#region src/run-event-wire.schema.ts
255
+ const RunEventWireLine = S.String.pipe(S.decodeTo(S.fromJsonString(RunEvent), {
256
+ decode: SchemaGetter$1.transform((line) => line.replace(/\n$/, "")),
257
+ encode: SchemaGetter$1.transform((json) => `${json}\n`)
258
+ }));
259
+ //#endregion
260
+ //#region src/RunEvent/mod.ts
261
+ var RunEvent_exports = /* @__PURE__ */ __exportAll({
262
+ FeedbackJudgment: () => FeedbackJudgment,
263
+ FeedbackReported: () => FeedbackReported,
264
+ FormatClaimShadowingRow: () => FormatClaimShadowingRow,
265
+ FormatRegistryResolved: () => FormatRegistryResolved,
266
+ FormatRegistryRow: () => FormatRegistryRow,
267
+ FrameworkContributionRow: () => FrameworkContributionRow,
268
+ FrameworkModuleRow: () => FrameworkModuleRow,
269
+ Heartbeat: () => Heartbeat,
270
+ HelpRendered: () => HelpRendered,
271
+ MutantCost: () => MutantCost,
272
+ MutantDetailReported: () => MutantDetailReported,
273
+ MutantSetPolicy: () => MutantSetPolicy,
274
+ PhaseDurations: () => PhaseDurations,
275
+ PhaseEntered: () => PhaseEntered,
276
+ PlanKnown: () => PlanKnown,
277
+ PluginLoadFailureReason: () => PluginLoadFailureReason,
278
+ PluginsReported: () => PluginsReported,
279
+ ReuseRefusals: () => ReuseRefusals,
280
+ ReuseReported: () => ReuseReported,
281
+ RunEvent: () => RunEvent,
282
+ RunEventWireLine: () => RunEventWireLine,
283
+ RunFailed: () => RunFailed,
284
+ RunId: () => RunId,
285
+ RunMutantTested: () => RunMutantTested,
286
+ RunMutantTestedEvent: () => RunMutantTestedEvent,
287
+ RunPhase: () => RunPhase,
288
+ RunScope: () => RunScope,
289
+ RunStarted: () => RunStarted,
290
+ SkippedFileRow: () => SkippedFileRow,
291
+ SkippedReported: () => SkippedReported,
292
+ StaticVerdict: () => StaticVerdict,
293
+ StreamSchemaVersion: () => StreamSchemaVersion,
294
+ VerdictLocation: () => VerdictLocation,
295
+ VerdictMutant: () => VerdictMutant,
296
+ VerdictReached: () => VerdictReached,
297
+ VerdictThresholds: () => VerdictThresholds
298
+ });
299
+ //#endregion
300
+ //#region src/SpanTaxonomy.schema.ts
301
+ const SpanName = S.String.check(S.isPattern(/^[A-Za-z][A-Za-z0-9_-]*(?:\.[A-Za-z][A-Za-z0-9_-]*)*$/, { expected: "a dot-separated span name whose segments start with a letter, such as \"stryker.checker.check\"" })).pipe(S.brand("SpanName"));
302
+ const SpanAttributeKey = S.String.check(S.isPattern(/^[A-Za-z][A-Za-z0-9_.-]*$/, { expected: "an attribute key starting with a letter, such as \"stryker.checker.name\"" })).pipe(S.brand("SpanAttributeKey"));
303
+ const SpanAttributeText = S.String;
304
+ const SpanAttributeCount = S.Finite;
305
+ const SpanRunStatus = S.Literals([
306
+ "success",
307
+ "failure",
308
+ "timed_out",
309
+ "aborted",
310
+ "skipped"
311
+ ]);
312
+ const SpanDocument = S.Struct({
313
+ id: SpanName,
314
+ name: SpanName,
315
+ attributes: S.Record(SpanAttributeKey, S.Json)
316
+ });
317
+ const idsAreUnique = S.makeFilter((documents) => {
318
+ const duplicated = Mutant.duplicatedValue(documents.map((document) => document.id));
319
+ return duplicated === void 0 ? void 0 : `span taxonomy documents share the id "${duplicated}"`;
320
+ }, { arbitraryConstraint: { uniqueBy: (document) => document.id } });
321
+ const SpanDocuments = S.Array(SpanDocument).check(idsAreUnique);
322
+ //#endregion
323
+ //#region src/SpanTaxonomy.ts
324
+ [.../* @__PURE__ */ new Set([
325
+ ...Plugin.CheckerRpcs.requests.keys(),
326
+ ...Plugin.TestRunnerRpcs.requests.keys(),
327
+ ...Plugin.ReporterRpcs.requests.keys()
328
+ ])].sort();
329
+ const Spans = {
330
+ checkerCheck: {
331
+ name: "stryker.checker.check",
332
+ attributes: {
333
+ "stryker.checker.name": SpanAttributeText,
334
+ "stryker.mutants.count": SpanAttributeCount
335
+ }
336
+ },
337
+ checkerCheckPlans: {
338
+ name: "stryker.checker.check_plans",
339
+ attributes: {}
340
+ },
341
+ checkerGroup: {
342
+ name: "stryker.checker.group",
343
+ attributes: {
344
+ "stryker.checker.name": SpanAttributeText,
345
+ "stryker.mutants.count": SpanAttributeCount
346
+ }
347
+ },
348
+ checkerGroupPlans: {
349
+ name: "stryker.checker.group_plans",
350
+ attributes: {}
351
+ },
352
+ checkerLogSkipped: {
353
+ name: "stryker.checker.log_skipped",
354
+ attributes: {}
355
+ },
356
+ checkerPoolCheckPlans: {
357
+ name: "stryker.checker_pool.check_plans",
358
+ attributes: {}
359
+ },
360
+ checkerPoolSplitChecked: {
361
+ name: "stryker.checker_pool.split_checked",
362
+ attributes: {}
363
+ },
364
+ checkerRecordSkipped: {
365
+ name: "stryker.checker.record_skipped",
366
+ attributes: {}
367
+ },
368
+ cliRun: {
369
+ name: "stryker.cli.run",
370
+ attributes: {
371
+ "stryker.run.outcome": SpanAttributeText,
372
+ "stryker.run.exit_code": SpanAttributeCount,
373
+ "stryker.run.error": SpanAttributeText
374
+ }
375
+ },
376
+ commandRunnerRun: {
377
+ name: "stryker.command_runner.run",
378
+ attributes: {}
379
+ },
380
+ concurrency: {
381
+ name: "stryker.concurrency",
382
+ attributes: {}
383
+ },
384
+ configDiscover: {
385
+ name: "stryker.config.discover",
386
+ attributes: {}
387
+ },
388
+ configExists: {
389
+ name: "stryker.config.exists",
390
+ attributes: {}
391
+ },
392
+ configExpectedFile: {
393
+ name: "stryker.config.expectedFile",
394
+ attributes: {}
395
+ },
396
+ configExtends: {
397
+ name: "stryker.config.extends",
398
+ attributes: {}
399
+ },
400
+ configExtendsChild: {
401
+ name: "stryker.config.extendsChild",
402
+ attributes: {}
403
+ },
404
+ configExtendsStep: {
405
+ name: "stryker.config.extendsStep",
406
+ attributes: {}
407
+ },
408
+ configLoad: {
409
+ name: "stryker.config.load",
410
+ attributes: {}
411
+ },
412
+ configLoadOptions: {
413
+ name: "stryker.config.loadOptions",
414
+ attributes: {}
415
+ },
416
+ configRead: {
417
+ name: "stryker.config_read",
418
+ attributes: {}
419
+ },
420
+ configReadDocument: {
421
+ name: "stryker.config.readDocument",
422
+ attributes: {}
423
+ },
424
+ configReadModule: {
425
+ name: "stryker.config.readModule",
426
+ attributes: {}
427
+ },
428
+ configReadRun: {
429
+ name: "stryker.config.readRun",
430
+ attributes: {}
431
+ },
432
+ dryRun: {
433
+ name: "stryker.dry_run",
434
+ attributes: {}
435
+ },
436
+ dryRunComplete: {
437
+ name: "stryker.dry_run.complete",
438
+ attributes: {}
439
+ },
440
+ dryRunPhase: {
441
+ name: "dryRun",
442
+ attributes: {}
443
+ },
444
+ dryRunResolveFiles: {
445
+ name: "stryker.dry_run.resolve_files",
446
+ attributes: {}
447
+ },
448
+ dryRunWriteFailed: {
449
+ name: "stryker.dry_run.write_failed",
450
+ attributes: {}
451
+ },
452
+ dryRunWritePassed: {
453
+ name: "stryker.dry_run.write_passed",
454
+ attributes: {}
455
+ },
456
+ frameworkClaimantList: {
457
+ name: "stryker.framework_claimant.list",
458
+ attributes: {}
459
+ },
460
+ frameworkClaimantOf: {
461
+ name: "stryker.framework_claimant.of",
462
+ attributes: {}
463
+ },
464
+ htmlReportReadBundleFromDisk: {
465
+ name: "html_report.read_bundle_from_disk",
466
+ attributes: {}
467
+ },
468
+ htmlReportWrite: {
469
+ name: "html_report.write",
470
+ attributes: {}
471
+ },
472
+ htmlReportWriteBundleFromDisk: {
473
+ name: "html_report.write_bundle_from_disk",
474
+ attributes: {}
475
+ },
476
+ htmlReportWriteFile: {
477
+ name: "html_report.write_file",
478
+ attributes: {}
479
+ },
480
+ incrementalReuse: {
481
+ name: "stryker.incremental_reuse",
482
+ attributes: {}
483
+ },
484
+ incrementalReuseRead: {
485
+ name: "stryker.incremental_reuse.read",
486
+ attributes: {}
487
+ },
488
+ instrument: {
489
+ name: "stryker.instrument",
490
+ attributes: {}
491
+ },
492
+ instrumentDisableTypeChecks: {
493
+ name: "stryker.instrument.disableTypeChecks",
494
+ attributes: {}
495
+ },
496
+ instrumentFrameworkEntryParse: {
497
+ name: "stryker.instrument.framework_entry.parse",
498
+ attributes: {}
499
+ },
500
+ instrumentFrameworkEntryTransform: {
501
+ name: "stryker.instrument.framework_entry.transform",
502
+ attributes: {}
503
+ },
504
+ instrumentGather: {
505
+ name: "stryker.instrument.gather",
506
+ attributes: {}
507
+ },
508
+ instrumentOfferSkips: {
509
+ name: "stryker.instrument.offer-skips",
510
+ attributes: {}
511
+ },
512
+ instrumentParserParseJS: {
513
+ name: "stryker.instrument.parser.parseJS",
514
+ attributes: {}
515
+ },
516
+ instrumentParserParseTS: {
517
+ name: "stryker.instrument.parser.parseTS",
518
+ attributes: {}
519
+ },
520
+ instrumentParserParseTsx: {
521
+ name: "stryker.instrument.parser.parseTsx",
522
+ attributes: {}
523
+ },
524
+ instrumentParserParseWithOxc: {
525
+ name: "stryker.instrument.parser.parseWithOxc",
526
+ attributes: {}
527
+ },
528
+ instrumentPhase: {
529
+ name: "instrument",
530
+ attributes: { fileCount: SpanAttributeCount }
531
+ },
532
+ instrumentReadFiles: {
533
+ name: "stryker.instrument.read_files",
534
+ attributes: {}
535
+ },
536
+ instrumentReportSkips: {
537
+ name: "stryker.instrument.report-skips",
538
+ attributes: {}
539
+ },
540
+ instrumentTransformScript: {
541
+ name: "stryker.instrument.transform.script",
542
+ attributes: {}
543
+ },
544
+ loadConfig: {
545
+ name: "stryker.load_config",
546
+ attributes: {}
547
+ },
548
+ mergeReports: {
549
+ name: "stryker.merge_reports",
550
+ attributes: {}
551
+ },
552
+ mergeReportsCollectPartDirs: {
553
+ name: "stryker.merge_reports.collect_part_dirs",
554
+ attributes: {}
555
+ },
556
+ mergeReportsDirectoryExists: {
557
+ name: "stryker.merge_reports.directory_exists",
558
+ attributes: {}
559
+ },
560
+ mergeReportsEncodeReport: {
561
+ name: "stryker.merge_reports.encode_report",
562
+ attributes: {}
563
+ },
564
+ mergeReportsFail: {
565
+ name: "stryker.merge_reports.fail",
566
+ attributes: {}
567
+ },
568
+ mergeReportsGather: {
569
+ name: "stryker.merge_reports.gather",
570
+ attributes: {}
571
+ },
572
+ mergeReportsListNames: {
573
+ name: "stryker.merge_reports.list_names",
574
+ attributes: {}
575
+ },
576
+ mergeReportsPutFile: {
577
+ name: "stryker.merge_reports.put_file",
578
+ attributes: {}
579
+ },
580
+ mergeReportsReadPart: {
581
+ name: "stryker.merge_reports.read_part",
582
+ attributes: {}
583
+ },
584
+ mergeReportsReadText: {
585
+ name: "stryker.merge_reports.read_text",
586
+ attributes: {}
587
+ },
588
+ mergeReportsRefuseCommand: {
589
+ name: "stryker.merge_reports.refuse_command",
590
+ attributes: {}
591
+ },
592
+ mergeReportsRefuseParts: {
593
+ name: "stryker.merge_reports.refuse_parts",
594
+ attributes: {}
595
+ },
596
+ mergeReportsRenderHtml: {
597
+ name: "stryker.merge_reports.render_html",
598
+ attributes: {}
599
+ },
600
+ mergeReportsWriteAbsent: {
601
+ name: "stryker.merge_reports.write_absent",
602
+ attributes: {}
603
+ },
604
+ mergeReportsWriteFiles: {
605
+ name: "stryker.merge_reports.write_files",
606
+ attributes: {}
607
+ },
608
+ mergeReportsWriteHtml: {
609
+ name: "stryker.merge_reports.write_html",
610
+ attributes: {}
611
+ },
612
+ mergeReportsWriteMerged: {
613
+ name: "stryker.merge_reports.write_merged",
614
+ attributes: {}
615
+ },
616
+ mutantRun: {
617
+ name: "stryker.mutant_run",
618
+ attributes: {}
619
+ },
620
+ mutationReportingAssembleReport: {
621
+ name: "stryker.mutationReporting.assembleReport",
622
+ attributes: {}
623
+ },
624
+ mutationReportingCheckpoint: {
625
+ name: "stryker.mutationReporting.checkpoint",
626
+ attributes: {}
627
+ },
628
+ mutationReportingDiscoverDependencies: {
629
+ name: "stryker.mutationReporting.discoverDependencies",
630
+ attributes: {}
631
+ },
632
+ mutationReportingEmitVerdict: {
633
+ name: "stryker.mutationReporting.emitVerdict",
634
+ attributes: {}
635
+ },
636
+ mutationReportingManifestVersion: {
637
+ name: "stryker.mutationReporting.manifestVersion",
638
+ attributes: {}
639
+ },
640
+ mutationReportingMutationTestReport: {
641
+ name: "stryker.mutationReporting.mutationTestReport",
642
+ attributes: {}
643
+ },
644
+ mutationReportingReadMutatedSources: {
645
+ name: "stryker.mutationReporting.readMutatedSources",
646
+ attributes: {}
647
+ },
648
+ mutationReportingReadTestSources: {
649
+ name: "stryker.mutationReporting.readTestSources",
650
+ attributes: {}
651
+ },
652
+ mutationReportingReportAll: {
653
+ name: "stryker.mutationReporting.reportAll",
654
+ attributes: {}
655
+ },
656
+ mutationReportingSlimIncrementalReport: {
657
+ name: "stryker.mutationReporting.slimIncrementalReport",
658
+ attributes: {}
659
+ },
660
+ mutationReportingWriteAtomic: {
661
+ name: "stryker.mutationReporting.writeAtomic",
662
+ attributes: {}
663
+ },
664
+ mutationReportingWriteIncrementalReport: {
665
+ name: "stryker.mutationReporting.writeIncrementalReport",
666
+ attributes: {}
667
+ },
668
+ mutationTest: {
669
+ name: "stryker.mutation_test",
670
+ attributes: {}
671
+ },
672
+ mutationTestBatch: {
673
+ name: "mutationTest.batch",
674
+ attributes: {
675
+ total: SpanAttributeCount,
676
+ testRunners: SpanAttributeCount
677
+ }
678
+ },
679
+ mutationTestCheckerScope: {
680
+ name: "stryker.mutation_test.checker_scope",
681
+ attributes: {}
682
+ },
683
+ mutationTestDryRunOnly: {
684
+ name: "stryker.mutation_test.dry_run_only",
685
+ attributes: {}
686
+ },
687
+ mutationTestEarlyResult: {
688
+ name: "stryker.mutation_test.early_result",
689
+ attributes: {}
690
+ },
691
+ mutationTestNoTests: {
692
+ name: "stryker.mutation_test.no_tests",
693
+ attributes: {}
694
+ },
695
+ mutationTestPhase: {
696
+ name: "mutationTest",
697
+ attributes: {
698
+ mutantCount: SpanAttributeCount,
699
+ skippedMutantCount: SpanAttributeCount,
700
+ testCount: SpanAttributeCount
701
+ }
702
+ },
703
+ mutationTestPlan: {
704
+ name: "stryker.mutation_test.plan",
705
+ attributes: {}
706
+ },
707
+ mutationTestPlanMutants: {
708
+ name: "stryker.mutation_test.plan_mutants",
709
+ attributes: {}
710
+ },
711
+ mutationTestPlanRead: {
712
+ name: "stryker.mutation_test.plan.read",
713
+ attributes: {}
714
+ },
715
+ mutationTestReadRelativeFiles: {
716
+ name: "stryker.mutation_test.read_relative_files",
717
+ attributes: {}
718
+ },
719
+ mutationTestSandboxFiles: {
720
+ name: "stryker.mutation_test.sandbox_files",
721
+ attributes: {}
722
+ },
723
+ outputDrain: {
724
+ name: "stryker.output.drain",
725
+ attributes: {}
726
+ },
727
+ outputModeProbe: {
728
+ name: "stryker.output_mode_probe",
729
+ attributes: {}
730
+ },
731
+ outputModeProbeRead: {
732
+ name: "stryker.outputModeProbe.read",
733
+ attributes: {}
734
+ },
735
+ phaseEntered: {
736
+ name: "stryker.phase.entered",
737
+ attributes: {}
738
+ },
739
+ pluginLoadLoad: {
740
+ name: "stryker.plugin_load.load",
741
+ attributes: {}
742
+ },
743
+ pluginLoadLoadPlugin: {
744
+ name: "stryker.plugin_load.load_plugin",
745
+ attributes: {}
746
+ },
747
+ pluginLoadPackageEntrypoint: {
748
+ name: "stryker.plugin_load.package_entrypoint",
749
+ attributes: {}
750
+ },
751
+ pluginLoadReport: {
752
+ name: "stryker.pluginLoad.report",
753
+ attributes: {}
754
+ },
755
+ prepare: {
756
+ name: "stryker.prepare",
757
+ attributes: {}
758
+ },
759
+ prepareAnnounceSummary: {
760
+ name: "stryker.prepare.announce-summary",
761
+ attributes: {}
762
+ },
763
+ prepareApply: {
764
+ name: "stryker.prepare.apply",
765
+ attributes: {}
766
+ },
767
+ prepareGather: {
768
+ name: "stryker.prepare.gather",
769
+ attributes: {}
770
+ },
771
+ preparePhase: {
772
+ name: "prepare",
773
+ attributes: {}
774
+ },
775
+ projectFilesRead: {
776
+ name: "stryker.project_files.read",
777
+ attributes: {}
778
+ },
779
+ projectFilesWriteInto: {
780
+ name: "stryker.project_files.write-into",
781
+ attributes: {}
782
+ },
783
+ projectRead: {
784
+ name: "stryker.project_read",
785
+ attributes: {}
786
+ },
787
+ projectReadFromDisk: {
788
+ name: "stryker.project.read",
789
+ attributes: {}
790
+ },
791
+ reportClearText: {
792
+ name: "stryker.report.clearText",
793
+ attributes: {}
794
+ },
795
+ reportClearTextWrite: {
796
+ name: "stryker.report.clearText.write",
797
+ attributes: {}
798
+ },
799
+ reportJson: {
800
+ name: "stryker.report.json",
801
+ attributes: {}
802
+ },
803
+ reportJsonWrite: {
804
+ name: "stryker.report.json.write",
805
+ attributes: {}
806
+ },
807
+ reportProgress: {
808
+ name: "stryker.report.progress",
809
+ attributes: {}
810
+ },
811
+ reportProgressConsume: {
812
+ name: "stryker.report.progress.consume",
813
+ attributes: {}
814
+ },
815
+ reportProgressConsumeEvent: {
816
+ name: "stryker.report.progress.consumeEvent",
817
+ attributes: {}
818
+ },
819
+ reporterStreamAttach: {
820
+ name: "stryker.reporterStream.attach",
821
+ attributes: {}
822
+ },
823
+ reporterStreamCloseStage: {
824
+ name: "stryker.reporterStream.closeStage",
825
+ attributes: {}
826
+ },
827
+ reporterStreamCurrentReporterInit: {
828
+ name: "stryker.reporterStream.currentReporterInit",
829
+ attributes: {}
830
+ },
831
+ reporterStreamDetach: {
832
+ name: "stryker.reporterStream.detach",
833
+ attributes: {}
834
+ },
835
+ reporterStreamEnvironmentTraceInit: {
836
+ name: "stryker.reporterStream.environmentTraceInit",
837
+ attributes: {}
838
+ },
839
+ reporterStreamOfferToChannel: {
840
+ name: "stryker.reporterStream.offerToChannel",
841
+ attributes: {}
842
+ },
843
+ reporterStreamSettle: {
844
+ name: "stryker.reporterStream.settle",
845
+ attributes: {}
846
+ },
847
+ reporterWiringSpawnPluginReporterFactory: {
848
+ name: "stryker.reporterWiring.spawnPluginReporterFactory",
849
+ attributes: {}
850
+ },
851
+ rerun: {
852
+ name: "stryker.rerun",
853
+ attributes: {}
854
+ },
855
+ restrictSocket: {
856
+ name: "restrictSocket",
857
+ attributes: {}
858
+ },
859
+ rpcCapabilities: {
860
+ name: "rpc.capabilities",
861
+ attributes: { "rpc.method": SpanAttributeText }
862
+ },
863
+ rpcCheck: {
864
+ name: "rpc.check",
865
+ attributes: { "rpc.method": SpanAttributeText }
866
+ },
867
+ rpcClientCapabilities: {
868
+ name: "RpcClient.capabilities",
869
+ attributes: {}
870
+ },
871
+ rpcClientCheck: {
872
+ name: "RpcClient.check",
873
+ attributes: {}
874
+ },
875
+ rpcClientDryRun: {
876
+ name: "RpcClient.dryRun",
877
+ attributes: {}
878
+ },
879
+ rpcClientFlush: {
880
+ name: "RpcClient.flush",
881
+ attributes: {}
882
+ },
883
+ rpcClientGroup: {
884
+ name: "RpcClient.group",
885
+ attributes: {}
886
+ },
887
+ rpcClientInit: {
888
+ name: "RpcClient.init",
889
+ attributes: {}
890
+ },
891
+ rpcClientMutantRun: {
892
+ name: "RpcClient.mutantRun",
893
+ attributes: {}
894
+ },
895
+ rpcClientOnEventBatch: {
896
+ name: "RpcClient.onEventBatch",
897
+ attributes: {}
898
+ },
899
+ rpcDryRun: {
900
+ name: "rpc.dryRun",
901
+ attributes: { "rpc.method": SpanAttributeText }
902
+ },
903
+ rpcFlush: {
904
+ name: "rpc.flush",
905
+ attributes: { "rpc.method": SpanAttributeText }
906
+ },
907
+ rpcGroup: {
908
+ name: "rpc.group",
909
+ attributes: { "rpc.method": SpanAttributeText }
910
+ },
911
+ rpcInit: {
912
+ name: "rpc.init",
913
+ attributes: { "rpc.method": SpanAttributeText }
914
+ },
915
+ rpcMutantRun: {
916
+ name: "rpc.mutantRun",
917
+ attributes: { "rpc.method": SpanAttributeText }
918
+ },
919
+ rpcOnEventBatch: {
920
+ name: "rpc.onEventBatch",
921
+ attributes: { "rpc.method": SpanAttributeText }
922
+ },
923
+ rpcServerCapabilities: {
924
+ name: "RpcServer.capabilities",
925
+ attributes: {}
926
+ },
927
+ rpcServerCheck: {
928
+ name: "RpcServer.check",
929
+ attributes: {}
930
+ },
931
+ rpcServerDryRun: {
932
+ name: "RpcServer.dryRun",
933
+ attributes: {}
934
+ },
935
+ rpcServerFlush: {
936
+ name: "RpcServer.flush",
937
+ attributes: {}
938
+ },
939
+ rpcServerGroup: {
940
+ name: "RpcServer.group",
941
+ attributes: {}
942
+ },
943
+ rpcServerInit: {
944
+ name: "RpcServer.init",
945
+ attributes: {}
946
+ },
947
+ rpcServerMutantRun: {
948
+ name: "RpcServer.mutantRun",
949
+ attributes: {}
950
+ },
951
+ rpcServerOnEventBatch: {
952
+ name: "RpcServer.onEventBatch",
953
+ attributes: {}
954
+ },
955
+ runConclude: {
956
+ name: "stryker.run.conclude",
957
+ attributes: {}
958
+ },
959
+ runConclusionRead: {
960
+ name: "stryker.run_conclusion.read",
961
+ attributes: {}
962
+ },
963
+ runEventStreamCloseAndDrain: {
964
+ name: "stryker.runEventStream.closeAndDrain",
965
+ attributes: {}
966
+ },
967
+ runEventStreamDrainFile: {
968
+ name: "stryker.runEventStream.drainFile",
969
+ attributes: {}
970
+ },
971
+ runEventStreamDrainStoredFile: {
972
+ name: "stryker.runEventStream.drainStoredFile",
973
+ attributes: {}
974
+ },
975
+ runEventStreamDrainToSinks: {
976
+ name: "stryker.runEventStream.drainToSinks",
977
+ attributes: {}
978
+ },
979
+ runEventStreamEmitMachineModeOutput: {
980
+ name: "stryker.runEventStream.emitMachineModeOutput",
981
+ attributes: {}
982
+ },
983
+ runEventStreamMake: {
984
+ name: "stryker.runEventStream.make",
985
+ attributes: {}
986
+ },
987
+ runEventStreamNullScoreVerdict: {
988
+ name: "stryker.runEventStream.nullScoreVerdict",
989
+ attributes: {}
990
+ },
991
+ runEventStreamOpen: {
992
+ name: "stryker.runEventStream.open",
993
+ attributes: {}
994
+ },
995
+ runEventStreamOpenHeader: {
996
+ name: "stryker.runEventStream.openHeader",
997
+ attributes: {}
998
+ },
999
+ runEventStreamStartDrain: {
1000
+ name: "stryker.runEventStream.startDrain",
1001
+ attributes: {}
1002
+ },
1003
+ runEventStreamTick: {
1004
+ name: "stryker.runEventStream.tick",
1005
+ attributes: {}
1006
+ },
1007
+ runRequest: {
1008
+ name: "stryker.run_request",
1009
+ attributes: {}
1010
+ },
1011
+ runRequestGather: {
1012
+ name: "stryker.run_request.gather",
1013
+ attributes: {}
1014
+ },
1015
+ sandboxAcquire: {
1016
+ name: "stryker.sandbox.acquire",
1017
+ attributes: {}
1018
+ },
1019
+ sandboxBuildRun: {
1020
+ name: "stryker.sandbox.build.run",
1021
+ attributes: {}
1022
+ },
1023
+ sandboxFindNodeModules: {
1024
+ name: "stryker.sandbox.find_node_modules",
1025
+ attributes: {}
1026
+ },
1027
+ sandboxLinkNodeModules: {
1028
+ name: "stryker.sandbox.link_node_modules",
1029
+ attributes: {}
1030
+ },
1031
+ sandboxMakeTempDir: {
1032
+ name: "stryker.sandbox.make_temp_dir",
1033
+ attributes: {}
1034
+ },
1035
+ sandboxMoveDirectory: {
1036
+ name: "stryker.sandbox.move_directory",
1037
+ attributes: {}
1038
+ },
1039
+ sandboxMoveDirectoryContents: {
1040
+ name: "stryker.sandbox.move_directory.contents",
1041
+ attributes: {}
1042
+ },
1043
+ sandboxMoveEntry: {
1044
+ name: "stryker.sandbox.move_entry",
1045
+ attributes: {}
1046
+ },
1047
+ sandboxPreprocessDisableTypeChecks: {
1048
+ name: "stryker.sandbox.preprocess.disable_type_checks",
1049
+ attributes: {}
1050
+ },
1051
+ sandboxRemoveEmptyParent: {
1052
+ name: "stryker.sandbox.remove_empty_parent",
1053
+ attributes: {}
1054
+ },
1055
+ sandboxRemoveTempDir: {
1056
+ name: "stryker.sandbox.remove_temp_dir",
1057
+ attributes: {}
1058
+ },
1059
+ sandboxRestoreOriginal: {
1060
+ name: "stryker.sandbox.restore_original",
1061
+ attributes: {}
1062
+ },
1063
+ sandboxSymlinkJunction: {
1064
+ name: "stryker.sandbox.symlink_junction",
1065
+ attributes: {}
1066
+ },
1067
+ sandboxSymlinkNodeModules: {
1068
+ name: "stryker.sandbox.symlink_node_modules",
1069
+ attributes: {}
1070
+ },
1071
+ sandboxTsconfigRewriteFileArrays: {
1072
+ name: "stryker.sandbox.tsconfig.rewrite-file-arrays",
1073
+ attributes: {}
1074
+ },
1075
+ survivorsAdmission: {
1076
+ name: "stryker.survivors_admission",
1077
+ attributes: {}
1078
+ },
1079
+ survivorsAdmissionGather: {
1080
+ name: "stryker.survivors_admission.gather",
1081
+ attributes: {}
1082
+ },
1083
+ survivorsAdmissionHashSources: {
1084
+ name: "stryker.survivors_admission.hash_sources",
1085
+ attributes: {}
1086
+ },
1087
+ survivorsAdmissionReadPriorReport: {
1088
+ name: "stryker.survivors_admission.read_prior_report",
1089
+ attributes: {}
1090
+ },
1091
+ survivorsAdmissionReadSource: {
1092
+ name: "stryker.survivors_admission.read_source",
1093
+ attributes: {}
1094
+ },
1095
+ survivorsAdmissionResolveOptions: {
1096
+ name: "stryker.survivors_admission.resolve_options",
1097
+ attributes: {}
1098
+ },
1099
+ testRunnerApplyEnvironmentState: {
1100
+ name: "stryker.testRunner.applyEnvironmentState",
1101
+ attributes: {}
1102
+ },
1103
+ testRunnerMaxReusePolicy: {
1104
+ name: "stryker.testRunner.maxReusePolicy",
1105
+ attributes: {}
1106
+ },
1107
+ testRunnerMutantRun: {
1108
+ name: "stryker.testRunner.mutantRun",
1109
+ attributes: {
1110
+ "stryker.mutant.file": Mutant.CanonicalFileName,
1111
+ "stryker.mutant.id": Mutant.MutantId,
1112
+ "stryker.mutant.mutator": Mutant.MutatorName,
1113
+ "stryker.mutant.status": Mutant.MutantStatusSchema,
1114
+ "test.suite.name": SpanAttributeText,
1115
+ "test.suite.run.status": SpanRunStatus,
1116
+ "cicd.pipeline.run.id": SpanAttributeText,
1117
+ "cicd.pipeline.name": SpanAttributeText
1118
+ }
1119
+ },
1120
+ testRunnerReloadEnvironment: {
1121
+ name: "stryker.testRunner.reloadEnvironment",
1122
+ attributes: {}
1123
+ },
1124
+ testRunnerWithEnvironmentReload: {
1125
+ name: "stryker.testRunner.withEnvironmentReload",
1126
+ attributes: {}
1127
+ },
1128
+ testRunnerWithMaxReuse: {
1129
+ name: "stryker.testRunner.withMaxReuse",
1130
+ attributes: {}
1131
+ },
1132
+ typescriptCheckerCheck: {
1133
+ name: "typescript-checker.check",
1134
+ attributes: { "stryker.mutants.count": SpanAttributeCount }
1135
+ },
1136
+ typescriptCheckerCheckMutants: {
1137
+ name: "stryker.typescript_checker.check_mutants",
1138
+ attributes: {}
1139
+ },
1140
+ typescriptCheckerCompilerCheck: {
1141
+ name: "typescript-checker.compiler.check",
1142
+ attributes: {}
1143
+ },
1144
+ typescriptCheckerCompilerClose: {
1145
+ name: "typescript-checker.compiler.close",
1146
+ attributes: {}
1147
+ },
1148
+ typescriptCheckerCompilerDryRun: {
1149
+ name: "typescript-checker.compiler.dryRun",
1150
+ attributes: {}
1151
+ },
1152
+ typescriptCheckerCompilerGroups: {
1153
+ name: "typescript-checker.compiler.groups",
1154
+ attributes: {}
1155
+ },
1156
+ typescriptCheckerCompilerInit: {
1157
+ name: "typescript-checker.compiler.init",
1158
+ attributes: {}
1159
+ },
1160
+ typescriptCheckerCompilerLineAndCharacter: {
1161
+ name: "typescript-checker.compiler.lineAndCharacter",
1162
+ attributes: {}
1163
+ },
1164
+ typescriptCheckerCompilerMake: {
1165
+ name: "typescript-checker.compiler.make",
1166
+ attributes: {}
1167
+ },
1168
+ typescriptCheckerCompilerNodes: {
1169
+ name: "typescript-checker.compiler.nodes",
1170
+ attributes: {}
1171
+ },
1172
+ typescriptCheckerCompilerScoped: {
1173
+ name: "typescript-checker.compiler.scoped",
1174
+ attributes: {}
1175
+ },
1176
+ typescriptCheckerRuntimeMakeChecker: {
1177
+ name: "typescript-checker.runtime.makeChecker",
1178
+ attributes: {}
1179
+ },
1180
+ typescriptCheckerSoloRound: {
1181
+ name: "typescript-checker.soloRound",
1182
+ attributes: { "stryker.mutant.id": Mutant.MutantId }
1183
+ },
1184
+ validateOptions: {
1185
+ name: "stryker.validate_options",
1186
+ attributes: {}
1187
+ },
1188
+ vitestMutantRun: {
1189
+ name: "stryker.vitest.mutant_run",
1190
+ attributes: {}
1191
+ },
1192
+ vitestMutantRunRead: {
1193
+ name: "vitest.mutant_run.read",
1194
+ attributes: {}
1195
+ },
1196
+ vitestRunnerCollectRaw: {
1197
+ name: "vitest.runner.collect_raw",
1198
+ attributes: {}
1199
+ },
1200
+ vitestRunnerCompleteDryRun: {
1201
+ name: "vitest.runner.complete_dry_run",
1202
+ attributes: {}
1203
+ },
1204
+ vitestRunnerCoverageOfFile: {
1205
+ name: "vitest.runner.coverage_of_file",
1206
+ attributes: {}
1207
+ },
1208
+ vitestRunnerMake: {
1209
+ name: "vitest.runner.make",
1210
+ attributes: {}
1211
+ },
1212
+ vitestRuntimeAcquire: {
1213
+ name: "vitest.runtime.acquire",
1214
+ attributes: {}
1215
+ },
1216
+ vitestRuntimeApplyRunFilter: {
1217
+ name: "vitest.runtime.apply_run_filter",
1218
+ attributes: {}
1219
+ },
1220
+ vitestRuntimeClose: {
1221
+ name: "vitest.runtime.close",
1222
+ attributes: {}
1223
+ },
1224
+ vitestRuntimeOpen: {
1225
+ name: "vitest.runtime.open",
1226
+ attributes: {}
1227
+ },
1228
+ vitestRuntimeReadSandboxSelfAliases: {
1229
+ name: "vitest.runtime.read_sandbox_self_aliases",
1230
+ attributes: {}
1231
+ },
1232
+ vitestRuntimeStart: {
1233
+ name: "vitest.runtime.start",
1234
+ attributes: {}
1235
+ },
1236
+ vitestStandbyPoolClaim: {
1237
+ name: "vitest.standby_pool.claim",
1238
+ attributes: {}
1239
+ },
1240
+ vitestStandbyPoolDispose: {
1241
+ name: "vitest.standby_pool.dispose",
1242
+ attributes: {}
1243
+ },
1244
+ vitestStandbyPoolMake: {
1245
+ name: "vitest.standby_pool.make",
1246
+ attributes: {}
1247
+ },
1248
+ vitestStandbyPoolRelease: {
1249
+ name: "vitest.standby_pool.release",
1250
+ attributes: {}
1251
+ },
1252
+ workerIdGeneratorMake: {
1253
+ name: "stryker.worker.idGenerator.make",
1254
+ attributes: {}
1255
+ },
1256
+ workerProtocolFailInFlight: {
1257
+ name: "stryker.worker.protocol.failInFlight",
1258
+ attributes: {}
1259
+ },
1260
+ workerProtocolMake: {
1261
+ name: "stryker.worker.protocol.make",
1262
+ attributes: {}
1263
+ },
1264
+ workerSpawn: {
1265
+ name: "stryker.worker.spawn",
1266
+ attributes: {}
1267
+ }
1268
+ };
1269
+ const spanMembers = Object.values(Spans);
1270
+ const rpcServedSpans = /* @__PURE__ */ new Map([
1271
+ ["capabilities", Spans.rpcCapabilities],
1272
+ ["check", Spans.rpcCheck],
1273
+ ["dryRun", Spans.rpcDryRun],
1274
+ ["flush", Spans.rpcFlush],
1275
+ ["group", Spans.rpcGroup],
1276
+ ["init", Spans.rpcInit],
1277
+ ["mutantRun", Spans.rpcMutantRun],
1278
+ ["onEventBatch", Spans.rpcOnEventBatch]
1279
+ ]);
1280
+ const rpcServedSpanOf = (method) => rpcServedSpans.get(method);
1281
+ //#endregion
1282
+ //#region src/SpanTaxonomy/mod.ts
1283
+ var SpanTaxonomy_exports = /* @__PURE__ */ __exportAll({
1284
+ SpanAttributeCount: () => SpanAttributeCount,
1285
+ SpanAttributeKey: () => SpanAttributeKey,
1286
+ SpanAttributeText: () => SpanAttributeText,
1287
+ SpanDocument: () => SpanDocument,
1288
+ SpanDocuments: () => SpanDocuments,
1289
+ SpanName: () => SpanName,
1290
+ Spans: () => Spans,
1291
+ rpcServedSpanOf: () => rpcServedSpanOf,
1292
+ spanMembers: () => spanMembers
1293
+ });
1294
+ //#endregion
1295
+ //#region src/StockCatalog.schema.ts
1296
+ const StockDefaultName = S.Literals([
1297
+ "ArithmeticOperator",
1298
+ "ArrayDeclaration",
1299
+ "ArrowFunction",
1300
+ "AssignmentOperator",
1301
+ "BlockStatement",
1302
+ "BooleanLiteral",
1303
+ "ConditionalExpression",
1304
+ "EqualityOperator",
1305
+ "LogicalOperator",
1306
+ "MethodExpression",
1307
+ "ObjectLiteral",
1308
+ "OptionalChaining",
1309
+ "Regex",
1310
+ "StringLiteral",
1311
+ "UnaryOperator",
1312
+ "UpdateOperator"
1313
+ ]);
1314
+ const StockOptInName = S.Literals([
1315
+ "AtomicUpdateSplit",
1316
+ "SynchronizationRemoval",
1317
+ "FinalizerEscape"
1318
+ ]);
1319
+ const StockMutatorName = S.Union([StockDefaultName, StockOptInName]);
1320
+ const StockCatalog = {
1321
+ provider: "stryker",
1322
+ entries: [
1323
+ {
1324
+ id: "arithmetic-operator",
1325
+ name: "ArithmeticOperator",
1326
+ tier: "default",
1327
+ definition: "A binary arithmetic operator: `+` becomes `-`, `-` becomes `+`, `*` becomes `/`, `/` becomes `*` and `%` becomes `*`. A string or template literal on either side is refused, as is a private name on the left.",
1328
+ examples: [{
1329
+ before: "const x = 1 + 2;",
1330
+ after: ["1 - 2"]
1331
+ }, {
1332
+ before: "const x = 'a' + 'b';",
1333
+ after: []
1334
+ }]
1335
+ },
1336
+ {
1337
+ id: "array-declaration",
1338
+ name: "ArrayDeclaration",
1339
+ tier: "default",
1340
+ definition: "An array literal becomes `[]` and an empty one becomes `['Stryker was here']`; `Array(1, 2)` becomes `Array()` and `Array()` becomes `Array([])`. A call that is not `Array` is refused.",
1341
+ examples: [
1342
+ {
1343
+ before: "const x = [1];",
1344
+ after: ["[]"]
1345
+ },
1346
+ {
1347
+ before: "const x = [];",
1348
+ after: ["[\"Stryker was here\"]"]
1349
+ },
1350
+ {
1351
+ before: "const x = Array(1, 2);",
1352
+ after: ["Array()"]
1353
+ },
1354
+ {
1355
+ before: "const x = Array();",
1356
+ after: ["Array([])"]
1357
+ },
1358
+ {
1359
+ before: "const x = someCall(1, 2);",
1360
+ after: []
1361
+ }
1362
+ ]
1363
+ },
1364
+ {
1365
+ id: "arrow-function",
1366
+ name: "ArrowFunction",
1367
+ tier: "default",
1368
+ definition: "An arrow function shorthand body becomes `undefined`. A block body, and a body that already is `undefined`, are refused.",
1369
+ examples: [{
1370
+ before: "const x = () => 1;",
1371
+ after: ["() => undefined"]
1372
+ }, {
1373
+ before: "const x = () => { return 1; };",
1374
+ after: []
1375
+ }]
1376
+ },
1377
+ {
1378
+ id: "assignment-operator",
1379
+ name: "AssignmentOperator",
1380
+ tier: "default",
1381
+ definition: "A compound assignment operator: `+=` becomes `-=`, `*=` becomes `/=`, `%=` becomes `*=`, `<<=` becomes `>>=`, `&=` becomes `|=`, `&&=` becomes `||=` and `??=` becomes `&&=`. A compound assignment whose right side is string-like is refused, except for the logical assignments.",
1382
+ examples: [{
1383
+ before: "let x = 1; x += 2;",
1384
+ after: ["x -= 2"]
1385
+ }, {
1386
+ before: "let s = 'a'; s += 'b';",
1387
+ after: []
1388
+ }]
1389
+ },
1390
+ {
1391
+ id: "block-statement",
1392
+ name: "BlockStatement",
1393
+ tier: "default",
1394
+ definition: "A non-empty block becomes `{}`. An empty block, and a derived constructor body that references `super` while the class initializes properties, are refused.",
1395
+ examples: [{
1396
+ before: "function f() { const x = 1; }",
1397
+ after: ["{}"]
1398
+ }, {
1399
+ before: "function f() {}",
1400
+ after: []
1401
+ }]
1402
+ },
1403
+ {
1404
+ id: "boolean-literal",
1405
+ name: "BooleanLiteral",
1406
+ tier: "default",
1407
+ definition: "`true` becomes `false`, `false` becomes `true`, and a prefix `!` collapses to its operand. A literal that is not a boolean is refused.",
1408
+ examples: [
1409
+ {
1410
+ before: "const x = true;",
1411
+ after: ["false"]
1412
+ },
1413
+ {
1414
+ before: "const x = !a;",
1415
+ after: ["a"]
1416
+ },
1417
+ {
1418
+ before: "const x = 1;",
1419
+ after: []
1420
+ }
1421
+ ]
1422
+ },
1423
+ {
1424
+ id: "conditional-expression",
1425
+ name: "ConditionalExpression",
1426
+ tier: "default",
1427
+ definition: "A condition becomes `true` and `false`; a loop test becomes `false`; a condition under `&&` becomes `true` and one under `||` becomes `false`. A statement the rule does not match is refused.",
1428
+ examples: [{
1429
+ before: "if (a) { f(); }",
1430
+ after: ["true", "false"]
1431
+ }, {
1432
+ before: "while (a) { f(); }",
1433
+ after: ["false"]
1434
+ }]
1435
+ },
1436
+ {
1437
+ id: "equality-operator",
1438
+ name: "EqualityOperator",
1439
+ tier: "default",
1440
+ definition: "An ordering comparison becomes its two alternatives (`<` becomes `<=` and `>=`) and an equality comparison flips (`===` becomes `!==`, `!=` becomes `==`).",
1441
+ examples: [{
1442
+ before: "const x = a === b;",
1443
+ after: ["a !== b"]
1444
+ }, {
1445
+ before: "const x = a < b;",
1446
+ after: ["a <= b", "a >= b"]
1447
+ }]
1448
+ },
1449
+ {
1450
+ id: "logical-operator",
1451
+ name: "LogicalOperator",
1452
+ tier: "default",
1453
+ definition: "`&&` becomes `||`, `||` becomes `&&` and `??` becomes `&&`. An expression that is not logical is refused.",
1454
+ examples: [
1455
+ {
1456
+ before: "const x = a && b;",
1457
+ after: ["a || b"]
1458
+ },
1459
+ {
1460
+ before: "const x = a ?? b;",
1461
+ after: ["a && b"]
1462
+ },
1463
+ {
1464
+ before: "const x = a + b;",
1465
+ after: []
1466
+ }
1467
+ ]
1468
+ },
1469
+ {
1470
+ id: "method-expression",
1471
+ name: "MethodExpression",
1472
+ tier: "default",
1473
+ definition: "A known method call becomes its opposite (`toLowerCase` becomes `toUpperCase`) or, for a removal method, a call of the object itself (`arr.filter(p)` becomes `arr()`). A `super` call, an unknown method and a string-literal key are refused.",
1474
+ examples: [
1475
+ {
1476
+ before: "const x = \"HELLO\".toLowerCase();",
1477
+ after: ["\"HELLO\".toUpperCase()"]
1478
+ },
1479
+ {
1480
+ before: "const x = arr.filter(p);",
1481
+ after: ["arr()"]
1482
+ },
1483
+ {
1484
+ before: "const x = arr['filter'](p);",
1485
+ after: []
1486
+ }
1487
+ ]
1488
+ },
1489
+ {
1490
+ id: "object-literal",
1491
+ name: "ObjectLiteral",
1492
+ tier: "default",
1493
+ definition: "A non-empty object literal becomes `{}`; an empty one is refused.",
1494
+ examples: [{
1495
+ before: "const x = { a: 1 };",
1496
+ after: ["{}"]
1497
+ }, {
1498
+ before: "const x = {};",
1499
+ after: []
1500
+ }]
1501
+ },
1502
+ {
1503
+ id: "optional-chaining",
1504
+ name: "OptionalChaining",
1505
+ tier: "default",
1506
+ definition: "An optional access becomes the plain one: `a?.b` becomes `a.b`, `a?.[k]` becomes `a[k]` and `a?.()` becomes `a()`. A member that is not optional is refused.",
1507
+ examples: [
1508
+ {
1509
+ before: "const x = a?.b;",
1510
+ after: ["a.b"]
1511
+ },
1512
+ {
1513
+ before: "const x = a?.[k];",
1514
+ after: ["a[k]"]
1515
+ },
1516
+ {
1517
+ before: "const x = a.b;",
1518
+ after: []
1519
+ }
1520
+ ]
1521
+ },
1522
+ {
1523
+ id: "regex",
1524
+ name: "Regex",
1525
+ tier: "default",
1526
+ definition: "A regular-expression literal, or the string of `new RegExp(...)`, loses anchors, quantifiers, lookarounds or class negations — one mutant per mutation, emitted anchors first. Alternations and groups are refused.",
1527
+ examples: [{
1528
+ before: "const x = /a+/;",
1529
+ after: ["/a/"]
1530
+ }, {
1531
+ before: "const x = /a|b/;",
1532
+ after: []
1533
+ }]
1534
+ },
1535
+ {
1536
+ id: "string-literal",
1537
+ name: "StringLiteral",
1538
+ tier: "default",
1539
+ definition: "A non-empty string becomes `\"\"` and an empty one becomes 'Stryker was here!'; a template literal's first quasi is mutated. A directive, an import or export specifier, a property key, a JSX attribute and a literal type are refused.",
1540
+ examples: [{
1541
+ before: "const x = \"hello\";",
1542
+ after: ["\"\""]
1543
+ }, {
1544
+ before: "'use strict';",
1545
+ after: []
1546
+ }]
1547
+ },
1548
+ {
1549
+ id: "unary-operator",
1550
+ name: "UnaryOperator",
1551
+ tier: "default",
1552
+ definition: "`+x` becomes `-x`, `-x` becomes `+x` and `~x` becomes `x`. `!`, `typeof`, `void` and `delete` are refused.",
1553
+ examples: [
1554
+ {
1555
+ before: "const x = -a;",
1556
+ after: ["+a"]
1557
+ },
1558
+ {
1559
+ before: "const x = ~a;",
1560
+ after: ["a"]
1561
+ },
1562
+ {
1563
+ before: "const x = typeof y;",
1564
+ after: []
1565
+ }
1566
+ ]
1567
+ },
1568
+ {
1569
+ id: "update-operator",
1570
+ name: "UpdateOperator",
1571
+ tier: "default",
1572
+ definition: "`++` becomes `--` and `--` becomes `++`, prefix or postfix.",
1573
+ examples: [{
1574
+ before: "let x = 1; x++;",
1575
+ after: ["x--"]
1576
+ }]
1577
+ },
1578
+ {
1579
+ id: "atomic-update-split",
1580
+ name: "AtomicUpdateSplit",
1581
+ tier: "optIn",
1582
+ definition: "A `Ref` or `SynchronizedRef` atomic update — `modify`, `modifySome`, `update`, `updateSome`, `updateAndGet`, `getAndUpdate` — is split into a read, a snapshot update and a write, so a lost update survives. The `Effect` module has to be in scope, and the reference and the handler have to be movable.",
1583
+ examples: [
1584
+ {
1585
+ before: `import { Effect, Ref } from 'effect'
1586
+
1587
+ export const bump = (ref: Ref.Ref<number>): Effect.Effect<void> => Ref.update(ref, (n) => n + 1)
1588
+ `,
1589
+ after: ["Effect.flatMap(Effect.succeed(ref), self => Effect.flatMap(Ref.get(self), s => Effect.flatMap(Ref.make(s), snap => Effect.flatMap(Ref.update(snap, n => n + 1), b => Effect.flatMap(Effect.yieldNow, () => Effect.flatMap(Ref.get(snap), a => Effect.as(Ref.set(self, a), b)))))))"]
1590
+ },
1591
+ {
1592
+ before: `import { Effect, pipe, Ref } from 'effect'
1593
+
1594
+ export const bumpPiped = (ref: Ref.Ref<number>) => pipe(ref, Ref.update((n: number) => n + 1))
1595
+ `,
1596
+ after: ["self => Effect.flatMap(Ref.get(self), s => Effect.flatMap(Ref.make(s), snap => Effect.flatMap(Ref.update(snap, (n: number) => n + 1), b => Effect.flatMap(Effect.yieldNow, () => Effect.flatMap(Ref.get(snap), a => Effect.as(Ref.set(self, a), b))))))"]
1597
+ },
1598
+ {
1599
+ before: `import { Ref } from 'effect'
1600
+
1601
+ export const withoutEffect = (ref: Ref.Ref<number>) => Ref.update(ref, (n) => n + 1)
1602
+ `,
1603
+ after: []
1604
+ }
1605
+ ]
1606
+ },
1607
+ {
1608
+ id: "synchronization-removal",
1609
+ name: "SynchronizationRemoval",
1610
+ tier: "optIn",
1611
+ definition: "The lock a call takes is dropped: `Semaphore.withPermits(sem, n, effect)` and `Semaphore.withPermit(sem, effect)` become the guarded effect, their piped forms become `self => self`, `Effect.uninterruptible(effect)` becomes `effect`, and `Effect.uninterruptibleMask(f)` becomes `Effect.suspend(() => f(Effect.interruptible))`. A guard that is not droppable, and a method-form call whose guard is built on the spot, are refused.",
1612
+ examples: [
1613
+ {
1614
+ before: `import { Effect, Semaphore } from 'effect'
1615
+
1616
+ export const guarded = (sem: Semaphore.Semaphore, effect: Effect.Effect<number>) =>
1617
+ Semaphore.withPermits(sem, 1, effect)
1618
+ `,
1619
+ after: ["effect"]
1620
+ },
1621
+ {
1622
+ before: `import { Effect, pipe } from 'effect'
1623
+
1624
+ export const frozen = (effect: Effect.Effect<number>) => pipe(effect, Effect.uninterruptible)
1625
+ `,
1626
+ after: ["self => self"]
1627
+ },
1628
+ {
1629
+ before: `import { Effect } from 'effect'
1630
+
1631
+ export const masked = (effect: Effect.Effect<number>) => Effect.uninterruptibleMask((restore) => restore(effect))
1632
+ `,
1633
+ after: ["Effect.suspend(() => (restore => restore(effect))(Effect.interruptible))"]
1634
+ },
1635
+ {
1636
+ before: `import { Effect, Semaphore } from 'effect'
1637
+
1638
+ export const methodForm = (sem: Semaphore.Semaphore, effect: Effect.Effect<number>) =>
1639
+ sem.withPermits(1)(effect)
1640
+ `,
1641
+ after: []
1642
+ }
1643
+ ]
1644
+ },
1645
+ {
1646
+ id: "finalizer-escape",
1647
+ name: "FinalizerEscape",
1648
+ tier: "optIn",
1649
+ definition: "A finalizer is kept only for the path that did not interrupt: `Effect.ensuring(effect, fin)` re-runs `fin` when the exit was not an interruption, `Effect.onError(effect, h)` re-runs `h` when the cause carries none, a release bracket wraps its release the same way, and `Effect.onInterrupt(effect, h)` drops the handler. A handler built by a call, and a cleanup that yields while it is moved, are refused.",
1650
+ examples: [
1651
+ {
1652
+ before: `import { Effect, Ref } from 'effect'
1653
+
1654
+ export const ensuringDataFirst = (effect: Effect.Effect<number>, closed: Ref.Ref<boolean>) =>
1655
+ Effect.ensuring(effect, Ref.set(closed, true))
1656
+ `,
1657
+ after: ["Effect.onExitIf(effect, exit => exit._tag === \"Success\" || !exit.cause.reasons.some(reason => reason._tag === \"Interrupt\"), () => Ref.set(closed, true))"]
1658
+ },
1659
+ {
1660
+ before: `import { Effect, Ref } from 'effect'
1661
+
1662
+ export const onErrorDataFirst = (effect: Effect.Effect<number>, closed: Ref.Ref<boolean>) =>
1663
+ Effect.onError(effect, () => Ref.set(closed, true))
1664
+ `,
1665
+ after: ["Effect.onErrorIf(effect, cause => !cause.reasons.some(reason => reason._tag === \"Interrupt\"), () => Ref.set(closed, true))"]
1666
+ },
1667
+ {
1668
+ before: `import { Effect, Ref } from 'effect'
1669
+
1670
+ export const acquireReleaseTwoArg = (acquire: Effect.Effect<number>, closed: Ref.Ref<boolean>) =>
1671
+ Effect.acquireRelease(acquire, () => Ref.getAndSet(closed, true))
1672
+ `,
1673
+ after: ["Effect.flatMap(Effect.interruptible(acquire), a => Effect.acquireRelease(Effect.succeed(a), () => Ref.getAndSet(closed, true)))"]
1674
+ },
1675
+ {
1676
+ before: `import { Effect, Ref } from 'effect'
1677
+
1678
+ export const acquireUseReleaseBrackets = (
1679
+ acquire: Effect.Effect<number>,
1680
+ use: (a: number) => Effect.Effect<number>,
1681
+ closed: Ref.Ref<boolean>,
1682
+ ) => Effect.acquireUseRelease(acquire, use, () => Ref.set(closed, true))
1683
+ `,
1684
+ after: ["Effect.acquireUseRelease(acquire, use, (a, exit) => exit._tag === \"Success\" || !exit.cause.reasons.some(reason => reason._tag === \"Interrupt\") ? (() => Ref.set(closed, true))() : Effect.void)"]
1685
+ },
1686
+ {
1687
+ before: `import { Effect, Ref } from 'effect'
1688
+
1689
+ const ensuring = (effect: Effect.Effect<number>, cleanup: Effect.Effect<void>) => effect
1690
+
1691
+ export const localEnsuringRefusal = (effect: Effect.Effect<number>, closed: Ref.Ref<boolean>) =>
1692
+ ensuring(effect, Ref.set(closed, true))
1693
+ `,
1694
+ after: []
1695
+ }
1696
+ ]
1697
+ }
1698
+ ]
1699
+ };
1700
+ //#endregion
1701
+ //#region src/StockCatalog/mod.ts
1702
+ var StockCatalog_exports = /* @__PURE__ */ __exportAll({
1703
+ StockCatalog: () => StockCatalog,
1704
+ StockDefaultName: () => StockDefaultName,
1705
+ StockMutatorName: () => StockMutatorName,
1706
+ StockOptInName: () => StockOptInName
1707
+ });
1708
+ //#endregion
1709
+ export { OutputMode_exports as OutputMode, RunEvent_exports as RunEvent, SpanTaxonomy_exports as SpanTaxonomy, StockCatalog_exports as StockCatalog };