callman-core 1.29.0 → 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.
Files changed (200) hide show
  1. package/dist/ai/prompts/diagram.d.ts.map +1 -1
  2. package/dist/ai/prompts/diagram.js +24 -7
  3. package/dist/ai/prompts/diagram.js.map +1 -1
  4. package/dist/ai/types.d.ts +1 -1
  5. package/dist/ai/types.d.ts.map +1 -1
  6. package/dist/diagram/componentCatalog.d.ts +3 -0
  7. package/dist/diagram/componentCatalog.d.ts.map +1 -1
  8. package/dist/diagram/componentCatalog.js +5 -1
  9. package/dist/diagram/componentCatalog.js.map +1 -1
  10. package/dist/diagram/database/derive.d.ts +14 -0
  11. package/dist/diagram/database/derive.d.ts.map +1 -0
  12. package/dist/diagram/database/derive.js +114 -0
  13. package/dist/diagram/database/derive.js.map +1 -0
  14. package/dist/diagram/database/diff.d.ts +48 -0
  15. package/dist/diagram/database/diff.d.ts.map +1 -0
  16. package/dist/diagram/database/diff.js +109 -0
  17. package/dist/diagram/database/diff.js.map +1 -0
  18. package/dist/diagram/database/edit.d.ts +113 -0
  19. package/dist/diagram/database/edit.d.ts.map +1 -0
  20. package/dist/diagram/database/edit.js +359 -0
  21. package/dist/diagram/database/edit.js.map +1 -0
  22. package/dist/diagram/database/fromSchema.d.ts +12 -0
  23. package/dist/diagram/database/fromSchema.d.ts.map +1 -0
  24. package/dist/diagram/database/fromSchema.js +182 -0
  25. package/dist/diagram/database/fromSchema.js.map +1 -0
  26. package/dist/diagram/database/index.d.ts +9 -0
  27. package/dist/diagram/database/index.d.ts.map +1 -0
  28. package/dist/diagram/database/index.js +14 -0
  29. package/dist/diagram/database/index.js.map +1 -0
  30. package/dist/diagram/database/model.d.ts +93 -0
  31. package/dist/diagram/database/model.d.ts.map +1 -0
  32. package/dist/diagram/database/model.js +294 -0
  33. package/dist/diagram/database/model.js.map +1 -0
  34. package/dist/diagram/database/patch.d.ts +14 -0
  35. package/dist/diagram/database/patch.d.ts.map +1 -0
  36. package/dist/diagram/database/patch.js +186 -0
  37. package/dist/diagram/database/patch.js.map +1 -0
  38. package/dist/diagram/database/place.d.ts +4 -0
  39. package/dist/diagram/database/place.d.ts.map +1 -0
  40. package/dist/diagram/database/place.js +22 -0
  41. package/dist/diagram/database/place.js.map +1 -0
  42. package/dist/diagram/database/types.d.ts +50 -0
  43. package/dist/diagram/database/types.d.ts.map +1 -0
  44. package/dist/diagram/database/types.js +106 -0
  45. package/dist/diagram/database/types.js.map +1 -0
  46. package/dist/diagram/index.d.ts +1 -0
  47. package/dist/diagram/index.d.ts.map +1 -1
  48. package/dist/diagram/index.js +1 -0
  49. package/dist/diagram/index.js.map +1 -1
  50. package/dist/diagram/layout.d.ts +1 -0
  51. package/dist/diagram/layout.d.ts.map +1 -1
  52. package/dist/diagram/layout.js +2 -1
  53. package/dist/diagram/layout.js.map +1 -1
  54. package/dist/diagram/ops.d.ts +1 -1
  55. package/dist/diagram/ops.d.ts.map +1 -1
  56. package/dist/diagram/ops.js +42 -0
  57. package/dist/diagram/ops.js.map +1 -1
  58. package/dist/diagram/opsReference.d.ts +1 -1
  59. package/dist/diagram/opsReference.d.ts.map +1 -1
  60. package/dist/diagram/opsReference.js +9 -0
  61. package/dist/diagram/opsReference.js.map +1 -1
  62. package/dist/diagram/patchInput.d.ts +65 -1
  63. package/dist/diagram/patchInput.d.ts.map +1 -1
  64. package/dist/diagram/patchInput.js +414 -11
  65. package/dist/diagram/patchInput.js.map +1 -1
  66. package/dist/diagram/schema.d.ts +2 -2
  67. package/dist/diagram/schema.d.ts.map +1 -1
  68. package/dist/diagram/schema.js +3 -3
  69. package/dist/diagram/schema.js.map +1 -1
  70. package/dist/diagram/views.d.ts +13 -0
  71. package/dist/diagram/views.d.ts.map +1 -1
  72. package/dist/diagram/views.js +49 -0
  73. package/dist/diagram/views.js.map +1 -1
  74. package/dist/host/db/introspection/index.d.ts +9 -0
  75. package/dist/host/db/introspection/index.d.ts.map +1 -0
  76. package/dist/host/db/introspection/index.js +35 -0
  77. package/dist/host/db/introspection/index.js.map +1 -0
  78. package/dist/host/db/introspection/mongo.d.ts +7 -0
  79. package/dist/host/db/introspection/mongo.d.ts.map +1 -0
  80. package/dist/host/db/introspection/mongo.js +183 -0
  81. package/dist/host/db/introspection/mongo.js.map +1 -0
  82. package/dist/host/db/introspection/mssql.d.ts +6 -0
  83. package/dist/host/db/introspection/mssql.d.ts.map +1 -0
  84. package/dist/host/db/introspection/mssql.js +211 -0
  85. package/dist/host/db/introspection/mssql.js.map +1 -0
  86. package/dist/host/db/introspection/mysql.d.ts +5 -0
  87. package/dist/host/db/introspection/mysql.d.ts.map +1 -0
  88. package/dist/host/db/introspection/mysql.js +163 -0
  89. package/dist/host/db/introspection/mysql.js.map +1 -0
  90. package/dist/host/db/introspection/oracle.d.ts +12 -0
  91. package/dist/host/db/introspection/oracle.d.ts.map +1 -0
  92. package/dist/host/db/introspection/oracle.js +225 -0
  93. package/dist/host/db/introspection/oracle.js.map +1 -0
  94. package/dist/host/db/introspection/postgres.d.ts +5 -0
  95. package/dist/host/db/introspection/postgres.d.ts.map +1 -0
  96. package/dist/host/db/introspection/postgres.js +172 -0
  97. package/dist/host/db/introspection/postgres.js.map +1 -0
  98. package/dist/host/db/introspection/shared.d.ts +29 -0
  99. package/dist/host/db/introspection/shared.d.ts.map +1 -0
  100. package/dist/host/db/introspection/shared.js +119 -0
  101. package/dist/host/db/introspection/shared.js.map +1 -0
  102. package/dist/host/db/introspection/types.d.ts +58 -0
  103. package/dist/host/db/introspection/types.d.ts.map +1 -0
  104. package/dist/host/db/introspection/types.js +6 -0
  105. package/dist/host/db/introspection/types.js.map +1 -0
  106. package/dist/host/db/mongoAdapter.d.ts +1 -0
  107. package/dist/host/db/mongoAdapter.d.ts.map +1 -1
  108. package/dist/host/db/mongoAdapter.js +13 -0
  109. package/dist/host/db/mongoAdapter.js.map +1 -1
  110. package/dist/host/db/mssqlAdapter.d.ts +1 -0
  111. package/dist/host/db/mssqlAdapter.d.ts.map +1 -1
  112. package/dist/host/db/mssqlAdapter.js +3 -1
  113. package/dist/host/db/mssqlAdapter.js.map +1 -1
  114. package/dist/host/db/mysqlAdapter.d.ts +1 -0
  115. package/dist/host/db/mysqlAdapter.d.ts.map +1 -1
  116. package/dist/host/db/mysqlAdapter.js +11 -0
  117. package/dist/host/db/mysqlAdapter.js.map +1 -1
  118. package/dist/host/db/oracleAdapter.d.ts +1 -0
  119. package/dist/host/db/oracleAdapter.d.ts.map +1 -1
  120. package/dist/host/db/oracleAdapter.js +22 -0
  121. package/dist/host/db/oracleAdapter.js.map +1 -1
  122. package/dist/host/db/postgresAdapter.d.ts +1 -0
  123. package/dist/host/db/postgresAdapter.d.ts.map +1 -1
  124. package/dist/host/db/postgresAdapter.js +13 -0
  125. package/dist/host/db/postgresAdapter.js.map +1 -1
  126. package/dist/host/db/queryExecutor.d.ts +2 -1
  127. package/dist/host/db/queryExecutor.d.ts.map +1 -1
  128. package/dist/host/db/queryExecutor.js +1 -1
  129. package/dist/host/db/queryExecutor.js.map +1 -1
  130. package/dist/host/index.d.ts +7 -0
  131. package/dist/host/index.d.ts.map +1 -1
  132. package/dist/host/index.js +9 -0
  133. package/dist/host/index.js.map +1 -1
  134. package/dist-cjs/ai/prompts/diagram.js +23 -6
  135. package/dist-cjs/ai/prompts/diagram.js.map +1 -1
  136. package/dist-cjs/diagram/componentCatalog.js +5 -1
  137. package/dist-cjs/diagram/componentCatalog.js.map +1 -1
  138. package/dist-cjs/diagram/database/derive.js +119 -0
  139. package/dist-cjs/diagram/database/derive.js.map +1 -0
  140. package/dist-cjs/diagram/database/diff.js +115 -0
  141. package/dist-cjs/diagram/database/diff.js.map +1 -0
  142. package/dist-cjs/diagram/database/edit.js +366 -0
  143. package/dist-cjs/diagram/database/edit.js.map +1 -0
  144. package/dist-cjs/diagram/database/fromSchema.js +188 -0
  145. package/dist-cjs/diagram/database/fromSchema.js.map +1 -0
  146. package/dist-cjs/diagram/database/index.js +32 -0
  147. package/dist-cjs/diagram/database/index.js.map +1 -0
  148. package/dist-cjs/diagram/database/model.js +311 -0
  149. package/dist-cjs/diagram/database/model.js.map +1 -0
  150. package/dist-cjs/diagram/database/patch.js +190 -0
  151. package/dist-cjs/diagram/database/patch.js.map +1 -0
  152. package/dist-cjs/diagram/database/place.js +26 -0
  153. package/dist-cjs/diagram/database/place.js.map +1 -0
  154. package/dist-cjs/diagram/database/types.js +122 -0
  155. package/dist-cjs/diagram/database/types.js.map +1 -0
  156. package/dist-cjs/diagram/index.js +1 -0
  157. package/dist-cjs/diagram/index.js.map +1 -1
  158. package/dist-cjs/diagram/layout.js +3 -2
  159. package/dist-cjs/diagram/layout.js.map +1 -1
  160. package/dist-cjs/diagram/ops.js +42 -0
  161. package/dist-cjs/diagram/ops.js.map +1 -1
  162. package/dist-cjs/diagram/opsReference.js +9 -0
  163. package/dist-cjs/diagram/opsReference.js.map +1 -1
  164. package/dist-cjs/diagram/patchInput.js +414 -11
  165. package/dist-cjs/diagram/patchInput.js.map +1 -1
  166. package/dist-cjs/diagram/schema.js +3 -3
  167. package/dist-cjs/diagram/schema.js.map +1 -1
  168. package/dist-cjs/diagram/views.js +51 -1
  169. package/dist-cjs/diagram/views.js.map +1 -1
  170. package/dist-cjs/host/db/introspection/index.js +59 -0
  171. package/dist-cjs/host/db/introspection/index.js.map +1 -0
  172. package/dist-cjs/host/db/introspection/mongo.js +189 -0
  173. package/dist-cjs/host/db/introspection/mongo.js.map +1 -0
  174. package/dist-cjs/host/db/introspection/mssql.js +216 -0
  175. package/dist-cjs/host/db/introspection/mssql.js.map +1 -0
  176. package/dist-cjs/host/db/introspection/mysql.js +167 -0
  177. package/dist-cjs/host/db/introspection/mysql.js.map +1 -0
  178. package/dist-cjs/host/db/introspection/oracle.js +230 -0
  179. package/dist-cjs/host/db/introspection/oracle.js.map +1 -0
  180. package/dist-cjs/host/db/introspection/postgres.js +176 -0
  181. package/dist-cjs/host/db/introspection/postgres.js.map +1 -0
  182. package/dist-cjs/host/db/introspection/shared.js +133 -0
  183. package/dist-cjs/host/db/introspection/shared.js.map +1 -0
  184. package/dist-cjs/host/db/introspection/types.js +7 -0
  185. package/dist-cjs/host/db/introspection/types.js.map +1 -0
  186. package/dist-cjs/host/db/mongoAdapter.js +15 -1
  187. package/dist-cjs/host/db/mongoAdapter.js.map +1 -1
  188. package/dist-cjs/host/db/mssqlAdapter.js +5 -2
  189. package/dist-cjs/host/db/mssqlAdapter.js.map +1 -1
  190. package/dist-cjs/host/db/mysqlAdapter.js +13 -1
  191. package/dist-cjs/host/db/mysqlAdapter.js.map +1 -1
  192. package/dist-cjs/host/db/oracleAdapter.js +24 -1
  193. package/dist-cjs/host/db/oracleAdapter.js.map +1 -1
  194. package/dist-cjs/host/db/postgresAdapter.js +15 -1
  195. package/dist-cjs/host/db/postgresAdapter.js.map +1 -1
  196. package/dist-cjs/host/db/queryExecutor.js +5 -4
  197. package/dist-cjs/host/db/queryExecutor.js.map +1 -1
  198. package/dist-cjs/host/index.js +24 -1
  199. package/dist-cjs/host/index.js.map +1 -1
  200. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/diagram/database/model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { DiagramOp } from "../ops.js";
