AREA GUIDE / 2 PACKAGES

Schemas, types and results

Make input, output, serialization and failure behavior explicit across the boundaries your product exposes.

What are you trying to do?

  • How do Zod, JSON Schema and GraphQL representations relate?
  • Where do standard results and errors live?
  • Which types are runtime validation and which are compile-time helpers?
FIND YOUR WAY THROUGH THIS AREA

Start with the work you want to do.

Choose a practical step, then inspect a package before opening its full manual.

PASO 01

Inspect both directions

Follow one input from its schema to transport parsing, then follow one output back through serialization. Include an absent field, an invalid value and an enum value that needs wire-name conversion in your review of the existing tests.

THE PACKAGE LANDSCAPE

2 packages. Choose an entry point.

2 paquetesSELECT TO INSPECT

Task guidance and package membership come from this area’s captured source guide.

Start with these packages.

lib.schema

Use schema models and the existing Zod, JSON Schema, GraphQL and entity surfaces.

Read the package guide →
lib.contracts-spec-core

Use canonical result and query primitives shared by contracts and adapters.

Read the package guide →
lib.utils-typescript

Use existing utility types for compile-time transformations without confusing them with runtime validation.

Read the package guide →

Choose a representation intentionally

The schema package provides SchemaModel, field/scalar/enum helpers, entity definitions and explicit projection surfaces for Zod, JSON Schema and GraphQL. Pick the model that the consuming contract already uses, then inspect how its selected transport obtains a wire schema. TypeScript utility types serve a different purpose: they help code describe transformed values at compile time. They do not establish that an incoming request satisfies the same rules. Keep the runtime validation boundary visible in the operation or adapter you are integrating.

Understand projection differences

A schema projection may change the representation while preserving domain meaning. EnumType is a concrete example: domain strings remain unchanged in Zod and JSON Schema, while GraphQL requires valid enum identifiers. The documented projection replaces invalid characters, prefixes unsuitable leading forms and rejects resulting name collisions. Parsing and serialization map the wire name back to the domain value. Review such rules before sharing enums between REST, GraphQL, stored records and UI selections; matching labels alone are insufficient.

Use one result vocabulary

Portable Core exposes results, standard outcomes, normalization and compatibility helpers alongside query envelopes. Read these definitions before wrapping a successful value or error in a new application-specific shape. A field-validation failure, policy denial, unavailable provider and handler failure are different situations for a caller. Preserve their declared meaning through the adapter and the user interface. Keep sensitive implementation details out of a public error while retaining a safe correlation path for diagnostics.

Follow a practical path.

  1. Inspect both directions

    Follow one input from its schema to transport parsing, then follow one output back through serialization. Include an absent field, an invalid value and an enum value that needs wire-name conversion in your review of the existing tests.

  2. Compare the actual exported leaf

    Open the package export map and the selected schema implementation. Check whether the consumer needs the root, entity, or individual projection entry. Use the same canonical model rather than creating parallel definitions for each transport.

  3. Exercise a meaningful mismatch

    Use the owning project’s schema tests to examine how rejected input becomes a declared result. Add a case only when it resolves a real integration risk, such as a projection collision or an error shape that a client cannot interpret.

All packages in this area.

2 packages
foundation / library

lib.schema

v6.0.5
Package manifestGuide availablenode

Schema utilities for Zod, JSON Schema, and GraphQL

@lssm-tech/lib.schema
14Declared imports
5Direct dependencies
Inspect this packageImports · dependencies · qualification

Declared import paths

manifest-declared export entrypoints and catalog-declared imports

Showing 6 of 14 declared entry points.

Dependency declarations
Ejecución
2
Par
0
Desarrollo
3
Opcional
0
  • graphqlcatalog:graphql · runtime
  • zodcatalog: · runtime
  • @lssm-tech/tool.typescriptworkspace:* · development
  • typescriptcatalog: · development
  • @lssm-tech/tool.bunworkspace:* · development

Showing 5 of 5 declarations across scopes. A package may appear in more than one scope.

Package and source context
Package scope
No private flag declared in the manifest
Source guide
README available
Declared runtimes
node
Declared stability
stable
Source path
packages/foundation/schema

