@chrono-os/meresponda-core
v0.6.1
Published
Me Responda — schema (Zod) + motor de fluxo + registry de tipos de campo. Puro, sem dependências de framework; compartilhado entre o backend (NestJS) e o frontend (Next.js).
Readme
@chrono-os/meresponda-core
Contrato compartilhado do Me Responda (app de formulários): schemas Zod da estrutura do formulário, registry lógico de tipos de campo e o motor de fluxo puro.
É isomórfico e sem dependências de framework (só zod): o mesmo código roda no builder (preview), no renderer (avaliação client-side) e na API (revalidação server-side — fonte da verdade). Por isso este pacote não importa React nem nada de Node/Nest.
Instalação
yarn add @chrono-os/meresponda-core zodzod é peerDependency (>=3) — o consumidor fixa a versão (^3.25).
O que exporta
- Schemas (
zod):formStructureSchema,blockSchema,fieldSchema,edgeSchema,conditionTreeSchema,answersSchema,themeSchema,formSettingsSchema. - Registry:
fieldRegistry,getFieldType(id),FIELD_TYPE_IDS— cada tipo expõeconfigSchema,buildValueSchema(config),score?,toDisplay,capturesValue,canonical. - Motor (funções puras, nunca lançam):
nextBlock(structure, answers, currentBlockId, visitLog)— próximo bloco no grafo (guard de terminação).evaluateCondition(structure, answers, condition, ctx?)—null= fallback; ref ausente ⇒false(excetoisEmpty).validateStructure(structure)— publish-time (edges válidos, alcançabilidade, keys únicas, repeater válido).validateResponse(structure, answers, visitLog?)— valida só o caminho percorrido.computeScore(structure, answers)— lead score + faixa.extractCanonicalFields(structure, answers)— email/nome/telefone para o dashboard agregador.
Conceitos
- FormStructure = documento JSONB versionado (blocks + edges/grafo). Bloco pode ter vários campos (pergunta composta) e
repeat(repeater). - answers =
Record<blockId, BlockAnswer>; bloco repeater ={ kind:"repeater", activeCount, instances[] }. - Moeda em centavos (inteiro). Condições referenciam
valueda opção, nuncalabel.
Scripts
yarn build (tsup ESM+CJS+dts) · yarn test (Vitest) · yarn typecheck · yarn lint
