@g1cloud/entity-modeler-next
v5.2.17
Published
Vue 3 visual entity-modeling / class-diagram editor
Downloads
8,910
Readme
entity-modeler-next
Vue 3 visual entity-modeling / class-diagram editor.
Distributed as a library package (@g1cloud/entity-modeler-next) and embedded in bluework4-tool (Nuxt/Vue/Mongo).
Stack
TypeScript · Vue 3 · Vue Flow · Pinia (opt-in) · Vite (library mode) · Vitest · views built on @g1cloud/open-bluesea-core (BS) components
Install
pnpm add @g1cloud/entity-modeler-nextRequires the peer dependencies vue ^3.5.0 and @g1cloud/open-bluesea-core (installed by the host).
Usage
import { EntityModeler } from '@g1cloud/entity-modeler-next'
import '@g1cloud/entity-modeler-next/style.css' // required — components render unstyled without itStructure
src/
core/ logical/layout types (separated) · resolve (consistency) · routing · autolayout · propagation · validation · type catalogs. Framework-agnostic
command/ Command (do/undo) · CommandStack · op/opSync (semantic op emit + CAS concurrency)
editor/ reactive controller (composable wrapping CommandStack, EDITOR inject key) + axis modules split out of it
(commandPlans · clipboardImport · hostSync · selection — each takes a minimal injected context)
view/ Vue Flow components (DiagramCanvas · EntityNode · GroupNode · AssociationEdge · PropertyPanel · ValidationPanel, etc.)
plus composables (useAttributeEditing · useResizableWidth · useTreeCollapse) and pure helpers
adapter/ storage-schema mapping (persisted v1/v2 · fromPersisted/toPersisted/toPersistedV2 round-trip)
agent/ natural-language → op track (symbolicOp · resolver · schema · buildAgentBatch)
dev/ demo harness (excluded from the library build)Core design: layout references the logical model by modelId (one-way). The logical model carries no geo/waypoint/style.
Scripts
pnpm dev # demo harness dev server (src/dev)
pnpm test # Vitest (unit)
pnpm test:coverage # Vitest + v8 coverage report (no threshold — report only)
pnpm typecheck # vue-tsc --noEmit
pnpm build # library build (dist/)
pnpm verify # headless GUI probe suite (scripts/verify-*.mjs) — boots the dev harness once, runs all probes
pnpm verify:floor # raise the per-probe assertion-count floor to current (never lowers)
pnpm check # CI gate: test && buildcheck is the entry point CI calls; verify runs the browser probes and is kept separate because it needs a
dev server and takes ~100s.
verify also enforces a per-probe assertion-count floor (scripts/probe-assertion-floor.json): a probe whose
executed-assertion total drops below its floor fails even if every remaining assertion passes — deleting an ok()
would otherwise shrink the denominator too and pass as 0/0. Adding assertions needs no bookkeeping; only a
deliberate reduction requires editing the JSON by hand, and that diff is the review signal.
