sverklo
C
Overall Health
statelyai/xstate
https://github.com/statelyai/xstate
2026-04-19 00:15:50
C
Dead code
18% orphan symbols (72/390)
F
Circular deps
21 cycles detected
C
Coupling
max fan-in: 27 (packages/core/src/types.ts)
C
Security
2 concerns found

Overview

  • 439 files indexed
  • 1742 code symbols extracted
  • 9460 symbol references tracked
  • 0 active memories (0 core, 0 stale)
  • Languages: typescript (423), javascript (16)

God Nodes (most-referenced symbols)

These are the symbols your codebase depends on most. Changes here have the largest blast radius.

  • createMachine — 392 references
  • createActor — 306 references
  • assign — 105 references
  • useSelector — 98 references
  • useActor — 67 references
  • createAtom — 55 references
  • setup — 54 references
  • matches — 53 references
  • useActorRef — 48 references
  • stringify — 45 references

Hub Files (highest PageRank)

Core architectural files — imported by many others.

  • packages/core/src/index.ts (1.00)
  • packages/core/src/types.ts (0.65)
  • packages/core/src/constants.ts (0.27)
  • packages/core/src/createActor.ts (0.27)
  • packages/core/src/utils.ts (0.24)
  • packages/xstate-inspect/src/types.ts (0.23)
  • packages/xstate-inspect/src/inspectMachine.ts (0.23)
  • packages/core/src/stateUtils.ts (0.21)
  • packages/core/src/system.ts (0.20)
  • packages/core/src/State.ts (0.20)

Orphans (potential dead code)

Named functions with zero detected references. Could be dead code, public API exports, or referenced dynamically.

  • symbolObservablepackages/xstate-store/src/store.ts:27
  • _createStoreConfigpackages/xstate-store/src/store.ts:291
  • createStoreWithProducerpackages/xstate-store/src/store.ts:344
  • resolvePathpackages/xstate-solid/src/createImmutable.ts:6
  • getWrappablePlaceholderpackages/xstate-solid/src/createImmutable.ts:15
  • symbolObservablepackages/core/src/symbolObservable.ts:1
  • registerServicepackages/core/src/dev/index.ts:50
  • devToolsAdapterpackages/core/src/dev/index.ts:62
  • resolveStoppackages/core/src/actions/stopChild.ts:28
  • executeStoppackages/core/src/actions/stopChild.ts:71

Coupling (high-PageRank files)

  • packages/core/src/index.ts (1.00)
  • packages/core/src/types.ts (0.65)
  • packages/core/src/constants.ts (0.27)
  • packages/core/src/createActor.ts (0.27)
  • packages/core/src/utils.ts (0.24)

Circular Dependencies (21 cycles)

  1. packages/core/src/State.ts -> packages/core/src/createActor.ts -> packages/core/src/dev/index.ts -> packages/core/src/types.ts -> packages/core/src/actions/assign.ts -> packages/core/src/State.ts
  2. packages/core/src/State.ts -> packages/core/src/createActor.ts -> packages/core/src/eventUtils.ts -> packages/core/src/types.ts -> packages/core/src/actions/assign.ts -> packages/core/src/State.ts
  3. packages/core/src/State.ts -> packages/core/src/createActor.ts -> packages/core/src/system.ts -> packages/core/src/inspection.ts -> packages/core/src/types.ts -> packages/core/src/actions/assign.ts -> packages/core/src/State.ts
  4. packages/core/src/State.ts -> packages/core/src/createActor.ts -> packages/core/src/system.ts -> packages/core/src/types.ts -> packages/core/src/actions/assign.ts -> packages/core/src/State.ts
  5. packages/core/src/State.ts -> packages/core/src/createActor.ts -> packages/core/src/system.ts -> packages/core/src/utils.ts -> packages/core/src/State.ts
  6. packages/core/src/State.ts -> packages/core/src/createActor.ts -> packages/core/src/types.ts -> packages/core/src/actions/assign.ts -> packages/core/src/State.ts
  7. packages/core/src/State.ts -> packages/core/src/stateUtils.ts -> packages/core/src/State.ts
  8. packages/core/src/State.ts -> packages/core/src/stateUtils.ts -> packages/core/src/actions/cancel.ts -> packages/core/src/types.ts -> packages/core/src/actions/assign.ts -> packages/core/src/State.ts
  9. packages/core/src/State.ts -> packages/core/src/stateUtils.ts -> packages/core/src/actions/spawnChild.ts -> packages/core/src/State.ts
  10. packages/core/src/State.ts -> packages/core/src/stateUtils.ts -> packages/core/src/actions/spawnChild.ts -> packages/core/src/types.ts -> packages/core/src/actions/assign.ts -> packages/core/src/State.ts
  11. packages/core/src/State.ts -> packages/core/src/stateUtils.ts -> packages/core/src/actions/stopChild.ts -> packages/core/src/State.ts
  12. packages/core/src/State.ts -> packages/core/src/stateUtils.ts -> packages/core/src/actions/stopChild.ts -> packages/core/src/types.ts -> packages/core/src/actions/assign.ts -> packages/core/src/State.ts
  13. packages/core/src/guards.ts -> packages/core/src/stateUtils.ts -> packages/core/src/guards.ts
  14. packages/core/src/State.ts -> packages/core/src/stateUtils.ts -> packages/core/src/types.ts -> packages/core/src/actions/assign.ts -> packages/core/src/State.ts
  15. packages/core/src/actions/assign.ts -> packages/core/src/spawn.ts -> packages/core/src/types.ts -> packages/core/src/actions/assign.ts
  16. packages/core/src/actions/raise.ts -> packages/core/src/types.ts -> packages/core/src/actions/raise.ts
  17. packages/core/src/actions/send.ts -> packages/core/src/types.ts -> packages/core/src/actions/send.ts
  18. packages/core/src/actors/promise.ts -> packages/core/src/types.ts -> packages/core/src/actors/promise.ts
  19. packages/xstate-inspect/src/inspectMachine.ts -> packages/xstate-inspect/src/serialize.ts -> packages/xstate-inspect/src/types.ts -> packages/xstate-inspect/src/inspectMachine.ts
  20. packages/xstate-inspect/src/inspectMachine.ts -> packages/xstate-inspect/src/serialize.ts -> packages/xstate-inspect/src/utils.ts -> packages/xstate-inspect/src/types.ts -> packages/xstate-inspect/src/inspectMachine.ts
  21. packages/xstate-inspect/src/inspectMachine.ts -> packages/xstate-inspect/src/types.ts -> packages/xstate-inspect/src/inspectMachine.ts

Security Issues (2 found)

Critical (1)

  • API tokenscripts/ensure-pnpm.js:1
  • if (!/pnpm\/9/.test(process.env.npmconfiguser_agent)) {

High (1)

  • eval() usagepackages/core/src/scxml.ts:588
  • acc[id!] = eval((${expr}));

Suggested Next Steps

  • Before refactoring createMachine, run sverklo_impact to see the 392 call sites
  • packages/core/src/index.ts is your most-imported file — changes here cascade widely
  • 15+ potential orphans detected — audit for dead code