@cartella/core
v1.5.0
Published
Headless TypeScript core for Cartella — types, reducer, validation, migrations, layer-to-HTML
Readme
@cartella/core
The headless TypeScript core for Cartella — types, Zod schemas, reducer, history, validation, migrations, field registry, and the parity-critical layerToHtml() function.
Zero DOM dependencies. Zero React dependencies. Runs in Node, Deno, Bun, Cloudflare Workers, Vercel Edge, and React Native.
Status
Pre-alpha. API is unstable. Do not use in production until v1.0.0.
Install
pnpm add @cartella/coreUsage (server-side validation example)
import { validate, migrate } from '@cartella/core';
const canvas = JSON.parse(await db.getTemplate(id));
const result = validate(canvas, { fieldRegistry });
if (!result.ok) throw new Error(result.errors.map((e) => e.message).join('\n'));
const migrated = migrate(canvas);
// Hand to @cartella/renderer-html for HTML → PDFDesign
See:
- Product spec §5 — Canvas JSON Document Format
- TDD — core
- ADR-0003 — Renderer parity contract
- ADR-0004 — Canvas JSON versioning
License
MIT
