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 @@
1
+ {"version":3,"file":"patchInput.js","sourceRoot":"","sources":["../../src/diagram/patchInput.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import { type Rect } from "../geometry.js";
2
+ import type { DiagramRouting, HandleSide, LegacyAnchor, Point } from "../schema.js";
3
+ import { type RouteOptions, type RoutedPath, type Terminal } from "./types.js";
4
+ export interface RouteNode {
5
+ id: string;
6
+ rect: Rect;
7
+ obstacle: boolean;
8
+ }
9
+ export interface RouteEdge {
10
+ id: string;
11
+ source?: string;
12
+ target?: string;
13
+ sourcePoint?: Point;
14
+ targetPoint?: Point;
15
+ sourceHandle?: HandleSide;
16
+ targetHandle?: HandleSide;
17
+ routing?: DiagramRouting;
18
+ waypoints?: Point[];
19
+ sourceAnchor?: LegacyAnchor;
20
+ targetAnchor?: LegacyAnchor;
21
+ }
22
+ export interface RouteBatchRequest {
23
+ version: number;
24
+ nodes: RouteNode[];
25
+ edges: RouteEdge[];
26
+ defaultRouting?: DiagramRouting;
27
+ dirty?: string[];
28
+ previous?: Record<string, RoutedPath>;
29
+ options?: RouteOptions;
30
+ nudge?: boolean;
31
+ }
32
+ export interface RouteBatchResponse {
33
+ version: number;
34
+ paths: Record<string, RoutedPath>;
35
+ stats: {
36
+ routed: number;
37
+ reused: number;
38
+ smart: number;
39
+ fallback: number;
40
+ };
41
+ }
42
+ export declare const routeEdge: (edge: RouteEdge, source: Terminal, target: Terminal, obstacles: Rect[], defaultRouting: DiagramRouting | undefined, options: RouteOptions, previous?: RoutedPath) => RoutedPath;
43
+ export declare const routeBatch: (request: RouteBatchRequest) => RouteBatchResponse;
44
+ export declare const dirtyEdgesFor: (before: RouteNode[], after: RouteNode[], edges: RouteEdge[], defaultRouting: DiagramRouting | undefined, options?: RouteOptions) => string[];
45
+ //# sourceMappingURL=batch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../../src/diagram/routing/batch.ts"],"names":[],"mappings":"AAKA,OAAO,EAA+B,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAKpF,OAAO,EAAuB,KAAK,YAAY,EAAE,KAAK,UAAU,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEpG,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,IAAI,CAAC;IAEX,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;IACpB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,YAAY,CAAC;IAEvB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5E;AAkBD,eAAO,MAAM,SAAS,GACpB,MAAM,SAAS,EACf,QAAQ,QAAQ,EAChB,QAAQ,QAAQ,EAChB,WAAW,IAAI,EAAE,EACjB,gBAAgB,cAAc,GAAG,SAAS,EAC1C,SAAS,YAAY,EACrB,WAAW,UAAU,KACpB,UA0BF,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,SAAS,iBAAiB,KAAG,kBA4BvD,CAAC;AAKF,eAAO,MAAM,aAAa,GACxB,QAAQ,SAAS,EAAE,EACnB,OAAO,SAAS,EAAE,EAClB,OAAO,SAAS,EAAE,EAClB,gBAAgB,cAAc,GAAG,SAAS,EAC1C,UAAS,YAAiB,KACzB,MAAM,EA+CR,CAAC"}
@@ -0,0 +1,136 @@
1
+ // The batch protocol a host's routing worker speaks: absolute node rects +
2
+ // edges in → routed paths out, versioned so stale answers are dropped, and
3
+ // incremental — only the edges in `dirty` are recomputed, the rest reuse
4
+ // `previous`. Pure, so it runs identically on the main thread, in a Web
5
+ // Worker, or in a Node test.
6
+ import { inflateRect, rectsIntersect } from "../geometry.js";
7
+ import { curvedRoute, routeThroughWaypoints, straightRoute } from "./curves.js";
8
+ import { isLegacyPinnedEdge, legacyPinnedPath } from "./legacy.js";
9
+ import { nudgeRoutes } from "./nudge.js";
10
+ import { orthogonalRoute, smartRoute } from "./orthogonal.js";
11
+ import { resolveRouteOptions } from "./types.js";
12
+ const terminalFor = (id, point, side, nodes) => {
13
+ if (id) {
14
+ const node = nodes.get(id);
15
+ if (!node)
16
+ return null;
17
+ return { rect: node.rect, side };
18
+ }
19
+ if (point)
20
+ return { rect: { x: point.x, y: point.y, width: 0, height: 0 }, point };
21
+ return null;
22
+ };
23
+ // Route ONE edge given the terminals; the routing kind decides the router.
24
+ export const routeEdge = (edge, source, target, obstacles, defaultRouting, options, previous) => {
25
+ const withPrevious = previous
26
+ ? { ...options, previous: { source: previous.sourceSide, target: previous.targetSide } }
27
+ : options;
28
+ if (isLegacyPinnedEdge(edge))
29
+ return legacyPinnedPath(edge, source.rect, target.rect);
30
+ let routing = edge.routing ?? defaultRouting ?? "orthogonal";
31
+ // A free "Line" (an end that is a point, not a node) is a straight line
32
+ // unless the user asked for a curve — there is no side to leave from.
33
+ if ((source.point || target.point) && routing !== "curved")
34
+ routing = "straight";
35
+ if (edge.waypoints && edge.waypoints.length > 0) {
36
+ return routeThroughWaypoints(source, target, edge.waypoints, routing, withPrevious);
37
+ }
38
+ switch (routing) {
39
+ case "straight":
40
+ return straightRoute(source, target, withPrevious);
41
+ case "curved":
42
+ return curvedRoute(source, target, withPrevious);
43
+ case "smart": {
44
+ const smart = smartRoute(source, target, obstacles, withPrevious);
45
+ if (smart)
46
+ return smart;
47
+ return { ...orthogonalRoute(source, target, withPrevious), via: "smart-fallback" };
48
+ }
49
+ case "orthogonal":
50
+ default:
51
+ return orthogonalRoute(source, target, withPrevious);
52
+ }
53
+ };
54
+ export const routeBatch = (request) => {
55
+ const nodes = new Map(request.nodes.map((node) => [node.id, node]));
56
+ const obstacles = request.nodes.filter((node) => node.obstacle).map((node) => node.rect);
57
+ const dirty = request.dirty ? new Set(request.dirty) : null;
58
+ const previous = request.previous ?? {};
59
+ const options = request.options ?? {};
60
+ const paths = {};
61
+ const stats = { routed: 0, reused: 0, smart: 0, fallback: 0 };
62
+ for (const edge of request.edges) {
63
+ if (dirty && !dirty.has(edge.id) && previous[edge.id]) {
64
+ paths[edge.id] = previous[edge.id];
65
+ stats.reused += 1;
66
+ continue;
67
+ }
68
+ const source = terminalFor(edge.source, edge.sourcePoint, edge.sourceHandle, nodes);
69
+ const target = terminalFor(edge.target, edge.targetPoint, edge.targetHandle, nodes);
70
+ if (!source || !target)
71
+ continue;
72
+ const route = routeEdge(edge, source, target, obstacles, request.defaultRouting, options, previous[edge.id]);
73
+ paths[edge.id] = route;
74
+ stats.routed += 1;
75
+ if (route.via === "smart")
76
+ stats.smart += 1;
77
+ if (route.via === "smart-fallback")
78
+ stats.fallback += 1;
79
+ }
80
+ const resolved = resolveRouteOptions(options);
81
+ const out = request.nudge === false ? paths : nudgeRoutes(paths, resolved.nudgeGap, obstacles, Math.max(0, resolved.margin - 4));
82
+ return { version: request.version, paths: out, stats };
83
+ };
84
+ // Which edges must be re-routed after the nodes changed from `before` to
85
+ // `after`: those touching a changed node, plus smart edges whose corridor a
86
+ // changed node entered or left.
87
+ export const dirtyEdgesFor = (before, after, edges, defaultRouting, options = {}) => {
88
+ const resolved = resolveRouteOptions(options);
89
+ const prior = new Map(before.map((node) => [node.id, node]));
90
+ const changed = [];
91
+ const changedIds = new Set();
92
+ for (const node of after) {
93
+ const old = prior.get(node.id);
94
+ if (!old) {
95
+ changedIds.add(node.id);
96
+ changed.push(node.rect);
97
+ continue;
98
+ }
99
+ if (old.rect.x !== node.rect.x || old.rect.y !== node.rect.y || old.rect.width !== node.rect.width || old.rect.height !== node.rect.height || old.obstacle !== node.obstacle) {
100
+ changedIds.add(node.id);
101
+ changed.push(old.rect, node.rect);
102
+ }
103
+ }
104
+ for (const node of before) {
105
+ if (!after.some((candidate) => candidate.id === node.id)) {
106
+ changedIds.add(node.id);
107
+ changed.push(node.rect);
108
+ }
109
+ }
110
+ if (changedIds.size === 0)
111
+ return [];
112
+ const afterById = new Map(after.map((node) => [node.id, node]));
113
+ const out = [];
114
+ for (const edge of edges) {
115
+ if ((edge.source && changedIds.has(edge.source)) || (edge.target && changedIds.has(edge.target))) {
116
+ out.push(edge.id);
117
+ continue;
118
+ }
119
+ if ((edge.routing ?? defaultRouting) !== "smart")
120
+ continue;
121
+ const source = edge.source ? afterById.get(edge.source)?.rect : undefined;
122
+ const target = edge.target ? afterById.get(edge.target)?.rect : undefined;
123
+ if (!source || !target)
124
+ continue;
125
+ const region = inflateRect({
126
+ x: Math.min(source.x, target.x),
127
+ y: Math.min(source.y, target.y),
128
+ width: Math.max(source.x + source.width, target.x + target.width) - Math.min(source.x, target.x),
129
+ height: Math.max(source.y + source.height, target.y + target.height) - Math.min(source.y, target.y),
130
+ }, resolved.regionPad);
131
+ if (changed.some((rect) => rectsIntersect(region, rect)))
132
+ out.push(edge.id);
133
+ }
134
+ return out;
135
+ };
136
+ //# sourceMappingURL=batch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../../src/diagram/routing/batch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { DiagramRouting, Point } from "../schema.js";
2
+ import { type RouteOptions, type RoutedPath, type Terminal } from "./types.js";
3
+ export declare const straightRoute: (source: Terminal, target: Terminal, options?: RouteOptions) => RoutedPath;
4
+ export declare const curvedRoute: (source: Terminal, target: Terminal, options?: RouteOptions) => RoutedPath;
5
+ export declare const catmullRomCurves: (points: Point[], tension?: number) => Array<[Point, Point, Point]>;
6
+ export declare const routeThroughWaypoints: (source: Terminal, target: Terminal, waypoints: Point[], routing: DiagramRouting | undefined, options?: RouteOptions) => RoutedPath;
7
+ //# sourceMappingURL=curves.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"curves.d.ts","sourceRoot":"","sources":["../../../src/diagram/routing/curves.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAG1D,OAAO,EAAuB,KAAK,YAAY,EAAE,KAAK,UAAU,EAAa,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAS/G,eAAO,MAAM,aAAa,GAAI,QAAQ,QAAQ,EAAE,QAAQ,QAAQ,EAAE,UAAS,YAAiB,KAAG,UAM9F,CAAC;AAOF,eAAO,MAAM,WAAW,GAAI,QAAQ,QAAQ,EAAE,QAAQ,QAAQ,EAAE,UAAS,YAAiB,KAAG,UAkB5F,CAAC;AAGF,eAAO,MAAM,gBAAgB,GAAI,QAAQ,KAAK,EAAE,EAAE,gBAAa,KAAG,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAe5F,CAAC;AAKF,eAAO,MAAM,qBAAqB,GAChC,QAAQ,QAAQ,EAChB,QAAQ,QAAQ,EAChB,WAAW,KAAK,EAAE,EAClB,SAAS,cAAc,GAAG,SAAS,EACnC,UAAS,YAAiB,KACzB,UAmDF,CAAC"}
@@ -0,0 +1,120 @@
1
+ // Straight and curved routes, and the polyline-through-waypoints router used
2
+ // when the user has bent an edge by hand. Curved paths are cubic beziers:
3
+ // two-point edges leave/enter along the side normal (like React Flow's
4
+ // bezier); paths through waypoints are Catmull-Rom splines converted to
5
+ // cubics.
6
+ import { rectCenter } from "../geometry.js";
7
+ import { simplifyPolyline } from "./grid.js";
8
+ import { attachPoint, boundaryToward, sidesFor, sideVector } from "./sides.js";
9
+ import { resolveRouteOptions } from "./types.js";
10
+ const attachToward = (terminal, side, toward) => {
11
+ if (terminal.point)
12
+ return terminal.point;
13
+ if (side)
14
+ return attachPoint(terminal, side);
15
+ if (terminal.rect.width === 0 && terminal.rect.height === 0)
16
+ return { x: terminal.rect.x, y: terminal.rect.y };
17
+ return boundaryToward(terminal.rect, toward);
18
+ };
19
+ export const straightRoute = (source, target, options = {}) => {
20
+ const resolved = resolveRouteOptions(options);
21
+ const sides = sidesFor(source, target, resolved.previous);
22
+ const start = attachToward(source, source.side, rectCenter(target.rect));
23
+ const end = attachToward(target, target.side, rectCenter(source.rect));
24
+ return { points: [start, end], kind: "straight", sourceSide: sides.source, targetSide: sides.target, via: "straight" };
25
+ };
26
+ const controlOffset = (a, b) => {
27
+ const distance = Math.hypot(b.x - a.x, b.y - a.y);
28
+ return Math.min(250, Math.max(40, distance * 0.45));
29
+ };
30
+ export const curvedRoute = (source, target, options = {}) => {
31
+ const resolved = resolveRouteOptions(options);
32
+ const sides = sidesFor(source, target, resolved.previous);
33
+ const start = attachPoint(source, sides.source);
34
+ const end = attachPoint(target, sides.target);
35
+ const sv = sideVector(sides.source);
36
+ const tv = sideVector(sides.target);
37
+ const offset = controlOffset(start, end);
38
+ const c1 = { x: start.x + sv.x * offset, y: start.y + sv.y * offset };
39
+ const c2 = { x: end.x + tv.x * offset, y: end.y + tv.y * offset };
40
+ return {
41
+ points: [start, end],
42
+ kind: "curved",
43
+ sourceSide: sides.source,
44
+ targetSide: sides.target,
45
+ curves: [[c1, c2, end]],
46
+ via: "curved",
47
+ };
48
+ };
49
+ // Catmull-Rom → cubic bezier segments through every point.
50
+ export const catmullRomCurves = (points, tension = 0.5) => {
51
+ const curves = [];
52
+ for (let i = 0; i < points.length - 1; i += 1) {
53
+ const p0 = points[i - 1] ?? points[i];
54
+ const p1 = points[i];
55
+ const p2 = points[i + 1];
56
+ const p3 = points[i + 2] ?? p2;
57
+ const k = tension / 3;
58
+ curves.push([
59
+ { x: p1.x + (p2.x - p0.x) * k, y: p1.y + (p2.y - p0.y) * k },
60
+ { x: p2.x - (p3.x - p1.x) * k, y: p2.y - (p3.y - p1.y) * k },
61
+ p2,
62
+ ]);
63
+ }
64
+ return curves;
65
+ };
66
+ // Manual bends: the path must pass through every waypoint in order. The
67
+ // terminal stubs are re-solved from the current node positions so moving a
68
+ // node keeps the bends but never leaves a dangling end.
69
+ export const routeThroughWaypoints = (source, target, waypoints, routing, options = {}) => {
70
+ const resolved = resolveRouteOptions(options);
71
+ const first = waypoints[0];
72
+ const last = waypoints[waypoints.length - 1];
73
+ const kind = routing === "straight" ? "straight" : routing === "curved" ? "curved" : "orthogonal";
74
+ if (kind === "straight" || kind === "curved") {
75
+ const start = attachToward(source, source.side, first);
76
+ const end = attachToward(target, target.side, last);
77
+ const sides = sidesFor(source, target, resolved.previous);
78
+ const points = [start, ...waypoints, end];
79
+ return {
80
+ points,
81
+ kind,
82
+ sourceSide: source.side ?? sides.source,
83
+ targetSide: target.side ?? sides.target,
84
+ ...(kind === "curved" ? { curves: catmullRomCurves(points) } : {}),
85
+ via: "waypoints",
86
+ };
87
+ }
88
+ // Orthogonal: leave perpendicular, then reach each bend with an L whose
89
+ // first leg continues the current heading.
90
+ const sourceSide = source.side ?? sidesFor(source, { rect: { x: first.x, y: first.y, width: 0, height: 0 } }).source;
91
+ const targetSide = target.side ?? sidesFor({ rect: { x: last.x, y: last.y, width: 0, height: 0 } }, target).target;
92
+ const start = attachPoint(source, sourceSide);
93
+ const end = attachPoint(target, targetSide);
94
+ const sv = sideVector(sourceSide);
95
+ const tv = sideVector(targetSide);
96
+ const stubStart = { x: start.x + sv.x * resolved.margin, y: start.y + sv.y * resolved.margin };
97
+ const stubEnd = { x: end.x + tv.x * resolved.margin, y: end.y + tv.y * resolved.margin };
98
+ const points = [start, stubStart];
99
+ let horizontal = sv.x !== 0;
100
+ let current = stubStart;
101
+ for (const bend of [...waypoints, stubEnd]) {
102
+ if (Math.abs(bend.x - current.x) > 1e-6 && Math.abs(bend.y - current.y) > 1e-6) {
103
+ // Two legs: continue the current heading first.
104
+ const corner = horizontal ? { x: bend.x, y: current.y } : { x: current.x, y: bend.y };
105
+ points.push(corner);
106
+ horizontal = !horizontal;
107
+ }
108
+ else if (Math.abs(bend.x - current.x) > 1e-6) {
109
+ horizontal = true;
110
+ }
111
+ else if (Math.abs(bend.y - current.y) > 1e-6) {
112
+ horizontal = false;
113
+ }
114
+ points.push(bend);
115
+ current = bend;
116
+ }
117
+ points.push(end);
118
+ return { points: simplifyPolyline(points), kind: "orthogonal", sourceSide, targetSide, via: "waypoints" };
119
+ };
120
+ //# sourceMappingURL=curves.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"curves.js","sourceRoot":"","sources":["../../../src/diagram/routing/curves.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { type Rect } from "../geometry.js";
2
+ import type { Point } from "../schema.js";
3
+ import type { ResolvedRouteOptions, RoutedPath, Side, Terminal } from "./types.js";
4
+ export interface GridRouteInput {
5
+ source: Terminal;
6
+ target: Terminal;
7
+ obstacles: Rect[];
8
+ sides?: {
9
+ source: Side;
10
+ target: Side;
11
+ };
12
+ }
13
+ export declare const gridRoute: (input: GridRouteInput, options: ResolvedRouteOptions) => RoutedPath | null;
14
+ export declare const simplifyPolyline: (points: Point[]) => Point[];
15
+ //# sourceMappingURL=grid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../src/diagram/routing/grid.ts"],"names":[],"mappings":"AAYA,OAAO,EAAe,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,KAAK,EAAE,oBAAoB,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAkFnF,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,QAAQ,CAAC;IAGjB,SAAS,EAAE,IAAI,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE;QAAE,MAAM,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,IAAI,CAAA;KAAE,CAAC;CACxC;AAID,eAAO,MAAM,SAAS,GAAI,OAAO,cAAc,EAAE,SAAS,oBAAoB,KAAG,UAAU,GAAG,IAgI7F,CAAC;AAGF,eAAO,MAAM,gBAAgB,GAAI,QAAQ,KAAK,EAAE,KAAG,KAAK,EAiBvD,CAAC"}