orcaq 1.1.6 → 1.1.7

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 (154) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{Lh0RfwhV.js → 1VXrIDkr.js} +1 -1
  3. package/.output/public/_nuxt/{ZVYA9HBl.js → 1fIGBJPQ.js} +1 -1
  4. package/.output/public/_nuxt/{BbawOYVr.js → 1kY3DHv7.js} +1 -1
  5. package/.output/public/_nuxt/{DDsaDrGo.js → 2TwRWQjG.js} +1 -1
  6. package/.output/public/_nuxt/{wrneOCBW.js → 39ZZCZCn.js} +1 -1
  7. package/.output/public/_nuxt/{BmEIj9l9.js → 3vYvhEat.js} +1 -1
  8. package/.output/public/_nuxt/{CEoM97rJ.js → 9bnMBg54.js} +1 -1
  9. package/.output/public/_nuxt/{ZNDxw-7x.js → B-u0WX5Q.js} +1 -1
  10. package/.output/public/_nuxt/{uDsvlLN0.js → B41tp0B8.js} +1 -1
  11. package/.output/public/_nuxt/{4LC09zKL.js → BCm7jnPt.js} +1 -1
  12. package/.output/public/_nuxt/{D29mzs5t.js → BFMjnjgH.js} +1 -1
  13. package/.output/public/_nuxt/{BEvswgw7.js → BGAd-CMD.js} +1 -1
  14. package/.output/public/_nuxt/{CP-7VdtS.js → BG_B-fo0.js} +1 -1
  15. package/.output/public/_nuxt/{Dd89Vyx8.js → BLEKzUmC.js} +1 -1
  16. package/.output/public/_nuxt/{DoNLWeqB.js → BN2mQ8OV.js} +1 -1
  17. package/.output/public/_nuxt/{DP6Az3fC.js → BNnChlxR.js} +1 -1
  18. package/.output/public/_nuxt/{BKAEFZqP.js → BNyWhB4W.js} +1 -1
  19. package/.output/public/_nuxt/{Bibtvqd8.js → BO-QgaRL.js} +1 -1
  20. package/.output/public/_nuxt/{DViCRsmA.js → BOVFFCPB.js} +1 -1
  21. package/.output/public/_nuxt/{BWg3wiuc.js → BRVpLa1E.js} +1 -1
  22. package/.output/public/_nuxt/{BJ8qQpib.js → BV4g1sVY.js} +1 -1
  23. package/.output/public/_nuxt/{_TExiQQQ.js → BXziI6Bt.js} +1 -1
  24. package/.output/public/_nuxt/{Df4wU3r0.js → BZQUF1W4.js} +1 -1
  25. package/.output/public/_nuxt/BZmEvFAZ.js +28 -0
  26. package/.output/public/_nuxt/B_G752SV.js +20 -0
  27. package/.output/public/_nuxt/{BusLuQ4Q.js → Ba_fqsW2.js} +1 -1
  28. package/.output/public/_nuxt/{DZFq5yqu.js → BbzZxPNQ.js} +1 -1
  29. package/.output/public/_nuxt/{BxZgIpkD.js → BhT0iBlH.js} +1 -1
  30. package/.output/public/_nuxt/{CoX1_N4R.js → Bhm1GL_M.js} +1 -1
  31. package/.output/public/_nuxt/{27ZsWTm2.js → BiSZmDoN.js} +1 -1
  32. package/.output/public/_nuxt/{DZVfXu09.js → BjK8Fug8.js} +1 -1
  33. package/.output/public/_nuxt/{G40WRC_L.js → BjpSpz5C.js} +1 -1
  34. package/.output/public/_nuxt/{Bok35x_B.js → BkqB6n0T.js} +1 -1
  35. package/.output/public/_nuxt/{6NXhlm49.js → BoPjUGS6.js} +1 -1
  36. package/.output/public/_nuxt/{B10QBDL6.js → BtwwqY0e.js} +1 -1
  37. package/.output/public/_nuxt/{FHx3Ejt6.js → BvD9dW-2.js} +1 -1
  38. package/.output/public/_nuxt/{Cvkyd5iW.js → Bw-4PosZ.js} +1 -1
  39. package/.output/public/_nuxt/C0l_59dE.js +1 -0
  40. package/.output/public/_nuxt/{__PEYcIB.js → C1TOiVRQ.js} +1 -1
  41. package/.output/public/_nuxt/{BoUZO_NV.js → C7A87LE3.js} +1 -1
  42. package/.output/public/_nuxt/{o60RgyTd.js → C80Zs8U0.js} +1 -1
  43. package/.output/public/_nuxt/{BnZ5qYkP.js → CB56S0b2.js} +9 -9
  44. package/.output/public/_nuxt/{CNPNWuzz.js → CBgbjsPd.js} +1 -1
  45. package/.output/public/_nuxt/{BCazdlgN.js → CCk2r9DD.js} +1 -1
  46. package/.output/public/_nuxt/{CCOlJAKS.js → CFZerEKx.js} +2 -2
  47. package/.output/public/_nuxt/{Bgj8Q52i.js → CG4v011f.js} +1 -1
  48. package/.output/public/_nuxt/{C4-wpUAK.js → CJnTtXrv.js} +1 -1
  49. package/.output/public/_nuxt/{DHyymmeR.js → CRDIOG8r.js} +1 -1
  50. package/.output/public/_nuxt/{XETGYn3c.js → CSPqdI4x.js} +1 -1
  51. package/.output/public/_nuxt/{DyDU0wFf.js → CTYqoFvv.js} +1 -1
  52. package/.output/public/_nuxt/{BbLqUOHs.js → CWGzL6OE.js} +1 -1
  53. package/.output/public/_nuxt/{CZLVBTJx.js → CYJEOEaU.js} +1 -1
  54. package/.output/public/_nuxt/{BTvOPFKG.js → CYu-xp_f.js} +1 -1
  55. package/.output/public/_nuxt/CZvnl0uO.js +52 -0
  56. package/.output/public/_nuxt/{DsPClaxV.js → CadjlDLt.js} +1 -1
  57. package/.output/public/_nuxt/{BJoSd_uV.js → CczQKYUP.js} +1 -1
  58. package/.output/public/_nuxt/{CHAVZu6b.js → CeXr_3vU.js} +2 -2
  59. package/.output/public/_nuxt/{BAasx5OS.js → Ch-A9iSC.js} +1 -1
  60. package/.output/public/_nuxt/{Bap1X7GD.js → Cj9tYr3P.js} +1 -1
  61. package/.output/public/_nuxt/Clm3Z8VL.js +1 -0
  62. package/.output/public/_nuxt/{F8eHh68O.js → CpkrwN3Q.js} +8 -8
  63. package/.output/public/_nuxt/{CO0Pa76w.js → CrwM3gOU.js} +1 -1
  64. package/.output/public/_nuxt/{DeVs4gEL.js → Culm7V2R.js} +1 -1
  65. package/.output/public/_nuxt/{Cl3VX8Um.js → CxZK-Vs6.js} +1 -1
  66. package/.output/public/_nuxt/{DLA-ioQ4.js → Cym7bWgs.js} +1 -1
  67. package/.output/public/_nuxt/CzBFxx8v.js +1 -0
  68. package/.output/public/_nuxt/{BCa-NKh0.js → D0oaRUYx.js} +1 -1
  69. package/.output/public/_nuxt/{DgGwe7jd.js → D7uoAo-G.js} +133 -133
  70. package/.output/public/_nuxt/{CvDZBOay.js → D8KJQqug.js} +1 -1
  71. package/.output/public/_nuxt/{DlymFQ5D.js → D8Z5BXgG.js} +3 -3
  72. package/.output/public/_nuxt/{DdbhVPqD.js → DDK9-_jm.js} +1 -1
  73. package/.output/public/_nuxt/{CnQob-tn.js → DDQU7vSH.js} +1 -1
  74. package/.output/public/_nuxt/{BuSZbOQO.js → DEjwIQuc.js} +1 -1
  75. package/.output/public/_nuxt/{yLATXAxG.js → DLIUYAz9.js} +1 -1
  76. package/.output/public/_nuxt/{DYPm3mWQ.js → DQdL5Jcl.js} +1 -1
  77. package/.output/public/_nuxt/{EZ0owjER.js → DRuCf0Sx.js} +1 -1
  78. package/.output/public/_nuxt/DSEkO8kW.js +1 -0
  79. package/.output/public/_nuxt/{DYqShb5v.js → DSOwr8Hs.js} +4 -4
  80. package/.output/public/_nuxt/{Cf6n9dsT.js → DStg2VwN.js} +1 -1
  81. package/.output/public/_nuxt/{Ci7hrFNN.js → DTlu-CJn.js} +1 -1
  82. package/.output/public/_nuxt/{CCK1so3F.js → DUvUg_V7.js} +1 -1
  83. package/.output/public/_nuxt/{CBjcd4cE.js → D_fdC3mJ.js} +1 -1
  84. package/.output/public/_nuxt/{BhzzQZRC.js → Da1F0IxL.js} +1 -1
  85. package/.output/public/_nuxt/{C6bwwZAc.js → DcXAnOS1.js} +1 -1
  86. package/.output/public/_nuxt/DdtQIDaq.js +1 -0
  87. package/.output/public/_nuxt/Dfz8k_Rn.js +1 -0
  88. package/.output/public/_nuxt/{Dpm6rnHk.js → DitYzGT4.js} +1 -1
  89. package/.output/public/_nuxt/{NMm6Vanu.js → Djh3G2Nf.js} +1 -1
  90. package/.output/public/_nuxt/DmWFeTaU.js +1 -0
  91. package/.output/public/_nuxt/{x85BV7y_.js → DtgJAz2h.js} +1 -1
  92. package/.output/public/_nuxt/{3jfBYqJb.js → DuKway_J.js} +1 -1
  93. package/.output/public/_nuxt/{7nPLTDFM.js → DxF9DsEl.js} +1 -1
  94. package/.output/public/_nuxt/{C9ZBCJdc.js → DyFXtlg0.js} +1 -1
  95. package/.output/public/_nuxt/DzN4YRfa.js +7 -0
  96. package/.output/public/_nuxt/{B_hWP06g.js → DzaPC1WB.js} +1 -1
  97. package/.output/public/_nuxt/{wH-P-_6A.js → DzjHXopz.js} +1 -1
  98. package/.output/public/_nuxt/{CE0zlNDo.js → LUfaevBS.js} +1 -1
  99. package/.output/public/_nuxt/{DRX1aIGD.js → RFRrMFyH.js} +1 -1
  100. package/.output/public/_nuxt/{CROH8wgk.js → RTN5rY4m.js} +1 -1
  101. package/.output/public/_nuxt/{Un5zjlKE.js → XVZ0obUR.js} +1 -1
  102. package/.output/public/_nuxt/{B5HZeat4.js → Z5g5B4NJ.js} +1 -1
  103. package/.output/public/_nuxt/_ltJfz1p.js +1 -0
  104. package/.output/public/_nuxt/builds/latest.json +1 -1
  105. package/.output/public/_nuxt/builds/meta/1cbed594-12e2-48e6-bea9-7a9159c3c1d3.json +1 -0
  106. package/.output/public/_nuxt/{DtOg0Asw.js → dkyHOJLf.js} +1 -1
  107. package/.output/public/_nuxt/entry.D1DMaixs.css +1 -0
  108. package/.output/public/_nuxt/{habs8oz6.js → gWmEw6BT.js} +1 -1
  109. package/.output/public/_nuxt/ixgiI20S.js +1 -0
  110. package/.output/public/_nuxt/{C6CFIGob.js → jJeqAxmP.js} +1 -1
  111. package/.output/public/_nuxt/{P_2SRa71.js → lisFd8W1.js} +2 -2
  112. package/.output/public/_nuxt/{CoQ_oOia.js → nrlEwpIH.js} +1 -1
  113. package/.output/public/_nuxt/{6wO6CbCo.js → uHyBIwWw.js} +1 -1
  114. package/.output/public/_nuxt/{dDqgUqt5.js → vGkKA7iH.js} +1 -1
  115. package/.output/public/_nuxt/{C445d10Z.js → z1xPtaLw.js} +1 -1
  116. package/.output/server/chunks/_/registry.mjs +116 -0
  117. package/.output/server/chunks/_/registry.mjs.map +1 -0
  118. package/.output/server/chunks/_/{native-backup.mjs → runtime.mjs} +325 -164
  119. package/.output/server/chunks/_/runtime.mjs.map +1 -0
  120. package/.output/server/chunks/_/{native-backup-jobs.mjs → service.mjs} +185 -248
  121. package/.output/server/chunks/_/service.mjs.map +1 -0
  122. package/.output/server/chunks/build/client.manifest.mjs +734 -723
  123. package/.output/server/chunks/build/client.manifest.mjs.map +1 -1
  124. package/.output/server/chunks/nitro/nitro.mjs +659 -652
  125. package/.output/server/chunks/routes/api/database-backup/capability.get.mjs +7 -2
  126. package/.output/server/chunks/routes/api/database-backup/capability.get.mjs.map +1 -1
  127. package/.output/server/chunks/routes/api/database-export/export-database.mjs +4 -3
  128. package/.output/server/chunks/routes/api/database-export/export-database.mjs.map +1 -1
  129. package/.output/server/chunks/routes/api/database-export/jobs/_jobId/download.get.mjs +1 -20
  130. package/.output/server/chunks/routes/api/database-export/jobs/_jobId/download.get.mjs.map +1 -1
  131. package/.output/server/chunks/routes/api/database-export/jobs/_jobId_.get.mjs +1 -20
  132. package/.output/server/chunks/routes/api/database-export/jobs/_jobId_.get.mjs.map +1 -1
  133. package/.output/server/chunks/routes/api/database-import/import-database.mjs +14 -3
  134. package/.output/server/chunks/routes/api/database-import/import-database.mjs.map +1 -1
  135. package/.output/server/chunks/routes/api/database-import/jobs/_jobId_.get.mjs +1 -20
  136. package/.output/server/chunks/routes/api/database-import/jobs/_jobId_.get.mjs.map +1 -1
  137. package/.output/server/package.json +1 -1
  138. package/package.json +1 -1
  139. package/.output/public/_nuxt/4OV_5qQE.js +0 -1
  140. package/.output/public/_nuxt/B3iNzG14.js +0 -1
  141. package/.output/public/_nuxt/Bf2bW_MY.js +0 -7
  142. package/.output/public/_nuxt/C7C1kq_N.js +0 -1
  143. package/.output/public/_nuxt/CN8b9qPP.js +0 -1
  144. package/.output/public/_nuxt/CUws2Uv7.js +0 -1
  145. package/.output/public/_nuxt/Cl5p4EQY.js +0 -1
  146. package/.output/public/_nuxt/D9MMtvTu.js +0 -52
  147. package/.output/public/_nuxt/DM8LJTsg.js +0 -1
  148. package/.output/public/_nuxt/ORit_vRp.js +0 -1
  149. package/.output/public/_nuxt/ZhP2FY6Y.js +0 -1
  150. package/.output/public/_nuxt/builds/meta/47c294b1-d6b3-4974-bd50-5046ae0a393e.json +0 -1
  151. package/.output/public/_nuxt/dSX5D8ur.js +0 -28
  152. package/.output/public/_nuxt/entry.CGwcggc4.css +0 -1
  153. package/.output/server/chunks/_/native-backup-jobs.mjs.map +0 -1
  154. package/.output/server/chunks/_/native-backup.mjs.map +0 -1
