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.

ÉTAPE 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 paquetsSELECT 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
Exécution
2
Pair
0
Développement
3
Facultatif
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
Guide source
README available
Declared runtimes
node
Stabilité déclarée
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

Showing 6 of 34 declared entry points.

Dependency declarations
Exécution
1
Pair
0
Développement
3
Facultatif
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
Guide source
README available
Declared runtimes
node
Stabilité déclarée
stable
Source path
packages/foundation/utils-typescript

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

Votre vue

Make room for your context.

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

Votre contexte

The different parts of you

Choose a starting point

Un mélange utile de contexte, de visuels et de guidage discret.

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

Confort de lecture

Choisir votre langue

La langue de l’interface change uniquement le texte. Les marchés, les prix et les parcours conservent leurs propres paramètres.

Couverture des traductions

Une partie du contenu est affichée en anglais.

Navigation151
Graphe616
Catégories378
Portfolio833
Exemples2 035
Aperçu de la source1 542

D’autres traductions seront ajoutées à mesure que le contenu sera relu.

Cette préférence est enregistrée dans ce navigateur.

Rechercher sur le site

Des points de départ utiles

Aucun résultat. Essayez une expression plus courte, un nom d’opération ou un autre périmètre de recherche.

UN PEU DE PLACE POUR EXPLORER

Trouvez quelque chose à explorer.

Ouvrez un aperçu détaillé sur cette page, essayez une autre perspective ou suivez le détail vers sa propre page.

Fonctionnement des aperçus et des commandes
01

Regarder avant de partir

Survolez un lien ou sélectionnez-le avec Tab pour voir un aperçu. Cliquer sur le lien d’origine ou appuyer sur Entrée ouvre toujours sa destination.

02

Rester dans le contexte

Entrez dans l’aperçu pour explorer ses sections. Depuis un lien sélectionné, utilisez Alt + ↓ pour y entrer au clavier. Échap le ferme.

03

Ouvrir les possibilités

Les lignes dépliables, les choix de perspective et les commandes mises en évidence révèlent davantage. Votre vue adapte le confort de lecture et le contexte exploré.

Un bouton séparé pour voir de plus près

Affichez de petits boutons d’aperçu à côté des liens quand l’espace le permet. Touchez l’œil pour examiner ou le lien pour y aller directement. Ce choix reste dans cet onglet.

Aucun historique de navigation n’est collecté. La réduction des animations suit votre appareil et Votre vue.