Skip to main content

Claims Matrix

This page maps the main public claims to current verification evidence. It is a release-readiness checklist, not marketing copy.

Runtime and API Claims

ClaimCurrent evidenceStatus
Primary setup uses TrpcModule.forRoot() and forRootAsync().packages/trpc/test/module/trpc-module.spec.ts, website/docs/module-setup/for-root.md, website/docs/module-setup/for-root-async.mdCovered by package tests and docs.
Routers are decorator-first classes.packages/trpc/test/decorators/decorators.spec.ts, packages/trpc/test/router/trpc-router.spec.ts, sample/00-showcase/src/users/users.router.tsCovered by package tests and samples.
@Query(), @Mutation(), and @Subscription() map procedures.packages/trpc/test/router/trpc-router-lifecycle.spec.ts, packages/trpc/test/router/trpc-router.spec.ts, sample/06-subscriptionsCovered by package tests and samples.
@Input() supports full input and field extraction.packages/trpc/test/context/trpc-context-creator.spec.ts, packages/trpc/test/router/trpc-router-lifecycle.spec.ts, website/docs/decorators/input.mdCovered by package tests and docs.
@TrpcContext() supports full context and field extraction.packages/trpc/test/context/trpc-context-creator.spec.ts, packages/trpc/test/router/trpc-router-lifecycle.spec.ts, sample/03-context-request-scopeCovered by package tests and samples.
autoSchemaFile generates importable AppRouter types.packages/trpc/test/generators/schema-generator.spec.ts, packages/trpc/test/router/trpc-router-lifecycle.spec.ts, sample/08-autoschema-client-typecheck/src/client.typecheck.tsCovered by package tests and client typecheck sample.
TrpcRouter is supported for in-process testing.website/docs/testing/router-testing.md, packages/trpc/test/router/trpc-router.spec.ts, packages/trpc/test/router/trpc-router-lifecycle.spec.tsCovered as advanced testing API.
Invalid router aliases and duplicate procedure paths fail with actionable diagnostics.packages/trpc/test/router/trpc-router.spec.tsCovered by package tests.

NestJS Integration Claims

ClaimCurrent evidenceStatus
Guards execute for tRPC procedures.packages/trpc/test/router/trpc-router-lifecycle.spec.ts, packages/trpc/test/context/trpc-enhancer-runtime.factory.spec.ts, sample/02-enhancers-guards-pipes-filtersCovered by package tests and samples.
Pipes execute for tRPC procedures.packages/trpc/test/router/trpc-router-lifecycle.spec.ts, website/docs/enhancers/pipes.md, sample/02-enhancers-guards-pipes-filtersCovered by package tests and samples.
Interceptors execute for tRPC procedures.packages/trpc/test/router/trpc-router-lifecycle.spec.ts, website/docs/enhancers/interceptors.md, sample/02-enhancers-guards-pipes-filtersCovered by package tests and samples.
Filters can remap procedure errors.packages/trpc/test/router/trpc-router-lifecycle.spec.ts, website/docs/enhancers/filters.md, sample/02-enhancers-guards-pipes-filtersCovered by package tests and samples.
Request-scoped providers work with tRPC calls.packages/trpc/test/router/trpc-router.spec.ts, website/docs/advanced/request-scope.md, sample/03-context-request-scope, sample/00-showcase/scripts/smoke-express.tsCovered by package tests and smoke samples.
NestJS internals are isolated behind a compatibility boundary.website/docs/advanced/nest-internals.md, packages/trpc/context/trpc-enhancer-runtime.factory.tsDocumented and isolated in code.

Adapter, Validation, and Client Claims

ClaimCurrent evidenceStatus
Express is supported.packages/trpc/test/adapter/trpc-http-adapter.spec.ts, packages/trpc/test/adapter/trpc-client-adapter-e2e.spec.ts, sample/00-showcase/scripts/smoke-express.ts, sample/07-express-fastify/scripts/smoke-express.tsCovered by package tests and smoke samples.
Fastify is supported.packages/trpc/test/adapter/trpc-http-adapter.spec.ts, packages/trpc/test/adapter/trpc-client-adapter-e2e.spec.ts, sample/00-showcase/scripts/smoke-fastify.ts, sample/07-express-fastify/scripts/smoke-fastify.tsCovered by package tests and smoke samples.
Zod input and output schemas are supported.packages/trpc/test/generators/zod-serializer.spec.ts, packages/trpc/test/router/trpc-router-lifecycle.spec.ts, packages/trpc/test/adapter/trpc-client-adapter-e2e.spec.ts, sample/04-validation-zodCovered by package tests and samples.
Zod is optional.packages/trpc/package.json, website/docs/installation.md, website/docs/validation/class-validator.md, sample/05-validation-class-validatorCovered by package metadata, docs, and samples.
class-validator plus ValidationPipe DTO workflows are supported.packages/trpc/test/router/trpc-router-lifecycle.spec.ts, packages/trpc/test/adapter/trpc-client-adapter-e2e.spec.ts, sample/05-validation-class-validator, website/docs/validation/class-validator.mdCovered by package tests and samples.
Real @trpc/client calls work against Express and Fastify adapters.packages/trpc/test/adapter/trpc-client-adapter-e2e.spec.ts, sample/00-showcase/scripts/smoke-express.ts, sample/00-showcase/scripts/smoke-fastify.ts, sample/07-express-fastify/scripts/smoke-express.ts, sample/07-express-fastify/scripts/smoke-fastify.tsCovered by package tests and smoke samples.
Generated AppRouter works with createTRPCProxyClient.sample/00-showcase/scripts/smoke-express.ts, sample/07-express-fastify/scripts/smoke-express.ts, sample/08-autoschema-client-typecheck/src/client.typecheck.tsCovered by smoke and typecheck samples.

Release and Packaging Claims

ClaimCurrent evidenceStatus
Published package keeps zero runtime dependencies.packages/trpc/package.json, scripts/check-package-pack.mjsCovered by package metadata and release pack check.
Package and sample versions stay synchronized for releases.scripts/check-version-sync.mjs, RELEASING.mdCovered by release check and release docs.
README links stay valid.scripts/check-readme-links.mjs, npm run release:check:readme-linksCovered by release check.
Package tarball excludes unintended artifacts.scripts/check-package-pack.mjs, npm run release:check:packCovered by release check.
Package source functions stay within the cognitive-complexity threshold.eslint.complexity-check.config.mjs, npm run complexity:check, .github/workflows/ci.ymlCovered by dedicated CI threshold check.

Known Verification Gaps

These gaps should guide future PRs:

  • Add golden tests for generated schema formatting if output formatting becomes part of the release claim.
  • Keep benchmark claims out of README and docs until a reproducible benchmark harness exists. See Benchmark Methodology.

Unsupported Claim Examples

Do not make these claims unless new code, docs, and tests are added:

  • "Official NestJS integration."
  • "Production security is handled by the library." Authentication, authorization, rate limiting, CORS, and secret handling are application responsibilities. See Security Responsibilities.
  • "Benchmarked faster than REST, GraphQL, or vanilla tRPC."
  • "All package internals are stable extension points."