Manifest declarations describe this source snapshot; they do not verify registry publication or runtime execution.

foundation / library

lib.utils-typescript

v5.0.4
Package manifestGuide availablenode

TypeScript utility types and helpers

@lssm-tech/lib.utils-typescript
34Declared imports
4Direct dependencies
Inspect this packageImports · dependencies · qualification

Declared import paths

manifest-declared export entrypoints and catalog-declared imports

  • @lssm-tech/lib.utils-typescript
    ./src/index.tsAbrir la fuente
  • @lssm-tech/lib.utils-typescript/lib/AwaitedResult
    ./src/lib/AwaitedResult.tsAbrir la fuente
  • @lssm-tech/lib.utils-typescript/lib/BrowserNativeObject
    ./src/lib/BrowserNativeObject.tsAbrir la fuente
  • @lssm-tech/lib.utils-typescript/lib/DeepInfiniteArray
    ./src/lib/DeepInfiniteArray.tsAbrir la fuente
  • @lssm-tech/lib.utils-typescript/lib/DeepKeepOnly
    ./src/lib/DeepKeepOnly.tsAbrir la fuente
  • @lssm-tech/lib.utils-typescript/lib/DeepKey
    ./src/lib/DeepKey.tsAbrir la fuente

Showing 6 of 34 declared entry points.

Dependency declarations
Ejecución
1
Par
0
Desarrollo
3
Opcional
0
  • @lssm-tech/lib.contracts-spec-coreworkspace:^ · runtime
  • @lssm-tech/tool.typescriptworkspace:* · development
  • typescriptcatalog: · development
  • @lssm-tech/tool.bunworkspace:* · development

Showing 4 of 4 declarations across scopes. A package may appear in more than one scope.

Package and source context
Package scope
No private flag declared in the manifest
Source guide
README available
Declared runtimes
node
Declared stability
stable
Source path
packages/foundation/utils-typescript

Manifest declarations describe this source snapshot; they do not verify registry publication or runtime execution.

Tu vista

Make room for your context.

Shape the presentation around this moment. You can change it whenever you need.

Tu contexto

The different parts of you

Choose a starting point

Una mezcla útil de contexto, imágenes y orientación discreta.

Tune each dimension
Each dimension can change independently. Product permissions and available actions stay unchanged.

Support the way you begin and return

Tune your support

Comodidad de lectura

Elige tu idioma

El idioma de la interfaz solo cambia el texto. Los mercados, precios y flujos de trabajo conservan sus propios ajustes.

Cobertura de traducción

Parte del contenido se muestra en inglés.

Navegación151
Grafo616
Categorías188
Portafolio332
Ejemplos2035
Vista previa de la fuente41

Se añadirán más traducciones a medida que se revise el contenido.

Esta preferencia se guarda en este navegador.

Buscar en el sitio web

Puntos de partida útiles

Sin resultados. Prueba una frase más corta, un nombre de operación u otro ámbito de búsqueda.

UN POCO DE ESPACIO PARA EXPLORAR

Encuentra algo que explorar.

Abre una vista detallada en esta página, prueba otra perspectiva o sigue el detalle a su propia página.

Cómo funcionan las vistas previas y los controles
01

Mirar antes de salir

Pasa el cursor por un enlace o enfócalo con Tab para ver una vista previa. Hacer clic en el enlace original o pulsar Intro siempre abre su destino.

02

Mantener el contexto

Entra en la vista previa para explorar sus secciones. Usa Alt + ↓ desde un enlace enfocado para entrar con el teclado. Escape la cierra.

03

Abrir las posibilidades

Las filas desplegables, las perspectivas y los controles destacados revelan más. Tu vista cambia la comodidad de lectura y el contexto que exploras.

Un botón separado para mirar más de cerca

Muestra pequeños botones de vista previa junto a los enlaces donde haya espacio. Toca el ojo para inspeccionar o el enlace para ir directamente. Esta elección permanece en esta pestaña.

No se recoge historial de navegación. El movimiento reducido sigue tu dispositivo y Tu vista.