@windwalker-io/core 4.1.3 → 4.1.5

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.
package/bin/release.js CHANGED
@@ -1,10 +1,3 @@
1
- /**
2
- * Part of fusion project.
3
- *
4
- * @copyright Copyright (C) 2018 Asikart.
5
- * @license MIT
6
- */
7
-
8
1
  import minimist from 'minimist';
9
2
  import { execSync as exec } from 'child_process';
10
3
 
@@ -27,16 +20,18 @@ if (cliInput['help'] || cliInput['h']) {
27
20
  process.exit(0);
28
21
  }
29
22
 
30
- console.log(`>>> yarn build:prod`);
31
- exec(`yarn build:prod`, { stdio: 'inherit' });
23
+ // console.log(`>>> yarn build:prod`);
24
+ // exec(`yarn build:prod`, { stdio: 'inherit' });
32
25
 
33
26
  console.log(`>>> npm version ${args.join(' ')}`);
34
- exec(`npm version ${args.join(' ')}`, { stdio: 'inherit' });
27
+ const buffer = exec(`npm version ${args.join(' ')}`);
28
+
29
+ const ver = buffer.toString().split("\n")[1];
35
30
 
36
31
  console.log('>>> Git commit all');
37
32
  exec(`git add .`, { stdio: 'inherit' });
