@be-enlighten/enspace-sdk-schemas
v0.11.2
Published
Zod schemas and TypeScript types for the Enspace API
Maintainers
Readme
@be-enlighten/enspace-sdk-schemas
Schemas Zod e tipos TypeScript da API do Enspace. Contém apenas schemas ligados a rotas (request, query e response), derivados da própria API.
Os outros pacotes do SDK dependem dele, mas ele também é útil isolado: para validar payloads antes de enviar, tipar formulários ou tipar código que fala com a API sem passar pelo client.
Instalação
pnpm add @be-enlighten/enspace-sdk-schemaszod@^4.4.3 é dependência direta, não peer.
Uso
Como tipos:
import type { Member, User, Workspace } from '@be-enlighten/enspace-sdk-schemas'
const profile: User = await enspace.account.getProfile()Como schemas Zod, para validação em runtime:
import { UserUpdateRequest } from '@be-enlighten/enspace-sdk-schemas'
const parsed = UserUpdateRequest.parse({ fullname: 'Ada' })
await enspace.account.updateProfile(parsed)Tipos de modelo
User, Workspace, Member, MemberGroup, Invite, Role, RolePermission, ItemType, Item, Field, Task, Workflow, WorkflowExecution, NodeExecution, ModelView, ApiKey, UploadFile, Notification, NotificationType, Comment, Thread, Plan, DictionaryKeysTree.
Request bodies seguem o padrão *CreateRequest / *UpdateRequest. São schemas de input: campos com default na API ficam opcionais.
import type { z } from 'zod'
import { TaskCreateRequest } from '@be-enlighten/enspace-sdk-schemas'
type NewTask = z.input<typeof TaskCreateRequest>Query params
O módulo query-params exporta tipos utilitários puros (sem Zod) para listagem e busca, parametrizados pelo modelo:
| Tipo | O que cobre |
|---|---|
| EnlightenQueryOperators<T> | Campos de T com operadores: _lt, _lte, _gt, _gte, _ne, _in, _nin, _contains, _ncontains, _containss, _ncontainss, _null. |
| EnlightenQueryWhere<T> | Cláusula _where com grupos _or/_and/_nor aninháveis. |
| EnlightenQueryParams<T> | Operadores + _sort (tipado por campo), _limit, _start, _q e _where. |
Também existem compostos por rota (<Controller><Action>QueryParams), que combinam EnlightenQueryParams<Model> com os campos estritos documentados naquela rota:
import type { TasksFindQueryParams } from '@be-enlighten/enspace-sdk-schemas'
const params: TasksFindQueryParams = {
status: 'pending', // enum estrito da rota
due_date_gte: '2026-07-21T00:00:00.000Z', // operador tipado pelo modelo
_sort: 'due_date:ASC',
_limit: 20,
_where: { _or: [{ assigned_to_in: [1, 2] }, { creator: '3' }] },
}Valores aceitam T[P] | string, porque a query string é serializada: datas em ISO 8601, booleans como 'true' | 'false' e números em decimal.
Licença
MIT.
