UNPKG

mongoku

Version:

[![CI](https://github.com/huggingface/Mongoku/actions/workflows/ci.yml/badge.svg)](https://github.com/huggingface/Mongoku/actions/workflows/ci.yml)

2 lines (1 loc) 23.8 kB
import{f as v,a as i,c as kt,t as Tt}from"../chunks/DaMh_eeB.js";import{p as Jt,a8 as se,s as d,c as a,r as t,a as Kt,g as e,u as O,t as j,b as x,a1 as Ae,d as l,f as ae,L as At,n as Ne,aA as Bt,bb as Oa}from"../chunks/IwGwbOe7.js";import{d as Vt,s as P,a as Y}from"../chunks/BDGd1aqF.js";import{a as Ma}from"../chunks/DFXj4NOH.js";import{p as lt,i as k}from"../chunks/CCOVnadf.js";import{e as it,n as F,s as Rt,i as $t}from"../chunks/DqxUmOYD.js";import{a as qt}from"../chunks/CKvueigk.js";import{a as ge,s as ve}from"../chunks/CmI1igJD.js";import{s as Ia}from"../chunks/8tf5Lvl3.js";import{a as Re,b as ot}from"../chunks/ChWGK2Ce.js";import{h as Ea,j as Ca,k as Fa,l as Da,m as La,P as Be,n as Ua,o as Ta}from"../chunks/YMZQSnF3.js";import{r as Aa,f as Ba,h as Ra}from"../chunks/v8XDA7ui.js";import{p as je}from"../chunks/CTk2PBcX.js";import{j as Wt,J as $a}from"../chunks/DCAtHodH.js";import{M as zt}from"../chunks/Z7BFksgg.js";import{f as qa}from"../chunks/BN_N9-2s.js";const Wa=async n=>({...n.data,categories:[{key:"documents",label:"Documents"},{key:"indexes",label:"Indexes"},{key:"mappings",label:"Mappings"},{key:"schema",label:"Schema"}]}),sr=Object.freeze(Object.defineProperty({__proto__:null,load:Wa},Symbol.toStringTag,{value:"Module"}));function za(n,o){if(n.length<o.length&&o.endsWith(n))return n;if(o.length<n.length&&n.endsWith(o))return o;let c="",s=n.length-1,g=o.length-1;for(;s>=0&&g>=0&&n[s]===o[g];)c=n.slice(s),s--,g--;return c}function Ha(n,o){if(!n||o.length===0)return null;let c=null,s=0;for(const g of o){const C=za(n,g);C.length>s?(s=C.length,c=g):C.length===s&&(c=null)}return c}var Ja=v('<div class="loading-message svelte-14baj27">Loading nodes...</div>'),Ka=v('<div class="no-nodes-message svelte-14baj27">No nodes found. Click "Fetch Usage" to load nodes.</div>'),Va=v('<span class="primary-badge svelte-14baj27">PRIMARY</span>'),Ya=v('<label class="checkbox-label svelte-14baj27"><input type="checkbox" class="svelte-14baj27"/> <span class="node-name svelte-14baj27"> <!></span></label>'),Ga=v('<div class="selector-options svelte-14baj27"></div>'),Qa=v('<div class="replica-set-selector svelte-14baj27"><div class="selector-header svelte-14baj27"><span class="selector-title svelte-14baj27">Replica Set Nodes</span> <span class="selector-subtitle svelte-14baj27">Select specific nodes to fetch index stats from</span></div> <!></div>');function Xa(n,o){Jt(o,!0);let c=lt(o,"availableNodes",27,()=>se([])),s=lt(o,"selectedNodes",31,()=>se([])),g=lt(o,"loading",3,!1),C=lt(o,"primaryNode",3,null),$=O(()=>Object.fromEntries(c().map(M=>[M,s().includes(M)])));const Pe=O(()=>!C()||c().length===0?null:Ha(C(),c()));function re(){s(Object.keys(e($)).filter(M=>e($)[M]))}var D=Qa(),A=d(a(D),2);{var he=M=>{var J=Ja();i(M,J)},$e=M=>{var J=Ka();i(M,J)},G=M=>{var J=Ga();it(J,20,c,le=>le,(le,q)=>{var K=Ya(),oe=a(K);ge(oe);var fe=d(oe,2),Oe=a(fe),dt=d(Oe);{var qe=B=>{var ct=Va();i(B,ct)};k(dt,B=>{q===e(Pe)&&B(qe)})}t(fe),t(K),j(()=>{ve(fe,"title",q),P(Oe,`${q??""} `)}),Y("change",oe,re),Re(oe,()=>e($)[q],B=>e($)[q]=B),i(le,K)}),t(J),i(M,J)};k(A,M=>{g()?M(he):c().length===0?M($e,1):M(G,-1)})}t(D),i(n,D),Kt()}Vt(["change"]);function nt(n,o=3){if(n===0)return"0";const c=Math.abs(n),s=n<0?"-":"";if(c>=1e9){const g=c/1e9;return`${s}${g.toPrecision(o)}B`}else if(c>=1e6){const g=c/1e6;return`${s}${g.toPrecision(o)}M`}else if(c>=1e3){const g=c/1e3;return`${s}${g.toPrecision(o)}k`}else return`${s}${c.toPrecision(Math.min(o,Math.ceil(Math.log10(c+1))))}`}function Za(n){if(!n)return"";const c=new Date().getTime()-n.getTime(),s=Math.floor(c/1e3),g=Math.floor(s/60),C=Math.floor(g/60);return C>0?`${C}h ${g%60}m ago`:g>0?`${g}m ${s%60}s ago`:`${s}s ago`}function Yt(n){if(n.length===0||n.length===1)return"";let o=n[0];for(let c=1;c<n.length;c++)for(;n[c].indexOf(o)!==0;)if(o=o.substring(0,o.length-1),o==="")return"";return o}function es(n){if(n.length===0||n.length===1)return"";const o=n.map(s=>s.split("").reverse().join(""));return Yt(o).split("").reverse().join("")}function ts(n,o,c){if(!o&&!c)return n;let s=n;if(o&&s.startsWith(o)&&(s=s.slice(o.length)),c&&s.endsWith(c)&&(s=s.slice(0,-c.length)),s.length===0)return n;const g=o.length>0,C=c.length>0;return g&&C?`…${s}…`:g?`…${s}`:C?`${s}…`:s}function as(n){if(n.length<=1)return Object.fromEntries(n.map(s=>[s,s]));const o=Yt(n),c=es(n);return Object.fromEntries(n.map(s=>[s,ts(s,o,c)]))}function ss(n,o){return Object.fromEntries(Object.entries(n).filter(([c])=>!o.includes(c)))}function Ht(n){let o=0;for(const c of n)o+=c;return o}var rs=v('<div class="p-4 svelte-l3ef1w"><p class="error svelte-l3ef1w"> </p></div>'),ls=v('<button class="btn btn-success btn-sm flex items-center svelte-l3ef1w" type="button"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-4 h-4 inline mr-1 svelte-l3ef1w"><path d="M12 5v14M5 12h14" class="svelte-l3ef1w"></path></svg> Create Index</button>'),os=v('<div class="text-center p-4 svelte-l3ef1w" style="color: var(--text-darker)">No indexes found</div>'),ns=v('<label class="flex items-center gap-2 cursor-pointer svelte-l3ef1w"><input type="checkbox" class="cursor-pointer svelte-l3ef1w"/> <span class="text-sm svelte-l3ef1w" style="color: var(--text);">Aggregate usage</span></label>'),is=v('<div class="mb-4 svelte-l3ef1w"><!> <div class="mt-3 flex gap-3 items-center flex-wrap svelte-l3ef1w"><button><!></button> <!></div></div>'),ds=v('<th style="width: 150px" class="svelte-l3ef1w">Actions</th>'),cs=v('<span class="index-key svelte-l3ef1w"> </span>'),vs=v('<div class="flex flex-wrap gap-2 svelte-l3ef1w"></div>'),fs=v('<span style="color: var(--text-darker)" class="svelte-l3ef1w">-</span>'),us=v('<span class="badge badge-building svelte-l3ef1w">building</span>'),ps=v('<span class="badge badge-hidden svelte-l3ef1w">hidden</span>'),bs=v('<span class="badge badge-unique svelte-l3ef1w">unique</span>'),ms=v('<span class="badge badge-sparse svelte-l3ef1w">sparse</span>'),gs=v('<span class="badge badge-partial svelte-l3ef1w">partial</span>'),hs=v('<span style="color: var(--text-darker)" class="svelte-l3ef1w">-</span>'),_s=v('<span class="text-sm whitespace-nowrap svelte-l3ef1w"> </span>'),ws=v('<span style="color: var(--text-darker)" class="svelte-l3ef1w">-</span>'),xs=v('<span class="increment-badge svelte-l3ef1w"> </span>'),ys=v('<div class="svelte-l3ef1w"> <!> <span class="text-xs svelte-l3ef1w" style="color: var(--text-darker)"> </span></div>'),ks=v('<span class="increment-badge svelte-l3ef1w"> </span>'),Ss=v('<div class="separate-stat svelte-l3ef1w"><span class="stat-host svelte-l3ef1w"> </span> <span class="stat-value svelte-l3ef1w"> <!></span></div>'),Ns=v('<div class="svelte-l3ef1w"> </div>'),js=v('<div class="text-sm mt-1 svelte-l3ef1w"><!></div>'),Ps=v('<span style="color: var(--text-darker)" class="svelte-l3ef1w">-</span>'),Os=v('<div class="flex gap-2 hidden group-hover:flex -my-2 svelte-l3ef1w"><button class="btn btn-outline-light btn-sm svelte-l3ef1w"> </button> <button class="btn btn-outline-danger btn-sm svelte-l3ef1w">Drop</button></div>'),Ms=v('<td class="svelte-l3ef1w"><!></td>'),Is=v('<tr><td class="name-cell svelte-l3ef1w"><span class="font-mono text-sm index-name svelte-l3ef1w"> </span></td><td class="svelte-l3ef1w"><!></td><td class="svelte-l3ef1w"><div class="flex flex-wrap gap-2 svelte-l3ef1w"><!> <!> <!> <!> <!> <!></div></td><td class="svelte-l3ef1w"><!></td><td class="svelte-l3ef1w"><!></td><td class="svelte-l3ef1w"><details class="cursor-pointer svelte-l3ef1w"><summary class="details-link svelte-l3ef1w">View full</summary> <div class="details-content svelte-l3ef1w"><!></div></details></td><!></tr>'),Es=v('<div class="table-wrapper svelte-l3ef1w"><table class="table svelte-l3ef1w"><thead class="svelte-l3ef1w"><tr class="svelte-l3ef1w"><th class="name-column svelte-l3ef1w">Name</th><th class="svelte-l3ef1w">Keys</th><th class="svelte-l3ef1w">Properties</th><th class="shrink-column svelte-l3ef1w">Size</th><th class="shrink-column svelte-l3ef1w">Usage</th><th style="min-width: 300px" class="svelte-l3ef1w">Details</th><!></tr></thead><tbody class="svelte-l3ef1w"></tbody></table></div>'),Cs=v("<!> <!>",1),Fs=v('<div class="mb-4 flex gap-3 svelte-l3ef1w"><!> <button class="btn btn-primary btn-sm svelte-l3ef1w"> </button></div> <!>',1),Ds=v('<div class="p-4 svelte-l3ef1w"><p class="error svelte-l3ef1w"> </p></div>'),Ls=v('<div class="loading svelte-l3ef1w">Loading indexes...</div>'),Us=v('<button class="btn btn-default btn-sm svelte-l3ef1w">Cancel</button> <button class="btn btn-danger btn-sm svelte-l3ef1w">Drop Index</button>',1),Ts=v('<p class="svelte-l3ef1w">Are you sure you want to drop the index <strong class="svelte-l3ef1w"> </strong>?</p> <p class="text-sm mt-2 svelte-l3ef1w" style="color: var(--text-darker)">This action cannot be undone. The index will need to be recreated if needed again.</p>',1),As=v('<button class="btn btn-default btn-sm svelte-l3ef1w">Cancel</button> <button class="btn btn-success btn-sm svelte-l3ef1w"> </button>',1),Bs=v('<div class="space-y-4 svelte-l3ef1w"><div class="svelte-l3ef1w"><label for="index-keys" class="block text-sm font-semibold mb-2 svelte-l3ef1w" style="color: var(--text);">Index Keys (JSON) <span style="color: var(--error);" class="svelte-l3ef1w">*</span></label> <p class="text-xs mb-2 svelte-l3ef1w" style="color: var(--text-darker);">Define the fields to index. Use 1 for ascending, -1 for descending. Example: <code class="svelte-l3ef1w"></code></p> <textarea id="index-keys" rows="3" class="w-full p-3 rounded border border-[var(--border-color)] bg-[var(--color-1)] font-mono text-sm focus:outline-none focus:ring-2 svelte-l3ef1w" style="color: var(--text); --tw-ring-color: var(--link);"></textarea></div> <div class="svelte-l3ef1w"><label for="index-name" class="block text-sm font-semibold mb-2 svelte-l3ef1w" style="color: var(--text);">Index Name (Optional)</label> <p class="text-xs mb-2 svelte-l3ef1w" style="color: var(--text-darker);">Leave empty to auto-generate based on fields</p> <input id="index-name" type="text" placeholder="e.g., user_email_idx" class="w-full p-2 rounded border border-[var(--border-color)] bg-[var(--color-1)] text-sm focus:outline-none focus:ring-2 svelte-l3ef1w" style="color: var(--text); --tw-ring-color: var(--link);"/></div> <div class="grid grid-cols-2 gap-3 svelte-l3ef1w"><label class="flex items-center gap-2 cursor-pointer svelte-l3ef1w"><input type="checkbox" class="cursor-pointer svelte-l3ef1w"/> <span class="text-sm svelte-l3ef1w" style="color: var(--text);">Unique</span></label> <label class="flex items-center gap-2 cursor-pointer svelte-l3ef1w"><input type="checkbox" class="cursor-pointer svelte-l3ef1w"/> <span class="text-sm svelte-l3ef1w" style="color: var(--text);">Sparse</span></label> <label class="flex items-center gap-2 cursor-pointer svelte-l3ef1w"><input type="checkbox" class="cursor-pointer svelte-l3ef1w"/> <span class="text-sm svelte-l3ef1w" style="color: var(--text);">Background</span></label></div> <div class="svelte-l3ef1w"><label for="index-partial" class="block text-sm font-semibold mb-2 svelte-l3ef1w" style="color: var(--text);">Partial Filter Expression (Optional)</label> <p class="text-xs mb-2 svelte-l3ef1w" style="color: var(--text-darker);">Only index documents that match this filter. Example: <code class="svelte-l3ef1w"></code></p> <textarea id="index-partial" rows="2" class="w-full p-3 rounded border border-[var(--border-color)] bg-[var(--color-1)] font-mono text-sm focus:outline-none focus:ring-2 svelte-l3ef1w" style="color: var(--text); --tw-ring-color: var(--link);"></textarea></div> <div class="svelte-l3ef1w"><label for="index-ttl" class="block text-sm font-semibold mb-2 svelte-l3ef1w" style="color: var(--text);">TTL - Expire After Seconds (Optional)</label> <p class="text-xs mb-2 svelte-l3ef1w" style="color: var(--text-darker);">Automatically delete documents after specified seconds (for TTL indexes)</p> <input id="index-ttl" type="number" placeholder="e.g., 3600" min="0" class="w-full p-2 rounded border border-[var(--border-color)] bg-[var(--color-1)] text-sm focus:outline-none focus:ring-2 svelte-l3ef1w" style="color: var(--text); --tw-ring-color: var(--link);"/></div></div>'),Rs=v("<!> <!> <!>",1);function rr(n,o){Jt(o,!0);const c=O(()=>o.data.readOnly);let s=x(null),g=x(se(new Set)),C=x(!1),$=x(null),Pe=x(!1),re=x(!1),D=x(se([])),A=x(se([])),he=x(!1),$e=x(null),G=x(se({})),M=x(se({})),J=x(null),le=x(!1),q=x(!1),K=x(!1),oe=x(!1),fe=x(se([])),Oe=x(se(new Date));const dt=O(()=>{const f=[...new Set(Object.values(e(G)).map(p=>p.host))];return as(f)}),qe=O(()=>e(A).length!==e(fe).length||!e(A).every(f=>e(fe).includes(f))),B=O(()=>Object.keys(e(M)).length>0&&!e(qe)),ct=O(()=>(e(Oe),Za(e(J))));Ae(()=>{const f=setInterval(()=>{l(Oe,new Date,!0)},1e3);return()=>clearInterval(f)});let We=x('{ "fieldName": 1 }'),ze=x(""),He=x(!1),Je=x(!1),Ke=x(""),Ve=x(void 0),Ye=x(!1);Ae(()=>{o.data.indexes.then(f=>{e(s)||l(s,f,!0)})});const Gt=O(()=>e(s)||o.data.indexes);async function Qt(f,p){const{server:_,database:u,collection:h}=je.params;if(!(!_||!u||!h)){e(g).add(f),l(g,e(g),!0);try{const w={server:_,database:u,collection:h,index:f};if(p?await Ua(w):await Ta(w),e(s)&&e(s).data){const I=e(s).data.map(S=>S.name===f?{...S,hidden:!p}:S);l(s,{...e(s),data:I},!0)}F.notifySuccess(`Index ${p?"unhidden":"hidden"} successfully`)}catch(w){F.notifyError(w,`Failed to ${p?"unhide":"hide"} index`)}finally{e(g).delete(f),l(g,e(g),!0)}}}function Xt(){l(We,'{ "fieldName": 1 }'),l(ze,""),l(He,!1),l(Je,!1),l(Ke,""),l(Ve,void 0),l(Ye,!1),l(Pe,!0)}function vt(){l(Pe,!1)}async function Zt(){const{server:f,database:p,collection:_}=je.params;if(!(!f||!p||!_)){l(q,!0);try{await La({server:f,database:p,collection:_,keys:e(We),name:e(ze)||void 0,unique:e(He)||void 0,sparse:e(Je)||void 0,partialFilterExpression:e(Ke)||void 0,expireAfterSeconds:e(Ve),background:e(Ye)||void 0}),F.notifySuccess("Index created successfully"),vt(),await Ra("app:indexes")}catch(u){F.notifyError(u,"Failed to create index")}finally{l(q,!1)}}}function ea(f){l($,f,!0),l(C,!0)}function ft(){l(C,!1),l($,null)}async function ta(){if(!e($))return;const{server:f,database:p,collection:_}=je.params;if(!f||!p||!_)return;e(g).add(e($)),l(g,e(g),!0);const u=e($);try{if(await Da({server:f,database:p,collection:_,index:u}),e(s)&&e(s).data){const h=e(s).data.filter(w=>w.name!==u);l(s,{...e(s),data:h},!0)}F.notifySuccess(`Index "${u}" dropped successfully`),ft()}catch(h){F.notifyError(h,"Failed to drop index")}finally{e(g).delete(u),l(g,e(g),!0)}}async function St(){const{server:f,database:p,collection:_}=je.params;if(!(!f||!p||!_)){l(he,!0);try{const u=await Ea({server:f});if(u.error)F.notifyError(u.error,"Failed to load nodes"),l(D,[],!0);else if(l(D,u.data,!0),e(D).length>0){F.notifySuccess(`Found ${e(D).length} node(s)`);const h=await Ca({server:f,database:p,collection:_});!h.error&&h.data&&l($e,h.data,!0)}}catch(u){F.notifyError(u,"Failed to load nodes"),l(D,[],!0)}finally{l(he,!1)}}}async function Nt(f=!0){const{server:p,database:_,collection:u}=je.params;if(!p||!_||!u)return;if(e(A).length===0){F.notifyError("No nodes selected","Please select at least one node");return}l(le,!0);const h=e(qe)||!e(B);try{const w=await Fa({server:p,database:_,collection:u,nodes:e(A)});w.error&&F.notifyError(w.error,"Failed to fetch stats from some nodes"),l(G,w.data,!0),l(fe,[...e(A)],!0),h&&(l(M,{...e(G)},!0),l(J,new Date,!0));const I=Object.keys(e(G)).length;if(I===0)F.notifyError("No stats found","No index stats found for selected nodes");else{const S=h?`Fetched stats from ${I} index/host combination(s)`:`Updated stats from ${I} index/host combination(s)`;F.notifySuccess(S)}if(f){const S=new URL(window.location.href);S.searchParams.set("nodes",e(A).join(",")),e(K)&&S.searchParams.set("aggregate","true"),Ba(S.toString(),{})}}catch(w){F.notifyError(w,"Failed to fetch multi-node usage")}finally{l(le,!1)}}Ae(()=>{e(re)&&e(D).length===0&&!e(he)&&St()}),Ae(()=>{if(!e(oe)){const f=new URL(je.url),p=f.searchParams.get("nodes"),_=f.searchParams.get("aggregate");if(p){const u=p.split(",").filter(h=>h.length>0);u.length>0&&(l(re,!0),l(A,u,!0),e(D).length===0&&St().then(()=>{u.length>0&&Nt(!1)}))}_!==null&&l(K,_==="true"),l(oe,!0)}}),Ae(()=>{if(e(oe)&&Object.keys(e(G)).length>0){const f=new URL(window.location.href);e(K)?f.searchParams.set("aggregate","true"):f.searchParams.delete("aggregate"),Aa(f.toString(),{})}});var jt=Rs(),Pt=ae(jt);Ma(Pt,()=>e(Gt),f=>{Be(f,{title:"Indexes",children:(p,_)=>{var u=Ls();i(p,u)},$$slots:{default:!0}})},(f,p)=>{var _=kt(),u=ae(_);{var h=I=>{Be(I,{title:"Indexes",children:(S,ne)=>{var Q=rs(),ie=a(Q),X=a(ie,!0);t(ie),t(Q),j(()=>P(X,e(p).error)),i(S,Q)},$$slots:{default:!0}})},w=I=>{var S=Fs(),ne=ae(S),Q=a(ne);{var ie=L=>{var W=ls();Y("click",W,Xt),i(L,W)};k(Q,L=>{e(c)||L(ie)})}var X=d(Q,2),Ge=a(X);t(X),t(ne);var Me=d(ne,2);{var Qe=L=>{Be(L,{title:"Indexes",children:(W,ue)=>{var Ie=os();i(W,Ie)},$$slots:{default:!0}})},Xe=L=>{var W=Cs(),ue=ae(W);{var Ie=de=>{var pe=is(),y=a(pe);Xa(y,{get loading(){return e(he)},get primaryNode(){return e($e)},get availableNodes(){return e(D)},set availableNodes(N){l(D,N,!0)},get selectedNodes(){return e(A)},set selectedNodes(N){l(A,N,!0)}});var Ee=d(y,2),z=a(Ee);let Ce;var ut=a(z);{var pt=N=>{var R=Tt();j(()=>P(R,e(B)?"Checking Δ...":"Fetching...")),i(N,R)},Ze=N=>{var R=Tt();j(()=>P(R,e(B)?"Δ Usage":"Fetch Usage")),i(N,R)};k(ut,N=>{e(le)?N(pt):N(Ze,-1)})}t(z);var Z=d(z,2);{var b=N=>{var R=ns(),we=a(R);ge(we),Ne(2),t(R),Re(we,()=>e(K),De=>l(K,De)),i(N,R)},Fe=O(()=>Object.keys(e(G)).length>0);k(Z,N=>{e(Fe)&&N(b)})}t(Ee),t(pe),j(()=>{Ce=Rt(z,1,"btn btn-sm svelte-l3ef1w",null,Ce,{"btn-primary":!e(B),"btn-outline-primary":e(B)}),z.disabled=e(le)||e(A).length===0,ve(z,"title",e(B)?`Baseline from ${e(ct)}`:"Fetch index usage statistics")}),Y("click",z,()=>Nt()),i(de,pe)};k(ue,de=>{e(re)&&de(Ie)})}var _e=d(ue,2);Be(_e,{title:"Indexes",children:(de,pe)=>{var y=Es(),Ee=a(y),z=a(Ee),Ce=a(z),ut=d(a(Ce),6);{var pt=Z=>{var b=ds();i(Z,b)};k(ut,Z=>{e(c)||Z(pt)})}t(Ce),t(z);var Ze=d(z);it(Ze,21,()=>e(p).data,Z=>Z.name,(Z,b)=>{const Fe=O(()=>e(g).has(e(b).name));var N=Is();let R;var we=a(N),De=a(we),sa=a(De,!0);t(De),t(we);var bt=d(we),ra=a(bt);{var la=r=>{var m=vs();it(m,21,()=>Object.entries(e(b).key),$t,(V,ee)=>{var ce=O(()=>Oa(e(ee),2));let be=()=>e(ce)[0],H=()=>e(ce)[1];var E=cs(),U=a(E);t(E),j(()=>P(U,`${be()??""}: ${(H()===1?"↑":H()===-1?"↓":H())??""}`)),i(V,E)}),t(m),i(r,m)},oa=r=>{var m=fs();i(r,m)};k(ra,r=>{e(b).key?r(la):r(oa,-1)})}t(bt);var mt=d(bt),Mt=a(mt),It=a(Mt);{var na=r=>{var m=us();j(V=>{ve(m,"title",V),Ia(m,e(b).building.pct>0?`background: linear-gradient(to right, hsl(45, 100%, 45%) ${e(b).building.pct}%, hsl(45, 100%, 75%) ${e(b).building.pct}%)`:"")},[()=>e(b).building.pct>0?`${e(b).building.pct}% (${e(b).building.done.toLocaleString()} / ${e(b).building.total.toLocaleString()})`:"Building…"]),i(r,m)};k(It,r=>{e(b).building&&r(na)})}var Et=d(It,2);{var ia=r=>{var m=ps();i(r,m)};k(Et,r=>{e(b).hidden&&r(ia)})}var Ct=d(Et,2);{var da=r=>{var m=bs();i(r,m)};k(Ct,r=>{e(b).unique&&r(da)})}var Ft=d(Ct,2);{var ca=r=>{var m=ms();i(r,m)};k(Ft,r=>{e(b).sparse&&r(ca)})}var Dt=d(Ft,2);{var va=r=>{var m=gs();i(r,m)};k(Dt,r=>{e(b).partialFilterExpression&&r(va)})}var fa=d(Dt,2);{var ua=r=>{var m=hs();i(r,m)};k(fa,r=>{!e(b).building&&!e(b).hidden&&!e(b).unique&&!e(b).sparse&&!e(b).partialFilterExpression&&r(ua)})}t(Mt),t(mt);var gt=d(mt),pa=a(gt);{var ba=r=>{var m=_s(),V=a(m,!0);t(m),j(ee=>P(V,ee),[()=>qa(e(b).size)]),i(r,m)},ma=r=>{var m=ws();i(r,m)};k(pa,r=>{e(b).size?r(ba):r(ma,-1)})}t(gt);var ht=d(gt),ga=a(ht);{var ha=r=>{const m=O(()=>Object.entries(e(G)).filter(([E])=>E.startsWith(`${e(b).name}::`)).map(([E,U])=>({key:E,stats:U}))),V=O(()=>Object.fromEntries(Object.entries(e(M)).filter(([E])=>E.startsWith(`${e(b).name}::`))));var ee=js(),ce=a(ee);{var be=E=>{var U=kt(),wt=ae(U);{var xt=xe=>{const ye=O(()=>Ht(e(m).map(T=>T.stats.ops))),et=O(()=>Ht(Object.values(e(V)).map(T=>T.ops))),Le=O(()=>e(et)>0?e(ye)-e(et):0);var me=ys(),tt=a(me),te=d(tt);{var at=T=>{var Ue=xs(),st=a(Ue);t(Ue),j(rt=>P(st,`+${rt??""}`),[()=>nt(e(Le))]),i(T,Ue)};k(te,T=>{e(Le)>0&&T(at)})}var ke=d(te,2),Se=a(ke);t(ke),t(me),j(T=>{ve(me,"title",`Aggregated across ${e(m).length??""} node(s)`),P(tt,`${T??""} `),P(Se,`(${e(m).length??""} node${e(m).length>1?"s":""})`)},[()=>e(Le)>0?nt(e(ye)):e(ye).toLocaleString()]),i(xe,me)},ka=xe=>{var ye=kt(),et=ae(ye);it(et,17,()=>e(m),$t,(Le,me)=>{let tt=()=>e(me).key,te=()=>e(me).stats;const at=O(()=>e(V)[tt()]?.ops||0),ke=O(()=>e(at)>0?te().ops-e(at):0);var Se=Ss(),T=a(Se),Ue=a(T);t(T);var st=d(T,2),rt=a(st),Sa=d(rt);{var Na=Te=>{var yt=ks(),ja=a(yt);t(yt),j(Pa=>P(ja,`+${Pa??""}`),[()=>nt(e(ke))]),i(Te,yt)};k(Sa,Te=>{e(ke)>0&&Te(Na)})}t(st),t(Se),j(Te=>{ve(Se,"title",te().host),P(Ue,`${(e(dt)[te().host]||te().host)??""}:`),P(rt,`${Te??""} `)},[()=>e(ke)>0?nt(te().ops):te().ops.toLocaleString()]),i(Le,Se)}),i(xe,ye)};k(wt,xe=>{e(K)?xe(xt):xe(ka,-1)})}i(E,U)},H=E=>{var U=Ns(),wt=a(U,!0);t(U),j(xt=>P(wt,xt),[()=>e(b).stats.ops.toLocaleString()]),i(E,U)};k(ce,E=>{e(m).length>0?E(be):E(H,-1)})}t(ee),i(r,ee)},_a=r=>{var m=Ps();i(r,m)};k(ga,r=>{e(b).stats?r(ha):r(_a,-1)})}t(ht);var _t=d(ht),Lt=a(_t),Ut=d(a(Lt),2),wa=a(Ut);{let r=O(()=>ss(e(b),["stats"]));$a(wa,{get value(){return e(r)},collapsed:!1})}t(Ut),t(Lt),t(_t);var xa=d(_t);{var ya=r=>{var m=Ms(),V=a(m);{var ee=ce=>{var be=Os(),H=a(be),E=a(H,!0);t(H);var U=d(H,2);t(be),j(()=>{H.disabled=e(Fe),P(E,e(b).hidden?"Unhide":"Hide"),U.disabled=e(Fe)}),Y("click",H,()=>Qt(e(b).name,e(b).hidden)),Y("click",U,()=>ea(e(b).name)),i(ce,be)};k(V,ce=>{e(b).name!=="_id_"&&ce(ee)})}t(m),i(r,m)};k(xa,r=>{e(c)||r(ya)})}t(N),j(()=>{R=Rt(N,1,"group svelte-l3ef1w",null,R,{"opacity-50":e(Fe)}),ve(De,"title",e(b).name),P(sa,e(b).name)}),i(Z,N)}),t(Ze),t(Ee),t(y),i(de,y)},$$slots:{default:!0}}),i(L,W)};k(Me,L=>{e(p).data.length===0?L(Qe):L(Xe,-1)})}j(()=>P(Ge,`${e(re)?"Hide":"Show"} Multi-Node Usage`)),Y("click",X,()=>l(re,!e(re))),i(I,S)};k(u,I=>{e(p).error?I(h):I(w,-1)})}i(f,_)},(f,p)=>{Be(f,{title:"Indexes",children:(_,u)=>{var h=Ds(),w=a(h),I=a(w);t(w),t(h),j(()=>P(I,`Error loading indexes: ${e(p)??""}`)),i(_,h)},$$slots:{default:!0}})});var Ot=d(Pt,2);zt(Ot,{get show(){return e(C)},onclose:ft,footer:p=>{var _=Us(),u=ae(_),h=d(u,2);Y("click",u,ft),Y("click",h,ta),i(p,_)},children:(p,_)=>{var u=Ts(),h=ae(u),w=d(a(h)),I=a(w,!0);t(w),Ne(),t(h),Ne(2),j(()=>P(I,e($))),i(p,u)},$$slots:{footer:!0,default:!0}});var aa=d(Ot,2);zt(aa,{get show(){return e(Pe)},onclose:vt,title:"Create Index",footer:p=>{var _=As(),u=ae(_),h=d(u,2),w=a(h,!0);t(h),j(()=>{u.disabled=e(q),h.disabled=e(q),P(w,e(q)?"Creating...":"Create Index")}),Y("click",u,vt),Y("click",h,Zt),i(p,_)},children:(p,_)=>{var u=Bs(),h=a(u),w=d(a(h),2),I=d(a(w));I.textContent='{ "fieldName": 1 }',t(w);var S=d(w,2);Bt(S),ve(S,"placeholder",'{"fieldName": 1}'),At(()=>ot(S,()=>e(We),y=>l(We,y))),qt(S,y=>Wt?.(y)),t(h);var ne=d(h,2),Q=d(a(ne),4);ge(Q),t(ne);var ie=d(ne,2),X=a(ie),Ge=a(X);ge(Ge),Ne(2),t(X);var Me=d(X,2),Qe=a(Me);ge(Qe),Ne(2),t(Me);var Xe=d(Me,2),L=a(Xe);ge(L),Ne(2),t(Xe),t(ie);var W=d(ie,2),ue=d(a(W),2),Ie=d(a(ue));Ie.textContent='{ "status": "active" }',t(ue);var _e=d(ue,2);Bt(_e),ve(_e,"placeholder",'{"status": "active"}'),At(()=>ot(_e,()=>e(Ke),y=>l(Ke,y))),qt(_e,y=>Wt?.(y)),t(W);var de=d(W,2),pe=d(a(de),4);ge(pe),t(de),t(u),ot(Q,()=>e(ze),y=>l(ze,y)),Re(Ge,()=>e(He),y=>l(He,y)),Re(Qe,()=>e(Je),y=>l(Je,y)),Re(L,()=>e(Ye),y=>l(Ye,y)),ot(pe,()=>e(Ve),y=>l(Ve,y)),i(p,u)},$$slots:{footer:!0,default:!0}}),i(n,jt),Kt()}Vt(["click"]);export{rr as component,sr as universal};