38
33
  try {
39
- exec(`git commit -am "Prepare release @windwalker-io/core."`, { stdio: 'inherit' });
34
+ exec(`git commit -am "Prepare release JS @windwalker-io/core ${ver}."`, { stdio: 'inherit' });
40
35
  } catch (e) {
41
36
  console.log(e.message);
42
37
  }
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunksrc_debugger_debugger_js=self.webpackChunksrc_debugger_debugger_js||[]).push([[941],{5956:(e,t,a)=>{a.d(t,{Z:()=>v});var n=a(1525),l=a(672),s=a(3630),r=a(457),i=a(5054),o=a(4545);const d={key:0},u={class:"p-3 mt-3 mx-4 rounded-3",style:{"background-color":"var(--bs-gray-800)"}},c={class:"text-xl font-bold text-gray-800"},b={class:"text-muted"},m=["href"],v={__name:"DefaultLayout",setup(e){const t=(0,r.yj)();return(e,a)=>{const r=(0,n.up)("fa-icon"),v=(0,n.up)("router-link");return(0,l.SU)(o.I)?((0,n.wg)(),(0,n.iD)("div",d,[(0,n._)("div",u,[(0,n._)("h1",c,[(0,n.WI)(e.$slots,"title")]),(0,n.Uk)(),(0,n._)("div",b,[(0,n.Wm)(v,{to:"/",class:"btn btn-sm btn-primary"},{default:(0,n.w5)((()=>[(0,n.Wm)(r,{icon:"fa-solid fa-list"})])),_:1}),(0,n.Uk)(),(0,n._)("button",{type:"button",onClick:a[0]||(a[0]=e=>(0,l.SU)(i.D)("/"+(0,l.SU)(t).name)),class:"btn btn-sm btn-success"},[(0,n.Wm)(r,{icon:"fa-solid fa-arrows-rotate"})]),(0,n.Uk)("\r\n /\r\n "+(0,s.zw)((0,l.SU)(o.p))+"\r\n / ",1),(0,n._)("a",{target:"_blank",class:"text-gray-600",href:(0,l.SU)(o.I).url},(0,s.zw)((0,l.SU)(o.I).url),9,m)])]),(0,n.Uk)(),(0,n.WI)(e.$slots,"default")])):(0,n.kq)("",!0)}}}},941:(e,t,a)=>{a.r(t),a.d(t,{default:()=>ve});var n=a(1525),l=a(3630),s=a(672);const r=["id","aria-labelledby","aria-hidden","data-bs-backdrop"],i={class:"modal-content"},o={key:1,class:"modal-header"},d=["id"],u=(0,n._)("button",{type:"button",class:"close btn-close","data-bs-dismiss":"modal","data-dismiss":"modal","aria-label":"Close"},[(0,n._)("span",{"aria-hidden":"true",class:"visually-hidden"},"×")],-1),c={key:1,class:"modal-body"},b={key:2,class:"modal-footer"};var m=a(3752);const v={name:"BsModal",inheritAttrs:!1,props:{id:String,open:{type:Boolean,default:!1},size:String,title:String,backdrop:{type:[String,Boolean],default:!0}},emits:["show","shown","hide","hidden"],setup(e,t){let{emit:a,slots:l}=t;const r=(0,s.iH)(null),i=(0,s.qj)({idName:e.id||"modal-"+(Math.random()+1).toString(36).substring(7),visible:e.open});function o(){return m.Z.getOrCreateInstance(r.value)}return(0,n.YP)((()=>i.visible),((e,t)=>{!t&&e&&o().show(),t&&!e&&o().hide()})),(0,n.YP)((()=>e.open),(e=>{i.visible=e})),(0,n.YP)((()=>e.id),(e=>{i.idName=e})),(0,n.bv)((()=>{r.value.addEventListener("show.bs.modal",(e=>{a("show",e)})),r.value.addEventListener("shown.bs.modal",(e=>{a("shown",e)})),r.value.addEventListener("hide.bs.modal",(e=>{a("hide",e)})),r.value.addEventListener("hidden.bs.modal",(e=>{a("hidden",e)}))})),{...(0,s.BK)(i),modal:r,hasSlots:function(e){return void 0!==l[e]}}}};var _=a(4181);const k=(0,_.Z)(v,[["render",function(e,t,a,s,m,v){return(0,n.wg)(),(0,n.j4)(n.lR,{to:"body"},[(0,n._)("div",(0,n.dG)({ref:"modal",class:"modal fade",id:e.idName},e.$attrs,{tabindex:"-1",role:"dialog","aria-labelledby":e.idName+"-label","aria-hidden":e.visible?"true":"false","data-bs-backdrop":a.backdrop}),[(0,n._)("div",{class:(0,l.C_)(["modal-dialog",a.size?"modal-"+a.size:null]),role:"document"},[(0,n._)("div",i,[e.visible?((0,n.wg)(),(0,n.iD)(n.HY,{key:0},[s.hasSlots("header-element")?(0,n.WI)(e.$slots,"header-element",{key:0}):((0,n.wg)(),(0,n.iD)("div",o,[(0,n.WI)(e.$slots,"header",{},(()=>[(0,n._)("div",{class:"modal-title",id:e.idName+"-label"},[(0,n._)("h4",null,(0,l.zw)(a.title),1)],8,d)])),(0,n.Uk)(),u]))],64)):(0,n.kq)("",!0),(0,n.Uk)(),e.visible?((0,n.wg)(),(0,n.iD)("div",c,[(0,n.WI)(e.$slots,"default")])):(0,n.kq)("",!0),(0,n.Uk)(),e.visible&&s.hasSlots("footer")?((0,n.wg)(),(0,n.iD)("div",b,[(0,n.WI)(e.$slots,"footer")])):(0,n.kq)("",!0)])],2)],16,r)])}]]),p=["id"],y={class:"card-header d-flex justify-content-between"},g={class:"m-0"},w={class:"d-flex align-items-center justify-content-between"},f={class:"text-muted"},h=(0,n._)("span",{class:""},"Copy",-1),U={type:"button",class:"btn btn-primary btn-sm"},z={class:"card-body"},D={class:""},C=["innerHTML"],x={class:"py-4 d-flex justify-content-between"},$={class:"badge bg-info rounded-pill"},q={key:0},S={class:"table"},W=(0,n._)("thead",null,[(0,n._)("tr",null,[(0,n._)("th",{class:""},"\r\n ID\r\n "),(0,n.Uk)(),(0,n._)("th",{class:""},"\r\n Select Type\r\n "),(0,n.Uk)(),(0,n._)("th",{class:""},"\r\n Table\r\n "),(0,n.Uk)(),(0,n._)("th",{class:""},"\r\n Type\r\n "),(0,n.Uk)(),(0,n._)("th",{class:""},"\r\n Possible Keys\r\n "),(0,n.Uk)(),(0,n._)("th",{class:""},"\r\n Key\r\n "),(0,n.Uk)(),(0,n._)("th",{class:""},"\r\n Key Length\r\n "),(0,n.Uk)(),(0,n._)("th",{class:""},"\r\n Reference\r\n "),(0,n.Uk)(),(0,n._)("th",{class:""},"\r\n Rows\r\n "),(0,n.Uk)(),(0,n._)("th",{class:""},"\r\n Extra\r\n ")])],-1),H={class:"bg-white"},T={class:""},j={class:""},B={class:""},I={class:""},M={class:"text-wrap"},L={style:{"word-break":"break-all"}},K={class:""},N={class:""},Y={class:""},Z={class:""},E={class:""};var Q=a(979),R=a(7297),G=a(5054);const O={name:"query-info",props:{i:Number,item:Object,totalCount:Number,totalTime:Number,totalMemory:Number},setup(e,t){let{emit:a}=t;return{formatQuery:P,round:A,goToLast:G.D,copy:function(){navigator.clipboard.writeText(e.item.debug_query)},stateColor:R.G,openBacktrace:function(t){a("open-backtrace",t,e.i)}}}};function P(e){try{return(0,Q.format)(e,{keywordCase:"upper"}).replace(/\n/,"<br>")}catch(t){return console.error(t),e}}function A(e){return Math.round(100*e)/100}const F=(0,_.Z)(O,[["render",function(e,t,a,s,r,i){const o=(0,n.up)("fa-icon");return(0,n.wg)(),(0,n.iD)("div",{id:`query-${a.i}`,class:(0,l.C_)(["card rounded-3 border border-1",`border-${s.stateColor(1e3*a.item.time,15)}`])},[(0,n._)("div",y,[(0,n._)("h4",g,"\r\n Query: "+(0,l.zw)(a.i),1),(0,n.Uk)(),(0,n._)("div",w,[(0,n._)("div",f,[(0,n._)("button",{type:"button",class:"btn btn-outline-primary btn-sm",onClick:t[0]||(t[0]=function(){return s.copy&&s.copy(...arguments)})},[(0,n.Wm)(o,{icon:"fa fa-clipboard"}),(0,n.Uk)(),h]),(0,n.Uk)(),(0,n._)("button",U,[(0,n.Wm)(o,{icon:"fa fa-link"})]),(0,n.Uk)(),(0,n._)("button",{type:"button",class:"btn btn-success btn-sm",onClick:t[1]||(t[1]=e=>s.goToLast("/db"))},[(0,n.Wm)(o,{icon:"fa fa-rotate-right"})])])])]),(0,n.Uk)(),(0,n._)("div",z,[(0,n._)("div",D,[(0,n._)("pre",{style:{"word-break":"break-all","white-space":"pre-wrap"},class:"border p-4",innerHTML:s.formatQuery(a.item.debug_query)},null,8,C)]),(0,n.Uk)(),(0,n._)("div",x,[(0,n._)("div",null,[(0,n.Uk)("\r\n Query Time:\r\n "),(0,n._)("span",{class:(0,l.C_)(["badge",`bg-${s.stateColor(1e3*a.item.time,15)}`])},(0,l.zw)(s.round(1e3*a.item.time))+"ms\r\n ",3),(0,n.Uk)("\r\n Memory:\r\n "),(0,n._)("span",{class:(0,l.C_)(["badge",`bg-${s.stateColor(a.item.memory/1024/1024,.05)}`])},(0,l.zw)(s.round(a.item.memory/1024/1024))+"MB\r\n ",3),(0,n.Uk)("\r\n Return Rows\r\n "),(0,n._)("span",$,(0,l.zw)(a.item.count),1)]),(0,n.Uk)(),(0,n._)("div",null,[(0,n._)("button",{class:"btn btn-primary",onClick:t[2]||(t[2]=e=>s.openBacktrace(a.item.backtrace,a.i))},[(0,n.Wm)(o,{icon:"fa fa-list"}),(0,n.Uk)("\r\n Backtrace\r\n ")])])])]),(0,n.Uk)(),a.item.explain?((0,n.wg)(),(0,n.iD)("div",q,[(0,n._)("table",S,[W,(0,n.Uk)(),(0,n._)("tbody",H,[((0,n.wg)(!0),(0,n.iD)(n.HY,null,(0,n.Ko)(a.item.explain,(e=>((0,n.wg)(),(0,n.iD)("tr",null,[(0,n._)("td",T,(0,l.zw)(e.id),1),(0,n.Uk)(),(0,n._)("td",j,(0,l.zw)(e.select_type),1),(0,n.Uk)(),(0,n._)("td",B,(0,l.zw)(e.table),1),(0,n.Uk)(),(0,n._)("td",I,(0,l.zw)(e.type),1),(0,n.Uk)(),(0,n._)("td",M,[(0,n._)("div",L,(0,l.zw)(e.possible_keys),1)]),(0,n.Uk)(),(0,n._)("td",K,(0,l.zw)(e.key),1),(0,n.Uk)(),(0,n._)("td",N,(0,l.zw)(e.key_len),1),(0,n.Uk)(),(0,n._)("td",Y,(0,l.zw)(e.ref),1),(0,n.Uk)(),(0,n._)("td",Z,(0,l.zw)(e.rows),1),(0,n.Uk)(),(0,n._)("td",E,(0,l.zw)(e.Extra),1)])))),256))])])])):(0,n.kq)("",!0)],10,p)}]]);var J=a(5956),V=a(363);const X={key:0,class:"p-4"},ee={class:"nav nav-pills",id:"profilers-tab",role:"tablist"},te={class:"nav-item",role:"presentation"},ae=["data-bs-target"],ne={class:"tab-content mt-4",id:"myTabContent"},le=["id"],se=(0,n._)("h4",null,"Queries",-1),re={class:"my-3"},ie={class:"badge bg-info"},oe={class:"mt-5"},de={class:"mb-4"},ue={class:"table table-striped table-bordered"},ce={style:{"font-family":"monospace","font-size":"13px","word-break":"break-all"}},be=["href"],me={__name:"Database",async setup(e){let t,a;const r=(0,s.iH)(null);function i(e){var t,a;return 1e3*(null===(t=r.value)||void 0===t||null===(a=t.queries[e])||void 0===a?void 0:a.reduce(((e,t)=>e+t.time),0))}function o(e){var t,a;return(null===(t=r.value)||void 0===t||null===(a=t.queries[e])||void 0===a?void 0:a.reduce(((e,t)=>e+t.memory),0))/1024/1024}const d=(0,s.iH)(!1),u=(0,s.iH)([]),c=(0,s.iH)(0);function b(e,t){u.value=e,c.value=t,d.value=!0}const m=document.__data.editor,v=document.__data.systemPath,_=(0,n.Fl)((()=>r.value.connections.map((e=>e.name))));function p(e){return Math.round(100*e)/100}return[t,a]=(0,n.mv)((()=>async function(){const e=await V.Z.get("ajax/data?path=db");r.value=e.data.data}())),await t,a(),(e,t)=>((0,n.wg)(),(0,n.j4)(J.Z,null,{title:(0,n.w5)((()=>[(0,n.Uk)("\r\n Database\r\n ")])),default:(0,n.w5)((()=>[(0,n.Uk)(),r.value?((0,n.wg)(),(0,n.iD)("div",X,[(0,n._)("ul",ee,[((0,n.wg)(!0),(0,n.iD)(n.HY,null,(0,n.Ko)(_.value,((e,t)=>((0,n.wg)(),(0,n.iD)("li",te,[(0,n._)("button",{class:"nav-link active",id:"home-tab","data-bs-toggle":"tab","data-bs-target":`tab-${e}`,type:"button",role:"tab","aria-selected":"true"},(0,l.zw)(e),9,ae)])))),256))]),(0,n.Uk)(),(0,n._)("div",ne,[((0,n.wg)(!0),(0,n.iD)(n.HY,null,(0,n.Ko)(_.value,((e,t)=>{var a,d,u,c,m,v;return(0,n.wg)(),(0,n.iD)("div",{class:(0,l.C_)(["tab-pane fade",[0===t?"show active":""]]),id:`tab-${e}`,role:"tabpanel",tabindex:"0"},[(0,n._)("div",null,[se,(0,n.Uk)(),(0,n._)("div",re,[(0,n.Uk)("\r\n Count: "),(0,n._)("span",ie,(0,l.zw)((null===(a=r.value)||void 0===a||null===(d=a.queries[e])||void 0===d?void 0:d.length)||0),1),(0,n.Uk)("\r\n -\r\n Time:\r\n "),(0,n._)("span",{class:(0,l.C_)(["badge",`bg-${(0,s.SU)(R.G)(i(e),15*((null===(u=r.value)||void 0===u||null===(c=u.queries[e])||void 0===c?void 0:c.length)||0))}`])},(0,l.zw)(p(i(e)))+"ms\r\n ",3),(0,n.Uk)("\r\n -\r\n Memory:\r\n "),(0,n._)("span",{class:(0,l.C_)(["badge",`bg-${(0,s.SU)(R.G)(o(e),.05*((null===(m=r.value)||void 0===m||null===(v=m.queries[e])||void 0===v?void 0:v.length)||0))}`])},(0,l.zw)(p(o(e)))+"MB\r\n ",3)])]),(0,n.Uk)(),(0,n._)("div",oe,[((0,n.wg)(!0),(0,n.iD)(n.HY,null,(0,n.Ko)(r.value.queries[e],((t,a)=>{var l,s;return(0,n.wg)(),(0,n.iD)("div",de,[(0,n.Wm)(F,{item:t,i:a+1,"total-count":(null===(l=r.value)||void 0===l||null===(s=l.queries[e])||void 0===s?void 0:s.length)||0,"total-time":i(e),"total-memory":o(e),onOpenBacktrace:b},null,8,["item","i","total-count","total-time","total-memory"])])})),256))])],10,le)})),256))]),(0,n.Uk)(),(0,n.Wm)(k,{open:d.value,onHidden:t[0]||(t[0]=e=>d.value=!1),title:`Query ${c.value}: Backtrace`,size:"xl"},{default:(0,n.w5)((()=>[(0,n._)("table",ue,[(0,n._)("tbody",null,[((0,n.wg)(!0),(0,n.iD)(n.HY,null,(0,n.Ko)(u.value,(e=>{return(0,n.wg)(),(0,n.iD)("tr",ce,[(0,n._)("td",null,(0,l.zw)(e.function),1),(0,n.Uk)(),(0,n._)("td",null,[(0,n._)("a",{href:(a=e,`${m}://open?file=${a.pathname}&line=${a.line}`)},(0,l.zw)((t=e.pathname,t.replace(v,"ROOT"))),9,be)])]);var t,a})),256))])])])),_:1},8,["open","title"])])):(0,n.kq)("",!0)])),_:1}))}},ve=me},5054:(e,t,a)=>{a.d(t,{D:()=>s});var n=a(8601),l=a(363);async function s(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0;const t=await l.Z.get("ajax/last");let a="";return a=e?e+"/"+t.data.data:"/system/"+t.data.data,n.Z.push(a)}},7297:(e,t,a)=>{function n(e,t){return e>2*t?"danger":e>1.5*t?"warning":e<t/2?"success":"info"}function l(e){return e>=300&&e<400?"info":e>=400&&e<500?"warning":e>=200&&e<300?"success":"danger"}a.d(t,{G:()=>n,e:()=>l})}}]);
1
+ "use strict";(self.webpackChunksrc_debugger_debugger_js=self.webpackChunksrc_debugger_debugger_js||[]).push([[941],{5956:(e,t,a)=>{a.d(t,{Z:()=>v});var n=a(1525),l=a(672),s=a(3630),r=a(457),i=a(5054),o=a(4545);const d={key:0},u={class:"p-3 mt-3 mx-4 rounded-3",style:{"background-color":"var(--bs-gray-800)"}},c={class:"text-xl font-bold text-gray-800"},b={class:"text-muted"},m=["href"],v={__name:"DefaultLayout",setup(e){const t=(0,r.yj)();return(e,a)=>{const r=(0,n.up)("fa-icon"),v=(0,n.up)("router-link");return(0,l.SU)(o.I)?((0,n.wg)(),(0,n.iD)("div",d,[(0,n._)("div",u,[(0,n._)("h1",c,[(0,n.WI)(e.$slots,"title")]),(0,n.Uk)(),(0,n._)("div",b,[(0,n.Wm)(v,{to:"/",class:"btn btn-sm btn-primary"},{default:(0,n.w5)((()=>[(0,n.Wm)(r,{icon:"fa-solid fa-list"})])),_:1}),(0,n.Uk)(),(0,n._)("button",{type:"button",onClick:a[0]||(a[0]=e=>(0,l.SU)(i.D)("/"+(0,l.SU)(t).name)),class:"btn btn-sm btn-success"},[(0,n.Wm)(r,{icon:"fa-solid fa-arrows-rotate"})]),(0,n.Uk)("\r\n /\r\n "+(0,s.zw)((0,l.SU)(o.p))+"\r\n / ",1),(0,n._)("a",{target:"_blank",class:"text-gray-600",href:(0,l.SU)(o.I).url},(0,s.zw)((0,l.SU)(o.I).url),9,m)])]),(0,n.Uk)(),(0,n.WI)(e.$slots,"default")])):(0,n.kq)("",!0)}}}},941:(e,t,a)=>{a.r(t),a.d(t,{default:()=>ve});var n=a(1525),l=a(3630),s=a(672);const r=["id","aria-labelledby","aria-hidden","data-bs-backdrop"],i={class:"modal-content"},o={key:1,class:"modal-header"},d=["id"],u=(0,n._)("button",{type:"button",class:"close btn-close","data-bs-dismiss":"modal","data-dismiss":"modal","aria-label":"Close"},[(0,n._)("span",{"aria-hidden":"true",class:"visually-hidden"},"×")],-1),c={key:1,class:"modal-body"},b={key:2,class:"modal-footer"};var m=a(3752);const v={name:"BsModal",inheritAttrs:!1,props:{id:String,open:{type:Boolean,default:!1},size:String,title:String,backdrop:{type:[String,Boolean],default:!0}},emits:["show","shown","hide","hidden"],setup(e,t){let{emit:a,slots:l}=t;const r=(0,s.iH)(null),i=(0,s.qj)({idName:e.id||"modal-"+(Math.random()+1).toString(36).substring(7),visible:e.open});function o(){return m.Z.getOrCreateInstance(r.value)}return(0,n.YP)((()=>i.visible),((e,t)=>{!t&&e&&o().show(),t&&!e&&o().hide()})),(0,n.YP)((()=>e.open),(e=>{i.visible=e})),(0,n.YP)((()=>e.id),(e=>{i.idName=e})),(0,n.bv)((()=>{r.value.addEventListener("show.bs.modal",(e=>{a("show",e)})),r.value.addEventListener("shown.bs.modal",(e=>{a("shown",e)})),r.value.addEventListener("hide.bs.modal",(e=>{a("hide",e)})),r.value.addEventListener("hidden.bs.modal",(e=>{a("hidden",e)}))})),{...(0,s.BK)(i),modal:r,hasSlots:function(e){return void 0!==l[e]}}}};var _=a(4181);const k=(0,_.Z)(v,[["render",function(e,t,a,s,m,v){return(0,n.wg)(),(0,n.j4)(n.lR,{to:"body"},[(0,n._)("div",(0,n.dG)({ref:"modal",class:"modal fade",id:e.idName},e.$attrs,{tabindex:"-1",role:"dialog","aria-labelledby":e.idName+"-label","aria-hidden":e.visible?"true":"false","data-bs-backdrop":a.backdrop}),[(0,n._)("div",{class:(0,l.C_)(["modal-dialog",a.size?"modal-"+a.size:null]),role:"document"},[(0,n._)("div",i,[e.visible?((0,n.wg)(),(0,n.iD)(n.HY,{key:0},[s.hasSlots("header-element")?(0,n.WI)(e.$slots,"header-element",{key:0}):((0,n.wg)(),(0,n.iD)("div",o,[(0,n.WI)(e.$slots,"header",{},(()=>[(0,n._)("div",{class:"modal-title",id:e.idName+"-label"},[(0,n._)("h4",null,(0,l.zw)(a.title),1)],8,d)])),(0,n.Uk)(),u]))],64)):(0,n.kq)("",!0),(0,n.Uk)(),e.visible?((0,n.wg)(),(0,n.iD)("div",c,[(0,n.WI)(e.$slots,"default")])):(0,n.kq)("",!0),(0,n.Uk)(),e.visible&&s.hasSlots("footer")?((0,n.wg)(),(0,n.iD)("div",b,[(0,n.WI)(e.$slots,"footer")])):(0,n.kq)("",!0)])],2)],16,r)])}]]),p=["id"],y={class:"card-header d-flex justify-content-between"},g={class:"m-0"},w={class:"d-flex align-items-center justify-content-between"},f={class:"text-muted"},h=(0,n._)("span",{class:""},"Copy",-1),U={type:"button",class:"btn btn-primary btn-sm"},z={class:"card-body"},C={class:""},D=["innerHTML"],x={class:"py-4 d-flex justify-content-between"},$={class:"badge bg-info rounded-pill"},q={key:0},S={class:"table"},W=(0,n._)("thead",null,[(0,n._)("tr",null,[(0,n._)("th",{class:""},"\r\n ID\r\n "),(0,n.Uk)(),(0,n._)("th",{class:""},"\r\n Select Type\r\n "),(0,n.Uk)(),(0,n._)("th",{class:""},"\r\n Table\r\n "),(0,n.Uk)(),(0,n._)("th",{class:""},"\r\n Type\r\n "),(0,n.Uk)(),(0,n._)("th",{class:""},"\r\n Possible Keys\r\n "),(0,n.Uk)(),(0,n._)("th",{class:""},"\r\n Key\r\n "),(0,n.Uk)(),(0,n._)("th",{class:""},"\r\n Key Length\r\n "),(0,n.Uk)(),(0,n._)("th",{class:""},"\r\n Reference\r\n "),(0,n.Uk)(),(0,n._)("th",{class:""},"\r\n Rows\r\n "),(0,n.Uk)(),(0,n._)("th",{class:""},"\r\n Extra\r\n ")])],-1),H={class:"bg-white"},T={class:""},j={class:""},B={class:""},I={class:""},M={class:"text-wrap"},L={style:{"word-break":"break-all"}},K={class:""},N={class:""},Y={class:""},Z={class:""},E={class:""};var Q=a(979),R=a(7297),G=a(5054);const O={name:"query-info",props:{i:Number,item:Object,totalCount:Number,totalTime:Number,totalMemory:Number},setup(e,t){let{emit:a}=t;return{formatQuery:P,round:A,goToLast:G.D,copy:function(){navigator.clipboard.writeText(e.item.debug_query)},stateColor:R.G,openBacktrace:function(t){a("open-backtrace",t,e.i)}}}};function P(e){try{return(0,Q.format)(e,{keywordCase:"upper"}).replace(/\n/,"<br>")}catch(t){return console.error(t),e}}function A(e){return Math.round(100*e)/100}const F=(0,_.Z)(O,[["render",function(e,t,a,s,r,i){const o=(0,n.up)("fa-icon");return(0,n.wg)(),(0,n.iD)("div",{id:`query-${a.i}`,class:(0,l.C_)(["card rounded-3 border border-1",`border-${s.stateColor(1e3*a.item.time,15)}`])},[(0,n._)("div",y,[(0,n._)("h4",g,"\r\n Query: "+(0,l.zw)(a.i),1),(0,n.Uk)(),(0,n._)("div",w,[(0,n._)("div",f,[(0,n._)("button",{type:"button",class:"btn btn-outline-primary btn-sm",onClick:t[0]||(t[0]=function(){return s.copy&&s.copy(...arguments)})},[(0,n.Wm)(o,{icon:"fa fa-clipboard"}),(0,n.Uk)(),h]),(0,n.Uk)(),(0,n._)("button",U,[(0,n.Wm)(o,{icon:"fa fa-link"})]),(0,n.Uk)(),(0,n._)("button",{type:"button",class:"btn btn-success btn-sm",onClick:t[1]||(t[1]=e=>s.goToLast("/db"))},[(0,n.Wm)(o,{icon:"fa fa-rotate-right"})])])])]),(0,n.Uk)(),(0,n._)("div",z,[(0,n._)("div",C,[(0,n._)("pre",{style:{"word-break":"break-all","white-space":"pre-wrap"},class:"border p-4",innerHTML:s.formatQuery(a.item.debug_query)},null,8,D)]),(0,n.Uk)(),(0,n._)("div",x,[(0,n._)("div",null,[(0,n.Uk)("\r\n Query Time:\r\n "),(0,n._)("span",{class:(0,l.C_)(["badge",`bg-${s.stateColor(1e3*a.item.time,15)}`])},(0,l.zw)(s.round(1e3*a.item.time))+"ms\r\n ",3),(0,n.Uk)("\r\n Memory:\r\n "),(0,n._)("span",{class:(0,l.C_)(["badge",`bg-${s.stateColor(a.item.memory/1024/1024,.05)}`])},(0,l.zw)(s.round(a.item.memory/1024/1024))+"MB\r\n ",3),(0,n.Uk)("\r\n Return Rows\r\n "),(0,n._)("span",$,(0,l.zw)(a.item.count),1)]),(0,n.Uk)(),(0,n._)("div",null,[(0,n._)("button",{class:"btn btn-primary",onClick:t[2]||(t[2]=e=>s.openBacktrace(a.item.backtrace,a.i))},[(0,n.Wm)(o,{icon:"fa fa-list"}),(0,n.Uk)("\r\n Backtrace\r\n ")])])])]),(0,n.Uk)(),a.item.explain?((0,n.wg)(),(0,n.iD)("div",q,[(0,n._)("table",S,[W,(0,n.Uk)(),(0,n._)("tbody",H,[((0,n.wg)(!0),(0,n.iD)(n.HY,null,(0,n.Ko)(a.item.explain,(e=>((0,n.wg)(),(0,n.iD)("tr",null,[(0,n._)("td",T,(0,l.zw)(e.id),1),(0,n.Uk)(),(0,n._)("td",j,(0,l.zw)(e.select_type),1),(0,n.Uk)(),(0,n._)("td",B,(0,l.zw)(e.table),1),(0,n.Uk)(),(0,n._)("td",I,(0,l.zw)(e.type),1),(0,n.Uk)(),(0,n._)("td",M,[(0,n._)("div",L,(0,l.zw)(e.possible_keys),1)]),(0,n.Uk)(),(0,n._)("td",K,(0,l.zw)(e.key),1),(0,n.Uk)(),(0,n._)("td",N,(0,l.zw)(e.key_len),1),(0,n.Uk)(),(0,n._)("td",Y,(0,l.zw)(e.ref),1),(0,n.Uk)(),(0,n._)("td",Z,(0,l.zw)(e.rows),1),(0,n.Uk)(),(0,n._)("td",E,(0,l.zw)(e.Extra),1)])))),256))])])])):(0,n.kq)("",!0)],10,p)}]]);var J=a(5956),V=a(363);const X={key:0,class:"p-4"},ee={class:"nav nav-pills",id:"profilers-tab",role:"tablist"},te={class:"nav-item",role:"presentation"},ae=["data-bs-target"],ne={class:"tab-content mt-4",id:"myTabContent"},le=["id"],se=(0,n._)("h4",null,"Queries",-1),re={class:"my-3"},ie={class:"badge bg-info"},oe={class:"mt-5"},de={class:"mb-4"},ue={class:"table table-striped table-bordered"},ce={style:{"font-family":"monospace","font-size":"13px","word-break":"break-all"}},be=["href"],me={__name:"Database",async setup(e){let t,a;const r=(0,s.iH)(null);function i(e){var t,a;return 1e3*(null===(t=r.value)||void 0===t||null===(a=t.queries[e])||void 0===a?void 0:a.reduce(((e,t)=>e+t.time),0))}function o(e){var t,a;return(null===(t=r.value)||void 0===t||null===(a=t.queries[e])||void 0===a?void 0:a.reduce(((e,t)=>e+t.memory),0))/1024/1024}const d=(0,s.iH)(!1),u=(0,s.iH)([]),c=(0,s.iH)(0);function b(e,t){u.value=e,c.value=t,d.value=!0}const m=document.__data.editor,v=document.__data.systemPath,_=(0,n.Fl)((()=>r.value.connections.map((e=>e.name))));function p(e){return Math.round(100*e)/100}return[t,a]=(0,n.mv)((()=>async function(){const e=await V.Z.get("ajax/data?path=db");r.value=e.data.data}())),await t,a(),(e,t)=>((0,n.wg)(),(0,n.j4)(J.Z,null,{title:(0,n.w5)((()=>[(0,n.Uk)("\r\n Database\r\n ")])),default:(0,n.w5)((()=>[(0,n.Uk)(),r.value?((0,n.wg)(),(0,n.iD)("div",X,[(0,n._)("ul",ee,[((0,n.wg)(!0),(0,n.iD)(n.HY,null,(0,n.Ko)(_.value,((e,t)=>((0,n.wg)(),(0,n.iD)("li",te,[(0,n._)("button",{class:(0,l.C_)(["nav-link",[0===t?"active":""]]),id:"home-tab","data-bs-toggle":"tab","data-bs-target":`#tab-${e}`,type:"button",role:"tab","aria-selected":"true"},(0,l.zw)(e),11,ae)])))),256))]),(0,n.Uk)(),(0,n._)("div",ne,[((0,n.wg)(!0),(0,n.iD)(n.HY,null,(0,n.Ko)(_.value,((e,t)=>{var a,d,u,c,m,v;return(0,n.wg)(),(0,n.iD)("div",{class:(0,l.C_)(["tab-pane fade",[0===t?"show active":""]]),id:`tab-${e}`,role:"tabpanel",tabindex:"0"},[(0,n._)("div",null,[se,(0,n.Uk)(),(0,n._)("div",re,[(0,n.Uk)("\r\n Count: "),(0,n._)("span",ie,(0,l.zw)((null===(a=r.value)||void 0===a||null===(d=a.queries[e])||void 0===d?void 0:d.length)||0),1),(0,n.Uk)("\r\n -\r\n Time:\r\n "),(0,n._)("span",{class:(0,l.C_)(["badge",`bg-${(0,s.SU)(R.G)(i(e),15*((null===(u=r.value)||void 0===u||null===(c=u.queries[e])||void 0===c?void 0:c.length)||0))}`])},(0,l.zw)(p(i(e)))+"ms\r\n ",3),(0,n.Uk)("\r\n -\r\n Memory:\r\n "),(0,n._)("span",{class:(0,l.C_)(["badge",`bg-${(0,s.SU)(R.G)(o(e),.05*((null===(m=r.value)||void 0===m||null===(v=m.queries[e])||void 0===v?void 0:v.length)||0))}`])},(0,l.zw)(p(o(e)))+"MB\r\n ",3)])]),(0,n.Uk)(),(0,n._)("div",oe,[((0,n.wg)(!0),(0,n.iD)(n.HY,null,(0,n.Ko)(r.value.queries[e],((t,a)=>{var l,s;return(0,n.wg)(),(0,n.iD)("div",de,[(0,n.Wm)(F,{item:t,i:a+1,"total-count":(null===(l=r.value)||void 0===l||null===(s=l.queries[e])||void 0===s?void 0:s.length)||0,"total-time":i(e),"total-memory":o(e),onOpenBacktrace:b},null,8,["item","i","total-count","total-time","total-memory"])])})),256))])],10,le)})),256))]),(0,n.Uk)(),(0,n.Wm)(k,{open:d.value,onHidden:t[0]||(t[0]=e=>d.value=!1),title:`Query ${c.value}: Backtrace`,size:"xl"},{default:(0,n.w5)((()=>[(0,n._)("table",ue,[(0,n._)("tbody",null,[((0,n.wg)(!0),(0,n.iD)(n.HY,null,(0,n.Ko)(u.value,(e=>{return(0,n.wg)(),(0,n.iD)("tr",ce,[(0,n._)("td",null,(0,l.zw)(e.function),1),(0,n.Uk)(),(0,n._)("td",null,[(0,n._)("a",{href:(a=e,`${m}://open?file=${a.pathname}&line=${a.line}`)},(0,l.zw)((t=e.pathname,t.replace(v,"ROOT"))),9,be)])]);var t,a})),256))])])])),_:1},8,["open","title"])])):(0,n.kq)("",!0)])),_:1}))}},ve=me},5054:(e,t,a)=>{a.d(t,{D:()=>s});var n=a(8601),l=a(363);async function s(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0;const t=await l.Z.get("ajax/last");let a="";return a=e?e+"/"+t.data.data:"/system/"+t.data.data,n.Z.push(a)}},7297:(e,t,a)=>{function n(e,t){return e>2*t?"danger":e>1.5*t?"warning":e<t/2?"success":"info"}function l(e){return e>=300&&e<400?"info":e>=400&&e<500?"warning":e>=200&&e<300?"success":"danger"}a.d(t,{G:()=>n,e:()=>l})}}]);
2
2
  //# sourceMappingURL=941.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"941-e1c0e725e13d8f3fcb6f.js","mappings":"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","sources":["webpack://src/debugger/debugger.js/./src/debugger/layouts/DefaultLayout.vue?1d82","webpack://src/debugger/debugger.js/./src/debugger/layouts/DefaultLayout.vue","webpack://src/debugger/debugger.js/./src/debugger/components/BsModal.vue","webpack://src/debugger/debugger.js/./src/debugger/components/BsModal.vue?0742","webpack://src/debugger/debugger.js/./src/debugger/components/db/QueryInfo.vue","webpack://src/debugger/debugger.js/./src/debugger/components/db/QueryInfo.vue?4e9a","webpack://src/debugger/debugger.js/./src/debugger/views/Database.vue","webpack://src/debugger/debugger.js/./src/debugger/views/Database.vue?2cb1","webpack://src/debugger/debugger.js/./src/debugger/services/nav.js","webpack://src/debugger/debugger.js/./src/debugger/services/utilities.js"],"sourcesContent":["import script from \"./DefaultLayout.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./DefaultLayout.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","<template>\r\n<div v-if=\"currentData\">\r\n <div class=\"p-3 mt-3 mx-4 rounded-3\" style=\"background-color: var(--bs-gray-800);\">\r\n <h1 class=\"text-xl font-bold text-gray-800\">\r\n <slot name=\"title\"></slot>\r\n </h1>\r\n <div class=\"text-muted\">\r\n <router-link to=\"/\" class=\"btn btn-sm btn-primary\">\r\n <fa-icon icon=\"fa-solid fa-list\"></fa-icon>\r\n </router-link>\r\n <button type=\"button\" @click=\"goToLast('/' + route.name)\" class=\"btn btn-sm btn-success\">\r\n <fa-icon icon=\"fa-solid fa-arrows-rotate\"></fa-icon>\r\n </button>\r\n /\r\n {{ currentId }}\r\n / <a target=\"_blank\" class=\"text-gray-600\" :href=\"currentData.url\">{{ currentData.url }}</a>\r\n </div>\r\n </div>\r\n\r\n <slot></slot>\r\n</div>\r\n</template>\r\n\r\n<script setup>\r\nimport { useRoute } from 'vue-router';\r\nimport { goToLast } from '../services/nav';\r\nimport { currentData, currentId } from '../services/store';\r\n\r\nconst route = useRoute();\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","<template>\r\n <teleport to=\"body\">\r\n <div ref=\"modal\" class=\"modal fade\" :id=\"idName\"\r\n v-bind=\"$attrs\"\r\n tabindex=\"-1\"\r\n role=\"dialog\"\r\n :aria-labelledby=\"idName + '-label'\"\r\n :aria-hidden=\"visible ? 'true' : 'false'\"\r\n :data-bs-backdrop=\"backdrop\"\r\n >\r\n <div class=\"modal-dialog\"\r\n role=\"document\"\r\n :class=\"size ? 'modal-' + size : null\">\r\n <div class=\"modal-content\">\r\n <template v-if=\"visible\">\r\n <template v-if=\"hasSlots('header-element')\">\r\n <slot name=\"header-element\"></slot>\r\n </template>\r\n <div v-else class=\"modal-header\">\r\n <slot name=\"header\">\r\n <div class=\"modal-title\" :id=\"idName + '-label'\">\r\n <h4>{{ title }}</h4>\r\n </div>\r\n </slot>\r\n <button type=\"button\" class=\"close btn-close\" data-bs-dismiss=\"modal\" data-dismiss=\"modal\" aria-label=\"Close\">\r\n <span aria-hidden=\"true\" class=\"visually-hidden\">&times;</span>\r\n </button>\r\n </div>\r\n </template>\r\n <div v-if=\"visible\" class=\"modal-body\">\r\n <slot></slot>\r\n </div>\r\n <div v-if=\"visible && hasSlots('footer')\" class=\"modal-footer\">\r\n <slot name=\"footer\"></slot>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </teleport>\r\n</template>\r\n\r\n<script>\r\nimport Modal from 'bootstrap/js/src/modal';\r\nimport { onMounted, reactive, ref, toRefs, watch } from 'vue';\r\n\r\nexport default {\r\n name: 'BsModal',\r\n inheritAttrs: false,\r\n props: {\r\n id: String,\r\n open: {\r\n type: Boolean,\r\n default: false\r\n },\r\n size: String,\r\n title: String,\r\n backdrop: {\r\n type: [ String, Boolean ],\r\n default: true\r\n }\r\n },\r\n emits: [\r\n 'show',\r\n 'shown',\r\n 'hide',\r\n 'hidden'\r\n ],\r\n setup(props, { emit, slots }) {\r\n const modal = ref(null);\r\n const state = reactive({\r\n idName: props.id || 'modal-' + (Math.random() + 1).toString(36).substring(7),\r\n visible: props.open,\r\n });\r\n\r\n watch(() => state.visible, (v, oldV) => {\r\n if (!oldV && v) {\r\n getModalInstance().show();\r\n }\r\n if (oldV && !v) {\r\n getModalInstance().hide();\r\n }\r\n });\r\n\r\n watch(() => props.open, (v) => {\r\n state.visible = v\r\n });\r\n\r\n watch(() => props.id, (idName) => {\r\n state.idName = idName;\r\n });\r\n\r\n onMounted(() => {\r\n modal.value.addEventListener('show.bs.modal', (e) => {\r\n emit('show', e);\r\n });\r\n\r\n modal.value.addEventListener('shown.bs.modal', (e) => {\r\n emit('shown', e);\r\n });\r\n modal.value.addEventListener('hide.bs.modal', (e) => {\r\n emit('hide', e);\r\n });\r\n\r\n modal.value.addEventListener('hidden.bs.modal', (e) => {\r\n emit('hidden', e);\r\n });\r\n });\r\n\r\n function getModalInstance() {\r\n return Modal.getOrCreateInstance(modal.value);\r\n }\r\n\r\n function hasSlots(name) {\r\n return slots[name] !== undefined;\r\n }\r\n\r\n return {\r\n ...toRefs(state),\r\n modal,\r\n hasSlots\r\n };\r\n }\r\n};\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","import { render } from \"./BsModal.vue?vue&type=template&id=9716cc94\"\nimport script from \"./BsModal.vue?vue&type=script&lang=js\"\nexport * from \"./BsModal.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Applications/XAMPP/xamppfiles/htdocs/earth/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\r\n <div :id=\"`query-${i}`\" class=\"card rounded-3 border border-1\"\r\n :class=\"`border-${stateColor(item.time * 1000, 15)}`\">\r\n <div class=\"card-header d-flex justify-content-between\">\r\n <h4 class=\"m-0\">\r\n Query: {{ i }}\r\n </h4>\r\n\r\n <div class=\"d-flex align-items-center justify-content-between\">\r\n <div class=\"text-muted\">\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-outline-primary btn-sm\"\r\n @click=\"copy\"\r\n >\r\n <fa-icon icon=\"fa fa-clipboard\" />\r\n <span class=\"\">Copy</span>\r\n </button>\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-primary btn-sm\"\r\n >\r\n <fa-icon icon=\"fa fa-link\" />\r\n </button>\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-success btn-sm\"\r\n @click=\"goToLast('/db')\"\r\n >\r\n <fa-icon icon=\"fa fa-rotate-right\" />\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n\r\n <div class=\"\">\r\n <pre style=\"word-break: break-all; white-space: pre-wrap;\"\r\n class=\"border p-4\"\r\n v-html=\"formatQuery(item.debug_query)\"\r\n ></pre>\r\n </div>\r\n <div class=\"py-4 d-flex justify-content-between\">\r\n <div>\r\n Query Time:\r\n <span class=\"badge\" :class=\"`bg-${stateColor(item.time * 1000, 15)}`\">\r\n {{ round(item.time * 1000) }}ms\r\n </span>\r\n Memory:\r\n <span class=\"badge\" :class=\"`bg-${stateColor(item.memory / 1024 / 1024, 0.05)}`\">\r\n {{ round(item.memory / 1024 / 1024) }}MB\r\n </span>\r\n Return Rows\r\n <span class=\"badge bg-info rounded-pill\">\r\n {{ item.count }}\r\n </span>\r\n </div>\r\n\r\n <div>\r\n <button class=\"btn btn-primary\" @click=\"openBacktrace(item.backtrace, i)\">\r\n <fa-icon icon=\"fa fa-list\" />\r\n Backtrace\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div v-if=\"item.explain\">\r\n <table class=\"table\">\r\n <thead>\r\n <tr>\r\n <th class=\"\">\r\n ID\r\n </th>\r\n <th class=\"\">\r\n Select Type\r\n </th>\r\n <th class=\"\">\r\n Table\r\n </th>\r\n <th class=\"\">\r\n Type\r\n </th>\r\n <th class=\"\">\r\n Possible Keys\r\n </th>\r\n <th class=\"\">\r\n Key\r\n </th>\r\n <th class=\"\">\r\n Key Length\r\n </th>\r\n <th class=\"\">\r\n Reference\r\n </th>\r\n <th class=\"\">\r\n Rows\r\n </th>\r\n <th class=\"\">\r\n Extra\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody class=\"bg-white\">\r\n <tr v-for=\"explain of item.explain\">\r\n <td class=\"\">\r\n {{ explain.id }}\r\n </td>\r\n <td class=\"\">\r\n {{ explain.select_type }}\r\n </td>\r\n <td class=\"\">\r\n {{ explain.table }}\r\n </td>\r\n <td class=\"\">\r\n {{ explain.type }}\r\n </td>\r\n <td class=\"text-wrap\">\r\n <div style=\"word-break: break-all\">\r\n {{ explain.possible_keys }}\r\n </div>\r\n </td>\r\n <td class=\"\">\r\n {{ explain.key }}\r\n </td>\r\n <td class=\"\">\r\n {{ explain.key_len }}\r\n </td>\r\n <td class=\"\">\r\n {{ explain.ref }}\r\n </td>\r\n <td class=\"\">\r\n {{ explain.rows }}\r\n </td>\r\n <td class=\"\">\r\n {{ explain.Extra }}\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { format } from 'sql-formatter';\r\nimport { stateColor } from '../../services/utilities';\r\nimport { goToLast } from '../../services/nav';\r\n\r\nexport default {\r\n name: 'query-info',\r\n props: {\r\n i: Number,\r\n item: Object,\r\n totalCount: Number,\r\n totalTime: Number,\r\n totalMemory: Number,\r\n },\r\n setup(props, { emit }) {\r\n function copy() {\r\n navigator.clipboard.writeText(props.item.debug_query);\r\n }\r\n\r\n function openBacktrace(backtrace) {\r\n emit('open-backtrace', backtrace, props.i);\r\n }\r\n\r\n return {\r\n formatQuery,\r\n round,\r\n goToLast,\r\n copy,\r\n stateColor,\r\n openBacktrace\r\n };\r\n }\r\n};\r\n\r\nfunction formatQuery(query) {\r\n try {\r\n return format(query, {\r\n keywordCase: 'upper',\r\n \r\n }).replace(/\\n/, '<br>');\r\n } catch (e) {\r\n console.error(e);\r\n return query;\r\n }\r\n}\r\n\r\nfunction round(num) {\r\n return Math.round(num * 100) / 100;\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","import { render } from \"./QueryInfo.vue?vue&type=template&id=acd6fd16\"\nimport script from \"./QueryInfo.vue?vue&type=script&lang=js\"\nexport * from \"./QueryInfo.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Applications/XAMPP/xamppfiles/htdocs/earth/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\r\n <defaultLayout>\r\n <template #title>\r\n Database\r\n </template>\r\n\r\n <div v-if=\"data\" class=\"p-4\">\r\n <!-- DB info -->\r\n\r\n <ul class=\"nav nav-pills\" id=\"profilers-tab\" role=\"tablist\">\r\n <li class=\"nav-item\" role=\"presentation\"\r\n v-for=\"(instance, i) of instances\">\r\n <button class=\"nav-link active\" id=\"home-tab\" data-bs-toggle=\"tab\"\r\n :data-bs-target=\"`tab-${instance}`\"\r\n type=\"button\"\r\n role=\"tab\"\r\n aria-selected=\"true\">\r\n {{ instance }}\r\n </button>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"tab-content mt-4\" id=\"myTabContent\">\r\n <div class=\"tab-pane fade \"\r\n v-for=\"(instance, i) of instances\"\r\n :class=\"[ i === 0 ? 'show active' : '' ]\"\r\n :id=\"`tab-${instance}`\"\r\n role=\"tabpanel\"\r\n tabindex=\"0\">\r\n\r\n <div>\r\n <h4>Queries</h4>\r\n\r\n <div class=\"my-3\">\r\n Count: <span class=\"badge bg-info\">{{ data?.queries[instance]?.length || 0 }}</span>\r\n -\r\n Time:\r\n <span class=\"badge\"\r\n :class=\"`bg-${stateColor(totalTime(instance), 15 * (data?.queries[instance]?.length || 0))}`\">\r\n {{ round(totalTime(instance)) }}ms\r\n </span>\r\n -\r\n Memory:\r\n <span class=\"badge\"\r\n :class=\"`bg-${stateColor(totalMemory(instance), 0.05 * (data?.queries[instance]?.length || 0))}`\">\r\n {{ round(totalMemory(instance)) }}MB\r\n </span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-5\">\r\n <div class=\"mb-4\" v-for=\"(query, i) of data.queries[instance]\">\r\n <QueryInfo :item=\"query\" :i=\"i + 1\"\r\n :total-count=\"data?.queries[instance]?.length || 0\"\r\n :total-time=\"totalTime(instance)\"\r\n :total-memory=\"totalMemory(instance)\"\r\n @open-backtrace=\"openBacktrace\"\r\n />\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <BsModal :open=\"showBacktraceModal\" @hidden=\"showBacktraceModal = false\"\r\n :title=\"`Query ${backtraceIndex}: Backtrace`\" size=\"xl\">\r\n <table class=\"table table-striped table-bordered\">\r\n <tbody>\r\n <tr v-for=\"traceItem of backtrace\" style=\"font-family: monospace; font-size: 13px; word-break: break-all;\">\r\n <td>\r\n {{ traceItem.function }}\r\n </td>\r\n <td>\r\n <a :href=\"getEditorLink(traceItem)\">\r\n {{ replaceRoot(traceItem.pathname) }}\r\n </a>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </BsModal>\r\n </div>\r\n </defaultLayout>\r\n</template>\r\n\r\n<script setup>\r\nimport { computed, ref } from 'vue';\r\nimport BsModal from '../components/BsModal.vue';\r\nimport QueryInfo from '../components/db/QueryInfo.vue';\r\nimport DefaultLayout from '../layouts/DefaultLayout.vue';\r\nimport $http from '../services/http.js';\r\nimport { stateColor } from '../services/utilities.js';\r\n\r\nconst data = ref(null);\r\n\r\nasync function updateData() {\r\n const res = await $http.get('ajax/data?path=db');\r\n data.value = res.data.data;\r\n}\r\n\r\nfunction totalTime(instance) {\r\n return data.value?.queries[instance]?.reduce((sum, query) => {\r\n return sum + query.time;\r\n }, 0) * 1000;\r\n}\r\n\r\nfunction totalMemory(instance) {\r\n return data.value?.queries[instance]?.reduce((sum, query) => {\r\n return sum + query.memory;\r\n }, 0) / 1024 / 1024;\r\n}\r\n\r\nconst showBacktraceModal = ref(false);\r\nconst backtrace = ref([]);\r\nconst backtraceIndex = ref(0);\r\n\r\nfunction openBacktrace(trace, i) {\r\n backtrace.value = trace;\r\n backtraceIndex.value = i;\r\n showBacktraceModal.value = true;\r\n}\r\n\r\nconst editor = document.__data.editor;\r\nconst sysPath = document.__data.systemPath;\r\n\r\nfunction getEditorLink(trace) {\r\n return `${editor}://open?file=${trace.pathname}&line=${trace.line}`;\r\n}\r\n\r\nfunction replaceRoot(path) {\r\n return path.replace(sysPath, 'ROOT');\r\n}\r\n\r\nconst instances = computed(() => data.value.connections.map((conn) => conn.name));\r\n\r\nfunction round(num) {\r\n return Math.round(num * 100) / 100;\r\n}\r\n\r\nawait updateData();\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","import script from \"./Database.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./Database.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\r\n\r\nimport router from '../routes.js';\r\nimport $http from './http.js';\r\n\r\nexport async function goToLast(currentRoute = undefined) {\r\n const res = await $http.get('ajax/last');\r\n let route = '';\r\n\r\n if (currentRoute) {\r\n route = currentRoute + '/' + res.data.data;\r\n } else {\r\n route = '/system/' + res.data.data;\r\n }\r\n\r\n return router.push(route);\r\n}\r\n","\r\n\r\nexport function stateColor(value, avg) {\r\n if (value > (avg * 2)) {\r\n return 'danger';\r\n } else if (value > (avg * 1.5)) {\r\n return 'warning';\r\n } else if (value < (avg / 2)) {\r\n return 'success';\r\n } else {\r\n return 'info';\r\n }\r\n}\r\n\r\nexport function httpStatusColor(status) {\r\n if (status >= 300 && status < 400) {\r\n return 'info';\r\n }\r\n\r\n if (status >= 400 && status < 500) {\r\n return 'warning';\r\n }\r\n\r\n if (status >= 200 && status < 300) {\r\n return 'success';\r\n }\r\n\r\n return 'danger';\r\n}\r\n"],"names":["route","useRoute","class","_createElementVNode","type","name","inheritAttrs","props","id","String","open","Boolean","default","size","title","backdrop","emits","setup","_ref","emit","slots","modal","ref","state","reactive","idName","Math","random","toString","substring","visible","getModalInstance","Modal","getOrCreateInstance","value","watch","v","oldV","show","hide","onMounted","addEventListener","e","toRefs","hasSlots","undefined","_createBlock","_Teleport","to","_mergeProps","_ctx","$attrs","tabindex","role","$props","_normalizeClass","_hoisted_2","_createElementBlock","_Fragment","key","$setup","_renderSlot","$slots","_hoisted_3","_toDisplayString","_hoisted_5","_hoisted_6","_hoisted_7","style","i","Number","item","Object","totalCount","totalTime","totalMemory","formatQuery","round","goToLast","copy","navigator","clipboard","writeText","debug_query","stateColor","openBacktrace","backtrace","query","format","keywordCase","replace","console","error","num","time","_hoisted_4","onClick","_cache","arguments","_createVNode","_component_fa_icon","icon","$event","_hoisted_8","_hoisted_9","innerHTML","_hoisted_11","memory","_hoisted_12","count","explain","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_renderList","_hoisted_17","_hoisted_18","select_type","_hoisted_19","table","_hoisted_20","_hoisted_21","_hoisted_22","possible_keys","_hoisted_23","_hoisted_24","key_len","_hoisted_25","_hoisted_26","rows","_hoisted_27","Extra","data","instance","_data$value","_data$value$queries$i","queries","reduce","sum","_data$value2","_data$value2$queries$","showBacktraceModal","backtraceIndex","trace","editor","document","__data","sysPath","systemPath","instances","computed","connections","map","conn","__temp","__restore","_withAsyncContext","async","res","$http","get","updateData","pathname","line","path","currentRoute","length","router","push","avg","httpStatusColor","status"],"sourceRoot":""}