2
+ import type { DiagramDocument } from "../schema.js";
3
+ export interface DatabasePatchResult {
4
+ text: string;
5
+ unmapped: DiagramOp[];
6
+ changed: boolean;
7
+ warnings: string[];
8
+ }
9
+ export interface DatabasePatchContext {
10
+ before: DiagramDocument;
11
+ after: DiagramDocument;
12
+ }
13
+ export declare const patchDatabaseSource: (text: string, ops: DiagramOp[], context: DatabasePatchContext) => DatabasePatchResult;
14
+ //# sourceMappingURL=patch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../../src/diagram/database/patch.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,cAAc,CAAC;AAKjE,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,EAAE,eAAe,CAAC;CACxB;AAmID,eAAO,MAAM,mBAAmB,GAAI,MAAM,MAAM,EAAE,KAAK,SAAS,EAAE,EAAE,SAAS,oBAAoB,KAAG,mBA8BnG,CAAC"}
@@ -0,0 +1,186 @@
1
+ // Canonical node/edge ops → the database model. A generic MCP client or the
2
+ // canvas may still say addNode {type:"db.table"} / removeNode / addEdge; here
3
+ // they land on the model as the semantic edits they mean, so the JSON stays
4
+ // the truth. Presentation ops (move, resize, hide, collapse, style, reorder)
5
+ // are the diagram's own business and change nothing here.
6
+ import { applyDatabaseEdit, DatabaseEditError } from "./edit.js";
7
+ import { findEntity, findRelationship, parseDatabaseModel, serializeDatabaseModel } from "./model.js";
8
+ import { dbEdgeData, isDatabaseType, isValidCardinality, kindForDatabaseType } from "./types.js";
9
+ const flatten = (ops, out) => {
10
+ for (const op of ops) {
11
+ if (op.op === "batch")
12
+ flatten(op.ops, out);
13
+ else
14
+ out.push(op);
15
+ }
16
+ };
17
+ const columnInputs = (value) => {
18
+ if (!Array.isArray(value))
19
+ return undefined;
20
+ return value
21
+ .filter((item) => Boolean(item) && typeof item === "object")
22
+ .filter((item) => typeof item.name === "string")
23
+ .map((item) => ({
24
+ ...(typeof item.id === "string" ? { id: item.id } : {}),
25
+ name: String(item.name),
26
+ dataType: typeof item.dataType === "string" ? item.dataType : typeof item.type === "string" ? item.type : "",
27
+ ...(typeof item.nullable === "boolean" ? { nullable: item.nullable } : {}),
28
+ ...(typeof item.primaryKey === "boolean" ? { primaryKey: item.primaryKey } : {}),
29
+ ...(typeof item.unique === "boolean" ? { unique: item.unique } : {}),
30
+ ...(item.defaultValue !== undefined && item.defaultValue !== null ? { defaultValue: String(item.defaultValue) } : {}),
31
+ ...(typeof item.autoIncrement === "boolean" ? { autoIncrement: item.autoIncrement } : {}),
32
+ ...(typeof item.comment === "string" ? { comment: item.comment } : {}),
33
+ }));
34
+ };
35
+ const editsForAddNode = (node) => {
36
+ const raw = (node.data?.db ?? {});
37
+ const name = (typeof raw.name === "string" && raw.name.trim()) || (node.label ?? "").trim() || node.id;
38
+ return [
39
+ {
40
+ kind: "addTable",
41
+ table: {
42
+ id: node.id,
43
+ name,
44
+ ...(typeof raw.schema === "string" && raw.schema.trim() ? { schema: raw.schema.trim() } : {}),
45
+ kind: kindForDatabaseType(node.type),
46
+ ...(columnInputs(raw.columns ?? raw.columnInputs) ? { columns: columnInputs(raw.columns ?? raw.columnInputs) } : {}),
47
+ ...(typeof raw.comment === "string" && raw.comment.trim() ? { comment: raw.comment.trim() } : {}),
48
+ },
49
+ },
50
+ ];
51
+ };
52
+ // The edits one canonical op means for the model; [] = handled, nothing to
53
+ // change (presentation); null = not ours.
54
+ const editsFor = (model, op, context) => {
55
+ switch (op.op) {
56
+ case "addNode":
57
+ return isDatabaseType(op.node.type) ? editsForAddNode(op.node) : null;
58
+ case "removeNode":
59
+ return findEntity(model, op.id) ? [{ kind: "removeTable", table: op.id }] : null;
60
+ case "updateNode": {
61
+ const entity = findEntity(model, op.id);
62
+ if (!entity)
63
+ return null;
64
+ const edits = [];
65
+ const changes = op.changes;
66
+ if (changes.type !== undefined && isDatabaseType(changes.type) && kindForDatabaseType(changes.type) !== entity.kind)
67
+ edits.push({ kind: "setTableKind", table: entity.id, entityKind: kindForDatabaseType(changes.type) });
68
+ const raw = changes.data && typeof changes.data.db === "object" && changes.data.db ? changes.data.db : undefined;
69
+ const requestedName = typeof raw?.name === "string" ? raw.name : typeof changes.label === "string" ? changes.label : undefined;
70
+ if (requestedName !== undefined) {
71
+ // A label may be qualified ("public.users"): split when the schema part matches.
72
+ const dot = requestedName.lastIndexOf(".");
73
+ const schemaPart = dot > 0 ? requestedName.slice(0, dot) : undefined;
74
+ const namePart = dot > 0 ? requestedName.slice(dot + 1) : requestedName;
75
+ const schema = typeof raw?.schema === "string" ? raw.schema : schemaPart !== undefined && (entity.schema ?? "").toLowerCase() === schemaPart.toLowerCase() ? entity.schema : dot > 0 && typeof raw?.schema !== "string" ? schemaPart : entity.schema;
76
+ if (namePart.trim() && (namePart !== entity.name || (schema ?? "") !== (entity.schema ?? "")))
77
+ edits.push({ kind: "renameTable", table: entity.id, name: namePart, schema: schema ?? null });
78
+ }
79
+ else if (typeof raw?.schema === "string" && raw.schema !== (entity.schema ?? "")) {
80
+ edits.push({ kind: "renameTable", table: entity.id, name: entity.name, schema: raw.schema || null });
81
+ }
82
+ if (raw && "comment" in raw)
83
+ edits.push({ kind: "setTableComment", table: entity.id, comment: typeof raw.comment === "string" ? raw.comment : null });
84
+ const columns = raw ? columnInputs(raw.columns ?? raw.columnInputs) : undefined;
85
+ if (columns)
86
+ edits.push({ kind: "setColumns", table: entity.id, columns });
87
+ return edits;
88
+ }
89
+ case "addEdge": {
90
+ const source = op.edge.source ? findEntity(model, op.edge.source) : undefined;
91
+ const target = op.edge.target ? findEntity(model, op.edge.target) : undefined;
92
+ if (!source || !target)
93
+ return null;
94
+ const data = (op.edge.data?.db ?? {});
95
+ const refs = (value) => (Array.isArray(value) ? value.filter((item) => typeof item === "string") : []);
96
+ return [
97
+ {
98
+ kind: "addRelationship",
99
+ id: op.edge.id,
100
+ source: { table: source.id, columns: refs(data.sourceColumns) },
101
+ target: { table: target.id, columns: refs(data.targetColumns) },
102
+ ...(isValidCardinality(data.cardinality) ? { cardinality: data.cardinality } : {}),
103
+ relationshipKind: data.kind === "foreignKey" ? "foreignKey" : "manual",
104
+ ...(typeof data.name === "string" ? { name: data.name } : {}),
105
+ ...(op.edge.label ? { label: op.edge.label } : {}),
106
+ },
107
+ ];
108
+ }
109
+ case "updateEdge": {
110
+ const relationship = findRelationship(model, op.id);
111
+ if (!relationship)
112
+ return null;
113
+ const changes = op.changes;
114
+ const edit = { kind: "updateRelationship", relationship: relationship.id, changes: {} };
115
+ const after = context.after.edges.find((edge) => edge.id === op.id);
116
+ const data = changes.data && typeof changes.data.db === "object" && changes.data.db ? changes.data.db : undefined;
117
+ const currentData = after ? dbEdgeData(after.data) : undefined;
118
+ if (changes.source !== undefined || data?.sourceColumns !== undefined) {
119
+ const entity = findEntity(model, changes.source ?? relationship.source.entityId);
120
+ if (entity)
121
+ edit.changes.source = { table: entity.id, columns: Array.isArray(data?.sourceColumns) ? data.sourceColumns : changes.source !== undefined ? [] : currentData?.sourceColumns ?? relationship.source.columnIds };
122
+ }
123
+ if (changes.target !== undefined || data?.targetColumns !== undefined) {
124
+ const entity = findEntity(model, changes.target ?? relationship.target.entityId);
125
+ if (entity)
126
+ edit.changes.target = { table: entity.id, columns: Array.isArray(data?.targetColumns) ? data.targetColumns : changes.target !== undefined ? [] : currentData?.targetColumns ?? relationship.target.columnIds };
127
+ }
128
+ if (isValidCardinality(data?.cardinality))
129
+ edit.changes.cardinality = data.cardinality;
130
+ if (data && (data.kind === "manual" || data.kind === "foreignKey"))
131
+ edit.changes.relationshipKind = data.kind;
132
+ if (data && "name" in data)
133
+ edit.changes.name = typeof data.name === "string" ? data.name : null;
134
+ if (changes.label !== undefined)
135
+ edit.changes.label = changes.label;
136
+ return Object.keys(edit.changes).length > 0 ? [edit] : [];
137
+ }
138
+ case "removeEdge":
139
+ return findRelationship(model, op.id) ? [{ kind: "removeRelationship", relationship: op.id }] : null;
140
+ case "moveNodes":
141
+ case "resizeNode":
142
+ case "reorder":
143
+ case "setCanvas":
144
+ case "setViewport":
145
+ case "setTitle":
146
+ return [];
147
+ default:
148
+ return null;
149
+ }
150
+ };
151
+ export const patchDatabaseSource = (text, ops, context) => {
152
+ const flat = [];
153
+ flatten(ops, flat);
154
+ const unmapped = [];
155
+ const warnings = [];
156
+ const parsed = parseDatabaseModel(text);
157
+ if (!parsed.ok)
158
+ return { text, unmapped: flat, changed: false, warnings: parsed.errors };
159
+ let model = parsed.model;
160
+ let changed = false;
161
+ for (const op of flat) {
162
+ const edits = editsFor(model, op, context);
163
+ if (edits === null) {
164
+ unmapped.push(op);
165
+ continue;
166
+ }
167
+ for (const edit of edits) {
168
+ try {
169
+ const result = applyDatabaseEdit(model, edit);
170
+ model = result.model;
171
+ changed = changed || result.changed;
172
+ warnings.push(...result.warnings);
173
+ }
174
+ catch (error) {
175
+ if (error instanceof DatabaseEditError) {
176
+ warnings.push(error.message);
177
+ unmapped.push(op);
178
+ }
179
+ else
180
+ throw error;
181
+ }
182
+ }
183
+ }
184
+ return { text: changed ? serializeDatabaseModel(model) : text, unmapped, changed, warnings };
185
+ };
186
+ //# sourceMappingURL=patch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../../src/diagram/database/patch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { DiagramOp } from "../ops.js";
2
+ import type { DiagramDocument } from "../schema.js";
3
+ export declare const placeDatabaseNodesOps: (doc: DiagramDocument, nodeIds: string[], gap?: number) => DiagramOp[];
4
+ //# sourceMappingURL=place.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"place.d.ts","sourceRoot":"","sources":["../../../src/diagram/database/place.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,KAAK,EAAE,eAAe,EAAS,MAAM,cAAc,CAAC;AAE3D,eAAO,MAAM,qBAAqB,GAAI,KAAK,eAAe,EAAE,SAAS,MAAM,EAAE,EAAE,YAAQ,KAAG,SAAS,EAgBlG,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { placeNewNodesOps } from "../patchInput.js";
2
+ export const placeDatabaseNodesOps = (doc, nodeIds, gap = 48) => {
3
+ const wanted = new Set(nodeIds);
4
+ if (wanted.size === 0)
5
+ return [];
6
+ const placed = doc.nodes.filter((node) => !wanted.has(node.id) && !node.hidden);
7
+ if (placed.length === 0)
8
+ return placeNewNodesOps(doc, nodeIds, gap);
9
+ const right = Math.max(...placed.map((node) => node.position.x + node.size.width));
10
+ const top = Math.min(...placed.map((node) => node.position.y));
11
+ let x = right + gap;
12
+ const moves = [];
13
+ for (const id of nodeIds) {
14
+ const node = doc.nodes.find((candidate) => candidate.id === id);
15
+ if (!node)
16
+ continue;
17
+ moves.push({ id, position: { x, y: top } });
18
+ x += node.size.width + gap;
19
+ }
20
+ return moves.length > 0 ? [{ op: "moveNodes", moves }] : [];
21
+ };
22
+ //# sourceMappingURL=place.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"place.js","sourceRoot":"","sources":["../../../src/diagram/database/place.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGpD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,GAAoB,EAAE,OAAiB,EAAE,GAAG,GAAG,EAAE,EAAe,EAAE;IACtG,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAChC,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACnF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,IAAI,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC;IACpB,MAAM,KAAK,GAA2C,EAAE,CAAC;IACzD,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAC5C,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;IAC7B,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9D,CAAC,CAAC"}
@@ -0,0 +1,50 @@
1
+ import type { LayoutRequest } from "../layout.js";
2
+ import type { ArrowType, Size } from "../schema.js";
3
+ import { type DatabaseCardinality, type DatabaseColumn, type DatabaseEntityKind, type DatabaseModel, type DatabaseRelationship, type DatabaseRelationshipKind } from "./model.js";
4
+ export declare const DB_NODE_TYPES: readonly ["db.table", "db.view", "db.collection"];
5
+ export type DatabaseNodeType = (typeof DB_NODE_TYPES)[number];
6
+ export declare const isDatabaseType: (type: string | undefined) => boolean;
7
+ export declare const databaseTypeForKind: (kind: DatabaseEntityKind) => DatabaseNodeType;
8
+ export declare const kindForDatabaseType: (type: string | undefined) => DatabaseEntityKind;
9
+ export declare const suggestDatabaseTypes: (query: string) => string[];
10
+ export interface DatabaseNodeData {
11
+ name: string;
12
+ schema?: string;
13
+ kind: DatabaseEntityKind;
14
+ columns: number;
15
+ columnInputs?: unknown;
16
+ }
17
+ export interface DatabaseEdgeData {
18
+ cardinality: DatabaseCardinality;
19
+ kind: DatabaseRelationshipKind;
20
+ sourceColumns: string[];
21
+ targetColumns: string[];
22
+ name?: string;
23
+ }
24
+ export declare const dbNodeData: (data: Record<string, unknown> | undefined) => DatabaseNodeData | undefined;
25
+ export declare const dbEdgeData: (data: Record<string, unknown> | undefined) => DatabaseEdgeData | undefined;
26
+ export declare const DB_HEADER_HEIGHT = 36;
27
+ export declare const DB_ROW_HEIGHT = 24;
28
+ export declare const DB_BOTTOM_PADDING = 6;
29
+ export declare const DB_MIN_WIDTH = 220;
30
+ export declare const DB_MAX_WIDTH = 420;
31
+ export declare const DB_COLLAPSED_ROWS = 0;
32
+ export declare const databaseEntitySize: (entity: {
33
+ name: string;
34
+ schema?: string;
35
+ columns: ReadonlyArray<Pick<DatabaseColumn, "name" | "dataType">>;
36
+ }, collapsed?: boolean) => Size;
37
+ export declare const databaseNodeHeight: (columnCount: number, collapsed?: boolean) => number;
38
+ export declare const isValidCardinality: (value: unknown) => value is DatabaseCardinality;
39
+ export declare const markersForCardinality: (cardinality: DatabaseCardinality, optionalSource?: boolean, optionalTarget?: boolean) => {
40
+ markerStart: ArrowType;
41
+ markerEnd: ArrowType;
42
+ };
43
+ export declare const markersForRelationship: (model: DatabaseModel, relationship: DatabaseRelationship) => {
44
+ markerStart: ArrowType;
45
+ markerEnd: ArrowType;
46
+ };
47
+ export declare const DATABASE_LAYOUT_REQUEST: LayoutRequest;
48
+ export declare const renderDatabaseVocabulary: () => string;
49
+ export declare const renderDatabaseOps: () => string;
50
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/diagram/database/types.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAA0B,KAAK,mBAAmB,EAAE,KAAK,cAAc,EAAuB,KAAK,kBAAkB,EAAE,KAAK,aAAa,EAAE,KAAK,oBAAoB,EAAE,KAAK,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE/N,eAAO,MAAM,aAAa,mDAAoD,CAAC;AAC/E,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,GAAG,SAAS,KAAG,OAA+E,CAAC;AAC1I,eAAO,MAAM,mBAAmB,GAAI,MAAM,kBAAkB,KAAG,gBAAgC,CAAC;AAChG,eAAO,MAAM,mBAAmB,GAAI,MAAM,MAAM,GAAG,SAAS,KAAG,kBAAuG,CAAC;AACvK,eAAO,MAAM,oBAAoB,GAAI,OAAO,MAAM,KAAG,MAAM,EAI1D,CAAC;AAIF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAGhB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAID,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,mBAAmB,CAAC;IACjC,IAAI,EAAE,wBAAwB,CAAC;IAC/B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,KAAG,gBAAgB,GAAG,SAGzF,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,KAAG,gBAAgB,GAAG,SAGzF,CAAC;AAIF,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,YAAY,MAAM,CAAC;AAChC,eAAO,MAAM,YAAY,MAAM,CAAC;AAChC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAMnC,eAAO,MAAM,kBAAkB,GAAI,QAAQ;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAA;CAAE,EAAE,mBAAiB,KAAG,IAQpK,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,aAAa,MAAM,EAAE,mBAAiB,KAAG,MAC8B,CAAC;AAI3G,eAAO,MAAM,kBAAkB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,mBAAiH,CAAC;AAI/K,eAAO,MAAM,qBAAqB,GAAI,aAAa,mBAAmB,EAAE,wBAAsB,EAAE,wBAAsB,KAAG;IAAE,WAAW,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAOtK,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,OAAO,aAAa,EAAE,cAAc,oBAAoB,KAAG;IAAE,WAAW,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAK/I,CAAC;AAMF,eAAO,MAAM,uBAAuB,EAAE,aAarC,CAAC;AAIF,eAAO,MAAM,wBAAwB,QAAO,MAW9B,CAAC;AAEf,eAAO,MAAM,iBAAiB,QAAO,MAgBvB,CAAC"}
@@ -0,0 +1,106 @@
1
+ // The database vocabulary on the diagram side: the db.* node types, what a
2
+ // node/edge of a database diagram carries in `data.db` (a SUMMARY — the
3
+ // columns themselves live in the model), the sizes the ERD renderer uses and
4
+ // the crow's-foot markers a cardinality maps to.
5
+ import { DATABASE_CARDINALITIES } from "./model.js";
6
+ export const DB_NODE_TYPES = ["db.table", "db.view", "db.collection"];
7
+ export const isDatabaseType = (type) => Boolean(type && DB_NODE_TYPES.includes(type));
8
+ export const databaseTypeForKind = (kind) => `db.${kind}`;
9
+ export const kindForDatabaseType = (type) => (type === "db.view" ? "view" : type === "db.collection" ? "collection" : "table");
10
+ export const suggestDatabaseTypes = (query) => {
11
+ const q = query.trim().toLowerCase();
12
+ const ranked = DB_NODE_TYPES.filter((type) => type.includes(q) || q.includes(type.slice(3)));
13
+ return ranked.length > 0 ? [...ranked] : [...DB_NODE_TYPES];
14
+ };
15
+ export const dbNodeData = (data) => {
16
+ const raw = data?.db;
17
+ return raw && typeof raw === "object" && typeof raw.name === "string" ? raw : undefined;
18
+ };
19
+ export const dbEdgeData = (data) => {
20
+ const raw = data?.db;
21
+ return raw && typeof raw === "object" && typeof raw.cardinality === "string" ? raw : undefined;
22
+ };
23
+ // --- geometry the ERD renderer and the exporter share ------------------------------
24
+ export const DB_HEADER_HEIGHT = 36;
25
+ export const DB_ROW_HEIGHT = 24;
26
+ export const DB_BOTTOM_PADDING = 6;
27
+ export const DB_MIN_WIDTH = 220;
28
+ export const DB_MAX_WIDTH = 420;
29
+ export const DB_COLLAPSED_ROWS = 0;
30
+ const textWidth = (text, perChar) => text.length * perChar;
31
+ // The size a table node gets when it is created or its columns change: wide
32
+ // enough for the longest "name type" row, one row per column.
33
+ export const databaseEntitySize = (entity, collapsed = false) => {
34
+ const longestName = Math.max(0, ...entity.columns.map((column) => textWidth(column.name, 7.2)));
35
+ const longestType = Math.max(0, ...entity.columns.map((column) => textWidth(column.dataType, 6.4)));
36
+ const header = textWidth(entity.schema ? `${entity.schema}.${entity.name}` : entity.name, 8) + 56;
37
+ const width = Math.min(DB_MAX_WIDTH, Math.max(DB_MIN_WIDTH, Math.ceil(Math.max(header, 44 + longestName + 24 + longestType + 16) / 10) * 10));
38
+ const rows = collapsed ? DB_COLLAPSED_ROWS : entity.columns.length;
39
+ const height = DB_HEADER_HEIGHT + (rows > 0 ? rows * DB_ROW_HEIGHT + DB_BOTTOM_PADDING : 0);
40
+ return { width, height };
41
+ };
42
+ export const databaseNodeHeight = (columnCount, collapsed = false) => DB_HEADER_HEIGHT + (!collapsed && columnCount > 0 ? columnCount * DB_ROW_HEIGHT + DB_BOTTOM_PADDING : 0);
43
+ // --- cardinality → crow's-foot markers ----------------------------------------------
44
+ export const isValidCardinality = (value) => typeof value === "string" && DATABASE_CARDINALITIES.includes(value);
45
+ // The marker at each end from the cardinality (source:target); an end whose
46
+ // columns are nullable reads as optional (the "zero" variants).
47
+ export const markersForCardinality = (cardinality, optionalSource = false, optionalTarget = false) => {
48
+ const [sourceSide, targetSide] = cardinality.split(":");
49
+ const marker = (many, optional) => (many ? (optional ? "zeroMany" : "many") : optional ? "zeroOne" : "one");
50
+ return {
51
+ markerStart: marker(sourceSide !== "1", optionalSource),
52
+ markerEnd: marker(targetSide !== "1", optionalTarget),
53
+ };
54
+ };
55
+ export const markersForRelationship = (model, relationship) => {
56
+ const source = model.entities.find((entity) => entity.id === relationship.source.entityId);
57
+ const sourceOptional = Boolean(source && relationship.source.columnIds.length > 0 && relationship.source.columnIds.every((id) => source.columns.find((column) => column.id === id)?.nullable));
58
+ // A nullable FK means the parent is optional for the child: the "zero" sits on the target end.
59
+ return markersForCardinality(relationship.cardinality, false, sourceOptional);
60
+ };
61
+ // --- layout -----------------------------------------------------------------------
62
+ // ERD layout: layered left-to-right along the relationship graph, generous
63
+ // gaps (tables are tall), ends floating so the router picks the nearer side.
64
+ export const DATABASE_LAYOUT_REQUEST = {
65
+ algorithm: "layered",
66
+ direction: "RIGHT",
67
+ respectHandles: false,
68
+ spacing: { node: 40, layer: 110 },
69
+ extraOptions: {
70
+ // Tables that are not related to each other are separate components:
71
+ // pack them into rows wider than tall instead of one tall column.
72
+ "elk.separateConnectedComponents": "true",
73
+ "elk.layered.compaction.connectedComponents": "true",
74
+ "elk.aspectRatio": "2.8",
75
+ "elk.spacing.componentComponent": "60",
76
+ },
77
+ };
78
+ // --- the vocabulary as text (ops reference, AI prompt) ----------------------------------
79
+ export const renderDatabaseVocabulary = () => [
80
+ 'DATABASE diagrams (source.format = "database"; the text is the JSON database model) are ENTITY-RELATIONSHIP diagrams:',
81
+ " db.table — a table (columns = rows of the box), db.view — a view, db.collection — a MongoDB collection.",
82
+ "The MODEL is the truth: tables, columns (name, dataType, nullable, primaryKey, unique, defaultValue, autoIncrement, comment),",
83
+ "indexes and relationships (source = the referencing/child side, target = the referenced/parent side; cardinality source:target,",
84
+ '"N:1" for a plain foreign key, "1:1", "1:N", "N:M"). Nodes only hold positions and visibility; edges are the relationships.',
85
+ "Refer to tables by name (\"users\", \"public.users\") and to columns as \"table.column\" (\"orders.user_id\").",
86
+ "Prefer the DATABASE OPS below over addNode/addEdge: they edit the schema by meaning and keep ids stable.",
87
+ 'A new table needs `columns`; a column needs `name` and `dataType` (use the database\'s own type names: "uuid", "varchar(120)", "timestamp").',
88
+ "Never invent relationships a database does not have — on MongoDB, relationships are manual (kind \"manual\").",
89
+ ].join("\n");
90
+ export const renderDatabaseOps = () => [
91
+ '{"op":"addTable","table":{"name","schema"?,"kind"?:"table"|"view"|"collection","columns":[{"name","dataType","primaryKey"?,"nullable"?,"unique"?,"defaultValue"?,"autoIncrement"?,"comment"?}],"comment"?},"position"?:{"x","y"}}',
92
+ '{"op":"renameTable","table","name","schema"?}',
93
+ '{"op":"removeTable","table"} // also removes its relationships',
94
+ '{"op":"setTableComment","table","comment"}',
95
+ '{"op":"addColumn","table","column":{"name","dataType",...},"after"?:"<column>"}',
96
+ '{"op":"alterColumn","table","column","changes":{"name"?,"dataType"?,"nullable"?,"primaryKey"?,"unique"?,"defaultValue"?,"autoIncrement"?,"comment"?}}',
97
+ '{"op":"removeColumn","table","column"}',
98
+ '{"op":"setPrimaryKey","table","columns":["id"]}',
99
+ '{"op":"addRelationship","source":"orders.user_id","target":"users.id","cardinality"?:"N:1"|"1:1"|"1:N"|"N:M","name"?,"label"?} // source = child (FK) side',
100
+ '{"op":"updateRelationship","relationship","changes":{"cardinality"?,"label"?,"name"?,"source"?,"target"?}}',
101
+ '{"op":"removeRelationship","relationship"}',
102
+ '{"op":"hideTable","table"} / {"op":"showTable","table"} // visibility on the canvas only',
103
+ "Column-level references use \"table.column\"; several columns: {\"table\":\"orders\",\"columns\":[\"a\",\"b\"]}.",
104
+ "moveNode / relayout apply as on any diagram; group/ungroup/reparent are not available on database diagrams.",
105
+ ].join("\n");
106
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/diagram/database/types.ts"],"names":[],"mappings":"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"}
@@ -16,4 +16,5 @@ export * from "./layout.js";
16
16
  export * from "./routing/index.js";
