npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@systemfsoftware/stryker-js-plugin-runtime

v6.0.2

Published

The mutation-testing plugin runtime — the worker's RPC server layer, its OTel bootstrap, the worker-options wire codec, and the trace-context middleware implementations a plugin process runs.

Downloads

3,053

Readme

@systemfsoftware/stryker-js-plugin-runtime

The mutation-testing plugin runtime — the worker-side implementation of the boundary described by @systemfsoftware/stryker-js-plugin-interface. A plugin's main.ts launches this package's workerServerLayer; nothing here is contract, so a host that only spawns plugins never imports it.

This package owns:

  • the worker RPC server layer a plugin process launches — workerServerLayer and its WorkerServerParams;
  • the telemetry a worker process exports with — the WorkerTelemetryConfig shape and the OTLP endpoint rule TracesUrl in worker-telemetry.schema.ts, read through the WorkerTelemetry service a worker's program root binds its own OTel SDK from;
  • the worker-options wire schema — WorkerOptionsWire — and the WorkerOptions service a worker reads its options.json through;
  • the trace-context middleware implementations that carry W3C traceparent/tracestate across the process split — layerTraceContextClient, layerTraceContextServer, withLinkedSpan, tracePartsOf, partsOfEffectSpan.

The symbols these implement — the RPC groups, the payload schemas, the typed errors, the spawn contract, and the trace-context contract (TraceContextMiddleware, PropagatedTrace, TracedRpc) — are owned by @systemfsoftware/stryker-js-plugin-interface and re-exported by nothing: a consumer imports each symbol from the package that owns it.

Install

pnpm add @systemfsoftware/stryker-js-plugin-runtime

The entry a plugin ships

Worker.workerServerLayer builds the RpcServer for one kind's RPC group over a socket, file system, and path the program root provides, restricts the socket file to its owner, and provides the server-side trace-context middleware:

import { Plugin } from '@systemfsoftware/stryker-js-plugin-interface'
import { Worker } from '@systemfsoftware/stryker-js-plugin-runtime'

NodeRuntime.runMain(
  Layer.launch(
    Worker.workerServerLayer({
      rpcs: Plugin.TestRunnerRpcs,
      handlers: testRunnerHandlers,
      schemaServices: Layer.empty,
    }),
  ).pipe(Effect.provideService(Logger.LogToStderr, true)),
)

Worker options

The host writes the run's options to options.json in the worker directory it creates; Worker.WorkerOptions, read through Worker.WorkerOptions.layer, decodes that file into the same StrykerOptions a local stryker run uses, so a worker's handlers see the run's options without the host passing them over the wire.

Trace context

A synchronous RPC call is the parent of the spans it invokes: the client middleware injects the active trace context into the request headers as W3C traceparent/tracestate, and the server middleware continues that trace for the handler. Asynchronous plugin work — anything that outlives its call — is linked instead of parented, through Trace.withLinkedSpan.

License

Apache-2.0. Part of systemfsoftware.