1
+ {"version":3,"file":"941-c22b0704c67ca5058678.js","mappings":"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","sources":["webpack://src/debugger/debugger.js/./src/debugger/layouts/DefaultLayout.vue?1d82","webpack://src/debugger/debugger.js/./src/debugger/layouts/DefaultLayout.vue","webpack://src/debugger/debugger.js/./src/debugger/components/BsModal.vue","webpack://src/debugger/debugger.js/./src/debugger/components/BsModal.vue?0742","webpack://src/debugger/debugger.js/./src/debugger/components/db/QueryInfo.vue","webpack://src/debugger/debugger.js/./src/debugger/components/db/QueryInfo.vue?4e9a","webpack://src/debugger/debugger.js/./src/debugger/views/Database.vue","webpack://src/debugger/debugger.js/./src/debugger/views/Database.vue?2cb1","webpack://src/debugger/debugger.js/./src/debugger/services/nav.js","webpack://src/debugger/debugger.js/./src/debugger/services/utilities.js"],"sourcesContent":["import script from \"./DefaultLayout.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./DefaultLayout.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","<template>\r\n<div v-if=\"currentData\">\r\n <div class=\"p-3 mt-3 mx-4 rounded-3\" style=\"background-color: var(--bs-gray-800);\">\r\n <h1 class=\"text-xl font-bold text-gray-800\">\r\n <slot name=\"title\"></slot>\r\n </h1>\r\n <div class=\"text-muted\">\r\n <router-link to=\"/\" class=\"btn btn-sm btn-primary\">\r\n <fa-icon icon=\"fa-solid fa-list\"></fa-icon>\r\n </router-link>\r\n <button type=\"button\" @click=\"goToLast('/' + route.name)\" class=\"btn btn-sm btn-success\">\r\n <fa-icon icon=\"fa-solid fa-arrows-rotate\"></fa-icon>\r\n </button>\r\n /\r\n {{ currentId }}\r\n / <a target=\"_blank\" class=\"text-gray-600\" :href=\"currentData.url\">{{ currentData.url }}</a>\r\n </div>\r\n </div>\r\n\r\n <slot></slot>\r\n</div>\r\n</template>\r\n\r\n<script setup>\r\nimport { useRoute } from 'vue-router';\r\nimport { goToLast } from '../services/nav';\r\nimport { currentData, currentId } from '../services/store';\r\n\r\nconst route = useRoute();\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","<template>\r\n <teleport to=\"body\">\r\n <div ref=\"modal\" class=\"modal fade\" :id=\"idName\"\r\n v-bind=\"$attrs\"\r\n tabindex=\"-1\"\r\n role=\"dialog\"\r\n :aria-labelledby=\"idName + '-label'\"\r\n :aria-hidden=\"visible ? 'true' : 'false'\"\r\n :data-bs-backdrop=\"backdrop\"\r\n >\r\n <div class=\"modal-dialog\"\r\n role=\"document\"\r\n :class=\"size ? 'modal-' + size : null\">\r\n <div class=\"modal-content\">\r\n <template v-if=\"visible\">\r\n <template v-if=\"hasSlots('header-element')\">\r\n <slot name=\"header-element\"></slot>\r\n </template>\r\n <div v-else class=\"modal-header\">\r\n <slot name=\"header\">\r\n <div class=\"modal-title\" :id=\"idName + '-label'\">\r\n <h4>{{ title }}</h4>\r\n </div>\r\n </slot>\r\n <button type=\"button\" class=\"close btn-close\" data-bs-dismiss=\"modal\" data-dismiss=\"modal\" aria-label=\"Close\">\r\n <span aria-hidden=\"true\" class=\"visually-hidden\">&times;</span>\r\n </button>\r\n </div>\r\n </template>\r\n <div v-if=\"visible\" class=\"modal-body\">\r\n <slot></slot>\r\n </div>\r\n <div v-if=\"visible && hasSlots('footer')\" class=\"modal-footer\">\r\n <slot name=\"footer\"></slot>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </teleport>\r\n</template>\r\n\r\n<script>\r\nimport Modal from 'bootstrap/js/src/modal';\r\nimport { onMounted, reactive, ref, toRefs, watch } from 'vue';\r\n\r\nexport default {\r\n name: 'BsModal',\r\n inheritAttrs: false,\r\n props: {\r\n id: String,\r\n open: {\r\n type: Boolean,\r\n default: false\r\n },\r\n size: String,\r\n title: String,\r\n backdrop: {\r\n type: [ String, Boolean ],\r\n default: true\r\n }\r\n },\r\n emits: [\r\n 'show',\r\n 'shown',\r\n 'hide',\r\n 'hidden'\r\n ],\r\n setup(props, { emit, slots }) {\r\n const modal = ref(null);\r\n const state = reactive({\r\n idName: props.id || 'modal-' + (Math.random() + 1).toString(36).substring(7),\r\n visible: props.open,\r\n });\r\n\r\n watch(() => state.visible, (v, oldV) => {\r\n if (!oldV && v) {\r\n getModalInstance().show();\r\n }\r\n if (oldV && !v) {\r\n getModalInstance().hide();\r\n }\r\n });\r\n\r\n watch(() => props.open, (v) => {\r\n state.visible = v\r\n });\r\n\r\n watch(() => props.id, (idName) => {\r\n state.idName = idName;\r\n });\r\n\r\n onMounted(() => {\r\n modal.value.addEventListener('show.bs.modal', (e) => {\r\n emit('show', e);\r\n });\r\n\r\n modal.value.addEventListener('shown.bs.modal', (e) => {\r\n emit('shown', e);\r\n });\r\n modal.value.addEventListener('hide.bs.modal', (e) => {\r\n emit('hide', e);\r\n });\r\n\r\n modal.value.addEventListener('hidden.bs.modal', (e) => {\r\n emit('hidden', e);\r\n });\r\n });\r\n\r\n function getModalInstance() {\r\n return Modal.getOrCreateInstance(modal.value);\r\n }\r\n\r\n function hasSlots(name) {\r\n return slots[name] !== undefined;\r\n }\r\n\r\n return {\r\n ...toRefs(state),\r\n modal,\r\n hasSlots\r\n };\r\n }\r\n};\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","import { render } from \"./BsModal.vue?vue&type=template&id=9716cc94\"\nimport script from \"./BsModal.vue?vue&type=script&lang=js\"\nexport * from \"./BsModal.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Applications/XAMPP/xamppfiles/htdocs/earth/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\r\n <div :id=\"`query-${i}`\" class=\"card rounded-3 border border-1\"\r\n :class=\"`border-${stateColor(item.time * 1000, 15)}`\">\r\n <div class=\"card-header d-flex justify-content-between\">\r\n <h4 class=\"m-0\">\r\n Query: {{ i }}\r\n </h4>\r\n\r\n <div class=\"d-flex align-items-center justify-content-between\">\r\n <div class=\"text-muted\">\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-outline-primary btn-sm\"\r\n @click=\"copy\"\r\n >\r\n <fa-icon icon=\"fa fa-clipboard\" />\r\n <span class=\"\">Copy</span>\r\n </button>\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-primary btn-sm\"\r\n >\r\n <fa-icon icon=\"fa fa-link\" />\r\n </button>\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-success btn-sm\"\r\n @click=\"goToLast('/db')\"\r\n >\r\n <fa-icon icon=\"fa fa-rotate-right\" />\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n\r\n <div class=\"\">\r\n <pre style=\"word-break: break-all; white-space: pre-wrap;\"\r\n class=\"border p-4\"\r\n v-html=\"formatQuery(item.debug_query)\"\r\n ></pre>\r\n </div>\r\n <div class=\"py-4 d-flex justify-content-between\">\r\n <div>\r\n Query Time:\r\n <span class=\"badge\" :class=\"`bg-${stateColor(item.time * 1000, 15)}`\">\r\n {{ round(item.time * 1000) }}ms\r\n </span>\r\n Memory:\r\n <span class=\"badge\" :class=\"`bg-${stateColor(item.memory / 1024 / 1024, 0.05)}`\">\r\n {{ round(item.memory / 1024 / 1024) }}MB\r\n </span>\r\n Return Rows\r\n <span class=\"badge bg-info rounded-pill\">\r\n {{ item.count }}\r\n </span>\r\n </div>\r\n\r\n <div>\r\n <button class=\"btn btn-primary\" @click=\"openBacktrace(item.backtrace, i)\">\r\n <fa-icon icon=\"fa fa-list\" />\r\n Backtrace\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div v-if=\"item.explain\">\r\n <table class=\"table\">\r\n <thead>\r\n <tr>\r\n <th class=\"\">\r\n ID\r\n </th>\r\n <th class=\"\">\r\n Select Type\r\n </th>\r\n <th class=\"\">\r\n Table\r\n </th>\r\n <th class=\"\">\r\n Type\r\n </th>\r\n <th class=\"\">\r\n Possible Keys\r\n </th>\r\n <th class=\"\">\r\n Key\r\n </th>\r\n <th class=\"\">\r\n Key Length\r\n </th>\r\n <th class=\"\">\r\n Reference\r\n </th>\r\n <th class=\"\">\r\n Rows\r\n </th>\r\n <th class=\"\">\r\n Extra\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody class=\"bg-white\">\r\n <tr v-for=\"explain of item.explain\">\r\n <td class=\"\">\r\n {{ explain.id }}\r\n </td>\r\n <td class=\"\">\r\n {{ explain.select_type }}\r\n </td>\r\n <td class=\"\">\r\n {{ explain.table }}\r\n </td>\r\n <td class=\"\">\r\n {{ explain.type }}\r\n </td>\r\n <td class=\"text-wrap\">\r\n <div style=\"word-break: break-all\">\r\n {{ explain.possible_keys }}\r\n </div>\r\n </td>\r\n <td class=\"\">\r\n {{ explain.key }}\r\n </td>\r\n <td class=\"\">\r\n {{ explain.key_len }}\r\n </td>\r\n <td class=\"\">\r\n {{ explain.ref }}\r\n </td>\r\n <td class=\"\">\r\n {{ explain.rows }}\r\n </td>\r\n <td class=\"\">\r\n {{ explain.Extra }}\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { format } from 'sql-formatter';\r\nimport { stateColor } from '../../services/utilities';\r\nimport { goToLast } from '../../services/nav';\r\n\r\nexport default {\r\n name: 'query-info',\r\n props: {\r\n i: Number,\r\n item: Object,\r\n totalCount: Number,\r\n totalTime: Number,\r\n totalMemory: Number,\r\n },\r\n setup(props, { emit }) {\r\n function copy() {\r\n navigator.clipboard.writeText(props.item.debug_query);\r\n }\r\n\r\n function openBacktrace(backtrace) {\r\n emit('open-backtrace', backtrace, props.i);\r\n }\r\n\r\n return {\r\n formatQuery,\r\n round,\r\n goToLast,\r\n copy,\r\n stateColor,\r\n openBacktrace\r\n };\r\n }\r\n};\r\n\r\nfunction formatQuery(query) {\r\n try {\r\n return format(query, {\r\n keywordCase: 'upper',\r\n \r\n }).replace(/\\n/, '<br>');\r\n } catch (e) {\r\n console.error(e);\r\n return query;\r\n }\r\n}\r\n\r\nfunction round(num) {\r\n return Math.round(num * 100) / 100;\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","import { render } from \"./QueryInfo.vue?vue&type=template&id=acd6fd16\"\nimport script from \"./QueryInfo.vue?vue&type=script&lang=js\"\nexport * from \"./QueryInfo.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/Applications/XAMPP/xamppfiles/htdocs/earth/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\r\n <defaultLayout>\r\n <template #title>\r\n Database\r\n </template>\r\n\r\n <div v-if=\"data\" class=\"p-4\">\r\n <!-- DB info -->\r\n\r\n <ul class=\"nav nav-pills\" id=\"profilers-tab\" role=\"tablist\">\r\n <li class=\"nav-item\" role=\"presentation\"\r\n v-for=\"(instance, i) of instances\">\r\n <button class=\"nav-link\" id=\"home-tab\" data-bs-toggle=\"tab\"\r\n :data-bs-target=\"`#tab-${instance}`\"\r\n :class=\"[ i === 0 ? 'active' : '' ]\"\r\n type=\"button\"\r\n role=\"tab\"\r\n aria-selected=\"true\">\r\n {{ instance }}\r\n </button>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"tab-content mt-4\" id=\"myTabContent\">\r\n <div class=\"tab-pane fade \"\r\n v-for=\"(instance, i) of instances\"\r\n :class=\"[ i === 0 ? 'show active' : '' ]\"\r\n :id=\"`tab-${instance}`\"\r\n role=\"tabpanel\"\r\n tabindex=\"0\">\r\n\r\n <div>\r\n <h4>Queries</h4>\r\n\r\n <div class=\"my-3\">\r\n Count: <span class=\"badge bg-info\">{{ data?.queries[instance]?.length || 0 }}</span>\r\n -\r\n Time:\r\n <span class=\"badge\"\r\n :class=\"`bg-${stateColor(totalTime(instance), 15 * (data?.queries[instance]?.length || 0))}`\">\r\n {{ round(totalTime(instance)) }}ms\r\n </span>\r\n -\r\n Memory:\r\n <span class=\"badge\"\r\n :class=\"`bg-${stateColor(totalMemory(instance), 0.05 * (data?.queries[instance]?.length || 0))}`\">\r\n {{ round(totalMemory(instance)) }}MB\r\n </span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-5\">\r\n <div class=\"mb-4\" v-for=\"(query, i) of data.queries[instance]\">\r\n <QueryInfo :item=\"query\" :i=\"i + 1\"\r\n :total-count=\"data?.queries[instance]?.length || 0\"\r\n :total-time=\"totalTime(instance)\"\r\n :total-memory=\"totalMemory(instance)\"\r\n @open-backtrace=\"openBacktrace\"\r\n />\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <BsModal :open=\"showBacktraceModal\" @hidden=\"showBacktraceModal = false\"\r\n :title=\"`Query ${backtraceIndex}: Backtrace`\" size=\"xl\">\r\n <table class=\"table table-striped table-bordered\">\r\n <tbody>\r\n <tr v-for=\"traceItem of backtrace\" style=\"font-family: monospace; font-size: 13px; word-break: break-all;\">\r\n <td>\r\n {{ traceItem.function }}\r\n </td>\r\n <td>\r\n <a :href=\"getEditorLink(traceItem)\">\r\n {{ replaceRoot(traceItem.pathname) }}\r\n </a>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </BsModal>\r\n </div>\r\n </defaultLayout>\r\n</template>\r\n\r\n<script setup>\r\nimport { computed, ref } from 'vue';\r\nimport BsModal from '../components/BsModal.vue';\r\nimport QueryInfo from '../components/db/QueryInfo.vue';\r\nimport DefaultLayout from '../layouts/DefaultLayout.vue';\r\nimport $http from '../services/http.js';\r\nimport { stateColor } from '../services/utilities.js';\r\n\r\nconst data = ref(null);\r\n\r\nasync function updateData() {\r\n const res = await $http.get('ajax/data?path=db');\r\n data.value = res.data.data;\r\n}\r\n\r\nfunction totalTime(instance) {\r\n return data.value?.queries[instance]?.reduce((sum, query) => {\r\n return sum + query.time;\r\n }, 0) * 1000;\r\n}\r\n\r\nfunction totalMemory(instance) {\r\n return data.value?.queries[instance]?.reduce((sum, query) => {\r\n return sum + query.memory;\r\n }, 0) / 1024 / 1024;\r\n}\r\n\r\nconst showBacktraceModal = ref(false);\r\nconst backtrace = ref([]);\r\nconst backtraceIndex = ref(0);\r\n\r\nfunction openBacktrace(trace, i) {\r\n backtrace.value = trace;\r\n backtraceIndex.value = i;\r\n showBacktraceModal.value = true;\r\n}\r\n\r\nconst editor = document.__data.editor;\r\nconst sysPath = document.__data.systemPath;\r\n\r\nfunction getEditorLink(trace) {\r\n return `${editor}://open?file=${trace.pathname}&line=${trace.line}`;\r\n}\r\n\r\nfunction replaceRoot(path) {\r\n return path.replace(sysPath, 'ROOT');\r\n}\r\n\r\nconst instances = computed(() => data.value.connections.map((conn) => conn.name));\r\n\r\nfunction round(num) {\r\n return Math.round(num * 100) / 100;\r\n}\r\n\r\nawait updateData();\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n","import script from \"./Database.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./Database.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\r\n\r\nimport router from '../routes.js';\r\nimport $http from './http.js';\r\n\r\nexport async function goToLast(currentRoute = undefined) {\r\n const res = await $http.get('ajax/last');\r\n let route = '';\r\n\r\n if (currentRoute) {\r\n route = currentRoute + '/' + res.data.data;\r\n } else {\r\n route = '/system/' + res.data.data;\r\n }\r\n\r\n return router.push(route);\r\n}\r\n","\r\n\r\nexport function stateColor(value, avg) {\r\n if (value > (avg * 2)) {\r\n return 'danger';\r\n } else if (value > (avg * 1.5)) {\r\n return 'warning';\r\n } else if (value < (avg / 2)) {\r\n return 'success';\r\n } else {\r\n return 'info';\r\n }\r\n}\r\n\r\nexport function httpStatusColor(status) {\r\n if (status >= 300 && status < 400) {\r\n return 'info';\r\n }\r\n\r\n if (status >= 400 && status < 500) {\r\n return 'warning';\r\n }\r\n\r\n if (status >= 200 && status < 300) {\r\n return 'success';\r\n }\r\n\r\n return 'danger';\r\n}\r\n"],"names":["route","useRoute","class","_createElementVNode","type","name","inheritAttrs","props","id","String","open","Boolean","default","size","title","backdrop","emits","setup","_ref","emit","slots","modal","ref","state","reactive","idName","Math","random","toString","substring","visible","getModalInstance","Modal","getOrCreateInstance","value","watch","v","oldV","show","hide","onMounted","addEventListener","e","toRefs","hasSlots","undefined","_createBlock","_Teleport","to","_mergeProps","_ctx","$attrs","tabindex","role","$props","_normalizeClass","_hoisted_2","_createElementBlock","_Fragment","key","$setup","_renderSlot","$slots","_hoisted_3","_toDisplayString","_hoisted_5","_hoisted_6","_hoisted_7","style","i","Number","item","Object","totalCount","totalTime","totalMemory","formatQuery","round","goToLast","copy","navigator","clipboard","writeText","debug_query","stateColor","openBacktrace","backtrace","query","format","keywordCase","replace","console","error","num","time","_hoisted_4","onClick","_cache","arguments","_createVNode","_component_fa_icon","icon","$event","_hoisted_8","_hoisted_9","innerHTML","_hoisted_11","memory","_hoisted_12","count","explain","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_renderList","_hoisted_17","_hoisted_18","select_type","_hoisted_19","table","_hoisted_20","_hoisted_21","_hoisted_22","possible_keys","_hoisted_23","_hoisted_24","key_len","_hoisted_25","_hoisted_26","rows","_hoisted_27","Extra","data","instance","_data$value","_data$value$queries$i","queries","reduce","sum","_data$value2","_data$value2$queries$","showBacktraceModal","backtraceIndex","trace","editor","document","__data","sysPath","systemPath","instances","computed","connections","map","conn","__temp","__restore","_withAsyncContext","async","res","$http","get","updateData","pathname","line","path","currentRoute","length","router","push","avg","httpStatusColor","status"],"sourceRoot":""}