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,211 @@
1
+ // SQL Server schema introspection over the sys.* catalog views (one pool, six
2
+ // queries). Schema/table filters apply in JavaScript: T-SQL has no array
3
+ // parameter and building an IN list from user text is not worth the risk.
4
+ import { withMssqlPool } from "../mssqlAdapter.js";
5
+ import { asBoolean, asNumber, asString, emptyTable, finishTable, referentialAction, selectTables, tableKey } from "./shared.js";
6
+ const SCHEMAS_SQL = `
7
+ SELECT s.name AS sch FROM sys.schemas s
8
+ WHERE s.name NOT IN ('sys', 'INFORMATION_SCHEMA', 'guest') AND s.name NOT LIKE 'db[_]%'
9
+ ORDER BY 1`;
10
+ const TABLES_SQL = `
11
+ SELECT s.name AS sch, t.name AS tbl, 'table' AS kind, CAST(ep.value AS nvarchar(4000)) AS comment, p.total_rows AS estimate
12
+ FROM sys.tables t
13
+ JOIN sys.schemas s ON s.schema_id = t.schema_id
14
+ LEFT JOIN sys.extended_properties ep ON ep.major_id = t.object_id AND ep.minor_id = 0 AND ep.class = 1 AND ep.name = 'MS_Description'
15
+ LEFT JOIN (SELECT object_id, SUM(rows) AS total_rows FROM sys.partitions WHERE index_id IN (0, 1) GROUP BY object_id) p ON p.object_id = t.object_id
16
+ UNION ALL
17
+ SELECT s.name, v.name, 'view', CAST(ep.value AS nvarchar(4000)), NULL
18
+ FROM sys.views v
19
+ JOIN sys.schemas s ON s.schema_id = v.schema_id
20
+ LEFT JOIN sys.extended_properties ep ON ep.major_id = v.object_id AND ep.minor_id = 0 AND ep.class = 1 AND ep.name = 'MS_Description'
21
+ ORDER BY 1, 2`;
22
+ const COLUMNS_SQL = `
23
+ SELECT s.name AS sch, o.name AS tbl, c.name AS col, c.column_id AS ordinal, ty.name AS type_name,
24
+ c.max_length, c.precision, c.scale, c.is_nullable AS nullable, c.is_identity AS is_identity, c.is_computed AS is_computed,
25
+ dc.definition AS default_value, CAST(ep.value AS nvarchar(4000)) AS comment
26
+ FROM sys.columns c
27
+ JOIN sys.objects o ON o.object_id = c.object_id AND o.type IN ('U', 'V')
28
+ JOIN sys.schemas s ON s.schema_id = o.schema_id
29
+ JOIN sys.types ty ON ty.user_type_id = c.user_type_id
30
+ LEFT JOIN sys.default_constraints dc ON dc.parent_object_id = c.object_id AND dc.parent_column_id = c.column_id
31
+ LEFT JOIN sys.extended_properties ep ON ep.major_id = c.object_id AND ep.minor_id = c.column_id AND ep.class = 1 AND ep.name = 'MS_Description'
32
+ ORDER BY 1, 2, 4`;
33
+ const KEYS_SQL = `
34
+ SELECT s.name AS sch, o.name AS tbl, kc.name AS cname, kc.type AS ctype, col.name AS col, ic.key_ordinal AS pos
35
+ FROM sys.key_constraints kc
36
+ JOIN sys.objects o ON o.object_id = kc.parent_object_id
37
+ JOIN sys.schemas s ON s.schema_id = o.schema_id
38
+ JOIN sys.index_columns ic ON ic.object_id = kc.parent_object_id AND ic.index_id = kc.unique_index_id AND ic.is_included_column = 0
39
+ JOIN sys.columns col ON col.object_id = ic.object_id AND col.column_id = ic.column_id
40
+ ORDER BY 1, 2, 3, 6`;
41
+ const FOREIGN_KEYS_SQL = `
42
+ SELECT s.name AS sch, o.name AS tbl, fk.name AS cname, pc.name AS col, fkc.constraint_column_id AS pos,
43
+ rs.name AS ref_sch, ro.name AS ref_tbl, rc.name AS ref_col,
44
+ fk.delete_referential_action_desc AS on_delete, fk.update_referential_action_desc AS on_update
45
+ FROM sys.foreign_keys fk
46
+ JOIN sys.foreign_key_columns fkc ON fkc.constraint_object_id = fk.object_id
47
+ JOIN sys.objects o ON o.object_id = fk.parent_object_id
48
+ JOIN sys.schemas s ON s.schema_id = o.schema_id
49
+ JOIN sys.columns pc ON pc.object_id = fkc.parent_object_id AND pc.column_id = fkc.parent_column_id
50
+ JOIN sys.objects ro ON ro.object_id = fk.referenced_object_id
51
+ JOIN sys.schemas rs ON rs.schema_id = ro.schema_id
52
+ JOIN sys.columns rc ON rc.object_id = fkc.referenced_object_id AND rc.column_id = fkc.referenced_column_id
53
+ ORDER BY 1, 2, 3, 5`;
54
+ const INDEXES_SQL = `
55
+ SELECT s.name AS sch, o.name AS tbl, i.name AS name, i.is_unique AS is_unique, i.is_primary_key AS is_primary, col.name AS col, ic.key_ordinal AS pos
56
+ FROM sys.indexes i
57
+ JOIN sys.objects o ON o.object_id = i.object_id AND o.type IN ('U', 'V')
58
+ JOIN sys.schemas s ON s.schema_id = o.schema_id
59
+ JOIN sys.index_columns ic ON ic.object_id = i.object_id AND ic.index_id = i.index_id AND ic.is_included_column = 0
60
+ JOIN sys.columns col ON col.object_id = ic.object_id AND col.column_id = ic.column_id
61
+ WHERE i.name IS NOT NULL AND i.type > 0
62
+ ORDER BY 1, 2, 3, 7`;
63
+ // The type the way SSMS prints it: nvarchar(120), varchar(max), decimal(12,2), datetime2(7).
64
+ export const formatMssqlType = (typeName, maxLength, precision, scale) => {
65
+ const name = typeName.toLowerCase();
66
+ if (["varchar", "char", "varbinary", "binary"].includes(name))
67
+ return maxLength === -1 ? `${name}(max)` : maxLength !== undefined ? `${name}(${maxLength})` : name;
68
+ if (["nvarchar", "nchar"].includes(name))
69
+ return maxLength === -1 ? `${name}(max)` : maxLength !== undefined ? `${name}(${Math.floor(maxLength / 2)})` : name;
70
+ if (["decimal", "numeric"].includes(name))
71
+ return precision !== undefined ? `${name}(${precision},${scale ?? 0})` : name;
72
+ if (["datetime2", "time", "datetimeoffset"].includes(name))
73
+ return scale !== undefined ? `${name}(${scale})` : name;
74
+ return name;
75
+ };
76
+ export const introspectMssql = (connection, options) => withMssqlPool(connection, async (pool) => {
77
+ const query = async (sql) => {
78
+ const result = await pool.request().query(sql);
79
+ return Array.isArray(result?.recordset) ? result.recordset : [];
80
+ };
81
+ const warnings = [];
82
+ const databaseRow = (await query("SELECT DB_NAME() AS db"))[0];
83
+ const schemas = (await query(SCHEMAS_SQL)).map((row) => String(row.sch));
84
+ const lower = (value) => value.toLowerCase();
85
+ const wanted = options.schemas ? options.schemas.filter((name) => schemas.some((known) => lower(known) === lower(name))).map((name) => schemas.find((known) => lower(known) === lower(name)) ?? name) : schemas;
86
+ for (const name of options.schemas ?? [])
87
+ if (!schemas.some((known) => lower(known) === lower(name)))
88
+ warnings.push(`Schema "${name}" is not visible to this connection.`);
89
+ const wantedSet = new Set(wanted.map(lower));
90
+ const inScope = (schema) => wantedSet.has(lower(String(schema)));
91
+ const candidates = (await query(TABLES_SQL))
92
+ .filter((row) => inScope(row.sch))
93
+ .map((row) => ({
94
+ schema: String(row.sch),
95
+ name: String(row.tbl),
96
+ kind: String(row.kind) === "view" ? "view" : "table",
97
+ comment: asString(row.comment),
98
+ estimate: asNumber(row.estimate),
99
+ }));
100
+ const { selected, truncated } = selectTables(candidates, options);
101
+ const tables = new Map();
102
+ for (const candidate of selected) {
103
+ tables.set(tableKey(candidate.schema, candidate.name), emptyTable(candidate, {
104
+ ...(candidate.comment ? { comment: candidate.comment } : {}),
105
+ ...(candidate.estimate !== undefined ? { rowCountEstimate: candidate.estimate } : {}),
106
+ }));
107
+ }
108
+ if (!options.objectsOnly && tables.size > 0) {
109
+ const tableOf = (row) => tables.get(tableKey(String(row.sch), String(row.tbl)));
110
+ for (const row of await query(COLUMNS_SQL)) {
111
+ const table = tableOf(row);
112
+ if (!table)
113
+ continue;
114
+ const defaultValue = asString(row.default_value);
115
+ table.columns.push({
116
+ name: String(row.col),
117
+ dataType: formatMssqlType(String(row.type_name), asNumber(row.max_length), asNumber(row.precision), asNumber(row.scale)),
118
+ ordinal: asNumber(row.ordinal) ?? table.columns.length + 1,
119
+ nullable: asBoolean(row.nullable),
120
+ primaryKey: false,
121
+ ...(defaultValue !== undefined ? { defaultValue } : {}),
122
+ ...(asBoolean(row.is_identity) ? { autoIncrement: true } : {}),
123
+ ...(asString(row.comment) ? { comment: asString(row.comment) } : {}),
124
+ ...(asBoolean(row.is_computed) ? { metadata: { computed: true } } : {}),
125
+ });
126
+ }
127
+ const keyGroups = new Map();
128
+ for (const row of await query(KEYS_SQL)) {
129
+ const table = tableOf(row);
130
+ if (!table)
131
+ continue;
132
+ const key = `${row.sch}.${row.tbl}.${row.cname}`;
133
+ let group = keyGroups.get(key);
134
+ if (!group) {
135
+ group = { table, name: String(row.cname), type: String(row.ctype).trim().toUpperCase(), columns: [] };
136
+ keyGroups.set(key, group);
137
+ }
138
+ group.columns.push(String(row.col));
139
+ }
140
+ for (const group of keyGroups.values()) {
141
+ if (group.type === "PK")
142
+ group.table.primaryKey = group.columns;
143
+ else
144
+ group.table.indexes.push({ name: group.name, columns: group.columns, unique: true });
145
+ }
146
+ const fkGroups = new Map();
147
+ for (const row of await query(FOREIGN_KEYS_SQL)) {
148
+ const table = tableOf(row);
149
+ if (!table)
150
+ continue;
151
+ const key = `${row.sch}.${row.tbl}.${row.cname}`;
152
+ let group = fkGroups.get(key);
153
+ if (!group) {
154
+ group = {
155
+ table,
156
+ name: String(row.cname),
157
+ columns: [],
158
+ refSchema: String(row.ref_sch),
159
+ refTable: String(row.ref_tbl),
160
+ refColumns: [],
161
+ ...(referentialAction(row.on_delete) ? { onDelete: referentialAction(row.on_delete) } : {}),
162
+ ...(referentialAction(row.on_update) ? { onUpdate: referentialAction(row.on_update) } : {}),
163
+ };
164
+ fkGroups.set(key, group);
165
+ }
166
+ group.columns.push(String(row.col));
167
+ group.refColumns.push(String(row.ref_col));
168
+ }
169
+ for (const group of fkGroups.values()) {
170
+ group.table.foreignKeys.push({
171
+ name: group.name,
172
+ columns: group.columns,
173
+ refSchema: group.refSchema,
174
+ refTable: group.refTable,
175
+ refColumns: group.refColumns,
176
+ ...(group.onDelete ? { onDelete: group.onDelete } : {}),
177
+ ...(group.onUpdate ? { onUpdate: group.onUpdate } : {}),
178
+ });
179
+ }
180
+ const indexGroups = new Map();
181
+ for (const row of await query(INDEXES_SQL)) {
182
+ const table = tableOf(row);
183
+ if (!table)
184
+ continue;
185
+ const key = `${row.sch}.${row.tbl}.${row.name}`;
186
+ let group = indexGroups.get(key);
187
+ if (!group) {
188
+ group = { table, name: String(row.name), unique: asBoolean(row.is_unique), primary: asBoolean(row.is_primary), columns: [] };
189
+ indexGroups.set(key, group);
190
+ }
191
+ group.columns.push(String(row.col));
192
+ }
193
+ for (const group of indexGroups.values()) {
194
+ if (group.table.indexes.some((index) => index.name === group.name))
195
+ continue;
196
+ group.table.indexes.push({ name: group.name, columns: group.columns, unique: group.unique, ...(group.primary ? { primary: true } : {}) });
197
+ }
198
+ for (const table of tables.values())
199
+ finishTable(table);
200
+ }
201
+ return {
202
+ dialect: "mssql",
203
+ ...(asString(databaseRow?.db) ? { database: String(databaseRow.db) } : {}),
204
+ schemas,
205
+ tables: [...tables.values()],
206
+ capturedAt: new Date().toISOString(),
207
+ warnings,
208
+ ...(truncated ? { truncated: true } : {}),
209
+ };
210
+ });
211
+ //# sourceMappingURL=mssql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mssql.js","sourceRoot":"","sources":["../../../../src/host/db/introspection/mssql.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,yEAAyE;AACzE,0EAA0E;AAE1E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,QAAQ,EAAkC,MAAM,aAAa,CAAC;AAKhK,MAAM,WAAW,GAAG;;;WAGT,CAAC;AAEZ,MAAM,UAAU,GAAG;;;;;;;;;;;cAWL,CAAC;AAEf,MAAM,WAAW,GAAG;;;;;;;;;;iBAUH,CAAC;AAElB,MAAM,QAAQ,GAAG;;;;;;;oBAOG,CAAC;AAErB,MAAM,gBAAgB,GAAG;;;;;;;;;;;;oBAYL,CAAC;AAErB,MAAM,WAAW,GAAG;;;;;;;;oBAQA,CAAC;AAErB,6FAA6F;AAC7F,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,QAAgB,EAAE,SAA6B,EAAE,SAA6B,EAAE,KAAyB,EAAU,EAAE;IACnJ,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACpC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IACnK,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9J,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,SAAS,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IACzH,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IACpH,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,UAAwB,EAAE,OAAkC,EAAqB,EAAE,CACjH,aAAa,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;IACvC,MAAM,KAAK,GAAG,KAAK,EAAE,GAAW,EAAkB,EAAE;QAClD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/C,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,SAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,CAAC,CAAC;IACF,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,WAAW,GAAG,CAAC,MAAM,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,CAAC,MAAM,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACzE,MAAM,KAAK,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;IAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAChN,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,OAAO,IAAI,EAAE;QAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,IAAI,sCAAsC,CAAC,CAAC;IAC3K,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,CAAC,MAAe,EAAW,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAEnF,MAAM,UAAU,GAAG,CAAC,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC;SACzC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SACjC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACb,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;QACvB,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,CAAC,CAAE,MAAgB,CAAC,CAAC,CAAE,OAAiB;QAC1E,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;QAC9B,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;KACjC,CAAC,CAAC,CAAC;IACN,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAC;IAChD,KAAK,MAAM,SAAS,IAAI,QAAQ,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,CACR,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,EAC1C,UAAU,CAAC,SAAS,EAAE;YACpB,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5D,GAAG,CAAC,SAAS,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtF,CAAC,CACH,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,CAAC,GAAQ,EAA6B,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChH,KAAK,MAAM,GAAG,IAAI,MAAM,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;YAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACjD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBACjB,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;gBACrB,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACxH,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;gBAC1D,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;gBACjC,UAAU,EAAE,KAAK;gBACjB,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvD,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9D,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxE,CAAC,CAAC;QACL,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAmF,CAAC;QAC7G,KAAK,MAAM,GAAG,IAAI,MAAM,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACjD,IAAI,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,KAAK,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;gBACtG,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC5B,CAAC;YACD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI;gBAAE,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC;;gBAC3D,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5F,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAsK,CAAC;QAC/L,KAAK,MAAM,GAAG,IAAI,MAAM,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAChD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACjD,IAAI,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,KAAK,GAAG;oBACN,KAAK;oBACL,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;oBACvB,OAAO,EAAE,EAAE;oBACX,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;oBAC9B,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;oBAC7B,UAAU,EAAE,EAAE;oBACd,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3F,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC5F,CAAC;gBACF,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC3B,CAAC;YACD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACpC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7C,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACtC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;gBAC3B,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvD,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxD,CAAC,CAAC;QACL,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAwG,CAAC;QACpI,KAAK,MAAM,GAAG,IAAI,MAAM,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;YAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YAChD,IAAI,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,KAAK,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;gBAC7H,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC9B,CAAC;YACD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YACzC,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC;gBAAE,SAAS;YAC7E,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5I,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE;YAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO;QACL,OAAO,EAAE,OAAO;QAChB,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,OAAO;QACP,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QAC5B,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACpC,QAAQ;QACR,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { DbConnection } from "../types.js";
2
+ import { type ResolvedIntrospectOptions } from "./shared.js";
3
+ import type { DbSchema } from "./types.js";
4
+ export declare const introspectMysql: (connection: DbConnection, options: ResolvedIntrospectOptions) => Promise<DbSchema>;
5
+ //# sourceMappingURL=mysql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql.d.ts","sourceRoot":"","sources":["../../../../src/host/db/introspection/mysql.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAA0F,KAAK,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACrJ,OAAO,KAAK,EAAE,QAAQ,EAAiB,MAAM,YAAY,CAAC;AAsD1D,eAAO,MAAM,eAAe,GAAI,YAAY,YAAY,EAAE,SAAS,yBAAyB,KAAG,OAAO,CAAC,QAAQ,CAwH3G,CAAC"}
@@ -0,0 +1,163 @@
1
+ // MySQL / MariaDB schema introspection over information_schema (one
2
+ // connection, five queries). A MySQL "schema" is a database; the connection's
3
+ // own database is read unless schemas are named.
4
+ import { withMysqlConnection } from "../mysqlAdapter.js";
5
+ import { asNumber, asString, emptyTable, finishTable, referentialAction, selectTables, tableKey } from "./shared.js";
6
+ const SYSTEM_SCHEMAS = ["mysql", "information_schema", "performance_schema", "sys"];
7
+ const SCHEMAS_SQL = `
8
+ SELECT SCHEMA_NAME AS sch FROM information_schema.SCHEMATA
9
+ WHERE SCHEMA_NAME NOT IN ('mysql', 'information_schema', 'performance_schema', 'sys')
10
+ ORDER BY 1`;
11
+ const TABLES_SQL = `
12
+ SELECT TABLE_SCHEMA AS sch, TABLE_NAME AS tbl, TABLE_TYPE AS kind, TABLE_COMMENT AS comment, TABLE_ROWS AS estimate
13
+ FROM information_schema.TABLES
14
+ WHERE TABLE_SCHEMA IN (?)
15
+ ORDER BY 1, 2`;
16
+ const COLUMNS_SQL = `
17
+ SELECT TABLE_SCHEMA AS sch, TABLE_NAME AS tbl, COLUMN_NAME AS col, ORDINAL_POSITION AS ordinal, COLUMN_TYPE AS data_type,
18
+ IS_NULLABLE AS nullable, COLUMN_DEFAULT AS default_value, EXTRA AS extra, COLUMN_COMMENT AS comment
19
+ FROM information_schema.COLUMNS
20
+ WHERE TABLE_SCHEMA IN (?)
21
+ ORDER BY 1, 2, 4`;
22
+ const CONSTRAINTS_SQL = `
23
+ SELECT tc.CONSTRAINT_NAME AS cname, tc.CONSTRAINT_TYPE AS ctype, tc.TABLE_SCHEMA AS sch, tc.TABLE_NAME AS tbl,
24
+ kcu.COLUMN_NAME AS col, kcu.ORDINAL_POSITION AS pos,
25
+ kcu.REFERENCED_TABLE_SCHEMA AS ref_sch, kcu.REFERENCED_TABLE_NAME AS ref_tbl, kcu.REFERENCED_COLUMN_NAME AS ref_col,
26
+ rc.DELETE_RULE AS on_delete, rc.UPDATE_RULE AS on_update
27
+ FROM information_schema.TABLE_CONSTRAINTS tc
28
+ JOIN information_schema.KEY_COLUMN_USAGE kcu
29
+ ON kcu.CONSTRAINT_SCHEMA = tc.CONSTRAINT_SCHEMA AND kcu.CONSTRAINT_NAME = tc.CONSTRAINT_NAME AND kcu.TABLE_NAME = tc.TABLE_NAME
30
+ LEFT JOIN information_schema.REFERENTIAL_CONSTRAINTS rc
31
+ ON rc.CONSTRAINT_SCHEMA = tc.CONSTRAINT_SCHEMA AND rc.CONSTRAINT_NAME = tc.CONSTRAINT_NAME AND rc.TABLE_NAME = tc.TABLE_NAME
32
+ WHERE tc.TABLE_SCHEMA IN (?) AND tc.CONSTRAINT_TYPE IN ('PRIMARY KEY', 'UNIQUE', 'FOREIGN KEY')
33
+ ORDER BY tc.TABLE_SCHEMA, tc.TABLE_NAME, tc.CONSTRAINT_NAME, kcu.ORDINAL_POSITION`;
34
+ const INDEXES_SQL = `
35
+ SELECT TABLE_SCHEMA AS sch, TABLE_NAME AS tbl, INDEX_NAME AS name, NON_UNIQUE AS non_unique, SEQ_IN_INDEX AS pos, COLUMN_NAME AS col
36
+ FROM information_schema.STATISTICS
37
+ WHERE TABLE_SCHEMA IN (?)
38
+ ORDER BY 1, 2, 3, 5`;
39
+ export const introspectMysql = (connection, options) => withMysqlConnection(connection, async (conn) => {
40
+ const query = async (sql, params = []) => {
41
+ const [rows] = await conn.query(sql, params);
42
+ return Array.isArray(rows) ? rows : [];
43
+ };
44
+ const warnings = [];
45
+ const schemas = (await query(SCHEMAS_SQL)).map((row) => String(row.sch));
46
+ const own = connection.database?.trim();
47
+ const wanted = options.schemas
48
+ ? options.schemas.filter((name) => schemas.includes(name) && !SYSTEM_SCHEMAS.includes(name))
49
+ : own && schemas.includes(own)
50
+ ? [own]
51
+ : schemas;
52
+ for (const name of options.schemas ?? [])
53
+ if (!schemas.includes(name))
54
+ warnings.push(`Database "${name}" is not visible to this connection.`);
55
+ const tableRows = wanted.length > 0 ? await query(TABLES_SQL, [wanted]) : [];
56
+ const candidates = tableRows.map((row) => ({
57
+ schema: String(row.sch),
58
+ name: String(row.tbl),
59
+ kind: /VIEW/i.test(String(row.kind)) ? "view" : "table",
60
+ comment: asString(row.comment),
61
+ estimate: asNumber(row.estimate),
62
+ }));
63
+ const { selected, truncated } = selectTables(candidates, options);
64
+ const tables = new Map();
65
+ for (const candidate of selected) {
66
+ tables.set(tableKey(candidate.schema, candidate.name), emptyTable(candidate, {
67
+ ...(candidate.comment ? { comment: candidate.comment } : {}),
68
+ ...(candidate.estimate !== undefined && candidate.kind === "table" ? { rowCountEstimate: candidate.estimate } : {}),
69
+ }));
70
+ }
71
+ if (!options.objectsOnly && tables.size > 0) {
72
+ const detailSchemas = [...new Set(selected.map((candidate) => candidate.schema))];
73
+ for (const row of await query(COLUMNS_SQL, [detailSchemas])) {
74
+ const table = tables.get(tableKey(String(row.sch), String(row.tbl)));
75
+ if (!table)
76
+ continue;
77
+ const defaultValue = asString(row.default_value);
78
+ const extra = String(row.extra ?? "").toLowerCase();
79
+ table.columns.push({
80
+ name: String(row.col),
81
+ dataType: String(row.data_type),
82
+ ordinal: asNumber(row.ordinal) ?? table.columns.length + 1,
83
+ nullable: /^yes$/i.test(String(row.nullable ?? "")),
84
+ primaryKey: false,
85
+ ...(defaultValue !== undefined ? { defaultValue } : {}),
86
+ ...(extra.includes("auto_increment") ? { autoIncrement: true } : {}),
87
+ ...(asString(row.comment) ? { comment: asString(row.comment) } : {}),
88
+ });
89
+ }
90
+ const groups = new Map();
91
+ for (const row of await query(CONSTRAINTS_SQL, [detailSchemas])) {
92
+ const table = tables.get(tableKey(String(row.sch), String(row.tbl)));
93
+ if (!table)
94
+ continue;
95
+ const key = `${row.sch}.${row.tbl}.${row.cname}`;
96
+ let group = groups.get(key);
97
+ if (!group) {
98
+ group = {
99
+ type: String(row.ctype),
100
+ table,
101
+ columns: [],
102
+ refColumns: [],
103
+ ...(asString(row.ref_sch) ? { refSchema: String(row.ref_sch) } : {}),
104
+ ...(asString(row.ref_tbl) ? { refTable: String(row.ref_tbl) } : {}),
105
+ ...(referentialAction(row.on_delete) ? { onDelete: referentialAction(row.on_delete) } : {}),
106
+ ...(referentialAction(row.on_update) ? { onUpdate: referentialAction(row.on_update) } : {}),
107
+ };
108
+ groups.set(key, group);
109
+ }
110
+ group.columns.push(String(row.col));
111
+ if (asString(row.ref_col))
112
+ group.refColumns.push(String(row.ref_col));
113
+ }
114
+ for (const [key, group] of groups) {
115
+ const name = key.split(".").slice(2).join(".");
116
+ if (group.type === "PRIMARY KEY")
117
+ group.table.primaryKey = group.columns;
118
+ else if (group.type === "UNIQUE")
119
+ group.table.indexes.push({ name, columns: group.columns, unique: true });
120
+ else if (group.type === "FOREIGN KEY" && group.refTable) {
121
+ group.table.foreignKeys.push({
122
+ name,
123
+ columns: group.columns,
124
+ ...(group.refSchema ? { refSchema: group.refSchema } : {}),
125
+ refTable: group.refTable,
126
+ refColumns: group.refColumns,
127
+ ...(group.onDelete ? { onDelete: group.onDelete } : {}),
128
+ ...(group.onUpdate ? { onUpdate: group.onUpdate } : {}),
129
+ });
130
+ }
131
+ }
132
+ const indexGroups = new Map();
133
+ for (const row of await query(INDEXES_SQL, [detailSchemas])) {
134
+ const table = tables.get(tableKey(String(row.sch), String(row.tbl)));
135
+ if (!table)
136
+ continue;
137
+ const key = `${row.sch}.${row.tbl}.${row.name}`;
138
+ let group = indexGroups.get(key);
139
+ if (!group) {
140
+ group = { table, name: String(row.name), unique: !Number(row.non_unique), columns: [] };
141
+ indexGroups.set(key, group);
142
+ }
143
+ group.columns.push(String(row.col));
144
+ }
145
+ for (const group of indexGroups.values()) {
146
+ if (group.table.indexes.some((index) => index.name === group.name))
147
+ continue;
148
+ group.table.indexes.push({ name: group.name, columns: group.columns, unique: group.unique, ...(group.name === "PRIMARY" ? { primary: true } : {}) });
149
+ }
150
+ for (const table of tables.values())
151
+ finishTable(table);
152
+ }
153
+ return {
154
+ dialect: "mysql",
155
+ ...(own ? { database: own } : {}),
156
+ schemas,
157
+ tables: [...tables.values()],
158
+ capturedAt: new Date().toISOString(),
159
+ warnings,
160
+ ...(truncated ? { truncated: true } : {}),
161
+ };
162
+ });
163
+ //# sourceMappingURL=mysql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql.js","sourceRoot":"","sources":["../../../../src/host/db/introspection/mysql.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { DbConnection } from "../types.js";
2
+ import { type ResolvedIntrospectOptions } from "./shared.js";
3
+ import type { DbSchema } from "./types.js";
4
+ export declare const formatOracleType: (row: {
5
+ DATA_TYPE?: unknown;
6
+ DATA_LENGTH?: unknown;
7
+ CHAR_LENGTH?: unknown;
8
+ DATA_PRECISION?: unknown;
9
+ DATA_SCALE?: unknown;
10
+ }) => string;
11
+ export declare const introspectOracle: (connection: DbConnection, options: ResolvedIntrospectOptions) => Promise<DbSchema>;
12
+ //# sourceMappingURL=oracle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oracle.d.ts","sourceRoot":"","sources":["../../../../src/host/db/introspection/oracle.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAA0F,KAAK,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACrJ,OAAO,KAAK,EAAE,QAAQ,EAAiB,MAAM,YAAY,CAAC;AA0D1D,eAAO,MAAM,gBAAgB,GAAI,KAAK;IAAE,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,KAAG,MAc7J,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,YAAY,YAAY,EAAE,SAAS,yBAAyB,KAAG,OAAO,CAAC,QAAQ,CAmJ5G,CAAC"}