---
package: superjson
version: "^2.2.1"
tier: core
decision: approved
date: 2026-05-14
deciders: [scaffolded]
adr: null
filter-results:
  license: MIT
  types: native
  maintenance: active
  boundary-fit: pass
  shadow-check: pass
  eu-residency: n/a
  cve-scan: clean
  named-consumer: pass
verification-commands:
  - pnpm audit --audit-level=moderate
  - npm view superjson license
accepted-cves: []
---

## Filter: license

MIT — on the workspace allowlist.

## Filter: types

Ships first-party TypeScript types in its distribution.

## Filter: maintenance

Active. Currently maintained by the tRPC team after the original author transferred stewardship.

## Filter: boundary-fit

Core package. superjson is used exclusively in `core-trpc` as the tRPC transformer; no feature package imports it directly.

## Filter: shadow-check

No competing JSON-extended serializer in the workspace. No shadow.

## Filter: eu-residency

Pure serialization library; no network calls or vendor data transmission. n/a.

## Filter: cve-scan

No advisories at adoption time.

## Filter: named-consumer

`core-trpc` uses superjson as the tRPC transformer to support `Date`, `Map`, `Set`, and other non-JSON-native types over the wire.

## Prompt: replaces

Nothing — this is the initial tRPC scaffold.

## Prompt: migration-cost-out

Mechanical: swap transformer in the tRPC init; update client config. No data-storage coupling.

## Prompt: alternatives-considered

1. **devalue** — no stable npm release at adoption time.
2. **Plain JSON** — loses Date/Map/Set round-trip support required by the workspace's domain models.
superjson is the tRPC-canonical transformer for extended types.