17
17
  export * from "./mermaid/index.js";
18
18
  export * from "./bpmn/index.js";
19
+ export * from "./database/index.js";
19
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,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"}
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"}
@@ -22,4 +22,5 @@ export * from "./layout.js";
22
22
  export * from "./routing/index.js";
23
23
  export * from "./mermaid/index.js";
24
24
  export * from "./bpmn/index.js";
25
+ export * from "./database/index.js";
25
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
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"}
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"}
@@ -52,6 +52,7 @@ export interface LayoutRequest {
52
52
  node?: number;
53
53
  layer?: number;
54
54
  };
55
+ extraOptions?: Record<string, string>;
55
56
  }
56
57
  interface ResolvedRequest {
57
58
  algorithm: LayoutAlgorithm;
@@ -1 +1 @@
1
- {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/diagram/layout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/diagram/layout.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,8 @@ const resolveRequest = (request) => ({
28
28
  spacing: { node: request.spacing?.node ?? 48, layer: request.spacing?.layer ?? 80 },
29
29
  });
30
30
  export const CONTAINER_PADDING = { top: 48, left: 24, bottom: 24, right: 24 };
31
- export const layoutOptionsFor = (request) => {
31
+ export const layoutOptionsFor = (request) => ({ ...baseLayoutOptions(request), ...(request.extraOptions ?? {}) });
32
+ const baseLayoutOptions = (request) => {
32
33
  const r = resolveRequest(request);
33
34
  const common = {
34
35
  "elk.hierarchyHandling": "INCLUDE_CHILDREN",