@g1cloud/entity-modeler-next
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-next
Requires the peer dependencies vue ^3.5.0 and @g1cloud/bluesea >=5.0.0-beta.31 <6.0.0 (installed by the host).
Usage
import { EntityModeler } from '@g1cloud/entity-modeler-next'
import '@g1cloud/entity-modeler-next/style.css' // required — components render unstyled without it
Structure
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 && build
check 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.
Related Packages
Vue 3 BPMN document authoring editor (bpmn-js based) with AI agent authoring
Version History
| Version | Released | License |
|---|---|---|
| 5.3.3 | LicenseRef-LICENSE | |
| 5.3.2 | LicenseRef-LICENSE | |
| 5.3.1 | LicenseRef-LICENSE | |
| 5.3.0 | LicenseRef-LICENSE | |
| 5.2.55 | LicenseRef-LICENSE | |
| 5.2.54 | LicenseRef-LICENSE | |
| 5.2.53 | LicenseRef-LICENSE | |
| 5.2.52 | LicenseRef-LICENSE | |
| 5.2.51 | LicenseRef-LICENSE | |
| 5.2.50 | LicenseRef-LICENSE | |
| 5.2.49 | LicenseRef-LICENSE | |
| 5.2.48 | LicenseRef-LICENSE | |
| 5.2.47 | LicenseRef-LICENSE | |
| 5.2.46 | LicenseRef-LICENSE | |
| 5.2.45 | LicenseRef-LICENSE | |
| 5.2.44 | LicenseRef-LICENSE | |
| 5.2.43 | LicenseRef-LICENSE | |
| 5.2.42 | LicenseRef-LICENSE | |
| 5.2.41 | LicenseRef-LICENSE | |
| 5.2.40 | LicenseRef-LICENSE | |
| 5.2.39 | LicenseRef-LICENSE | |
| 5.2.38 | LicenseRef-LICENSE | |
| 5.2.37 | LicenseRef-LICENSE | |
| 5.2.36 | LicenseRef-LICENSE | |
| 5.2.35 | LicenseRef-LICENSE | |
| 5.2.34 | LicenseRef-LICENSE | |
| 5.2.33 | LicenseRef-LICENSE | |
| 5.2.32 | LicenseRef-LICENSE | |
| 5.2.31 | LicenseRef-LICENSE | |
| 5.2.30 | LicenseRef-LICENSE |
Showing the latest 30 of 82. See every release on npm
Pre-releases (73)
| Version | Released | License |
|---|---|---|
| 5.0.0-beta.53 | LicenseRef-LICENSE | |
| 5.0.0-beta.52 | LicenseRef-LICENSE | |
| 5.0.0-beta.51 | LicenseRef-LICENSE | |
| 5.0.0-beta.50 | LicenseRef-LICENSE | |
| 5.0.0-beta.49 | LicenseRef-LICENSE | |
| 5.0.0-beta.48 | LicenseRef-LICENSE | |
| 5.0.0-beta.47 | LicenseRef-LICENSE | |
| 5.0.0-beta.46 | LicenseRef-LICENSE | |
| 5.0.0-beta.45 | LicenseRef-LICENSE | |
| 5.0.0-beta.44 | LicenseRef-LICENSE | |
| 5.0.0-beta.43 | LicenseRef-LICENSE | |
| 5.0.0-beta.42 | LicenseRef-LICENSE | |
| 5.0.0-beta.41 | LicenseRef-LICENSE | |
| 5.0.0-beta.40 | LicenseRef-LICENSE | |
| 5.0.0-beta.39 | LicenseRef-LICENSE | |
| 5.0.0-beta.38 | LicenseRef-LICENSE | |
| 5.0.0-beta.37 | LicenseRef-LICENSE | |
| 5.0.0-beta.36 | LicenseRef-LICENSE | |
| 5.0.0-beta.35 | LicenseRef-LICENSE | |
| 5.0.0-beta.34 | LicenseRef-LICENSE | |
| 5.0.0-beta.31 | LicenseRef-LICENSE | |
| 5.0.0-beta.30 | LicenseRef-LICENSE | |
| 5.0.0-beta.27 | LicenseRef-LICENSE | |
| 5.0.0-beta.26 | LicenseRef-LICENSE | |
| 5.0.0-beta.25 | LicenseRef-LICENSE | |
| 5.0.0-beta.24 | LicenseRef-LICENSE | |
| 5.0.0-beta.20 | LicenseRef-LICENSE | |
| 5.0.0-beta.19 | LicenseRef-LICENSE | |
| 5.0.0-beta.18 | LicenseRef-LICENSE | |
| 5.0.0-beta.17 | LicenseRef-LICENSE |
Showing the latest 30 of 73. See every release on npm