callman-core 1.28.1 → 1.30.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/dist/ai/index.d.ts +1 -1
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/outputSchemas.d.ts +3 -0
- package/dist/ai/outputSchemas.d.ts.map +1 -1
- package/dist/ai/outputSchemas.js +1 -0
- package/dist/ai/outputSchemas.js.map +1 -1
- package/dist/ai/parse/diagram.d.ts.map +1 -1
- package/dist/ai/parse/diagram.js +6 -3
- package/dist/ai/parse/diagram.js.map +1 -1
- package/dist/ai/prompts/diagram.d.ts +7 -3
- package/dist/ai/prompts/diagram.d.ts.map +1 -1
- package/dist/ai/prompts/diagram.js +61 -5
- package/dist/ai/prompts/diagram.js.map +1 -1
- package/dist/ai/types.d.ts +6 -0
- package/dist/ai/types.d.ts.map +1 -1
- package/dist/diagram/bpmn/derive.d.ts +74 -0
- package/dist/diagram/bpmn/derive.d.ts.map +1 -0
- package/dist/diagram/bpmn/derive.js +392 -0
- package/dist/diagram/bpmn/derive.js.map +1 -0
- package/dist/diagram/bpmn/index.d.ts +7 -0
- package/dist/diagram/bpmn/index.d.ts.map +1 -0
- package/dist/diagram/bpmn/index.js +12 -0
- package/dist/diagram/bpmn/index.js.map +1 -0
- package/dist/diagram/bpmn/patch.d.ts +14 -0
- package/dist/diagram/bpmn/patch.d.ts.map +1 -0
- package/dist/diagram/bpmn/patch.js +770 -0
- package/dist/diagram/bpmn/patch.js.map +1 -0
- package/dist/diagram/bpmn/place.d.ts +4 -0
- package/dist/diagram/bpmn/place.d.ts.map +1 -0
- package/dist/diagram/bpmn/place.js +65 -0
- package/dist/diagram/bpmn/place.js.map +1 -0
- package/dist/diagram/bpmn/serialize.d.ts +12 -0
- package/dist/diagram/bpmn/serialize.d.ts.map +1 -0
- package/dist/diagram/bpmn/serialize.js +292 -0
- package/dist/diagram/bpmn/serialize.js.map +1 -0
- package/dist/diagram/bpmn/types.d.ts +42 -0
- package/dist/diagram/bpmn/types.d.ts.map +1 -0
- package/dist/diagram/bpmn/types.js +84 -0
- package/dist/diagram/bpmn/types.js.map +1 -0
- package/dist/diagram/bpmn/xml.d.ts +60 -0
- package/dist/diagram/bpmn/xml.d.ts.map +1 -0
- package/dist/diagram/bpmn/xml.js +342 -0
- package/dist/diagram/bpmn/xml.js.map +1 -0
- package/dist/diagram/componentCatalog.d.ts +3 -0
- package/dist/diagram/componentCatalog.d.ts.map +1 -1
- package/dist/diagram/componentCatalog.js +5 -1
- package/dist/diagram/componentCatalog.js.map +1 -1
- package/dist/diagram/database/derive.d.ts +14 -0
- package/dist/diagram/database/derive.d.ts.map +1 -0
- package/dist/diagram/database/derive.js +114 -0
- package/dist/diagram/database/derive.js.map +1 -0
- package/dist/diagram/database/diff.d.ts +48 -0
- package/dist/diagram/database/diff.d.ts.map +1 -0
- package/dist/diagram/database/diff.js +109 -0
- package/dist/diagram/database/diff.js.map +1 -0
- package/dist/diagram/database/edit.d.ts +113 -0
- package/dist/diagram/database/edit.d.ts.map +1 -0
- package/dist/diagram/database/edit.js +359 -0
- package/dist/diagram/database/edit.js.map +1 -0
- package/dist/diagram/database/fromSchema.d.ts +12 -0
- package/dist/diagram/database/fromSchema.d.ts.map +1 -0
- package/dist/diagram/database/fromSchema.js +182 -0
- package/dist/diagram/database/fromSchema.js.map +1 -0
- package/dist/diagram/database/index.d.ts +9 -0
- package/dist/diagram/database/index.d.ts.map +1 -0
- package/dist/diagram/database/index.js +14 -0
- package/dist/diagram/database/index.js.map +1 -0
- package/dist/diagram/database/model.d.ts +93 -0
- package/dist/diagram/database/model.d.ts.map +1 -0
- package/dist/diagram/database/model.js +294 -0
- package/dist/diagram/database/model.js.map +1 -0
- package/dist/diagram/database/patch.d.ts +14 -0
- package/dist/diagram/database/patch.d.ts.map +1 -0
- package/dist/diagram/database/patch.js +186 -0
- package/dist/diagram/database/patch.js.map +1 -0
- package/dist/diagram/database/place.d.ts +4 -0
- package/dist/diagram/database/place.d.ts.map +1 -0
- package/dist/diagram/database/place.js +22 -0
- package/dist/diagram/database/place.js.map +1 -0
- package/dist/diagram/database/types.d.ts +50 -0
- package/dist/diagram/database/types.d.ts.map +1 -0
- package/dist/diagram/database/types.js +106 -0
- package/dist/diagram/database/types.js.map +1 -0
- package/dist/diagram/elkGraph.d.ts +1 -3
- package/dist/diagram/elkGraph.d.ts.map +1 -1
- package/dist/diagram/elkGraph.js +1 -0
- package/dist/diagram/elkGraph.js.map +1 -1
- package/dist/diagram/fixtures.d.ts +10 -0
- package/dist/diagram/fixtures.d.ts.map +1 -0
- package/dist/diagram/fixtures.js +113 -0
- package/dist/diagram/fixtures.js.map +1 -0
- package/dist/diagram/geometry.d.ts +27 -0
- package/dist/diagram/geometry.d.ts.map +1 -0
- package/dist/diagram/geometry.js +122 -0
- package/dist/diagram/geometry.js.map +1 -0
- package/dist/diagram/history.d.ts +36 -0
- package/dist/diagram/history.d.ts.map +1 -0
- package/dist/diagram/history.js +54 -0
- package/dist/diagram/history.js.map +1 -0
- package/dist/diagram/ids.d.ts +5 -0
- package/dist/diagram/ids.d.ts.map +1 -0
- package/dist/diagram/ids.js +52 -0
- package/dist/diagram/ids.js.map +1 -0
- package/dist/diagram/index.d.ts +15 -2
- package/dist/diagram/index.d.ts.map +1 -1
- package/dist/diagram/index.js +21 -8
- package/dist/diagram/index.js.map +1 -1
- package/dist/diagram/layout.d.ts +108 -0
- package/dist/diagram/layout.d.ts.map +1 -0
- package/dist/diagram/layout.js +357 -0
- package/dist/diagram/layout.js.map +1 -0
- package/dist/diagram/mermaid/derive.d.ts +55 -0
- package/dist/diagram/mermaid/derive.d.ts.map +1 -0
- package/dist/diagram/mermaid/derive.js +343 -0
- package/dist/diagram/mermaid/derive.js.map +1 -0
- package/dist/diagram/mermaid/index.d.ts +8 -0
- package/dist/diagram/mermaid/index.d.ts.map +1 -0
- package/dist/diagram/mermaid/index.js +24 -0
- package/dist/diagram/mermaid/index.js.map +1 -0
- package/dist/diagram/mermaid/parse.d.ts +96 -0
- package/dist/diagram/mermaid/parse.d.ts.map +1 -0
- package/dist/diagram/mermaid/parse.js +672 -0
- package/dist/diagram/mermaid/parse.js.map +1 -0
- package/dist/diagram/mermaid/patch.d.ts +16 -0
- package/dist/diagram/mermaid/patch.d.ts.map +1 -0
- package/dist/diagram/mermaid/patch.js +463 -0
- package/dist/diagram/mermaid/patch.js.map +1 -0
- package/dist/diagram/mermaid/serialize.d.ts +14 -0
- package/dist/diagram/mermaid/serialize.d.ts.map +1 -0
- package/dist/diagram/mermaid/serialize.js +125 -0
- package/dist/diagram/mermaid/serialize.js.map +1 -0
- package/dist/diagram/mermaid/shapes.d.ts +11 -0
- package/dist/diagram/mermaid/shapes.d.ts.map +1 -0
- package/dist/diagram/mermaid/shapes.js +320 -0
- package/dist/diagram/mermaid/shapes.js.map +1 -0
- package/dist/diagram/migrations.d.ts +1 -0
- package/dist/diagram/migrations.d.ts.map +1 -1
- package/dist/diagram/migrations.js +7 -2
- package/dist/diagram/migrations.js.map +1 -1
- package/dist/diagram/normalize.d.ts +9 -1
- package/dist/diagram/normalize.d.ts.map +1 -1
- package/dist/diagram/normalize.js +194 -0
- package/dist/diagram/normalize.js.map +1 -1
- package/dist/diagram/ops.d.ts +146 -0
- package/dist/diagram/ops.d.ts.map +1 -0
- package/dist/diagram/ops.js +865 -0
- package/dist/diagram/ops.js.map +1 -0
- package/dist/diagram/opsReference.d.ts +3 -0
- package/dist/diagram/opsReference.d.ts.map +1 -0
- package/dist/diagram/opsReference.js +60 -0
- package/dist/diagram/opsReference.js.map +1 -0
- package/dist/diagram/patchInput.d.ts +257 -0
- package/dist/diagram/patchInput.d.ts.map +1 -0
- package/dist/diagram/patchInput.js +1024 -0
- package/dist/diagram/patchInput.js.map +1 -0
- package/dist/diagram/routing/batch.d.ts +45 -0
- package/dist/diagram/routing/batch.d.ts.map +1 -0
- package/dist/diagram/routing/batch.js +136 -0
- package/dist/diagram/routing/batch.js.map +1 -0
- package/dist/diagram/routing/curves.d.ts +7 -0
- package/dist/diagram/routing/curves.d.ts.map +1 -0
- package/dist/diagram/routing/curves.js +120 -0
- package/dist/diagram/routing/curves.js.map +1 -0
- package/dist/diagram/routing/grid.d.ts +15 -0
- package/dist/diagram/routing/grid.d.ts.map +1 -0
- package/dist/diagram/routing/grid.js +245 -0
- package/dist/diagram/routing/grid.js.map +1 -0
- package/dist/diagram/routing/index.d.ts +10 -0
- package/dist/diagram/routing/index.d.ts.map +1 -0
- package/dist/diagram/routing/index.js +10 -0
- package/dist/diagram/routing/index.js.map +1 -0
- package/dist/diagram/routing/legacy.d.ts +6 -0
- package/dist/diagram/routing/legacy.d.ts.map +1 -0
- package/dist/diagram/routing/legacy.js +27 -0
- package/dist/diagram/routing/legacy.js.map +1 -0
- package/dist/diagram/routing/nudge.d.ts +4 -0
- package/dist/diagram/routing/nudge.d.ts.map +1 -0
- package/dist/diagram/routing/nudge.js +96 -0
- package/dist/diagram/routing/nudge.js.map +1 -0
- package/dist/diagram/routing/orthogonal.d.ts +6 -0
- package/dist/diagram/routing/orthogonal.d.ts.map +1 -0
- package/dist/diagram/routing/orthogonal.js +56 -0
- package/dist/diagram/routing/orthogonal.js.map +1 -0
- package/dist/diagram/routing/path.d.ts +16 -0
- package/dist/diagram/routing/path.d.ts.map +1 -0
- package/dist/diagram/routing/path.js +128 -0
- package/dist/diagram/routing/path.js.map +1 -0
- package/dist/diagram/routing/sides.d.ts +22 -0
- package/dist/diagram/routing/sides.d.ts.map +1 -0
- package/dist/diagram/routing/sides.js +74 -0
- package/dist/diagram/routing/sides.js.map +1 -0
- package/dist/diagram/routing/types.d.ts +46 -0
- package/dist/diagram/routing/types.d.ts.map +1 -0
- package/dist/diagram/routing/types.js +11 -0
- package/dist/diagram/routing/types.js.map +1 -0
- package/dist/diagram/schema.d.ts +71 -38
- package/dist/diagram/schema.d.ts.map +1 -1
- package/dist/diagram/schema.js +62 -8
- package/dist/diagram/schema.js.map +1 -1
- package/dist/diagram/styleInput.d.ts +41 -0
- package/dist/diagram/styleInput.d.ts.map +1 -0
- package/dist/diagram/styleInput.js +105 -0
- package/dist/diagram/styleInput.js.map +1 -0
- package/dist/diagram/views.d.ts +22 -0
- package/dist/diagram/views.d.ts.map +1 -0
- package/dist/diagram/views.js +91 -0
- package/dist/diagram/views.js.map +1 -0
- package/dist/host/db/introspection/index.d.ts +9 -0
- package/dist/host/db/introspection/index.d.ts.map +1 -0
- package/dist/host/db/introspection/index.js +35 -0
- package/dist/host/db/introspection/index.js.map +1 -0
- package/dist/host/db/introspection/mongo.d.ts +7 -0
- package/dist/host/db/introspection/mongo.d.ts.map +1 -0
- package/dist/host/db/introspection/mongo.js +183 -0
- package/dist/host/db/introspection/mongo.js.map +1 -0
- package/dist/host/db/introspection/mssql.d.ts +6 -0
- package/dist/host/db/introspection/mssql.d.ts.map +1 -0
- package/dist/host/db/introspection/mssql.js +211 -0
- package/dist/host/db/introspection/mssql.js.map +1 -0
- package/dist/host/db/introspection/mysql.d.ts +5 -0
- package/dist/host/db/introspection/mysql.d.ts.map +1 -0
- package/dist/host/db/introspection/mysql.js +163 -0
- package/dist/host/db/introspection/mysql.js.map +1 -0
- package/dist/host/db/introspection/oracle.d.ts +12 -0
- package/dist/host/db/introspection/oracle.d.ts.map +1 -0
- package/dist/host/db/introspection/oracle.js +225 -0
- package/dist/host/db/introspection/oracle.js.map +1 -0
- package/dist/host/db/introspection/postgres.d.ts +5 -0
- package/dist/host/db/introspection/postgres.d.ts.map +1 -0
- package/dist/host/db/introspection/postgres.js +172 -0
- package/dist/host/db/introspection/postgres.js.map +1 -0
- package/dist/host/db/introspection/shared.d.ts +29 -0
- package/dist/host/db/introspection/shared.d.ts.map +1 -0
- package/dist/host/db/introspection/shared.js +119 -0
- package/dist/host/db/introspection/shared.js.map +1 -0
- package/dist/host/db/introspection/types.d.ts +58 -0
- package/dist/host/db/introspection/types.d.ts.map +1 -0
- package/dist/host/db/introspection/types.js +6 -0
- package/dist/host/db/introspection/types.js.map +1 -0
- package/dist/host/db/mongoAdapter.d.ts +1 -0
- package/dist/host/db/mongoAdapter.d.ts.map +1 -1
- package/dist/host/db/mongoAdapter.js +13 -0
- package/dist/host/db/mongoAdapter.js.map +1 -1
- package/dist/host/db/mssqlAdapter.d.ts +1 -0
- package/dist/host/db/mssqlAdapter.d.ts.map +1 -1
- package/dist/host/db/mssqlAdapter.js +3 -1
- package/dist/host/db/mssqlAdapter.js.map +1 -1
- package/dist/host/db/mysqlAdapter.d.ts +1 -0
- package/dist/host/db/mysqlAdapter.d.ts.map +1 -1
- package/dist/host/db/mysqlAdapter.js +11 -0
- package/dist/host/db/mysqlAdapter.js.map +1 -1
- package/dist/host/db/oracleAdapter.d.ts +1 -0
- package/dist/host/db/oracleAdapter.d.ts.map +1 -1
- package/dist/host/db/oracleAdapter.js +22 -0
- package/dist/host/db/oracleAdapter.js.map +1 -1
- package/dist/host/db/postgresAdapter.d.ts +1 -0
- package/dist/host/db/postgresAdapter.d.ts.map +1 -1
- package/dist/host/db/postgresAdapter.js +13 -0
- package/dist/host/db/postgresAdapter.js.map +1 -1
- package/dist/host/db/queryExecutor.d.ts +2 -1
- package/dist/host/db/queryExecutor.d.ts.map +1 -1
- package/dist/host/db/queryExecutor.js +1 -1
- package/dist/host/db/queryExecutor.js.map +1 -1
- package/dist/host/index.d.ts +7 -0
- package/dist/host/index.d.ts.map +1 -1
- package/dist/host/index.js +9 -0
- package/dist/host/index.js.map +1 -1
- package/dist-cjs/ai/index.js.map +1 -1
- package/dist-cjs/ai/outputSchemas.js +1 -0
- package/dist-cjs/ai/outputSchemas.js.map +1 -1
- package/dist-cjs/ai/parse/diagram.js +6 -3
- package/dist-cjs/ai/parse/diagram.js.map +1 -1
- package/dist-cjs/ai/prompts/diagram.js +61 -5
- package/dist-cjs/ai/prompts/diagram.js.map +1 -1
- package/dist-cjs/diagram/bpmn/derive.js +398 -0
- package/dist-cjs/diagram/bpmn/derive.js.map +1 -0
- package/dist-cjs/diagram/bpmn/index.js +31 -0
- package/dist-cjs/diagram/bpmn/index.js.map +1 -0
- package/dist-cjs/diagram/bpmn/patch.js +774 -0
- package/dist-cjs/diagram/bpmn/patch.js.map +1 -0
- package/dist-cjs/diagram/bpmn/place.js +69 -0
- package/dist-cjs/diagram/bpmn/place.js.map +1 -0
- package/dist-cjs/diagram/bpmn/serialize.js +299 -0
- package/dist-cjs/diagram/bpmn/serialize.js.map +1 -0
- package/dist-cjs/diagram/bpmn/types.js +99 -0
- package/dist-cjs/diagram/bpmn/types.js.map +1 -0
- package/dist-cjs/diagram/bpmn/xml.js +367 -0
- package/dist-cjs/diagram/bpmn/xml.js.map +1 -0
- package/dist-cjs/diagram/componentCatalog.js +5 -1
- package/dist-cjs/diagram/componentCatalog.js.map +1 -1
- package/dist-cjs/diagram/database/derive.js +119 -0
- package/dist-cjs/diagram/database/derive.js.map +1 -0
- package/dist-cjs/diagram/database/diff.js +115 -0
- package/dist-cjs/diagram/database/diff.js.map +1 -0
- package/dist-cjs/diagram/database/edit.js +366 -0
- package/dist-cjs/diagram/database/edit.js.map +1 -0
- package/dist-cjs/diagram/database/fromSchema.js +188 -0
- package/dist-cjs/diagram/database/fromSchema.js.map +1 -0
- package/dist-cjs/diagram/database/index.js +32 -0
- package/dist-cjs/diagram/database/index.js.map +1 -0
- package/dist-cjs/diagram/database/model.js +311 -0
- package/dist-cjs/diagram/database/model.js.map +1 -0
- package/dist-cjs/diagram/database/patch.js +190 -0
- package/dist-cjs/diagram/database/patch.js.map +1 -0
- package/dist-cjs/diagram/database/place.js +26 -0
- package/dist-cjs/diagram/database/place.js.map +1 -0
- package/dist-cjs/diagram/database/types.js +122 -0
- package/dist-cjs/diagram/database/types.js.map +1 -0
- package/dist-cjs/diagram/elkGraph.js +1 -0
- package/dist-cjs/diagram/elkGraph.js.map +1 -1
- package/dist-cjs/diagram/fixtures.js +117 -0
- package/dist-cjs/diagram/fixtures.js.map +1 -0
- package/dist-cjs/diagram/geometry.js +143 -0
- package/dist-cjs/diagram/geometry.js.map +1 -0
- package/dist-cjs/diagram/history.js +65 -0
- package/dist-cjs/diagram/history.js.map +1 -0
- package/dist-cjs/diagram/ids.js +58 -0
- package/dist-cjs/diagram/ids.js.map +1 -0
- package/dist-cjs/diagram/index.js +24 -8
- package/dist-cjs/diagram/index.js.map +1 -1
- package/dist-cjs/diagram/layout.js +365 -0
- package/dist-cjs/diagram/layout.js.map +1 -0
- package/dist-cjs/diagram/mermaid/derive.js +353 -0
- package/dist-cjs/diagram/mermaid/derive.js.map +1 -0
- package/dist-cjs/diagram/mermaid/index.js +44 -0
- package/dist-cjs/diagram/mermaid/index.js.map +1 -0
- package/dist-cjs/diagram/mermaid/parse.js +681 -0
- package/dist-cjs/diagram/mermaid/parse.js.map +1 -0
- package/dist-cjs/diagram/mermaid/patch.js +468 -0
- package/dist-cjs/diagram/mermaid/patch.js.map +1 -0
- package/dist-cjs/diagram/mermaid/serialize.js +133 -0
- package/dist-cjs/diagram/mermaid/serialize.js.map +1 -0
- package/dist-cjs/diagram/mermaid/shapes.js +327 -0
- package/dist-cjs/diagram/mermaid/shapes.js.map +1 -0
- package/dist-cjs/diagram/migrations.js +9 -3
- package/dist-cjs/diagram/migrations.js.map +1 -1
- package/dist-cjs/diagram/normalize.js +198 -1
- package/dist-cjs/diagram/normalize.js.map +1 -1
- package/dist-cjs/diagram/ops.js +871 -0
- package/dist-cjs/diagram/ops.js.map +1 -0
- package/dist-cjs/diagram/opsReference.js +64 -0
- package/dist-cjs/diagram/opsReference.js.map +1 -0
- package/dist-cjs/diagram/patchInput.js +1039 -0
- package/dist-cjs/diagram/patchInput.js.map +1 -0
- package/dist-cjs/diagram/routing/batch.js +142 -0
- package/dist-cjs/diagram/routing/batch.js.map +1 -0
- package/dist-cjs/diagram/routing/curves.js +127 -0
- package/dist-cjs/diagram/routing/curves.js.map +1 -0
- package/dist-cjs/diagram/routing/grid.js +250 -0
- package/dist-cjs/diagram/routing/grid.js.map +1 -0
- package/dist-cjs/diagram/routing/index.js +29 -0
- package/dist-cjs/diagram/routing/index.js.map +1 -0
- package/dist-cjs/diagram/routing/legacy.js +32 -0
- package/dist-cjs/diagram/routing/legacy.js.map +1 -0
- package/dist-cjs/diagram/routing/nudge.js +100 -0
- package/dist-cjs/diagram/routing/nudge.js.map +1 -0
- package/dist-cjs/diagram/routing/orthogonal.js +62 -0
- package/dist-cjs/diagram/routing/orthogonal.js.map +1 -0
- package/dist-cjs/diagram/routing/path.js +137 -0
- package/dist-cjs/diagram/routing/path.js.map +1 -0
- package/dist-cjs/diagram/routing/sides.js +82 -0
- package/dist-cjs/diagram/routing/sides.js.map +1 -0
- package/dist-cjs/diagram/routing/types.js +15 -0
- package/dist-cjs/diagram/routing/types.js.map +1 -0
- package/dist-cjs/diagram/schema.js +64 -9
- package/dist-cjs/diagram/schema.js.map +1 -1
- package/dist-cjs/diagram/styleInput.js +113 -0
- package/dist-cjs/diagram/styleInput.js.map +1 -0
- package/dist-cjs/diagram/views.js +96 -0
- package/dist-cjs/diagram/views.js.map +1 -0
- package/dist-cjs/host/db/introspection/index.js +59 -0
- package/dist-cjs/host/db/introspection/index.js.map +1 -0
- package/dist-cjs/host/db/introspection/mongo.js +189 -0
- package/dist-cjs/host/db/introspection/mongo.js.map +1 -0
- package/dist-cjs/host/db/introspection/mssql.js +216 -0
- package/dist-cjs/host/db/introspection/mssql.js.map +1 -0
- package/dist-cjs/host/db/introspection/mysql.js +167 -0
- package/dist-cjs/host/db/introspection/mysql.js.map +1 -0
- package/dist-cjs/host/db/introspection/oracle.js +230 -0
- package/dist-cjs/host/db/introspection/oracle.js.map +1 -0
- package/dist-cjs/host/db/introspection/postgres.js +176 -0
- package/dist-cjs/host/db/introspection/postgres.js.map +1 -0
- package/dist-cjs/host/db/introspection/shared.js +133 -0
- package/dist-cjs/host/db/introspection/shared.js.map +1 -0
- package/dist-cjs/host/db/introspection/types.js +7 -0
- package/dist-cjs/host/db/introspection/types.js.map +1 -0
- package/dist-cjs/host/db/mongoAdapter.js +15 -1
- package/dist-cjs/host/db/mongoAdapter.js.map +1 -1
- package/dist-cjs/host/db/mssqlAdapter.js +5 -2
- package/dist-cjs/host/db/mssqlAdapter.js.map +1 -1
- package/dist-cjs/host/db/mysqlAdapter.js +13 -1
- package/dist-cjs/host/db/mysqlAdapter.js.map +1 -1
- package/dist-cjs/host/db/oracleAdapter.js +24 -1
- package/dist-cjs/host/db/oracleAdapter.js.map +1 -1
- package/dist-cjs/host/db/postgresAdapter.js +15 -1
- package/dist-cjs/host/db/postgresAdapter.js.map +1 -1
- package/dist-cjs/host/db/queryExecutor.js +5 -4
- package/dist-cjs/host/db/queryExecutor.js.map +1 -1
- package/dist-cjs/host/index.js +24 -1
- package/dist-cjs/host/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
// Deterministic synthetic diagrams for tests and benchmarks (100 / 500 / 1000
|
|
2
|
+
// nodes). Same seed → same document, in every host.
|
|
3
|
+
import { DIAGRAM_COMPONENT_CATALOG } from "./componentCatalog.js";
|
|
4
|
+
import { semanticStyle } from "./edgeSemantics.js";
|
|
5
|
+
import { sortPreOrder } from "./normalize.js";
|
|
6
|
+
import { SCHEMA_VERSION } from "./schema.js";
|
|
7
|
+
// mulberry32 — tiny, good enough, reproducible.
|
|
8
|
+
const prng = (seed) => {
|
|
9
|
+
let state = seed >>> 0;
|
|
10
|
+
return () => {
|
|
11
|
+
state = (state + 0x6d2b79f5) >>> 0;
|
|
12
|
+
let t = state;
|
|
13
|
+
t = Math.imul(t ^ (t >>> 15), t | 1);
|
|
14
|
+
t ^= t + Math.imul(t ^ (t >>> 7), t | 61);
|
|
15
|
+
return ((t ^ (t >>> 14)) >>> 0) / 4294967296;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
const LEAF_TYPES = DIAGRAM_COMPONENT_CATALOG.filter((entry) => entry.variant !== "line" && !entry.container && !entry.swimlane).map((entry) => entry.type);
|
|
19
|
+
export const generateDiagramFixture = (options) => {
|
|
20
|
+
const random = prng(options.seed ?? 42);
|
|
21
|
+
const count = Math.max(0, options.nodes);
|
|
22
|
+
const groupCount = Math.max(0, options.groups ?? Math.floor(count / 25));
|
|
23
|
+
const edgesPerNode = options.edgesPerNode ?? 1.5;
|
|
24
|
+
const columns = options.columns ?? Math.max(1, Math.ceil(Math.sqrt(count)));
|
|
25
|
+
const cellW = 220;
|
|
26
|
+
const cellH = 140;
|
|
27
|
+
const nodes = [];
|
|
28
|
+
const groups = [];
|
|
29
|
+
for (let g = 0; g < groupCount; g += 1) {
|
|
30
|
+
groups.push({
|
|
31
|
+
id: `group-${g + 1}`,
|
|
32
|
+
type: "frame",
|
|
33
|
+
label: `Group ${g + 1}`,
|
|
34
|
+
position: { x: 0, y: 0 },
|
|
35
|
+
size: { width: cellW * 3, height: cellH * 3 },
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
const perGroup = groupCount > 0 ? Math.floor(count / (groupCount * 4)) : 0;
|
|
39
|
+
const groupIndexByCell = new Map();
|
|
40
|
+
let nextGroupSlot = 0;
|
|
41
|
+
for (let i = 0; i < count; i += 1) {
|
|
42
|
+
const col = i % columns;
|
|
43
|
+
const row = Math.floor(i / columns);
|
|
44
|
+
const type = LEAF_TYPES[Math.floor(random() * LEAF_TYPES.length)] ?? "rect";
|
|
45
|
+
const node = {
|
|
46
|
+
id: `n${i + 1}`,
|
|
47
|
+
type,
|
|
48
|
+
label: `Node ${i + 1}`,
|
|
49
|
+
position: { x: 80 + col * cellW, y: 80 + row * cellH },
|
|
50
|
+
size: { width: 140, height: 60 },
|
|
51
|
+
};
|
|
52
|
+
if (perGroup > 0 && nextGroupSlot < groupCount * perGroup) {
|
|
53
|
+
const groupIndex = Math.floor(nextGroupSlot / perGroup);
|
|
54
|
+
nextGroupSlot += 1;
|
|
55
|
+
groupIndexByCell.set(i, groupIndex);
|
|
56
|
+
node.parentId = groups[groupIndex].id;
|
|
57
|
+
}
|
|
58
|
+
nodes.push(node);
|
|
59
|
+
}
|
|
60
|
+
// Groups wrap their members: position = member bbox minus padding, members relative.
|
|
61
|
+
for (let g = 0; g < groupCount; g += 1) {
|
|
62
|
+
const members = nodes.filter((node) => node.parentId === groups[g].id);
|
|
63
|
+
if (members.length === 0)
|
|
64
|
+
continue;
|
|
65
|
+
const minX = Math.min(...members.map((m) => m.position.x)) - 24;
|
|
66
|
+
const minY = Math.min(...members.map((m) => m.position.y)) - 48;
|
|
67
|
+
const maxX = Math.max(...members.map((m) => m.position.x + m.size.width)) + 24;
|
|
68
|
+
const maxY = Math.max(...members.map((m) => m.position.y + m.size.height)) + 24;
|
|
69
|
+
groups[g].position = { x: minX, y: minY };
|
|
70
|
+
groups[g].size = { width: maxX - minX, height: maxY - minY };
|
|
71
|
+
for (const member of members)
|
|
72
|
+
member.position = { x: member.position.x - minX, y: member.position.y - minY };
|
|
73
|
+
}
|
|
74
|
+
const edges = [];
|
|
75
|
+
const semantics = ["sync", "sync", "sync", "async", "fallback", "bus"];
|
|
76
|
+
const wanted = Math.round(count * edgesPerNode);
|
|
77
|
+
const seen = new Set();
|
|
78
|
+
let attempts = 0;
|
|
79
|
+
while (edges.length < wanted && attempts < wanted * 10 && count > 1) {
|
|
80
|
+
attempts += 1;
|
|
81
|
+
const from = Math.floor(random() * count);
|
|
82
|
+
// Mostly local edges (a grid neighbourhood) so layouts look like real
|
|
83
|
+
// architectures, plus a few long ones.
|
|
84
|
+
const reach = random() < 0.8 ? columns + 2 : count;
|
|
85
|
+
const to = Math.min(count - 1, Math.max(0, from + 1 + Math.floor(random() * reach)));
|
|
86
|
+
if (to === from)
|
|
87
|
+
continue;
|
|
88
|
+
const key = `${from}->${to}`;
|
|
89
|
+
if (seen.has(key))
|
|
90
|
+
continue;
|
|
91
|
+
seen.add(key);
|
|
92
|
+
const semantic = semantics[Math.floor(random() * semantics.length)];
|
|
93
|
+
edges.push({
|
|
94
|
+
id: `e${edges.length + 1}`,
|
|
95
|
+
source: `n${from + 1}`,
|
|
96
|
+
target: `n${to + 1}`,
|
|
97
|
+
markerEnd: "classicThin",
|
|
98
|
+
...(semantic !== "sync" ? { style: semanticStyle(semantic) } : {}),
|
|
99
|
+
...(random() < 0.3 ? { label: `call ${edges.length + 1}` } : {}),
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
schemaVersion: SCHEMA_VERSION,
|
|
104
|
+
id: `doc_fixture_${count}_${options.seed ?? 42}`,
|
|
105
|
+
meta: { title: `Fixture ${count}`, createdAt: "2026-01-01T00:00:00.000Z", updatedAt: "2026-01-01T00:00:00.000Z" },
|
|
106
|
+
canvas: { background: "dots", gridSize: 16 },
|
|
107
|
+
// Documents are kept in DFS pre-order (a container directly precedes its
|
|
108
|
+
// children) — the same order every host's load gate produces.
|
|
109
|
+
nodes: sortPreOrder([...groups.filter((g) => nodes.some((n) => n.parentId === g.id)), ...nodes]),
|
|
110
|
+
edges,
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
//# sourceMappingURL=fixtures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../src/diagram/fixtures.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,oDAAoD;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAqB,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAA4D,cAAc,EAAE,MAAM,aAAa,CAAC;AAUvG,gDAAgD;AAChD,MAAM,IAAI,GAAG,CAAC,IAAY,EAAkB,EAAE;IAC5C,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC;IACvB,OAAO,GAAG,EAAE;QACV,KAAK,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,KAAK,CAAC;QACd,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACrC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,UAAU,CAAC;IAC/C,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,yBAAyB,CAAC,MAAM,CACjD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,QAAQ,CAC3E,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAE7B,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,OAAuB,EAAmB,EAAE;IACjF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;IACzE,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,GAAG,CAAC;IACjD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5E,MAAM,KAAK,GAAG,GAAG,CAAC;IAClB,MAAM,KAAK,GAAG,GAAG,CAAC;IAElB,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;YACpB,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;YACvB,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;YACxB,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE;SAC9C,CAAC,CAAC;IACL,CAAC;IACD,MAAM,QAAQ,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACnD,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,CAAC,GAAG,OAAO,CAAC;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC;QAC5E,MAAM,IAAI,GAAgB;YACxB,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE;YACf,IAAI;YACJ,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE;YACtB,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,EAAE;YACtD,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;SACjC,CAAC;QACF,IAAI,QAAQ,GAAG,CAAC,IAAI,aAAa,GAAG,UAAU,GAAG,QAAQ,EAAE,CAAC;YAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC;YACxD,aAAa,IAAI,CAAC,CAAC;YACnB,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YACpC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QACxC,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,qFAAqF;IACrF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACvE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;QAC/E,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;QAChF,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;QAC1C,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,EAAE,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC;QAC7D,KAAK,MAAM,MAAM,IAAI,OAAO;YAAE,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC;IAC/G,CAAC;IAED,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,MAAM,SAAS,GAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IACvF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,YAAY,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,OAAO,KAAK,CAAC,MAAM,GAAG,MAAM,IAAI,QAAQ,GAAG,MAAM,GAAG,EAAE,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACpE,QAAQ,IAAI,CAAC,CAAC;QACd,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC;QAC1C,sEAAsE;QACtE,uCAAuC;QACvC,MAAM,KAAK,GAAG,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACnD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACrF,IAAI,EAAE,KAAK,IAAI;YAAE,SAAS;QAC1B,MAAM,GAAG,GAAG,GAAG,IAAI,KAAK,EAAE,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACpE,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1B,MAAM,EAAE,IAAI,IAAI,GAAG,CAAC,EAAE;YACtB,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;YACpB,SAAS,EAAE,aAAa;YACxB,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,GAAG,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjE,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,aAAa,EAAE,cAAc;QAC7B,EAAE,EAAE,eAAe,KAAK,IAAI,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE;QAChD,IAAI,EAAE,EAAE,KAAK,EAAE,WAAW,KAAK,EAAE,EAAE,SAAS,EAAE,0BAA0B,EAAE,SAAS,EAAE,0BAA0B,EAAE;QACjH,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC5C,yEAAyE;QACzE,8DAA8D;QAC9D,KAAK,EAAE,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC;QAChG,KAAK;KACN,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { DiagramDocument, DiagramNode, HandleSide, LegacyAnchor, Point, Size } from "./schema.js";
|
|
2
|
+
export interface Rect {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
width: number;
|
|
6
|
+
height: number;
|
|
7
|
+
}
|
|
8
|
+
export type NodeIndex = Map<string, DiagramNode>;
|
|
9
|
+
export declare const indexNodes: (nodes: readonly DiagramNode[]) => NodeIndex;
|
|
10
|
+
export declare const displaySize: (node: DiagramNode) => Size;
|
|
11
|
+
export declare const absolutePosition: (node: DiagramNode, byId: NodeIndex) => Point;
|
|
12
|
+
export declare const absoluteRect: (node: DiagramNode, byId: NodeIndex) => Rect;
|
|
13
|
+
export declare const absoluteRects: (doc: DiagramDocument) => Map<string, Rect>;
|
|
14
|
+
export declare const toParentRelative: (absolute: Point, parentId: string | null | undefined, byId: NodeIndex) => Point;
|
|
15
|
+
export declare const childrenOf: (parentId: string, nodes: readonly DiagramNode[]) => DiagramNode[];
|
|
16
|
+
export declare const descendantIds: (id: string, nodes: readonly DiagramNode[]) => string[];
|
|
17
|
+
export declare const isDescendantOf: (id: string, ancestorId: string, byId: NodeIndex) => boolean;
|
|
18
|
+
export declare const boundingBox: (rects: readonly Rect[]) => Rect | null;
|
|
19
|
+
export declare const rectCenter: (rect: Rect) => Point;
|
|
20
|
+
export declare const rectContainsPoint: (rect: Rect, point: Point) => boolean;
|
|
21
|
+
export declare const rectsIntersect: (a: Rect, b: Rect) => boolean;
|
|
22
|
+
export declare const inflateRect: (rect: Rect, by: number) => Rect;
|
|
23
|
+
export declare const sideMidpoint: (rect: Rect, side: HandleSide) => Point;
|
|
24
|
+
export declare const legacyAnchorPoint: (rect: Rect, anchor: LegacyAnchor) => Point;
|
|
25
|
+
export declare const anchorSide: (anchor: LegacyAnchor) => HandleSide;
|
|
26
|
+
export declare const oppositeSide: (side: HandleSide) => HandleSide;
|
|
27
|
+
//# sourceMappingURL=geometry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../src/diagram/geometry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEvG,MAAM,WAAW,IAAI;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAEjD,eAAO,MAAM,UAAU,GAAI,OAAO,SAAS,WAAW,EAAE,KAAG,SAA0D,CAAC;AAGtH,eAAO,MAAM,WAAW,GAAI,MAAM,WAAW,KAAG,IACuB,CAAC;AAKxE,eAAO,MAAM,gBAAgB,GAAI,MAAM,WAAW,EAAE,MAAM,SAAS,KAAG,KAYrE,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,MAAM,WAAW,EAAE,MAAM,SAAS,KAAG,IAIjE,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,KAAK,eAAe,KAAG,GAAG,CAAC,MAAM,EAAE,IAAI,CAGpE,CAAC;AAIF,eAAO,MAAM,gBAAgB,GAAI,UAAU,KAAK,EAAE,UAAU,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,MAAM,SAAS,KAAG,KAKxG,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,UAAU,MAAM,EAAE,OAAO,SAAS,WAAW,EAAE,KAAG,WAAW,EACpC,CAAC;AAGrD,eAAO,MAAM,aAAa,GAAI,IAAI,MAAM,EAAE,OAAO,SAAS,WAAW,EAAE,KAAG,MAAM,EAe/E,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,IAAI,MAAM,EAAE,YAAY,MAAM,EAAE,MAAM,SAAS,KAAG,OAShF,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,OAAO,SAAS,IAAI,EAAE,KAAG,IAAI,GAAG,IAa3D,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,MAAM,IAAI,KAAG,KAAsE,CAAC;AAE/G,eAAO,MAAM,iBAAiB,GAAI,MAAM,IAAI,EAAE,OAAO,KAAK,KAAG,OACgD,CAAC;AAE9G,eAAO,MAAM,cAAc,GAAI,GAAG,IAAI,EAAE,GAAG,IAAI,KAAG,OAC0C,CAAC;AAE7F,eAAO,MAAM,WAAW,GAAI,MAAM,IAAI,EAAE,IAAI,MAAM,KAAG,IAKnD,CAAC;AAEH,eAAO,MAAM,YAAY,GAAI,MAAM,IAAI,EAAE,MAAM,UAAU,KAAG,KAY3D,CAAC;AAGF,eAAO,MAAM,iBAAiB,GAAI,MAAM,IAAI,EAAE,QAAQ,YAAY,KAAG,KAGnE,CAAC;AAIH,eAAO,MAAM,UAAU,GAAI,QAAQ,YAAY,KAAG,UASjD,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,MAAM,UAAU,KAAG,UAC4C,CAAC"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
export const indexNodes = (nodes) => new Map(nodes.map((node) => [node.id, node]));
|
|
2
|
+
// The size a node is DRAWN at: containers folded to their collapsed size.
|
|
3
|
+
export const displaySize = (node) => node.collapsed && node.collapsedSize ? node.collapsedSize : node.size;
|
|
4
|
+
// Absolute top-left of a node = its relative position plus every ancestor's.
|
|
5
|
+
// A dangling parentId (normalizeDocument repairs those) counts as top level;
|
|
6
|
+
// a cycle is cut after the node count so a corrupt document cannot hang.
|
|
7
|
+
export const absolutePosition = (node, byId) => {
|
|
8
|
+
let x = node.position.x;
|
|
9
|
+
let y = node.position.y;
|
|
10
|
+
let parent = node.parentId ? byId.get(node.parentId) : undefined;
|
|
11
|
+
let hops = 0;
|
|
12
|
+
while (parent && hops < byId.size) {
|
|
13
|
+
x += parent.position.x;
|
|
14
|
+
y += parent.position.y;
|
|
15
|
+
parent = parent.parentId ? byId.get(parent.parentId) : undefined;
|
|
16
|
+
hops += 1;
|
|
17
|
+
}
|
|
18
|
+
return { x, y };
|
|
19
|
+
};
|
|
20
|
+
export const absoluteRect = (node, byId) => {
|
|
21
|
+
const { x, y } = absolutePosition(node, byId);
|
|
22
|
+
const size = displaySize(node);
|
|
23
|
+
return { x, y, width: size.width, height: size.height };
|
|
24
|
+
};
|
|
25
|
+
export const absoluteRects = (doc) => {
|
|
26
|
+
const byId = indexNodes(doc.nodes);
|
|
27
|
+
return new Map(doc.nodes.map((node) => [node.id, absoluteRect(node, byId)]));
|
|
28
|
+
};
|
|
29
|
+
// Convert an ABSOLUTE point into the coordinate space of `parentId` (or the
|
|
30
|
+
// canvas when null) — what a node's `position` must be to sit there.
|
|
31
|
+
export const toParentRelative = (absolute, parentId, byId) => {
|
|
32
|
+
const parent = parentId ? byId.get(parentId) : undefined;
|
|
33
|
+
if (!parent)
|
|
34
|
+
return { x: absolute.x, y: absolute.y };
|
|
35
|
+
const origin = absolutePosition(parent, byId);
|
|
36
|
+
return { x: absolute.x - origin.x, y: absolute.y - origin.y };
|
|
37
|
+
};
|
|
38
|
+
export const childrenOf = (parentId, nodes) => nodes.filter((node) => node.parentId === parentId);
|
|
39
|
+
// Every node under `id`, depth first, in document order.
|
|
40
|
+
export const descendantIds = (id, nodes) => {
|
|
41
|
+
const out = [];
|
|
42
|
+
const stack = [id];
|
|
43
|
+
const seen = new Set();
|
|
44
|
+
while (stack.length > 0) {
|
|
45
|
+
const current = stack.pop();
|
|
46
|
+
for (const node of nodes) {
|
|
47
|
+
if (node.parentId === current && !seen.has(node.id)) {
|
|
48
|
+
seen.add(node.id);
|
|
49
|
+
out.push(node.id);
|
|
50
|
+
stack.push(node.id);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return out;
|
|
55
|
+
};
|
|
56
|
+
export const isDescendantOf = (id, ancestorId, byId) => {
|
|
57
|
+
let current = byId.get(id);
|
|
58
|
+
let hops = 0;
|
|
59
|
+
while (current?.parentId && hops < byId.size) {
|
|
60
|
+
if (current.parentId === ancestorId)
|
|
61
|
+
return true;
|
|
62
|
+
current = byId.get(current.parentId);
|
|
63
|
+
hops += 1;
|
|
64
|
+
}
|
|
65
|
+
return false;
|
|
66
|
+
};
|
|
67
|
+
export const boundingBox = (rects) => {
|
|
68
|
+
if (rects.length === 0)
|
|
69
|
+
return null;
|
|
70
|
+
let minX = Infinity;
|
|
71
|
+
let minY = Infinity;
|
|
72
|
+
let maxX = -Infinity;
|
|
73
|
+
let maxY = -Infinity;
|
|
74
|
+
for (const rect of rects) {
|
|
75
|
+
minX = Math.min(minX, rect.x);
|
|
76
|
+
minY = Math.min(minY, rect.y);
|
|
77
|
+
maxX = Math.max(maxX, rect.x + rect.width);
|
|
78
|
+
maxY = Math.max(maxY, rect.y + rect.height);
|
|
79
|
+
}
|
|
80
|
+
return { x: minX, y: minY, width: maxX - minX, height: maxY - minY };
|
|
81
|
+
};
|
|
82
|
+
export const rectCenter = (rect) => ({ x: rect.x + rect.width / 2, y: rect.y + rect.height / 2 });
|
|
83
|
+
export const rectContainsPoint = (rect, point) => point.x >= rect.x && point.x <= rect.x + rect.width && point.y >= rect.y && point.y <= rect.y + rect.height;
|
|
84
|
+
export const rectsIntersect = (a, b) => a.x < b.x + b.width && b.x < a.x + a.width && a.y < b.y + b.height && b.y < a.y + a.height;
|
|
85
|
+
export const inflateRect = (rect, by) => ({
|
|
86
|
+
x: rect.x - by,
|
|
87
|
+
y: rect.y - by,
|
|
88
|
+
width: rect.width + by * 2,
|
|
89
|
+
height: rect.height + by * 2,
|
|
90
|
+
});
|
|
91
|
+
export const sideMidpoint = (rect, side) => {
|
|
92
|
+
switch (side) {
|
|
93
|
+
case "top":
|
|
94
|
+
return { x: rect.x + rect.width / 2, y: rect.y };
|
|
95
|
+
case "bottom":
|
|
96
|
+
return { x: rect.x + rect.width / 2, y: rect.y + rect.height };
|
|
97
|
+
case "left":
|
|
98
|
+
return { x: rect.x, y: rect.y + rect.height / 2 };
|
|
99
|
+
case "right":
|
|
100
|
+
default:
|
|
101
|
+
return { x: rect.x + rect.width, y: rect.y + rect.height / 2 };
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
// The point a legacy anchor pins to: fraction of the bounds plus px offset.
|
|
105
|
+
export const legacyAnchorPoint = (rect, anchor) => ({
|
|
106
|
+
x: rect.x + rect.width * anchor.x + (anchor.dx ?? 0),
|
|
107
|
+
y: rect.y + rect.height * anchor.y + (anchor.dy ?? 0),
|
|
108
|
+
});
|
|
109
|
+
// Nearest side for a legacy anchor: which edge of the unit square the
|
|
110
|
+
// fraction sits on (ties resolve top/left first, like a reading order).
|
|
111
|
+
export const anchorSide = (anchor) => {
|
|
112
|
+
const distances = [
|
|
113
|
+
["top", anchor.y],
|
|
114
|
+
["left", anchor.x],
|
|
115
|
+
["bottom", 1 - anchor.y],
|
|
116
|
+
["right", 1 - anchor.x],
|
|
117
|
+
];
|
|
118
|
+
distances.sort((a, b) => a[1] - b[1]);
|
|
119
|
+
return distances[0][0];
|
|
120
|
+
};
|
|
121
|
+
export const oppositeSide = (side) => side === "top" ? "bottom" : side === "bottom" ? "top" : side === "left" ? "right" : "left";
|
|
122
|
+
//# sourceMappingURL=geometry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geometry.js","sourceRoot":"","sources":["../../src/diagram/geometry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { DiagramOp } from "./ops.js";
|
|
2
|
+
export interface HistoryEntry {
|
|
3
|
+
seq: number;
|
|
4
|
+
label: string;
|
|
5
|
+
ops: DiagramOp[];
|
|
6
|
+
inverse: DiagramOp[];
|
|
7
|
+
coalesceKey?: string;
|
|
8
|
+
at?: number;
|
|
9
|
+
}
|
|
10
|
+
export interface HistoryState {
|
|
11
|
+
past: HistoryEntry[];
|
|
12
|
+
future: HistoryEntry[];
|
|
13
|
+
limit: number;
|
|
14
|
+
seq: number;
|
|
15
|
+
}
|
|
16
|
+
export declare const createHistory: (limit?: number) => HistoryState;
|
|
17
|
+
export declare const pushEntry: (history: HistoryState, entry: {
|
|
18
|
+
label: string;
|
|
19
|
+
ops: DiagramOp[];
|
|
20
|
+
inverse: DiagramOp[];
|
|
21
|
+
coalesceKey?: string;
|
|
22
|
+
at?: number;
|
|
23
|
+
}) => HistoryState;
|
|
24
|
+
export declare const undo: (history: HistoryState) => {
|
|
25
|
+
history: HistoryState;
|
|
26
|
+
entry: HistoryEntry | null;
|
|
27
|
+
};
|
|
28
|
+
export declare const redo: (history: HistoryState) => {
|
|
29
|
+
history: HistoryState;
|
|
30
|
+
entry: HistoryEntry | null;
|
|
31
|
+
};
|
|
32
|
+
export declare const canUndo: (history: HistoryState) => boolean;
|
|
33
|
+
export declare const canRedo: (history: HistoryState) => boolean;
|
|
34
|
+
export declare const clearHistory: (history: HistoryState) => HistoryState;
|
|
35
|
+
export declare const sealHistory: (history: HistoryState) => HistoryState;
|
|
36
|
+
//# sourceMappingURL=history.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/diagram/history.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,SAAS,EAAE,CAAC;IACjB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,eAAO,MAAM,aAAa,GAAI,cAAW,KAAG,YAAyD,CAAC;AAEtG,eAAO,MAAM,SAAS,GACpB,SAAS,YAAY,EACrB,OAAO;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,SAAS,EAAE,CAAC;IAAC,OAAO,EAAE,SAAS,EAAE,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,KAClG,YAqBF,CAAC;AAEF,eAAO,MAAM,IAAI,GAAI,SAAS,YAAY,KAAG;IAAE,OAAO,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAA;CAO/F,CAAC;AAEF,eAAO,MAAM,IAAI,GAAI,SAAS,YAAY,KAAG;IAAE,OAAO,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAA;CAO/F,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,SAAS,YAAY,KAAG,OAAkC,CAAC;AACnF,eAAO,MAAM,OAAO,GAAI,SAAS,YAAY,KAAG,OAAoC,CAAC;AACrF,eAAO,MAAM,YAAY,GAAI,SAAS,YAAY,KAAG,YAAsD,CAAC;AAI5G,eAAO,MAAM,WAAW,GAAI,SAAS,YAAY,KAAG,YAKnD,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export const createHistory = (limit = 200) => ({ past: [], future: [], limit, seq: 0 });
|
|
2
|
+
export const pushEntry = (history, entry) => {
|
|
3
|
+
const top = history.past[history.past.length - 1];
|
|
4
|
+
if (top && entry.coalesceKey && top.coalesceKey === entry.coalesceKey && history.future.length === 0) {
|
|
5
|
+
const merged = {
|
|
6
|
+
...top,
|
|
7
|
+
label: entry.label,
|
|
8
|
+
ops: [...top.ops, ...entry.ops],
|
|
9
|
+
// Undo runs the newest inverse first.
|
|
10
|
+
inverse: [...entry.inverse, ...top.inverse],
|
|
11
|
+
at: entry.at ?? top.at,
|
|
12
|
+
};
|
|
13
|
+
return { ...history, past: [...history.past.slice(0, -1), merged], future: [] };
|
|
14
|
+
}
|
|
15
|
+
const seq = history.seq + 1;
|
|
16
|
+
const past = [...history.past, { ...entry, seq }];
|
|
17
|
+
return {
|
|
18
|
+
...history,
|
|
19
|
+
seq,
|
|
20
|
+
past: past.length > history.limit ? past.slice(past.length - history.limit) : past,
|
|
21
|
+
future: [],
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
export const undo = (history) => {
|
|
25
|
+
const entry = history.past[history.past.length - 1];
|
|
26
|
+
if (!entry)
|
|
27
|
+
return { history, entry: null };
|
|
28
|
+
return {
|
|
29
|
+
history: { ...history, past: history.past.slice(0, -1), future: [entry, ...history.future] },
|
|
30
|
+
entry,
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
export const redo = (history) => {
|
|
34
|
+
const entry = history.future[0];
|
|
35
|
+
if (!entry)
|
|
36
|
+
return { history, entry: null };
|
|
37
|
+
return {
|
|
38
|
+
history: { ...history, past: [...history.past, entry], future: history.future.slice(1) },
|
|
39
|
+
entry,
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
export const canUndo = (history) => history.past.length > 0;
|
|
43
|
+
export const canRedo = (history) => history.future.length > 0;
|
|
44
|
+
export const clearHistory = (history) => ({ ...history, past: [], future: [] });
|
|
45
|
+
// Break the coalescing chain without adding an entry (selection changed,
|
|
46
|
+
// editor blurred): the next push starts a fresh entry even with the same key.
|
|
47
|
+
export const sealHistory = (history) => {
|
|
48
|
+
const top = history.past[history.past.length - 1];
|
|
49
|
+
if (!top?.coalesceKey)
|
|
50
|
+
return history;
|
|
51
|
+
const { coalesceKey: _drop, ...sealed } = top;
|
|
52
|
+
return { ...history, past: [...history.past.slice(0, -1), sealed] };
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=history.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/diagram/history.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const slugify: (value: string, maxLength?: number) => string;
|
|
2
|
+
export type IdFactory = (hint?: string) => string;
|
|
3
|
+
export declare const sequentialIdFactory: (prefix: string, taken?: Iterable<string>) => IdFactory;
|
|
4
|
+
export declare const slugIdFactory: (taken?: Iterable<string>, fallbackPrefix?: string) => IdFactory;
|
|
5
|
+
//# sourceMappingURL=ids.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../src/diagram/ids.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,OAAO,GAAI,OAAO,MAAM,EAAE,kBAAc,KAAG,MAQhC,CAAC;AAEzB,MAAM,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;AAElD,eAAO,MAAM,mBAAmB,GAAI,QAAQ,MAAM,EAAE,QAAO,QAAQ,CAAC,MAAM,CAAM,KAAG,SAalF,CAAC;AAIF,eAAO,MAAM,aAAa,GAAI,QAAO,QAAQ,CAAC,MAAM,CAAM,EAAE,uBAAoB,KAAG,SAmBlF,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
// Ids for generated nodes/edges. Two strategies:
|
|
2
|
+
// slug — readable and STABLE across regenerations ("payment-service",
|
|
3
|
+
// "payment-service-2"): what AI/MCP-created diagrams use, so a
|
|
4
|
+
// later "add Redis between Payment and Kafka" addresses the same
|
|
5
|
+
// nodes, and the ids read well in Mermaid.
|
|
6
|
+
// sequential — n1, n2 … / e1, e2 …: the fallback when there is no label.
|
|
7
|
+
// Interactive edits in the desktop keep using `genId` (schema.ts).
|
|
8
|
+
export const slugify = (value, maxLength = 40) => value
|
|
9
|
+
.normalize("NFKD")
|
|
10
|
+
.replace(/[̀-ͯ]/g, "")
|
|
11
|
+
.toLowerCase()
|
|
12
|
+
.replace(/[^a-z0-9]+/g, "-")
|
|
13
|
+
.replace(/^-+|-+$/g, "")
|
|
14
|
+
.slice(0, maxLength)
|
|
15
|
+
.replace(/-+$/g, "");
|
|
16
|
+
export const sequentialIdFactory = (prefix, taken = []) => {
|
|
17
|
+
const used = new Set(taken);
|
|
18
|
+
let counter = 1;
|
|
19
|
+
return () => {
|
|
20
|
+
let candidate = `${prefix}${counter}`;
|
|
21
|
+
while (used.has(candidate)) {
|
|
22
|
+
counter += 1;
|
|
23
|
+
candidate = `${prefix}${counter}`;
|
|
24
|
+
}
|
|
25
|
+
used.add(candidate);
|
|
26
|
+
counter += 1;
|
|
27
|
+
return candidate;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
// `hint` is usually the label; empty/unsluggable hints fall back to the
|
|
31
|
+
// sequential prefix. Collisions get "-2", "-3", …
|
|
32
|
+
export const slugIdFactory = (taken = [], fallbackPrefix = "n") => {
|
|
33
|
+
const used = new Set(taken);
|
|
34
|
+
const sequential = sequentialIdFactory(fallbackPrefix, used);
|
|
35
|
+
return (hint) => {
|
|
36
|
+
const base = hint ? slugify(hint) : "";
|
|
37
|
+
if (!base) {
|
|
38
|
+
const id = sequential();
|
|
39
|
+
used.add(id);
|
|
40
|
+
return id;
|
|
41
|
+
}
|
|
42
|
+
let candidate = base;
|
|
43
|
+
let suffix = 2;
|
|
44
|
+
while (used.has(candidate)) {
|
|
45
|
+
candidate = `${base}-${suffix}`;
|
|
46
|
+
suffix += 1;
|
|
47
|
+
}
|
|
48
|
+
used.add(candidate);
|
|
49
|
+
return candidate;
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=ids.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ids.js","sourceRoot":"","sources":["../../src/diagram/ids.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,8EAA8E;AAC9E,8EAA8E;AAC9E,gFAAgF;AAChF,0DAA0D;AAC1D,2EAA2E;AAC3E,mEAAmE;AAEnE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,SAAS,GAAG,EAAE,EAAU,EAAE,CAC/D,KAAK;KACF,SAAS,CAAC,MAAM,CAAC;KACjB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;KACrB,WAAW,EAAE;KACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;KAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;KACvB,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC;KACnB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAIzB,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAc,EAAE,QAA0B,EAAE,EAAa,EAAE;IAC7F,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,OAAO,GAAW,EAAE;QAClB,IAAI,SAAS,GAAG,GAAG,MAAM,GAAG,OAAO,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,CAAC;YACb,SAAS,GAAG,GAAG,MAAM,GAAG,OAAO,EAAE,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpB,OAAO,IAAI,CAAC,CAAC;QACb,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,wEAAwE;AACxE,kDAAkD;AAClD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAA0B,EAAE,EAAE,cAAc,GAAG,GAAG,EAAa,EAAE;IAC7F,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAC5B,MAAM,UAAU,GAAG,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAC7D,OAAO,CAAC,IAAa,EAAU,EAAE;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACb,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,SAAS,GAAG,IAAI,CAAC;QACrB,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,SAAS,GAAG,GAAG,IAAI,IAAI,MAAM,EAAE,CAAC;YAChC,MAAM,IAAI,CAAC,CAAC;QACd,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpB,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;AACJ,CAAC,CAAC"}
|
package/dist/diagram/index.d.ts
CHANGED
|
@@ -2,6 +2,19 @@ export * from "./schema.js";
|
|
|
2
2
|
export { migrateDocument } from "./migrations.js";
|
|
3
3
|
export * from "./componentCatalog.js";
|
|
4
4
|
export * from "./edgeSemantics.js";
|
|
5
|
-
export { normalizeDiagramStyle, normalizeDiagramStyles } from "./normalize.js";
|
|
6
|
-
export * from "./
|
|
5
|
+
export { isPreOrder, normalizeDiagramStyle, normalizeDiagramStyles, normalizeDocument, sortPreOrder, type NormalizeResult, } from "./normalize.js";
|
|
6
|
+
export * from "./geometry.js";
|
|
7
|
+
export * from "./ids.js";
|
|
8
|
+
export * from "./ops.js";
|
|
9
|
+
export * from "./history.js";
|
|
10
|
+
export * from "./styleInput.js";
|
|
11
|
+
export * from "./patchInput.js";
|
|
12
|
+
export * from "./views.js";
|
|
13
|
+
export * from "./opsReference.js";
|
|
14
|
+
export * from "./fixtures.js";
|
|
15
|
+
export * from "./layout.js";
|
|
16
|
+
export * from "./routing/index.js";
|
|
17
|
+
export * from "./mermaid/index.js";
|
|
18
|
+
export * from "./bpmn/index.js";
|
|
19
|
+
export * from "./database/index.js";
|
|
7
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/diagram/index.ts"],"names":[],"mappings":"AAMA,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/diagram/index.ts"],"names":[],"mappings":"AAMA,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,KAAK,eAAe,GACrB,MAAM,gBAAgB,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC"}
|
package/dist/diagram/index.js
CHANGED
|
@@ -1,13 +1,26 @@
|
|
|
1
|
-
// The diagram
|
|
2
|
-
//
|
|
3
|
-
//
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
//
|
|
1
|
+
// The diagram DSL and everything that acts on it: schema + validator,
|
|
2
|
+
// the universal load gate (normalizeDocument), OPERATIONS with inverses,
|
|
3
|
+
// history, the authoring vocabulary lowering (MCP/AI), views, geometry,
|
|
4
|
+
// component catalog, edge notation, layout builders and fixtures. Dependency
|
|
5
|
+
// free — it runs inside the Electron renderer under CSP, in the backend and
|
|
6
|
+
// in the MCP server; elkjs is a HOST dependency.
|
|
7
7
|
export * from "./schema.js";
|
|
8
8
|
export { migrateDocument } from "./migrations.js";
|
|
9
9
|
export * from "./componentCatalog.js";
|
|
10
10
|
export * from "./edgeSemantics.js";
|
|
11
|
-
export { normalizeDiagramStyle, normalizeDiagramStyles } from "./normalize.js";
|
|
12
|
-
export * from "./
|
|
11
|
+
export { isPreOrder, normalizeDiagramStyle, normalizeDiagramStyles, normalizeDocument, sortPreOrder, } from "./normalize.js";
|
|
12
|
+
export * from "./geometry.js";
|
|
13
|
+
export * from "./ids.js";
|
|
14
|
+
export * from "./ops.js";
|
|
15
|
+
export * from "./history.js";
|
|
16
|
+
export * from "./styleInput.js";
|
|
17
|
+
export * from "./patchInput.js";
|
|
18
|
+
export * from "./views.js";
|
|
19
|
+
export * from "./opsReference.js";
|
|
20
|
+
export * from "./fixtures.js";
|
|
21
|
+
export * from "./layout.js";
|
|
22
|
+
export * from "./routing/index.js";
|
|
23
|
+
export * from "./mermaid/index.js";
|
|
24
|
+
export * from "./bpmn/index.js";
|
|
25
|
+
export * from "./database/index.js";
|
|
13
26
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/diagram/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/diagram/index.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,yEAAyE;AACzE,wEAAwE;AACxE,6EAA6E;AAC7E,4EAA4E;AAC5E,iDAAiD;AACjD,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,GAEb,MAAM,gBAAgB,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC"}
|