API reference
Generated from the source with TypeDoc at build time — every exported symbol, with its signature and TSDoc. One page per package, listed in dependency order: contract and di depend on nothing here, then config and core, then the harness, the observability starter, the three application-service ports, the Prisma starter and the three transport starters on top of core.
@btravstack/contract— The contract tier: markers and normed shapes a client and the server that implements it both need — the authenticated() marker, and a cursor page with its schema. Additional entry points:@btravstack/contract/zod,@btravstack/contract/orpc.@btravstack/entity— A domain-entity builder on zod v4: branded fields, immutable data, sealed construction, and Result instead of throws.@btravstack/di— A module-based dependency-injection container for TypeScript: ports as the vocabulary an application defines, providers bound at one edge, and modules that declare their imports and exports.@btravstack/config— Configuration the twelve-factor way for @btravstack/di: typed values bound from the environment, validated once, injected like any other service.@btravstack/core— The application kernel: boot a di module into a running process, and stop it without losing work.@btravstack/testing— Test the applications @btravstack/core boots: an in-memory runtime, a fake clock, a boot fixture that stops what it started, and a tap into a running graph. Additional entry points:@btravstack/testing/jwt.@btravstack/observability— Observability for @btravstack/core: a strict Logger port correlated with the kernel's units, a dependency-free JSON sink, and the lifecycle events as log lines. Additional entry points:@btravstack/observability/pino,@btravstack/observability/otel.@btravstack/cache— A Cache port for @btravstack/core: an in-memory adapter, a Redis adapter, and a composition that reports every call to Observers. Additional entry points:@btravstack/cache/redis.@btravstack/mailer— A Mailer port for @btravstack/core: a recording adapter a spec asserts against, an SMTP adapter, and a composition that spans, counts and logs every send. Additional entry points:@btravstack/mailer/smtp.@btravstack/storage— A Storage port for @btravstack/core: an in-memory adapter, an S3-compatible adapter with presigned reads, and a composition that spans, counts and logs every operation. Additional entry points:@btravstack/storage/s3.@btravstack/keys— An EnvelopeKeys port for @btravstack/core: per-owner root keys wrapped by an AWS KMS key of that owner, unwrapped in memory and cached for a TTL, erased with one key deletion, and an HKDF helper giving each purpose its own key. Additional entry points:@btravstack/keys/kms.@btravstack/prisma— The Prisma starter for @btravstack/core: DATABASE_URL through Config, the Postgres driver adapter, and a client whose pool is the application scope's. Additional entry points:@btravstack/prisma/rls,@btravstack/prisma/result.@btravstack/outbox— The transactional outbox relay for @btravstack/core: a poll loop that publishes committed facts in outbox order, a per-tenant claim so replicas take turns rather than race for the same rows, and a Prisma 8 store. Additional entry points:@btravstack/outbox/prisma.@btravstack/http-server— The protocol-neutral Node HTTP runtime, request units, and authentication for @btravstack/core. Additional entry points:@btravstack/http-server/jwt,@btravstack/http-server/session,@btravstack/http-server/oidc,@btravstack/http-server/internal,@btravstack/http-server/oidc-tokens.@btravstack/htmx-server— The htmx fragment answerer for @btravstack/http-server. Additional entry points:@btravstack/htmx-server/internal.@btravstack/orpc-server— The oRPC answerer and OpenAPI adapter for @btravstack/http-server. Additional entry points:@btravstack/orpc-server/openapi,@btravstack/orpc-server/internal.@btravstack/graphql-server— The GraphQL Yoga answerer for @btravstack/http-server.@btravstack/mcp-server— The Model Context Protocol answerer for @btravstack/http-server, over the official SDK.@btravstack/pothos— Pothos fields that call oRPC procedures, each declared error answered as a typed GraphQL refusal.@btravstack/temporal-worker— The Temporal worker runtime for @btravstack/core: one unit per activity attempt, and a drain that honours the kernel's deadline. Additional entry points:@btravstack/temporal-worker/schedule.@btravstack/amqp-worker— The AMQP starter for @btravstack/core: the handlers as a port, one unit per delivery, and a drain the kernel's deadline releases.@btravstack/temporal-client— Scoped DI bindings for @temporal-contract/client.@btravstack/temporal-testing— A Temporal server for the specs of @btravstack/temporal-worker and @btravstack/temporal-client consumers: one development server per Docker host, shared across processes, and a namespace per spec file.@btravstack/amqp-client— Scoped DI binding for @amqp-contract/client.@btravstack/http-client— Policy-bound outbound HTTPS with exact application-approved origins, connection-time destination checks and bounded responses.@btravstack/oauth-client— A TokenSource port for @btravstack/core: OAuth 2.0 client credentials and RFC 8693 token exchange, so a service calls another as itself or for a subject — cached per audience until shortly before expiry, one fetch shared by concurrent callers, and a static adapter for tests.
Looking for prose?
The generated pages document signatures. For what each package is for, with its install line and worked examples, read Packages and install and the hand-written reference under it; for why the surface is shaped this way, read Why btravstack?.