@hs-x/types
v0.2.7
Published
HS-X type graph — canonical cross-package types and Effect Schemas.
Readme
@hs-x/types
@hs-x/types is the canonical type graph for HS-X, the shared vocabulary every
other package agrees on. Identifiers, auth/credential metadata, app/project
model schemas, error types, runtime contracts, and the generated worker/project
manifest shapes all live here, so a value that crosses a package boundary means
the same thing on both sides.
Types are paired with their Effect Schemas: runtime validation and the TypeScript contract are derived from one definition, so there is no separate validator to drift out of sync with the type.
You normally do not install this directly. It is a transitive dependency of
@hs-x/sdk,
@hs-x/runtime, and the rest of
the toolchain, which re-export the types you actually touch.
# only for standalone tooling against the HS-X contracts
bun add @hs-x/typesimport { AccountId, ProjectId } from "@hs-x/types/ids";
const id = AccountId.make("acct_123"); // branded; not assignable to ProjectIdSubpath exports
| Subpath | Contents |
| --- | --- |
| @hs-x/types | The core type graph and Effect Schemas |
| @hs-x/types/ids | Branded identifier types (AccountId, ProjectId, DeployId, TokenId, ...) so IDs of different kinds cannot be confused |
| @hs-x/types/http | HTTP request/response and fetch-envelope contracts |
| @hs-x/types/schemas | The Effect Schema definitions backing the core graph |
| @hs-x/types/tracing | OpenTelemetry resource/exporter helpers for Worker tracing |
| @hs-x/types/test | Effect test harness re-exports (it, Effect, Layer, TestClock, ...) for HS-X's own test suites |
Part of HS-X
HS-X is a leaveable, type-safe HubSpot app framework on Cloudflare Workers. Start with the CLI:
npm i -g @hs-x/cli
hs-x init myappSee @hs-x/cli and the docs at
hs-x.dev/docs.
License
Apache-2.0
