db-studio 1.2.18 → 1.2.19

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 (519) hide show
  1. package/dist/index.js +36 -36
  2. package/dist/index.js.map +1 -1
  3. package/package.json +1 -1
  4. package/dist/core-dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  5. package/dist/core-dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  6. package/dist/core-dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  7. package/dist/core-dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  8. package/dist/core-dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  9. package/dist/core-dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  10. package/dist/core-dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  11. package/dist/core-dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  12. package/dist/core-dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  13. package/dist/core-dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  14. package/dist/core-dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  15. package/dist/core-dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  16. package/dist/core-dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  17. package/dist/core-dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  18. package/dist/core-dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  19. package/dist/core-dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  20. package/dist/core-dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  21. package/dist/core-dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  22. package/dist/core-dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  23. package/dist/core-dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  24. package/dist/core-dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  25. package/dist/core-dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  26. package/dist/core-dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  27. package/dist/core-dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  28. package/dist/core-dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  29. package/dist/core-dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  30. package/dist/core-dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  31. package/dist/core-dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  32. package/dist/core-dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  33. package/dist/core-dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  34. package/dist/core-dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  35. package/dist/core-dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  36. package/dist/core-dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  37. package/dist/core-dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  38. package/dist/core-dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  39. package/dist/core-dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  40. package/dist/core-dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  41. package/dist/core-dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  42. package/dist/core-dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  43. package/dist/core-dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  44. package/dist/core-dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  45. package/dist/core-dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  46. package/dist/core-dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  47. package/dist/core-dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  48. package/dist/core-dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  49. package/dist/core-dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  50. package/dist/core-dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  51. package/dist/core-dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  52. package/dist/core-dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  53. package/dist/core-dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  54. package/dist/core-dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  55. package/dist/core-dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  56. package/dist/core-dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  57. package/dist/core-dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  58. package/dist/core-dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  59. package/dist/core-dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  60. package/dist/core-dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  61. package/dist/core-dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  62. package/dist/core-dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  63. package/dist/core-dist/assets/_baseUniq-Ba6cdS3v.js +0 -1
  64. package/dist/core-dist/assets/_queryId-CtxjgPTw.js +0 -1
  65. package/dist/core-dist/assets/_table-QVQOem0H.js +0 -1
  66. package/dist/core-dist/assets/abap-BdImnpbu.js +0 -1
  67. package/dist/core-dist/assets/abap-DLDM7-KI.js +0 -1
  68. package/dist/core-dist/assets/actionscript-3-CfeIJUat.js +0 -1
  69. package/dist/core-dist/assets/ada-bCR0ucgS.js +0 -1
  70. package/dist/core-dist/assets/andromeeda-C-Jbm3Hp.js +0 -1
  71. package/dist/core-dist/assets/angular-html-CU67Zn6k.js +0 -1
  72. package/dist/core-dist/assets/angular-ts-BwZT4LLn.js +0 -1
  73. package/dist/core-dist/assets/apache-Pmp26Uib.js +0 -1
  74. package/dist/core-dist/assets/apex-D8_7TLub.js +0 -1
  75. package/dist/core-dist/assets/apex-DNDY2TF8.js +0 -1
  76. package/dist/core-dist/assets/apl-dKokRX4l.js +0 -1
  77. package/dist/core-dist/assets/applescript-Co6uUVPk.js +0 -1
  78. package/dist/core-dist/assets/ara-BRHolxvo.js +0 -1
  79. package/dist/core-dist/assets/arc-D8UcRNMa.js +0 -1
  80. package/dist/core-dist/assets/architectureDiagram-VXUJARFQ-qETUbLAF.js +0 -36
  81. package/dist/core-dist/assets/asciidoc-Dv7Oe6Be.js +0 -1
  82. package/dist/core-dist/assets/asm-D_Q5rh1f.js +0 -1
  83. package/dist/core-dist/assets/astro-CbQHKStN.js +0 -1
  84. package/dist/core-dist/assets/aurora-x-D-2ljcwZ.js +0 -1
  85. package/dist/core-dist/assets/awk-DMzUqQB5.js +0 -1
  86. package/dist/core-dist/assets/ayu-dark-CmMr59Fi.js +0 -1
  87. package/dist/core-dist/assets/azcli-Y6nb8tq_.js +0 -1
  88. package/dist/core-dist/assets/ballerina-BFfxhgS-.js +0 -1
  89. package/dist/core-dist/assets/bat-BkioyH1T.js +0 -1
  90. package/dist/core-dist/assets/bat-BwHxbl9M.js +0 -1
  91. package/dist/core-dist/assets/beancount-k_qm7-4y.js +0 -1
  92. package/dist/core-dist/assets/berry-uYugtg8r.js +0 -1
  93. package/dist/core-dist/assets/bibtex-CHM0blh-.js +0 -1
  94. package/dist/core-dist/assets/bicep-Bmn6On1c.js +0 -1
  95. package/dist/core-dist/assets/bicep-CFznDFnq.js +0 -2
  96. package/dist/core-dist/assets/blade-D4QpJJKB.js +0 -1
  97. package/dist/core-dist/assets/blockDiagram-VD42YOAC-Key67jhL.js +0 -122
  98. package/dist/core-dist/assets/bsl-BO_Y6i37.js +0 -1
  99. package/dist/core-dist/assets/c-BIGW1oBm.js +0 -1
  100. package/dist/core-dist/assets/c3-VCDPK7BO.js +0 -1
  101. package/dist/core-dist/assets/c4Diagram-YG6GDRKO-SLYVYNN5.js +0 -10
  102. package/dist/core-dist/assets/cadence-Bv_4Rxtq.js +0 -1
  103. package/dist/core-dist/assets/cairo-KRGpt6FW.js +0 -1
  104. package/dist/core-dist/assets/cameligo-Bf6VGUru.js +0 -1
  105. package/dist/core-dist/assets/catppuccin-frappe-DFWUc33u.js +0 -1
  106. package/dist/core-dist/assets/catppuccin-latte-C9dUb6Cb.js +0 -1
  107. package/dist/core-dist/assets/catppuccin-macchiato-DQyhUUbL.js +0 -1
  108. package/dist/core-dist/assets/catppuccin-mocha-D87Tk5Gz.js +0 -1
  109. package/dist/core-dist/assets/channel-DXRfMgFO.js +0 -1
  110. package/dist/core-dist/assets/chunk-4BX2VUAB-BHKffaup.js +0 -1
  111. package/dist/core-dist/assets/chunk-55IACEB6-Bp2-xSpt.js +0 -1
  112. package/dist/core-dist/assets/chunk-B4BG7PRW-9F7cesSu.js +0 -165
  113. package/dist/core-dist/assets/chunk-DI55MBZ5-BJ4N1m8m.js +0 -220
  114. package/dist/core-dist/assets/chunk-FMBD7UC4-CXjDDSki.js +0 -15
  115. package/dist/core-dist/assets/chunk-QN33PNHL-D_22Snnm.js +0 -1
  116. package/dist/core-dist/assets/chunk-QZHKN3VN-BI_2bsiS.js +0 -1
  117. package/dist/core-dist/assets/chunk-TZMSLE5B-cH4y8DMD.js +0 -1
  118. package/dist/core-dist/assets/clarity-D53aC0YG.js +0 -1
  119. package/dist/core-dist/assets/classDiagram-2ON5EDUG-DetPPK8G.js +0 -1
  120. package/dist/core-dist/assets/classDiagram-v2-WZHVMYZB-DetPPK8G.js +0 -1
  121. package/dist/core-dist/assets/clojure-Dnu-v4kV.js +0 -1
  122. package/dist/core-dist/assets/clojure-P80f7IUj.js +0 -1
  123. package/dist/core-dist/assets/clone-ZzK9qmZ8.js +0 -1
  124. package/dist/core-dist/assets/cmake-D1j8_8rp.js +0 -1
  125. package/dist/core-dist/assets/cobol-nwyudZeR.js +0 -1
  126. package/dist/core-dist/assets/code-block-IT6T5CEO-BjXa4xsL.js +0 -154
  127. package/dist/core-dist/assets/codeowners-Bp6g37R7.js +0 -1
  128. package/dist/core-dist/assets/codeql-DsOJ9woJ.js +0 -1
  129. package/dist/core-dist/assets/codicon-ngg6Pgfi.ttf +0 -0
  130. package/dist/core-dist/assets/coffee-Bd8akH9Z.js +0 -1
  131. package/dist/core-dist/assets/coffee-Ch7k5sss.js +0 -1
  132. package/dist/core-dist/assets/common-lisp-Cg-RD9OK.js +0 -1
  133. package/dist/core-dist/assets/coq-DkFqJrB1.js +0 -1
  134. package/dist/core-dist/assets/cose-bilkent-S5V4N54A-C6X32Xza.js +0 -1
  135. package/dist/core-dist/assets/cpp-BbWJElDN.js +0 -1
  136. package/dist/core-dist/assets/cpp-CofmeUqb.js +0 -1
  137. package/dist/core-dist/assets/crystal-tKQVLTB8.js +0 -1
  138. package/dist/core-dist/assets/csharp-Co3qMtFm.js +0 -1
  139. package/dist/core-dist/assets/csharp-K5feNrxe.js +0 -1
  140. package/dist/core-dist/assets/csp-D-4FJmMZ.js +0 -1
  141. package/dist/core-dist/assets/css-DPfMkruS.js +0 -1
  142. package/dist/core-dist/assets/css-DdJfP1eB.js +0 -3
  143. package/dist/core-dist/assets/css.worker-DBVD8oXr.js +0 -93
  144. package/dist/core-dist/assets/cssMode-COyIeO5D.js +0 -1
  145. package/dist/core-dist/assets/csv-fuZLfV_i.js +0 -1
  146. package/dist/core-dist/assets/cue-D82EKSYY.js +0 -1
  147. package/dist/core-dist/assets/cypher-COkxafJQ.js +0 -1
  148. package/dist/core-dist/assets/cypher-cTPe9QuQ.js +0 -1
  149. package/dist/core-dist/assets/cytoscape.esm-5J0xJHOV.js +0 -321
  150. package/dist/core-dist/assets/d-85-TOEBH.js +0 -1
  151. package/dist/core-dist/assets/dagre-6UL2VRFP-BQJjQlXe.js +0 -4
  152. package/dist/core-dist/assets/dark-plus-C3mMm8J8.js +0 -1
  153. package/dist/core-dist/assets/dart-BOtBlQCF.js +0 -1
  154. package/dist/core-dist/assets/dart-CF10PKvl.js +0 -1
  155. package/dist/core-dist/assets/dax-CEL-wOlO.js +0 -1
  156. package/dist/core-dist/assets/defaultLocale-DX6XiGOO.js +0 -1
  157. package/dist/core-dist/assets/desktop-BmXAJ9_W.js +0 -1
  158. package/dist/core-dist/assets/diagram-PSM6KHXK-B_lyGamX.js +0 -24
  159. package/dist/core-dist/assets/diagram-QEK2KX5R-BXKMeskZ.js +0 -43
  160. package/dist/core-dist/assets/diagram-S2PKOQOG-DRgMDaOe.js +0 -24
  161. package/dist/core-dist/assets/diff-D97Zzqfu.js +0 -1
  162. package/dist/core-dist/assets/docker-BcOcwvcX.js +0 -1
  163. package/dist/core-dist/assets/dockerfile-BG73LgW2.js +0 -1
  164. package/dist/core-dist/assets/dotenv-Da5cRb03.js +0 -1
  165. package/dist/core-dist/assets/dracula-BzJJZx-M.js +0 -1
  166. package/dist/core-dist/assets/dracula-soft-BXkSAIEj.js +0 -1
  167. package/dist/core-dist/assets/dream-maker-BtqSS_iP.js +0 -1
  168. package/dist/core-dist/assets/ecl-BEgZUVRK.js +0 -1
  169. package/dist/core-dist/assets/edge-BkV0erSs.js +0 -1
  170. package/dist/core-dist/assets/elixir-BkW5O-1t.js +0 -1
  171. package/dist/core-dist/assets/elixir-CDX3lj18.js +0 -1
  172. package/dist/core-dist/assets/elm-DbKCFpqz.js +0 -1
  173. package/dist/core-dist/assets/emacs-lisp-C9XAeP06.js +0 -1
  174. package/dist/core-dist/assets/erDiagram-Q2GNP2WA-BO-W5nUt.js +0 -60
  175. package/dist/core-dist/assets/erb-BOJIQeun.js +0 -1
  176. package/dist/core-dist/assets/erlang-DsQrWhSR.js +0 -1
  177. package/dist/core-dist/assets/everforest-dark-BgDCqdQA.js +0 -1
  178. package/dist/core-dist/assets/everforest-light-C8M2exoo.js +0 -1
  179. package/dist/core-dist/assets/fennel-BYunw83y.js +0 -1
  180. package/dist/core-dist/assets/fish-BvzEVeQv.js +0 -1
  181. package/dist/core-dist/assets/flow9-BeJ5waoc.js +0 -1
  182. package/dist/core-dist/assets/flowDiagram-NV44I4VS-Dz2q0_YK.js +0 -162
  183. package/dist/core-dist/assets/fluent-C4IJs8-o.js +0 -1
  184. package/dist/core-dist/assets/format-cell-value-X8lEs2y8.js +0 -7
  185. package/dist/core-dist/assets/fortran-fixed-form-CkoXwp7k.js +0 -1
  186. package/dist/core-dist/assets/fortran-free-form-BxgE0vQu.js +0 -1
  187. package/dist/core-dist/assets/freemarker2-gdEdc-lB.js +0 -3
  188. package/dist/core-dist/assets/fsharp-CXgrBDvD.js +0 -1
  189. package/dist/core-dist/assets/fsharp-PahG7c26.js +0 -1
  190. package/dist/core-dist/assets/ganttDiagram-JELNMOA3-B543Dp2T.js +0 -267
  191. package/dist/core-dist/assets/gdresource-B7Tvp0Sc.js +0 -1
  192. package/dist/core-dist/assets/gdscript-DTMYz4Jt.js +0 -1
  193. package/dist/core-dist/assets/gdshader-DkwncUOv.js +0 -1
  194. package/dist/core-dist/assets/genie-D0YGMca9.js +0 -1
  195. package/dist/core-dist/assets/gherkin-DyxjwDmM.js +0 -1
  196. package/dist/core-dist/assets/git-commit-F4YmCXRG.js +0 -1
  197. package/dist/core-dist/assets/git-rebase-r7XF79zn.js +0 -1
  198. package/dist/core-dist/assets/gitGraphDiagram-NY62KEGX-aRaFIgsI.js +0 -65
  199. package/dist/core-dist/assets/github-dark-DHJKELXO.js +0 -1
  200. package/dist/core-dist/assets/github-dark-default-Cuk6v7N8.js +0 -1
  201. package/dist/core-dist/assets/github-dark-dimmed-DH5Ifo-i.js +0 -1
  202. package/dist/core-dist/assets/github-dark-high-contrast-E3gJ1_iC.js +0 -1
  203. package/dist/core-dist/assets/github-light-DAi9KRSo.js +0 -1
  204. package/dist/core-dist/assets/github-light-default-D7oLnXFd.js +0 -1
  205. package/dist/core-dist/assets/github-light-high-contrast-BfjtVDDH.js +0 -1
  206. package/dist/core-dist/assets/gleam-BspZqrRM.js +0 -1
  207. package/dist/core-dist/assets/glimmer-js-Rg0-pVw9.js +0 -1
  208. package/dist/core-dist/assets/glimmer-ts-U6CK756n.js +0 -1
  209. package/dist/core-dist/assets/glsl-DplSGwfg.js +0 -1
  210. package/dist/core-dist/assets/gn-n2N0HUVH.js +0 -1
  211. package/dist/core-dist/assets/gnuplot-DdkO51Og.js +0 -1
  212. package/dist/core-dist/assets/go-Dn2_MT6a.js +0 -1
  213. package/dist/core-dist/assets/go-acbASCJo.js +0 -1
  214. package/dist/core-dist/assets/graph-CTgOz0UF.js +0 -1
  215. package/dist/core-dist/assets/graphql-BxJiqAUM.js +0 -1
  216. package/dist/core-dist/assets/graphql-ChdNCCLP.js +0 -1
  217. package/dist/core-dist/assets/groovy-gcz8RCvz.js +0 -1
  218. package/dist/core-dist/assets/gruvbox-dark-hard-CFHQjOhq.js +0 -1
  219. package/dist/core-dist/assets/gruvbox-dark-medium-GsRaNv29.js +0 -1
  220. package/dist/core-dist/assets/gruvbox-dark-soft-CVdnzihN.js +0 -1
  221. package/dist/core-dist/assets/gruvbox-light-hard-CH1njM8p.js +0 -1
  222. package/dist/core-dist/assets/gruvbox-light-medium-DRw_LuNl.js +0 -1
  223. package/dist/core-dist/assets/gruvbox-light-soft-hJgmCMqR.js +0 -1
  224. package/dist/core-dist/assets/hack-CaT9iCJl.js +0 -1
  225. package/dist/core-dist/assets/haml-B8DHNrY2.js +0 -1
  226. package/dist/core-dist/assets/handlebars-BBHQDTvc.js +0 -1
  227. package/dist/core-dist/assets/handlebars-BL8al0AC.js +0 -1
  228. package/dist/core-dist/assets/haskell-Df6bDoY_.js +0 -1
  229. package/dist/core-dist/assets/haxe-CzTSHFRz.js +0 -1
  230. package/dist/core-dist/assets/hcl-BWvSN4gD.js +0 -1
  231. package/dist/core-dist/assets/hcl-DtV1sZF8.js +0 -1
  232. package/dist/core-dist/assets/hjson-D5-asLiD.js +0 -1
  233. package/dist/core-dist/assets/hlsl-D3lLCCz7.js +0 -1
  234. package/dist/core-dist/assets/houston-DnULxvSX.js +0 -1
  235. package/dist/core-dist/assets/html-BHSCOa4F.js +0 -1
  236. package/dist/core-dist/assets/html-GMplVEZG.js +0 -1
  237. package/dist/core-dist/assets/html-derivative-BFtXZ54Q.js +0 -1
  238. package/dist/core-dist/assets/html.worker-CwpTb9lJ.js +0 -470
  239. package/dist/core-dist/assets/htmlMode-CkiHtpA8.js +0 -1
  240. package/dist/core-dist/assets/http-jrhK8wxY.js +0 -1
  241. package/dist/core-dist/assets/hurl-irOxFIW8.js +0 -1
  242. package/dist/core-dist/assets/hxml-Bvhsp5Yf.js +0 -1
  243. package/dist/core-dist/assets/hy-DFXneXwc.js +0 -1
  244. package/dist/core-dist/assets/imba-DGztddWO.js +0 -1
  245. package/dist/core-dist/assets/index-BTMIybLt.js +0 -1
  246. package/dist/core-dist/assets/index-BTOfnwiY.js +0 -1
  247. package/dist/core-dist/assets/index-Be72I791.js +0 -93
  248. package/dist/core-dist/assets/index-C1hGVAGZ.css +0 -1
  249. package/dist/core-dist/assets/index-Rq-jgZaW.js +0 -1
  250. package/dist/core-dist/assets/index-_iOa5gQT.js +0 -1
  251. package/dist/core-dist/assets/indexes-CZKaBB3n.js +0 -1
  252. package/dist/core-dist/assets/infoDiagram-WHAUD3N6-BxhzEtc1.js +0 -2
  253. package/dist/core-dist/assets/ini-BEwlwnbL.js +0 -1
  254. package/dist/core-dist/assets/ini-Kd9XrMLS.js +0 -1
  255. package/dist/core-dist/assets/init-Gi6I4Gst.js +0 -1
  256. package/dist/core-dist/assets/java-CXBNlu9o.js +0 -1
  257. package/dist/core-dist/assets/java-CylS5w8V.js +0 -1
  258. package/dist/core-dist/assets/javascript-DkfOhMgX.js +0 -1
  259. package/dist/core-dist/assets/javascript-wDzz0qaB.js +0 -1
  260. package/dist/core-dist/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2 +0 -0
  261. package/dist/core-dist/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2 +0 -0
  262. package/dist/core-dist/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
  263. package/dist/core-dist/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
  264. package/dist/core-dist/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2 +0 -0
  265. package/dist/core-dist/assets/jinja-4LBKfQ-Z.js +0 -1
  266. package/dist/core-dist/assets/jison-wvAkD_A8.js +0 -1
  267. package/dist/core-dist/assets/journeyDiagram-XKPGCS4Q-0eaJMAvF.js +0 -139
  268. package/dist/core-dist/assets/json-Cp-IABpG.js +0 -1
  269. package/dist/core-dist/assets/json.worker-BoL8UZqY.js +0 -58
  270. package/dist/core-dist/assets/json5-C9tS-k6U.js +0 -1
  271. package/dist/core-dist/assets/jsonMode-DZ1izBRp.js +0 -7
  272. package/dist/core-dist/assets/jsonc-Des-eS-w.js +0 -1
  273. package/dist/core-dist/assets/jsonl-DcaNXYhu.js +0 -1
  274. package/dist/core-dist/assets/jsonnet-DFQXde-d.js +0 -1
  275. package/dist/core-dist/assets/jssm-C2t-YnRu.js +0 -1
  276. package/dist/core-dist/assets/jsx-g9-lgVsj.js +0 -1
  277. package/dist/core-dist/assets/julia-CxzCAyBv.js +0 -1
  278. package/dist/core-dist/assets/julia-cl7-CwDS.js +0 -1
  279. package/dist/core-dist/assets/kanagawa-dragon-CkXjmgJE.js +0 -1
  280. package/dist/core-dist/assets/kanagawa-lotus-CfQXZHmo.js +0 -1
  281. package/dist/core-dist/assets/kanagawa-wave-DWedfzmr.js +0 -1
  282. package/dist/core-dist/assets/kanban-definition-3W4ZIXB7-C5OX0ahP.js +0 -89
  283. package/dist/core-dist/assets/katex-DvXFAOB1.css +0 -1
  284. package/dist/core-dist/assets/kdl-DV7GczEv.js +0 -1
  285. package/dist/core-dist/assets/kotlin-BdnUsdx6.js +0 -1
  286. package/dist/core-dist/assets/kotlin-s7OhZKlX.js +0 -1
  287. package/dist/core-dist/assets/kusto-DZf3V79B.js +0 -1
  288. package/dist/core-dist/assets/laserwave-DUszq2jm.js +0 -1
  289. package/dist/core-dist/assets/latex-B4uzh10-.js +0 -1
  290. package/dist/core-dist/assets/layout-CsSbCnq2.js +0 -1
  291. package/dist/core-dist/assets/lean-BZvkOJ9d.js +0 -1
  292. package/dist/core-dist/assets/less-9HpZscsL.js +0 -2
  293. package/dist/core-dist/assets/less-B1dDrJ26.js +0 -1
  294. package/dist/core-dist/assets/lexon-OrD6JF1K.js +0 -1
  295. package/dist/core-dist/assets/light-plus-B7mTdjB0.js +0 -1
  296. package/dist/core-dist/assets/linear-D7wMV6wy.js +0 -1
  297. package/dist/core-dist/assets/liquid-CSiyAE27.js +0 -1
  298. package/dist/core-dist/assets/liquid-DYVedYrR.js +0 -1
  299. package/dist/core-dist/assets/llvm-BtvRca6l.js +0 -1
  300. package/dist/core-dist/assets/log-2UxHyX5q.js +0 -1
  301. package/dist/core-dist/assets/logo-BtOb2qkB.js +0 -1
  302. package/dist/core-dist/assets/logs-CorclGry.js +0 -1
  303. package/dist/core-dist/assets/lspLanguageFeatures-DfqpxEKm.js +0 -4
  304. package/dist/core-dist/assets/lua-BbnMAYS6.js +0 -1
  305. package/dist/core-dist/assets/lua-Cyyb5UIc.js +0 -1
  306. package/dist/core-dist/assets/luau-C-HG3fhB.js +0 -1
  307. package/dist/core-dist/assets/m3-B8OfTtLu.js +0 -1
  308. package/dist/core-dist/assets/make-CHLpvVh8.js +0 -1
  309. package/dist/core-dist/assets/markdown-BFxVWTOG.js +0 -1
  310. package/dist/core-dist/assets/markdown-Cvjx9yec.js +0 -1
  311. package/dist/core-dist/assets/marko-DZsq8hO1.js +0 -1
  312. package/dist/core-dist/assets/material-theme-D5KoaKCx.js +0 -1
  313. package/dist/core-dist/assets/material-theme-darker-BfHTSMKl.js +0 -1
  314. package/dist/core-dist/assets/material-theme-lighter-B0m2ddpp.js +0 -1
  315. package/dist/core-dist/assets/material-theme-ocean-CyktbL80.js +0 -1
  316. package/dist/core-dist/assets/material-theme-palenight-Csfq5Kiy.js +0 -1
  317. package/dist/core-dist/assets/matlab-D7o27uSR.js +0 -1
  318. package/dist/core-dist/assets/mdc-DUICxH0z.js +0 -1
  319. package/dist/core-dist/assets/mdx-Cmh6b_Ma.js +0 -1
  320. package/dist/core-dist/assets/mdx-uX3cu8xR.js +0 -1
  321. package/dist/core-dist/assets/mermaid-VLURNSYL-Dsp_Uc89.js +0 -385
  322. package/dist/core-dist/assets/mermaid-mWjccvbQ.js +0 -1
  323. package/dist/core-dist/assets/mermaid.core-CqgD0fud.js +0 -191
  324. package/dist/core-dist/assets/min-dark-CafNBF8u.js +0 -1
  325. package/dist/core-dist/assets/min-i41Gt2X5.js +0 -1
  326. package/dist/core-dist/assets/min-light-CTRr51gU.js +0 -1
  327. package/dist/core-dist/assets/mindmap-definition-VGOIOE7T-DjevekBL.js +0 -68
  328. package/dist/core-dist/assets/mips-CiqrrVzr.js +0 -1
  329. package/dist/core-dist/assets/mipsasm-CKIfxQSi.js +0 -1
  330. package/dist/core-dist/assets/mojo-B93PlW-d.js +0 -1
  331. package/dist/core-dist/assets/monokai-D4h5O-jR.js +0 -1
  332. package/dist/core-dist/assets/moonbit-Ba13S78F.js +0 -1
  333. package/dist/core-dist/assets/move-Bu9oaDYs.js +0 -1
  334. package/dist/core-dist/assets/msdax-DmeGPVcC.js +0 -1
  335. package/dist/core-dist/assets/mysql-C_tMU-Nz.js +0 -1
  336. package/dist/core-dist/assets/narrat-DRg8JJMk.js +0 -1
  337. package/dist/core-dist/assets/nextflow-BrzmwbiE.js +0 -1
  338. package/dist/core-dist/assets/nginx-DknmC5AR.js +0 -1
  339. package/dist/core-dist/assets/night-owl-C39BiMTA.js +0 -1
  340. package/dist/core-dist/assets/nim-CVrawwO9.js +0 -1
  341. package/dist/core-dist/assets/nix-CwoSXNpI.js +0 -1
  342. package/dist/core-dist/assets/nord-Ddv68eIx.js +0 -1
  343. package/dist/core-dist/assets/nushell-C-sUppwS.js +0 -1
  344. package/dist/core-dist/assets/objective-c-BDtDVThU.js +0 -1
  345. package/dist/core-dist/assets/objective-c-DXmwc3jG.js +0 -1
  346. package/dist/core-dist/assets/objective-cpp-CLxacb5B.js +0 -1
  347. package/dist/core-dist/assets/ocaml-C0hk2d4L.js +0 -1
  348. package/dist/core-dist/assets/one-dark-pro-DVMEJ2y_.js +0 -1
  349. package/dist/core-dist/assets/one-light-PoHY5YXO.js +0 -1
  350. package/dist/core-dist/assets/openscad-C4EeE6gA.js +0 -1
  351. package/dist/core-dist/assets/ordinal-BENe2yWM.js +0 -1
  352. package/dist/core-dist/assets/pascal-D93ZcfNL.js +0 -1
  353. package/dist/core-dist/assets/pascal-vHIfCaH5.js +0 -1
  354. package/dist/core-dist/assets/pascaligo-DtZ0uQbO.js +0 -1
  355. package/dist/core-dist/assets/perl-C0TMdlhV.js +0 -1
  356. package/dist/core-dist/assets/perl-Ub6l9XKa.js +0 -1
  357. package/dist/core-dist/assets/pgsql-BlNEE0v7.js +0 -1
  358. package/dist/core-dist/assets/php-BBUBE1dy.js +0 -1
  359. package/dist/core-dist/assets/php-CDn_0X-4.js +0 -1
  360. package/dist/core-dist/assets/pieDiagram-ADFJNKIX-CPtZmRfi.js +0 -30
  361. package/dist/core-dist/assets/pkl-u5AG7uiY.js +0 -1
  362. package/dist/core-dist/assets/pla-DSh2-awV.js +0 -1
  363. package/dist/core-dist/assets/plastic-3e1v2bzS.js +0 -1
  364. package/dist/core-dist/assets/plsql-ChMvpjG-.js +0 -1
  365. package/dist/core-dist/assets/po-BTJTHyun.js +0 -1
  366. package/dist/core-dist/assets/poimandres-CS3Unz2-.js +0 -1
  367. package/dist/core-dist/assets/polar-C0HS_06l.js +0 -1
  368. package/dist/core-dist/assets/postcss-CXtECtnM.js +0 -1
  369. package/dist/core-dist/assets/postiats-CocnycG-.js +0 -1
  370. package/dist/core-dist/assets/powerquery-CEu0bR-o.js +0 -1
  371. package/dist/core-dist/assets/powerquery-tScXyioY.js +0 -1
  372. package/dist/core-dist/assets/powershell-COWaemsV.js +0 -1
  373. package/dist/core-dist/assets/powershell-Dpen1YoG.js +0 -1
  374. package/dist/core-dist/assets/prisma-Dd19v3D-.js +0 -1
  375. package/dist/core-dist/assets/prolog-CbFg5uaA.js +0 -1
  376. package/dist/core-dist/assets/proto-C7zT0LnQ.js +0 -1
  377. package/dist/core-dist/assets/protobuf-Brw8urJB.js +0 -2
  378. package/dist/core-dist/assets/pug-8SOpv6rk.js +0 -1
  379. package/dist/core-dist/assets/pug-CGlum2m_.js +0 -1
  380. package/dist/core-dist/assets/puppet-BMWR74SV.js +0 -1
  381. package/dist/core-dist/assets/purescript-CklMAg4u.js +0 -1
  382. package/dist/core-dist/assets/python-B6aJPvgy.js +0 -1
  383. package/dist/core-dist/assets/python-B9JzkkTC.js +0 -1
  384. package/dist/core-dist/assets/qml-3beO22l8.js +0 -1
  385. package/dist/core-dist/assets/qmldir-C8lEn-DE.js +0 -1
  386. package/dist/core-dist/assets/qsharp-Bw9ernYp.js +0 -1
  387. package/dist/core-dist/assets/qss-IeuSbFQv.js +0 -1
  388. package/dist/core-dist/assets/quadrantDiagram-AYHSOK5B-S4R-vVvp.js +0 -7
  389. package/dist/core-dist/assets/queries.store-B1nG_ISF.js +0 -1
  390. package/dist/core-dist/assets/r-Dspwwk_N.js +0 -1
  391. package/dist/core-dist/assets/r-j7ic8hl3.js +0 -1
  392. package/dist/core-dist/assets/racket-BqYA7rlc.js +0 -1
  393. package/dist/core-dist/assets/raku-DXvB9xmW.js +0 -1
  394. package/dist/core-dist/assets/razor-C1TweQQi.js +0 -1
  395. package/dist/core-dist/assets/razor-CzwuFYGp.js +0 -1
  396. package/dist/core-dist/assets/red-bN70gL4F.js +0 -1
  397. package/dist/core-dist/assets/redis-Bu5POkcn.js +0 -1
  398. package/dist/core-dist/assets/redshift-Bs9aos_-.js +0 -1
  399. package/dist/core-dist/assets/reg-C-SQnVFl.js +0 -1
  400. package/dist/core-dist/assets/regexp-CDVJQ6XC.js +0 -1
  401. package/dist/core-dist/assets/rel-C3B-1QV4.js +0 -1
  402. package/dist/core-dist/assets/requirementDiagram-UZGBJVZJ-DLD6w2sA.js +0 -64
  403. package/dist/core-dist/assets/restructuredtext-CqXO7rUv.js +0 -1
  404. package/dist/core-dist/assets/riscv-BM1_JUlF.js +0 -1
  405. package/dist/core-dist/assets/rose-pine-dawn-DHQR4-dF.js +0 -1
  406. package/dist/core-dist/assets/rose-pine-moon-D4_iv3hh.js +0 -1
  407. package/dist/core-dist/assets/rose-pine-qdsjHGoJ.js +0 -1
  408. package/dist/core-dist/assets/rosmsg-BJDFO7_C.js +0 -1
  409. package/dist/core-dist/assets/rst-B0xPkSld.js +0 -1
  410. package/dist/core-dist/assets/ruby-BvKwtOVI.js +0 -1
  411. package/dist/core-dist/assets/ruby-zBfavPgS.js +0 -1
  412. package/dist/core-dist/assets/runner-tab-DPb19JM8.js +0 -915
  413. package/dist/core-dist/assets/runner-tab-Dvl_Svmm.css +0 -1
  414. package/dist/core-dist/assets/rust-B1yitclQ.js +0 -1
  415. package/dist/core-dist/assets/rust-BzKRNQWT.js +0 -1
  416. package/dist/core-dist/assets/sankeyDiagram-TZEHDZUN-BbQCHwbF.js +0 -10
  417. package/dist/core-dist/assets/sas-cz2c8ADy.js +0 -1
  418. package/dist/core-dist/assets/sass-Cj5Yp3dK.js +0 -1
  419. package/dist/core-dist/assets/sb-BBc9UKZt.js +0 -1
  420. package/dist/core-dist/assets/scala-C151Ov-r.js +0 -1
  421. package/dist/core-dist/assets/scala-D9hQfWCl.js +0 -1
  422. package/dist/core-dist/assets/schema-BD130Lxx.js +0 -1
  423. package/dist/core-dist/assets/scheme-BPhDTwHR.js +0 -1
  424. package/dist/core-dist/assets/scheme-C98Dy4si.js +0 -1
  425. package/dist/core-dist/assets/scss-CBJaRo0y.js +0 -3
  426. package/dist/core-dist/assets/scss-OYdSNvt2.js +0 -1
  427. package/dist/core-dist/assets/sdbl-DVxCFoDh.js +0 -1
  428. package/dist/core-dist/assets/sequenceDiagram-WL72ISMW-DJmT-TV8.js +0 -145
  429. package/dist/core-dist/assets/shaderlab-Dg9Lc6iA.js +0 -1
  430. package/dist/core-dist/assets/shell-DiJ1NA_G.js +0 -1
  431. package/dist/core-dist/assets/shellscript-Yzrsuije.js +0 -1
  432. package/dist/core-dist/assets/shellsession-BADoaaVG.js +0 -1
  433. package/dist/core-dist/assets/slack-dark-BthQWCQV.js +0 -1
  434. package/dist/core-dist/assets/slack-ochin-DqwNpetd.js +0 -1
  435. package/dist/core-dist/assets/smalltalk-BERRCDM3.js +0 -1
  436. package/dist/core-dist/assets/snazzy-light-Bw305WKR.js +0 -1
  437. package/dist/core-dist/assets/solarized-dark-DXbdFlpD.js +0 -1
  438. package/dist/core-dist/assets/solarized-light-L9t79GZl.js +0 -1
  439. package/dist/core-dist/assets/solidity-Db0IVjzk.js +0 -1
  440. package/dist/core-dist/assets/solidity-rGO070M0.js +0 -1
  441. package/dist/core-dist/assets/sophia-CnS9iZB_.js +0 -1
  442. package/dist/core-dist/assets/soy-Brmx7dQM.js +0 -1
  443. package/dist/core-dist/assets/sparql-CJmd_6j2.js +0 -1
  444. package/dist/core-dist/assets/sparql-rVzFXLq3.js +0 -1
  445. package/dist/core-dist/assets/spinner-ChqXfynD.js +0 -1
  446. package/dist/core-dist/assets/splunk-BtCnVYZw.js +0 -1
  447. package/dist/core-dist/assets/sql-BLtJtn59.js +0 -1
  448. package/dist/core-dist/assets/sql-ClhHkBeG.js +0 -1
  449. package/dist/core-dist/assets/ssh-config-_ykCGR6B.js +0 -1
  450. package/dist/core-dist/assets/st-CHwy0fLd.js +0 -1
  451. package/dist/core-dist/assets/stata-BH5u7GGu.js +0 -1
  452. package/dist/core-dist/assets/stateDiagram-FKZM4ZOC-CA3Y31oP.js +0 -1
  453. package/dist/core-dist/assets/stateDiagram-v2-4FDKWEC3-C9Mi7uYs.js +0 -1
  454. package/dist/core-dist/assets/stylus-BEDo0Tqx.js +0 -1
  455. package/dist/core-dist/assets/svelte-zxCyuUbr.js +0 -1
  456. package/dist/core-dist/assets/swift-CnmFD0ga.js +0 -1
  457. package/dist/core-dist/assets/swift-Dg5xB15N.js +0 -1
  458. package/dist/core-dist/assets/synthwave-84-CbfX1IO0.js +0 -1
  459. package/dist/core-dist/assets/system-verilog-CnnmHF94.js +0 -1
  460. package/dist/core-dist/assets/systemd-4A_iFExJ.js +0 -1
  461. package/dist/core-dist/assets/systemverilog-Bs9z6M-B.js +0 -1
  462. package/dist/core-dist/assets/talonscript-CkByrt1z.js +0 -1
  463. package/dist/core-dist/assets/tasl-QIJgUcNo.js +0 -1
  464. package/dist/core-dist/assets/tcl-Dm6ycUr_.js +0 -1
  465. package/dist/core-dist/assets/tcl-dwOrl1Do.js +0 -1
  466. package/dist/core-dist/assets/templ-W15q3VgB.js +0 -1
  467. package/dist/core-dist/assets/terraform-BETggiCN.js +0 -1
  468. package/dist/core-dist/assets/tex-CvyZ59Mk.js +0 -1
  469. package/dist/core-dist/assets/timeline-definition-IT6M3QCI-CZ6VgbGA.js +0 -61
  470. package/dist/core-dist/assets/tokyo-night-hegEt444.js +0 -1
  471. package/dist/core-dist/assets/toml-vGWfd6FD.js +0 -1
  472. package/dist/core-dist/assets/treemap-KMMF4GRG-CGReTPVL.js +0 -128
  473. package/dist/core-dist/assets/ts-tags-zn1MmPIZ.js +0 -1
  474. package/dist/core-dist/assets/ts.worker-BH9nVgjN.js +0 -67718
  475. package/dist/core-dist/assets/tsMode-CIVrOdYR.js +0 -11
  476. package/dist/core-dist/assets/tsv-B_m7g4N7.js +0 -1
  477. package/dist/core-dist/assets/tsx-COt5Ahok.js +0 -1
  478. package/dist/core-dist/assets/turtle-BsS91CYL.js +0 -1
  479. package/dist/core-dist/assets/twig-CO9l9SDP.js +0 -1
  480. package/dist/core-dist/assets/twig-Csy3S7wG.js +0 -1
  481. package/dist/core-dist/assets/typescript-BPQ3VLAy.js +0 -1
  482. package/dist/core-dist/assets/typescript-C-mVzuNT.js +0 -1
  483. package/dist/core-dist/assets/typespec-BGHnOYBU.js +0 -1
  484. package/dist/core-dist/assets/typespec-Btyra-wh.js +0 -1
  485. package/dist/core-dist/assets/typst-DHCkPAjA.js +0 -1
  486. package/dist/core-dist/assets/v-BcVCzyr7.js +0 -1
  487. package/dist/core-dist/assets/vala-CsfeWuGM.js +0 -1
  488. package/dist/core-dist/assets/vb-D17OF-Vu.js +0 -1
  489. package/dist/core-dist/assets/vb-Db0cS2oM.js +0 -1
  490. package/dist/core-dist/assets/verilog-BQ8w6xss.js +0 -1
  491. package/dist/core-dist/assets/vesper-DU1UobuO.js +0 -1
  492. package/dist/core-dist/assets/vhdl-CeAyd5Ju.js +0 -1
  493. package/dist/core-dist/assets/viml-CJc9bBzg.js +0 -1
  494. package/dist/core-dist/assets/visualizer-CFH9tiUM.js +0 -1
  495. package/dist/core-dist/assets/vitesse-black-Bkuqu6BP.js +0 -1
  496. package/dist/core-dist/assets/vitesse-dark-D0r3Knsf.js +0 -1
  497. package/dist/core-dist/assets/vitesse-light-CVO1_9PV.js +0 -1
  498. package/dist/core-dist/assets/vue-DN_0RTcg.js +0 -1
  499. package/dist/core-dist/assets/vue-html-AaS7Mt5G.js +0 -1
  500. package/dist/core-dist/assets/vue-vine-CQOfvN7w.js +0 -1
  501. package/dist/core-dist/assets/vyper-CDx5xZoG.js +0 -1
  502. package/dist/core-dist/assets/wasm-CG6Dc4jp.js +0 -1
  503. package/dist/core-dist/assets/wasm-MzD3tlZU.js +0 -1
  504. package/dist/core-dist/assets/wenyan-BV7otONQ.js +0 -1
  505. package/dist/core-dist/assets/wgsl-BTesnYfV.js +0 -298
  506. package/dist/core-dist/assets/wgsl-Dx-B1_4e.js +0 -1
  507. package/dist/core-dist/assets/wikitext-BhOHFoWU.js +0 -1
  508. package/dist/core-dist/assets/wit-5i3qLPDT.js +0 -1
  509. package/dist/core-dist/assets/wolfram-lXgVvXCa.js +0 -1
  510. package/dist/core-dist/assets/xml-B32PQaiV.js +0 -1
  511. package/dist/core-dist/assets/xml-sdJ4AIDG.js +0 -1
  512. package/dist/core-dist/assets/xsl-CtQFsRM5.js +0 -1
  513. package/dist/core-dist/assets/xychartDiagram-PRI3JC2R-BP0zg957.js +0 -7
  514. package/dist/core-dist/assets/yaml-Buea-lGh.js +0 -1
  515. package/dist/core-dist/assets/yaml-i7-mo1Cv.js +0 -1
  516. package/dist/core-dist/assets/zenscript-DVFEvuxE.js +0 -1
  517. package/dist/core-dist/assets/zig-VOosw3JB.js +0 -1
  518. package/dist/core-dist/image.png +0 -0
  519. package/dist/core-dist/index.html +0 -14
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- var Kt=Object.defineProperty;var m=(t,e)=>()=>(t&&(e=t(t=0)),e);var Mt=(t,e)=>{for(var r in e)Kt(t,r,{get:e[r],enumerable:!0})};var ue=m(()=>{"use strict"});var R,de=m(()=>{"use strict";R={PORT:3333,ENV:".env",VAR_NAME:"DATABASE_URL",BASE_URL:"http://localhost:3333",PROXY_URL:process.env.NODE_ENV==="development"?"http://localhost:8787":"https://db-studio-proxy.husamql3.workers.dev"}});var pe=m(()=>{"use strict"});var fe,B=m(()=>{"use strict";fe={AUTHOR:"H\xFCsam \u{1F951} <devhsmq@gmail.com>",AUTHOR_NAME:"H\xFCsam",AUTHOR_AVATAR:"/avocado.png",AUTHOR_USERNAME:"husamql3",AUTHOR_GITHUB_LINK:"https://github.com/husamql3",SITE_DESCRIPTION:"The modern pgAdmin alternative that works with every database.",SITE_KEYWORDS:["database","management","studio","spreadsheet","ai","sql"],SITE_TITLE:"DB Studio",SITE_NAME:"dbstudio.sh",SITE_URL:"https://dbstudio.sh",SITE_X_LINK:"https://x.com/dbstudio_sh",SITE_GITHUB_LINK:"https://github.com/husamql3/db-studio",SITE_DOCS_LINK:"https://dbstudio.sh/docs",SITE_CHANGELOG_LINK:"https://dbstudio.sh/changelog",SITE_ROADMAP_LINK:"https://dbstudio.sh/roadmap",SITE_IMAGE:"/og-image.png",SITE_IMAGE_WIDTH:"1200",SITE_IMAGE_HEIGHT:"630",SITE_IMAGE_ALT:"dbstudio.sh \u2013 Modern database management studio",SITE_COLOR:"#1447e6"}});var ge=m(()=>{"use strict"});var q=m(()=>{"use strict";ue();de();pe();B();ge()});import{Pool as nr}from"pg";var j,ar,x,G=m(()=>{"use strict";j=null,ar=()=>{if(!j){if(!process.env.DATABASE_URL)throw new Error("DATABASE_URL is not set. Please provide a database connection string.");try{j=new nr({connectionString:process.env.DATABASE_URL}),j.on("error",t=>{})}catch(t){throw t}}return j},x=new Proxy({},{get(t,e){try{return ar()[e]}catch(r){throw r}}})});var xe=m(()=>{"use strict"});var D,Y=m(()=>{"use strict";D={text:"text",boolean:"boolean",number:"number",enum:"enum",json:"json",date:"date",array:"array"}});function Ae(t){let e=t.toLowerCase().trim();return e.includes("[]")||e==="date"||e==="time"||e==="time without time zone"||e.startsWith("time(")||e==="timestamp"||e==="timestamp without time zone"||e.startsWith("timestamp(")||e==="timestamp with time zone"||e==="timestamptz"||e.startsWith("timestamp with time zone(")?D.date:e==="integer"||e==="int"||e==="int4"||e==="bigint"||e==="int8"||e==="smallint"||e==="int2"||e==="decimal"||e.startsWith("decimal(")||e==="numeric"||e.startsWith("numeric(")||e==="real"||e==="float4"||e==="double precision"||e==="float8"||e==="float"||e==="serial"||e==="serial4"||e==="bigserial"||e==="serial8"||e==="money"?D.number:e==="boolean"||e==="bool"?D.boolean:e==="json"||e==="jsonb"?D.json:e.startsWith("user-defined")||e==="enum"||e==="text"||e==="xml"?D.text:e==="character varying"||e.startsWith("varchar")||e.startsWith("character varying(")||e==="character"||e.startsWith("char")||e.startsWith("character(")||e==="bpchar"||e==="uuid"||e==="interval"||e.startsWith("interval")||e==="bytea"||e==="point"||e==="line"||e==="polygon"||e==="inet"||e==="cidr"||e==="macaddr"||e==="macaddr8"?D.text:D.text}function $e(t){let e=t.toLowerCase().trim();return e==="integer"||e==="int"||e==="int4"||e==="serial"||e==="serial4"?f.int:e==="bigint"||e==="int8"||e==="bigserial"||e==="serial8"?f.bigint:e==="smallint"||e==="int2"?f.smallint:e==="decimal"||e.startsWith("decimal(")||e==="numeric"||e.startsWith("numeric(")?f.numeric:e==="real"||e==="float4"?f.float:e==="double precision"||e==="float8"||e==="float"?f.double:e==="money"?f.money:e==="boolean"||e==="bool"?f.boolean:e==="text"?f.text:e==="character varying"||e.startsWith("varchar")||e.startsWith("character varying(")?f.varchar:e==="character"||e.startsWith("char")||e.startsWith("character(")||e==="bpchar"?f.char:e==="json"?f.json:e==="jsonb"?f.jsonb:e==="xml"?f.xml:e==="uuid"?f.uuid:e==="date"?f.date:e==="time"||e==="time without time zone"||e.startsWith("time(")?f.time:e==="timestamp"||e==="timestamp without time zone"||e.startsWith("timestamp(")?f.timestamp:e==="timestamp with time zone"||e==="timestamptz"||e.startsWith("timestamp with time zone(")?f.timestamptz:e==="interval"||e.startsWith("interval")?f.interval:e==="bytea"?f.bytea:e==="inet"?f.inet:e==="cidr"?f.cidr:e==="macaddr"?f.macaddr:e==="macaddr8"?f.macaddr8:e==="point"?f.point:e==="line"?f.line:e==="polygon"?f.polygon:e.startsWith("array")||e.includes("[]")?f.text:e.startsWith("user-defined")||e==="enum"?f.enum:f.text}var f,Le=m(()=>{"use strict";Y();f={int:"int",bigint:"bigint",smallint:"smallint",numeric:"numeric",float:"float",double:"double",money:"money",boolean:"boolean",text:"text",varchar:"varchar",char:"char",json:"json",jsonb:"jsonb",xml:"xml",uuid:"uuid",date:"date",time:"time",timestamp:"timestamp",timestamptz:"timestamptz",interval:"interval",bytea:"bytea",inet:"inet",cidr:"cidr",macaddr:"macaddr",macaddr8:"macaddr8",point:"point",line:"line",polygon:"polygon",array:"array",enum:"enum"}});var Pe=m(()=>{"use strict"});import{z as sr}from"zod";var ir,J,X=m(()=>{"use strict";ir=["CASCADE","SET NULL","SET DEFAULT","RESTRICT","NO ACTION"],J=sr.enum(ir)});import{z as l}from"zod";var cr,ko,Ie,F,Oe,qe,ke,Z,Ue,T,je=m(()=>{"use strict";X();cr=l.object({columnName:l.string().min(1),columnType:l.string().min(1),defaultValue:l.string(),isPrimaryKey:l.boolean(),isNullable:l.boolean(),isUnique:l.boolean(),isIdentity:l.boolean(),isArray:l.boolean()}),ko=l.object({columnName:l.string().min(1),referencedTable:l.string().min(1),referencedColumn:l.string().min(1),onUpdate:J,onDelete:J}),Ie=l.object({tableName:l.string().min(1,"Table name is required"),fields:l.array(cr).min(1,"At least one field is required")}),F=l.object({tableName:l.string().min(1,"Table name is required")}),Oe=l.object({page:l.string().optional().default("1").transform(Number),pageSize:l.string().optional().default("50").transform(Number),sort:l.string().optional().default(""),order:l.enum(["asc","desc"]).optional(),filters:l.string().optional().transform(t=>{if(!t)return[];try{return JSON.parse(t)}catch{return[]}})}),qe=l.object({tableName:l.string().min(1,"Table name is required"),data:l.record(l.string(),l.any())}),ke=l.object({tableName:l.string().min(1,"Table name is required"),updates:l.array(l.object({rowData:l.any(),columnName:l.string().min(1),value:l.any()})).min(1,"At least one update is required"),primaryKey:l.string().optional()}),Z=l.object({tableName:l.string().min(1,"Table name is required"),primaryKeys:l.array(l.object({columnName:l.string().min(1),value:l.any()})).min(1,"At least one primary key is required")}),Ue=l.object({query:l.string().min(1,"Query is required")}),T=l.object({database:l.string().optional()})});var Fe=m(()=>{"use strict"});var Ke=m(()=>{"use strict"});var Me=m(()=>{"use strict"});var We=m(()=>{"use strict"});var Ve=m(()=>{"use strict"});var He=m(()=>{"use strict"});var Be=m(()=>{"use strict"});var Qe=m(()=>{"use strict"});var ze=m(()=>{"use strict"});var v=m(()=>{"use strict";xe();Le();Pe();je();Y();Fe();Ke();Me();We();X();Ve();He();Be();Qe();ze()});import{Pool as Ge}from"pg";var ee,lr,b,S=m(()=>{"use strict";ee=class{pools=new Map;baseConfig=null;constructor(){this.initializeBaseConfig()}initializeBaseConfig(){let e=process.env.DATABASE_URL;if(!e)throw new Error("DATABASE_URL is not set. Please provide a database connection string.");try{let r=new URL(e);this.baseConfig={url:e,host:r.hostname,port:Number.parseInt(r.port,10)||5432,user:r.username,password:r.password}}catch(r){throw new Error(`Failed to parse DATABASE_URL: ${r}`)}}buildConnectionString(e){if(!this.baseConfig)throw new Error("Base configuration not initialized");if(!e){let r=this.baseConfig.url;r&&(e=new URL(r).pathname.slice(1))}try{let r=new URL(this.baseConfig.url);return r.pathname=`/${e}`,r.toString()}catch(r){throw new Error(`Failed to build connection string for database "${e}": ${r instanceof Error?r.message:String(r)}`)}}getPool(e){let r=this.buildConnectionString(e);if(!this.pools.has(r)){let o={connectionString:r,max:10,idleTimeoutMillis:3e4,connectionTimeoutMillis:2e3},a=new Ge(o);a.on("error",n=>{}),this.pools.set(r,a)}return this.pools.get(r)??new Ge({connectionString:r})}async closePool(e){let r=this.pools.get(e);r&&(await r.end(),this.pools.delete(e))}async closePoolByDatabase(e){let r=this.buildConnectionString(e);await this.closePool(r)}async closeAll(){let e=Array.from(this.pools.entries()).map(async([r,o])=>{await o.end()});await Promise.all(e),this.pools.clear()}getActivePools(){return Array.from(this.pools.keys())}},lr=new ee,b=t=>lr.getPool(t)});var K,te=m(()=>{"use strict";v();S();K=async(t,e)=>{let o=await b(e).connect();try{return(await o.query(`
2
+ var Kt=Object.defineProperty;var u=(t,e)=>()=>(t&&(e=t(t=0)),e);var Mt=(t,e)=>{for(var r in e)Kt(t,r,{get:e[r],enumerable:!0})};var ue=u(()=>{"use strict"});var D,de=u(()=>{"use strict";D={PORT:3333,ENV:".env",VAR_NAME:"DATABASE_URL",BASE_URL:"http://localhost:3333",PROXY_URL:process.env.NODE_ENV==="development"?"http://localhost:8787":"https://db-studio-proxy.husamql3.workers.dev"}});var pe=u(()=>{"use strict"});var fe,Q=u(()=>{"use strict";fe={AUTHOR:"H\xFCsam \u{1F951} <devhsmq@gmail.com>",AUTHOR_NAME:"H\xFCsam",AUTHOR_AVATAR:"/avocado.png",AUTHOR_USERNAME:"husamql3",AUTHOR_GITHUB_LINK:"https://github.com/husamql3",SITE_DESCRIPTION:"The modern pgAdmin alternative that works with every database.",SITE_KEYWORDS:["database","management","studio","spreadsheet","ai","sql"],SITE_TITLE:"DB Studio",SITE_NAME:"dbstudio.sh",SITE_URL:"https://dbstudio.sh",SITE_X_LINK:"https://x.com/dbstudio_sh",SITE_GITHUB_LINK:"https://github.com/husamql3/db-studio",SITE_DOCS_LINK:"https://dbstudio.sh/docs",SITE_CHANGELOG_LINK:"https://dbstudio.sh/changelog",SITE_ROADMAP_LINK:"https://dbstudio.sh/roadmap",SITE_IMAGE:"/og-image.png",SITE_IMAGE_WIDTH:"1200",SITE_IMAGE_HEIGHT:"630",SITE_IMAGE_ALT:"dbstudio.sh \u2013 Modern database management studio",SITE_COLOR:"#1447e6"}});var ge=u(()=>{"use strict"});var j=u(()=>{"use strict";ue();de();pe();Q();ge()});import{Pool as nr}from"pg";var M,ar,$,G=u(()=>{"use strict";M=null,ar=()=>{if(!M){if(!process.env.DATABASE_URL)throw new Error("DATABASE_URL is not set. Please provide a database connection string.");try{M=new nr({connectionString:process.env.DATABASE_URL}),M.on("error",t=>{})}catch(t){throw t}}return M},$=new Proxy({},{get(t,e){try{return ar()[e]}catch(r){throw r}}})});var xe=u(()=>{"use strict"});var v,J=u(()=>{"use strict";v={text:"text",boolean:"boolean",number:"number",enum:"enum",json:"json",date:"date",array:"array"}});function Ae(t){let e=t.toLowerCase().trim();return e.includes("[]")||e==="date"||e==="time"||e==="time without time zone"||e.startsWith("time(")||e==="timestamp"||e==="timestamp without time zone"||e.startsWith("timestamp(")||e==="timestamp with time zone"||e==="timestamptz"||e.startsWith("timestamp with time zone(")?v.date:e==="integer"||e==="int"||e==="int4"||e==="bigint"||e==="int8"||e==="smallint"||e==="int2"||e==="decimal"||e.startsWith("decimal(")||e==="numeric"||e.startsWith("numeric(")||e==="real"||e==="float4"||e==="double precision"||e==="float8"||e==="float"||e==="serial"||e==="serial4"||e==="bigserial"||e==="serial8"||e==="money"?v.number:e==="boolean"||e==="bool"?v.boolean:e==="json"||e==="jsonb"?v.json:e.startsWith("user-defined")||e==="enum"||e==="text"||e==="xml"?v.text:e==="character varying"||e.startsWith("varchar")||e.startsWith("character varying(")||e==="character"||e.startsWith("char")||e.startsWith("character(")||e==="bpchar"||e==="uuid"||e==="interval"||e.startsWith("interval")||e==="bytea"||e==="point"||e==="line"||e==="polygon"||e==="inet"||e==="cidr"||e==="macaddr"||e==="macaddr8"?v.text:v.text}function $e(t){let e=t.toLowerCase().trim();return e==="integer"||e==="int"||e==="int4"||e==="serial"||e==="serial4"?f.int:e==="bigint"||e==="int8"||e==="bigserial"||e==="serial8"?f.bigint:e==="smallint"||e==="int2"?f.smallint:e==="decimal"||e.startsWith("decimal(")||e==="numeric"||e.startsWith("numeric(")?f.numeric:e==="real"||e==="float4"?f.float:e==="double precision"||e==="float8"||e==="float"?f.double:e==="money"?f.money:e==="boolean"||e==="bool"?f.boolean:e==="text"?f.text:e==="character varying"||e.startsWith("varchar")||e.startsWith("character varying(")?f.varchar:e==="character"||e.startsWith("char")||e.startsWith("character(")||e==="bpchar"?f.char:e==="json"?f.json:e==="jsonb"?f.jsonb:e==="xml"?f.xml:e==="uuid"?f.uuid:e==="date"?f.date:e==="time"||e==="time without time zone"||e.startsWith("time(")?f.time:e==="timestamp"||e==="timestamp without time zone"||e.startsWith("timestamp(")?f.timestamp:e==="timestamp with time zone"||e==="timestamptz"||e.startsWith("timestamp with time zone(")?f.timestamptz:e==="interval"||e.startsWith("interval")?f.interval:e==="bytea"?f.bytea:e==="inet"?f.inet:e==="cidr"?f.cidr:e==="macaddr"?f.macaddr:e==="macaddr8"?f.macaddr8:e==="point"?f.point:e==="line"?f.line:e==="polygon"?f.polygon:e.startsWith("array")||e.includes("[]")?f.text:e.startsWith("user-defined")||e==="enum"?f.enum:f.text}var f,Pe=u(()=>{"use strict";J();f={int:"int",bigint:"bigint",smallint:"smallint",numeric:"numeric",float:"float",double:"double",money:"money",boolean:"boolean",text:"text",varchar:"varchar",char:"char",json:"json",jsonb:"jsonb",xml:"xml",uuid:"uuid",date:"date",time:"time",timestamp:"timestamp",timestamptz:"timestamptz",interval:"interval",bytea:"bytea",inet:"inet",cidr:"cidr",macaddr:"macaddr",macaddr8:"macaddr8",point:"point",line:"line",polygon:"polygon",array:"array",enum:"enum"}});var Le=u(()=>{"use strict"});import{z as sr}from"zod";var ir,X,Z=u(()=>{"use strict";ir=["CASCADE","SET NULL","SET DEFAULT","RESTRICT","NO ACTION"],X=sr.enum(ir)});import{z as c}from"zod";var cr,lr,Ie,ee,Oe,qe,ke,te,Ue,R,je=u(()=>{"use strict";Z();cr=c.object({columnName:c.string().min(1),columnType:c.string().min(1),defaultValue:c.string(),isPrimaryKey:c.boolean(),isNullable:c.boolean(),isUnique:c.boolean(),isIdentity:c.boolean(),isArray:c.boolean()}),lr=c.object({columnName:c.string().min(1),referencedTable:c.string().min(1),referencedColumn:c.string().min(1),onUpdate:X,onDelete:X}),Ie=c.object({tableName:c.string().min(1,"Table name is required"),fields:c.array(cr).min(1,"At least one field is required"),foreignKeys:c.array(lr).optional()}),ee=c.object({tableName:c.string().min(1,"Table name is required")}),Oe=c.object({database:c.string().min(1,"Database is required"),page:c.string().optional().default("1").transform(Number),pageSize:c.string().optional().default("50").transform(Number),sort:c.string().optional().default(""),order:c.enum(["asc","desc"]).optional(),filters:c.string().optional().transform(t=>{if(!t)return[];try{return JSON.parse(t)}catch{return[]}})}),qe=c.object({tableName:c.string().min(1,"Table name is required"),data:c.record(c.string(),c.any())}),ke=c.object({tableName:c.string().min(1,"Table name is required"),updates:c.array(c.object({rowData:c.any(),columnName:c.string().min(1),value:c.any()})).min(1,"At least one update is required"),primaryKey:c.string().optional()}),te=c.object({tableName:c.string().min(1,"Table name is required"),primaryKeys:c.array(c.object({columnName:c.string().min(1),value:c.any()})).min(1,"At least one primary key is required")}),Ue=c.object({query:c.string().min(1,"Query is required")}),R=c.object({database:c.string().optional()})});var Fe=u(()=>{"use strict"});var Ke=u(()=>{"use strict"});import{z as P}from"zod";var Me,We,Ve=u(()=>{"use strict";Me=P.object({tableName:P.string().min(1,"Table name is required"),columnName:P.string().min(1,"Column name is required")}),We=P.object({database:P.string().optional(),cascade:P.string().optional().transform(t=>t==="true")})});var He=u(()=>{"use strict"});var Be=u(()=>{"use strict"});var Qe=u(()=>{"use strict"});var ze=u(()=>{"use strict"});var Ye=u(()=>{"use strict"});var Ge=u(()=>{"use strict"});var Je=u(()=>{"use strict"});var q=u(()=>{"use strict";xe();Pe();Le();je();J();Fe();Ke();Ve();He();Be();Z();Qe();ze();Ye();Ge();Je()});import{Pool as Xe}from"pg";var re,mr,b,S=u(()=>{"use strict";re=class{pools=new Map;baseConfig=null;constructor(){this.initializeBaseConfig()}initializeBaseConfig(){let e=process.env.DATABASE_URL;if(!e)throw new Error("DATABASE_URL is not set. Please provide a database connection string.");try{let r=new URL(e);this.baseConfig={url:e,host:r.hostname,port:Number.parseInt(r.port,10)||5432,user:r.username,password:r.password}}catch(r){throw new Error(`Failed to parse DATABASE_URL: ${r}`)}}buildConnectionString(e){if(!this.baseConfig)throw new Error("Base configuration not initialized");if(!e){let r=this.baseConfig.url;r&&(e=new URL(r).pathname.slice(1))}try{let r=new URL(this.baseConfig.url);return r.pathname=`/${e}`,r.toString()}catch(r){throw new Error(`Failed to build connection string for database "${e}": ${r instanceof Error?r.message:String(r)}`)}}getPool(e){let r=this.buildConnectionString(e);if(!this.pools.has(r)){let o={connectionString:r,max:10,idleTimeoutMillis:3e4,connectionTimeoutMillis:2e3},a=new Xe(o);a.on("error",n=>{}),this.pools.set(r,a)}return this.pools.get(r)??new Xe({connectionString:r})}async closePool(e){let r=this.pools.get(e);r&&(await r.end(),this.pools.delete(e))}async closePoolByDatabase(e){let r=this.buildConnectionString(e);await this.closePool(r)}async closeAll(){let e=Array.from(this.pools.entries()).map(async([r,o])=>{await o.end()});await Promise.all(e),this.pools.clear()}getActivePools(){return Array.from(this.pools.keys())}},mr=new re,b=t=>mr.getPool(t)});var W,oe=u(()=>{"use strict";q();S();W=async(t,e)=>{let o=await b(e).connect();try{return(await o.query(`
3
3
  SELECT
4
4
  c.column_name as "columnName",
5
5
  c.data_type as "dataType",
@@ -48,18 +48,18 @@ var Kt=Object.defineProperty;var m=(t,e)=>()=>(t&&(e=t(t=0)),e);var Mt=(t,e)=>{f
48
48
  WHERE c.table_schema = 'public'
49
49
  AND c.table_name = $1
50
50
  ORDER BY c.ordinal_position;
51
- `,[t])).rows.map(n=>{let s=null;return n.enumValues&&(Array.isArray(n.enumValues)?s=n.enumValues:typeof n.enumValues=="string"&&(s=n.enumValues.replace(/[{}]/g,"").split(",").filter(Boolean))),{columnName:n.columnName,dataType:Ae(n.dataType),dataTypeLabel:$e(n.dataType),isNullable:n.isNullable,columnDefault:n.columnDefault,isPrimaryKey:n.isPrimaryKey,isForeignKey:n.isForeignKey,referencedTable:n.referencedTable,referencedColumn:n.referencedColumn,enumValues:s}})}finally{o.release()}}});async function mr(){let t=await x.connect();try{return(await t.query(`
51
+ `,[t])).rows.map(n=>{let s=null;return n.enumValues&&(Array.isArray(n.enumValues)?s=n.enumValues:typeof n.enumValues=="string"&&(s=n.enumValues.replace(/[{}]/g,"").split(",").filter(Boolean))),{columnName:n.columnName,dataType:Ae(n.dataType),dataTypeLabel:$e(n.dataType),isNullable:n.isNullable,columnDefault:n.columnDefault,isPrimaryKey:n.isPrimaryKey,isForeignKey:n.isForeignKey,referencedTable:n.referencedTable,referencedColumn:n.referencedColumn,enumValues:s}})}finally{o.release()}}});async function ur(){let t=await $.connect();try{return(await t.query(`
52
52
  SELECT table_name
53
53
  FROM information_schema.tables
54
54
  WHERE table_schema = 'public'
55
55
  AND table_type = 'BASE TABLE'
56
56
  ORDER BY table_name;
57
- `)).rows.map(r=>r.table_name)}finally{t.release()}}async function ur(t){let e=await x.connect();try{return(await e.query(`
57
+ `)).rows.map(r=>r.table_name)}finally{t.release()}}async function dr(t){let e=await $.connect();try{return(await e.query(`
58
58
  SELECT obj_description(oid) as description
59
59
  FROM pg_class
60
60
  WHERE relname = $1
61
61
  AND relnamespace = (SELECT oid FROM pg_namespace WHERE nspname = 'public');
62
- `,[t])).rows[0]?.description||void 0}finally{e.release()}}async function dr(t){let e=await x.connect();try{return(await e.query(`SELECT * FROM "${t}" LIMIT 3`)).rows}catch{return[]}finally{e.release()}}function pr(t){let e={name:t.columnName,type:t.dataTypeLabel,nullable:t.isNullable};return t.isPrimaryKey&&(e.isPrimaryKey=!0),t.isForeignKey&&t.referencedTable&&t.referencedColumn&&(e.foreignKey=`${t.referencedTable}.${t.referencedColumn}`),t.enumValues&&t.enumValues.length>0&&(e.enumValues=t.enumValues,e.description=`Enum values: ${t.enumValues.join(", ")}`),e}function fr(t){let e=[];for(let r of t)for(let o of r.columns)if(o.foreignKey){let[a,n]=o.foreignKey.split(".");e.push({fromTable:r.name,fromColumn:o.name,toTable:a,toColumn:n})}return e}async function gr(t={}){let{includeSampleData:e=!1,includeDescriptions:r=!0}=t;try{let a=(await mr()).map(async i=>{let[d,u,p]=await Promise.all([K(i),r?ur(i):Promise.resolve(void 0),e?dr(i):Promise.resolve([])]),c={name:i,columns:d.map(pr)};return u&&(c.description=u),p.length>0&&(c.sampleData=p),c}),n=await Promise.all(a),s=fr(n);return{dbType:"PostgreSQL",tables:n,relationships:s}}catch(o){throw new Error(`Failed to fetch database schema: ${o instanceof Error?o.message:"Unknown error"}`)}}async function Ye(){return gr({includeSampleData:!0,includeDescriptions:!0})}var Je=m(()=>{"use strict";G();te()});function Xe(t){return`You are a database assistant for db-studio. Your responses must be CONCISE and FOCUSED.
62
+ `,[t])).rows[0]?.description||void 0}finally{e.release()}}async function pr(t){let e=await $.connect();try{return(await e.query(`SELECT * FROM "${t}" LIMIT 3`)).rows}catch{return[]}finally{e.release()}}function fr(t){let e={name:t.columnName,type:t.dataTypeLabel,nullable:t.isNullable};return t.isPrimaryKey&&(e.isPrimaryKey=!0),t.isForeignKey&&t.referencedTable&&t.referencedColumn&&(e.foreignKey=`${t.referencedTable}.${t.referencedColumn}`),t.enumValues&&t.enumValues.length>0&&(e.enumValues=t.enumValues,e.description=`Enum values: ${t.enumValues.join(", ")}`),e}function gr(t){let e=[];for(let r of t)for(let o of r.columns)if(o.foreignKey){let[a,n]=o.foreignKey.split(".");e.push({fromTable:r.name,fromColumn:o.name,toTable:a,toColumn:n})}return e}async function br(t={}){let{includeSampleData:e=!1,includeDescriptions:r=!0}=t;try{let a=(await ur()).map(async i=>{let[m,d,p]=await Promise.all([W(i),r?dr(i):Promise.resolve(void 0),e?pr(i):Promise.resolve([])]),l={name:i,columns:m.map(fr)};return d&&(l.description=d),p.length>0&&(l.sampleData=p.map(g=>Object.fromEntries(Object.entries(g).map(([h,y])=>[h,String(y)])))),l}),n=await Promise.all(a),s=gr(n);return{dbType:"PostgreSQL",tables:n,relationships:s}}catch(o){throw new Error(`Failed to fetch database schema: ${o instanceof Error?o.message:"Unknown error"}`)}}async function Ze(){return br({includeSampleData:!0,includeDescriptions:!0})}var et=u(()=>{"use strict";G();oe()});function tt(t){return`You are a database assistant for db-studio. Your responses must be CONCISE and FOCUSED.
63
63
 
64
64
  **Your Role:**
65
65
  1. Keep responses SHORT - 2-3 sentences maximum unless generating SQL
@@ -74,7 +74,7 @@ var Kt=Object.defineProperty;var m=(t,e)=>()=>(t&&(e=t(t=0)),e);var Mt=(t,e)=>{f
74
74
  6. No preamble, no apologies, get straight to the answer
75
75
 
76
76
  **Database Context:**
77
- ${br(t)}
77
+ ${yr(t)}
78
78
 
79
79
  **Guidelines:**
80
80
  1. Always generate syntactically correct SQL for the database type (${t.dbType})
@@ -112,7 +112,7 @@ LIMIT 5;
112
112
 
113
113
  This will return the 5 customers with the highest total order value. You might also want to see:
114
114
  - Revenue trends over time for these customers
115
- - Their most frequently ordered products"`}function br(t){let e=`Database Type: ${t.dbType}
115
+ - Their most frequently ordered products"`}function yr(t){let e=`Database Type: ${t.dbType}
116
116
 
117
117
  `;e+=`**Tables and Columns:**
118
118
  `;for(let r of t.tables){e+=`
@@ -126,7 +126,7 @@ This will return the 5 customers with the highest total order value. You might a
126
126
  `)}if(t.relationships&&t.relationships.length>0){e+=`
127
127
  **Relationships:**
128
128
  `;for(let r of t.relationships)e+=` - ${r.fromTable}.${r.fromColumn} -> ${r.toTable}.${r.toColumn}
129
- `}return e}var Ze=m(()=>{"use strict"});import{Hono as yr}from"hono";var re,et=m(()=>{"use strict";q();Je();Ze();re=new yr;re.post("/",async t=>{try{let{messages:e,conversationId:r}=await t.req.json(),o=await Ye(),a=Xe(o),n={messages:e,conversationId:r,systemPrompt:a},s=await fetch(`${R.PROXY_URL}/chat`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});if(!s.ok){let u=await s.json();return t.json({error:u.error||"Proxy request failed"},s.status)}let{readable:i,writable:d}=new TransformStream;return s.body?.pipeTo(d),new Response(i,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}catch(e){let r=e instanceof Error?e.message:"An error occurred";return t.json({error:r},500)}})});var A,M=m(()=>{"use strict";A=(t,e,r)=>{let o=e instanceof Error?e.message:r,a=!1;return e&&typeof e=="object"&&"code"in e?a=e.code==="ECONNREFUSED":e&&typeof e=="object"&&"errors"in e&&Array.isArray(e.errors)&&(a=e.errors?.some(s=>s.code==="ECONNREFUSED")??!1),a?t.json({success:!1,message:"Cannot connect to database. Please check your DATABASE_URL and ensure the database server is running.",error:o},503):t.json({success:!1,message:o},500)}});import{zValidator as tt}from"@hono/zod-validator";import{Hono as hr}from"hono";var oe,rt=m(()=>{"use strict";v();te();M();oe=new hr;oe.get("/",tt("param",F),tt("query",T),async t=>{try{let{tableName:e}=t.req.valid("param"),{database:r}=t.req.valid("query"),o=await K(e,r);return t.json(o)}catch(e){return A(t,e,"Failed to fetch columns")}})});var Er,wr,ot,nt=m(()=>{"use strict";S();Er=t=>{if(t.length===0)return{clause:"",values:[]};let e=[],r=[];for(let o of t){let a=r.length+1,n=`"${o.columnName}"`;switch(o.operator){case"=":case"!=":case">":case">=":case"<":case"<=":e.push(`${n} ${o.operator} $${a}`),r.push(o.value);break;case"is":o.value.toLowerCase()==="null"?e.push(`${n} IS NULL`):(e.push(`${n} = $${a}`),r.push(o.value));break;case"is not":o.value.toLowerCase()==="null"?e.push(`${n} IS NOT NULL`):(e.push(`${n} != $${a}`),r.push(o.value));break;case"like":e.push(`${n}::text LIKE $${a}`),r.push(o.value);break;case"not like":e.push(`${n}::text NOT LIKE $${a}`),r.push(o.value);break;case"ilike":e.push(`${n}::text ILIKE $${a}`),r.push(o.value);break;case"not ilike":e.push(`${n}::text NOT ILIKE $${a}`),r.push(o.value);break;default:break}}return e.length===0?{clause:"",values:[]}:{clause:`WHERE ${e.join(" AND ")}`,values:r}},wr=(t,e)=>Array.isArray(t)?t.length===0?"":`ORDER BY ${t.map(o=>`"${o.columnName}" ${o.direction.toUpperCase()}`).join(", ")}`:t&&typeof t=="string"?`ORDER BY "${t}" ${e?.toUpperCase()||"ASC"}`:"",ot=async(t,e=1,r=50,o="",a="asc",n=[],s)=>{let i=wr((Array.isArray(o),o),a),{clause:d,values:u}=Er(n),c=await b(s).connect();try{let g=(e-1)*r,w=await c.query(`SELECT COUNT(*) as total FROM "${t}" ${d}`,u),y=Number(w.rows[0].total),E=Math.ceil(y/r),N=u.length+1,h=u.length+2;return{data:(await c.query(`SELECT * FROM "${t}" ${d} ${i} LIMIT $${N} OFFSET $${h}`,[...u,r,g])).rows,meta:{page:e,limit:r,total:y,totalPages:E,hasNextPage:e<E,hasPreviousPage:e>1}}}finally{c.release()}}});import{zValidator as at}from"@hono/zod-validator";import{Hono as Tr}from"hono";var ne,st=m(()=>{"use strict";v();nt();M();ne=new Tr;ne.get("/",at("param",F),at("query",Oe),async t=>{try{let{tableName:e}=t.req.valid("param"),{page:r,pageSize:o,sort:a,order:n,filters:s}=t.req.valid("query"),i="";if(a)try{let p=JSON.parse(a);Array.isArray(p)?i=p:i=a}catch{i=a}let d=t.req.query("database"),u=await ot(e,r,o,i,n,s,d);return t.json(u)}catch(e){return A(t,e,"Failed to fetch table data")}})});async function it(){return(await b().query(`
129
+ `}return e}var rt=u(()=>{"use strict"});import{Hono as hr}from"hono";var ne,ot=u(()=>{"use strict";j();et();rt();ne=new hr;ne.post("/",async t=>{try{let{messages:e,conversationId:r}=await t.req.json(),o=await Ze(),a=tt(o),n={messages:e,conversationId:r,systemPrompt:a},s=await fetch(`${D.PROXY_URL}/chat`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});if(!s.ok){let d=await s.json();return t.json({error:d.error||"Proxy request failed"},s.status)}let{readable:i,writable:m}=new TransformStream;return s.body?.pipeTo(m),new Response(i,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}catch(e){let r=e instanceof Error?e.message:"An error occurred";return t.json({error:r},500)}})});async function nt(){return(await b().query(`
130
130
  SELECT
131
131
  d.datname as name,
132
132
  pg_size_pretty(pg_database_size(d.datname)) as size,
@@ -135,7 +135,7 @@ This will return the 5 customers with the highest total order value. You might a
135
135
  FROM pg_catalog.pg_database d
136
136
  WHERE d.datistemplate = false
137
137
  ORDER BY d.datname;
138
- `)).rows}async function ct(){return(await b().query("SELECT current_database() as database;")).rows[0]}async function lt(){let o=(await b().query(`
138
+ `)).rows}async function at(){return(await b().query("SELECT current_database() as database;")).rows[0]}async function st(){let o=(await b().query(`
139
139
  SELECT
140
140
  version() as version,
141
141
  current_database() as database,
@@ -144,7 +144,7 @@ This will return the 5 customers with the highest total order value. You might a
144
144
  inet_server_port() as port,
145
145
  (SELECT count(*) FROM pg_stat_activity WHERE datname = current_database()) as active_connections,
146
146
  (SELECT setting::int FROM pg_settings WHERE name = 'max_connections') as max_connections;
147
- `)).rows[0],a=process.env.DATABASE_URL,n="localhost",s=5432;if(a)try{let i=new URL(a);n=i.hostname,s=Number.parseInt(i.port,10)||5432}catch{}return{host:o.host||n,port:o.port||s,user:o.user,database:o.database,version:o.version,activeConnections:Number.parseInt(o.active_connections,10),maxConnections:Number.parseInt(o.max_connections,10)}}var mt=m(()=>{"use strict";S()});import{Hono as Sr}from"hono";var I,ut=m(()=>{"use strict";mt();I=new Sr;I.get("/",async t=>{try{let e=await it();return t.json(e)}catch{return t.json({error:"Failed to fetch databases list"},500)}});I.get("/current",async t=>{try{let e=await ct();return t.json(e)}catch{return t.json({error:"Failed to fetch current database"},500)}});I.get("/connection",async t=>{try{let e=await lt();return t.json(e)}catch{return t.json({error:"Failed to fetch database connection info"},500)}})});var dt,pt=m(()=>{"use strict";S();dt=async t=>{let{query:e,database:r}=t,a=await b(r).connect();try{if(!e||!e.trim())throw new Error("Query cannot be empty");let n=e.trim().replace(/;+$/,""),s=performance.now(),i=await a.query(n),d=performance.now()-s;return{columns:i.fields.map(p=>p.name),rows:i.rows,rowCount:i.rows.length,duration:d,message:i.rows.length===0?"OK":void 0}}catch(n){let s=n instanceof Error?n.message:"Unknown error occurred";throw new Error(s)}finally{a.release()}}});import{zValidator as Nr}from"@hono/zod-validator";import{Hono as Rr}from"hono";var ae,ft=m(()=>{"use strict";v();pt();ae=new Rr;ae.post("/",Nr("json",Ue),async t=>{try{let{query:e}=t.req.valid("json"),r=t.req.query("database"),o=await dt({query:e,database:r});return t.json(o)}catch(e){let r=e instanceof Error?e.message:"Unknown error";return t.json({status:"error",error:r},500)}})});var se,Dr,gt,bt,yt=m(()=>{"use strict";S();se=async(t,e)=>(await b(e).query(`
147
+ `)).rows[0],a=process.env.DATABASE_URL,n="localhost",s=5432;if(a)try{let i=new URL(a);n=i.hostname,s=Number.parseInt(i.port,10)||5432}catch{}return{host:o.host||n,port:o.port||s,user:o.user,database:o.database,version:o.version,activeConnections:Number.parseInt(o.active_connections,10),maxConnections:Number.parseInt(o.max_connections,10)}}var it=u(()=>{"use strict";S()});import{Hono as Er}from"hono";var k,ct=u(()=>{"use strict";it();k=new Er;k.get("/",async t=>{try{let e=await nt();return t.json(e)}catch{return t.json({error:"Failed to fetch databases list"},500)}});k.get("/current",async t=>{try{let e=await at();return t.json(e)}catch{return t.json({error:"Failed to fetch current database"},500)}});k.get("/connection",async t=>{try{let e=await st();return t.json(e)}catch{return t.json({error:"Failed to fetch database connection info"},500)}})});var lt,mt=u(()=>{"use strict";S();lt=async t=>{let{query:e,database:r}=t,a=await b(r).connect();try{if(!e||!e.trim())throw new Error("Query cannot be empty");let n=e.trim().replace(/;+$/,""),s=performance.now(),i=await a.query(n),m=performance.now()-s;return{columns:i.fields.map(p=>p.name),rows:i.rows,rowCount:i.rows.length,duration:m,message:i.rows.length===0?"OK":void 0}}catch(n){let s=n instanceof Error?n.message:"Unknown error occurred";throw new Error(s)}finally{a.release()}}});import{zValidator as wr}from"@hono/zod-validator";import{Hono as Sr}from"hono";var ae,ut=u(()=>{"use strict";q();mt();ae=new Sr;ae.post("/",wr("json",Ue),async t=>{try{let{query:e}=t.req.valid("json"),r=t.req.query("database"),o=await lt({query:e,database:r});return t.json(o)}catch(e){let r=e instanceof Error?e.message:"Unknown error";return t.json({status:"error",error:r},500)}})});var se,Tr,dt,pt,ft=u(()=>{"use strict";S();se=async(t,e)=>(await b(e).query(`
148
148
  SELECT
149
149
  tc.constraint_name,
150
150
  tc.table_name as referencing_table,
@@ -160,46 +160,46 @@ This will return the 5 customers with the highest total order value. You might a
160
160
  AND ccu.table_schema = tc.table_schema
161
161
  WHERE tc.constraint_type = 'FOREIGN KEY'
162
162
  AND ccu.table_name = $1
163
- `,[t])).rows.map(({row:n})=>({constraintName:n.constraint_name,referencingTable:n.referencing_table,referencingColumn:n.referencing_column,referencedTable:n.referenced_table,referencedColumn:n.referenced_column})),Dr=async(t,e,r)=>{let o=await se(t,r);if(o.length===0)return[];let a=[],n=b(r),s=new Map;for(let d of o){let u=`${d.referencingTable}.${d.referencingColumn}`;s.has(u)||s.set(u,[]),s.get(u)?.push(d)}let i=e.map(d=>d.value);for(let[d,u]of s){let p=u[0];if(!p||!e.find(y=>y.columnName===p.referencedColumn))continue;let g=i.map((y,E)=>`$${E+1}`).join(", "),w=`
163
+ `,[t])).rows.map(({row:n})=>({constraintName:n.constraint_name,referencingTable:n.referencing_table,referencingColumn:n.referencing_column,referencedTable:n.referenced_table,referencedColumn:n.referenced_column})),Tr=async(t,e,r)=>{let o=await se(t,r);if(o.length===0)return[];let a=[],n=b(r),s=new Map;for(let m of o){let d=`${m.referencingTable}.${m.referencingColumn}`;s.has(d)||s.set(d,[]),s.get(d)?.push(m)}let i=e.map(m=>m.value);for(let[m,d]of s){let p=d[0];if(!p||!e.find(y=>y.columnName===p.referencedColumn))continue;let g=i.map((y,w)=>`$${w+1}`).join(", "),h=`
164
164
  SELECT * FROM "${p.referencingTable}"
165
165
  WHERE "${p.referencingColumn}" IN (${g})
166
166
  LIMIT 100
167
- `;try{let y=await n.query(w,i);y.rows.length>0&&a.push({tableName:p.referencingTable,columnName:p.referencingColumn,constraintName:p.constraintName,records:y.rows})}catch{}}return a},gt=async t=>{let{tableName:e,primaryKeys:r,database:o}=t,n=await b(o).connect();try{await n.query("BEGIN");let s=r[0]?.columnName;if(!s)throw new Error("Primary key column name is required");let i=r.map(c=>c.value),d=i.map((c,g)=>`$${g+1}`).join(", "),u=`
167
+ `;try{let y=await n.query(h,i);y.rows.length>0&&a.push({tableName:p.referencingTable,columnName:p.referencingColumn,constraintName:p.constraintName,records:y.rows})}catch{}}return a},dt=async t=>{let{tableName:e,primaryKeys:r,database:o}=t,n=await b(o).connect();try{await n.query("BEGIN");let s=r[0]?.columnName;if(!s)throw new Error("Primary key column name is required");let i=r.map(l=>l.value),m=i.map((l,g)=>`$${g+1}`).join(", "),d=`
168
168
  DELETE FROM "${e}"
169
- WHERE "${s}" IN (${d})
169
+ WHERE "${s}" IN (${m})
170
170
  RETURNING *
171
- `,p=await n.query(u,i);return await n.query("COMMIT"),{success:!0,message:`Successfully deleted ${p.rowCount} ${p.rowCount===1?"record":"records"} from "${e}"`,deletedCount:p.rowCount??0}}catch(s){if(await n.query("ROLLBACK"),s.code==="23503")return{success:!1,message:"Cannot delete: Records are referenced by other tables",fkViolation:!0,relatedRecords:await Dr(e,r)};throw s}finally{n.release()}},bt=async t=>{let{tableName:e,primaryKeys:r,database:o}=t,n=await b(o).connect();try{await n.query("BEGIN");let s=r[0]?.columnName;if(!s)throw new Error("Primary key column name is required");let i=r.map(h=>h.value),d=await se(e,o),u=0,p=new Set,c=async(h,L,O)=>{let Ot=await se(h,o);for(let P of Ot){let H=O.map((me,Ft)=>`$${Ft+1}`).join(", "),jt=`
172
- SELECT "${P.referencedColumn}" FROM "${h}"
173
- WHERE "${L}" IN (${H})
174
- `,le=(await n.query(jt,O)).rows.map(({row:me})=>me[P.referencedColumn]);le.length>0&&await c(P.referencingTable,P.referencingColumn,le)}let qt=O.map((P,H)=>`$${H+1}`).join(", "),kt=`
175
- DELETE FROM "${h}"
176
- WHERE "${L}" IN (${qt})
177
- `,Ut=await n.query(kt,O);u+=Ut.rowCount??0,p.add(h)};for(let h of d)p.has(h.referencingTable)||await c(h.referencingTable,h.referencingColumn,i);let g=i.map((h,L)=>`$${L+1}`).join(", "),w=`
171
+ `,p=await n.query(d,i);return await n.query("COMMIT"),{success:!0,message:`Successfully deleted ${p.rowCount} ${p.rowCount===1?"record":"records"} from "${e}"`,deletedCount:p.rowCount??0}}catch(s){if(await n.query("ROLLBACK"),s.code==="23503")return{success:!1,message:"Cannot delete: Records are referenced by other tables",fkViolation:!0,relatedRecords:await Tr(e,r)};throw s}finally{n.release()}},pt=async t=>{let{tableName:e,primaryKeys:r,database:o}=t,n=await b(o).connect();try{await n.query("BEGIN");let s=r[0]?.columnName;if(!s)throw new Error("Primary key column name is required");let i=r.map(E=>E.value),m=await se(e,o),d=0,p=new Set,l=async(E,N,I)=>{let ce=await se(E,o);for(let O of ce){let B=I.map((me,Ft)=>`$${Ft+1}`).join(", "),jt=`
172
+ SELECT "${O.referencedColumn}" FROM "${E}"
173
+ WHERE "${N}" IN (${B})
174
+ `,le=(await n.query(jt,I)).rows.map(({row:me})=>me[O.referencedColumn]);le.length>0&&await l(O.referencingTable,O.referencingColumn,le)}let H=I.map((O,B)=>`$${B+1}`).join(", "),kt=`
175
+ DELETE FROM "${E}"
176
+ WHERE "${N}" IN (${H})
177
+ `,Ut=await n.query(kt,I);d+=Ut.rowCount??0,p.add(E)};for(let E of m)p.has(E.referencingTable)||await l(E.referencingTable,E.referencingColumn,i);let g=i.map((E,N)=>`$${N+1}`).join(", "),h=`
178
178
  DELETE FROM "${e}"
179
179
  WHERE "${s}" IN (${g})
180
180
  RETURNING *
181
- `,y=await n.query(w,i);await n.query("COMMIT");let E=y.rowCount??0;return{success:!0,message:u>0?`Successfully deleted ${E} ${E===1?"record":"records"} from "${e}" and ${u} related ${u===1?"record":"records"} from other tables`:`Successfully deleted ${E} ${E===1?"record":"records"} from "${e}"`,deletedCount:E+u}}catch(s){throw await n.query("ROLLBACK"),s}finally{n.release()}}});var ht,Et=m(()=>{"use strict";S();ht=async t=>{let{tableName:e,data:r,database:o}=t,n=await b(o).connect();try{let s=Object.keys(r),i=Object.values(r),d=s.map((g,w)=>`$${w+1}`).join(", "),u=s.map(g=>`"${g}"`).join(", "),p=`
182
- INSERT INTO "${e}" (${u})
183
- VALUES (${d})
181
+ `,y=await n.query(h,i);await n.query("COMMIT");let w=y.rowCount??0;return{success:!0,message:d>0?`Successfully deleted ${w} ${w===1?"record":"records"} from "${e}" and ${d} related ${d===1?"record":"records"} from other tables`:`Successfully deleted ${w} ${w===1?"record":"records"} from "${e}"`,deletedCount:w+d}}catch(s){throw await n.query("ROLLBACK"),s}finally{n.release()}}});var gt,bt=u(()=>{"use strict";S();gt=async t=>{let{tableName:e,data:r,database:o}=t,n=await b(o).connect();try{let s=Object.keys(r),i=Object.values(r),m=s.map((g,h)=>`$${h+1}`).join(", "),d=s.map(g=>`"${g}"`).join(", "),p=`
182
+ INSERT INTO "${e}" (${d})
183
+ VALUES (${m})
184
184
  RETURNING *
185
- `,c=await n.query(p,i);return{success:!0,message:`Record inserted into "${e}" successfully`,data:c.rows[0]}}catch(s){throw s}finally{n.release()}}});var wt,Tt=m(()=>{"use strict";S();wt=async t=>{let{tableName:e,updates:r,primaryKey:o="id",database:a}=t,s=await b(a).connect();try{await s.query("BEGIN");let i=new Map;for(let p of r){let c=p.rowData[o];if(c===void 0)throw new Error(`Primary key "${o}" not found in row data. Please ensure the row has a primary key.`);i.has(c)||i.set(c,[]),i.get(c)?.push({columnName:p.columnName,value:p.value,rowData:p.rowData})}let d=[],u=0;for(let[p,c]of i.entries()){let g=c.map((N,h)=>`"${N.columnName}" = $${h+1}`),w=c.map(N=>N.value!==null&&typeof N.value=="object"?JSON.stringify(N.value):N.value);w.push(p);let y=`
185
+ `,l=await n.query(p,i);return{success:!0,message:`Record inserted into "${e}" successfully`,data:l.rows[0]}}catch(s){throw s}finally{n.release()}}});var yt,ht=u(()=>{"use strict";S();yt=async t=>{let{tableName:e,updates:r,primaryKey:o="id",database:a}=t,s=await b(a).connect();try{await s.query("BEGIN");let i=new Map;for(let p of r){let l=p.rowData[o];if(l===void 0)throw new Error(`Primary key "${o}" not found in row data. Please ensure the row has a primary key.`);i.has(l)||i.set(l,[]),i.get(l)?.push({columnName:p.columnName,value:p.value,rowData:p.rowData})}let m=[],d=0;for(let[p,l]of i.entries()){let g=l.map((T,E)=>`"${T.columnName}" = $${E+1}`),h=l.map(T=>T.value!==null&&typeof T.value=="object"?JSON.stringify(T.value):T.value);h.push(p);let y=`
186
186
  UPDATE "${e}"
187
187
  SET ${g.join(", ")}
188
- WHERE "${o}" = $${w.length}
188
+ WHERE "${o}" = $${h.length}
189
189
  RETURNING *
190
- `,E=await s.query(y,w);if(E.rowCount===0)throw new Error(`Record with ${o} = ${p} not found in table "${e}"`);d.push(E.rows[0]),u+=E.rowCount||0}return await s.query("COMMIT"),{success:!0,message:`Successfully updated ${u} ${u===1?"row":"rows"} in "${e}"`,data:d,updatedCount:u}}catch(i){throw await s.query("ROLLBACK"),i}finally{s.release()}}});import{zValidator as _}from"@hono/zod-validator";import{Hono as _r}from"hono";var $,St=m(()=>{"use strict";v();yt();Et();Tt();$=new _r;$.post("/",_("json",qe),_("query",T),async t=>{try{let e=t.req.valid("json"),{tableName:r,data:o}=e,{database:a}=t.req.valid("query"),n=await ht({tableName:r,data:o,database:a});return t.json(n)}catch(e){let r=e&&typeof e=="object"&&"detail"in e?e.detail:void 0;return t.json({success:!1,message:e instanceof Error?e.message:"Failed to create record",detail:r},500)}});$.patch("/",_("json",ke),_("query",T),async t=>{try{let e=t.req.valid("json"),{tableName:r,updates:o,primaryKey:a}=e,{database:n}=t.req.valid("query"),s=await wt({tableName:r,updates:o,primaryKey:a,database:n});return t.json(s)}catch(e){let r=e&&typeof e=="object"&&"detail"in e?e.detail:void 0;return t.json({success:!1,message:e instanceof Error?e.message:"Failed to update records",detail:r},500)}});$.delete("/",_("json",Z),_("query",T),async t=>{try{let e=t.req.valid("json"),{tableName:r,primaryKeys:o}=e,{database:a}=t.req.valid("query"),n=await gt({tableName:r,primaryKeys:o,database:a});return n.fkViolation?t.json(n,409):t.json(n)}catch(e){let r=e&&typeof e=="object"&&"detail"in e?e.detail:void 0;return t.json({success:!1,message:e instanceof Error?e.message:"Failed to delete records",detail:r},500)}});$.delete("/force",_("json",Z),_("query",T),async t=>{try{let e=t.req.valid("json"),{tableName:r,primaryKeys:o}=e,{database:a}=t.req.valid("query"),n=await bt({tableName:r,primaryKeys:o,database:a});return t.json(n)}catch(e){let r=e&&typeof e=="object"&&"detail"in e?e.detail:void 0;return t.json({success:!1,message:e instanceof Error?e.message:"Failed to force delete records",detail:r},500)}})});var Nt,Rt=m(()=>{"use strict";S();Nt=async(t,e)=>{let{tableName:r,fields:o,foreignKeys:a}=t,s=await b(e).connect();try{let i=o.map(c=>{let g=`"${c.columnName}" ${c.columnType}`;return c.isArray&&(g+="[]"),c.isPrimaryKey&&(g+=" PRIMARY KEY"),c.isUnique&&!c.isPrimaryKey&&(g+=" UNIQUE"),c.isNullable||(g+=" NOT NULL"),c.isIdentity&&(g+=" GENERATED ALWAYS AS IDENTITY"),c.defaultValue&&!c.isIdentity&&(g+=` DEFAULT ${c.defaultValue}`),g}),d=a?.map(c=>`CONSTRAINT "${`fk_${r}_${c.columnName}_${c.referencedTable}_${c.referencedColumn}`}" FOREIGN KEY ("${c.columnName}") REFERENCES "${c.referencedTable}" ("${c.referencedColumn}") ON UPDATE ${c.onUpdate} ON DELETE ${c.onDelete}`)||[],u=[...i,...d],p=`
190
+ `,w=await s.query(y,h);if(w.rowCount===0)throw new Error(`Record with ${o} = ${p} not found in table "${e}"`);m.push(w.rows[0]),d+=w.rowCount||0}return await s.query("COMMIT"),{success:!0,message:`Successfully updated ${d} ${d===1?"row":"rows"} in "${e}"`,data:m,updatedCount:d}}catch(i){throw await s.query("ROLLBACK"),i}finally{s.release()}}});import{zValidator as C}from"@hono/zod-validator";import{Hono as Nr}from"hono";var L,Et=u(()=>{"use strict";q();ft();bt();ht();L=new Nr;L.post("/",C("json",qe),C("query",R),async t=>{try{let e=t.req.valid("json"),{tableName:r,data:o}=e,{database:a}=t.req.valid("query"),n=await gt({tableName:r,data:o,database:a});return t.json(n)}catch(e){let r=e&&typeof e=="object"&&"detail"in e?e.detail:void 0;return t.json({success:!1,message:e instanceof Error?e.message:"Failed to create record",detail:r},500)}});L.patch("/",C("json",ke),C("query",R),async t=>{try{let e=t.req.valid("json"),{tableName:r,updates:o,primaryKey:a}=e,{database:n}=t.req.valid("query"),s=await yt({tableName:r,updates:o,primaryKey:a,database:n});return t.json(s)}catch(e){let r=e&&typeof e=="object"&&"detail"in e?e.detail:void 0;return t.json({success:!1,message:e instanceof Error?e.message:"Failed to update records",detail:r},500)}});L.delete("/",C("json",te),C("query",R),async t=>{try{let e=t.req.valid("json"),{tableName:r,primaryKeys:o}=e,{database:a}=t.req.valid("query"),n=await dt({tableName:r,primaryKeys:o,database:a});return n.fkViolation?t.json(n,409):t.json(n)}catch(e){let r=e&&typeof e=="object"&&"detail"in e?e.detail:void 0;return t.json({success:!1,message:e instanceof Error?e.message:"Failed to delete records",detail:r},500)}});L.delete("/force",C("json",te),C("query",R),async t=>{try{let e=t.req.valid("json"),{tableName:r,primaryKeys:o}=e,{database:a}=t.req.valid("query"),n=await pt({tableName:r,primaryKeys:o,database:a});return t.json(n)}catch(e){let r=e&&typeof e=="object"&&"detail"in e?e.detail:void 0;return t.json({success:!1,message:e instanceof Error?e.message:"Failed to force delete records",detail:r},500)}})});var wt,St=u(()=>{"use strict";S();wt=async(t,e)=>{let{tableName:r,fields:o,foreignKeys:a}=t,s=await b(e).connect();try{let i=o.map(l=>{let g=`"${l.columnName}" ${l.columnType}`;return l.isArray&&(g+="[]"),l.isPrimaryKey&&(g+=" PRIMARY KEY"),l.isUnique&&!l.isPrimaryKey&&(g+=" UNIQUE"),l.isNullable||(g+=" NOT NULL"),l.isIdentity&&(g+=" GENERATED ALWAYS AS IDENTITY"),l.defaultValue&&!l.isIdentity&&(g+=` DEFAULT ${l.defaultValue}`),g}),m=a?.map(l=>`CONSTRAINT "${`fk_${r}_${l.columnName}_${l.referencedTable}_${l.referencedColumn}`}" FOREIGN KEY ("${l.columnName}") REFERENCES "${l.referencedTable}" ("${l.referencedColumn}") ON UPDATE ${l.onUpdate} ON DELETE ${l.onDelete}`)||[],d=[...i,...m],p=`
191
191
  CREATE TABLE "${r}" (
192
- ${u.join(`,
192
+ ${d.join(`,
193
193
  `)}
194
194
  );
195
- `;return await s.query(p),{success:!0,tableName:r,message:`Table "${r}" created successfully`}}catch(i){throw i}finally{s.release()}}});var Dt,_t=m(()=>{"use strict";S();Dt=async t=>{let r=await b(t).connect();try{return(await r.query(`
196
- SELECT
197
- t.table_name as "tableName",
198
- COALESCE(s.n_live_tup, 0) as "rowCount"
199
- FROM information_schema.tables t
200
- LEFT JOIN pg_stat_user_tables s ON t.table_name = s.relname
201
- WHERE t.table_schema = 'public'
202
- AND t.table_type = 'BASE TABLE'
203
- ORDER BY t.table_name;
204
- `)).rows.map(a=>({tableName:a.tableName,rowCount:Number(a.rowCount)}))}finally{r.release()}}});import{zValidator as ie}from"@hono/zod-validator";import{Hono as vr}from"hono";var W,vt=m(()=>{"use strict";v();Rt();_t();M();W=new vr;W.get("/",ie("query",T),async t=>{try{let{database:e}=t.req.valid("query"),r=await Dt(e);return t.json(r)}catch(e){return A(t,e,"Failed to fetch tables")}});W.post("/",ie("json",Ie),ie("query",T),async t=>{try{let e=t.req.valid("json"),{database:r}=t.req.valid("query"),o=await Nt(e,r);return t.json(o)}catch(e){let r=e&&typeof e=="object"&&"detail"in e?e.detail:void 0;return t.json({success:!1,message:e instanceof Error?e.message:"Failed to create table",detail:r},500)}})});import{Hono as Cr}from"hono";var Ct,xr,Ar,xt,At=m(()=>{"use strict";G();Ct=async()=>{let t=await x.connect();try{return await t.query("SELECT 1"),{success:!0}}catch(e){return{success:!1,error:e instanceof Error?e.message:"Unknown error"}}finally{t.release()}},xr=5e3,Ar=1e4,xt=t=>{let e=new Cr;return e.get("/",t(()=>{let r;return{onOpen:async(o,a)=>{try{let n=await Ct();a.send(JSON.stringify({...n,status:n.success?"connected":"failed",timestamp:new Date().toISOString()}))}catch{a.send(JSON.stringify({success:!1,status:"failed",error:"Initial check failed",timestamp:new Date().toISOString()}))}r=setInterval(async()=>{try{let n=await Promise.race([Ct(),new Promise((s,i)=>setTimeout(()=>i({success:!1,error:"Database check timeout"}),Ar))]);a.send(JSON.stringify({...n,status:n.success?"connected":"failed",timestamp:new Date().toISOString()}))}catch(n){a.send(JSON.stringify({success:!1,status:"failed",error:n instanceof Error?n.message:"Check failed",timestamp:new Date().toISOString()}))}},xr)},onMessage(o,a){},onClose:()=>{r&&clearInterval(r)},onError:o=>{r&&clearInterval(r)}}})),e}});var Pt={};Mt(Pt,{createServer:()=>qr});import V from"path";import{fileURLToPath as $r}from"url";import{serveStatic as $t}from"@hono/node-server/serve-static";import{createNodeWebSocket as Lr}from"@hono/node-ws";import{Hono as Pr}from"hono";import{cors as Ir}from"hono/cors";import{logger as Or}from"hono/logger";var Lt,qr,It=m(()=>{"use strict";et();rt();st();ut();ft();St();vt();At();Lt=()=>{if(process.env.NODE_ENV==="development")return V.resolve(process.cwd(),"../core/dist");let t=V.dirname($r(import.meta.url));return V.resolve(t,"./core-dist")},qr=()=>{let t=new Pr({strict:!1}),{upgradeWebSocket:e,injectWebSocket:r}=Lr({app:t});return t.use("/*",Ir()),process.env.NODE_ENV==="development"&&t.use(Or()),t.use("/favicon.ico",$t({path:V.resolve(Lt(),"favicon.ico")})),t.use("*",async(o,a)=>{o.header("Access-Control-Allow-Origin","*"),o.header("Access-Control-Allow-Methods","GET, POST, PUT, DELETE, OPTIONS"),o.header("Access-Control-Allow-Headers","Content-Type"),await a()}),t.route("/ws",xt(e)),t.route("/databases",I),t.route("/tables",W),t.route("/tables/:tableName/columns",oe),t.route("/tables/:tableName/data",ne),t.route("/records",$),t.route("/query",ae),t.route("/chat",re),t.use("/*",$t({root:Lt()})),{app:t,injectWebSocket:r}}});q();import{intro as kr,outro as Ur}from"@clack/prompts";import{serve as jr}from"@hono/node-server";import Fr from"open";import ce from"picocolors";import{program as be}from"commander";var ye=()=>(be.name("db-studio").option("-e, --env <path>","Path to custom .env file").option("-p, --port <port>","Port to run the server on").option("-d, --database-url <url>","Database URL to use").option("-n, --var-name <name>","Custom environment variable name (default: DATABASE_URL)").option("-s, --status","Show status of the server").option("-h, --help","Show help").option("-v, --version","Show version").parse(process.argv),be.opts());import{readFile as Wt}from"fs/promises";import{resolve as Vt}from"path";import{cancel as k,isCancel as Q,note as he,select as Ht,spinner as Bt,text as Ee}from"@clack/prompts";import{parse as Qt}from"dotenv";import z from"picocolors";var we=async(t,e)=>{let r=e||"DATABASE_URL";if(t?.[r])return t[r];let o=Bt();o.start("Looking for database connection..."),t?he(z.red(`${r} not found in .env`)):he(z.red("No .env file found in current directory"));let a=await Ht({message:`How do you want to provide ${r}?`,options:[{value:"manual",label:"Enter connection string manually"},{value:"other-env",label:"Use different .env file"},{value:"cancel",label:"Cancel / Exit"}],initialValue:"manual"});if((Q(a)||a==="cancel")&&(k("No database connection provided. Exiting..."),process.exit(0)),a==="other-env"){o.start("Waiting for path...");let s=await Ee({message:"Enter path to .env file",placeholder:"~/projects/myapp/.env.local or ./special.env",validate(d){if(!d.trim())return"Path is required"}});Q(s)&&(k("Cancelled."),process.exit(0)),o.stop("Trying custom .env...");let i=Vt(s);try{let d=await Wt(i,"utf-8"),u=Qt(d);if(u[r])return u[r];throw new Error(`${r} still missing in custom file`)}catch(d){let u=d;k(`Cannot read or parse file: ${z.dim(u.message)}`),process.exit(1)}}o.stop("Manual input...");let n=await Ee({message:`Paste your ${r}`,placeholder:"postgresql://user:password@localhost:5432/mydb",validate(s){if(!s.trim())return"Connection string is required!";try{new URL(s);return}catch{return"Must be a valid URL format"}}});return Q(n)&&(k("Cancelled."),process.exit(0)),n.trim()};import{access as zt,readFile as Gt}from"fs/promises";import{resolve as Te}from"path";import{parse as Yt}from"dotenv";var C=async t=>{let e=t?Te(t):Te(process.cwd(),".env");try{await zt(e);let r=await Gt(e,"utf-8");return Yt(r)}catch(r){if(r instanceof Error&&r.message.includes("ENOENT"))return null;throw r}};B();import{intro as Jt,outro as Xt}from"@clack/prompts";import Se from"picocolors";var Ne=()=>{Jt(Se.inverse(" db-studio ")),Xt(Se.green(`For more information, visit: ${fe.SITE_DOCS_LINK}`))};q();import{intro as Zt,note as er,outro as Re}from"@clack/prompts";import U from"picocolors";var De=async(t,e,r)=>{Zt(U.inverse(" db-studio "));let o=r||R.VAR_NAME,a=null;if(e)a=e;else{let n=t?await C(t):await C(R.ENV);n?.[o]&&(a=n[o])}a?Re(U.green(`\u2713 Database connection configured (using ${o})`)):(er(U.red(`\u2717 ${o} not found`),"Status"),Re(U.yellow("\u26A0 No database connection configured")))};import{intro as rr,outro as or}from"@clack/prompts";import ve from"picocolors";var _e={name:"db-studio",type:"module",version:"1.2.18",description:"Modern database client for PostgreSQL with spreadsheet-like grid, AI-powered SQL assistance, ER diagrams, fast data browsing and editing. CLI tool, upcoming desktop & web versions.",keywords:["database","database client","postgres","postgresql","database gui","sql client","database studio","postgres gui","ai sql","sql editor","er diagram","database management","data browser","spreadsheet database","postgres admin","mysql client","sqlite client","database tool","developer tools"],author:"H\xFCsam \u{1F951} <devhsmq@gmail.com>",homepage:"https://dbstudio.sh",repository:{type:"git",url:"git+https://github.com/husamql3/db-studio.git"},bugs:{url:"https://github.com/husamql3/db-studio/issues"},license:"MIT",bin:{"db-studio":"./dist/index.js"},files:["dist"],scripts:{dev:"NODE_ENV=development tsx watch src/index.ts",build:"tsup --minify --sourcemap",prepack:"cd ../core && bun run build && cd ../server && bun run build",start:"node dist/index.js",check:"biome check --write --unsafe --verbose"},dependencies:{"@clack/prompts":"^0.11.0","@hono/node-server":"^1.19.7","@hono/node-ws":"^1.2.0","@hono/zod-validator":"^0.7.6",commander:"^12.1.0",dotenv:"^16.4.7",hono:"^4.10.4",open:"^10.0.2",pg:"^8.13.1",picocolors:"^1.1.1",zod:"^4.2.1"},devDependencies:{shared:"workspace:*","@biomejs/biome":"^2.2.6","@types/node":"^20.11.17","@types/pg":"^8.16.0",tsup:"^8.5.1",tsx:"^4.7.1",typescript:"^5.8.3"}};var Ce=()=>{rr(ve.inverse(" db-studio ")),or(ve.green(`\u{1F680} db-studio v${_e.version}`))};var Kr=async()=>{let{env:t,port:e,databaseUrl:r,varName:o,status:a,help:n,version:s}=ye();n&&(Ne(),process.exit(0)),s&&(Ce(),process.exit(0)),a&&(await De(t,r,o),process.exit(0)),kr(ce.inverse(" db-studio "));let i=e?parseInt(e,10):R.PORT,d=o||R.VAR_NAME,u=t?await C(t):await C(R.ENV),p=r||await we(u,d);process.env.DATABASE_URL=p;let{createServer:c}=await Promise.resolve().then(()=>(It(),Pt)),{app:g,injectWebSocket:w}=c(),y=jr({fetch:g.fetch,port:i});w(y),Ur(ce.green(`Server running at ${ce.cyan(`http://localhost:${i}`)}`)),process.env.NODE_ENV&&process.env.NODE_ENV!=="development"&&await Fr(`http://localhost:${i}`)};Kr().catch(t=>{process.exit(1)});export{Kr as main};
195
+ `;return await s.query(p),{success:!0,tableName:r,message:`Table "${r}" created successfully`}}catch(i){throw i}finally{s.release()}}});var Tt,Nt=u(()=>{"use strict";S();Tt=async(t,e)=>{let{tableName:r,columnName:o,cascade:a=!1}=t,s=await b(e).connect();try{let m=`ALTER TABLE "${r}" DROP COLUMN "${o}" ${a?"CASCADE":"RESTRICT"}`;return await s.query(m),{success:!0,message:`Column "${o}" deleted successfully from table "${r}"`,tableName:r,columnName:o,deletedCount:1}}catch(i){let m=i;throw m.code==="42703"?new Error(`Column "${o}" does not exist in table "${r}"`):m.code==="42P01"?new Error(`Table "${r}" does not exist`):i}finally{s.release()}}});var Dt,Rt=u(()=>{"use strict";S();Dt=async t=>{let r=await b(t).connect();try{return(await r.query(`
196
+ SELECT
197
+ t.table_name as "tableName",
198
+ COALESCE(s.n_live_tup, 0)::integer as "rowCount"
199
+ FROM information_schema.tables t
200
+ LEFT JOIN pg_stat_user_tables s ON t.table_name = s.relname
201
+ WHERE t.table_schema = 'public'
202
+ AND t.table_type = 'BASE TABLE'
203
+ ORDER BY t.table_name;
204
+ `)).rows}finally{r.release()}}});var Dr,Rr,_t,vt=u(()=>{"use strict";S();Dr=t=>{if(t.length===0)return{clause:"",values:[]};let e=[],r=[];for(let o of t){let a=r.length+1,n=`"${o.columnName}"`;switch(o.operator){case"=":case"!=":case">":case">=":case"<":case"<=":e.push(`${n} ${o.operator} $${a}`),r.push(o.value);break;case"is":o.value.toLowerCase()==="null"?e.push(`${n} IS NULL`):(e.push(`${n} = $${a}`),r.push(o.value));break;case"is not":o.value.toLowerCase()==="null"?e.push(`${n} IS NOT NULL`):(e.push(`${n} != $${a}`),r.push(o.value));break;case"like":e.push(`${n}::text LIKE $${a}`),r.push(o.value);break;case"not like":e.push(`${n}::text NOT LIKE $${a}`),r.push(o.value);break;case"ilike":e.push(`${n}::text ILIKE $${a}`),r.push(o.value);break;case"not ilike":e.push(`${n}::text NOT ILIKE $${a}`),r.push(o.value);break;default:break}}return e.length===0?{clause:"",values:[]}:{clause:`WHERE ${e.join(" AND ")}`,values:r}},Rr=(t,e)=>Array.isArray(t)?t.length===0?"":`ORDER BY ${t.map(o=>`"${o.columnName}" ${o.direction.toUpperCase()}`).join(", ")}`:t&&typeof t=="string"?`ORDER BY "${t}" ${e?.toUpperCase()||"ASC"}`:"",_t=async(t,e=1,r=50,o="",a="asc",n=[],s)=>{let i=Rr((Array.isArray(o),o),a),{clause:m,values:d}=Dr(n),l=await b(s).connect();try{let g=(e-1)*r,h=await l.query(`SELECT COUNT(*) as total FROM "${t}" ${m}`,d),y=Number(h.rows[0].total),w=Math.ceil(y/r),T=d.length+1,E=d.length+2,N=await l.query(`SELECT * FROM "${t}" ${m} ${i} LIMIT $${T} OFFSET $${E}`,[...d,r,g]);return{data:N.fields&&N.fields.length>0?N.rows.filter(H=>Object.keys(H).length>0):N.rows,meta:{page:e,limit:r,total:y,totalPages:w,hasNextPage:e<w,hasPreviousPage:e>1}}}finally{l.release()}}});var U,Ct=u(()=>{"use strict";U=(t,e,r)=>{let o=e instanceof Error?e.message:r,a=!1;return e&&typeof e=="object"&&"code"in e?a=e.code==="ECONNREFUSED":e&&typeof e=="object"&&"errors"in e&&Array.isArray(e.errors)&&(a=e.errors?.some(s=>s.code==="ECONNREFUSED")??!1),a?t.json({success:!1,message:"Cannot connect to database. Please check your DATABASE_URL and ensure the database server is running.",error:o},503):t.json({success:!1,message:o},500)}});import{zValidator as _}from"@hono/zod-validator";import{Hono as _r}from"hono";var x,xt=u(()=>{"use strict";q();St();Nt();oe();Rt();vt();Ct();x=new _r;x.get("/",_("query",R),async t=>{try{let{database:e}=t.req.valid("query"),r=await Dt(e);return t.json(r)}catch(e){return U(t,e,"Failed to fetch tables")}});x.post("/",_("json",Ie),_("query",R),async t=>{try{let e=t.req.valid("json"),{database:r}=t.req.valid("query"),o=await wt(e,r);return t.json(o)}catch(e){let r=e&&typeof e=="object"&&"detail"in e?e.detail:void 0;return t.json({success:!1,message:e instanceof Error?e.message:"Failed to create table",detail:r},500)}});x.delete("/:tableName/columns/:columnName",_("param",Me),_("query",We),async t=>{try{let{tableName:e,columnName:r}=t.req.valid("param"),{database:o,cascade:a}=t.req.valid("query"),n=await Tt({tableName:e,columnName:r,cascade:a},o);return t.json(n)}catch(e){return U(t,e,"Failed to delete column")}});x.get("/:tableName/columns",_("param",ee),_("query",R),async t=>{try{let{tableName:e}=t.req.valid("param"),{database:r}=t.req.valid("query"),o=await W(e,r);return t.json(o)}catch(e){return U(t,e,"Failed to fetch columns")}});x.get("/:tableName/data",_("param",ee),_("query",Oe),async t=>{try{let{tableName:e}=t.req.valid("param"),{page:r,pageSize:o,sort:a,order:n,filters:s,database:i}=t.req.valid("query"),m="";if(a)try{let p=JSON.parse(a);Array.isArray(p)?m=p:m=a}catch{m=a}let d=await _t(e,r,o,m,n,s,i);return t.json(d)}catch(e){return U(t,e,"Failed to fetch table data")}})});import{Hono as vr}from"hono";var At,Cr,xr,$t,Pt=u(()=>{"use strict";G();At=async()=>{let t=await $.connect();try{return await t.query("SELECT 1"),{success:!0}}catch(e){return{success:!1,error:e instanceof Error?e.message:"Unknown error"}}finally{t.release()}},Cr=5e3,xr=1e4,$t=t=>{let e=new vr;return e.get("/",t(()=>{let r;return{onOpen:async(o,a)=>{try{let n=await At();a.send(JSON.stringify({...n,status:n.success?"connected":"failed",timestamp:new Date().toISOString()}))}catch{a.send(JSON.stringify({success:!1,status:"failed",error:"Initial check failed",timestamp:new Date().toISOString()}))}r=setInterval(async()=>{try{let n=await Promise.race([At(),new Promise((s,i)=>setTimeout(()=>i({success:!1,error:"Database check timeout"}),xr))]);a.send(JSON.stringify({...n,status:n.success?"connected":"failed",timestamp:new Date().toISOString()}))}catch(n){a.send(JSON.stringify({success:!1,status:"failed",error:n instanceof Error?n.message:"Check failed",timestamp:new Date().toISOString()}))}},Cr)},onMessage(o,a){},onClose:()=>{r&&clearInterval(r)},onError:o=>{r&&clearInterval(r)}}})),e}});var Ot={};Mt(Ot,{createServer:()=>Or});import V from"path";import{fileURLToPath as Ar}from"url";import{serveStatic as Lt}from"@hono/node-server/serve-static";import{createNodeWebSocket as $r}from"@hono/node-ws";import{Hono as Pr}from"hono";import{cors as Lr}from"hono/cors";import{logger as Ir}from"hono/logger";var It,Or,qt=u(()=>{"use strict";ot();ct();ut();Et();xt();Pt();It=()=>{if(process.env.NODE_ENV==="development")return V.resolve(process.cwd(),"../core/dist");let t=V.dirname(Ar(import.meta.url));return V.resolve(t,"./core-dist")},Or=()=>{let t=new Pr({strict:!1}),{upgradeWebSocket:e,injectWebSocket:r}=$r({app:t});return t.use("/*",Lr()),process.env.NODE_ENV==="development"&&t.use(Ir()),t.use("/favicon.ico",Lt({path:V.resolve(It(),"favicon.ico")})),t.use("*",async(o,a)=>{o.header("Access-Control-Allow-Origin","*"),o.header("Access-Control-Allow-Methods","GET, POST, PUT, DELETE, OPTIONS"),o.header("Access-Control-Allow-Headers","Content-Type"),await a()}),t.route("/ws",$t(e)),t.route("/databases",k),t.route("/tables",x),t.route("/records",L),t.route("/query",ae),t.route("/chat",ne),t.use("/*",Lt({root:It()})),{app:t,injectWebSocket:r}}});j();import{intro as qr,outro as kr}from"@clack/prompts";import{serve as Ur}from"@hono/node-server";import jr from"open";import ie from"picocolors";import{program as be}from"commander";var ye=()=>(be.name("db-studio").option("-e, --env <path>","Path to custom .env file").option("-p, --port <port>","Port to run the server on").option("-d, --database-url <url>","Database URL to use").option("-n, --var-name <name>","Custom environment variable name (default: DATABASE_URL)").option("-s, --status","Show status of the server").option("-h, --help","Show help").option("-v, --version","Show version").parse(process.argv),be.opts());import{readFile as Wt}from"fs/promises";import{resolve as Vt}from"path";import{cancel as F,isCancel as z,note as he,select as Ht,spinner as Bt,text as Ee}from"@clack/prompts";import{parse as Qt}from"dotenv";import Y from"picocolors";var we=async(t,e)=>{let r=e||"DATABASE_URL";if(t?.[r])return t[r];let o=Bt();o.start("Looking for database connection..."),t?he(Y.red(`${r} not found in .env`)):he(Y.red("No .env file found in current directory"));let a=await Ht({message:`How do you want to provide ${r}?`,options:[{value:"manual",label:"Enter connection string manually"},{value:"other-env",label:"Use different .env file"},{value:"cancel",label:"Cancel / Exit"}],initialValue:"manual"});if((z(a)||a==="cancel")&&(F("No database connection provided. Exiting..."),process.exit(0)),a==="other-env"){o.start("Waiting for path...");let s=await Ee({message:"Enter path to .env file",placeholder:"~/projects/myapp/.env.local or ./special.env",validate(m){if(!m.trim())return"Path is required"}});z(s)&&(F("Cancelled."),process.exit(0)),o.stop("Trying custom .env...");let i=Vt(s);try{let m=await Wt(i,"utf-8"),d=Qt(m);if(d[r])return d[r];throw new Error(`${r} still missing in custom file`)}catch(m){let d=m;F(`Cannot read or parse file: ${Y.dim(d.message)}`),process.exit(1)}}o.stop("Manual input...");let n=await Ee({message:`Paste your ${r}`,placeholder:"postgresql://user:password@localhost:5432/mydb",validate(s){if(!s.trim())return"Connection string is required!";try{new URL(s);return}catch{return"Must be a valid URL format"}}});return z(n)&&(F("Cancelled."),process.exit(0)),n.trim()};import{access as zt,readFile as Yt}from"fs/promises";import{resolve as Se}from"path";import{parse as Gt}from"dotenv";var A=async t=>{let e=t?Se(t):Se(process.cwd(),".env");try{await zt(e);let r=await Yt(e,"utf-8");return Gt(r)}catch(r){if(r instanceof Error&&r.message.includes("ENOENT"))return null;throw r}};Q();import{intro as Jt,outro as Xt}from"@clack/prompts";import Te from"picocolors";var Ne=()=>{Jt(Te.inverse(" db-studio ")),Xt(Te.green(`For more information, visit: ${fe.SITE_DOCS_LINK}`))};j();import{intro as Zt,note as er,outro as De}from"@clack/prompts";import K from"picocolors";var Re=async(t,e,r)=>{Zt(K.inverse(" db-studio "));let o=r||D.VAR_NAME,a=null;if(e)a=e;else{let n=t?await A(t):await A(D.ENV);n?.[o]&&(a=n[o])}a?De(K.green(`\u2713 Database connection configured (using ${o})`)):(er(K.red(`\u2717 ${o} not found`),"Status"),De(K.yellow("\u26A0 No database connection configured")))};import{intro as rr,outro as or}from"@clack/prompts";import ve from"picocolors";var _e={name:"db-studio",type:"module",version:"1.2.19",description:"Modern database client for PostgreSQL with spreadsheet-like grid, AI-powered SQL assistance, ER diagrams, fast data browsing and editing. CLI tool, upcoming desktop & web versions.",keywords:["database","database client","postgres","postgresql","database gui","sql client","database studio","postgres gui","ai sql","sql editor","er diagram","database management","data browser","spreadsheet database","postgres admin","mysql client","sqlite client","database tool","developer tools"],author:"H\xFCsam \u{1F951} <devhsmq@gmail.com>",homepage:"https://dbstudio.sh",repository:{type:"git",url:"git+https://github.com/husamql3/db-studio.git"},bugs:{url:"https://github.com/husamql3/db-studio/issues"},license:"MIT",bin:{"db-studio":"./dist/index.js"},files:["dist"],scripts:{dev:"NODE_ENV=development tsx watch src/index.ts",build:"tsup --minify --sourcemap",prepack:"cd ../core && bun run build && cd ../server && bun run build",start:"node dist/index.js",check:"biome check --write --unsafe --verbose"},dependencies:{"@clack/prompts":"^0.11.0","@hono/node-server":"^1.19.7","@hono/node-ws":"^1.2.0","@hono/zod-validator":"^0.7.6",commander:"^12.1.0",dotenv:"^16.4.7",hono:"^4.10.4",open:"^10.0.2",pg:"^8.13.1",picocolors:"^1.1.1",zod:"^4.2.1"},devDependencies:{shared:"workspace:*","@biomejs/biome":"^2.2.6","@types/node":"^20.11.17","@types/pg":"^8.16.0",tsup:"^8.5.1",tsx:"^4.7.1",typescript:"^5.8.3"}};var Ce=()=>{rr(ve.inverse(" db-studio ")),or(ve.green(`\u{1F680} db-studio v${_e.version}`))};var Fr=async()=>{let{env:t,port:e,databaseUrl:r,varName:o,status:a,help:n,version:s}=ye();n&&(Ne(),process.exit(0)),s&&(Ce(),process.exit(0)),a&&(await Re(t,r,o),process.exit(0)),qr(ie.inverse(" db-studio "));let i=e?parseInt(e,10):D.PORT,m=o||D.VAR_NAME,d=t?await A(t):await A(D.ENV),p=r||await we(d,m);process.env.DATABASE_URL=p;let{createServer:l}=await Promise.resolve().then(()=>(qt(),Ot)),{app:g,injectWebSocket:h}=l(),y=Ur({fetch:g.fetch,port:i});h(y),kr(ie.green(`Server running at ${ie.cyan(`http://localhost:${i}`)}`)),process.env.NODE_ENV&&process.env.NODE_ENV!=="development"&&await jr(`http://localhost:${i}`)};Fr().catch(t=>{process.exit(1)});export{Fr as main};
205
205
  //# sourceMappingURL=index.js.map