Admin UI for editing and visualizing DeQL — a CQRS domain language.
- Node.js 22+
- Corepack enabled (ships with Node.js)
corepack enableYarn 4 is configured via packageManager in package.json — corepack handles the rest.
yarn installyarn devyarn workspace @deql-lang/core build
yarn build├── packages/core/ # @deql-lang/core — reusable parser, graph builder & layout engine
├── src/ # Astro + Svelte editor app
│ ├── components/ # Svelte UI components
│ ├── lib/ # App-specific stores + re-exports from @deql-lang/core
│ └── pages/ # Astro pages
└── docs/examples/ # Example .deql files
The core package (parser, graph builder, layout) can be consumed directly from this repo via SSH — no registry needed.
Yarn Berry natively supports SSH + monorepo subdirectory resolution:
{
"dependencies": {
"@deql-lang/core": "git@github.com:deql-lang/deql-editor.git#workspace=@deql-lang/core"
}
}Pinned to a tag:
{
"dependencies": {
"@deql-lang/core": "git@github.com:deql-lang/deql-editor.git#workspace=@deql-lang/core&commit=v0.1.0"
}
}Pinned to a branch:
{
"dependencies": {
"@deql-lang/core": "git@github.com:deql-lang/deql-editor.git#workspace=@deql-lang/core&commit=main"
}
}import { parseDeQL, buildGraphIR, applyLayout } from '@deql-lang/core';
const result = parseDeQL(deqlSource);
const graph = buildGraphIR(result);
const layout = await applyLayout(graph, 'compact');
// layout.nodes — positioned nodes with { id, type, data, position }
// layout.edges — connections between nodes
// layout.groupBounds — aggregate group rectanglesMIT