orcaq 1.1.4 → 1.1.6

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 (339) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/27ZsWTm2.js +1 -0
  3. package/.output/public/_nuxt/{e04t7nee.js → 3jfBYqJb.js} +1 -1
  4. package/.output/public/_nuxt/{DZ9fd-xA.js → 4LC09zKL.js} +1 -1
  5. package/.output/public/_nuxt/4OV_5qQE.js +1 -0
  6. package/.output/public/_nuxt/6NXhlm49.js +1 -0
  7. package/.output/public/_nuxt/6wO6CbCo.js +1 -0
  8. package/.output/public/_nuxt/{BqZGP9WI.js → 7nPLTDFM.js} +1 -1
  9. package/.output/public/_nuxt/B10QBDL6.js +1 -0
  10. package/.output/public/_nuxt/{DaiufW99.js → B3iNzG14.js} +1 -1
  11. package/.output/public/_nuxt/B5HZeat4.js +1 -0
  12. package/.output/public/_nuxt/B5rxJs06.js +1 -0
  13. package/.output/public/_nuxt/{DdW7QNKl.js → BAasx5OS.js} +1 -1
  14. package/.output/public/_nuxt/{DHnV-0Qj.js → BCa-NKh0.js} +1 -1
  15. package/.output/public/_nuxt/{CxSk31iP.js → BCazdlgN.js} +1 -1
  16. package/.output/public/_nuxt/{DQCTvlJf.js → BEvswgw7.js} +1 -1
  17. package/.output/public/_nuxt/{DmpCN34M.js → BJ8qQpib.js} +1 -1
  18. package/.output/public/_nuxt/{_Od8x2z5.js → BJoSd_uV.js} +1 -1
  19. package/.output/public/_nuxt/BKAEFZqP.js +1 -0
  20. package/.output/public/_nuxt/BTvOPFKG.js +1 -0
  21. package/.output/public/_nuxt/{g4lEPr__.js → BWg3wiuc.js} +3 -3
  22. package/.output/public/_nuxt/{xoY3RXI7.js → B_hWP06g.js} +1 -1
  23. package/.output/public/_nuxt/{DKhuBYhy.js → Bap1X7GD.js} +1 -1
  24. package/.output/public/_nuxt/{DynamicTable.B3c2woGb.css → BaseDataGrid.C2ywM2-T.css} +1 -1
  25. package/.output/public/_nuxt/{B_J4rjuT.js → BbLqUOHs.js} +1 -1
  26. package/.output/public/_nuxt/{BdaSWOzD.js → BbawOYVr.js} +1 -1
  27. package/.output/public/_nuxt/Bf2bW_MY.js +7 -0
  28. package/.output/public/_nuxt/{BxdkXfb_.js → Bgj8Q52i.js} +1 -1
  29. package/.output/public/_nuxt/BhzzQZRC.js +1 -0
  30. package/.output/public/_nuxt/{CwgI7YXL.js → Bibtvqd8.js} +1 -1
  31. package/.output/public/_nuxt/{BYY9MB0h.js → BmEIj9l9.js} +1 -1
  32. package/.output/public/_nuxt/BnZ5qYkP.js +39 -0
  33. package/.output/public/_nuxt/BoUZO_NV.js +1 -0
  34. package/.output/public/_nuxt/Bok35x_B.js +1 -0
  35. package/.output/public/_nuxt/{D65Keo_g.js → BuSZbOQO.js} +1 -1
  36. package/.output/public/_nuxt/BusLuQ4Q.js +1 -0
  37. package/.output/public/_nuxt/{DryPPXlb.js → BxZgIpkD.js} +1 -1
  38. package/.output/public/_nuxt/{C5zTeLKh.js → C4-wpUAK.js} +1 -1
  39. package/.output/public/_nuxt/{ziSTJBFH.js → C445d10Z.js} +1 -1
  40. package/.output/public/_nuxt/{2XEGje4L.js → C6CFIGob.js} +1 -1
  41. package/.output/public/_nuxt/{CYaqLaPZ.js → C6bwwZAc.js} +1 -1
  42. package/.output/public/_nuxt/C7C1kq_N.js +1 -0
  43. package/.output/public/_nuxt/{DijSUoYv.js → C9ZBCJdc.js} +1 -1
  44. package/.output/public/_nuxt/{BQFJwqXj.js → CBjcd4cE.js} +1 -1
  45. package/.output/public/_nuxt/{DKJfWiWm.js → CCK1so3F.js} +1 -1
  46. package/.output/public/_nuxt/CCOlJAKS.js +2 -0
  47. package/.output/public/_nuxt/{C6yADG7D.js → CE0zlNDo.js} +1 -1
  48. package/.output/public/_nuxt/CEoM97rJ.js +1 -0
  49. package/.output/public/_nuxt/CHAVZu6b.js +2 -0
  50. package/.output/public/_nuxt/CN8b9qPP.js +1 -0
  51. package/.output/public/_nuxt/{DYqNroD1.js → CNPNWuzz.js} +1 -1
  52. package/.output/public/_nuxt/{DEsdpKnm.js → CO0Pa76w.js} +1 -1
  53. package/.output/public/_nuxt/CP-7VdtS.js +1 -0
  54. package/.output/public/_nuxt/{MC96ynYQ.js → CROH8wgk.js} +1 -1
  55. package/.output/public/_nuxt/CUws2Uv7.js +1 -0
  56. package/.output/public/_nuxt/CZLVBTJx.js +1 -0
  57. package/.output/public/_nuxt/{BqjMHuu8.js → Cf6n9dsT.js} +1 -1
  58. package/.output/public/_nuxt/{BWphy0Pi.js → Ci7hrFNN.js} +1 -1
  59. package/.output/public/_nuxt/{BVl8VKr5.js → Cl3VX8Um.js} +1 -1
  60. package/.output/public/_nuxt/Cl5p4EQY.js +1 -0
  61. package/.output/public/_nuxt/CnQob-tn.js +1 -0
  62. package/.output/public/_nuxt/{u7qmw6wa.js → CoQ_oOia.js} +2 -2
  63. package/.output/public/_nuxt/CoX1_N4R.js +1 -0
  64. package/.output/public/_nuxt/CvDZBOay.js +1 -0
  65. package/.output/public/_nuxt/{CFOJLBf2.js → Cvkyd5iW.js} +1 -1
  66. package/.output/public/_nuxt/D29mzs5t.js +1 -0
  67. package/.output/public/_nuxt/D9MMtvTu.js +52 -0
  68. package/.output/public/_nuxt/{-lZvfnzr.js → D9Ycznwo.js} +1 -1
  69. package/.output/public/_nuxt/{C2kyA9ZS.js → DDsaDrGo.js} +1 -1
  70. package/.output/public/_nuxt/{5cKDQgbQ.js → DHyymmeR.js} +1 -1
  71. package/.output/public/_nuxt/{Bp1mKnR0.js → DLA-ioQ4.js} +1 -1
  72. package/.output/public/_nuxt/DM8LJTsg.js +1 -0
  73. package/.output/public/_nuxt/{Ef-1UUMy.js → DP6Az3fC.js} +1 -1
  74. package/.output/public/_nuxt/{DNpk_jbU.js → DRX1aIGD.js} +1 -1
  75. package/.output/public/_nuxt/{DDS9xPxH.js → DViCRsmA.js} +1 -1
  76. package/.output/public/_nuxt/{CmzTcheK.js → DYPm3mWQ.js} +1 -1
  77. package/.output/public/_nuxt/{BXp87mMj.js → DYqShb5v.js} +4 -4
  78. package/.output/public/_nuxt/DZFq5yqu.js +1 -0
  79. package/.output/public/_nuxt/DZVfXu09.js +1 -0
  80. package/.output/public/_nuxt/{DT4w6IwV.js → Dd89Vyx8.js} +1 -1
  81. package/.output/public/_nuxt/DdbhVPqD.js +1 -0
  82. package/.output/public/_nuxt/{l12ZvGEh.js → DeVs4gEL.js} +1 -1
  83. package/.output/public/_nuxt/{D9SUnmGh.js → Df4wU3r0.js} +1 -1
  84. package/.output/public/_nuxt/{BfSmOVMj.js → DgGwe7jd.js} +180 -180
  85. package/.output/public/_nuxt/DlymFQ5D.js +26 -0
  86. package/.output/public/_nuxt/DoNLWeqB.js +20 -0
  87. package/.output/public/_nuxt/Dpm6rnHk.js +1 -0
  88. package/.output/public/_nuxt/DsPClaxV.js +1 -0
  89. package/.output/public/_nuxt/DtOg0Asw.js +1 -0
  90. package/.output/public/_nuxt/DyDU0wFf.js +1 -0
  91. package/.output/public/_nuxt/{CRX1CszZ.js → EZ0owjER.js} +1 -1
  92. package/.output/public/_nuxt/F8eHh68O.js +9 -0
  93. package/.output/public/_nuxt/{bpGjU0QQ.js → FHx3Ejt6.js} +1 -1
  94. package/.output/public/_nuxt/{default.B0xlD4Sl.css → FileTree.CtTH3U6l.css} +1 -1
  95. package/.output/public/_nuxt/G40WRC_L.js +1 -0
  96. package/.output/public/_nuxt/{N6_KTIJr.js → Lh0RfwhV.js} +1 -1
  97. package/.output/public/_nuxt/NMm6Vanu.js +1 -0
  98. package/.output/public/_nuxt/ORit_vRp.js +1 -0
  99. package/.output/public/_nuxt/P_2SRa71.js +2 -0
  100. package/.output/public/_nuxt/PreviewRelationTable.BA0i90jA.css +1 -0
  101. package/.output/public/_nuxt/{HP3PGEjt.js → Un5zjlKE.js} +1 -1
  102. package/.output/public/_nuxt/W-4KVxy4.js +22 -0
  103. package/.output/public/_nuxt/XETGYn3c.js +1 -0
  104. package/.output/public/_nuxt/{BlRPNODF.js → ZNDxw-7x.js} +1 -1
  105. package/.output/public/_nuxt/ZVYA9HBl.js +1 -0
  106. package/.output/public/_nuxt/ZhP2FY6Y.js +1 -0
  107. package/.output/public/_nuxt/_TExiQQQ.js +3 -0
  108. package/.output/public/_nuxt/__PEYcIB.js +9 -0
  109. package/.output/public/_nuxt/{_fileId_.DDOcnoDQ.css → _fileId_.DxhkUVGK.css} +1 -1
  110. package/.output/public/_nuxt/builds/latest.json +1 -1
  111. package/.output/public/_nuxt/builds/meta/47c294b1-d6b3-4974-bd50-5046ae0a393e.json +1 -0
  112. package/.output/public/_nuxt/dDqgUqt5.js +16 -0
  113. package/.output/public/_nuxt/dSX5D8ur.js +28 -0
  114. package/.output/public/_nuxt/default.DixIpIal.css +1 -0
  115. package/.output/public/_nuxt/entry.CGwcggc4.css +1 -0
  116. package/.output/public/_nuxt/{BsA8eQHh.js → habs8oz6.js} +1 -1
  117. package/.output/public/_nuxt/{index.P0q-dO_S.css → index.C4HrDOPM.css} +1 -1
  118. package/.output/public/_nuxt/o60RgyTd.js +1 -0
  119. package/.output/public/_nuxt/{DNgNuAci.js → uDsvlLN0.js} +1 -1
  120. package/.output/public/_nuxt/{Brupmvos.js → wH-P-_6A.js} +1 -1
  121. package/.output/public/_nuxt/{Cih6uwf6.js → wrneOCBW.js} +1 -1
  122. package/.output/public/_nuxt/{BN9sUptU.js → x85BV7y_.js} +1 -1
  123. package/.output/public/_nuxt/{CrNrSEll.js → yLATXAxG.js} +1 -1
  124. package/.output/server/chunks/_/create-adapter.mjs +2 -1
  125. package/.output/server/chunks/_/create-adapter.mjs.map +1 -1
  126. package/.output/server/chunks/_/database-client-type.mjs +27 -0
  127. package/.output/server/chunks/_/database-client-type.mjs.map +1 -0
  128. package/.output/server/chunks/_/database-error.mjs +1 -1
  129. package/.output/server/chunks/_/database-roles.factory.mjs +1 -1
  130. package/.output/server/chunks/_/db-connection.mjs +6 -27
  131. package/.output/server/chunks/_/db-connection.mjs.map +1 -1
  132. package/.output/server/chunks/_/functions.factory.mjs +1 -1
  133. package/.output/server/chunks/_/instance-insights.factory.mjs +2 -1
  134. package/.output/server/chunks/_/instance-insights.factory.mjs.map +1 -1
  135. package/.output/server/chunks/_/metadata.factory.mjs +1 -1
  136. package/.output/server/chunks/_/native-backup-jobs.mjs +9 -179
  137. package/.output/server/chunks/_/native-backup-jobs.mjs.map +1 -1
  138. package/.output/server/chunks/_/native-backup.mjs +339 -0
  139. package/.output/server/chunks/_/native-backup.mjs.map +1 -0
  140. package/.output/server/chunks/_/query.factory.mjs +2 -1
  141. package/.output/server/chunks/_/query.factory.mjs.map +1 -1
  142. package/.output/server/chunks/_/redis.client.mjs +1 -1
  143. package/.output/server/chunks/_/sql-mutation-statements.mjs +496 -0
  144. package/.output/server/chunks/_/sql-mutation-statements.mjs.map +1 -0
  145. package/.output/server/chunks/_/tables.factory.mjs +58 -30
  146. package/.output/server/chunks/_/tables.factory.mjs.map +1 -1
  147. package/.output/server/chunks/_/type-alias.constants.mjs +1 -1
  148. package/.output/server/chunks/_/views.factory.mjs +1 -1
  149. package/.output/server/chunks/build/client.manifest.mjs +808 -703
  150. package/.output/server/chunks/build/client.manifest.mjs.map +1 -1
  151. package/.output/server/chunks/nitro/nitro.mjs +687 -664
  152. package/.output/server/chunks/routes/api/ai/agent.mjs +2 -1
  153. package/.output/server/chunks/routes/api/ai/agent.mjs.map +1 -1
  154. package/.output/server/chunks/routes/api/database-backup/capability.get.mjs +33 -0
  155. package/.output/server/chunks/routes/api/database-backup/capability.get.mjs.map +1 -0
  156. package/.output/server/chunks/routes/api/database-export/export-database.mjs +7 -5
  157. package/.output/server/chunks/routes/api/database-export/export-database.mjs.map +1 -1
  158. package/.output/server/chunks/routes/api/database-export/jobs/_jobId/download.get.mjs +5 -3
  159. package/.output/server/chunks/routes/api/database-export/jobs/_jobId/download.get.mjs.map +1 -1
  160. package/.output/server/chunks/routes/api/database-export/jobs/_jobId_.get.mjs +5 -3
  161. package/.output/server/chunks/routes/api/database-export/jobs/_jobId_.get.mjs.map +1 -1
  162. package/.output/server/chunks/routes/api/database-import/import-database.mjs +8 -6
  163. package/.output/server/chunks/routes/api/database-import/import-database.mjs.map +1 -1
  164. package/.output/server/chunks/routes/api/database-import/jobs/_jobId_.get.mjs +5 -3
  165. package/.output/server/chunks/routes/api/database-import/jobs/_jobId_.get.mjs.map +1 -1
  166. package/.output/server/chunks/routes/api/database-roles/create-role.mjs +3 -2
  167. package/.output/server/chunks/routes/api/database-roles/create-role.mjs.map +1 -1
  168. package/.output/server/chunks/routes/api/database-roles/delete-role.mjs +3 -2
  169. package/.output/server/chunks/routes/api/database-roles/delete-role.mjs.map +1 -1
  170. package/.output/server/chunks/routes/api/database-roles/get-databases-with-permissions.mjs +3 -2
  171. package/.output/server/chunks/routes/api/database-roles/get-databases-with-permissions.mjs.map +1 -1
  172. package/.output/server/chunks/routes/api/database-roles/get-databases.mjs +3 -2
  173. package/.output/server/chunks/routes/api/database-roles/get-databases.mjs.map +1 -1
  174. package/.output/server/chunks/routes/api/database-roles/get-permissions.mjs +3 -2
  175. package/.output/server/chunks/routes/api/database-roles/get-permissions.mjs.map +1 -1
  176. package/.output/server/chunks/routes/api/database-roles/get-role-inheritance.mjs +3 -2
  177. package/.output/server/chunks/routes/api/database-roles/get-role-inheritance.mjs.map +1 -1
  178. package/.output/server/chunks/routes/api/database-roles/get-role.mjs +3 -2
  179. package/.output/server/chunks/routes/api/database-roles/get-role.mjs.map +1 -1
  180. package/.output/server/chunks/routes/api/database-roles/get-roles.mjs +3 -2
  181. package/.output/server/chunks/routes/api/database-roles/get-roles.mjs.map +1 -1
  182. package/.output/server/chunks/routes/api/database-roles/get-schema-objects.mjs +3 -2
  183. package/.output/server/chunks/routes/api/database-roles/get-schema-objects.mjs.map +1 -1
  184. package/.output/server/chunks/routes/api/database-roles/get-schemas.mjs +3 -2
  185. package/.output/server/chunks/routes/api/database-roles/get-schemas.mjs.map +1 -1
  186. package/.output/server/chunks/routes/api/database-roles/grant-bulk-permissions.mjs +3 -2
  187. package/.output/server/chunks/routes/api/database-roles/grant-bulk-permissions.mjs.map +1 -1
  188. package/.output/server/chunks/routes/api/database-roles/grant-permission.mjs +3 -2
  189. package/.output/server/chunks/routes/api/database-roles/grant-permission.mjs.map +1 -1
  190. package/.output/server/chunks/routes/api/database-roles/revoke-permission.mjs +3 -2
  191. package/.output/server/chunks/routes/api/database-roles/revoke-permission.mjs.map +1 -1
  192. package/.output/server/chunks/routes/api/functions/definition.post.mjs +3 -2
  193. package/.output/server/chunks/routes/api/functions/definition.post.mjs.map +1 -1
  194. package/.output/server/chunks/routes/api/functions/delete.post.mjs +3 -2
  195. package/.output/server/chunks/routes/api/functions/delete.post.mjs.map +1 -1
  196. package/.output/server/chunks/routes/api/functions/overview.post.mjs +3 -2
  197. package/.output/server/chunks/routes/api/functions/overview.post.mjs.map +1 -1
  198. package/.output/server/chunks/routes/api/functions/rename.post.mjs +3 -2
  199. package/.output/server/chunks/routes/api/functions/rename.post.mjs.map +1 -1
  200. package/.output/server/chunks/routes/api/functions/signature.post.mjs +3 -2
  201. package/.output/server/chunks/routes/api/functions/signature.post.mjs.map +1 -1
  202. package/.output/server/chunks/routes/api/functions/update.post.mjs +3 -2
  203. package/.output/server/chunks/routes/api/functions/update.post.mjs.map +1 -1
  204. package/.output/server/chunks/routes/api/index.post.mjs +5 -4
  205. package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
  206. package/.output/server/chunks/routes/api/instance-insights/cancel-query.post.mjs +2 -1
  207. package/.output/server/chunks/routes/api/instance-insights/cancel-query.post.mjs.map +1 -1
  208. package/.output/server/chunks/routes/api/instance-insights/configuration.post.mjs +2 -1
  209. package/.output/server/chunks/routes/api/instance-insights/configuration.post.mjs.map +1 -1
  210. package/.output/server/chunks/routes/api/instance-insights/dashboard.post.mjs +2 -1
  211. package/.output/server/chunks/routes/api/instance-insights/dashboard.post.mjs.map +1 -1
  212. package/.output/server/chunks/routes/api/instance-insights/drop-slot.post.mjs +2 -1
  213. package/.output/server/chunks/routes/api/instance-insights/drop-slot.post.mjs.map +1 -1
  214. package/.output/server/chunks/routes/api/instance-insights/replication.post.mjs +2 -1
  215. package/.output/server/chunks/routes/api/instance-insights/replication.post.mjs.map +1 -1
  216. package/.output/server/chunks/routes/api/instance-insights/state.post.mjs +2 -1
  217. package/.output/server/chunks/routes/api/instance-insights/state.post.mjs.map +1 -1
  218. package/.output/server/chunks/routes/api/instance-insights/terminate-connection.post.mjs +2 -1
  219. package/.output/server/chunks/routes/api/instance-insights/terminate-connection.post.mjs.map +1 -1
  220. package/.output/server/chunks/routes/api/instance-insights/toggle-slot-status.post.mjs +2 -1
  221. package/.output/server/chunks/routes/api/instance-insights/toggle-slot-status.post.mjs.map +1 -1
  222. package/.output/server/chunks/routes/api/instance-insights/view.post.mjs +2 -1
  223. package/.output/server/chunks/routes/api/instance-insights/view.post.mjs.map +1 -1
  224. package/.output/server/chunks/routes/api/managment-connection/health-check.mjs +1 -0
  225. package/.output/server/chunks/routes/api/managment-connection/health-check.mjs.map +1 -1
  226. package/.output/server/chunks/routes/api/metadata/erd.post.mjs +4 -3
  227. package/.output/server/chunks/routes/api/metadata/erd.post.mjs.map +1 -1
  228. package/.output/server/chunks/routes/api/metadata/meta-data.post.mjs +4 -3
  229. package/.output/server/chunks/routes/api/metadata/meta-data.post.mjs.map +1 -1
  230. package/.output/server/chunks/routes/api/metadata/reverse-schemas.post.mjs +4 -3
  231. package/.output/server/chunks/routes/api/metadata/reverse-schemas.post.mjs.map +1 -1
  232. package/.output/server/chunks/routes/api/metrics/monitor.post.mjs +2 -1
  233. package/.output/server/chunks/routes/api/metrics/monitor.post.mjs.map +1 -1
  234. package/.output/server/chunks/routes/api/query/execute.post.mjs +3 -2
  235. package/.output/server/chunks/routes/api/query/execute.post.mjs.map +1 -1
  236. package/.output/server/chunks/routes/api/query/raw-execute-stream.post.mjs +2 -1
  237. package/.output/server/chunks/routes/api/query/raw-execute-stream.post.mjs.map +1 -1
  238. package/.output/server/chunks/routes/api/query/raw-execute.post.mjs +3 -2
  239. package/.output/server/chunks/routes/api/query/raw-execute.post.mjs.map +1 -1
  240. package/.output/server/chunks/routes/api/redis/browser/value.patch.mjs +1 -1
  241. package/.output/server/chunks/routes/api/tables/bulk-delete.post.mjs +21 -12
  242. package/.output/server/chunks/routes/api/tables/bulk-delete.post.mjs.map +1 -1
  243. package/.output/server/chunks/routes/api/tables/bulk-insert.post.mjs +90 -0
  244. package/.output/server/chunks/routes/api/tables/bulk-insert.post.mjs.map +1 -0
  245. package/.output/server/chunks/routes/api/tables/bulk-update.post.mjs +53 -11
  246. package/.output/server/chunks/routes/api/tables/bulk-update.post.mjs.map +1 -1
  247. package/.output/server/chunks/routes/api/tables/ddl.post.mjs +3 -2
  248. package/.output/server/chunks/routes/api/tables/ddl.post.mjs.map +1 -1
  249. package/.output/server/chunks/routes/api/tables/export.post.mjs +4 -3
  250. package/.output/server/chunks/routes/api/tables/export.post.mjs.map +1 -1
  251. package/.output/server/chunks/routes/api/tables/indexes.post.mjs +3 -2
  252. package/.output/server/chunks/routes/api/tables/indexes.post.mjs.map +1 -1
  253. package/.output/server/chunks/routes/api/tables/meta.post.mjs +3 -2
  254. package/.output/server/chunks/routes/api/tables/meta.post.mjs.map +1 -1
  255. package/.output/server/chunks/routes/api/tables/overview.post.mjs +3 -2
  256. package/.output/server/chunks/routes/api/tables/overview.post.mjs.map +1 -1
  257. package/.output/server/chunks/routes/api/tables/rls.post.mjs +3 -2
  258. package/.output/server/chunks/routes/api/tables/rls.post.mjs.map +1 -1
  259. package/.output/server/chunks/routes/api/tables/rules.post.mjs +3 -2
  260. package/.output/server/chunks/routes/api/tables/rules.post.mjs.map +1 -1
  261. package/.output/server/chunks/routes/api/tables/size.post.mjs +3 -2
  262. package/.output/server/chunks/routes/api/tables/size.post.mjs.map +1 -1
  263. package/.output/server/chunks/routes/api/tables/structure.post.mjs +3 -2
  264. package/.output/server/chunks/routes/api/tables/structure.post.mjs.map +1 -1
  265. package/.output/server/chunks/routes/api/tables/triggers.post.mjs +3 -2
  266. package/.output/server/chunks/routes/api/tables/triggers.post.mjs.map +1 -1
  267. package/.output/server/chunks/routes/api/views/definition.post.mjs +3 -2
  268. package/.output/server/chunks/routes/api/views/definition.post.mjs.map +1 -1
  269. package/.output/server/chunks/routes/api/views/dependencies.post.mjs +3 -2
  270. package/.output/server/chunks/routes/api/views/dependencies.post.mjs.map +1 -1
  271. package/.output/server/chunks/routes/api/views/explain.post.mjs +3 -2
  272. package/.output/server/chunks/routes/api/views/explain.post.mjs.map +1 -1
  273. package/.output/server/chunks/routes/api/views/indexes.post.mjs +3 -2
  274. package/.output/server/chunks/routes/api/views/indexes.post.mjs.map +1 -1
  275. package/.output/server/chunks/routes/api/views/meta.post.mjs +3 -2
  276. package/.output/server/chunks/routes/api/views/meta.post.mjs.map +1 -1
  277. package/.output/server/chunks/routes/api/views/overview.post.mjs +3 -2
  278. package/.output/server/chunks/routes/api/views/overview.post.mjs.map +1 -1
  279. package/.output/server/chunks/routes/renderer.mjs +1 -1
  280. package/.output/server/package.json +1 -2
  281. package/package.json +1 -1
  282. package/.output/public/_nuxt/-sZwfgN3.js +0 -1
  283. package/.output/public/_nuxt/1iqadsOZ.js +0 -1
  284. package/.output/public/_nuxt/2WkPV7Mp.js +0 -22
  285. package/.output/public/_nuxt/B8rT4ISg.js +0 -2
  286. package/.output/public/_nuxt/B9Yq_mZo.js +0 -1
  287. package/.output/public/_nuxt/BCFLQ_rL.js +0 -9
  288. package/.output/public/_nuxt/BIHJR--x.js +0 -39
  289. package/.output/public/_nuxt/BNkZeak0.js +0 -1
  290. package/.output/public/_nuxt/BNqd1Zca.js +0 -1
  291. package/.output/public/_nuxt/BOZgY48g.js +0 -1
  292. package/.output/public/_nuxt/BSBcOKKj.js +0 -1
  293. package/.output/public/_nuxt/BYav_5oM.js +0 -1
  294. package/.output/public/_nuxt/B_U4hCvn.js +0 -7
  295. package/.output/public/_nuxt/BdCzQG_z.js +0 -1
  296. package/.output/public/_nuxt/BdX6JvdH.js +0 -20
  297. package/.output/public/_nuxt/BiMJOLHR.js +0 -1
  298. package/.output/public/_nuxt/BmREJclf.js +0 -1
  299. package/.output/public/_nuxt/Bwe8I9vL.js +0 -1
  300. package/.output/public/_nuxt/C20WaARR.js +0 -1
  301. package/.output/public/_nuxt/C4HRDaS8.js +0 -1
  302. package/.output/public/_nuxt/C6r_nDJz.js +0 -2
  303. package/.output/public/_nuxt/CBfQCVFf.js +0 -1
  304. package/.output/public/_nuxt/CDPrFhDR.js +0 -67
  305. package/.output/public/_nuxt/CJhlBUX_.js +0 -1
  306. package/.output/public/_nuxt/CLXbv9E5.js +0 -1
  307. package/.output/public/_nuxt/CMT3TfI0.js +0 -1
  308. package/.output/public/_nuxt/CS5akSNT.js +0 -1
  309. package/.output/public/_nuxt/CyEWn2V2.js +0 -1
  310. package/.output/public/_nuxt/D-pZQQ02.js +0 -1
  311. package/.output/public/_nuxt/D0mrO5vS.js +0 -1
  312. package/.output/public/_nuxt/D3ujZRkc.js +0 -1
  313. package/.output/public/_nuxt/D4PtOV7Y.js +0 -1
  314. package/.output/public/_nuxt/D6c_aTbv.js +0 -1
  315. package/.output/public/_nuxt/DDIVwUV6.js +0 -1
  316. package/.output/public/_nuxt/DIoeBtoF.js +0 -10
  317. package/.output/public/_nuxt/DLTvS7Vr.js +0 -2
  318. package/.output/public/_nuxt/DQf3b-ld.js +0 -1
  319. package/.output/public/_nuxt/DUqYnCG7.js +0 -1
  320. package/.output/public/_nuxt/DdRczQp2.js +0 -3
  321. package/.output/public/_nuxt/Ddtv9Dxp.js +0 -1
  322. package/.output/public/_nuxt/Dfzgj0Oq.js +0 -1
  323. package/.output/public/_nuxt/DgRHzRny.js +0 -1
  324. package/.output/public/_nuxt/Dm-rJ5VH.js +0 -1
  325. package/.output/public/_nuxt/DoB1FFC2.js +0 -1
  326. package/.output/public/_nuxt/Dp2UQPgO.js +0 -1
  327. package/.output/public/_nuxt/DyCQWd5B.js +0 -12
  328. package/.output/public/_nuxt/KK3goksi.js +0 -1
  329. package/.output/public/_nuxt/QuickQuery.CJ7tNjo4.css +0 -1
  330. package/.output/public/_nuxt/TKeZJpIw.js +0 -1
  331. package/.output/public/_nuxt/UHOKyE8O.js +0 -1
  332. package/.output/public/_nuxt/Z42SRPvO.js +0 -1
  333. package/.output/public/_nuxt/builds/meta/9b89410f-7683-420e-9dea-d15741f0e6ce.json +0 -1
  334. package/.output/public/_nuxt/doR1dsEF.js +0 -15
  335. package/.output/public/_nuxt/entry.DEE2Ngsu.css +0 -1
  336. package/.output/server/chunks/routes/api/ai/chat.mjs +0 -77
  337. package/.output/server/chunks/routes/api/ai/chat.mjs.map +0 -1
  338. package/.output/server/node_modules/ag-grid-community/dist/package/main.esm.mjs +0 -50065
  339. package/.output/server/node_modules/ag-grid-community/package.json +0 -113
