umlimator 0.16.0 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -65,7 +65,7 @@ drill-down, a data pipeline, an AI agent's skills, and host pages for embedding,
65
65
  npm install umlimator
66
66
  ```
67
67
 
68
- Or from GitHub, at a tag or any commit: `"umlimator": "github:zintaen/umlimator#v0.16.0"`. npm 12 refuses git
68
+ Or from GitHub, at a tag or any commit: `"umlimator": "github:zintaen/umlimator#v0.17.0"`. npm 12 refuses git
69
69
  dependencies unless the project opts in, so that also needs `allow-git=root` in the `.npmrc` next to `package.json`.
70
70
 
71
71
  ## Embed
@@ -189,6 +189,9 @@ A model has shared `nodes` and `edges`, and `views` that each show a subset, wit
189
189
  path. The full schema is `engine/references/schema.md` (§ Map model); `examples/bookshop.json` uses most of it.
190
190
  A model file that starts with `"$schema": "<path to>/umlimator.schema.json"` (exported as `umlimator/schema.json`)
191
191
  gets completion and checks in editors, and `validate(model)` lists its errors and warnings, each with where it is.
192
+ `"schemaVersion": 2` marks a model that may hold typed elements and typed views (`docs/diagrams/model.md`); none is
193
+ drawn as such yet: a typed view shows its nodes as plain cards, with a warning. A model with no `schemaVersion` is a
194
+ map, as always, and a version newer than the module reads is an error.
192
195
 
193
196
  Card kinds: `frontend`, `backend`, `ai`, `database`, `queue`, `security`, `cloud`, `external` and `file` (skill-map
194
197
  kinds such as `public`, `lane`, `script`, `hook` and `board` work too). Fields beyond the schema:
@@ -299,7 +302,7 @@ jobs:
299
302
  runs-on: ubuntu-latest
300
303
  steps:
301
304
  - uses: actions/checkout@v4
302
- - uses: zintaen/umlimator@v0.16.0
305
+ - uses: zintaen/umlimator@v0.17.0
303
306
  with:
304
307
  models: "docs/*.json" # optional: where the models are (default: every .json that is a map model)
305
308
  ```
@@ -371,6 +374,7 @@ With `UMLIMATOR_OFFLINE=1` the CLI fetches nothing: a logo not in the cache keep
371
374
  ## Development
372
375
 
373
376
  ```bash
377
+ npm run build # src/ into lib/umlimator.js and lib/umlimator-all.js: edit the sources, commit all three
374
378
  node --test # layout() in Node: the bench views' geometry and the layout rules
375
379
  python3 tests/embed.py # render() in headless Chrome: events, keyboard, colours, contrast, editing, the element
376
380
  python3 bench/bench.py --check-determinism --expect bench/expected.json --max-ms m50=2000
@@ -379,7 +383,8 @@ python3 bench/bench.py --check-determinism --expect bench/expected.json --max-ms
379
383
  The bench lays out fixed models (10 to 69 cards, and 50 modules with 100 lines) in headless Chrome and reports the
380
384
  time per phase, the layout check's issues and a hash of the geometry. `--expect` fails on a view that no longer draws as
381
385
  recorded in `bench/expected.json`; a change that moves lines on purpose refreshes it with `--write-expected`. CI runs
382
- all of the above, and checks that the files copied from upstream (`engine/scripts`, `engine/references`,
386
+ all of the above, fails when `lib/umlimator.js` is not what `src/` builds or a source uses a name it does not import,
387
+ and checks that the files copied from upstream (`engine/scripts`, `engine/references`,
383
388
  `tools/fetch_icons.py`) are unmodified.
384
389
 
385
390
  To release, bump `package.json`'s version in a PR and add that version's `## X.Y.Z: …` section to
@@ -392,7 +397,8 @@ umlimator.py CLI: render, stills, check, record, pdf, pin-icons,
392
397
  umlimator_import.py import's readers: Structurizr DSL, C4-PlantUML, Mermaid, compose and Kubernetes JSON
393
398
  umlimator_mcp.py the MCP server that `umlimator.py mcp` runs
394
399
  action.yml the diff Action: what a pull request changes in its maps, posted on it
395
- lib/ the module (umlimator.js), its types, the default theme, <umlimator-map> and the docs plugins
400
+ src/ the module's sources, by layer: core, draw, layout, map, canvas, page (tools/build.mjs joins them)
401
+ lib/ the module (umlimator.js; umlimator-all.js with every diagram family; both built and committed), its types, the default theme, <umlimator-map> and the docs plugins
396
402
  engine/ the page templates the CLI inlines the module into; the upstream renderer and schema
397
403
  docs/ the module's API and the editing design; docs/diagrams/: the plan for 28 diagram types (not built yet)
398
404
  tests/, bench/ tests, benchmark models and results
@@ -10,7 +10,7 @@ umlimator contains, or builds on, the work below. Each entry says what is used a
10
10
 
11
11
  ## EricTechPro/super-board, `/visual` skill
12
12
 
13
- `lib/umlimator.js` and `engine/assets/template.html` derive from super-board's `skills/visual/assets/template.html`
13
+ `src/` (built into `lib/umlimator.js`) and `engine/assets/template.html` derive from super-board's `skills/visual/assets/template.html`
14
14
  at commit `d0b7d5a` (29 Oct 2026), modified by umlimator (the changes are in its git history and `docs/module-api.md`);
15
15
  `engine/scripts/visual.py` and `engine/references/` are copied from that commit unmodified. Source:
16
16
  https://github.com/EricTechPro/super-board