@@ -1 +1 @@
1
- import{L as ee,d as ne,e as q,o as v,n as ve,m as f,k as y,l as F,f as n,w as t,g as e,a9 as k,a4 as pe,z as u,A as b,aa as R,a7 as z,O as ge,aY as _e,ae as Ce,r as c,c as C,E as Q,aZ as be,a_ as ye,a$ as Se,b0 as he,b1 as we,b2 as $e,b3 as xe,b4 as ke,i as A,b5 as K,b6 as H,b7 as Y,t as Re,b8 as Z,b9 as j,ba as G,bb as J,bc as ze,bd as W,af as Pe,be as De,F as Te,K as Fe}from"./DgGwe7jd.js";import{_ as Oe}from"./CnQob-tn.js";import{s as qe}from"./yLATXAxG.js";import{g as O,a as X}from"./COAycMg4.js";import{_ as Me,f as Ee}from"./DoNLWeqB.js";import{_ as Ue}from"./DP6Az3fC.js";import{m as Be}from"./BoUZO_NV.js";import{u as Ie}from"./CE0zlNDo.js";import"./__PEYcIB.js";import"./DDsaDrGo.js";const Le=w=>ee.of([{key:"Ctrl-s",mac:"Cmd-s",run:g=>{const m=g.state.doc.toString();return w(m),!0},preventDefault:!0}]),Ne={class:ve(["flex items-center justify-between p-1 rounded-md bg-muted"])},Ve={class:"flex items-center gap-1"},Qe={key:0,class:"text-xs text-muted-foreground"},Ae=ne({__name:"FunctionControlBar",props:{hasChanges:{type:Boolean},isSaving:{type:Boolean}},emits:["onPreview","onSave","onDiscard","onReload"],setup(w,{emit:g}){const m=g;return(d,s)=>{const i=pe,_=Ue;return v(),q("div",Ne,[f("div",Ve,[d.hasChanges?(v(),y(e(z),{key:0},{default:t(()=>[n(e(k),{"as-child":""},{default:t(()=>[f("div",null,[n(i,{variant:"outline",size:"xxs",disabled:d.isSaving,onClick:s[0]||(s[0]=r=>m("onPreview"))},{default:t(()=>[n(e(b),{name:"lucide:file-search",class:"size-4"}),s[4]||(s[4]=u(" Preview changes "))]),_:1},8,["disabled"])])]),_:1}),n(e(R),null,{default:t(()=>s[5]||(s[5]=[f("p",null,"Preview SQL changes before saving",-1)])),_:1})]),_:1})):F("",!0),n(e(z),null,{default:t(()=>[n(e(k),{"as-child":""},{default:t(()=>[f("div",null,[n(i,{variant:"outline",size:"xxs",disabled:!d.hasChanges||d.isSaving,onClick:s[1]||(s[1]=r=>m("onSave"))},{default:t(()=>[d.isSaving?(v(),y(e(b),{key:0,name:"hugeicons:loading-03",class:"size-4 animate-spin"})):(v(),y(e(b),{key:1,name:"lucide:save",class:"size-4"})),s[7]||(s[7]=u(" Save ")),n(_,null,{default:t(()=>s[6]||(s[6]=[u("⌘S")])),_:1})]),_:1},8,["disabled"])])]),_:1}),n(e(R),null,{default:t(()=>[s[8]||(s[8]=f("p",null,"Save routine changes",-1)),d.hasChanges?F("",!0):(v(),q("p",Qe," No changes to save "))]),_:1})]),_:1}),n(e(z),null,{default:t(()=>[n(e(k),{"as-child":""},{default:t(()=>[f("div",null,[n(i,{variant:"outline",size:"xxs",disabled:d.isSaving,onClick:s[2]||(s[2]=r=>m("onReload"))},{default:t(()=>[n(e(b),{name:"lucide:refresh-cw",class:"size-4"}),s[10]||(s[10]=u(" Reload ")),n(_,null,{default:t(()=>s[9]||(s[9]=[u("⌘R")])),_:1})]),_:1},8,["disabled"])])]),_:1}),n(e(R),null,{default:t(()=>s[11]||(s[11]=[f("p",null,"Reload latest version from database",-1)])),_:1})]),_:1}),d.hasChanges?(v(),y(e(z),{key:1},{default:t(()=>[n(e(k),{"as-child":""},{default:t(()=>[f("div",null,[n(i,{variant:"outline",size:"xxs",disabled:d.isSaving,onClick:s[3]||(s[3]=r=>m("onDiscard"))},{default:t(()=>[n(e(b),{name:"lucide:undo-2",class:"size-4"}),s[12]||(s[12]=u(" discard changes "))]),_:1},8,["disabled"])])]),_:1}),n(e(R),null,{default:t(()=>s[13]||(s[13]=[f("p",null,"Discard changes",-1)])),_:1})]),_:1})):F("",!0)])])}}}),Ke={class:"flex flex-col h-full p-1"},He={class:"flex flex-col h-full border rounded-md"},Ye={class:"h-full flex flex-col overflow-y-auto relative"},sn=ne({__name:"FunctionDetail",props:{functionId:{},connectionId:{}},setup(w){const g=w,m=ge(),d=_e(),{activeSchema:s}=Ce(d),i=c(""),_=c(""),r=c(!1),M=c(""),E=c("Query error!"),$=c(!1),S=c(!1),h=c(""),ae=C(()=>O(i.value)),te=C(()=>O(_.value)),P=C(()=>ae.value!==te.value),se=C(()=>{const o=X(h.value);return o?`${o} update preview`:"Routine update preview"}),oe=C(()=>{var o;return Be({schemas:d.activeSchemas,defaultSchemaName:(o=s.value)==null?void 0:o.name})}),le=new be,U=C(()=>g.connectionId?m.connections.find(o=>o.id===g.connectionId):m.selectedConnection),B=C(()=>({functionId:g.functionId,...Q(U.value)})),{status:ie,refresh:I}=Ie("/api/functions/definition",{method:"POST",body:B,onResponse:o=>{if(typeof o.response._data=="string"){const a=o.response._data||"";i.value=a,_.value=a}},watch:[B]},"$cS7qZacQ7d"),D=(o,a)=>{E.value=o,M.value=a,$.value=!0},L=()=>{if(!P.value){D("No changes to save","The routine definition already matches the loaded version.");return}const o=O(i.value);if(!X(o)){D("Invalid routine definition","Preview requires a valid CREATE OR REPLACE FUNCTION or PROCEDURE statement.");return}return o},ue=()=>{if(r.value)return;const o=L();o&&(h.value=o,S.value=!0)},N=async(o=h.value)=>{var a;if(!(!o||r.value)){r.value=!0;try{const l=await $fetch("/api/functions/update",{method:"POST",body:{...Q(U.value),functionDefinition:o}});_.value=i.value,S.value=!1,Fe.success("Routine saved",{description:`Updated successfully in ${(l==null?void 0:l.queryTime)??0}ms`})}catch(l){S.value=!1,D("Save failed",((a=l==null?void 0:l.data)==null?void 0:a.message)||(l==null?void 0:l.message)||"Failed to save routine.")}finally{r.value=!1}}},V=async()=>{if(r.value)return;const o=L();o&&(h.value=o,await N(o))},re=()=>{i.value=_.value},x=c(!1),T=async()=>{P.value?x.value=!0:await I()},de=async()=>{x.value=!1,await I()},fe=[Le(o=>{i.value=o,V()}),qe(o=>Ee(o,{language:"postgresql",keywordCase:"upper"})),ee.of([{key:"Mod-i",run:he},{key:"Tab",run:we},{key:"Mod-r",mac:"Cmd-r",run:()=>(T(),!0),preventDefault:!0},{key:"F5",run:()=>(T(),!0),preventDefault:!0}]),le.of($e({dialect:xe.PostgreSQLHighlightDialect,upperCaseKeywords:!0,keywordCompletion:ke,schema:oe.value.schema})),...ye(),Se];return(o,a)=>{const l=b,me=Oe,ce=Pe;return v(),q(Te,null,[n(Me,{open:e($),"onUpdate:open":a[0]||(a[0]=p=>A($)?$.value=p:null),title:e(E),message:e(M)},null,8,["open","title","message"]),n(e(W),{open:e(S),"onUpdate:open":a[2]||(a[2]=p=>S.value=p)},{default:t(()=>[n(e(K),{size:"preview"},{default:t(()=>[n(e(H),null,{default:t(()=>[n(e(Y),{class:"flex items-center text-base font-medium"},{default:t(()=>[n(l,{name:"lucide:file-search",class:"size-4 mr-2"}),u(" "+Re(e(se)),1)]),_:1}),n(e(Z),null,{default:t(()=>a[5]||(a[5]=[u(" Review the exact SQL that will be submitted. The routine is not updated until you confirm this save. ")])),_:1})]),_:1}),n(me,{code:e(h),"show-copy-button":"","max-height":"24rem"},null,8,["code"]),n(e(j),null,{default:t(()=>[n(e(G),{disabled:e(r)},{default:t(()=>a[6]||(a[6]=[u("Cancel")])),_:1},8,["disabled"]),n(e(J),{class:"gap-2",onClick:a[1]||(a[1]=ze(p=>N(),["prevent"]))},{default:t(()=>[e(r)?(v(),y(l,{key:0,name:"hugeicons:loading-03",class:"size-4 animate-spin"})):(v(),y(l,{key:1,name:"lucide:save",class:"size-4"})),a[7]||(a[7]=u(" Save to database "))]),_:1})]),_:1})]),_:1})]),_:1},8,["open"]),n(e(W),{open:e(x),"onUpdate:open":a[3]||(a[3]=p=>x.value=p)},{default:t(()=>[n(e(K),null,{default:t(()=>[n(e(H),null,{default:t(()=>[n(e(Y),{class:"flex items-center text-base font-medium text-destructive"},{default:t(()=>[n(l,{name:"lucide:alert-triangle",class:"size-5 mr-2"}),a[8]||(a[8]=u(" Discard Unsaved Changes? "))]),_:1}),n(e(Z),null,{default:t(()=>a[9]||(a[9]=[u(" You have unsaved changes in your editor. Reloading will fetch the latest definition from the database and discard all your local modifications. This action cannot be undone. ")])),_:1})]),_:1}),n(e(j),null,{default:t(()=>[n(e(G),null,{default:t(()=>a[10]||(a[10]=[u("Cancel")])),_:1}),n(e(J),{variant:"destructive",onClick:de},{default:t(()=>a[11]||(a[11]=[u(" Reload and Discard ")])),_:1})]),_:1})]),_:1})]),_:1},8,["open"]),f("div",Ke,[f("div",He,[n(Ae,{"has-changes":e(P),"is-saving":e(r),onOnPreview:ue,onOnSave:V,onOnDiscard:re,onOnReload:T},null,8,["has-changes","is-saving"]),f("div",Ye,[n(ce,{visible:e(ie)==="pending"||e(r)},null,8,["visible"]),n(De,{modelValue:e(i),"onUpdate:modelValue":a[4]||(a[4]=p=>A(i)?i.value=p:null),extensions:fe,disabled:!1},null,8,["modelValue"])])])])],64)}}});export{sn as default};
1
+ import{L as ee,d as ne,e as q,o as v,n as ve,m as f,k as y,l as F,f as n,w as t,g as e,a9 as k,a4 as pe,z as u,A as b,aa as R,a7 as z,O as ge,aY as _e,ae as Ce,r as c,c as C,E as Q,aZ as be,a_ as ye,a$ as Se,b0 as he,b1 as we,b2 as $e,b3 as xe,b4 as ke,i as A,b5 as K,b6 as H,b7 as Y,t as Re,b8 as Z,b9 as j,ba as G,bb as J,bc as ze,bd as W,af as Pe,be as De,F as Te,K as Fe}from"./D7uoAo-G.js";import{_ as Oe}from"./DDQU7vSH.js";import{s as qe}from"./DLIUYAz9.js";import{g as O,a as X}from"./COAycMg4.js";import{_ as Me,f as Ee}from"./BN2mQ8OV.js";import{_ as Ue}from"./BNnChlxR.js";import{m as Be}from"./C7A87LE3.js";import{u as Ie}from"./LUfaevBS.js";import"./C1TOiVRQ.js";import"./2TwRWQjG.js";const Le=w=>ee.of([{key:"Ctrl-s",mac:"Cmd-s",run:g=>{const m=g.state.doc.toString();return w(m),!0},preventDefault:!0}]),Ne={class:ve(["flex items-center justify-between p-1 rounded-md bg-muted"])},Ve={class:"flex items-center gap-1"},Qe={key:0,class:"text-xs text-muted-foreground"},Ae=ne({__name:"FunctionControlBar",props:{hasChanges:{type:Boolean},isSaving:{type:Boolean}},emits:["onPreview","onSave","onDiscard","onReload"],setup(w,{emit:g}){const m=g;return(d,s)=>{const i=pe,_=Ue;return v(),q("div",Ne,[f("div",Ve,[d.hasChanges?(v(),y(e(z),{key:0},{default:t(()=>[n(e(k),{"as-child":""},{default:t(()=>[f("div",null,[n(i,{variant:"outline",size:"xxs",disabled:d.isSaving,onClick:s[0]||(s[0]=r=>m("onPreview"))},{default:t(()=>[n(e(b),{name:"lucide:file-search",class:"size-4"}),s[4]||(s[4]=u(" Preview changes "))]),_:1},8,["disabled"])])]),_:1}),n(e(R),null,{default:t(()=>s[5]||(s[5]=[f("p",null,"Preview SQL changes before saving",-1)])),_:1})]),_:1})):F("",!0),n(e(z),null,{default:t(()=>[n(e(k),{"as-child":""},{default:t(()=>[f("div",null,[n(i,{variant:"outline",size:"xxs",disabled:!d.hasChanges||d.isSaving,onClick:s[1]||(s[1]=r=>m("onSave"))},{default:t(()=>[d.isSaving?(v(),y(e(b),{key:0,name:"hugeicons:loading-03",class:"size-4 animate-spin"})):(v(),y(e(b),{key:1,name:"lucide:save",class:"size-4"})),s[7]||(s[7]=u(" Save ")),n(_,null,{default:t(()=>s[6]||(s[6]=[u("⌘S")])),_:1})]),_:1},8,["disabled"])])]),_:1}),n(e(R),null,{default:t(()=>[s[8]||(s[8]=f("p",null,"Save routine changes",-1)),d.hasChanges?F("",!0):(v(),q("p",Qe," No changes to save "))]),_:1})]),_:1}),n(e(z),null,{default:t(()=>[n(e(k),{"as-child":""},{default:t(()=>[f("div",null,[n(i,{variant:"outline",size:"xxs",disabled:d.isSaving,onClick:s[2]||(s[2]=r=>m("onReload"))},{default:t(()=>[n(e(b),{name:"lucide:refresh-cw",class:"size-4"}),s[10]||(s[10]=u(" Reload ")),n(_,null,{default:t(()=>s[9]||(s[9]=[u("⌘R")])),_:1})]),_:1},8,["disabled"])])]),_:1}),n(e(R),null,{default:t(()=>s[11]||(s[11]=[f("p",null,"Reload latest version from database",-1)])),_:1})]),_:1}),d.hasChanges?(v(),y(e(z),{key:1},{default:t(()=>[n(e(k),{"as-child":""},{default:t(()=>[f("div",null,[n(i,{variant:"outline",size:"xxs",disabled:d.isSaving,onClick:s[3]||(s[3]=r=>m("onDiscard"))},{default:t(()=>[n(e(b),{name:"lucide:undo-2",class:"size-4"}),s[12]||(s[12]=u(" discard changes "))]),_:1},8,["disabled"])])]),_:1}),n(e(R),null,{default:t(()=>s[13]||(s[13]=[f("p",null,"Discard changes",-1)])),_:1})]),_:1})):F("",!0)])])}}}),Ke={class:"flex flex-col h-full p-1"},He={class:"flex flex-col h-full border rounded-md"},Ye={class:"h-full flex flex-col overflow-y-auto relative"},sn=ne({__name:"FunctionDetail",props:{functionId:{},connectionId:{}},setup(w){const g=w,m=ge(),d=_e(),{activeSchema:s}=Ce(d),i=c(""),_=c(""),r=c(!1),M=c(""),E=c("Query error!"),$=c(!1),S=c(!1),h=c(""),ae=C(()=>O(i.value)),te=C(()=>O(_.value)),P=C(()=>ae.value!==te.value),se=C(()=>{const o=X(h.value);return o?`${o} update preview`:"Routine update preview"}),oe=C(()=>{var o;return Be({schemas:d.activeSchemas,defaultSchemaName:(o=s.value)==null?void 0:o.name})}),le=new be,U=C(()=>g.connectionId?m.connections.find(o=>o.id===g.connectionId):m.selectedConnection),B=C(()=>({functionId:g.functionId,...Q(U.value)})),{status:ie,refresh:I}=Ie("/api/functions/definition",{method:"POST",body:B,onResponse:o=>{if(typeof o.response._data=="string"){const a=o.response._data||"";i.value=a,_.value=a}},watch:[B]},"$cS7qZacQ7d"),D=(o,a)=>{E.value=o,M.value=a,$.value=!0},L=()=>{if(!P.value){D("No changes to save","The routine definition already matches the loaded version.");return}const o=O(i.value);if(!X(o)){D("Invalid routine definition","Preview requires a valid CREATE OR REPLACE FUNCTION or PROCEDURE statement.");return}return o},ue=()=>{if(r.value)return;const o=L();o&&(h.value=o,S.value=!0)},N=async(o=h.value)=>{var a;if(!(!o||r.value)){r.value=!0;try{const l=await $fetch("/api/functions/update",{method:"POST",body:{...Q(U.value),functionDefinition:o}});_.value=i.value,S.value=!1,Fe.success("Routine saved",{description:`Updated successfully in ${(l==null?void 0:l.queryTime)??0}ms`})}catch(l){S.value=!1,D("Save failed",((a=l==null?void 0:l.data)==null?void 0:a.message)||(l==null?void 0:l.message)||"Failed to save routine.")}finally{r.value=!1}}},V=async()=>{if(r.value)return;const o=L();o&&(h.value=o,await N(o))},re=()=>{i.value=_.value},x=c(!1),T=async()=>{P.value?x.value=!0:await I()},de=async()=>{x.value=!1,await I()},fe=[Le(o=>{i.value=o,V()}),qe(o=>Ee(o,{language:"postgresql",keywordCase:"upper"})),ee.of([{key:"Mod-i",run:he},{key:"Tab",run:we},{key:"Mod-r",mac:"Cmd-r",run:()=>(T(),!0),preventDefault:!0},{key:"F5",run:()=>(T(),!0),preventDefault:!0}]),le.of($e({dialect:xe.PostgreSQLHighlightDialect,upperCaseKeywords:!0,keywordCompletion:ke,schema:oe.value.schema})),...ye(),Se];return(o,a)=>{const l=b,me=Oe,ce=Pe;return v(),q(Te,null,[n(Me,{open:e($),"onUpdate:open":a[0]||(a[0]=p=>A($)?$.value=p:null),title:e(E),message:e(M)},null,8,["open","title","message"]),n(e(W),{open:e(S),"onUpdate:open":a[2]||(a[2]=p=>S.value=p)},{default:t(()=>[n(e(K),{size:"preview"},{default:t(()=>[n(e(H),null,{default:t(()=>[n(e(Y),{class:"flex items-center text-base font-medium"},{default:t(()=>[n(l,{name:"lucide:file-search",class:"size-4 mr-2"}),u(" "+Re(e(se)),1)]),_:1}),n(e(Z),null,{default:t(()=>a[5]||(a[5]=[u(" Review the exact SQL that will be submitted. The routine is not updated until you confirm this save. ")])),_:1})]),_:1}),n(me,{code:e(h),"show-copy-button":"","max-height":"24rem"},null,8,["code"]),n(e(j),null,{default:t(()=>[n(e(G),{disabled:e(r)},{default:t(()=>a[6]||(a[6]=[u("Cancel")])),_:1},8,["disabled"]),n(e(J),{class:"gap-2",onClick:a[1]||(a[1]=ze(p=>N(),["prevent"]))},{default:t(()=>[e(r)?(v(),y(l,{key:0,name:"hugeicons:loading-03",class:"size-4 animate-spin"})):(v(),y(l,{key:1,name:"lucide:save",class:"size-4"})),a[7]||(a[7]=u(" Save to database "))]),_:1})]),_:1})]),_:1})]),_:1},8,["open"]),n(e(W),{open:e(x),"onUpdate:open":a[3]||(a[3]=p=>x.value=p)},{default:t(()=>[n(e(K),null,{default:t(()=>[n(e(H),null,{default:t(()=>[n(e(Y),{class:"flex items-center text-base font-medium text-destructive"},{default:t(()=>[n(l,{name:"lucide:alert-triangle",class:"size-5 mr-2"}),a[8]||(a[8]=u(" Discard Unsaved Changes? "))]),_:1}),n(e(Z),null,{default:t(()=>a[9]||(a[9]=[u(" You have unsaved changes in your editor. Reloading will fetch the latest definition from the database and discard all your local modifications. This action cannot be undone. ")])),_:1})]),_:1}),n(e(j),null,{default:t(()=>[n(e(G),null,{default:t(()=>a[10]||(a[10]=[u("Cancel")])),_:1}),n(e(J),{variant:"destructive",onClick:de},{default:t(()=>a[11]||(a[11]=[u(" Reload and Discard ")])),_:1})]),_:1})]),_:1})]),_:1},8,["open"]),f("div",Ke,[f("div",He,[n(Ae,{"has-changes":e(P),"is-saving":e(r),onOnPreview:ue,onOnSave:V,onOnDiscard:re,onOnReload:T},null,8,["has-changes","is-saving"]),f("div",Ye,[n(ce,{visible:e(ie)==="pending"||e(r)},null,8,["visible"]),n(De,{modelValue:e(i),"onUpdate:modelValue":a[4]||(a[4]=p=>A(i)?i.value=p:null),extensions:fe,disabled:!1},null,8,["modelValue"])])])])],64)}}});export{sn as default};