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.
Files changed (402) hide show
  1. package/dist/ai/index.d.ts +1 -1
  2. package/dist/ai/index.d.ts.map +1 -1
  3. package/dist/ai/index.js.map +1 -1
  4. package/dist/ai/outputSchemas.d.ts +3 -0
  5. package/dist/ai/outputSchemas.d.ts.map +1 -1
  6. package/dist/ai/outputSchemas.js +1 -0
  7. package/dist/ai/outputSchemas.js.map +1 -1
  8. package/dist/ai/parse/diagram.d.ts.map +1 -1
  9. package/dist/ai/parse/diagram.js +6 -3
  10. package/dist/ai/parse/diagram.js.map +1 -1
  11. package/dist/ai/prompts/diagram.d.ts +7 -3
  12. package/dist/ai/prompts/diagram.d.ts.map +1 -1
  13. package/dist/ai/prompts/diagram.js +61 -5
  14. package/dist/ai/prompts/diagram.js.map +1 -1
  15. package/dist/ai/types.d.ts +6 -0
  16. package/dist/ai/types.d.ts.map +1 -1
  17. package/dist/diagram/bpmn/derive.d.ts +74 -0
  18. package/dist/diagram/bpmn/derive.d.ts.map +1 -0
  19. package/dist/diagram/bpmn/derive.js +392 -0
  20. package/dist/diagram/bpmn/derive.js.map +1 -0
  21. package/dist/diagram/bpmn/index.d.ts +7 -0
  22. package/dist/diagram/bpmn/index.d.ts.map +1 -0
  23. package/dist/diagram/bpmn/index.js +12 -0
  24. package/dist/diagram/bpmn/index.js.map +1 -0
  25. package/dist/diagram/bpmn/patch.d.ts +14 -0
  26. package/dist/diagram/bpmn/patch.d.ts.map +1 -0
  27. package/dist/diagram/bpmn/patch.js +770 -0
  28. package/dist/diagram/bpmn/patch.js.map +1 -0
  29. package/dist/diagram/bpmn/place.d.ts +4 -0
  30. package/dist/diagram/bpmn/place.d.ts.map +1 -0
  31. package/dist/diagram/bpmn/place.js +65 -0
  32. package/dist/diagram/bpmn/place.js.map +1 -0
  33. package/dist/diagram/bpmn/serialize.d.ts +12 -0
  34. package/dist/diagram/bpmn/serialize.d.ts.map +1 -0
  35. package/dist/diagram/bpmn/serialize.js +292 -0
  36. package/dist/diagram/bpmn/serialize.js.map +1 -0
  37. package/dist/diagram/bpmn/types.d.ts +42 -0
  38. package/dist/diagram/bpmn/types.d.ts.map +1 -0
  39. package/dist/diagram/bpmn/types.js +84 -0
  40. package/dist/diagram/bpmn/types.js.map +1 -0
  41. package/dist/diagram/bpmn/xml.d.ts +60 -0
  42. package/dist/diagram/bpmn/xml.d.ts.map +1 -0
  43. package/dist/diagram/bpmn/xml.js +342 -0
  44. package/dist/diagram/bpmn/xml.js.map +1 -0
  45. package/dist/diagram/componentCatalog.d.ts +3 -0
  46. package/dist/diagram/componentCatalog.d.ts.map +1 -1
  47. package/dist/diagram/componentCatalog.js +5 -1
  48. package/dist/diagram/componentCatalog.js.map +1 -1
  49. package/dist/diagram/database/derive.d.ts +14 -0
  50. package/dist/diagram/database/derive.d.ts.map +1 -0
  51. package/dist/diagram/database/derive.js +114 -0
  52. package/dist/diagram/database/derive.js.map +1 -0
  53. package/dist/diagram/database/diff.d.ts +48 -0
  54. package/dist/diagram/database/diff.d.ts.map +1 -0
  55. package/dist/diagram/database/diff.js +109 -0
  56. package/dist/diagram/database/diff.js.map +1 -0
  57. package/dist/diagram/database/edit.d.ts +113 -0
  58. package/dist/diagram/database/edit.d.ts.map +1 -0
  59. package/dist/diagram/database/edit.js +359 -0
  60. package/dist/diagram/database/edit.js.map +1 -0
  61. package/dist/diagram/database/fromSchema.d.ts +12 -0
  62. package/dist/diagram/database/fromSchema.d.ts.map +1 -0
  63. package/dist/diagram/database/fromSchema.js +182 -0
  64. package/dist/diagram/database/fromSchema.js.map +1 -0
  65. package/dist/diagram/database/index.d.ts +9 -0
  66. package/dist/diagram/database/index.d.ts.map +1 -0
  67. package/dist/diagram/database/index.js +14 -0
  68. package/dist/diagram/database/index.js.map +1 -0
  69. package/dist/diagram/database/model.d.ts +93 -0
  70. package/dist/diagram/database/model.d.ts.map +1 -0
  71. package/dist/diagram/database/model.js +294 -0
  72. package/dist/diagram/database/model.js.map +1 -0
  73. package/dist/diagram/database/patch.d.ts +14 -0
  74. package/dist/diagram/database/patch.d.ts.map +1 -0
  75. package/dist/diagram/database/patch.js +186 -0
  76. package/dist/diagram/database/patch.js.map +1 -0
  77. package/dist/diagram/database/place.d.ts +4 -0
  78. package/dist/diagram/database/place.d.ts.map +1 -0
  79. package/dist/diagram/database/place.js +22 -0
  80. package/dist/diagram/database/place.js.map +1 -0
  81. package/dist/diagram/database/types.d.ts +50 -0
  82. package/dist/diagram/database/types.d.ts.map +1 -0
  83. package/dist/diagram/database/types.js +106 -0
  84. package/dist/diagram/database/types.js.map +1 -0
  85. package/dist/diagram/elkGraph.d.ts +1 -3
  86. package/dist/diagram/elkGraph.d.ts.map +1 -1
  87. package/dist/diagram/elkGraph.js +1 -0
  88. package/dist/diagram/elkGraph.js.map +1 -1
  89. package/dist/diagram/fixtures.d.ts +10 -0
  90. package/dist/diagram/fixtures.d.ts.map +1 -0
  91. package/dist/diagram/fixtures.js +113 -0
  92. package/dist/diagram/fixtures.js.map +1 -0
  93. package/dist/diagram/geometry.d.ts +27 -0
  94. package/dist/diagram/geometry.d.ts.map +1 -0
  95. package/dist/diagram/geometry.js +122 -0
  96. package/dist/diagram/geometry.js.map +1 -0
  97. package/dist/diagram/history.d.ts +36 -0
  98. package/dist/diagram/history.d.ts.map +1 -0
  99. package/dist/diagram/history.js +54 -0
  100. package/dist/diagram/history.js.map +1 -0
  101. package/dist/diagram/ids.d.ts +5 -0
  102. package/dist/diagram/ids.d.ts.map +1 -0
  103. package/dist/diagram/ids.js +52 -0
  104. package/dist/diagram/ids.js.map +1 -0
  105. package/dist/diagram/index.d.ts +15 -2
  106. package/dist/diagram/index.d.ts.map +1 -1
  107. package/dist/diagram/index.js +21 -8
  108. package/dist/diagram/index.js.map +1 -1
  109. package/dist/diagram/layout.d.ts +108 -0
  110. package/dist/diagram/layout.d.ts.map +1 -0
  111. package/dist/diagram/layout.js +357 -0
  112. package/dist/diagram/layout.js.map +1 -0
  113. package/dist/diagram/mermaid/derive.d.ts +55 -0
  114. package/dist/diagram/mermaid/derive.d.ts.map +1 -0
  115. package/dist/diagram/mermaid/derive.js +343 -0
  116. package/dist/diagram/mermaid/derive.js.map +1 -0
  117. package/dist/diagram/mermaid/index.d.ts +8 -0
  118. package/dist/diagram/mermaid/index.d.ts.map +1 -0
  119. package/dist/diagram/mermaid/index.js +24 -0
  120. package/dist/diagram/mermaid/index.js.map +1 -0
  121. package/dist/diagram/mermaid/parse.d.ts +96 -0
  122. package/dist/diagram/mermaid/parse.d.ts.map +1 -0
  123. package/dist/diagram/mermaid/parse.js +672 -0
  124. package/dist/diagram/mermaid/parse.js.map +1 -0
  125. package/dist/diagram/mermaid/patch.d.ts +16 -0
  126. package/dist/diagram/mermaid/patch.d.ts.map +1 -0
  127. package/dist/diagram/mermaid/patch.js +463 -0
  128. package/dist/diagram/mermaid/patch.js.map +1 -0
  129. package/dist/diagram/mermaid/serialize.d.ts +14 -0
  130. package/dist/diagram/mermaid/serialize.d.ts.map +1 -0
  131. package/dist/diagram/mermaid/serialize.js +125 -0
  132. package/dist/diagram/mermaid/serialize.js.map +1 -0
  133. package/dist/diagram/mermaid/shapes.d.ts +11 -0
  134. package/dist/diagram/mermaid/shapes.d.ts.map +1 -0
  135. package/dist/diagram/mermaid/shapes.js +320 -0
  136. package/dist/diagram/mermaid/shapes.js.map +1 -0
  137. package/dist/diagram/migrations.d.ts +1 -0
  138. package/dist/diagram/migrations.d.ts.map +1 -1
  139. package/dist/diagram/migrations.js +7 -2
  140. package/dist/diagram/migrations.js.map +1 -1
  141. package/dist/diagram/normalize.d.ts +9 -1
  142. package/dist/diagram/normalize.d.ts.map +1 -1
  143. package/dist/diagram/normalize.js +194 -0
  144. package/dist/diagram/normalize.js.map +1 -1
  145. package/dist/diagram/ops.d.ts +146 -0
  146. package/dist/diagram/ops.d.ts.map +1 -0
  147. package/dist/diagram/ops.js +865 -0
  148. package/dist/diagram/ops.js.map +1 -0
  149. package/dist/diagram/opsReference.d.ts +3 -0
  150. package/dist/diagram/opsReference.d.ts.map +1 -0
  151. package/dist/diagram/opsReference.js +60 -0
  152. package/dist/diagram/opsReference.js.map +1 -0
  153. package/dist/diagram/patchInput.d.ts +257 -0
  154. package/dist/diagram/patchInput.d.ts.map +1 -0
  155. package/dist/diagram/patchInput.js +1024 -0
  156. package/dist/diagram/patchInput.js.map +1 -0
  157. package/dist/diagram/routing/batch.d.ts +45 -0
  158. package/dist/diagram/routing/batch.d.ts.map +1 -0
  159. package/dist/diagram/routing/batch.js +136 -0
  160. package/dist/diagram/routing/batch.js.map +1 -0
  161. package/dist/diagram/routing/curves.d.ts +7 -0
  162. package/dist/diagram/routing/curves.d.ts.map +1 -0
  163. package/dist/diagram/routing/curves.js +120 -0
  164. package/dist/diagram/routing/curves.js.map +1 -0
  165. package/dist/diagram/routing/grid.d.ts +15 -0
  166. package/dist/diagram/routing/grid.d.ts.map +1 -0
  167. package/dist/diagram/routing/grid.js +245 -0
  168. package/dist/diagram/routing/grid.js.map +1 -0
  169. package/dist/diagram/routing/index.d.ts +10 -0
  170. package/dist/diagram/routing/index.d.ts.map +1 -0
  171. package/dist/diagram/routing/index.js +10 -0
  172. package/dist/diagram/routing/index.js.map +1 -0
  173. package/dist/diagram/routing/legacy.d.ts +6 -0
  174. package/dist/diagram/routing/legacy.d.ts.map +1 -0
  175. package/dist/diagram/routing/legacy.js +27 -0
  176. package/dist/diagram/routing/legacy.js.map +1 -0
  177. package/dist/diagram/routing/nudge.d.ts +4 -0
  178. package/dist/diagram/routing/nudge.d.ts.map +1 -0
  179. package/dist/diagram/routing/nudge.js +96 -0
  180. package/dist/diagram/routing/nudge.js.map +1 -0
  181. package/dist/diagram/routing/orthogonal.d.ts +6 -0
  182. package/dist/diagram/routing/orthogonal.d.ts.map +1 -0
  183. package/dist/diagram/routing/orthogonal.js +56 -0
  184. package/dist/diagram/routing/orthogonal.js.map +1 -0
  185. package/dist/diagram/routing/path.d.ts +16 -0
  186. package/dist/diagram/routing/path.d.ts.map +1 -0
  187. package/dist/diagram/routing/path.js +128 -0
  188. package/dist/diagram/routing/path.js.map +1 -0
  189. package/dist/diagram/routing/sides.d.ts +22 -0
  190. package/dist/diagram/routing/sides.d.ts.map +1 -0
  191. package/dist/diagram/routing/sides.js +74 -0
  192. package/dist/diagram/routing/sides.js.map +1 -0
  193. package/dist/diagram/routing/types.d.ts +46 -0
  194. package/dist/diagram/routing/types.d.ts.map +1 -0
  195. package/dist/diagram/routing/types.js +11 -0
  196. package/dist/diagram/routing/types.js.map +1 -0
  197. package/dist/diagram/schema.d.ts +71 -38
  198. package/dist/diagram/schema.d.ts.map +1 -1
  199. package/dist/diagram/schema.js +62 -8
  200. package/dist/diagram/schema.js.map +1 -1
  201. package/dist/diagram/styleInput.d.ts +41 -0
  202. package/dist/diagram/styleInput.d.ts.map +1 -0
  203. package/dist/diagram/styleInput.js +105 -0
  204. package/dist/diagram/styleInput.js.map +1 -0
  205. package/dist/diagram/views.d.ts +22 -0
  206. package/dist/diagram/views.d.ts.map +1 -0
  207. package/dist/diagram/views.js +91 -0
  208. package/dist/diagram/views.js.map +1 -0
  209. package/dist/host/db/introspection/index.d.ts +9 -0
  210. package/dist/host/db/introspection/index.d.ts.map +1 -0
  211. package/dist/host/db/introspection/index.js +35 -0
  212. package/dist/host/db/introspection/index.js.map +1 -0
  213. package/dist/host/db/introspection/mongo.d.ts +7 -0
  214. package/dist/host/db/introspection/mongo.d.ts.map +1 -0
  215. package/dist/host/db/introspection/mongo.js +183 -0
  216. package/dist/host/db/introspection/mongo.js.map +1 -0
  217. package/dist/host/db/introspection/mssql.d.ts +6 -0
  218. package/dist/host/db/introspection/mssql.d.ts.map +1 -0
  219. package/dist/host/db/introspection/mssql.js +211 -0
  220. package/dist/host/db/introspection/mssql.js.map +1 -0
  221. package/dist/host/db/introspection/mysql.d.ts +5 -0
  222. package/dist/host/db/introspection/mysql.d.ts.map +1 -0
  223. package/dist/host/db/introspection/mysql.js +163 -0
  224. package/dist/host/db/introspection/mysql.js.map +1 -0
  225. package/dist/host/db/introspection/oracle.d.ts +12 -0
  226. package/dist/host/db/introspection/oracle.d.ts.map +1 -0
  227. package/dist/host/db/introspection/oracle.js +225 -0
  228. package/dist/host/db/introspection/oracle.js.map +1 -0
  229. package/dist/host/db/introspection/postgres.d.ts +5 -0
  230. package/dist/host/db/introspection/postgres.d.ts.map +1 -0
  231. package/dist/host/db/introspection/postgres.js +172 -0
  232. package/dist/host/db/introspection/postgres.js.map +1 -0
  233. package/dist/host/db/introspection/shared.d.ts +29 -0
  234. package/dist/host/db/introspection/shared.d.ts.map +1 -0
  235. package/dist/host/db/introspection/shared.js +119 -0
  236. package/dist/host/db/introspection/shared.js.map +1 -0
  237. package/dist/host/db/introspection/types.d.ts +58 -0
  238. package/dist/host/db/introspection/types.d.ts.map +1 -0
  239. package/dist/host/db/introspection/types.js +6 -0
  240. package/dist/host/db/introspection/types.js.map +1 -0
  241. package/dist/host/db/mongoAdapter.d.ts +1 -0
  242. package/dist/host/db/mongoAdapter.d.ts.map +1 -1
  243. package/dist/host/db/mongoAdapter.js +13 -0
  244. package/dist/host/db/mongoAdapter.js.map +1 -1
  245. package/dist/host/db/mssqlAdapter.d.ts +1 -0
  246. package/dist/host/db/mssqlAdapter.d.ts.map +1 -1
  247. package/dist/host/db/mssqlAdapter.js +3 -1
  248. package/dist/host/db/mssqlAdapter.js.map +1 -1
  249. package/dist/host/db/mysqlAdapter.d.ts +1 -0
  250. package/dist/host/db/mysqlAdapter.d.ts.map +1 -1
  251. package/dist/host/db/mysqlAdapter.js +11 -0
  252. package/dist/host/db/mysqlAdapter.js.map +1 -1
  253. package/dist/host/db/oracleAdapter.d.ts +1 -0
  254. package/dist/host/db/oracleAdapter.d.ts.map +1 -1
  255. package/dist/host/db/oracleAdapter.js +22 -0
  256. package/dist/host/db/oracleAdapter.js.map +1 -1
  257. package/dist/host/db/postgresAdapter.d.ts +1 -0
  258. package/dist/host/db/postgresAdapter.d.ts.map +1 -1
  259. package/dist/host/db/postgresAdapter.js +13 -0
  260. package/dist/host/db/postgresAdapter.js.map +1 -1
  261. package/dist/host/db/queryExecutor.d.ts +2 -1
  262. package/dist/host/db/queryExecutor.d.ts.map +1 -1
  263. package/dist/host/db/queryExecutor.js +1 -1
  264. package/dist/host/db/queryExecutor.js.map +1 -1
  265. package/dist/host/index.d.ts +7 -0
  266. package/dist/host/index.d.ts.map +1 -1
  267. package/dist/host/index.js +9 -0
  268. package/dist/host/index.js.map +1 -1
  269. package/dist-cjs/ai/index.js.map +1 -1
  270. package/dist-cjs/ai/outputSchemas.js +1 -0
  271. package/dist-cjs/ai/outputSchemas.js.map +1 -1
  272. package/dist-cjs/ai/parse/diagram.js +6 -3
  273. package/dist-cjs/ai/parse/diagram.js.map +1 -1
  274. package/dist-cjs/ai/prompts/diagram.js +61 -5
  275. package/dist-cjs/ai/prompts/diagram.js.map +1 -1
  276. package/dist-cjs/diagram/bpmn/derive.js +398 -0
  277. package/dist-cjs/diagram/bpmn/derive.js.map +1 -0
  278. package/dist-cjs/diagram/bpmn/index.js +31 -0
  279. package/dist-cjs/diagram/bpmn/index.js.map +1 -0
  280. package/dist-cjs/diagram/bpmn/patch.js +774 -0
  281. package/dist-cjs/diagram/bpmn/patch.js.map +1 -0
  282. package/dist-cjs/diagram/bpmn/place.js +69 -0
  283. package/dist-cjs/diagram/bpmn/place.js.map +1 -0
  284. package/dist-cjs/diagram/bpmn/serialize.js +299 -0
  285. package/dist-cjs/diagram/bpmn/serialize.js.map +1 -0
  286. package/dist-cjs/diagram/bpmn/types.js +99 -0
  287. package/dist-cjs/diagram/bpmn/types.js.map +1 -0
  288. package/dist-cjs/diagram/bpmn/xml.js +367 -0
  289. package/dist-cjs/diagram/bpmn/xml.js.map +1 -0
  290. package/dist-cjs/diagram/componentCatalog.js +5 -1
  291. package/dist-cjs/diagram/componentCatalog.js.map +1 -1
  292. package/dist-cjs/diagram/database/derive.js +119 -0
  293. package/dist-cjs/diagram/database/derive.js.map +1 -0
  294. package/dist-cjs/diagram/database/diff.js +115 -0
  295. package/dist-cjs/diagram/database/diff.js.map +1 -0
  296. package/dist-cjs/diagram/database/edit.js +366 -0
  297. package/dist-cjs/diagram/database/edit.js.map +1 -0
  298. package/dist-cjs/diagram/database/fromSchema.js +188 -0
  299. package/dist-cjs/diagram/database/fromSchema.js.map +1 -0
  300. package/dist-cjs/diagram/database/index.js +32 -0
  301. package/dist-cjs/diagram/database/index.js.map +1 -0
  302. package/dist-cjs/diagram/database/model.js +311 -0
  303. package/dist-cjs/diagram/database/model.js.map +1 -0
  304. package/dist-cjs/diagram/database/patch.js +190 -0
  305. package/dist-cjs/diagram/database/patch.js.map +1 -0
  306. package/dist-cjs/diagram/database/place.js +26 -0
  307. package/dist-cjs/diagram/database/place.js.map +1 -0
  308. package/dist-cjs/diagram/database/types.js +122 -0
  309. package/dist-cjs/diagram/database/types.js.map +1 -0
  310. package/dist-cjs/diagram/elkGraph.js +1 -0
  311. package/dist-cjs/diagram/elkGraph.js.map +1 -1
  312. package/dist-cjs/diagram/fixtures.js +117 -0
  313. package/dist-cjs/diagram/fixtures.js.map +1 -0
  314. package/dist-cjs/diagram/geometry.js +143 -0
  315. package/dist-cjs/diagram/geometry.js.map +1 -0
  316. package/dist-cjs/diagram/history.js +65 -0
  317. package/dist-cjs/diagram/history.js.map +1 -0
  318. package/dist-cjs/diagram/ids.js +58 -0
  319. package/dist-cjs/diagram/ids.js.map +1 -0
  320. package/dist-cjs/diagram/index.js +24 -8
  321. package/dist-cjs/diagram/index.js.map +1 -1
  322. package/dist-cjs/diagram/layout.js +365 -0
  323. package/dist-cjs/diagram/layout.js.map +1 -0
  324. package/dist-cjs/diagram/mermaid/derive.js +353 -0
  325. package/dist-cjs/diagram/mermaid/derive.js.map +1 -0
  326. package/dist-cjs/diagram/mermaid/index.js +44 -0
  327. package/dist-cjs/diagram/mermaid/index.js.map +1 -0
  328. package/dist-cjs/diagram/mermaid/parse.js +681 -0
  329. package/dist-cjs/diagram/mermaid/parse.js.map +1 -0
  330. package/dist-cjs/diagram/mermaid/patch.js +468 -0
  331. package/dist-cjs/diagram/mermaid/patch.js.map +1 -0
  332. package/dist-cjs/diagram/mermaid/serialize.js +133 -0
  333. package/dist-cjs/diagram/mermaid/serialize.js.map +1 -0
  334. package/dist-cjs/diagram/mermaid/shapes.js +327 -0
  335. package/dist-cjs/diagram/mermaid/shapes.js.map +1 -0
  336. package/dist-cjs/diagram/migrations.js +9 -3
  337. package/dist-cjs/diagram/migrations.js.map +1 -1
  338. package/dist-cjs/diagram/normalize.js +198 -1
  339. package/dist-cjs/diagram/normalize.js.map +1 -1
  340. package/dist-cjs/diagram/ops.js +871 -0
  341. package/dist-cjs/diagram/ops.js.map +1 -0
  342. package/dist-cjs/diagram/opsReference.js +64 -0
  343. package/dist-cjs/diagram/opsReference.js.map +1 -0
  344. package/dist-cjs/diagram/patchInput.js +1039 -0
  345. package/dist-cjs/diagram/patchInput.js.map +1 -0
  346. package/dist-cjs/diagram/routing/batch.js +142 -0
  347. package/dist-cjs/diagram/routing/batch.js.map +1 -0
  348. package/dist-cjs/diagram/routing/curves.js +127 -0
  349. package/dist-cjs/diagram/routing/curves.js.map +1 -0
  350. package/dist-cjs/diagram/routing/grid.js +250 -0
  351. package/dist-cjs/diagram/routing/grid.js.map +1 -0
  352. package/dist-cjs/diagram/routing/index.js +29 -0
  353. package/dist-cjs/diagram/routing/index.js.map +1 -0
  354. package/dist-cjs/diagram/routing/legacy.js +32 -0
  355. package/dist-cjs/diagram/routing/legacy.js.map +1 -0
  356. package/dist-cjs/diagram/routing/nudge.js +100 -0
  357. package/dist-cjs/diagram/routing/nudge.js.map +1 -0
  358. package/dist-cjs/diagram/routing/orthogonal.js +62 -0
  359. package/dist-cjs/diagram/routing/orthogonal.js.map +1 -0
  360. package/dist-cjs/diagram/routing/path.js +137 -0
  361. package/dist-cjs/diagram/routing/path.js.map +1 -0
  362. package/dist-cjs/diagram/routing/sides.js +82 -0
  363. package/dist-cjs/diagram/routing/sides.js.map +1 -0
  364. package/dist-cjs/diagram/routing/types.js +15 -0
  365. package/dist-cjs/diagram/routing/types.js.map +1 -0
  366. package/dist-cjs/diagram/schema.js +64 -9
  367. package/dist-cjs/diagram/schema.js.map +1 -1
  368. package/dist-cjs/diagram/styleInput.js +113 -0
  369. package/dist-cjs/diagram/styleInput.js.map +1 -0
  370. package/dist-cjs/diagram/views.js +96 -0
  371. package/dist-cjs/diagram/views.js.map +1 -0
  372. package/dist-cjs/host/db/introspection/index.js +59 -0
  373. package/dist-cjs/host/db/introspection/index.js.map +1 -0
  374. package/dist-cjs/host/db/introspection/mongo.js +189 -0
  375. package/dist-cjs/host/db/introspection/mongo.js.map +1 -0
  376. package/dist-cjs/host/db/introspection/mssql.js +216 -0
  377. package/dist-cjs/host/db/introspection/mssql.js.map +1 -0
  378. package/dist-cjs/host/db/introspection/mysql.js +167 -0
  379. package/dist-cjs/host/db/introspection/mysql.js.map +1 -0
  380. package/dist-cjs/host/db/introspection/oracle.js +230 -0
  381. package/dist-cjs/host/db/introspection/oracle.js.map +1 -0
  382. package/dist-cjs/host/db/introspection/postgres.js +176 -0
  383. package/dist-cjs/host/db/introspection/postgres.js.map +1 -0
  384. package/dist-cjs/host/db/introspection/shared.js +133 -0
  385. package/dist-cjs/host/db/introspection/shared.js.map +1 -0
  386. package/dist-cjs/host/db/introspection/types.js +7 -0
  387. package/dist-cjs/host/db/introspection/types.js.map +1 -0
  388. package/dist-cjs/host/db/mongoAdapter.js +15 -1
  389. package/dist-cjs/host/db/mongoAdapter.js.map +1 -1
  390. package/dist-cjs/host/db/mssqlAdapter.js +5 -2
  391. package/dist-cjs/host/db/mssqlAdapter.js.map +1 -1
  392. package/dist-cjs/host/db/mysqlAdapter.js +13 -1
  393. package/dist-cjs/host/db/mysqlAdapter.js.map +1 -1
  394. package/dist-cjs/host/db/oracleAdapter.js +24 -1
  395. package/dist-cjs/host/db/oracleAdapter.js.map +1 -1
  396. package/dist-cjs/host/db/postgresAdapter.js +15 -1
  397. package/dist-cjs/host/db/postgresAdapter.js.map +1 -1
  398. package/dist-cjs/host/db/queryExecutor.js +5 -4
  399. package/dist-cjs/host/db/queryExecutor.js.map +1 -1
  400. package/dist-cjs/host/index.js +24 -1
  401. package/dist-cjs/host/index.js.map +1 -1
  402. package/package.json +1 -1
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+ // Canonical node/edge ops → the database model. A generic MCP client or the
3
+ // canvas may still say addNode {type:"db.table"} / removeNode / addEdge; here
4
+ // they land on the model as the semantic edits they mean, so the JSON stays
5
+ // the truth. Presentation ops (move, resize, hide, collapse, style, reorder)
6
+ // are the diagram's own business and change nothing here.
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.patchDatabaseSource = void 0;
9
+ const edit_js_1 = require("./edit.js");
10
+ const model_js_1 = require("./model.js");
11
+ const types_js_1 = require("./types.js");
12
+ const flatten = (ops, out) => {
13
+ for (const op of ops) {
14
+ if (op.op === "batch")
15
+ flatten(op.ops, out);
16
+ else
17
+ out.push(op);
18
+ }
19
+ };
20
+ const columnInputs = (value) => {
21
+ if (!Array.isArray(value))
22
+ return undefined;
23
+ return value
24
+ .filter((item) => Boolean(item) && typeof item === "object")
25
+ .filter((item) => typeof item.name === "string")
26
+ .map((item) => ({
27
+ ...(typeof item.id === "string" ? { id: item.id } : {}),
28
+ name: String(item.name),
29
+ dataType: typeof item.dataType === "string" ? item.dataType : typeof item.type === "string" ? item.type : "",
30
+ ...(typeof item.nullable === "boolean" ? { nullable: item.nullable } : {}),
31
+ ...(typeof item.primaryKey === "boolean" ? { primaryKey: item.primaryKey } : {}),
32
+ ...(typeof item.unique === "boolean" ? { unique: item.unique } : {}),
33
+ ...(item.defaultValue !== undefined && item.defaultValue !== null ? { defaultValue: String(item.defaultValue) } : {}),
34
+ ...(typeof item.autoIncrement === "boolean" ? { autoIncrement: item.autoIncrement } : {}),
35
+ ...(typeof item.comment === "string" ? { comment: item.comment } : {}),
36
+ }));
37
+ };
38
+ const editsForAddNode = (node) => {
39
+ const raw = (node.data?.db ?? {});
40
+ const name = (typeof raw.name === "string" && raw.name.trim()) || (node.label ?? "").trim() || node.id;
41
+ return [
42
+ {
43
+ kind: "addTable",
44
+ table: {
45
+ id: node.id,
46
+ name,
47
+ ...(typeof raw.schema === "string" && raw.schema.trim() ? { schema: raw.schema.trim() } : {}),
48
+ kind: (0, types_js_1.kindForDatabaseType)(node.type),
49
+ ...(columnInputs(raw.columns ?? raw.columnInputs) ? { columns: columnInputs(raw.columns ?? raw.columnInputs) } : {}),
50
+ ...(typeof raw.comment === "string" && raw.comment.trim() ? { comment: raw.comment.trim() } : {}),
51
+ },
52
+ },
53
+ ];
54
+ };
55
+ // The edits one canonical op means for the model; [] = handled, nothing to
56
+ // change (presentation); null = not ours.
57
+ const editsFor = (model, op, context) => {
58
+ switch (op.op) {
59
+ case "addNode":
60
+ return (0, types_js_1.isDatabaseType)(op.node.type) ? editsForAddNode(op.node) : null;
61
+ case "removeNode":
62
+ return (0, model_js_1.findEntity)(model, op.id) ? [{ kind: "removeTable", table: op.id }] : null;
63
+ case "updateNode": {
64
+ const entity = (0, model_js_1.findEntity)(model, op.id);
65
+ if (!entity)
66
+ return null;
67
+ const edits = [];
68
+ const changes = op.changes;
69
+ if (changes.type !== undefined && (0, types_js_1.isDatabaseType)(changes.type) && (0, types_js_1.kindForDatabaseType)(changes.type) !== entity.kind)
70
+ edits.push({ kind: "setTableKind", table: entity.id, entityKind: (0, types_js_1.kindForDatabaseType)(changes.type) });
71
+ const raw = changes.data && typeof changes.data.db === "object" && changes.data.db ? changes.data.db : undefined;
72
+ const requestedName = typeof raw?.name === "string" ? raw.name : typeof changes.label === "string" ? changes.label : undefined;
73
+ if (requestedName !== undefined) {
74
+ // A label may be qualified ("public.users"): split when the schema part matches.
75
+ const dot = requestedName.lastIndexOf(".");
76
+ const schemaPart = dot > 0 ? requestedName.slice(0, dot) : undefined;
77
+ const namePart = dot > 0 ? requestedName.slice(dot + 1) : requestedName;
78
+ 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;
79
+ if (namePart.trim() && (namePart !== entity.name || (schema ?? "") !== (entity.schema ?? "")))
80
+ edits.push({ kind: "renameTable", table: entity.id, name: namePart, schema: schema ?? null });
81
+ }
82
+ else if (typeof raw?.schema === "string" && raw.schema !== (entity.schema ?? "")) {
83
+ edits.push({ kind: "renameTable", table: entity.id, name: entity.name, schema: raw.schema || null });
84
+ }
85
+ if (raw && "comment" in raw)
86
+ edits.push({ kind: "setTableComment", table: entity.id, comment: typeof raw.comment === "string" ? raw.comment : null });
87
+ const columns = raw ? columnInputs(raw.columns ?? raw.columnInputs) : undefined;
88
+ if (columns)
89
+ edits.push({ kind: "setColumns", table: entity.id, columns });
90
+ return edits;
91
+ }
92
+ case "addEdge": {
93
+ const source = op.edge.source ? (0, model_js_1.findEntity)(model, op.edge.source) : undefined;
94
+ const target = op.edge.target ? (0, model_js_1.findEntity)(model, op.edge.target) : undefined;
95
+ if (!source || !target)
96
+ return null;
97
+ const data = (op.edge.data?.db ?? {});
98
+ const refs = (value) => (Array.isArray(value) ? value.filter((item) => typeof item === "string") : []);
99
+ return [
100
+ {
101
+ kind: "addRelationship",
102
+ id: op.edge.id,
103
+ source: { table: source.id, columns: refs(data.sourceColumns) },
104
+ target: { table: target.id, columns: refs(data.targetColumns) },
105
+ ...((0, types_js_1.isValidCardinality)(data.cardinality) ? { cardinality: data.cardinality } : {}),
106
+ relationshipKind: data.kind === "foreignKey" ? "foreignKey" : "manual",
107
+ ...(typeof data.name === "string" ? { name: data.name } : {}),
108
+ ...(op.edge.label ? { label: op.edge.label } : {}),
109
+ },
110
+ ];
111
+ }
112
+ case "updateEdge": {
113
+ const relationship = (0, model_js_1.findRelationship)(model, op.id);
114
+ if (!relationship)
115
+ return null;
116
+ const changes = op.changes;
117
+ const edit = { kind: "updateRelationship", relationship: relationship.id, changes: {} };
118
+ const after = context.after.edges.find((edge) => edge.id === op.id);
119
+ const data = changes.data && typeof changes.data.db === "object" && changes.data.db ? changes.data.db : undefined;
120
+ const currentData = after ? (0, types_js_1.dbEdgeData)(after.data) : undefined;
121
+ if (changes.source !== undefined || data?.sourceColumns !== undefined) {
122
+ const entity = (0, model_js_1.findEntity)(model, changes.source ?? relationship.source.entityId);
123
+ if (entity)
124
+ edit.changes.source = { table: entity.id, columns: Array.isArray(data?.sourceColumns) ? data.sourceColumns : changes.source !== undefined ? [] : currentData?.sourceColumns ?? relationship.source.columnIds };
125
+ }
126
+ if (changes.target !== undefined || data?.targetColumns !== undefined) {
127
+ const entity = (0, model_js_1.findEntity)(model, changes.target ?? relationship.target.entityId);
128
+ if (entity)
129
+ edit.changes.target = { table: entity.id, columns: Array.isArray(data?.targetColumns) ? data.targetColumns : changes.target !== undefined ? [] : currentData?.targetColumns ?? relationship.target.columnIds };
130
+ }
131
+ if ((0, types_js_1.isValidCardinality)(data?.cardinality))
132
+ edit.changes.cardinality = data.cardinality;
133
+ if (data && (data.kind === "manual" || data.kind === "foreignKey"))
134
+ edit.changes.relationshipKind = data.kind;
135
+ if (data && "name" in data)
136
+ edit.changes.name = typeof data.name === "string" ? data.name : null;
137
+ if (changes.label !== undefined)
138
+ edit.changes.label = changes.label;
139
+ return Object.keys(edit.changes).length > 0 ? [edit] : [];
140
+ }
141
+ case "removeEdge":
142
+ return (0, model_js_1.findRelationship)(model, op.id) ? [{ kind: "removeRelationship", relationship: op.id }] : null;
143
+ case "moveNodes":
144
+ case "resizeNode":
145
+ case "reorder":
146
+ case "setCanvas":
147
+ case "setViewport":
148
+ case "setTitle":
149
+ return [];
150
+ default:
151
+ return null;
152
+ }
153
+ };
154
+ const patchDatabaseSource = (text, ops, context) => {
155
+ const flat = [];
156
+ flatten(ops, flat);
157
+ const unmapped = [];
158
+ const warnings = [];
159
+ const parsed = (0, model_js_1.parseDatabaseModel)(text);
160
+ if (!parsed.ok)
161
+ return { text, unmapped: flat, changed: false, warnings: parsed.errors };
162
+ let model = parsed.model;
163
+ let changed = false;
164
+ for (const op of flat) {
165
+ const edits = editsFor(model, op, context);
166
+ if (edits === null) {
167
+ unmapped.push(op);
168
+ continue;
169
+ }
170
+ for (const edit of edits) {
171
+ try {
172
+ const result = (0, edit_js_1.applyDatabaseEdit)(model, edit);
173
+ model = result.model;
174
+ changed = changed || result.changed;
175
+ warnings.push(...result.warnings);
176
+ }
177
+ catch (error) {
178
+ if (error instanceof edit_js_1.DatabaseEditError) {
179
+ warnings.push(error.message);
180
+ unmapped.push(op);
181
+ }
182
+ else
183
+ throw error;
184
+ }
185
+ }
186
+ }
187
+ return { text: changed ? (0, model_js_1.serializeDatabaseModel)(model) : text, unmapped, changed, warnings };
188
+ };
189
+ exports.patchDatabaseSource = patchDatabaseSource;
190
+ //# 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,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.placeDatabaseNodesOps = void 0;
4
+ const patchInput_js_1 = require("../patchInput.js");
5
+ const placeDatabaseNodesOps = (doc, nodeIds, gap = 48) => {
6
+ const wanted = new Set(nodeIds);
7
+ if (wanted.size === 0)
8
+ return [];
9
+ const placed = doc.nodes.filter((node) => !wanted.has(node.id) && !node.hidden);
10
+ if (placed.length === 0)
11
+ return (0, patchInput_js_1.placeNewNodesOps)(doc, nodeIds, gap);
12
+ const right = Math.max(...placed.map((node) => node.position.x + node.size.width));
13
+ const top = Math.min(...placed.map((node) => node.position.y));
14
+ let x = right + gap;
15
+ const moves = [];
16
+ for (const id of nodeIds) {
17
+ const node = doc.nodes.find((candidate) => candidate.id === id);
18
+ if (!node)
19
+ continue;
20
+ moves.push({ id, position: { x, y: top } });
21
+ x += node.size.width + gap;
22
+ }
23
+ return moves.length > 0 ? [{ op: "moveNodes", moves }] : [];
24
+ };
25
+ exports.placeDatabaseNodesOps = placeDatabaseNodesOps;
26
+ //# sourceMappingURL=place.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"place.js","sourceRoot":"","sources":["../../../src/diagram/database/place.ts"],"names":[],"mappings":";;;AAKA,oDAAoD;AAG7C,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,IAAA,gCAAgB,EAAC,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;AAhBW,QAAA,qBAAqB,yBAgBhC"}
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ // The database vocabulary on the diagram side: the db.* node types, what a
3
+ // node/edge of a database diagram carries in `data.db` (a SUMMARY — the
4
+ // columns themselves live in the model), the sizes the ERD renderer uses and
5
+ // the crow's-foot markers a cardinality maps to.
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.renderDatabaseOps = exports.renderDatabaseVocabulary = exports.DATABASE_LAYOUT_REQUEST = exports.markersForRelationship = exports.markersForCardinality = exports.isValidCardinality = exports.databaseNodeHeight = exports.databaseEntitySize = exports.DB_COLLAPSED_ROWS = exports.DB_MAX_WIDTH = exports.DB_MIN_WIDTH = exports.DB_BOTTOM_PADDING = exports.DB_ROW_HEIGHT = exports.DB_HEADER_HEIGHT = exports.dbEdgeData = exports.dbNodeData = exports.suggestDatabaseTypes = exports.kindForDatabaseType = exports.databaseTypeForKind = exports.isDatabaseType = exports.DB_NODE_TYPES = void 0;
8
+ const model_js_1 = require("./model.js");
9
+ exports.DB_NODE_TYPES = ["db.table", "db.view", "db.collection"];
10
+ const isDatabaseType = (type) => Boolean(type && exports.DB_NODE_TYPES.includes(type));
11
+ exports.isDatabaseType = isDatabaseType;
12
+ const databaseTypeForKind = (kind) => `db.${kind}`;
13
+ exports.databaseTypeForKind = databaseTypeForKind;
14
+ const kindForDatabaseType = (type) => (type === "db.view" ? "view" : type === "db.collection" ? "collection" : "table");
15
+ exports.kindForDatabaseType = kindForDatabaseType;
16
+ const suggestDatabaseTypes = (query) => {
17
+ const q = query.trim().toLowerCase();
18
+ const ranked = exports.DB_NODE_TYPES.filter((type) => type.includes(q) || q.includes(type.slice(3)));
19
+ return ranked.length > 0 ? [...ranked] : [...exports.DB_NODE_TYPES];
20
+ };
21
+ exports.suggestDatabaseTypes = suggestDatabaseTypes;
22
+ const dbNodeData = (data) => {
23
+ const raw = data?.db;
24
+ return raw && typeof raw === "object" && typeof raw.name === "string" ? raw : undefined;
25
+ };
26
+ exports.dbNodeData = dbNodeData;
27
+ const dbEdgeData = (data) => {
28
+ const raw = data?.db;
29
+ return raw && typeof raw === "object" && typeof raw.cardinality === "string" ? raw : undefined;
30
+ };
31
+ exports.dbEdgeData = dbEdgeData;
32
+ // --- geometry the ERD renderer and the exporter share ------------------------------
33
+ exports.DB_HEADER_HEIGHT = 36;
34
+ exports.DB_ROW_HEIGHT = 24;
35
+ exports.DB_BOTTOM_PADDING = 6;
36
+ exports.DB_MIN_WIDTH = 220;
37
+ exports.DB_MAX_WIDTH = 420;
38
+ exports.DB_COLLAPSED_ROWS = 0;
39
+ const textWidth = (text, perChar) => text.length * perChar;
40
+ // The size a table node gets when it is created or its columns change: wide
41
+ // enough for the longest "name type" row, one row per column.
42
+ const databaseEntitySize = (entity, collapsed = false) => {
43
+ const longestName = Math.max(0, ...entity.columns.map((column) => textWidth(column.name, 7.2)));
44
+ const longestType = Math.max(0, ...entity.columns.map((column) => textWidth(column.dataType, 6.4)));
45
+ const header = textWidth(entity.schema ? `${entity.schema}.${entity.name}` : entity.name, 8) + 56;
46
+ const width = Math.min(exports.DB_MAX_WIDTH, Math.max(exports.DB_MIN_WIDTH, Math.ceil(Math.max(header, 44 + longestName + 24 + longestType + 16) / 10) * 10));
47
+ const rows = collapsed ? exports.DB_COLLAPSED_ROWS : entity.columns.length;
48
+ const height = exports.DB_HEADER_HEIGHT + (rows > 0 ? rows * exports.DB_ROW_HEIGHT + exports.DB_BOTTOM_PADDING : 0);
49
+ return { width, height };
50
+ };
51
+ exports.databaseEntitySize = databaseEntitySize;
52
+ const databaseNodeHeight = (columnCount, collapsed = false) => exports.DB_HEADER_HEIGHT + (!collapsed && columnCount > 0 ? columnCount * exports.DB_ROW_HEIGHT + exports.DB_BOTTOM_PADDING : 0);
53
+ exports.databaseNodeHeight = databaseNodeHeight;
54
+ // --- cardinality → crow's-foot markers ----------------------------------------------
55
+ const isValidCardinality = (value) => typeof value === "string" && model_js_1.DATABASE_CARDINALITIES.includes(value);
56
+ exports.isValidCardinality = isValidCardinality;
57
+ // The marker at each end from the cardinality (source:target); an end whose
58
+ // columns are nullable reads as optional (the "zero" variants).
59
+ const markersForCardinality = (cardinality, optionalSource = false, optionalTarget = false) => {
60
+ const [sourceSide, targetSide] = cardinality.split(":");
61
+ const marker = (many, optional) => (many ? (optional ? "zeroMany" : "many") : optional ? "zeroOne" : "one");
62
+ return {
63
+ markerStart: marker(sourceSide !== "1", optionalSource),
64
+ markerEnd: marker(targetSide !== "1", optionalTarget),
65
+ };
66
+ };
67
+ exports.markersForCardinality = markersForCardinality;
68
+ const markersForRelationship = (model, relationship) => {
69
+ const source = model.entities.find((entity) => entity.id === relationship.source.entityId);
70
+ const sourceOptional = Boolean(source && relationship.source.columnIds.length > 0 && relationship.source.columnIds.every((id) => source.columns.find((column) => column.id === id)?.nullable));
71
+ // A nullable FK means the parent is optional for the child: the "zero" sits on the target end.
72
+ return (0, exports.markersForCardinality)(relationship.cardinality, false, sourceOptional);
73
+ };
74
+ exports.markersForRelationship = markersForRelationship;
75
+ // --- layout -----------------------------------------------------------------------
76
+ // ERD layout: layered left-to-right along the relationship graph, generous
77
+ // gaps (tables are tall), ends floating so the router picks the nearer side.
78
+ exports.DATABASE_LAYOUT_REQUEST = {
79
+ algorithm: "layered",
80
+ direction: "RIGHT",
81
+ respectHandles: false,
82
+ spacing: { node: 40, layer: 110 },
83
+ extraOptions: {
84
+ // Tables that are not related to each other are separate components:
85
+ // pack them into rows wider than tall instead of one tall column.
86
+ "elk.separateConnectedComponents": "true",
87
+ "elk.layered.compaction.connectedComponents": "true",
88
+ "elk.aspectRatio": "2.8",
89
+ "elk.spacing.componentComponent": "60",
90
+ },
91
+ };
92
+ // --- the vocabulary as text (ops reference, AI prompt) ----------------------------------
93
+ const renderDatabaseVocabulary = () => [
94
+ 'DATABASE diagrams (source.format = "database"; the text is the JSON database model) are ENTITY-RELATIONSHIP diagrams:',
95
+ " db.table — a table (columns = rows of the box), db.view — a view, db.collection — a MongoDB collection.",
96
+ "The MODEL is the truth: tables, columns (name, dataType, nullable, primaryKey, unique, defaultValue, autoIncrement, comment),",
97
+ "indexes and relationships (source = the referencing/child side, target = the referenced/parent side; cardinality source:target,",
98
+ '"N:1" for a plain foreign key, "1:1", "1:N", "N:M"). Nodes only hold positions and visibility; edges are the relationships.',
99
+ "Refer to tables by name (\"users\", \"public.users\") and to columns as \"table.column\" (\"orders.user_id\").",
100
+ "Prefer the DATABASE OPS below over addNode/addEdge: they edit the schema by meaning and keep ids stable.",
101
+ 'A new table needs `columns`; a column needs `name` and `dataType` (use the database\'s own type names: "uuid", "varchar(120)", "timestamp").',
102
+ "Never invent relationships a database does not have — on MongoDB, relationships are manual (kind \"manual\").",
103
+ ].join("\n");
104
+ exports.renderDatabaseVocabulary = renderDatabaseVocabulary;
105
+ const renderDatabaseOps = () => [
106
+ '{"op":"addTable","table":{"name","schema"?,"kind"?:"table"|"view"|"collection","columns":[{"name","dataType","primaryKey"?,"nullable"?,"unique"?,"defaultValue"?,"autoIncrement"?,"comment"?}],"comment"?},"position"?:{"x","y"}}',
107
+ '{"op":"renameTable","table","name","schema"?}',
108
+ '{"op":"removeTable","table"} // also removes its relationships',
109
+ '{"op":"setTableComment","table","comment"}',
110
+ '{"op":"addColumn","table","column":{"name","dataType",...},"after"?:"<column>"}',
111
+ '{"op":"alterColumn","table","column","changes":{"name"?,"dataType"?,"nullable"?,"primaryKey"?,"unique"?,"defaultValue"?,"autoIncrement"?,"comment"?}}',
112
+ '{"op":"removeColumn","table","column"}',
113
+ '{"op":"setPrimaryKey","table","columns":["id"]}',
114
+ '{"op":"addRelationship","source":"orders.user_id","target":"users.id","cardinality"?:"N:1"|"1:1"|"1:N"|"N:M","name"?,"label"?} // source = child (FK) side',
115
+ '{"op":"updateRelationship","relationship","changes":{"cardinality"?,"label"?,"name"?,"source"?,"target"?}}',
116
+ '{"op":"removeRelationship","relationship"}',
117
+ '{"op":"hideTable","table"} / {"op":"showTable","table"} // visibility on the canvas only',
118
+ "Column-level references use \"table.column\"; several columns: {\"table\":\"orders\",\"columns\":[\"a\",\"b\"]}.",
119
+ "moveNode / relayout apply as on any diagram; group/ungroup/reparent are not available on database diagrams.",
120
+ ].join("\n");
121
+ exports.renderDatabaseOps = renderDatabaseOps;
122
+ //# 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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"}
@@ -4,6 +4,7 @@ exports.gridLayout = exports.applyDetailedLayout = exports.applyHierarchicalElkR
4
4
  const layoutOptionsFor = (algorithm, direction) => {
5
5
  switch (algorithm) {
6
6
  case "force":
7
+ case "organic":
7
8
  return { "elk.algorithm": "force", "elk.spacing.nodeNode": "70" };
8
9
  case "radial":
9
10
  return { "elk.algorithm": "radial", "elk.spacing.nodeNode": "60" };
@@ -1 +1 @@
1
- {"version":3,"file":"elkGraph.js","sourceRoot":"","sources":["../../src/diagram/elkGraph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"elkGraph.js","sourceRoot":"","sources":["../../src/diagram/elkGraph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateDiagramFixture = void 0;
4
+ // Deterministic synthetic diagrams for tests and benchmarks (100 / 500 / 1000
5
+ // nodes). Same seed → same document, in every host.
6
+ const componentCatalog_js_1 = require("./componentCatalog.js");
7
+ const edgeSemantics_js_1 = require("./edgeSemantics.js");
8
+ const normalize_js_1 = require("./normalize.js");
9
+ const schema_js_1 = require("./schema.js");
10
+ // mulberry32 — tiny, good enough, reproducible.
11
+ const prng = (seed) => {
12
+ let state = seed >>> 0;
13
+ return () => {
14
+ state = (state + 0x6d2b79f5) >>> 0;
15
+ let t = state;
16
+ t = Math.imul(t ^ (t >>> 15), t | 1);
17
+ t ^= t + Math.imul(t ^ (t >>> 7), t | 61);
18
+ return ((t ^ (t >>> 14)) >>> 0) / 4294967296;
19
+ };
20
+ };
21
+ const LEAF_TYPES = componentCatalog_js_1.DIAGRAM_COMPONENT_CATALOG.filter((entry) => entry.variant !== "line" && !entry.container && !entry.swimlane).map((entry) => entry.type);
22
+ const generateDiagramFixture = (options) => {
23
+ const random = prng(options.seed ?? 42);
24
+ const count = Math.max(0, options.nodes);
25
+ const groupCount = Math.max(0, options.groups ?? Math.floor(count / 25));
26
+ const edgesPerNode = options.edgesPerNode ?? 1.5;
27
+ const columns = options.columns ?? Math.max(1, Math.ceil(Math.sqrt(count)));
28
+ const cellW = 220;
29
+ const cellH = 140;
30
+ const nodes = [];
31
+ const groups = [];
32
+ for (let g = 0; g < groupCount; g += 1) {
33
+ groups.push({
34
+ id: `group-${g + 1}`,
35
+ type: "frame",
36
+ label: `Group ${g + 1}`,
37
+ position: { x: 0, y: 0 },
38
+ size: { width: cellW * 3, height: cellH * 3 },
39
+ });
40
+ }
41
+ const perGroup = groupCount > 0 ? Math.floor(count / (groupCount * 4)) : 0;
42
+ const groupIndexByCell = new Map();
43
+ let nextGroupSlot = 0;
44
+ for (let i = 0; i < count; i += 1) {
45
+ const col = i % columns;
46
+ const row = Math.floor(i / columns);
47
+ const type = LEAF_TYPES[Math.floor(random() * LEAF_TYPES.length)] ?? "rect";
48
+ const node = {
49
+ id: `n${i + 1}`,
50
+ type,
51
+ label: `Node ${i + 1}`,
52
+ position: { x: 80 + col * cellW, y: 80 + row * cellH },
53
+ size: { width: 140, height: 60 },
54
+ };
55
+ if (perGroup > 0 && nextGroupSlot < groupCount * perGroup) {
56
+ const groupIndex = Math.floor(nextGroupSlot / perGroup);
57
+ nextGroupSlot += 1;
58
+ groupIndexByCell.set(i, groupIndex);
59
+ node.parentId = groups[groupIndex].id;
60
+ }
61
+ nodes.push(node);
62
+ }
63
+ // Groups wrap their members: position = member bbox minus padding, members relative.
64
+ for (let g = 0; g < groupCount; g += 1) {
65
+ const members = nodes.filter((node) => node.parentId === groups[g].id);
66
+ if (members.length === 0)
67
+ continue;
68
+ const minX = Math.min(...members.map((m) => m.position.x)) - 24;
69
+ const minY = Math.min(...members.map((m) => m.position.y)) - 48;
70
+ const maxX = Math.max(...members.map((m) => m.position.x + m.size.width)) + 24;
71
+ const maxY = Math.max(...members.map((m) => m.position.y + m.size.height)) + 24;
72
+ groups[g].position = { x: minX, y: minY };
73
+ groups[g].size = { width: maxX - minX, height: maxY - minY };
74
+ for (const member of members)
75
+ member.position = { x: member.position.x - minX, y: member.position.y - minY };
76
+ }
77
+ const edges = [];
78
+ const semantics = ["sync", "sync", "sync", "async", "fallback", "bus"];
79
+ const wanted = Math.round(count * edgesPerNode);
80
+ const seen = new Set();
81
+ let attempts = 0;
82
+ while (edges.length < wanted && attempts < wanted * 10 && count > 1) {
83
+ attempts += 1;
84
+ const from = Math.floor(random() * count);
85
+ // Mostly local edges (a grid neighbourhood) so layouts look like real
86
+ // architectures, plus a few long ones.
87
+ const reach = random() < 0.8 ? columns + 2 : count;
88
+ const to = Math.min(count - 1, Math.max(0, from + 1 + Math.floor(random() * reach)));
89
+ if (to === from)
90
+ continue;
91
+ const key = `${from}->${to}`;
92
+ if (seen.has(key))
93
+ continue;
94
+ seen.add(key);
95
+ const semantic = semantics[Math.floor(random() * semantics.length)];
96
+ edges.push({
97
+ id: `e${edges.length + 1}`,
98
+ source: `n${from + 1}`,
99
+ target: `n${to + 1}`,
100
+ markerEnd: "classicThin",
101
+ ...(semantic !== "sync" ? { style: (0, edgeSemantics_js_1.semanticStyle)(semantic) } : {}),
102
+ ...(random() < 0.3 ? { label: `call ${edges.length + 1}` } : {}),
103
+ });
104
+ }
105
+ return {
106
+ schemaVersion: schema_js_1.SCHEMA_VERSION,
107
+ id: `doc_fixture_${count}_${options.seed ?? 42}`,
108
+ meta: { title: `Fixture ${count}`, createdAt: "2026-01-01T00:00:00.000Z", updatedAt: "2026-01-01T00:00:00.000Z" },
109
+ canvas: { background: "dots", gridSize: 16 },
110
+ // Documents are kept in DFS pre-order (a container directly precedes its
111
+ // children) — the same order every host's load gate produces.
112
+ nodes: (0, normalize_js_1.sortPreOrder)([...groups.filter((g) => nodes.some((n) => n.parentId === g.id)), ...nodes]),
113
+ edges,
114
+ };
115
+ };
116
+ exports.generateDiagramFixture = generateDiagramFixture;
117
+ //# sourceMappingURL=fixtures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../src/diagram/fixtures.ts"],"names":[],"mappings":"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"}