# System map — stryker-mutator/stryker-js

> Canonical page: https://codevetter.com/unpack/stryker-js/system-map

# System map — stryker-mutator/stryker-js

Scanned commit f2a49ff02437e3b7fe2682dba808ac93039895bf (2026-09-11). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

The repository builds and publishes a family of Node.js packages coordinated by pnpm, Lerna, and TypeScript project references. Core owns the CLI and execution lifecycle, while the API and instrumenter define integration contracts and source transformation. Runtime work crosses parent-process, worker-process, filesystem, and optional network boundaries. Persistence consists of project copies, backups, and report files in the inspected paths.
- The executable sets process.title to 'stryker' and invokes StrykerCli.run(); the core package exposes its compiled index and installs bin/stryker.js as the stryker command. — [packages/core/bin/stryker.js#L1-L6](https://github.com/stryker-mutator/stryker-js/blob/f2a49ff02437e3b7fe2682dba808ac93039895bf/packages/core/bin/stryker.js#L1-L6) [packages/core/package.json#L12-L14](https://github.com/stryker-mutator/stryker-js/blob/f2a49ff02437e3b7fe2682dba808ac93039895bf/packages/core/package.json#L12-L14) [packages/core/package.json#L65-L67](https://github.com/stryker-mutator/stryker-js/blob/f2a49ff02437e3b7fe2682dba808ac93039895bf/packages/core/package.json#L65-L67)
- The parent is a private ESM package requiring Node >=22 and pnpm@11.5.1; pnpm workspaces include packages, e2e, and individual e2e fixture packages. — [package.json#L2-L5](https://github.com/stryker-mutator/stryker-js/blob/f2a49ff02437e3b7fe2682dba808ac93039895bf/package.json#L2-L5) [package.json#L72-L74](https://github.com/stryker-mutator/stryker-js/blob/f2a49ff02437e3b7fe2682dba808ac93039895bf/package.json#L72-L74) [pnpm-workspace.yaml#L1-L4](https://github.com/stryker-mutator/stryker-js/blob/f2a49ff02437e3b7fe2682dba808ac93039895bf/pnpm-workspace.yaml#L1-L4)
- TypeScript project references separate core, API, util, instrumenter, create-stryker, eight runner packages, typescript-checker, and test-helpers. — [tsconfig.json#L3-L17](https://github.com/stryker-mutator/stryker-js/blob/f2a49ff02437e3b7fe2682dba808ac93039895bf/tsconfig.json#L3-L17)
- Stryker.run executes preparation, instrumentation, baseline testing, and mutation execution sequentially through typed-inject contexts; runMutationTest disposes its root injector in finally. — [packages/core/src/stryker.ts#L40-L52](https://github.com/stryker-mutator/stryker-js/blob/f2a49ff02437e3b7fe2682dba808ac93039895bf/packages/core/src/stryker.ts#L40-L52) [packages/core/src/stryker.ts#L64-L84](https://github.com/stryker-mutator/stryker-js/blob/f2a49ff02437e3b7fe2682dba808ac93039895bf/packages/core/src/stryker.ts#L64-L84)
- The public API exports separate check, core, ignore, logging, plugin, report, and test-runner entrypoints rather than one root export. — [packages/api/package.json#L19-L26](https://github.com/stryker-mutator/stryker-js/blob/f2a49ff02437e3b7fe2682dba808ac93039895bf/packages/api/package.json#L19-L26)
- ChildProcessProxy forks a worker with configurable Node arguments and inherited environment, then sends options, file descriptions, plugin paths, module/export identity, and working directory through IPC. — [packages/core/src/child-proxy/child-process-proxy.ts#L63-L108](https://github.com/stryker-mutator/stryker-js/blob/f2a49ff02437e3b7fe2682dba808ac93039895bf/packages/core/src/child-proxy/child-process-proxy.ts#L63-L108)
- ProjectFile caches original and current content independently; FileSystem forwards Node filesystem operations through an RxJS queue limited to 256 concurrent actions. — [packages/core/src/fs/project-file.ts#L15-L18](https://github.com/stryker-mutator/stryker-js/blob/f2a49ff02437e3b7fe2682dba808ac93039895bf/packages/core/src/fs/project-file.ts#L15-L18) [packages/core/src/fs/project-file.ts#L48-L66](https://github.com/stryker-mutator/stryker-js/blob/f2a49ff02437e3b7fe2682dba808ac93039895bf/packages/core/src/fs/project-file.ts#L48-L66) [packages/core/src/fs/file-system.ts#L7-L7](https://github.com/stryker-mutator/stryker-js/blob/f2a49ff02437e3b7fe2682dba808ac93039895bf/packages/core/src/fs/file-system.ts#L7-L7) [packages/core/src/fs/file-system.ts#L32-L60](https://github.com/stryker-mutator/stryker-js/blob/f2a49ff02437e3b7fe2682dba808ac93039895bf/packages/core/src/fs/file-system.ts#L32-L60)
- Root build generates schemas/types before tsc -b, tests run through Lerna, and tag-triggered publishing builds packages before lerna publish from-git with npm provenance permission. — [package.json#L57-L60](https://github.com/stryker-mutator/stryker-js/blob/f2a49ff02437e3b7fe2682dba808ac93039895bf/package.json#L57-L60) [.github/workflows/publish.yml#L3-L22](https://github.com/stryker-mutator/stryker-js/blob/f2a49ff02437e3b7fe2682dba808ac93039895bf/.github/workflows/publish.yml#L3-L22) [lerna.json#L3-L13](https://github.com/stryker-mutator/stryker-js/blob/f2a49ff02437e3b7fe2682dba808ac93039895bf/lerna.json#L3-L13)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