@@ -1,3 +0,0 @@
1
- import{d as M,bM as pe,k as $,w as l,p as re,g as t,o as s,D as ce,c as N,bl as te,n as O,f as e,z as p,j as fe,A as K,t as b,r as C,e as u,m as n,l as V,F as I,s as A,aY as ve,a_ as ge,a0 as ue,bj as _e,a$ as be,bQ as he,au as ie,a1 as ye,X as xe,Y as $e,Z as Ce,bm as Y,_ as ke,h as Ne,bR as Te,x as we,B as Pe,bn as Ee,$ as Se,W as De,a8 as je,a3 as Re,av as de,P as Be,i as ze,E as Z,aZ as Ie,aq as Le}from"./BfSmOVMj.js";import{C as Oe,a as Ue,b as Ve}from"./BSBcOKKj.js";import{_ as Ae}from"./C20WaARR.js";import{u as Me,_ as qe}from"./BCFLQ_rL.js";import{u as Fe}from"./Cih6uwf6.js";import"./CS5akSNT.js";import"./C2kyA9ZS.js";const Ge=M({__name:"Collapsible",props:{defaultOpen:{type:Boolean},open:{type:Boolean},disabled:{type:Boolean},unmountOnHide:{type:Boolean},asChild:{type:Boolean},as:{}},emits:["update:open"],setup(w,{emit:h}){const a=pe(w,h);return(k,g)=>(s(),$(t(Oe),re({"data-slot":"collapsible"},t(a)),{default:l(({open:T})=>[ce(k.$slots,"default",{open:T})]),_:3},16))}}),He=M({__name:"CollapsibleContent",props:{forceMount:{type:Boolean},asChild:{type:Boolean},as:{}},setup(w){const h=w;return(f,d)=>(s(),$(t(Ue),re({"data-slot":"collapsible-content"},h),{default:l(()=>[ce(f.$slots,"default")]),_:3},16))}}),Qe=M({__name:"CollapsibleTrigger",props:{asChild:{type:Boolean},as:{}},setup(w){const h=w;return(f,d)=>(s(),$(t(Ve),re({"data-slot":"collapsible-trigger"},h),{default:l(()=>[ce(f.$slots,"default")]),_:3},16))}}),me=M({__name:"PermissionBadge",props:{label:{},value:{type:[Boolean,String]},type:{default:"boolean"}},setup(w){const h=w,f=N(()=>h.type==="boolean"),d=N(()=>h.value===!0);return(a,k)=>{const g=K,T=te;return t(f)?(s(),$(T,{key:0,variant:"outline",class:O(["text-xs items-center flex gap-1 ",!t(d)&&"opacity-50"])},{default:l(()=>[e(g,{name:t(d)?"lucide:check":"lucide:x",class:O(t(fe)("size-3",t(d)&&"text-green-500"))},null,8,["name","class"]),p(" "+b(a.label),1)]),_:1},8,["class"])):(s(),$(T,{key:1,variant:"secondary",class:"text-xs"},{default:l(()=>[p(b(a.label)+": "+b(a.value),1)]),_:1}))}}}),Xe={class:"rounded-md border"},Ye={key:1,class:"ml-auto flex gap-1"},Ze={key:0,class:"border-t bg-muted/20 p-3"},Ke={class:"px-3 py-2 border-b border-border/50"},We={class:"flex flex-wrap gap-2"},Je={class:"flex border-b border-border/50"},es=["onClick"],ss={class:"max-h-[350px] overflow-y-auto"},ts={key:0,class:"flex flex-col items-center justify-center py-6 text-muted-foreground"},ns={class:"text-xs"},as={key:1,class:"divide-y divide-border/50"},os={class:"flex-1 min-w-0"},ls={class:"text-xs font-medium truncate"},is={class:"text-muted-foreground"},rs={class:"flex items-center gap-0.5"},cs={key:1,class:"flex items-center gap-2 p-3 text-xs text-muted-foreground bg-muted/30 rounded"},us=M({__name:"DatabasePermissionCard",props:{database:{},isExpanded:{type:Boolean},isCurrentDatabase:{type:Boolean},permissions:{}},emits:["toggle","updatePermission"],setup(w,{emit:h}){const f=w,d=h,a=C("tables"),k=[{id:"schemas",label:"Schemas",icon:"hugeicons:folder-02"},{id:"tables",label:"Tables",icon:"hugeicons:grid-table"},{id:"views",label:"Views",icon:"hugeicons:property-view"},{id:"functions",label:"Functions",icon:"gravity-ui:function"}],g=N(()=>{if(!f.permissions)return[];switch(a.value){case"schemas":return f.permissions.schemaPermissions;case"tables":return f.permissions.tablePermissions;case"views":return f.permissions.viewPermissions;case"functions":return f.permissions.functionPermissions;default:return[]}}),T=N(()=>{var c,m,_,P;return{tables:((c=f.permissions)==null?void 0:c.tablePermissions.length)??0,schemas:((m=f.permissions)==null?void 0:m.schemaPermissions.length)??0,views:((_=f.permissions)==null?void 0:_.viewPermissions.length)??0,functions:((P=f.permissions)==null?void 0:P.functionPermissions.length)??0}}),y=c=>{switch(c){case"table":return"hugeicons:grid-table";case"schema":return"hugeicons:folder-02";case"view":return"hugeicons:property-view";case"function":return"gravity-ui:function";default:return"hugeicons:knight-shield"}},D=N(()=>[{id:"connect",label:"CONNECT",value:f.database.canConnect,type:"boolean"},{id:"create",label:"CREATE",value:f.database.canCreate,type:"boolean"},{id:"temp",label:"TEMP",value:f.database.canTemp,type:"boolean"}]);return(c,m)=>{const _=K,P=te,R=ue,j=ge,B=be,X=ve,q=he;return s(),u("div",Xe,[n("div",{class:O(["flex items-center gap-1 px-3 py-2 cursor-pointer hover:bg-accent/50",!c.database.canConnect&&"opacity-50 cursor-not-allowed"]),onClick:m[0]||(m[0]=v=>c.database.canConnect&&d("toggle"))},[e(_,{name:c.isExpanded?"hugeicons:arrow-down-01":"hugeicons:arrow-right-01",class:O(["size-4 transition-transform",!c.database.canConnect&&"invisible"])},null,8,["name","class"]),e(_,{name:c.database.canConnect?"hugeicons:database":"hugeicons:database-locked",class:O(["size-4",c.database.canConnect?"text-yellow-400":"text-muted-foreground"])},null,8,["name","class"]),n("span",{class:O(["text-sm font-medium",!c.database.canConnect&&"text-muted-foreground"])},b(c.database.databaseName),3),c.database.canConnect?(s(),u("div",Ye,[c.database.canConnect?(s(),$(P,{key:0,variant:"outline",class:"text-xs"},{default:l(()=>m[1]||(m[1]=[p("CONNECT")])),_:1})):V("",!0),c.database.canCreate?(s(),$(P,{key:1,variant:"outline",class:"text-xs"},{default:l(()=>m[2]||(m[2]=[p("CREATE")])),_:1})):V("",!0),c.database.canTemp?(s(),$(P,{key:2,variant:"outline",class:"text-xs"},{default:l(()=>m[3]||(m[3]=[p("TEMP")])),_:1})):V("",!0)])):(s(),$(_,{key:0,name:"hugeicons:circle-lock-01",class:"size-3 text-muted-foreground ml-auto"}))],2),c.isExpanded&&c.database.canConnect?(s(),u("div",Ze,[n("div",Ke,[m[4]||(m[4]=n("p",{class:"text-xs text-muted-foreground mb-2"}," Database-level privileges: ",-1)),n("div",We,[(s(!0),u(I,null,A(t(D),v=>(s(),$(me,{key:v.id,label:v.label,value:v.value,type:v.type},null,8,["label","value","type"]))),128))])]),c.isCurrentDatabase?(s(),u(I,{key:0},[n("div",Je,[(s(),u(I,null,A(k,v=>n("button",{key:v.id,class:O(["flex items-center gap-1 px-3 py-1.5 text-xs transition-colors cursor-pointer",t(a)===v.id?"border-b-2 border-primary text-foreground":"text-muted-foreground border-b-2 border-transparent hover:text-foreground"]),onClick:L=>a.value=v.id},[e(_,{name:v.icon,class:"size-3"},null,8,["name"]),p(" "+b(v.label)+" ",1),e(P,{variant:"secondary",class:"ml-1 text-xs px-1 py-0"},{default:l(()=>[p(b(t(T)[v.id]),1)]),_:2},1024)],10,es)),64))]),n("div",ss,[t(g).length?(s(),u("div",as,[(s(!0),u(I,null,A(t(g),(v,L)=>(s(),u("div",{key:`${v.schemaName}-${v.objectName}-${L}`,class:"group flex items-center gap-2 px-3 py-2 hover:bg-accent/30"},[e(_,{name:y(v.objectType),class:"size-4 text-muted-foreground shrink-0"},null,8,["name"]),n("div",os,[n("p",ls,[n("span",is,b(v.schemaName)+".",1),p(b(v.objectName),1)])]),n("div",rs,[(s(!0),u(I,null,A(v.privileges,H=>(s(),$(P,{variant:"outline",class:"text-xs normal-case"},{default:l(()=>[p(b(H),1)]),_:2},1024))),256))]),e(q,null,{default:l(()=>[e(X,null,{default:l(()=>[e(j,{"as-child":""},{default:l(()=>[e(R,{variant:"ghost",size:"iconSm",onClick:_e(H=>d("updatePermission",v),["stop"])},{default:l(()=>[e(_,{name:"hugeicons:pencil-edit-02",class:"size-3"})]),_:2},1032,["onClick"])]),_:2},1024),e(B,null,{default:l(()=>m[5]||(m[5]=[p("Update Permission")])),_:1})]),_:2},1024)]),_:2},1024)]))),128))])):(s(),u("div",ts,[e(_,{name:"hugeicons:knight-shield",class:"size-8 mb-1 opacity-50"}),n("p",ns,"No "+b(t(a))+" permissions",1)]))])],64)):(s(),u("div",cs,[e(_,{name:"hugeicons:information-circle",class:"size-4"}),m[6]||(m[6]=n("span",null,"Connect to this database to view tables, schemas, and functions permissions.",-1))]))])):V("",!0)])}}}),ds={class:"grid gap-4 py-2"},ms={class:"grid gap-2"},ps={class:"grid gap-2"},fs={class:"grid gap-2"},vs={class:"grid gap-2"},gs={class:"grid grid-cols-2 md:grid-cols-3 gap-2"},_s={class:"text-xs"},bs={class:"grid gap-2"},hs=M({__name:"GrantRevokeDialog",props:{open:{type:Boolean},mode:{},roleName:{},permission:{},loading:{type:Boolean}},emits:["update:open","confirm"],setup(w,{emit:h}){const f=["SELECT","INSERT","UPDATE","DELETE","TRUNCATE","REFERENCES","TRIGGER"],d=["USAGE","CREATE"],a=["EXECUTE"],k=["USAGE","SELECT","UPDATE"],g=w,T=h,y=C("table"),D=C("public"),c=C(""),m=C([]),_=C([]);Me();const P=N(()=>{switch(y.value){case"table":return f;case"schema":return d;case"function":return a;case"sequence":return k;default:return[]}});ie(()=>g.open,x=>{x&&(g.permission?(y.value=g.permission.objectType,D.value=g.permission.schemaName,c.value=g.permission.objectName,_.value=[...g.permission.privileges],m.value=[...g.permission.privileges]):(y.value="table",D.value="public",c.value="",_.value=[],m.value=[]))});const R=N(()=>m.value),j=N(()=>f.filter(x=>!m.value.includes(x))),B=N(()=>R.value.length>0||j.value.length>0),X=N(()=>{const x=D.value||"<schema>",i=c.value||"<object>",F=g.roleName||"<role>",G=`${y.value.toUpperCase()} "${x}"."${i}"`,U=[];return R.value.length&&U.push(`GRANT ${R.value.join(", ")} ON ${G} TO "${F}";`),j.value.length&&U.push(`REVOKE ${j.value.join(", ")} ON ${G} FROM "${F}";`),U.length?U.join(`
2
-
3
- `):"-- No permission changes"}),q=x=>{const i=m.value.indexOf(x);i>-1?m.value.splice(i,1):m.value.push(x)},v=()=>{B.value&&T("confirm",{objectType:y.value,schemaName:D.value,objectName:c.value,grant:R.value,revoke:j.value})},L=()=>T("update:open",!1),H=N(()=>g.mode==="grant"?`Grant Permission to ${g.roleName}`:`Update Permission for ${g.roleName}`);return(x,i)=>{const F=$e,G=Ce,U=xe,ne=Te,o=Ne,r=Pe,z=we,W=ke,J=Ee,ae=Ae,oe=qe,ee=ue,se=K,E=Se,Q=De,le=ye;return s(),$(le,{open:x.open,"onUpdate:open":i[3]||(i[3]=S=>T("update:open",S))},{default:l(()=>[e(Q,{class:"max-w-[45vw]! w-[45vw]!"},{default:l(()=>[e(U,null,{default:l(()=>[e(F,null,{default:l(()=>[p(b(H.value),1)]),_:1}),e(G,null,{default:l(()=>i[4]||(i[4]=[p(" Tick to grant, untick to revoke privileges. ")])),_:1})]),_:1}),n("div",ds,[n("div",ms,[e(t(Y),null,{default:l(()=>i[5]||(i[5]=[p("Object Type")])),_:1}),e(W,{modelValue:y.value,"onUpdate:modelValue":i[0]||(i[0]=S=>y.value=S),disabled:x.mode==="update"},{default:l(()=>[e(o,null,{default:l(()=>[e(ne)]),_:1}),e(z,null,{default:l(()=>[e(r,{value:"table"},{default:l(()=>i[6]||(i[6]=[p("Table")])),_:1}),e(r,{value:"schema"},{default:l(()=>i[7]||(i[7]=[p("Schema")])),_:1}),e(r,{value:"function"},{default:l(()=>i[8]||(i[8]=[p("Function")])),_:1}),e(r,{value:"sequence"},{default:l(()=>i[9]||(i[9]=[p("Sequence")])),_:1})]),_:1})]),_:1},8,["modelValue","disabled"])]),n("div",ps,[e(t(Y),null,{default:l(()=>i[10]||(i[10]=[p("Schema")])),_:1}),e(J,{modelValue:D.value,"onUpdate:modelValue":i[1]||(i[1]=S=>D.value=S),disabled:x.mode==="update"},null,8,["modelValue","disabled"])]),n("div",fs,[e(t(Y),null,{default:l(()=>i[11]||(i[11]=[p("Object Name")])),_:1}),e(J,{modelValue:c.value,"onUpdate:modelValue":i[2]||(i[2]=S=>c.value=S),disabled:x.mode==="update"},null,8,["modelValue","disabled"])]),n("div",vs,[e(t(Y),null,{default:l(()=>i[12]||(i[12]=[p("Privileges")])),_:1}),n("div",gs,[(s(!0),u(I,null,A(P.value,S=>(s(),u("div",{key:S,class:"flex items-center gap-2 cursor-pointer"},[e(ae,{"model-value":m.value.includes(S),"onUpdate:modelValue":Hs=>q(S)},null,8,["model-value","onUpdate:modelValue"]),n("span",_s,b(S),1)]))),128))])]),n("div",bs,[e(t(Y),null,{default:l(()=>i[13]||(i[13]=[p("SQL Preview")])),_:1}),e(oe,{code:X.value,"show-copy-button":"","max-height":"24rem"},null,8,["code"])])]),e(E,null,{default:l(()=>[e(ee,{variant:"outline",onClick:L},{default:l(()=>i[14]||(i[14]=[p(" Cancel ")])),_:1}),e(ee,{disabled:!B.value||x.loading,onClick:v},{default:l(()=>[x.loading?(s(),$(se,{key:0,name:"hugeicons:loading-03",class:"size-4 mr-2 animate-spin"})):V("",!0),p(" "+b(x.mode==="grant"?"Grant":"Update"),1)]),_:1},8,["disabled"])]),_:1})]),_:1})]),_:1},8,["open"])}}}),ys={class:"px-4 py-3 shrink-0"},xs={class:"flex items-center gap-2 mb-2"},$s={key:0,class:"flex flex-wrap gap-2"},Cs={key:1,class:"mt-2 text-xs text-muted-foreground"},ks={class:"text-foreground"},Ns=M({__name:"RoleAttributesCard",props:{roleInfo:{}},setup(w){const h=w,f=N(()=>{if(!h.roleInfo)return[];const a=h.roleInfo;return[{id:"superuser",label:"Superuser",value:a.isSuperuser,type:"boolean"},{id:"login",label:"Can Login",value:a.canLogin,type:"boolean"},{id:"createdb",label:"Create DB",value:a.canCreateDb,type:"boolean"},{id:"createrole",label:"Create Role",value:a.canCreateRole,type:"boolean"},{id:"replication",label:"Replication",value:a.isReplication,type:"boolean"},{id:"connlimit",label:"Connections",value:a.connectionLimit===-1?"Unlimited":`${a.connectionLimit}`,type:"text"}]}),d=N(()=>{var a,k;return(k=(a=h.roleInfo)==null?void 0:a.memberOf)!=null&&k.length?h.roleInfo.memberOf:[]});return(a,k)=>{const g=K,T=te;return s(),u("div",ys,[n("div",xs,[e(g,{name:"hugeicons:shield-01",class:"size-4"}),k[0]||(k[0]=n("p",{class:"text-sm font-medium"},"Role Attributes",-1))]),a.roleInfo?(s(),u("div",$s,[(s(!0),u(I,null,A(t(f),y=>(s(),$(me,{key:y.id,label:y.label,value:y.value,type:y.type},null,8,["label","value","type"]))),128)),a.roleInfo.validUntil?(s(),$(T,{key:0,variant:"secondary",class:"text-xs"},{default:l(()=>[e(g,{name:"lucide:calendar",class:"size-3 mr-1"}),p(" Expires: "+b(new Date(a.roleInfo.validUntil).toLocaleDateString()),1)]),_:1})):V("",!0)])):V("",!0),t(d).length?(s(),u("div",Cs,[k[1]||(k[1]=p(" Member of: ")),n("span",ks,b(t(d).join(", ")),1)])):V("",!0)])}}}),Ts={class:"flex flex-col h-full p-1 relative"},ws={class:"flex flex-col h-full border rounded-md overflow-hidden"},Ps={class:"flex items-center gap-3 px-4 py-1 bg-sidebar"},Es={class:"font-normal text-sm"},Ss={class:"ml-auto flex items-center gap-2"},Ds={key:0,class:"flex-1 flex items-center justify-center"},js={key:1,class:"flex-1 flex flex-col items-center justify-center p-4"},Rs={class:"text-sm text-destructive"},Bs={class:"px-4 pt-0 pb-3"},zs={class:"flex items-center gap-2 mb-2"},Is={class:"flex items-center gap-2"},Ls={variant:"secondary",class:"text-xs cursor-pointer text-muted-foreground flex items-center gap-1"},Os={class:"text-xs ml-1"},Us={key:0,class:"flex items-center gap-2 text-muted-foreground"},Vs={key:1,class:"text-sm text-muted-foreground"},As={key:2,class:"space-y-1"},Ms={class:"flex flex-col flex-1 min-h-0 p-4 pt-0"},qs={class:"flex items-center gap-2 mb-3 shrink-0"},Fs={key:0,class:"flex items-center gap-2 text-muted-foreground"},Gs={key:2,class:"space-y-1 flex-1 overflow-y-auto"},et=M({__name:"[roleName]",setup(w){const h=je(),f=Re(),d=N(()=>h.params.roleName),a=N(()=>f.selectedConnection),k=N(()=>{if(!a.value)return"";if(a.value.database)return a.value.database;const o=a.value.connectionString;if(!o)return"";try{return new URL(o).pathname.slice(1)||""}catch{const r=o.match(/\/([^/?]+)(\?|$)/);return(r==null?void 0:r[1])||""}}),g=o=>k.value.toLowerCase()===o.toLowerCase(),T=C(null),y=C([]),D=async()=>{if(!(!a.value||!d.value))try{const r=await $fetch("/api/database-roles/get-role",{method:"POST",body:{...Z(a.value),roleName:d.value}});r&&(T.value={isSuperuser:r.isSuperuser,canLogin:r.canLogin,canCreateDb:r.canCreateDb,canCreateRole:r.canCreateRole,isReplication:r.isReplication,connectionLimit:r.connectionLimit,validUntil:r.validUntil,memberOf:r.memberOf})}catch(o){console.error("Error fetching role info:",o)}},c=C(!1),m=async()=>{if(!(!a.value||!d.value)){c.value=!0;try{const o=await $fetch("/api/database-roles/get-role-inheritance",{method:"POST",body:{...Z(a.value),roleName:d.value}});y.value=o}catch(o){console.error("Error fetching role inheritance:",o),y.value=[]}finally{c.value=!1}}},_=C(!1),P=C(!1),R=C(null),j=C(null),B=async()=>{if(!(!a.value||!d.value)){_.value=!0,j.value=null;try{const o=await $fetch("/api/database-roles/get-permissions",{method:"POST",body:{...Z(a.value),roleName:d.value}});R.value=o}catch(o){j.value=o instanceof Error?o.message:"Failed to fetch permissions",console.error("Error fetching permissions:",o)}finally{_.value=!1}}};de(()=>{B(),D(),m()}),ie(d,()=>{B(),D(),m()});const{isLoading:X,databasePermissions:q,fetchDatabasePermissions:v}=Fe(a),L=C(new Set),H=o=>{L.value.has(o)?L.value.delete(o):L.value.add(o)},x=o=>L.value.has(o);de(()=>v(d.value)),ie(d,o=>v(o));const i=C(!1),F=C("grant"),G=C(),U=o=>{F.value="update",G.value=o,i.value=!0},ne=async o=>{if(!(!a.value||!d.value)){P.value=!0;try{const r=[];o.grant.length>0&&r.push($fetch("/api/database-roles/grant-permission",{method:"POST",body:{...Z(a.value),roleName:d.value,objectType:o.objectType,schemaName:o.schemaName,objectName:o.objectName,privileges:o.grant}})),o.revoke.length>0&&r.push($fetch("/api/database-roles/revoke-permission",{method:"POST",body:{...Z(a.value),roleName:d.value,objectType:o.objectType,schemaName:o.schemaName,objectName:o.objectName,privileges:o.revoke}})),await Promise.all(r),i.value=!1,await B()}catch(r){console.error("Error updating permissions:",r)}finally{P.value=!1}}};return(o,r)=>{const z=K,W=ue,J=Qe,ae=He,oe=Ge,ee=te,se=Le;return s(),u("div",Ts,[n("div",ws,[n("div",Ps,[n("div",null,[n("p",Es,b(t(d)),1)]),n("div",Ss,[e(W,{variant:"outline",size:"iconSm",disabled:t(_),onClick:B},{default:l(()=>[e(z,{name:t(_)?"hugeicons:loading-03":"lucide:refresh-cw",class:O(["size-4",t(_)&&"animate-spin"])},null,8,["name","class"])]),_:1},8,["disabled"])])]),t(_)?(s(),u("div",Ds,[e(t(Be),{visible:t(_)},null,8,["visible"])])):t(j)?(s(),u("div",js,[e(z,{name:"hugeicons:information-circle",class:"size-12 text-destructive"}),n("p",Rs,b(t(j)),1),e(W,{variant:"outline",size:"sm",class:"mt-4 font-normal",onClick:B},{default:l(()=>r[1]||(r[1]=[p(" Retry ")])),_:1})])):t(R)?(s(),u(I,{key:2},[e(Ns,{"role-info":t(T)},null,8,["role-info"]),n("div",Bs,[e(oe,{"default-open":!0},{default:l(({open:E})=>[n("div",zs,[n("div",Is,[e(z,{name:"lucide:git-branch",class:"size-4 text-muted-foreground"}),r[2]||(r[2]=n("p",{class:"text-sm font-medium"},"Inherited from",-1))]),e(J,{"as-child":""},{default:l(()=>[n("div",Ls,[n("span",Os,b(E?"Collapse":"Expand"),1),e(z,{name:"lucide:chevron-down",class:O(["size-4 transition-transform",E&&"rotate-180"])},null,8,["class"])])]),_:2},1024)]),e(ae,null,{default:l(()=>[t(c)?(s(),u("div",Us,[e(z,{name:"hugeicons:loading-03",class:"size-4 animate-spin"}),r[3]||(r[3]=n("span",{class:"text-sm"},"Loading inheritance...",-1))])):t(y).length===0?(s(),u("div",Vs," No inherited roles ")):(s(),u("div",As,[(s(!0),u(I,null,A(t(y),(Q,le)=>(s(),u("div",{key:`${Q.roleName}-${le}`,class:"flex items-center text-sm gap-1 hover:bg-accent rounded-sm",style:Ie({paddingLeft:`${Q.depth*16}px`})},[e(z,{name:"lucide:corner-down-right",class:"size-3 text-muted-foreground"}),n("span",null,b(Q.roleName),1)],4))),128))]))]),_:1})]),_:1})]),n("div",Ms,[n("div",qs,[e(z,{name:"hugeicons:database",class:"size-5 text-yellow-400"}),r[4]||(r[4]=n("p",{class:"text-sm font-medium"},"Database Access",-1)),e(ee,{variant:"secondary",class:"text-xs"},{default:l(()=>[p(b(t(q).filter(E=>E.canConnect).length),1)]),_:1})]),t(X)?(s(),u("div",Fs,[e(z,{name:"hugeicons:loading-03",class:"size-4 animate-spin"}),r[5]||(r[5]=n("span",{class:"text-sm"},"Loading databases...",-1))])):t(q).length===0?(s(),$(se,{key:1,title:"No permissions found",desc:"No database permissions were found for this role."})):(s(),u("div",Gs,[(s(!0),u(I,null,A(t(q),E=>(s(),$(us,{key:E.databaseName,database:E,"is-expanded":x(E.databaseName),"is-current-database":g(E.databaseName),permissions:t(R),onToggle:Q=>H(E.databaseName),onUpdatePermission:U},null,8,["database","is-expanded","is-current-database","permissions","onToggle"]))),128))]))])],64)):(s(),$(se,{key:3,icon:"hugeicons:shield-01",title:"No data available",desc:"No permissions data is available for the current selection."}))]),e(hs,{open:t(i),"onUpdate:open":r[0]||(r[0]=E=>ze(i)?i.value=E:null),mode:t(F),roleName:t(d),permission:t(G),loading:t(P),onConfirm:ne},null,8,["open","mode","roleName","permission","loading"])])}}});export{et as default};
@@ -1 +0,0 @@
1
- import{d as ie,aP as be,r as _,c as g,au as M,aQ as fe,e as c,f as d,m as s,w as m,F as N,s as O,g as a,l as L,i as D,z as b,I as ue,J as ge,bl as G,k as I,aq as xe,a0 as he,bm as ye,bn as _e,o as i,A as we,t as x,bo as ke,P as Ie,n as Se,bp as Re,bq as Te,ap as me,a8 as Ce,a2 as Ve,a3 as Pe,am as Ke}from"./BfSmOVMj.js";import{_ as ze}from"./DDS9xPxH.js";import{_ as Ee,u as Le}from"./BiMJOLHR.js";import{_ as Ne,a as Oe}from"./BVl8VKr5.js";import{i as Ue}from"./DNgNuAci.js";import{g as Ae,a as Be}from"./DKhuBYhy.js";const je={class:"flex h-full flex-col gap-4 overflow-hidden p-4"},Me={class:"flex flex-wrap items-center gap-2"},De={class:"grid min-h-0 flex-1 gap-4 grid-cols-5"},Fe={class:"flex min-h-0 flex-col gap-4 col-span-2"},Je={class:"rounded-lg border bg-background p-4 space-y-4"},qe={class:"space-y-3"},He={class:"space-y-2"},We={class:"flex flex-wrap gap-2"},Qe={key:0,class:"space-y-2"},Ge={class:"space-y-2"},Xe={class:"min-w-0"},Ye={class:"truncate text-sm font-medium"},Ze={class:"text-xs text-muted-foreground"},et={class:"rounded-lg border bg-background p-4 space-y-4"},tt={class:"space-y-2"},st={class:"space-y-2"},at={class:"flex justify-end"},nt={class:"flex min-h-0 flex-col overflow-hidden rounded-lg border bg-background col-span-3"},lt={class:"border-b px-4 py-3"},ot={class:"flex flex-wrap items-center gap-2"},it={class:"min-h-0 flex-1 overflow-auto p-4"},dt={key:1,class:"space-y-3"},rt={class:"flex flex-wrap items-center gap-2 text-xs text-muted-foreground"},ut={class:"mt-2 overflow-auto rounded-md border bg-background p-3 text-xs"},ct=ie({__name:"RedisPubSubPanel",props:{connection:{},databaseIndex:{},databases:{}},emits:["update:databaseIndex"],setup(F,{emit:T}){const t=F,P=T,f=be(null),h=_([]),y=_(""),r=_(""),w=_(""),p=_(null),k=_(!1),U=_(!1),S=_(!1);let $=null;const J=g(()=>{var o;return((o=f.value)==null?void 0:o.subscription)??{sessionId:p.value,target:null,mode:null,targets:[]}}),K=g(()=>J.value.targets??[]),q=g(()=>{var o,n;return[{label:`${((o=f.value)==null?void 0:o.channels.length)??0} channels`},{label:`${((n=f.value)==null?void 0:n.patternCount)??0} patterns`},{label:K.value.length?`${K.value.length} active target${K.value.length===1?"":"s"}`:"Not subscribed"}]}),A=g(()=>h.value.slice().reverse()),X=o=>({method:o.method,stringConnection:o.connectionString,host:o.host,port:o.port,username:o.username,password:o.password,database:o.database,ssl:o.ssl,ssh:o.ssh}),H=async()=>{if(!t.connection){f.value=null;return}k.value=!0;try{f.value=await $fetch("/api/redis/pubsub/overview",{method:"POST",body:{...X(t.connection),databaseIndex:t.databaseIndex,sessionId:p.value}})}finally{k.value=!1}},de=async()=>{if(!p.value){h.value=[];return}const o=await $fetch("/api/redis/pubsub/messages",{method:"POST",body:{sessionId:p.value}});h.value=o.messages,f.value&&(f.value={...f.value,subscription:o.subscription})},B=async()=>{await Promise.all([H(),de()])},z=()=>{$&&(clearInterval($),$=null)},ae=()=>{z(),$=ke(()=>{B()},2e3)},re=async()=>{if(!(!t.connection||!y.value.trim())){U.value=!0;try{const o=await $fetch("/api/redis/pubsub/subscribe",{method:"POST",body:{...X(t.connection),databaseIndex:t.databaseIndex,target:y.value.trim(),sessionId:p.value}});p.value=o.subscription.sessionId,h.value=o.messages,y.value="";const n=o.subscription.targets.find(C=>C.mode==="channel");!r.value&&n&&(r.value=n.target),await H(),ae()}finally{U.value=!1}}},Y=async o=>{var V;if(!p.value)return;const n=p.value,C=await $fetch("/api/redis/pubsub/unsubscribe",{method:"POST",body:{sessionId:n,target:o??null}});if(!o||C.closed){p.value=null,h.value=[],z(),await H();return}await B(),(((V=f.value)==null?void 0:V.subscription.targets.length)??0)===0&&(p.value=null,h.value=[],z())},ne=async()=>{if(!(!t.connection||!r.value.trim())){S.value=!0;try{await $fetch("/api/redis/pubsub/publish",{method:"POST",body:{...X(t.connection),databaseIndex:t.databaseIndex,channel:r.value.trim(),payload:w.value}}),w.value="",await B()}finally{S.value=!1}}};return M(()=>{var o;return(o=f.value)==null?void 0:o.subscription.sessionId},o=>{p.value=o??null}),M(K,o=>{if(o.length===0){p.value&&z();return}if(!r.value){const n=o.find(C=>C.mode==="channel");n&&(r.value=n.target)}},{immediate:!0}),M(p,o=>{if(o){ae();return}z()}),M(()=>{var o;return[(o=t.connection)==null?void 0:o.id,t.databaseIndex]},async()=>{if(z(),p.value){await Y();return}h.value=[],await H()},{immediate:!0}),fe(()=>{z(),p.value&&$fetch("/api/redis/pubsub/unsubscribe",{method:"POST",body:{sessionId:p.value,target:null}}).catch(()=>{})}),(o,n)=>{const C=we,V=he,le=ze,Z=ye,j=_e,ee=xe;return i(),c("div",je,[d(le,{icon:"hugeicons:radio",title:"Pub/Sub",description:"Subscribe to a channel or pattern, publish test events, and watch live messages without leaving the detail flow."},{context:m(()=>n[5]||(n[5]=[])),actions:m(()=>[d(Ee,{compact:"","trigger-id":"redis-pubsub-db-index","trigger-class":"bg-background",databases:o.databases,"database-index":o.databaseIndex,"onUpdate:databaseIndex":n[0]||(n[0]=v=>P("update:databaseIndex",v))},null,8,["databases","database-index"]),d(V,{variant:"outline",size:"xxs",disabled:a(k),onClick:B},{default:m(()=>[d(C,{name:"hugeicons:redo",class:"size-3.5! min-w-3.5"}),n[6]||(n[6]=b(" Refresh "))]),_:1},8,["disabled"])]),_:1}),s("div",Me,[(i(!0),c(N,null,O(a(q),v=>(i(),I(a(G),{key:v.label,variant:"outline",class:"h-6 px-2 text-[11px] font-normal"},{default:m(()=>[b(x(v.label),1)]),_:2},1024))),128))]),s("div",De,[s("div",Fe,[s("div",Je,[s("div",qe,[n[12]||(n[12]=s("div",null,[s("div",null,[s("div",{class:"text-sm font-medium"},"Subscription"),s("p",{class:"text-xs text-muted-foreground"}," Add channels or wildcard patterns to the same live session. Pattern detection is automatic. ")])],-1)),s("div",He,[d(Z,{for:"redis-pubsub-target"},{default:m(()=>n[7]||(n[7]=[b("Target")])),_:1}),d(j,{size:"sm",id:"redis-pubsub-target",modelValue:a(y),"onUpdate:modelValue":n[1]||(n[1]=v=>D(y)?y.value=v:null),placeholder:"orders.events or orders.*"},null,8,["modelValue"]),n[8]||(n[8]=s("p",{class:"text-xs text-muted-foreground"},[b(" Use a plain channel name or include wildcard characters like "),s("span",{class:"font-mono"},"*"),b(" and "),s("span",{class:"font-mono"},"?"),b(" for patterns. ")],-1))]),s("div",We,[d(V,{size:"xs",disabled:a(U),onClick:re},{default:m(()=>n[9]||(n[9]=[b(" Add target ")])),_:1},8,["disabled"]),d(V,{size:"xs",variant:"outline",disabled:!a(p),onClick:n[2]||(n[2]=v=>Y(void 0))},{default:m(()=>n[10]||(n[10]=[b(" Clear all ")])),_:1},8,["disabled"])]),a(K).length?(i(),c("div",Qe,[n[11]||(n[11]=s("div",{class:"text-xs font-medium uppercase tracking-[0.08em] text-muted-foreground"}," Active targets ",-1)),s("div",Ge,[(i(!0),c(N,null,O(a(K),v=>(i(),c("div",{key:v.target,class:"flex items-center justify-between gap-3 rounded-lg border bg-muted/10 px-3 py-2"},[s("div",Xe,[s("div",Ye,x(v.target),1),s("div",Ze,x(v.mode==="pattern"?"Pattern detected automatically":"Channel detected automatically"),1)]),d(V,{size:"iconSm",variant:"ghost","aria-label":`Remove ${v.target}`,onClick:e=>Y(v.target)},{default:m(()=>[d(C,{name:"hugeicons:cancel-01",class:"size-4! min-w-4"})]),_:2},1032,["aria-label","onClick"])]))),128))])])):L("",!0)])]),s("div",et,[n[16]||(n[16]=s("div",null,[s("div",{class:"text-sm font-medium"},"Publish"),s("p",{class:"text-xs text-muted-foreground"}," Send a quick payload to a channel and inspect the response stream on the right. ")],-1)),s("div",tt,[d(Z,{for:"redis-pubsub-channel"},{default:m(()=>n[13]||(n[13]=[b("Channel")])),_:1}),d(j,{size:"sm",id:"redis-pubsub-channel",modelValue:a(r),"onUpdate:modelValue":n[3]||(n[3]=v=>D(r)?r.value=v:null),placeholder:"orders.events"},null,8,["modelValue"])]),s("div",st,[d(Z,{for:"redis-pubsub-payload"},{default:m(()=>n[14]||(n[14]=[b("Payload")])),_:1}),ue(s("textarea",{id:"redis-pubsub-payload","onUpdate:modelValue":n[4]||(n[4]=v=>D(w)?w.value=v:null),class:"min-h-[140px] w-full rounded-lg border bg-background px-3 py-2 text-sm font-mono",placeholder:'{"event":"order.created"}'},null,512),[[ge,a(w)]])]),s("div",at,[d(V,{size:"sm",disabled:a(S),onClick:ne},{default:m(()=>n[15]||(n[15]=[b(" Publish ")])),_:1},8,["disabled"])])])]),s("div",nt,[s("div",lt,[s("div",ot,[n[18]||(n[18]=s("div",{class:"text-sm font-medium"},"Live Messages",-1)),d(a(G),{variant:"outline",class:"h-5 px-1.5 text-xxs font-normal"},{default:m(()=>[b(x(a(A).length)+" messages ",1)]),_:1}),d(a(G),{variant:"outline",class:"h-5 px-1.5 text-xxs font-normal"},{default:m(()=>n[17]||(n[17]=[b(" Polling 2s ")])),_:1})]),n[19]||(n[19]=s("div",{class:"mt-1 text-xs text-muted-foreground"}," Message polling stays active while the current subscription session is connected. ",-1))]),s("div",it,[a(A).length===0?(i(),I(ee,{key:0,title:"No Pub/Sub messages yet",desc:"Subscribe to a channel or pattern, then publish an event to watch it appear here."})):(i(),c("div",dt,[(i(!0),c(N,null,O(a(A),v=>(i(),c("div",{key:v.id,class:"rounded-lg border bg-muted/10 p-3"},[s("div",rt,[d(a(G),{variant:"outline",class:"h-5 px-1.5 text-xxs font-normal text-foreground"},{default:m(()=>[b(x(v.channel),1)]),_:2},1024),v.pattern?(i(),I(a(G),{key:0,variant:"outline",class:"h-5 px-1.5 text-xxs font-normal"},{default:m(()=>[b(" Pattern "+x(v.pattern),1)]),_:2},1024)):L("",!0),s("span",null,x(new Date(v.receivedAt).toLocaleTimeString()),1)]),s("pre",ut,[s("code",null,x(v.payload),1)])]))),128))]))])])])])}}}),pt={class:"h-full flex flex-col gap-3 p-4 overflow-auto"},vt={key:0,class:"relative min-h-[240px] overflow-hidden rounded-lg border bg-background"},mt={key:3,class:"space-y-4"},bt={class:"flex flex-col gap-1"},ft={class:"flex items-start gap-2"},gt={class:"text-sm font-semibold break-all"},xt={class:"text-xs text-muted-foreground"},ht={class:"flex flex-wrap items-center gap-2"},yt={class:"ml-auto flex items-center gap-2"},_t=["value"],wt={class:"grid gap-3 md:grid-cols-[220px_1fr] items-start"},kt={class:"space-y-1"},$t={class:"flex items-center gap-2"},It={class:"text-xs text-muted-foreground"},St={key:0,class:"text-xs text-destructive"},Rt={key:1,class:"space-y-3"},Tt=["readonly"],Ct={key:2,class:"min-h-[360px] overflow-hidden rounded-lg border"},Vt={key:3,class:"space-y-3"},Pt={class:"flex justify-end"},Kt={class:"overflow-hidden rounded-lg border"},zt={class:"w-full text-sm"},Et={class:"bg-muted/30 text-left"},Lt={key:1},Nt={class:"px-3 py-2 text-right"},Ot={key:0},Ut=["colspan"],At={key:4,class:"min-h-[320px] overflow-auto rounded-lg border bg-muted/20 p-3 text-xs"},Bt={class:"flex justify-end"},jt=ie({__name:"RedisValueEditor",props:{detail:{},loading:{type:Boolean},saving:{type:Boolean},canEdit:{type:Boolean},unavailableReason:{}},emits:["save","refresh"],setup(F,{emit:T}){const t=F,P=T,f=_(""),h=be(null),y=_("tree"),r=_([]),w=_(""),p=_(!1),k=_(5),U=[5,10,30],S=e=>e==null?e:JSON.parse(JSON.stringify(e)),$=(e,l)=>JSON.stringify(e)===JSON.stringify(l);M(()=>t.detail,e=>{f.value=(e==null?void 0:e.previewKind)==="text"?String(e.value??""):"",h.value=(e==null?void 0:e.previewKind)==="json"?S(e.value):null,r.value=e!=null&&e.tableRows?S(e.tableRows):[],w.value=(e==null?void 0:e.ttl)!==void 0&&e.ttl>=0?`${e.ttl}`:""},{immediate:!0});const J=g(()=>t.detail?typeof t.detail.value=="string"?t.detail.value:JSON.stringify(t.detail.value,null,2):""),K=g(()=>{var e;return t.unavailableReason?t.unavailableReason:((e=t.detail)==null?void 0:e.previewKind)==="readonly"?"Value editing is unavailable for this Redis type. TTL changes can still be saved.":""}),q=g(()=>{const e=w.value.trim();if(!e)return"";const l=Number.parseInt(e,10);return!Number.isFinite(l)||l<0?"TTL must be empty or a non-negative integer.":""}),A=g(()=>{if(!t.detail)return;const e=w.value.trim(),l=t.detail.ttl>=0?`${t.detail.ttl}`:"";if(e===l)return;if(!e)return null;const R=Number.parseInt(e,10);return Number.isFinite(R)&&R>=0?R:void 0}),X=g(()=>t.detail?[{label:`DB ${t.detail.databaseIndex}`},{label:t.detail.type},{label:`TTL ${t.detail.ttlLabel}`},{label:`Size ${t.detail.memoryUsageHuman??"n/a"}`},{label:t.detail.length!==null&&t.detail.length!==void 0?`Length ${t.detail.length}`:"Length n/a"},{label:`Encoding ${t.detail.encoding??"n/a"}`}]:[]),H=g(()=>!t.detail||t.detail.type==="none"?"hugeicons:database-02":Ae(t.detail.type)),de=g(()=>!t.detail||t.detail.type==="none"?"text-primary":Be(t.detail.type)),B=g(()=>!t.detail||!t.canEdit||q.value||t.saving?!1:A.value!==void 0),z=g(()=>"Update TTL"),ae=g(()=>{var e;return t.canEdit&&((e=t.detail)==null?void 0:e.previewKind)==="table"}),re=g(()=>{if(!t.detail)return!1;switch(t.detail.previewKind){case"text":return f.value!==String(t.detail.value??"");case"json":return!$(h.value,t.detail.value);case"table":return!$(r.value,t.detail.tableRows??[]);default:return!1}}),Y=g(()=>re.value||A.value!==void 0),ne=g(()=>!t.detail||!t.canEdit||q.value?!1:Y.value),o=(e,l,R)=>{var E,oe;const te=r.value.find(se=>se.id===e);if(!te)return;const W=(oe=(E=t.detail)==null?void 0:E.tableColumns)==null?void 0:oe.find(se=>se.key===l);te[l]=(W==null?void 0:W.type)==="number"?Number(R||0):R},n=()=>{var e;((e=t.detail)==null?void 0:e.tableKind)==="list"&&(r.value=r.value.map((l,R)=>({...l,index:R})))},C=()=>{var l;if(!((l=t.detail)!=null&&l.tableKind))return;const e=`row-${Date.now()}-${r.value.length}`;switch(t.detail.tableKind){case"hash":r.value.push({id:e,field:"",value:""});break;case"list":r.value.push({id:e,index:r.value.length,value:""});break;case"set":r.value.push({id:e,value:""});break;case"zset":r.value.push({id:e,value:"",score:0});break}},V=e=>{r.value=r.value.filter(l=>l.id!==e),n()},le=()=>{if(!t.detail||!ne.value)return;const e={previewKind:t.detail.previewKind,stringFormat:t.detail.stringFormat,tableKind:t.detail.tableKind,ttlSeconds:A.value,value:t.detail.value};t.detail.previewKind==="text"&&(e.value=f.value),t.detail.previewKind==="json"&&(e.value=h.value),t.detail.previewKind==="table"&&(e.value=S(r.value)),P("save",e)},Z=()=>{B.value&&le()};let j=null;const ee=()=>{j!==null&&(clearInterval(j),j=null)};return M([p,k,()=>{var e;return(e=t.detail)==null?void 0:e.key}],()=>{ee(),!(!p.value||!t.detail)&&(j=ke(()=>{!t.detail||t.loading||t.saving||P("refresh")},k.value*1e3))},{immediate:!0}),M(()=>t.detail,e=>{e||ee()}),fe(()=>{ee()}),(e,l)=>{var pe,ve;const R=xe,te=we,W=ye,E=he,oe=Oe,se=Ne,ce=_e;return i(),c("div",pt,[e.loading&&!e.detail?(i(),c("div",vt,[l[7]||(l[7]=s("div",{class:"flex h-full min-h-[240px] items-center justify-center px-4 text-sm text-muted-foreground"}," Loading Redis key detail... ",-1)),d(a(Ie),{visible:!0})])):!e.detail&&!e.loading?(i(),I(R,{key:1,title:"Select a Redis key",desc:"Choose a key from the Redis browser to inspect its value and metadata."})):((pe=e.detail)==null?void 0:pe.type)==="none"?(i(),I(R,{key:2,icon:"icons:404",title:"Key not found",desc:"This key no longer exists. It may have expired or been deleted."})):e.detail?(i(),c("div",mt,[s("div",bt,[s("div",ft,[d(te,{name:a(H),class:Se(["mt-0.5 size-4 min-w-4",a(de)])},null,8,["name","class"]),s("div",gt,x(e.detail.key),1)]),s("div",xt,x(e.detail.type)+" key preview ",1)]),s("div",ht,[(i(!0),c(N,null,O(a(X),u=>(i(),I(a(G),{key:u.label,variant:"outline",class:"h-6 px-2 text-[11px] font-normal"},{default:m(()=>[b(x(u.label),1)]),_:2},1024))),128)),s("div",yt,[d(a(Re),{id:"redis-auto-refresh",checked:a(p),"onUpdate:checked":l[0]||(l[0]=u=>D(p)?p.value=u:null)},null,8,["checked"]),d(W,{for:"redis-auto-refresh",class:"text-xs font-medium"},{default:m(()=>l[8]||(l[8]=[b(" Auto refresh ")])),_:1}),d(E,{variant:"ghost",size:"sm",class:"h-7 px-2 text-xs","aria-label":"Refresh key detail",disabled:e.loading||e.saving,onClick:l[1]||(l[1]=u=>P("refresh"))},{default:m(()=>[d(te,{name:"hugeicons:redo",class:"size-3.5! min-w-3.5"}),l[9]||(l[9]=b(" Refresh "))]),_:1},8,["disabled"]),a(p)?ue((i(),c("select",{key:0,"onUpdate:modelValue":l[2]||(l[2]=u=>D(k)?k.value=u:null),class:"h-7 rounded-md border bg-background px-2 text-xs","aria-label":"Auto refresh interval"},[(i(),c(N,null,O(U,u=>s("option",{key:u,value:u},x(u)+"s ",9,_t)),64))],512)),[[Te,a(k)]]):L("",!0)])]),a(K)?(i(),I(se,{key:0,class:"border-border bg-muted/20"},{default:m(()=>[d(oe,{class:"text-muted-foreground"},{default:m(()=>[b(x(a(K)),1)]),_:1})]),_:1})):L("",!0),s("div",wt,[s("div",kt,[d(W,{for:"redis-ttl-input"},{default:m(()=>l[10]||(l[10]=[b("TTL (seconds)")])),_:1}),s("div",$t,[d(ce,{id:"redis-ttl-input",size:"sm","model-value":a(w),disabled:!e.canEdit,placeholder:"Leave empty to persist","onUpdate:modelValue":l[3]||(l[3]=u=>w.value=String(u||""))},null,8,["model-value","disabled"]),d(E,{variant:"outline",size:"xs",disabled:!a(B),onClick:Z},{default:m(()=>[b(x(a(z)),1)]),_:1},8,["disabled"])]),s("p",It," Current: "+x(e.detail.ttlLabel),1),a(q)?(i(),c("p",St,x(a(q)),1)):L("",!0)])]),e.detail.previewKind==="text"?(i(),c("div",Rt,[ue(s("textarea",{"onUpdate:modelValue":l[4]||(l[4]=u=>D(f)?f.value=u:null),readonly:!e.canEdit,class:"min-h-[320px] w-full rounded-lg border bg-background px-3 py-2 text-sm font-mono"},null,8,Tt),[[ge,a(f)]])])):e.detail.previewKind==="json"?(i(),c("div",Ct,[d(a(Ue),{modelValue:a(h),"onUpdate:modelValue":l[5]||(l[5]=u=>D(h)?h.value=u:null),class:"h-[360px]",mode:a(y),navigationBar:!1,readOnly:!e.canEdit,onModeChange:l[6]||(l[6]=u=>y.value=u)},null,8,["modelValue","mode","readOnly"])])):e.detail.previewKind==="table"?(i(),c("div",Vt,[s("div",Pt,[a(ae)?(i(),I(E,{key:0,variant:"outline",size:"sm",onClick:C},{default:m(()=>l[11]||(l[11]=[b(" Add Row ")])),_:1})):L("",!0)]),s("div",Kt,[s("table",zt,[s("thead",Et,[s("tr",null,[(i(!0),c(N,null,O(e.detail.tableColumns,u=>(i(),c("th",{key:u.key,class:"px-3 py-2 font-medium"},x(u.label),1))),128)),l[12]||(l[12]=s("th",{class:"w-16 px-3 py-2 font-medium"},null,-1))])]),s("tbody",null,[(i(!0),c(N,null,O(a(r),u=>(i(),c("tr",{key:u.id,class:"border-t align-top"},[(i(!0),c(N,null,O(e.detail.tableColumns,Q=>(i(),c("td",{key:Q.key,class:"px-3 py-2"},[Q.editable?(i(),I(ce,{key:0,size:"sm","model-value":`${u[Q.key]??""}`,disabled:!e.canEdit,"onUpdate:modelValue":$e=>o(u.id,Q.key,String($e||""))},null,8,["model-value","disabled","onUpdate:modelValue"])):(i(),c("span",Lt,x(u[Q.key]),1))]))),128)),s("td",Nt,[d(E,{variant:"ghost",size:"sm",disabled:!e.canEdit,onClick:Q=>V(u.id)},{default:m(()=>l[13]||(l[13]=[b(" Remove ")])),_:2},1032,["disabled","onClick"])])]))),128)),a(r).length===0?(i(),c("tr",Ot,[s("td",{colspan:(((ve=e.detail.tableColumns)==null?void 0:ve.length)||0)+1,class:"px-3 py-6 text-center text-sm text-muted-foreground"}," No rows available. ",8,Ut)])):L("",!0)])])])])):(i(),c("pre",At,[s("code",null,x(a(J)),1)])),s("div",Bt,[d(E,{size:"sm",disabled:e.saving||!a(ne),onClick:le},{default:m(()=>l[14]||(l[14]=[b(" Save Changes ")])),_:1},8,["disabled"])])])):L("",!0)])}}}),Mt=ie({__name:"RedisWorkspace",props:{connection:{},tabInfo:{}},setup(F){const T=F,t=Le({connection:()=>T.connection,tabInfo:()=>T.tabInfo}),{canEditSelectedValue:P,databases:f,editUnavailableReason:h,loadingKeys:y,loadingSelectedKeyDetail:r,savingValue:w,selectedDatabaseIndex:p,selectedKeyDetail:k}=t,U=g(()=>{var S;return((S=T.tabInfo)==null?void 0:S.type)||me.RedisBrowser});return(S,$)=>a(U)===a(me).RedisPubSub?(i(),I(ct,{key:0,connection:T.connection,"database-index":a(p),databases:a(f),"onUpdate:databaseIndex":$[0]||($[0]=J=>a(t).selectedDatabaseIndex.value=J)},null,8,["connection","database-index","databases"])):(i(),I(jt,{key:1,detail:a(k),loading:a(y)||a(r),saving:a(w),"can-edit":a(P),"unavailable-reason":a(h),onSave:a(t).saveSelectedValue,onRefresh:$[1]||($[1]=J=>a(k)&&a(t).focusKey(a(k).key))},null,8,["detail","loading","saving","can-edit","unavailable-reason","onSave"]))}}),Qt=ie({__name:"[tabViewId]",setup(F){const T=Ce(),t=Ve(),P=Pe(),{tabViews:f}=Ke(t),h=g(()=>f.value.find(y=>y.id===T.params.tabViewId));return(y,r)=>(i(),I(Mt,{connection:a(P).selectedConnection,"tab-info":a(h)},null,8,["connection","tab-info"]))}});export{Qt as default};
@@ -1 +0,0 @@
1
- import{_ as H}from"./DDS9xPxH.js";import{d as R,bC as K,e as a,m as l,f as o,bm as U,w,g as r,A as j,a0 as G,o as t,z as k,k as V,t as u,l as z,bp as W,r as q,c as M,av as J,F as y,s as T,n as S,j as X,bl as Y,a3 as Z,i as ee,bD as te,bE as se,bF as ne}from"./BfSmOVMj.js";import{_ as oe,a as ae}from"./BVl8VKr5.js";import{_ as ie}from"./D0mrO5vS.js";import{_ as P}from"./HP3PGEjt.js";import{_ as re}from"./BCFLQ_rL.js";const le={class:"flex flex-col gap-2 rounded-lg border bg-card p-4 sm:flex-row sm:items-end sm:justify-between"},de={class:"flex min-w-0 flex-1 flex-col gap-1.5"},ce={class:"flex h-9 items-center justify-center sm:w-6"},ue={class:"flex min-w-0 flex-1 flex-col gap-1.5"},me=R({__name:"SchemaDiffConnectionSelector",props:{sourceConnection:{},targetConnection:{},connections:{},isLoading:{type:Boolean}},emits:["update:targetConnection","run"],setup(x,{emit:_}){const{workspaceId:p}=K(),d=_;return(n,f)=>{var e,c;const g=U,v=j,C=G;return t(),a("div",le,[l("div",de,[o(g,{class:"text-xs font-medium text-muted-foreground"},{default:w(()=>f[2]||(f[2]=[k("Source")])),_:1}),o(P,{class:"h-9 w-full","workspace-id":r(p)||"","connection-id":((e=n.sourceConnection)==null?void 0:e.id)||"",connection:n.sourceConnection||void 0,connections:n.sourceConnection?[n.sourceConnection]:[],disabled:""},null,8,["workspace-id","connection-id","connection","connections"])]),l("div",ce,[o(v,{name:"hugeicons:arrow-right-02",class:"size-4 text-muted-foreground"})]),l("div",ue,[o(g,{class:"text-xs font-medium text-muted-foreground"},{default:w(()=>f[3]||(f[3]=[k("Target")])),_:1}),o(P,{class:"h-9 w-full","workspace-id":r(p)||"","connection-id":((c=n.targetConnection)==null?void 0:c.id)||"",connection:n.targetConnection||void 0,connections:n.connections,"onUpdate:connectionId":f[0]||(f[0]=$=>d("update:targetConnection",n.connections.find(b=>b.id===$)||null)),"skip-strict-mode-connections":""},null,8,["workspace-id","connection-id","connection","connections"])]),o(C,{disabled:!n.sourceConnection||!n.targetConnection||n.isLoading,size:"sm",onClick:f[1]||(f[1]=$=>d("run"))},{default:w(()=>[n.isLoading?(t(),V(v,{key:0,name:"hugeicons:loading-03",class:"size-4 animate-spin"})):(t(),V(v,{key:1,name:"hugeicons:git-compare",class:"size-4"})),k(" "+u(n.isLoading?"Comparing...":"Run Diff"),1)]),_:1},8,["disabled"])])}}}),fe={class:"flex flex-col gap-3"},pe={class:"flex items-center gap-3"},ge={class:"flex items-center gap-2 text-sm"},xe={class:"text-xs text-muted-foreground"},_e={class:"ml-auto flex items-center gap-2 text-xs"},he={key:0,class:"flex items-center gap-1 rounded-md bg-red-100 px-2 py-1 text-xs text-red-700 dark:bg-red-900/30 dark:text-red-400"},ve={key:0,class:"flex items-start gap-2 rounded-md border border-amber-200 bg-amber-50 p-3 text-xs text-amber-800 dark:border-amber-800 dark:bg-amber-900/20 dark:text-amber-300"},ye={key:2,class:"min-h-32 flex items-center justify-center rounded-md border bg-muted/30 p-4 font-mono text-xs text-muted-foreground"},ke=R({__name:"SchemaDiffSqlPanel",props:{sql:{},safeMode:{type:Boolean},statementCount:{},destructiveCount:{}},emits:["update:safeMode"],setup(x,{emit:_}){const p=_;return(d,n)=>{const f=j,g=U,v=W,C=re;return t(),a("div",fe,[l("div",pe,[l("div",ge,[o(f,{name:"hugeicons:code",class:"size-4 text-muted-foreground"}),n[1]||(n[1]=l("span",{class:"font-medium"},"Generated SQL",-1)),l("span",xe,"("+u(d.statementCount)+" statements)",1)]),l("div",_e,[o(g,{for:"safe-mode-toggle",class:"cursor-pointer text-muted-foreground"},{default:w(()=>n[2]||(n[2]=[k(" Safe mode ")])),_:1}),o(v,{id:"safe-mode-toggle","model-value":d.safeMode,"onUpdate:modelValue":n[0]||(n[0]=e=>p("update:safeMode",e))},null,8,["model-value"])]),d.destructiveCount>0&&!d.safeMode?(t(),a("div",he,[o(f,{name:"hugeicons:alert-circle",class:"size-3.5"}),k(" "+u(d.destructiveCount)+" destructive ",1)])):z("",!0)]),d.safeMode?(t(),a("div",ve,[o(f,{name:"hugeicons:shield-01",class:"mt-0.5 size-3.5 shrink-0"}),n[3]||(n[3]=l("span",null,"Safe mode is on — destructive statements (DROP TABLE, DROP COLUMN) are commented out. Disable to include them.",-1))])):z("",!0),d.sql?(t(),V(C,{key:1,code:d.sql,language:"sql","max-height":"400px"},null,8,["code"])):(t(),a("div",ye," No SQL statements generated. "))])}}}),be={class:"space-y-1 font-mono text-sm"},Ce={class:"mb-3 flex flex-wrap gap-2"},we=["onClick"],$e={key:0,class:"divide-y"},Se=["onClick"],ze={class:"flex-1 truncate"},De={class:"flex-1 truncate text-xs"},qe={class:"shrink-0 text-xxs text-muted-foreground"},Le={class:"flex-1 truncate text-xs"},Te={class:"flex-1 truncate"},Me={class:"flex-1 truncate"},Ve={key:0,class:"flex flex-col items-center gap-2 py-12 text-muted-foreground"},Be=R({__name:"SchemaDiffTree",props:{result:{}},setup(x){const _=q(new Set),p=q(new Set),d={added:{label:"Added",class:"text-emerald-600 dark:text-emerald-400",icon:"hugeicons:plus-sign"},removed:{label:"Removed",class:"text-red-600 dark:text-red-400",icon:"hugeicons:minus-sign"},modified:{label:"Modified",class:"text-amber-600 dark:text-amber-400",icon:"hugeicons:edit-02"},unchanged:{label:"Unchanged",class:"text-muted-foreground",icon:"hugeicons:check-01"}},n={added:"bg-emerald-100 text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-400 rounded-sm",removed:"bg-red-100 text-red-700 dark:bg-red-900/40 dark:text-red-400 rounded-sm",modified:"bg-amber-100 text-amber-700 dark:bg-amber-900/40 dark:text-amber-400 rounded-sm"},f=e=>{_.value.has(e)?_.value.delete(e):_.value.add(e)},g=e=>{p.value.has(e)?p.value.delete(e):p.value.add(e)},v=(e,c)=>`${e}.${c}`,C=M(()=>x.result.schemas.filter(e=>e.tables.some(c=>c.status!=="unchanged")||e.views.some(c=>c.status!=="unchanged")||e.functions.some(c=>c.status!=="unchanged")));return J(()=>{for(const e of C.value)_.value.add(e.name)}),(e,c)=>{const $=Y,b=j;return t(),a("div",be,[l("div",Ce,[(t(!0),a(y,null,T(e.result.summary,(h,s)=>(t(),a(y,{key:s},[s!=="unchanged"?(t(),V($,{key:0,variant:"outline",class:S(r(X)(n[s],"capitalize border-0"))},{default:w(()=>[k(u(h)+" "+u(s),1)]),_:2},1032,["class"])):z("",!0)],64))),128))]),(t(!0),a(y,null,T(r(C),h=>(t(),a("div",{key:h.name,class:"rounded-md border overflow-hidden"},[l("button",{class:"flex w-full items-center gap-2 bg-muted/50 px-3 py-2 text-left text-xs font-semibold capitalize text-muted-foreground hover:bg-muted",onClick:s=>f(h.name)},[o(b,{name:r(_).has(h.name)?"hugeicons:arrow-down-01":"hugeicons:arrow-right-01",class:"size-3.5 shrink-0"},null,8,["name"]),o(b,{name:"hugeicons:database",class:"size-3.5 shrink-0"}),k(" "+u(h.name),1)],8,we),r(_).has(h.name)?(t(),a("div",$e,[(t(!0),a(y,null,T(h.tables.filter(s=>s.status!=="unchanged"),s=>(t(),a(y,{key:s.name},[l("div",{class:S(["flex cursor-pointer items-center gap-2 px-4 py-2 hover:bg-muted/30",d[s.status].class]),onClick:i=>g(v(h.name,s.name))},[o(b,{name:r(p).has(v(h.name,s.name))?"hugeicons:arrow-down-01":"hugeicons:arrow-right-01",class:"size-3 shrink-0 text-muted-foreground"},null,8,["name"]),o(b,{name:"hugeicons:table-01",class:"size-3.5 shrink-0"}),l("span",ze,u(s.name),1),l("span",{class:S(["ml-auto shrink-0 rounded px-1.5 py-0.5 text-xxs font-medium capitalize",n[s.status]])},u(s.status),3)],10,Se),r(p).has(v(h.name,s.name))?(t(),a(y,{key:0},[(t(!0),a(y,null,T(s.columns.filter(i=>i.status!=="unchanged"),i=>{var D,m,B;return t(),a("div",{key:i.name,class:S(["flex items-center gap-2 py-1.5 pl-10 pr-4",d[i.status].class])},[o(b,{name:"hugeicons:columns-02",class:"size-3 shrink-0 opacity-60"}),l("span",De,u(i.name),1),l("span",qe,[i.status==="added"?(t(),a(y,{key:0},[k(u((D=i.source)==null?void 0:D.type),1)],64)):i.status==="removed"?(t(),a(y,{key:1},[k(u((m=i.target)==null?void 0:m.type),1)],64)):(B=i.changes)!=null&&B.type?(t(),a(y,{key:2},[k(u(i.changes.type.from)+" → "+u(i.changes.type.to),1)],64)):z("",!0)]),l("span",{class:S(["shrink-0 rounded px-1 py-0.5 text-[9px] font-medium capitalize",n[i.status]])},u(i.status),3)],2)}),128)),(t(!0),a(y,null,T(s.foreignKeys.filter(i=>i.status!=="unchanged"),i=>(t(),a("div",{key:i.key,class:S(["flex items-center gap-2 py-1.5 pl-10 pr-4",d[i.status].class])},[o(b,{name:"hugeicons:link-01",class:"size-3 shrink-0 opacity-60"}),l("span",Le,u(i.key),1),l("span",{class:S(["shrink-0 rounded px-1 py-0.5 text-[9px] font-medium capitalize",n[i.status]])},u(i.status),3)],2))),128))],64)):z("",!0)],64))),128)),(t(!0),a(y,null,T(h.views.filter(s=>s.status!=="unchanged"),s=>(t(),a("div",{key:s.name,class:S(["flex items-center gap-2 px-4 py-2",d[s.status].class])},[o(b,{name:"hugeicons:eye",class:"size-3.5 shrink-0"}),l("span",Te,u(s.name),1),c[0]||(c[0]=l("span",{class:"ml-2 shrink-0 text-xxs text-muted-foreground"},"view",-1)),l("span",{class:S(["ml-auto shrink-0 rounded px-1.5 py-0.5 text-xxs font-medium capitalize",n[s.status]])},u(s.status),3)],2))),128)),(t(!0),a(y,null,T(h.functions.filter(s=>s.status!=="unchanged"),s=>(t(),a("div",{key:s.signature,class:S(["flex items-center gap-2 px-4 py-2",d[s.status].class])},[o(b,{name:"hugeicons:function-of-x",class:"size-3.5 shrink-0"}),l("span",Me,u(s.name),1),c[1]||(c[1]=l("span",{class:"ml-2 shrink-0 text-xxs text-muted-foreground"},"fn",-1)),l("span",{class:S(["ml-auto shrink-0 rounded px-1.5 py-0.5 text-xxs font-medium capitalize",n[s.status]])},u(s.status),3)],2))),128))])):z("",!0)]))),128)),r(C).length===0?(t(),a("div",Ve,[o(b,{name:"hugeicons:checkmark-circle-02",class:"size-10 text-emerald-500"}),c[2]||(c[2]=l("p",{class:"text-sm font-medium"},"Schemas are identical",-1)),c[3]||(c[3]=l("p",{class:"text-xs"},"No differences detected between source and target.",-1))])):z("",!0)])}}}),Ie={diff:x=>$fetch("/api/schema-diff",{method:"POST",body:x})};function Re(){const x=q(null),_=q(!1),p=q(null),d=q(!0),n=e=>({type:e.type,connectionString:e.connectionString,host:e.host,port:e.port,username:e.username,password:e.password,database:e.database,ssl:e.ssl,ssh:e.ssh}),f=async(e,c)=>{_.value=!0,p.value=null,x.value=null;try{x.value=await Ie.diff({source:n(e),target:n(c),safeMode:d.value})}catch($){p.value=$ instanceof Error?$.message:"Schema diff failed. Check connection details."}finally{_.value=!1}},g=()=>{x.value=null,p.value=null},v=M(()=>x.value?d.value?x.value.sql.safe:x.value.sql.full:""),C=M(()=>{if(!x.value)return!1;const{added:e,removed:c,modified:$}=x.value.summary;return e+c+$>0});return{result:x,isLoading:_,error:p,safeMode:d,currentSql:v,hasDifferences:C,runDiff:f,reset:g}}const je={class:"flex h-full flex-col gap-4 overflow-hidden p-4"},Ne={class:"flex items-center justify-between gap-2"},Pe={key:0,class:"ml-1 rounded-full bg-primary px-1.5 py-0.5 text-xxs text-primary-foreground"},Ue={key:0,class:"ml-1 rounded-full bg-muted px-1.5 py-0.5 text-xxs text-muted-foreground"},Ae={class:"text-xs text-muted-foreground"},Ee={key:0,class:"flex-1 overflow-y-auto"},Fe={key:1,class:"flex-1 overflow-y-auto"},Oe={key:2,class:"flex flex-1 flex-col items-center justify-center gap-3 text-muted-foreground"},Xe=R({__name:"SchemaDiffContainer",props:{sourceConnectionId:{}},setup(x){const _=x,p=Z(),d=M(()=>p.connections.find(D=>D.id===_.sourceConnectionId)??null),n=M(()=>p.connections.filter(D=>D.id!==_.sourceConnectionId)),f=q(null),{result:g,isLoading:v,error:C,safeMode:e,currentSql:c,hasDifferences:$,runDiff:b}=Re(),h=async()=>{!d.value||!f.value||await b(d.value,f.value)},s=M(()=>{var D;return((D=g.value)==null?void 0:D.sql.statements.filter(m=>m.destructive).length)??0}),i=q("diff");return(D,m)=>{const B=H,I=j,A=ie,E=ae,F=oe,N=ne,O=se,Q=te;return t(),a("div",je,[o(B,{icon:"hugeicons:git-compare",title:"Schema Diff",description:"Compare schemas between two database connections and generate sync SQL."}),o(me,{"source-connection":r(d),"target-connection":r(f),connections:r(n),"is-loading":r(v),"onUpdate:targetConnection":m[0]||(m[0]=L=>f.value=L),onRun:h},null,8,["source-connection","target-connection","connections","is-loading"]),r(C)?(t(),V(F,{key:0,class:"border-border bg-muted/30"},{default:w(()=>[o(I,{name:"hugeicons:alert-circle",class:"size-4 text-destructive"}),o(A,{class:"text-destructive"},{default:w(()=>m[5]||(m[5]=[k("Diff Failed")])),_:1}),o(E,{class:"text-muted-foreground"},{default:w(()=>[k(u(r(C)),1)]),_:1})]),_:1})):z("",!0),r(g)?(t(),a(y,{key:1},[l("div",Ne,[o(Q,{modelValue:r(i),"onUpdate:modelValue":m[3]||(m[3]=L=>ee(i)?i.value=L:null),class:"min-w-0 flex-1 gap-0"},{default:w(()=>[o(O,{class:"h-8 max-w-full justify-start! overflow-x-auto"},{default:w(()=>[o(N,{value:"diff",class:"min-w-fit shrink-0 cursor-pointer rounded-sm px-1.5 text-xs",onClick:m[1]||(m[1]=L=>i.value="diff")},{default:w(()=>[o(I,{name:"hugeicons:git-compare",class:"shrink-0 size-3.5"}),m[6]||(m[6]=k(" Diff View ")),r($)?(t(),a("span",Pe,u(r(g).summary.added+r(g).summary.removed+r(g).summary.modified),1)):z("",!0)]),_:1}),o(N,{value:"sql",class:"min-w-fit shrink-0 cursor-pointer rounded-sm px-1.5 text-xs",onClick:m[2]||(m[2]=L=>i.value="sql")},{default:w(()=>[o(I,{name:"hugeicons:code",class:"shrink-0 size-3.5"}),m[7]||(m[7]=k(" SQL ")),r(g).sql.statements.length>0?(t(),a("span",Ue,u(r(g).sql.statements.length),1)):z("",!0)]),_:1})]),_:1})]),_:1},8,["modelValue"]),l("div",Ae,u(r(i)==="diff"?"Visualize structural differences":"Review synchronization script"),1)]),r(i)==="diff"?(t(),a("div",Ee,[o(Be,{result:r(g)},null,8,["result"])])):(t(),a("div",Fe,[o(ke,{sql:r(c),"safe-mode":r(e),"statement-count":r(g).sql.statements.length,"destructive-count":r(s),"onUpdate:safeMode":m[4]||(m[4]=L=>e.value=L)},null,8,["sql","safe-mode","statement-count","destructive-count"])]))],64)):r(v)?z("",!0):(t(),a("div",Oe,[o(I,{name:"hugeicons:git-compare",class:"size-14 opacity-30"}),m[8]||(m[8]=l("p",{class:"text-sm"},"Select a target connection and run the diff",-1))]))])}}});export{Xe as _};
@@ -1 +0,0 @@
1
- import{_ as e}from"./B_U4hCvn.js";import{d as r,a8 as c,c as n,k as m,g as o,o as p}from"./BfSmOVMj.js";import"./DoB1FFC2.js";import"./DDS9xPxH.js";import"./BVl8VKr5.js";import"./D0mrO5vS.js";import"./BCFLQ_rL.js";import"./CS5akSNT.js";import"./C2kyA9ZS.js";import"./DaiufW99.js";const C=r({__name:"[name]",setup(s){const t=c(),i=n(()=>t.params.connectionId),a=n(()=>t.params.name);return(_,u)=>(p(),m(o(e),{"connection-id":o(i),"initial-tab":o(a)},null,8,["connection-id","initial-tab"]))}});export{C as default};
@@ -1 +0,0 @@
1
- import{M as p}from"./BfSmOVMj.js";function N(s){let e=s.toLowerCase();const m=["tbl_","table_"];for(const l of m)e!=null&&e.startsWith(l)&&(e=e.slice(l.length));e=e.replace(/(_v\d+|_\d+)$/,"");let n=e.split(/[_-]/);n.length===1&&(n=e.match(/[A-Z]?[a-z]+|[A-Z]+(?=[A-Z][a-z]|\b)/g)||[e]);let o=n.filter(l=>l.length>0).map(l=>l[0]).join("");return!o&&e&&(o=e[0]),o}function $(s,e,m){var d,t;const n=document.createElement("div");n.className="gap-1 flex flex-col text-sm min-w-[20rem]";const o=((d=e.primary_keys)==null?void 0:d.map(c=>c.column))||[],l=((t=e.foreign_keys)==null?void 0:t.map(c=>c.column))||[],a=document.createElement("div");a.className="font-medium text-sm mb-1",a.textContent=`${s} (${m||"public"})`,n.appendChild(a);const i=document.createElement("div");if(i.className="text-xs text-muted-foreground",i.textContent=`Columns: ${e.columns.length}`,n.appendChild(i),o.length>0){const c=document.createElement("div");c.className="text-xs text-muted-foreground",c.textContent=`Primary Keys: ${o.join(", ")}`,n.appendChild(c)}if(l.length>0){const c=document.createElement("div");c.className="text-xs text-muted-foreground",c.textContent=`Foreign Keys: ${l.join(", ")}`,n.appendChild(c)}const r=document.createElement("div");r.className="mt-1 text-xs max-h-[12rem] overflow-auto";for(const c of e.columns){const u=document.createElement("div");u.className=o.includes(c.name)?"py-0.5 font-semibold":"py-0.5",u.append(document.createTextNode(`${c.name}: `));const x=document.createElement("span");x.className="text-muted-foreground",x.textContent=c.short_type_name,u.appendChild(x),r.appendChild(u)}return n.appendChild(r),n}function g(s,e,m,n,o,l){const a=document.createElement("div");a.className="gap-1 flex flex-col text-sm min-w-[10rem]";const i=document.createElement("div");i.className="font-medium text-sm mb-1",i.textContent=s,a.appendChild(i);const r=document.createElement("div");r.className="text-xs text-muted-foreground",r.textContent=`Type: ${e}`,a.appendChild(r);const d=document.createElement("div");if(d.className="text-xs text-muted-foreground",d.textContent=`Table: ${l?`${l}.${m}`:m}`,a.appendChild(d),n){const t=document.createElement("div");t.className="text-xs text-yellow-500 mt-1 flex items-center gap-1",t.textContent="Primary Key",a.appendChild(t)}if(o){const t=document.createElement("div");t.className="text-xs text-blue-500 mt-1 flex items-center gap-1",t.textContent=`FK -> ${o.referenced_table}.${o.referenced_column}`,a.appendChild(t)}return a}function E(s,e,m){const n=document.createElement("div");n.className="gap-1 flex flex-col text-sm min-w-[20rem]";const o=document.createElement("div");o.className="font-medium text-sm mb-1",o.textContent=`${s} (View, ${m||"public"})`,n.appendChild(o);const l=document.createElement("div");l.className="text-xs text-muted-foreground",l.textContent=`Type: ${e.type}`,n.appendChild(l);const a=document.createElement("div");a.className="text-xs text-muted-foreground",a.textContent=`Columns: ${e.columns.length}`,n.appendChild(a);const i=document.createElement("div");i.className="mt-1 text-xs max-h-[12rem] overflow-auto";for(const r of e.columns){const d=document.createElement("div");d.className="py-0.5",d.append(document.createTextNode(`${r.name}: `));const t=document.createElement("span");t.className="text-muted-foreground",t.textContent=r.short_type_name,d.appendChild(t),i.appendChild(d)}return n.appendChild(i),n}function w(s,e,m,n){const o=document.createElement("div");o.className="gap-1 flex flex-col text-sm min-w-[18rem]";const l=document.createElement("div");if(l.className="font-medium text-sm mb-1",l.textContent=`${s} (${e}, ${n||"public"})`,o.appendChild(l),m){const a=document.createElement("div");a.className="text-xs font-semibold mt-1",a.textContent="Parameters:",o.appendChild(a);const i=document.createElement("div");i.className="text-xs text-muted-foreground leading-relaxed";const r=m.split(",").map(d=>d.trim());for(const d of r){const t=document.createElement("div");t.textContent=`• ${d}`,i.appendChild(t)}o.appendChild(i)}else{const a=document.createElement("div");a.className="text-xs text-muted-foreground",a.textContent="No parameters",o.appendChild(a)}return o}function j(s,e){const m=document.createElement("div");m.className="gap-1 flex flex-col text-sm min-w-[12rem]";const n=document.createElement("div");n.className="font-medium text-sm mb-1",n.textContent=`Variable: ${s}`,m.appendChild(n);const o=document.createElement("div");o.className="text-xs font-semibold mt-1",o.textContent="Current Value:",m.appendChild(o);const l=document.createElement("pre");return l.className="text-xs bg-muted p-1.5 rounded-sm mt-0.5 overflow-auto max-w-[20rem]",l.textContent=typeof e=="object"?JSON.stringify(e,null,2):String(e),m.appendChild(l),m}function _(s){return s?`(${s.split(",").map(n=>n.trim()).map(n=>{const o=n.match(/^([\w"]+)\s+([\w"\[\]]+)/i);return o?`${o[1]}:${o[2]}`:n}).join(", ")})`:"()"}function T(s){const e=s.toLowerCase();return e.includes("int")||e.includes("numeric")||e.includes("decimal")||e.includes("float")||e.includes("double")||e.includes("real")||e.includes("serial")||e.includes("money")?p.Numeric:e.includes("char")||e.includes("text")||e.includes("varchar")||e.includes("string")||e.includes("uuid")||e.includes("citext")?p.String:e.includes("date")||e.includes("time")||e.includes("timestamp")||e.includes("interval")?p.Calendar:e.includes("array")||e.includes("json")||e.includes("jsonb")||e.includes("[]")?p.Brackets:e.includes("vector")?p.Vector:p.Field}function S({typeName:s,isPrimaryKey:e,hasForeignKey:m}){return e?p.Keyword:m?p.ForeignKey:T(s)}function y({column:s,tableName:e,schemaName:m,isPrimaryKey:n,foreignKey:o,info:l}){const a={label:s.name,type:S({typeName:s.short_type_name,isPrimaryKey:n,hasForeignKey:!!o}),detail:s.short_type_name,boost:-s.ordinal_position};return l?a.info=l:a.info=()=>g(s.name,s.short_type_name,e,n,o,m),a}function F({schemas:s,defaultSchemaName:e,fileVariables:m}){var l,a;const n={};if(s&&s.length>0)for(const i of s){const r=i.name,d={};if(i.tableDetails)for(const t in i.tableDetails){const c=i.tableDetails[t],u={},x=new Set(((l=c.primary_keys)==null?void 0:l.map(f=>f.column))||[]),h=new Map(((a=c.foreign_keys)==null?void 0:a.map(f=>[f.column,f]))||[]);for(const f of c.columns){const b=x.has(f.name),v=h.get(f.name);u[f.name]={self:y({column:f,tableName:t,schemaName:r,isPrimaryKey:b,foreignKey:v}),children:{}}}u["*"]={self:{label:"*",type:p.Function,detail:"All columns",boost:50,info:()=>g("* All columns","Selects all columns",t,!1,void 0,r)},children:{}};const C=N(t);d[t]={self:{label:t,displayLabel:`${t} AS ${C}`,type:p.Table,detail:`${c.columns.length} columns`,apply:`${t} AS ${C}`,boost:100,info:()=>$(t,c,r)},children:u}}if(i.viewDetails)for(const t in i.viewDetails){const c=i.viewDetails[t],u={};for(const x of c.columns)u[x.name]={self:y({column:x,tableName:t,schemaName:r,isPrimaryKey:!1}),children:{}};d[t]={self:{label:t,type:p.Table,detail:`View (${c.columns.length} columns)`,boost:90,info:()=>E(t,c,r)},children:u}}if(i.functions)for(const t of i.functions){const c=_(t.parameters);d[t.name]={self:{label:t.name,type:p.Function,detail:`${t.type.toLowerCase()}`,boost:80,info:()=>w(t.name,t.type,t.parameters,r),apply(u,x,h,C){const f=`${t.name}${c}`;u.dispatch({changes:{from:h,to:C,insert:f},selection:{anchor:h+t.name.length+1},userEvent:"input.complete"})}},children:{}}}n[r]={self:{label:r,type:p.Database,detail:`${Object.keys(d).length} objects`},children:d}}const o=(e&&n[e]?e:void 0)||Object.keys(n)[0];return{schema:n,defaultSchema:o}}export{y as a,j as c,N as g,F as m};
@@ -1 +0,0 @@
1
- import{az as m,a6 as a,A as f,aA as ie,a4 as le,a5 as r,aB as N,r as E,aC as G,aD as y,aE as B,aF as T,a as ce,c as v,ah as ue,au as O,aG as de,aH as he,aI as D}from"./BfSmOVMj.js";const Se=[{type:a.POSTGRES,name:"PostgreSQL",icon:m(f,{name:"logos:postgresql"}),isSupport:!0,description:"Relational SQL workflows"},{type:a.MYSQL,name:"MySQL",icon:m(f,{name:"logos:mysql"}),isSupport:!0,isBeta:!0,description:"Relational SQL workflows"},{type:a.MARIADB,name:"MariaDB",icon:m(f,{name:"logos:mariadb-icon"}),isSupport:!0,isBeta:!0,description:"Relational SQL workflows"},{type:a.ORACLE,name:"Oracle",icon:m(f,{name:"simple-icons:oracle",class:"text-red-500"}),isSupport:!1,unsupportedLabel:"Coming soon",description:"Relational SQL workflows"},{type:a.SQLITE3,name:"SQLite",icon:m(f,{name:"file-icons:sqlite"}),isSupport:!0,isBeta:!0,description:"Local file, Cloudflare D1, Turso"},{type:a.REDIS,name:"Redis",icon:m(f,{name:"logos:redis"}),isSupport:!0,isBeta:!0,description:"Browser, workbench, analysis"},{type:a.MSSQL,name:"SQL Server",icon:m(f,{name:"simple-icons:microsoftsqlserver"}),isSupport:!1,unsupportedLabel:"Coming soon"},{type:a.SNOWFLAKE,name:"Snowflake",icon:m(f,{name:"simple-icons:snowflake"}),isSupport:!1,unsupportedLabel:"Coming soon"}],ve={[a.MYSQL2]:a.MYSQL,[a.BETTER_SQLITE3]:a.SQLITE3},pe={[a.POSTGRES]:"5432",[a.MYSQL]:"3306",[a.MARIADB]:"3306",[a.MYSQL2]:"3306",[a.REDIS]:"6379",[a.MSSQL]:"1433",[a.ORACLE]:"1521",[a.BETTER_SQLITE3]:"0",[a.SQLITE3]:"0",[a.SNOWFLAKE]:"443"},Te=t=>{const u=ve[t]??t;return Se.find(d=>d.type===u)},Ae=t=>t!==!1&&t!=="false"&&t!=="0",Re=(t,u)=>t.type===a.SQLITE3&&!u;function me(t){const u=ie({type:t.type,method:t.method,providerKind:"providerKind"in t?t.providerKind:void 0,managedSqlite:"managedSqlite"in t?t.managedSqlite:void 0}),d=le({type:t.type,method:t.method,providerKind:u,managedSqlite:"managedSqlite"in t?t.managedSqlite:void 0});return t.method===r.MANAGED?{...t,providerKind:u,family:d}:{...t,providerKind:u,family:d}}const fe={healthCheck:t=>$fetch("/api/managment-connection/health-check",{method:"POST",body:me(t)})},Ee=new Set([r.STRING,r.FORM]),_=t=>t?t===a.SQLITE3?[r.FILE,r.MANAGED]:[r.STRING,r.FORM]:[],R=()=>({provider:T.CLOUDFLARE_D1,accountId:"",databaseId:"",databaseName:"",apiToken:"",url:"",authToken:"",branchName:""}),Y=t=>t===T.TURSO?D.TURSO:D.CLOUDFLARE_D1,ge=t=>t===a.ORACLE?"serviceName":"database",Le=t=>{switch(t){case a.POSTGRES:return"postgresql";case a.MARIADB:return"mariadb";case a.ORACLE:return"oracledb";case a.REDIS:return"redis";case a.SNOWFLAKE:return"snowflake";case a.MYSQL:case a.MYSQL2:return"mysql";default:return""}},Ie=t=>{const u=t.replace(/\\/g,"/");return`sqlite3://${u.startsWith("/")?"":"/"}${u}`},be=t=>{const u=t.split(/[\\/]/).pop()||"";return u.replace(/\.(sqlite3?|db3?)$/i,"")||u};function Ce(t){const u=N(t.open),d=N(t.editingConnection),$=N(t.workspaceId),I=E(1),c=E(a.POSTGRES),g=E("my-abc-db"),l=E(r.STRING),b=E(""),e=G({host:"",port:"",username:"",password:"",database:"",serviceName:"",filePath:"",sslEnabled:!1,sslMode:B.DISABLE,sslCA:"",sslCert:"",sslKey:"",sslRejectUnauthorized:!0,sshEnabled:!1,sshHost:"",sshPort:22,sshUsername:"",sshAuthMethod:y.PASSWORD,sshPassword:"",sshPrivateKey:"",sshStoreInKeychain:!0,sshUseKey:!1}),i=G(R()),C=E([]),h=E("idle"),p=E(""),j=ce(),H=v(()=>_(c.value)),w=v(()=>ue()),W=v(()=>l.value===r.FILE),K=v(()=>{var n;return c.value===a.SQLITE3&&w.value&&typeof window<"u"&&typeof((n=window.electronAPI)==null?void 0:n.window.pickSqliteFile)=="function"}),A=v(()=>ge(c.value)==="serviceName"),z=v(()=>A.value?"Service Name":"Database"),x=v(()=>A.value?"ORCLPDB1":"my_database"),M=v(()=>Ee.has(l.value)),L=n=>n&&pe[n]||"",V=()=>{const n=j.tags.find(o=>o.name==="dev");return n?[n.id]:[]},J=()=>{if(!(!e.sslEnabled||!M.value))return{mode:e.sslMode,ca:e.sslCA,cert:e.sslCert,key:e.sslKey,rejectUnauthorized:e.sslRejectUnauthorized}},X=()=>{if(!(!e.sshEnabled||!M.value))return{enabled:!0,host:e.sshHost,port:e.sshPort,username:e.sshUsername,authMethod:e.sshUseKey?y.KEY:y.PASSWORD,password:e.sshPassword,privateKey:e.sshPrivateKey,storeInKeychain:e.sshStoreInKeychain,useSshKey:e.sshUseKey}},k=()=>{const n={host:e.host,port:e.port||L(c.value),username:e.username,password:e.password,ssl:J(),ssh:X()};return A.value?n.serviceName=e.serviceName:n.database=e.database,n},q=()=>i.provider===T.TURSO?{provider:T.TURSO,url:i.url,authToken:i.authToken,branchName:i.branchName}:{provider:T.CLOUDFLARE_D1,accountId:i.accountId,databaseId:i.databaseId,databaseName:i.databaseName,apiToken:i.apiToken},Z=()=>{const n=Le(c.value),o=e.port||L(c.value),s=A.value?e.serviceName:e.database;if(!n||!e.host||!e.username||!s)return;const P=e.password?`${e.username}:${e.password}`:e.username;return`${n}://${P}@${e.host}${o?`:${o}`:""}/${s}`},ee=()=>{const n=c.value;if(!n)throw new Error("Database type is required.");return l.value===r.STRING?{type:n,method:r.STRING,stringConnection:b.value}:l.value===r.FILE?{type:a.SQLITE3,method:r.FILE,filePath:e.filePath}:l.value===r.MANAGED?{type:a.SQLITE3,method:r.MANAGED,providerKind:Y(i.provider),managedSqlite:q()}:{type:n,method:r.FORM,...k()}},Q=()=>{I.value=1,c.value=a.POSTGRES,g.value="my-abc-db",l.value=r.STRING,b.value="",e.host="",e.port=L(a.POSTGRES),e.username="",e.password="",e.database="",e.serviceName="",e.filePath="",e.sslEnabled=!1,e.sslMode=B.DISABLE,e.sslCA="",e.sslCert="",e.sslKey="",e.sslRejectUnauthorized=!0,e.sshEnabled=!1,e.sshHost="",e.sshPort=22,e.sshUsername="",e.sshAuthMethod=y.PASSWORD,e.sshPassword="",e.sshPrivateKey="",e.sshStoreInKeychain=!0,e.sshUseKey=!1,Object.assign(i,R()),C.value=V(),h.value="idle",p.value=""},se=()=>{I.value===1&&c.value&&(I.value=2)},ae=()=>{I.value=1,h.value="idle",p.value=""},F=async()=>{var n;if(l.value===r.FILE&&!w.value)return h.value="error",p.value="SQLite file connections are available only in the desktop app.",!1;h.value="testing",p.value="";try{const o=await fe.healthCheck(ee());return o.isConnectedSuccess?(h.value="success",p.value="",!0):(h.value="error",p.value=o.message||"Connection failed. Please check your details and try again.",!1)}catch(o){return h.value="error",p.value=((n=o==null?void 0:o.data)==null?void 0:n.message)||(o==null?void 0:o.message)||"Connection failed. Please check your details and try again.",!1}},te=async()=>{var P,U;const o=!!!d.value;if(o&&!await F())return;const s={workspaceId:$.value,id:((P=d.value)==null?void 0:P.id)||he(),name:g.value,type:c.value,method:l.value,createdAt:((U=d.value)==null?void 0:U.createdAt)||de().toISOString(),tagIds:[...C.value]};if(l.value===r.STRING)s.connectionString=b.value;else if(l.value===r.FILE)s.filePath=e.filePath,s.connectionString=Ie(e.filePath),s.providerKind=D.SQLITE_FILE;else if(l.value===r.MANAGED)s.providerKind=Y(i.provider),s.managedSqlite=q();else{const S=k();s.host=S.host,s.port=S.port,s.username=S.username,s.password=S.password,s.database=S.database,s.serviceName=S.serviceName,s.ssl=S.ssl,s.ssh=S.ssh,s.connectionString=Z()}o?t.onAddNew(s):t.onUpdate(s),t.onClose()},ne=()=>{switch(c.value){case a.POSTGRES:return"postgresql://username:password@localhost:5432/database";case a.MYSQL:case a.MYSQL2:return"mysql://username:password@localhost:3306/database";case a.MARIADB:return"mariadb://username:password@localhost:3306/database";case a.ORACLE:return"oracledb://username:password@localhost:1521/ORCLPDB1";case a.REDIS:return"redis://username:password@localhost:6379";case a.SNOWFLAKE:return"snowflake://username:password@account.snowflakecomputing.com:443/database";case a.SQLITE3:return"/Users/you/data/app.sqlite";default:return""}},oe=async()=>{var o;if(!K.value)return;const n=await((o=window.electronAPI)==null?void 0:o.window.pickSqliteFile());n&&(e.filePath=n,!d.value&&g.value==="my-abc-db"&&(g.value=be(n)),h.value="idle")},re=v(()=>g.value?l.value===r.STRING?!!b.value:l.value===r.FILE?w.value&&!!e.filePath:l.value===r.MANAGED?i.provider===T.TURSO?!!(i.url&&i.authToken):!!(i.accountId&&i.databaseId&&i.apiToken):A.value?!!(e.host&&(e.port||L(c.value))&&e.username&&e.password&&e.serviceName):!!(e.host&&(e.port||L(c.value))&&e.username&&e.database):!1);return O(c,n=>{const o=_(n);o.length>0&&!o.includes(l.value)&&(l.value=o[0]),n===a.SQLITE3?(e.host="",e.port="",e.username="",e.password="",e.database="",e.serviceName="",e.sslEnabled=!1,e.sshEnabled=!1):(e.filePath="",Object.assign(i,R()),n!==a.ORACLE&&(e.serviceName=""),d.value||(e.port=L(n))),h.value="idle"}),O(l,n=>{n!==r.FILE&&(e.filePath=""),n!==r.MANAGED&&Object.assign(i,R()),h.value="idle"}),O(u,n=>{var o;if(n)if(d.value){const s=d.value;g.value=s.name,c.value=s.type,l.value=s.method,b.value=s.connectionString||"",e.host=s.host||"",e.port=s.port||"",e.username=s.username||"",e.password=s.password||"",e.database=s.database||"",e.serviceName=s.serviceName||"",e.filePath=s.filePath||"",Object.assign(i,{...R(),...s.managedSqlite??{}}),e.sslEnabled=!!s.ssl,s.ssl&&(e.sslMode=s.ssl.mode,e.sslCA=s.ssl.ca||"",e.sslCert=s.ssl.cert||"",e.sslKey=s.ssl.key||"",e.sslRejectUnauthorized=s.ssl.rejectUnauthorized??!0),e.sshEnabled=!!((o=s.ssh)!=null&&o.enabled),s.ssh&&(e.sshHost=s.ssh.host||"",e.sshPort=s.ssh.port||22,e.sshUsername=s.ssh.username||"",e.sshAuthMethod=s.ssh.authMethod||y.PASSWORD,e.sshPassword=s.ssh.password||"",e.sshPrivateKey=s.ssh.privateKey||"",e.sshStoreInKeychain=s.ssh.storeInKeychain??!0,e.sshUseKey=s.ssh.useSshKey??s.ssh.authMethod===y.KEY),C.value=[...s.tagIds??[]],I.value=2}else Q()},{immediate:!0}),{step:I,dbType:c,connectionName:g,connectionMethod:l,connectionString:b,formData:e,managedSqlite:i,tagIds:C,testStatus:h,testErrorMessage:p,handleNext:se,handleBack:ae,handleTestConnection:F,handleCreateConnection:te,getDefaultPort:()=>L(c.value),getConnectionPlaceholder:ne,availableConnectionMethods:H,structuredTargetLabel:z,structuredTargetPlaceholder:x,canUseNetworkOptions:M,canPickSqliteFile:K,isFileMethod:W,isFormValid:re,pickSqliteFile:oe,resetForm:Q}}export{Re as a,Se as d,Te as g,Ae as i,Ce as u};
@@ -1 +0,0 @@
1
- import{s as e,b as r,a,S as s}from"./Bp1mKnR0.js";import{_ as i}from"./BXp87mMj.js";import"./MC96ynYQ.js";import"./e04t7nee.js";import"./BfSmOVMj.js";var p={parser:a,get db(){return new s(2)},renderer:r,styles:e,init:i(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")};export{p as diagram};