@edge-base/server 0.2.0 → 0.2.1
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/admin-build/_app/immutable/assets/19.4Si2ZFC_.css +1 -0
- package/admin-build/_app/immutable/assets/{3.Dg81Pgmd.css → 3.BtHYobTg.css} +1 -1
- package/admin-build/_app/immutable/assets/SqlEditor.Bbp1RIk0.css +1 -0
- package/admin-build/_app/immutable/assets/TableSqlTab.yeNZfhgG.css +1 -0
- package/admin-build/_app/immutable/chunks/B0QyxC2M.js +128 -0
- package/admin-build/_app/immutable/chunks/{DpuSetmN.js → BCKr7yKd.js} +1 -1
- package/admin-build/_app/immutable/chunks/{BSfSfeDG.js → BFs_qStz.js} +1 -1
- package/admin-build/_app/immutable/chunks/{D43CH5ty.js → BTJcQFEp.js} +1 -1
- package/admin-build/_app/immutable/chunks/BY07qVPA.js +1 -0
- package/admin-build/_app/immutable/chunks/{mD4EETH_.js → BcIUK2sk.js} +1 -1
- package/admin-build/_app/immutable/chunks/{DgxOZ3uv.js → BsFiK_FJ.js} +1 -1
- package/admin-build/_app/immutable/chunks/{CN6aakgF.js → CSGrwS7E.js} +1 -1
- package/admin-build/_app/immutable/chunks/{B14gOIqE.js → CqUxCvs_.js} +1 -1
- package/admin-build/_app/immutable/chunks/{BKLsgaNT.js → D-x55wdW.js} +1 -1
- package/admin-build/_app/immutable/chunks/{CfPHB4r5.js → D755Tqat.js} +1 -1
- package/admin-build/_app/immutable/chunks/{cqSkc6KP.js → DjOEv9M9.js} +1 -1
- package/admin-build/_app/immutable/chunks/{DP9kmlCd.js → DnLqc9L1.js} +1 -1
- package/admin-build/_app/immutable/chunks/{B-WlnirM.js → Dqk2TGNU.js} +1 -1
- package/admin-build/_app/immutable/chunks/{2nyN5wuZ.js → k0CIJkw4.js} +1 -1
- package/admin-build/_app/immutable/chunks/lSpxLU5p.js +2 -0
- package/admin-build/_app/immutable/chunks/{uboHVq-x.js → m9QZTyVV.js} +1 -1
- package/admin-build/_app/immutable/entry/{app.Dc071f6C.js → app.BTsq3_xq.js} +2 -2
- package/admin-build/_app/immutable/entry/start.zXCirpgY.js +1 -0
- package/admin-build/_app/immutable/nodes/0.BZ00WDYH.js +1 -0
- package/admin-build/_app/immutable/nodes/{1.rMaczUKT.js → 1.RzSJ3yyr.js} +1 -1
- package/admin-build/_app/immutable/nodes/{10.DIOlO4hv.js → 10.D-rsiquF.js} +1 -1
- package/admin-build/_app/immutable/nodes/{11.WxD9E0Eq.js → 11.l7-bgtFD.js} +1 -1
- package/admin-build/_app/immutable/nodes/{12.CNcefK3l.js → 12.Dkq0H7B5.js} +1 -1
- package/admin-build/_app/immutable/nodes/{13.aAWsqDdR.js → 13.DtK_4oRz.js} +1 -1
- package/admin-build/_app/immutable/nodes/{14.C9hdr3EN.js → 14.BKo7-AMx.js} +1 -1
- package/admin-build/_app/immutable/nodes/{15.43r5uVx5.js → 15.CQAj_6lq.js} +1 -1
- package/admin-build/_app/immutable/nodes/{16.D519948J.js → 16.XVIG-Ffr.js} +1 -1
- package/admin-build/_app/immutable/nodes/{17.ks4I4yoH.js → 17.g6raZLCM.js} +1 -1
- package/admin-build/_app/immutable/nodes/{18.ZuNm22dY.js → 18.IQz6a3T6.js} +1 -1
- package/admin-build/_app/immutable/nodes/19.CAAZ8i8h.js +2 -0
- package/admin-build/_app/immutable/nodes/{20.C9ASlwCn.js → 20.BPcX3KPj.js} +1 -1
- package/admin-build/_app/immutable/nodes/21.DoPabrY_.js +1 -0
- package/admin-build/_app/immutable/nodes/{22.6k8cg0Pr.js → 22.Br5AG_5Z.js} +1 -1
- package/admin-build/_app/immutable/nodes/{23.B9hcFTU-.js → 23.KjbrdXoE.js} +1 -1
- package/admin-build/_app/immutable/nodes/{24.OsQM9QtS.js → 24.C3n2-hgw.js} +1 -1
- package/admin-build/_app/immutable/nodes/{25.ClwkdaPp.js → 25.SFDSBzHd.js} +1 -1
- package/admin-build/_app/immutable/nodes/26.D95vui6E.js +1 -0
- package/admin-build/_app/immutable/nodes/{27.J1QASB3b.js → 27.FgLgdjwB.js} +1 -1
- package/admin-build/_app/immutable/nodes/{28.BKP1tVcZ.js → 28.B9sYYm1F.js} +1 -1
- package/admin-build/_app/immutable/nodes/{29.mqIe62On.js → 29.DyqZ_wbN.js} +1 -1
- package/admin-build/_app/immutable/nodes/3.Bzo2yVIO.js +2 -0
- package/admin-build/_app/immutable/nodes/{30.BRk-4B3j.js → 30.c1CiNwiS.js} +1 -1
- package/admin-build/_app/immutable/nodes/{31.BBqGNVXN.js → 31.CXty66Vh.js} +1 -1
- package/admin-build/_app/immutable/nodes/{4.Bi91lv2V.js → 4.BgQaXZ27.js} +1 -1
- package/admin-build/_app/immutable/nodes/{5.BumjsbNK.js → 5.BuJrHvxH.js} +1 -1
- package/admin-build/_app/immutable/nodes/{6.CMTP_7xN.js → 6.CkBBC94k.js} +1 -1
- package/admin-build/_app/immutable/nodes/{7.4T4wo7Kg.js → 7.D2YBvNFM.js} +1 -1
- package/admin-build/_app/immutable/nodes/{8.MUZQPNsN.js → 8.D8qQWo_z.js} +1 -1
- package/admin-build/_app/immutable/nodes/{9.3SV00WXe.js → 9.BLDLX5hV.js} +1 -1
- package/admin-build/_app/version.json +1 -1
- package/admin-build/index.html +7 -7
- package/package.json +2 -2
- package/src/__tests__/pagination.test.ts +12 -8
- package/src/__tests__/postgres-dialect.test.ts +2 -2
- package/src/__tests__/query.test.ts +7 -7
- package/src/durable-objects/database-do.ts +3 -3
- package/src/durable-objects/logs-do.ts +2 -2
- package/src/lib/auth-d1-service.ts +1 -1
- package/src/lib/auth-d1.ts +10 -0
- package/src/lib/d1-handler.ts +23 -4
- package/src/lib/pagination.ts +3 -3
- package/src/lib/postgres-handler.ts +2 -2
- package/src/lib/query-engine.ts +2 -2
- package/src/middleware/rate-limit.ts +11 -11
- package/src/routes/admin.ts +2 -2
- package/src/routes/auth.ts +7 -0
- package/admin-build/_app/immutable/assets/TableSqlTab.BHquaMBM.css +0 -1
- package/admin-build/_app/immutable/chunks/CkdaVlhQ.js +0 -2
- package/admin-build/_app/immutable/chunks/D8Nrx_IG.js +0 -128
- package/admin-build/_app/immutable/entry/start.Bhlxoqtt.js +0 -1
- package/admin-build/_app/immutable/nodes/0.CCfcYVV2.js +0 -1
- package/admin-build/_app/immutable/nodes/19.D519948J.js +0 -1
- package/admin-build/_app/immutable/nodes/21.BhSD2EfX.js +0 -1
- package/admin-build/_app/immutable/nodes/26._-65WG0q.js +0 -1
- package/admin-build/_app/immutable/nodes/3.WkDZWDQC.js +0 -2
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./CkdaVlhQ.js","./CWj6FrbW.js","./BdTBlfLy.js","./DtZk82gG.js","./DEELgv7K.js","./Y22E1hJM.js","./Bb0e0sAP.js","./B14gOIqE.js","./Bn2NtlTj.js","./mD4EETH_.js","./CfPHB4r5.js","./B-WlnirM.js","./CoI6jjbg.js","./Cp8V0Xy2.js","./C72lTcG0.js","./XmteHKH_.js","./F9_4wRrd.js","../assets/Button.DpzMRTjK.css","./CGgVJi7f.js","./gtu8uwJD.js","./BKLsgaNT.js","../assets/TableSqlTab.BHquaMBM.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{_ as nr,c as lr}from"./B2bEC_Hm.js";import"./CWj6FrbW.js";import{h as Na,e as or,bh as ir,x as dr,bi as Ua,A as vr,n as cr,B as ur,D as Pa,I as fr,aw as Oa,aO as pr,bj as _r,bk as br,aK as gr,aD as Ma,bf as mr,a7 as Ba,bl as hr,p as sa,M as it,w as St,g as e,at as Xa,f as Ae,a as na,d as w,s as o,c as r,r as a,t as g,ag as za,b as t,u as F,J as yr,ae as Be,af as wr}from"./BdTBlfLy.js";import{d as da,e as ra,s as N,a as re}from"./DtZk82gG.js";import{c as Ut,a as s,f as d,t as Te}from"./DEELgv7K.js";import{B as kr}from"./Bb0e0sAP.js";import{i as I}from"./Y22E1hJM.js";import{e as Ze,i as Ot,t as dt,b as Ct,A as xr,a as bt}from"./B14gOIqE.js";import{a as Ce,s as Rt,b as ia,r as jt,c as Ka,e as Ia,i as Sr,h as Cr}from"./CoI6jjbg.js";import{b as $t,a as ja}from"./CYatlt7w.js";import{a as ya,s as Ra}from"./Cp8V0Xy2.js";import{g as La}from"./uboHVq-x.js";import{p as Nr}from"./CN6aakgF.js";import{b as Ea}from"./CfPHB4r5.js";import{M as $a}from"./Dt4vL4Df.js";import{B as pt}from"./C72lTcG0.js";import{s as qt,b as Ir,a as xa,c as Ja}from"./BKLsgaNT.js";import{d as Va}from"./wJsUhbfZ.js";import{A as Ha,S as Er,C as zr}from"./D43CH5ty.js";import{b as Aa}from"./CGgVJi7f.js";import{p as wt}from"./F9_4wRrd.js";import{g as Rr,p as Wa}from"./Ce-ngf4p.js";import{d as er}from"./B-WlnirM.js";import{T as Dr}from"./BSfSfeDG.js";import{C as Ga}from"./DILS_-VJ.js";import{I as Tr}from"./_teD5ji5.js";import{T as Pr}from"./Z41NK6i6.js";import{e as Or}from"./Q2nPFxS6.js";const Ya=0,Fa=1;function jr(_e,l,X,A,se){Na&&or();var E=ir(),D=mr,J=E?Ma(D):Ba(D,!1,!1),ee=E?Ma(D):Ba(D,!1,!1),K=new kr(_e);dr(()=>{var ne=l(),V=!1;let T=Na&&Ua(ne)===(_e.data===vr);if(T&&(cr(ur()),Pa(!1)),Ua(ne)){var be=hr(),M=!1;const ae=x=>{if(!V){M=!0,be(!1),pr.ensure(),Na&&Pa(!1);try{x()}finally{_r(),br||gr()}}};ne.then(x=>{ae(()=>{Oa(J,x),K.ensure(Fa,A&&(H=>A(H,J)))})},x=>{ae(()=>{if(Oa(ee,x),K.ensure(Fa,se&&(H=>se(H,ee))),!se)throw ee.v})}),Na?K.ensure(Ya,X):fr(()=>{M||ae(()=>{K.ensure(Ya,X)})})}else Oa(J,ne),K.ensure(Fa,A&&(ae=>A(ae,J)));return T&&Pa(!0),()=>{V=!0}})}const Fr=/^[A-Za-z0-9_-]+$/,Lr="Record ID must use English letters, numbers, hyphen (-), or underscore (_).";function Ar(_e){return _e?Fr.test(_e)?null:Lr:null}var qr=d(`<div class="crp-note svelte-sxc7i5">Leave <strong>Record ID</strong> blank to let EdgeBase generate <code>id</code>, <code>createdAt</code>,
|
|
3
|
-
and <code>updatedAt</code> automatically.</div>`),Ur=d('<div class="crp-note svelte-sxc7i5">This table does not expose any manual fields. EdgeBase will create the row with auto-managed values only.</div>'),Mr=d("<select><option>Unset</option><option>true</option><option>false</option></select>"),Br=d("<option> </option>"),Kr=d("<select><option>Select value</option><!></select>"),Jr=d('<textarea rows="6"></textarea>'),Vr=d("<input/>"),Hr=d(`<p class="crp-helper svelte-sxc7i5">Optional. Leave blank to auto-generate. Custom IDs may only use English letters, numbers,
|
|
4
|
-
hyphen (-), or underscore (_).</p>`),Wr=d('<p class="crp-error svelte-sxc7i5"> </p>'),Gr=d('<div class="crp-field svelte-sxc7i5"><div class="crp-field__header svelte-sxc7i5"><label class="crp-field__name svelte-sxc7i5"> </label> <span class="crp-field__type svelte-sxc7i5"> </span></div> <!> <!> <!></div>'),Yr=d('<span class="crp-spinner svelte-sxc7i5"></span>'),Qr=d('<button type="button" class="crp-overlay svelte-sxc7i5" aria-label="Close create record panel"></button> <div class="crp svelte-sxc7i5" role="dialog" aria-modal="true" aria-labelledby="create-record-title"><div class="crp-header svelte-sxc7i5"><div><h3 id="create-record-title" class="crp-title svelte-sxc7i5">Create Record</h3> <p class="crp-subtitle svelte-sxc7i5"><!></p></div> <button type="button" class="crp-close svelte-sxc7i5" aria-label="Close create record panel">×</button></div> <form class="crp-body svelte-sxc7i5"><!> <!> <div class="crp-footer svelte-sxc7i5"><button type="button" class="crp-btn svelte-sxc7i5">Cancel</button> <button type="submit" class="crp-btn crp-btn--primary svelte-sxc7i5"><!></button></div></form></div>',1);function Zr(_e,l){sa(l,!0);let X=wt(l,"columns",19,()=>[]),A=wt(l,"values",31,()=>it({})),se=wt(l,"errors",31,()=>it({})),E=wt(l,"saving",3,!1);const D=new Set(["createdAt","updatedAt"]);let J=w(null),ee=F(()=>X().find(S=>S.key==="id")??null),K=F(()=>X().filter(S=>!D.has(S.key)&&S.key!=="id"&&S.editable!==!1)),ne=F(()=>[...e(ee)?[{...e(ee),label:"Record ID",editable:!0}]:[],...e(K)]),V=F(()=>!!e(ee)&&e(K).length===0),T=F(()=>e(ne).length===0);St(()=>{l.open&&requestAnimationFrame(()=>{var U;const S=(U=e(J))==null?void 0:U.querySelector("input, select, textarea");S==null||S.focus()})});function be(S){l.open&&S.key==="Escape"&&!E()&&l.onClose()}function M(S){return S.type==="number"?"number":S.type==="datetime"?"datetime-local":"text"}function ae(S){return S.key==="id"?"Leave blank to auto-generate":S.type==="json"?'{ "key": "value" }':S.type==="number"?"0":S.label}function x(S){return`create-row-${S}`}function H(S){if(!se()[S])return;const U={...se()};delete U[S],se(U)}var fe=Ut();ra("keydown",Xa,be);var oe=Ae(fe);{var ge=S=>{var U=Qr(),m=Ae(U),C=o(m,2),W=r(C),de=r(W),f=o(r(de),2),z=r(f);{var ce=b=>{var k=Te("This table only uses auto-managed fields. Creating a row will generate the record automatically.");s(b,k)},Ne=b=>{var k=Te("This table only uses auto-managed fields. You can optionally set a custom record ID.");s(b,k)},me=b=>{var k=Te("Fill in the fields for the new row. Record ID is optional.");s(b,k)};I(z,b=>{e(T)?b(ce):e(V)?b(Ne,1):b(me,!1)})}a(f),a(de);var Ke=o(de,2);a(W);var le=o(W,2),B=r(le);{var De=b=>{var k=qr();s(b,k)},Je=b=>{var k=Ur();s(b,k)};I(B,b=>{e(V)?b(De):e(T)&&b(Je,1)})}var Oe=o(B,2);Ze(Oe,17,()=>e(ne),b=>b.key,(b,k)=>{var Ve=Gr(),st=r(Ve),u=r(st),P=r(u,!0);a(u);var ve=o(u,2),ze=r(ve,!0);a(ve),a(st);var ht=o(st,2);{var Ft=ye=>{var v=Mr();let p;var O=r(v);O.value=O.__value="";var y=o(O);y.value=y.__value="true";var j=o(y);j.value=j.__value="false",a(v),g((L,R)=>{Ce(v,"id",L),p=Rt(v,1,"crp-input svelte-sxc7i5",null,p,R),v.disabled=E()},[()=>x(e(k).key),()=>({"crp-input--error":!!se()[e(k).key]})]),re("change",v,()=>H(e(k).key)),ia(v,()=>A()[e(k).key],L=>A(A()[e(k).key]=L,!0)),s(ye,v)},Nt=ye=>{var v=Kr();let p;var O=r(v);O.value=O.__value="";var y=o(O);Ze(y,17,()=>e(k).enumValues,Ot,(j,L)=>{var R=Br(),Z=r(R,!0);a(R);var ie={};g(()=>{N(Z,e(L)),ie!==(ie=e(L))&&(R.value=(R.__value=e(L))??"")}),s(j,R)}),a(v),g((j,L)=>{Ce(v,"id",j),p=Rt(v,1,"crp-input svelte-sxc7i5",null,p,L),v.disabled=E()},[()=>x(e(k).key),()=>({"crp-input--error":!!se()[e(k).key]})]),re("change",v,()=>H(e(k).key)),ia(v,()=>A()[e(k).key],j=>A(A()[e(k).key]=j,!0)),s(ye,v)},Mt=ye=>{var v=Jr();za(v);let p;g((O,y,j)=>{Ce(v,"id",O),p=Rt(v,1,"crp-input crp-input--textarea svelte-sxc7i5",null,p,y),Ce(v,"placeholder",j),v.disabled=E()},[()=>x(e(k).key),()=>({"crp-input--error":!!se()[e(k).key]}),()=>ae(e(k))]),re("input",v,()=>H(e(k).key)),$t(v,()=>A()[e(k).key],O=>A(A()[e(k).key]=O,!0)),s(ye,v)},Qt=ye=>{var v=Vr();jt(v);let p;g((O,y,j,L)=>{Ce(v,"id",O),p=Rt(v,1,"crp-input svelte-sxc7i5",null,p,y),Ce(v,"type",j),Ce(v,"placeholder",L),v.disabled=E()},[()=>x(e(k).key),()=>({"crp-input--error":!!se()[e(k).key]}),()=>M(e(k)),()=>ae(e(k))]),re("input",v,()=>H(e(k).key)),$t(v,()=>A()[e(k).key],O=>A(A()[e(k).key]=O,!0)),s(ye,v)};I(ht,ye=>{e(k).type==="boolean"?ye(Ft):e(k).type==="enum"&&e(k).enumValues?ye(Nt,1):e(k).type==="json"?ye(Mt,2):ye(Qt,!1)})}var Ye=o(ht,2);{var Ie=ye=>{var v=Hr();s(ye,v)};I(Ye,ye=>{e(k).key==="id"&&ye(Ie)})}var He=o(Ye,2);{var vt=ye=>{var v=Wr(),p=r(v,!0);a(v),g(()=>N(p,se()[e(k).key])),s(ye,v)};I(He,ye=>{se()[e(k).key]&&ye(vt)})}a(Ve),g(ye=>{Ce(u,"for",ye),N(P,e(k).label),N(ze,e(k).type)},[()=>x(e(k).key)]),s(b,Ve)});var at=o(Oe,2),Xe=r(at),qe=o(Xe,2),rt=r(qe);{var kt=b=>{var k=Yr();s(b,k)},he=b=>{var k=Te();g(()=>N(k,e(T)?"Create Empty Row":"Create Row")),s(b,k)};I(rt,b=>{E()?b(kt):b(he,!1)})}a(qe),a(at),a(le),a(C),Aa(C,b=>t(J,b),()=>e(J)),g(()=>{Ke.disabled=E(),Xe.disabled=E(),qe.disabled=E()}),re("click",m,()=>!E()&&l.onClose()),re("click",Ke,function(...b){var k;(k=l.onClose)==null||k.apply(this,b)}),ra("submit",le,b=>{b.preventDefault(),l.onSubmit()}),re("click",Xe,function(...b){var k;(k=l.onClose)==null||k.apply(this,b)}),s(S,U)};I(oe,S=>{l.open&&S(ge)})}s(_e,fe),na()}da(["click","change","input"]);var Xr=d('<button class="dg-btn svelte-45rfpz"> </button>'),$r=d('<button class="dg-btn dg-btn--danger svelte-45rfpz"> </button> <!>',1),es=d('<button class="dg-btn dg-btn--primary svelte-45rfpz">Save All Changes</button> <button class="dg-btn svelte-45rfpz">Revert All</button>',1),ts=d('<label class="dg-col-picker__item svelte-45rfpz"><input type="checkbox" class="svelte-45rfpz"/> <span class="svelte-45rfpz"> </span></label>'),as=d('<button type="button" class="dg-col-picker-backdrop svelte-45rfpz" aria-label="Close column picker"></button> <div class="dg-col-picker svelte-45rfpz" role="dialog" aria-modal="true" aria-label="Column picker"></div>',1),rs=d('<div class="dg-col-picker-wrap svelte-45rfpz"><button class="dg-btn svelte-45rfpz" aria-haspopup="dialog"> </button> <!></div>'),ss=d('<button class="dg-btn dg-btn--primary svelte-45rfpz">+ Add Row</button>'),ns=d('<div class="dg-toolbar svelte-45rfpz"><div class="dg-toolbar__left svelte-45rfpz"><!> <!></div> <div class="dg-toolbar__right svelte-45rfpz"><!> <!></div></div>'),ls=d('<th class="dg-th dg-th--checkbox svelte-45rfpz" style="width:36px;"><input type="checkbox"/></th>'),os=d('<span class="dg-sort-icon svelte-45rfpz"> </span>'),is=d('<button type="button" class="dg-resize-handle svelte-45rfpz" tabindex="-1"></button>'),ds=d('<th class="dg-th svelte-45rfpz"><div class="dg-th__inner svelte-45rfpz"><button class="dg-sort-btn svelte-45rfpz"> <!></button> <!></div></th>'),vs=d('<th class="dg-th dg-th--actions svelte-45rfpz" style="width:80px;">Actions</th>'),cs=d('<tr><td class="dg-td dg-td--empty svelte-45rfpz"><div class="dg-loading svelte-45rfpz"><span class="dg-spinner svelte-45rfpz"></span> Loading...</div></td></tr>'),us=d('<tr><td class="dg-td dg-td--empty svelte-45rfpz"> </td></tr>'),fs=d('<td class="dg-td dg-td--checkbox svelte-45rfpz"><input type="checkbox"/></td>'),ps=d('<select class="dg-cell-editor svelte-45rfpz"><option>null</option><option>true</option><option>false</option></select>'),_s=d("<option> </option>"),bs=d('<select class="dg-cell-editor svelte-45rfpz"><option>—</option><!></select>'),gs=d('<textarea class="dg-cell-editor dg-cell-editor--json svelte-45rfpz" rows="4"></textarea>'),ms=d('<input class="dg-cell-editor svelte-45rfpz"/>'),hs=d('<a class="dg-cell-link svelte-45rfpz" title="Navigate to related record"> </a>'),ys=d("<em>null</em>"),ws=d('<span class="dg-bool svelte-45rfpz"> </span>'),ks=d('<button type="button"><span><!></span></button>'),xs=d("<td><!></td>"),Ss=d('<button class="dg-act-btn svelte-45rfpz" title="Duplicate"><svg width="14" height="14" viewBox="0 0 16 16" fill="none"><rect x="5" y="5" width="8" height="8" rx="1.5" stroke="currentColor" stroke-width="1.5"></rect><path d="M3 11V3.5C3 2.67 3.67 2 4.5 2H11" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path></svg></button>'),Cs=d('<button class="dg-act-btn svelte-45rfpz" title="Inspect"><svg width="14" height="14" viewBox="0 0 16 16" fill="none"><circle cx="7" cy="7" r="4.5" stroke="currentColor" stroke-width="1.5"></circle><path d="M10.5 10.5L14 14" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path></svg></button>'),Ns=d('<span class="dg-spinner-sm svelte-45rfpz"></span>'),Is=d('<button class="dg-act-btn dg-act-btn--save svelte-45rfpz" title="Save"><!></button> <button class="dg-act-btn svelte-45rfpz" title="Revert">↩</button>',1),Es=d('<td class="dg-td dg-td--actions svelte-45rfpz"><!> <!> <!></td>'),zs=d("<tr><!><!><!></tr>"),Rs=d('<select class="dg-page-size svelte-45rfpz"><option>20 / page</option><option>50 / page</option><option>100 / page</option><option>200 / page</option><option>500 / page</option></select>'),Ds=d('<div class="dg-footer__right svelte-45rfpz"><button class="dg-btn dg-btn--sm svelte-45rfpz">← Prev</button> <span class="dg-page-info svelte-45rfpz"> </span> <button class="dg-btn dg-btn--sm svelte-45rfpz">Next →</button></div>'),Ts=d('<div class="dg svelte-45rfpz" role="grid" tabindex="0"><!> <div class="dg-table-wrap svelte-45rfpz"><table class="dg-table svelte-45rfpz"><thead><tr><!><!><!></tr></thead><tbody><!></tbody></table></div> <div class="dg-footer svelte-45rfpz"><div class="dg-footer__left svelte-45rfpz"><span class="dg-count svelte-45rfpz"> </span> <!></div> <!></div></div> <!>',1);function Ps(_e,l){sa(l,!0);let X=wt(l,"columns",19,()=>[]),A=wt(l,"rows",19,()=>[]),se=wt(l,"loading",3,!1),E=wt(l,"readonly",3,!1),D=wt(l,"emptyMessage",3,"No data available."),J=wt(l,"totalCount",3,0),ee=wt(l,"page",3,1),K=wt(l,"pageSize",3,20),ne=wt(l,"tableName",3,""),V=w(it(new Set)),T=w(it(new Map)),be=w(it(new Set)),M=w(null),ae=w(null),x=w(""),H=w(null),fe=w("asc"),oe=w(it(new Map)),ge=w(null),S=w(0),U=w(0),m=w(null),C=w(it(new Set)),W=w(!1),de=w(!1),f=w(it({})),z=w(it({})),ce=w(!1),Ne=F(()=>A().length>0&&A().every(n=>e(V).has(String(n.id)))),me=F(()=>e(V).size>0),Ke=F(()=>Math.max(1,Math.ceil(J()/K()))),le=F(()=>e(T).size>0),B=F(()=>X().filter(n=>!e(C).has(n.key)));function De(n,c){requestAnimationFrame(()=>{var q;const h=(q=e(m))==null?void 0:q.querySelector(`[data-row-id="${n}"][data-col-key="${c}"]`);h==null||h.focus()})}St(()=>{!e(M)||e(ae)||De(e(M).rowId,e(M).colKey)}),St(()=>{if(ne())try{const n=localStorage.getItem(`edgebase_grid_columns_${ne()}`);t(C,n?new Set(JSON.parse(n)):new Set,!0)}catch{t(C,new Set,!0)}});function Je(n){const c=new Set(e(C));if(c.has(n)?c.delete(n):c.add(n),t(C,c,!0),ne())try{localStorage.setItem(`edgebase_grid_columns_${ne()}`,JSON.stringify([...c]))}catch{}}function Oe(n){return e(oe).get(n.key)??n.width??at(n)}function at(n){return n.type==="boolean"?80:n.type==="number"?120:n.type==="datetime"?180:n.type==="json"?200:160}function Xe(){e(Ne)?t(V,new Set,!0):t(V,new Set(A().map(n=>String(n.id))),!0)}function qe(n){const c=new Set(e(V));c.has(n)?c.delete(n):c.add(n),t(V,c,!0)}function rt(n){var c;e(H)===n?t(fe,e(fe)==="asc"?"desc":"asc",!0):(t(H,n,!0),t(fe,"asc")),(c=l.onSort)==null||c.call(l,n,e(fe))}function kt(n,c){const h=e(T).get(String(n.id));return h!=null&&h.has(c)?h.get(c):n[c]}function he(n,c){if(n==null)return"";if(c.type==="boolean")return n?"true":"false";if(c.type==="json"&&typeof n=="object")return JSON.stringify(n);if(c.type==="datetime"&&typeof n=="string")try{return new Date(n).toLocaleString()}catch{return String(n)}return String(n)}function b(n){return n==null}function k(n,c){var h;return((h=e(T).get(n))==null?void 0:h.has(c))??!1}async function Ve(n){const c=n==null?"":typeof n=="object"?JSON.stringify(n):String(n);try{await navigator.clipboard.writeText(c),Ct("Copied to clipboard")}catch{}}function st(n,c,h){if(E())return;const q=X().find(ue=>ue.key===c);!q||q.editable===!1||c==="id"||c==="createdAt"||c==="updatedAt"||(t(ae,{rowId:n,colKey:c},!0),h==null?t(x,""):typeof h=="object"?t(x,JSON.stringify(h,null,2),!0):t(x,String(h),!0),requestAnimationFrame(()=>{const ue=document.querySelector(".dg-cell-editor");ue==null||ue.focus()}))}function u(){if(!e(ae))return;const{rowId:n,colKey:c}=e(ae),h=X().find(Qe=>Qe.key===c);if(!h){P();return}let q;if(e(x)===""&&h.type!=="text")q=null;else if(h.type==="number"){if(q=e(x)===""?null:Number(e(x)),q!==null&&isNaN(q)){P();return}}else if(h.type==="boolean")q=e(x)==="true"||e(x)==="1";else if(h.type==="json")try{q=e(x)?JSON.parse(e(x)):null}catch{dt("Invalid JSON");return}else q=e(x);const ue=A().find(Qe=>String(Qe.id)===n),te=ue==null?void 0:ue[c];if(JSON.stringify(q)===JSON.stringify(te)){const Qe=e(T).get(n);Qe&&(Qe.delete(c),Qe.size===0&&e(T).delete(n),t(T,new Map(e(T)),!0))}else e(T).has(n)||e(T).set(n,new Map),e(T).get(n).set(c,q),t(T,new Map(e(T)),!0);t(ae,null)}function P(){t(ae,null)}async function ve(n){const c=e(T).get(n);if(!(!c||!l.onSave)){t(be,new Set([...e(be),n]),!0);try{const h={};for(const[q,ue]of c)h[q]=ue;await l.onSave(n,h),e(T).delete(n),t(T,new Map(e(T)),!0)}catch(h){dt(h instanceof Error?h.message:"Save failed")}finally{const h=new Set(e(be));h.delete(n),t(be,h,!0)}}}function ze(n){e(T).delete(n),t(T,new Map(e(T)),!0)}async function ht(){for(const n of e(T).keys())await ve(n)}function Ft(){t(T,new Map,!0)}async function Nt(){if(e(V).size===0||!l.onDelete)return;const n=[...e(V)];try{await l.onDelete(n),t(V,new Set,!0)}catch(c){dt(c instanceof Error?c.message:"Delete failed")}}function Mt(){t(de,!0),t(f,{},!0),t(z,{},!0)}function Qt(n){if(!(n instanceof xr)||!n.data||typeof n.data!="object")return{};const c={};for(const[h,q]of Object.entries(n.data))q&&typeof q=="object"&&"message"in q&&typeof q.message=="string"&&(c[h]=q.message);return c}async function Ye(){if(l.onCreate){t(ce,!0),t(z,{},!0);try{const n={};for(const c of X()){if(c.key==="createdAt"||c.key==="updatedAt")continue;const h=e(f)[c.key];if(c.key==="id"){const q=String(h??"").trim(),ue=Ar(q);if(ue){t(z,{id:ue},!0);return}q&&(n.id=q);continue}if(!(!h&&h!=="0"))if(c.type==="number")n[c.key]=Number(h);else if(c.type==="boolean")n[c.key]=h==="true"||h==="1";else if(c.type==="json")try{n[c.key]=JSON.parse(h)}catch{t(z,{[c.key]:`Invalid JSON for ${c.label}`},!0);return}else n[c.key]=h}await l.onCreate(n),t(de,!1),t(f,{},!0),t(z,{},!0)}catch(n){const c=Qt(n);if(Object.keys(c).length>0){t(z,c,!0);return}dt(n instanceof Error?n.message:"Create failed")}finally{t(ce,!1)}}}function Ie(){t(de,!1),t(f,{},!0),t(z,{},!0)}function He(n,c){n.preventDefault(),n.stopPropagation(),t(ge,c,!0),t(S,n.clientX,!0),t(U,Oe(X().find(h=>h.key===c)),!0),document.addEventListener("mousemove",vt),document.addEventListener("mouseup",ye)}function vt(n){if(!e(ge))return;const c=n.clientX-e(S),h=X().find(te=>te.key===e(ge)),q=(h==null?void 0:h.minWidth)??60,ue=Math.max(q,e(U)+c);e(oe).set(e(ge),ue),t(oe,new Map(e(oe)),!0)}function ye(){t(ge,null),document.removeEventListener("mousemove",vt),document.removeEventListener("mouseup",ye)}function v(n){if(n.target instanceof HTMLAnchorElement&&n.key==="Enter")return;if(e(ae)){if(n.key==="Escape")P(),n.preventDefault();else if(n.key==="Enter"&&!n.shiftKey){const te=X().find(Qe=>Qe.key===e(ae).colKey);(te==null?void 0:te.type)!=="json"&&(u(),n.preventDefault())}else n.key==="Tab"&&u();return}if(!e(M))return;const c=A().map(te=>String(te.id)),h=e(B).map(te=>te.key),q=c.indexOf(e(M).rowId),ue=h.indexOf(e(M).colKey);if(n.key==="ArrowDown"&&q<c.length-1)t(M,{rowId:c[q+1],colKey:e(M).colKey},!0),n.preventDefault();else if(n.key==="ArrowUp"&&q>0)t(M,{rowId:c[q-1],colKey:e(M).colKey},!0),n.preventDefault();else if(n.key==="ArrowRight"&&ue<h.length-1)t(M,{rowId:e(M).rowId,colKey:h[ue+1]},!0),n.preventDefault();else if(n.key==="ArrowLeft"&&ue>0)t(M,{rowId:e(M).rowId,colKey:h[ue-1]},!0),n.preventDefault();else if(n.key==="Enter"||n.key==="F2"){const te=kt(A().find(Qe=>String(Qe.id)===e(M).rowId),e(M).colKey);st(e(M).rowId,e(M).colKey,te),n.preventDefault()}else if(n.key==="c"&&(n.metaKey||n.ctrlKey)){const te=kt(A().find(Qe=>String(Qe.id)===e(M).rowId),e(M).colKey);Ve(te),n.preventDefault()}else n.key==="Delete"&&e(me)&&!E()&&(Nt(),n.preventDefault())}function p(){var n;ee()>1&&((n=l.onPageChange)==null||n.call(l,ee()-1))}function O(){var n;ee()<e(Ke)&&((n=l.onPageChange)==null||n.call(l,ee()+1))}function y(n){var h;const c=parseInt(n.target.value,10);(h=l.onPageSizeChange)==null||h.call(l,c)}var j=Ts(),L=Ae(j),R=r(L);{var Z=n=>{var c=ns(),h=r(c),q=r(h);{var ue=_=>{var Y=$r(),Q=Ae(Y),G=r(Q);a(Q);var $=o(Q,2);{var We=je=>{var Le=Xr(),Pe=r(Le);a(Le),g(()=>N(Pe,`Edit ${e(V).size??""} row${e(V).size>1?"s":""}`)),re("click",Le,()=>{var et;return(et=l.onBulkEdit)==null?void 0:et.call(l,[...e(V)])}),s(je,Le)};I($,je=>{l.onBulkEdit&&je(We)})}g(()=>N(G,`Delete ${e(V).size??""} row${e(V).size>1?"s":""}`)),re("click",Q,Nt),s(_,Y)};I(q,_=>{e(me)&&_(ue)})}var te=o(q,2);{var Qe=_=>{var Y=es(),Q=Ae(Y),G=o(Q,2);re("click",Q,ht),re("click",G,Ft),s(_,Y)};I(te,_=>{e(le)&&_(Qe)})}a(h);var Lt=o(h,2),Vt=r(Lt);{var pa=_=>{var Y=rs(),Q=r(Y),G=r(Q);a(Q);var $=o(Q,2);{var We=je=>{var Le=as(),Pe=Ae(Le),et=o(Pe,2);Ze(et,21,X,xe=>xe.key,(xe,Fe)=>{var nt=ts(),Ue=r(nt);jt(Ue);var ct=o(Ue,2),Ht=r(ct,!0);a(ct),a(nt),g(Wt=>{Ia(Ue,Wt),Ue.disabled=e(Fe).key==="id",N(Ht,e(Fe).label)},[()=>!e(C).has(e(Fe).key)]),re("change",Ue,()=>Je(e(Fe).key)),s(xe,nt)}),a(et),re("click",Pe,()=>t(W,!1)),s(je,Le)};I($,je=>{e(W)&&je(We)})}a(Y),g(()=>{Ce(Q,"aria-expanded",e(W)),N(G,`Columns (${e(B).length??""}/${X().length??""})`)}),re("click",Q,()=>t(W,!e(W))),s(_,Y)};I(Vt,_=>{ne()&&_(pa)})}var Tt=o(Vt,2);{var i=_=>{var Y=ss();re("click",Y,Mt),s(_,Y)};I(Tt,_=>{e(de)||_(i)})}a(Lt),a(c),s(n,c)};I(R,n=>{E()||n(Z)})}var ie=o(R,2),ke=r(ie),Re=r(ke),It=r(Re),Bt=r(It);{var $e=n=>{var c=ls(),h=r(c);jt(h),a(c),g(()=>Ia(h,e(Ne))),re("change",h,Xe),s(n,c)};I(Bt,n=>{E()||n($e)})}var _t=o(Bt);Ze(_t,17,()=>e(B),n=>n.key,(n,c)=>{var h=ds(),q=r(h),ue=r(q),te=r(ue),Qe=o(te);{var Lt=Tt=>{var i=os(),_=r(i,!0);a(i),g(()=>N(_,e(fe)==="asc"?"▲":"▼")),s(Tt,i)};I(Qe,Tt=>{e(H)===e(c).key&&Tt(Lt)})}a(ue);var Vt=o(ue,2);{var pa=Tt=>{var i=is();g(()=>Ce(i,"aria-label",`Resize ${e(c).label} column`)),re("mousedown",i,_=>He(_,e(c).key)),s(Tt,i)};I(Vt,Tt=>{E()||Tt(pa)})}a(q),a(h),g(Tt=>{Ka(h,`width:${Tt??""}px;min-width:${e(c).minWidth??60??""}px;`),N(te,`${e(c).label??""} `)},[()=>Oe(e(c))]),re("click",ue,()=>rt(e(c).key)),s(n,h)});var Kt=o(_t);{var va=n=>{var c=vs();s(n,c)};I(Kt,n=>{E()||n(va)})}a(It),a(Re);var _a=o(Re),ca=r(_a);{var ba=n=>{var c=cs(),h=r(c);a(c),g(()=>Ce(h,"colspan",e(B).length+(E()?0:2))),s(n,c)},ga=n=>{var c=us(),h=r(c),q=r(h,!0);a(h),a(c),g(()=>{Ce(h,"colspan",e(B).length+(E()?0:2)),N(q,D())}),s(n,c)},ma=n=>{var c=Ut(),h=Ae(c);Ze(h,17,A,q=>q.id??A().indexOf(q),(q,ue)=>{const te=F(()=>String(e(ue).id)),Qe=F(()=>e(T).has(e(te)));var Lt=zs();let Vt;var pa=r(Lt);{var Tt=Q=>{var G=fs(),$=r(G);jt($),a(G),g(We=>Ia($,We),[()=>e(V).has(e(te))]),re("change",$,()=>qe(e(te))),s(Q,G)};I(pa,Q=>{E()||Q(Tt)})}var i=o(pa);Ze(i,17,()=>e(B),Q=>Q.key,(Q,G)=>{const $=F(()=>kt(e(ue),e(G).key)),We=F(()=>k(e(te),e(G).key)),je=F(()=>{var Ue,ct;return((Ue=e(ae))==null?void 0:Ue.rowId)===e(te)&&((ct=e(ae))==null?void 0:ct.colKey)===e(G).key}),Le=F(()=>{var Ue,ct;return((Ue=e(M))==null?void 0:Ue.rowId)===e(te)&&((ct=e(M))==null?void 0:ct.colKey)===e(G).key});var Pe=xs();let et;var xe=r(Pe);{var Fe=Ue=>{var ct=Ut(),Ht=Ae(ct);{var Wt=Se=>{var we=ps(),ot=r(we);ot.value=ot.__value="";var Gt=o(ot);Gt.value=Gt.__value="true";var At=o(Gt);At.value=At.__value="false",a(we),ra("blur",we,u),re("keydown",we,Yt=>{Yt.key==="Escape"&&P()}),ia(we,()=>e(x),Yt=>t(x,Yt)),s(Se,we)},Me=Se=>{var we=bs(),ot=r(we);ot.value=ot.__value="";var Gt=o(ot);Ze(Gt,17,()=>e(G).enumValues,Ot,(At,Yt)=>{var tt=_s(),gt=r(tt,!0);a(tt);var Et={};g(()=>{N(gt,e(Yt)),Et!==(Et=e(Yt))&&(tt.value=(tt.__value=e(Yt))??"")}),s(At,tt)}),a(we),ra("blur",we,u),re("keydown",we,At=>{At.key==="Escape"&&P()}),ia(we,()=>e(x),At=>t(x,At)),s(Se,we)},lt=Se=>{var we=gs();za(we),ra("blur",we,u),$t(we,()=>e(x),ot=>t(x,ot)),s(Se,we)},yt=Se=>{var we=ms();jt(we),g(()=>Ce(we,"type",e(G).type==="number"?"number":e(G).type==="datetime"?"datetime-local":"text")),ra("blur",we,u),$t(we,()=>e(x),ot=>t(x,ot)),s(Se,we)};I(Ht,Se=>{e(G).type==="boolean"?Se(Wt):e(G).type==="enum"&&e(G).enumValues?Se(Me,1):e(G).type==="json"?Se(lt,2):Se(yt,!1)})}s(Ue,ct)},nt=Ue=>{const ct=F(()=>e(G).linkFn&&!b(e($))?e(G).linkFn(e($)):null);var Ht=Ut(),Wt=Ae(Ht);{var Me=yt=>{var Se=hs(),we=r(Se,!0);a(Se),g(ot=>{Ce(Se,"href",e(ct)),Ce(Se,"data-row-id",e(te)),Ce(Se,"data-col-key",e(G).key),N(we,ot)},[()=>he(e($),e(G))]),ra("focus",Se,()=>{t(M,{rowId:e(te),colKey:e(G).key},!0)}),s(yt,Se)},lt=yt=>{var Se=ks();let we;var ot=r(Se);let Gt;var At=r(ot);{var Yt=xt=>{var ut=ys();s(xt,ut)},tt=F(()=>b(e($))),gt=xt=>{var ut=ws(),mt=r(ut,!0);a(ut),g(()=>N(mt,e($)?"✔":"✘")),s(xt,ut)},Et=xt=>{var ut=Te();g(mt=>N(ut,mt),[()=>he(e($),e(G))]),s(xt,ut)};I(At,xt=>{e(tt)?xt(Yt):e(G).type==="boolean"?xt(gt,1):xt(Et,!1)})}a(ot),a(Se),g((xt,ut,mt)=>{we=Rt(Se,1,"dg-cell-trigger svelte-45rfpz",null,we,xt),Ce(Se,"data-row-id",e(te)),Ce(Se,"data-col-key",e(G).key),Ce(Se,"aria-label",ut),Gt=Rt(ot,1,"dg-cell-value svelte-45rfpz",null,Gt,mt)},[()=>({"dg-cell-trigger--null":b(e($))}),()=>`${e(G).label}: ${b(e($))?"null":he(e($),e(G))}`,()=>({"dg-cell-value--null":b(e($))})]),re("click",Se,()=>{t(M,{rowId:e(te),colKey:e(G).key},!0)}),re("dblclick",Se,()=>st(e(te),e(G).key,e($))),ra("focus",Se,()=>{t(M,{rowId:e(te),colKey:e(G).key},!0)}),s(yt,Se)};I(Wt,yt=>{e(ct)?yt(Me):yt(lt,!1)})}s(Ue,Ht)};I(xe,Ue=>{e(je)?Ue(Fe):Ue(nt,!1)})}a(Pe),g(Ue=>{et=Rt(Pe,1,"dg-td svelte-45rfpz",null,et,{"dg-td--dirty":e(We),"dg-td--focused":e(Le),"dg-td--editing":e(je)}),Ka(Pe,`width:${Ue??""}px;`)},[()=>Oe(e(G))]),s(Q,Pe)});var _=o(i);{var Y=Q=>{var G=Es(),$=r(G);{var We=xe=>{var Fe=Ss();re("click",Fe,()=>{var nt;return(nt=l.onDuplicate)==null?void 0:nt.call(l,e(ue))}),s(xe,Fe)};I($,xe=>{l.onDuplicate&&xe(We)})}var je=o($,2);{var Le=xe=>{var Fe=Cs();re("click",Fe,()=>{var nt;return(nt=l.onRowInspect)==null?void 0:nt.call(l,e(ue))}),s(xe,Fe)};I(je,xe=>{l.onRowInspect&&xe(Le)})}var Pe=o(je,2);{var et=xe=>{var Fe=Is(),nt=Ae(Fe),Ue=r(nt);{var ct=lt=>{var yt=Ns();s(lt,yt)},Ht=F(()=>e(be).has(e(te))),Wt=lt=>{var yt=Te("✔");s(lt,yt)};I(Ue,lt=>{e(Ht)?lt(ct):lt(Wt,!1)})}a(nt);var Me=o(nt,2);g(lt=>nt.disabled=lt,[()=>e(be).has(e(te))]),re("click",nt,()=>ve(e(te))),re("click",Me,()=>ze(e(te))),s(xe,Fe)};I(Pe,xe=>{e(Qe)&&xe(et)})}a(G),s(Q,G)};I(_,Q=>{E()||Q(Y)})}a(Lt),g(Q=>Vt=Rt(Lt,1,"dg-row svelte-45rfpz",null,Vt,Q),[()=>({"dg-row--selected":e(V).has(e(te)),"dg-row--dirty":e(Qe)})]),s(q,Lt)}),s(n,c)};I(ca,n=>{se()?n(ba):A().length===0?n(ga,1):n(ma,!1)})}a(_a),a(ke),a(ie),Aa(ie,n=>t(m,n),()=>e(m));var ua=o(ie,2),ea=r(ua),Jt=r(ea),Dt=r(Jt);a(Jt);var ta=o(Jt,2);{var fa=n=>{var c=Rs(),h=r(c);h.value=h.__value="20";var q=o(h);q.value=q.__value="50";var ue=o(q);ue.value=ue.__value="100";var te=o(ue);te.value=te.__value="200";var Qe=o(te);Qe.value=Qe.__value="500",a(c);var Lt;Sr(c),g(Vt=>{Lt!==(Lt=Vt)&&(c.value=(c.__value=Vt)??"",Cr(c,Vt))},[()=>String(K())]),re("change",c,y),s(n,c)};I(ta,n=>{E()||n(fa)})}a(ea);var Zt=o(ea,2);{var la=n=>{var c=Ds(),h=r(c),q=o(h,2),ue=r(q);a(q);var te=o(q,2);a(c),g(()=>{h.disabled=ee()<=1,N(ue,`Page ${ee()??""} / ${e(Ke)??""}`),te.disabled=ee()>=e(Ke)}),re("click",h,p),re("click",te,O),s(n,c)};I(Zt,n=>{e(Ke)>1&&n(la)})}a(ua),a(L);var ka=o(L,2);{var ha=n=>{Zr(n,{get columns(){return X()},get saving(){return e(ce)},onClose:Ie,onSubmit:Ye,get open(){return e(de)},set open(c){t(de,c,!0)},get values(){return e(f)},set values(c){t(f,c,!0)},get errors(){return e(z)},set errors(c){t(z,c,!0)}})};I(ka,n=>{E()||n(ha)})}g(()=>N(Dt,`${J()??""} row${J()!==1?"s":""}`)),re("keydown",L,v),s(_e,j),na()}da(["keydown","click","change","mousedown","dblclick"]);function Qa({limit:_e,offset:l,search:X,sortKey:A,sortDir:se="asc",includeTotal:E}){const D=new URLSearchParams({limit:String(_e),offset:String(l)});return X&&D.set("search",X),A&&D.set("sort",`${A}:${se}`),E===!1&&D.set("includeTotal","0"),D.toString()}var Os=d('<label class="rdp-field__name svelte-yphh8m"> </label>'),js=d('<span class="rdp-field__name svelte-yphh8m"> </span>'),Fs=d('<select class="rdp-input svelte-yphh8m"><option>Unset</option><option>true</option><option>false</option></select>'),Ls=d("<option> </option>"),As=d('<select class="rdp-input svelte-yphh8m"><option>Select value</option><!></select>'),qs=d('<textarea class="rdp-input rdp-input--textarea svelte-yphh8m" rows="6"></textarea>'),Us=d('<input class="rdp-input svelte-yphh8m"/>'),Ms=d("<em>null</em>"),Bs=d('<span class="rdp-bool svelte-yphh8m"> </span>'),Ks=d('<pre class="rdp-json svelte-yphh8m"> </pre>'),Js=d('<a class="rdp-link svelte-yphh8m"> </a>'),Vs=d("<div><!></div>"),Hs=d('<div class="rdp-field svelte-yphh8m"><div class="rdp-field__header svelte-yphh8m"><!> <span class="rdp-field__type svelte-yphh8m"> </span></div> <!></div>'),Ws=d('<span class="rdp-spinner svelte-yphh8m"></span>'),Gs=d('<button type="button" class="rdp-btn svelte-yphh8m">Reset</button> <button type="button" class="rdp-btn rdp-btn--primary svelte-yphh8m"><!></button>',1),Ys=d('<button type="button" class="rdp-overlay svelte-yphh8m" aria-label="Close row detail"></button> <div class="rdp svelte-yphh8m" role="dialog" aria-modal="true" aria-labelledby="row-detail-title"><div class="rdp-header svelte-yphh8m"><div><h3 id="row-detail-title" class="rdp-title svelte-yphh8m">Row Detail</h3> <p class="rdp-subtitle svelte-yphh8m"><!></p></div> <button type="button" class="rdp-close svelte-yphh8m" aria-label="Close row detail">×</button></div> <div class="rdp-body svelte-yphh8m"></div> <div class="rdp-footer svelte-yphh8m"><button type="button" class="rdp-btn svelte-yphh8m">Close</button> <!></div></div>',1);function Qs(_e,l){sa(l,!0);const X=new Set(["id","createdAt","updatedAt"]),A=Symbol("invalid-value");let se=w(null),E=w(it({})),D=w(null),J=w(!1),ee=F(()=>l.columns.filter(f=>!X.has(f.key)&&f.editable!==!1)),K=F(()=>e(ee).length>0&&!!l.onSave),ne=F(()=>!!oe());St(()=>{!l.open||!l.row||(t(D,{...l.row},!0),t(E,V(l.row),!0),requestAnimationFrame(()=>{var z;const f=(z=e(se))==null?void 0:z.querySelector("input, select, textarea");f==null||f.focus()}))});function V(f){const z={};for(const ce of l.columns){const Ne=f[ce.key];if(Ne==null){z[ce.key]="";continue}if(ce.type==="boolean"){z[ce.key]=Ne?"true":"false";continue}if(ce.type==="json"&&typeof Ne=="object"){z[ce.key]=JSON.stringify(Ne,null,2);continue}if(ce.type==="datetime"&&typeof Ne=="string"){z[ce.key]=T(Ne);continue}z[ce.key]=String(Ne)}return z}function T(f){const z=new Date(f);return Number.isNaN(z.getTime())?f:new Date(z.getTime()-z.getTimezoneOffset()*6e4).toISOString().slice(0,16)}function be(f){l.open&&f.key==="Escape"&&!e(J)&&l.onClose()}function M(f,z){if(f==null)return"null";if(z.type==="boolean")return f?"true":"false";if(z.type==="json"&&typeof f=="object")return JSON.stringify(f,null,2);if(z.type==="datetime"&&typeof f=="string")try{return new Date(f).toLocaleString()}catch{return String(f)}return String(f)}function ae(f,z){if(z===""&&f.type!=="text")return null;if(f.type==="number"){const ce=Number(z);return Number.isNaN(ce)?A:ce}if(f.type==="boolean")return z===""?null:z==="true"||z==="1";if(f.type==="json"){if(z==="")return null;try{return JSON.parse(z)}catch{return A}}return z}function x(f){return f==null}function H(f){return typeof f=="object"&&f!==null}function fe(f,z){return JSON.stringify(f)===JSON.stringify(z)}function oe(){if(!e(D))return null;const f={};for(const z of e(ee)){const ce=ae(z,e(E)[z.key]??"");if(ce===A)return null;fe(ce,e(D)[z.key])||(f[z.key]=ce)}return Object.keys(f).length>0?f:null}function ge(f){return f.type==="number"?"number":f.type==="datetime"?"datetime-local":"text"}function S(f){return`row-detail-field-${f}`}async function U(){if(!e(D)||!l.onSave)return;const f=oe();if(f){for(const z of e(ee))if(ae(z,e(E)[z.key]??"")===A){dt(`Invalid ${z.type} value for ${z.label}`);return}t(J,!0);try{await l.onSave(String(e(D).id),f),t(D,{...e(D),...f},!0),t(E,V(e(D)),!0)}catch(z){dt(z instanceof Error?z.message:"Save failed")}finally{t(J,!1)}}}function m(){e(D)&&t(E,V(e(D)),!0)}var C=Ut();ra("keydown",Xa,be);var W=Ae(C);{var de=f=>{var z=Ys(),ce=Ae(z),Ne=o(ce,2),me=r(Ne),Ke=r(me),le=o(r(Ke),2),B=r(le);{var De=he=>{var b=Te("Inspect and update this record without leaving the table.");s(he,b)},Je=he=>{var b=Te("This record is read-only.");s(he,b)};I(B,he=>{e(K)?he(De):he(Je,!1)})}a(le),a(Ke);var Oe=o(Ke,2);a(me);var at=o(me,2);Ze(at,21,()=>l.columns,he=>he.key,(he,b)=>{const k=F(()=>e(D)[e(b).key]),Ve=F(()=>!X.has(e(b).key)&&e(b).editable!==!1&&!!l.onSave);var st=Hs(),u=r(st),P=r(u);{var ve=Ye=>{var Ie=Os(),He=r(Ie,!0);a(Ie),g(vt=>{Ce(Ie,"for",vt),N(He,e(b).label)},[()=>S(e(b).key)]),s(Ye,Ie)},ze=Ye=>{var Ie=js(),He=r(Ie,!0);a(Ie),g(()=>N(He,e(b).label)),s(Ye,Ie)};I(P,Ye=>{e(Ve)?Ye(ve):Ye(ze,!1)})}var ht=o(P,2),Ft=r(ht,!0);a(ht),a(u);var Nt=o(u,2);{var Mt=Ye=>{var Ie=Ut(),He=Ae(Ie);{var vt=O=>{var y=Fs(),j=r(y);j.value=j.__value="";var L=o(j);L.value=L.__value="true";var R=o(L);R.value=R.__value="false",a(y),g(Z=>{Ce(y,"id",Z),y.disabled=e(J)},[()=>S(e(b).key)]),ia(y,()=>e(E)[e(b).key],Z=>e(E)[e(b).key]=Z),s(O,y)},ye=O=>{var y=As(),j=r(y);j.value=j.__value="";var L=o(j);Ze(L,17,()=>e(b).enumValues,Ot,(R,Z)=>{var ie=Ls(),ke=r(ie,!0);a(ie);var Re={};g(()=>{N(ke,e(Z)),Re!==(Re=e(Z))&&(ie.value=(ie.__value=e(Z))??"")}),s(R,ie)}),a(y),g(R=>{Ce(y,"id",R),y.disabled=e(J)},[()=>S(e(b).key)]),ia(y,()=>e(E)[e(b).key],R=>e(E)[e(b).key]=R),s(O,y)},v=O=>{var y=qs();za(y),g(j=>{Ce(y,"id",j),y.disabled=e(J)},[()=>S(e(b).key)]),$t(y,()=>e(E)[e(b).key],j=>e(E)[e(b).key]=j),s(O,y)},p=O=>{var y=Us();jt(y),g((j,L)=>{Ce(y,"id",j),Ce(y,"type",L),y.disabled=e(J)},[()=>S(e(b).key),()=>ge(e(b))]),$t(y,()=>e(E)[e(b).key],j=>e(E)[e(b).key]=j),s(O,y)};I(He,O=>{e(b).type==="boolean"?O(vt):e(b).type==="enum"&&e(b).enumValues?O(ye,1):e(b).type==="json"?O(v,2):O(p,!1)})}s(Ye,Ie)},Qt=Ye=>{var Ie=Vs();let He;var vt=r(Ie);{var ye=R=>{var Z=Ms();s(R,Z)},v=F(()=>x(e(k))),p=R=>{var Z=Bs(),ie=r(Z,!0);a(Z),g(()=>N(ie,e(k)?"true":"false")),s(R,Z)},O=R=>{var Z=Ks(),ie=r(Z,!0);a(Z),g(ke=>N(ie,ke),[()=>JSON.stringify(e(k),null,2)]),s(R,Z)},y=F(()=>e(b).type==="json"&&H(e(k))),j=R=>{const Z=F(()=>e(b).linkFn(e(k)));var ie=Ut(),ke=Ae(ie);{var Re=Bt=>{var $e=Js(),_t=r($e,!0);a($e),g(Kt=>{Ce($e,"href",e(Z)),N(_t,Kt)},[()=>M(e(k),e(b))]),s(Bt,$e)},It=Bt=>{var $e=Te();g(_t=>N($e,_t),[()=>M(e(k),e(b))]),s(Bt,$e)};I(ke,Bt=>{e(Z)?Bt(Re):Bt(It,!1)})}s(R,ie)},L=R=>{var Z=Te();g(ie=>N(Z,ie),[()=>M(e(k),e(b))]),s(R,Z)};I(vt,R=>{e(v)?R(ye):e(b).type==="boolean"?R(p,1):e(y)?R(O,2):e(b).linkFn?R(j,3):R(L,!1)})}a(Ie),g(R=>He=Rt(Ie,1,"rdp-field__value svelte-yphh8m",null,He,R),[()=>({"rdp-field__value--null":x(e(k))})]),s(Ye,Ie)};I(Nt,Ye=>{e(Ve)?Ye(Mt):Ye(Qt,!1)})}a(st),g(()=>N(Ft,e(b).type)),s(he,st)}),a(at);var Xe=o(at,2),qe=r(Xe),rt=o(qe,2);{var kt=he=>{var b=Gs(),k=Ae(b),Ve=o(k,2),st=r(Ve);{var u=ve=>{var ze=Ws();s(ve,ze)},P=ve=>{var ze=Te("Save Changes");s(ve,ze)};I(st,ve=>{e(J)?ve(u):ve(P,!1)})}a(Ve),g(()=>{k.disabled=e(J)||!e(ne),Ve.disabled=e(J)||!e(ne)}),re("click",k,m),re("click",Ve,U),s(he,b)};I(rt,he=>{e(K)&&he(kt)})}a(Xe),a(Ne),Aa(Ne,he=>t(se,he),()=>e(se)),g(()=>{Oe.disabled=e(J),qe.disabled=e(J)}),re("click",ce,()=>!e(J)&&l.onClose()),re("click",Oe,function(...he){var b;(b=l.onClose)==null||b.apply(this,he)}),re("click",qe,function(...he){var b;(b=l.onClose)==null||b.apply(this,he)}),s(f,z)};I(W,f=>{l.open&&e(D)&&f(de)})}s(_e,C),na()}da(["click"]);var Zs=d("<!> <!>",1),Xs=d('<div class="csv-error svelte-198lwhz"> </div>'),$s=d('<span class="csv-filename svelte-198lwhz"> </span>'),en=d("<option> </option>"),tn=d('<div class="csv-map-row svelte-198lwhz"><span class="csv-map-from svelte-198lwhz"> </span> <span class="csv-map-arrow svelte-198lwhz">→</span> <select class="csv-map-select svelte-198lwhz"><option>— Skip —</option><!></select></div>'),an=d('<th class="csv-preview-th svelte-198lwhz"> </th>'),rn=d('<td class="csv-preview-td svelte-198lwhz"> </td>'),sn=d("<tr></tr>"),nn=d('<div class="csv-section svelte-198lwhz"><h4 class="csv-section-title svelte-198lwhz">Column Mapping</h4> <div class="csv-mappings svelte-198lwhz"></div></div> <div class="csv-section svelte-198lwhz"><h4 class="csv-section-title svelte-198lwhz">Preview (first 5 rows)</h4> <div class="csv-preview-wrap svelte-198lwhz"><table class="csv-preview-table svelte-198lwhz"><thead><tr></tr></thead><tbody></tbody></table></div></div>',1),ln=d('<div class="csv-import svelte-198lwhz"><!> <div class="csv-upload svelte-198lwhz"><label class="csv-upload-label svelte-198lwhz"><span>Choose CSV file</span> <input type="file" accept=".csv,text/csv" class="csv-file-input svelte-198lwhz"/></label> <!></div> <!></div>'),on=d('<div class="records-tab svelte-198lwhz"><div class="toolbar svelte-198lwhz"><form class="search-bar svelte-198lwhz"><input class="search-input svelte-198lwhz" type="text" placeholder="Search records..."/> <!> <!></form> <div class="toolbar__right svelte-198lwhz"><div class="toolbar__meta svelte-198lwhz"> </div> <!> <!> <!></div></div> <!> <!> <!></div>');function dn(_e,l){sa(l,!0);const X=()=>ya(qt,"$schemaStore",A),[A,se]=Ra();let E=w(!0),D=w(it([])),J=w(it({})),ee=w(0),K=w(void 0),ne=w(1),V=w(20),T=w(""),be=w(""),M=w(""),ae=w("asc"),x=w(null),H=w(!1),fe=w(!1),oe=w(null),ge=w(it([])),S=w(it([])),U=w(it({})),m=w(!1),C=w(""),W=F(()=>Object.entries(e(J)).filter(([v])=>!Ha.includes(v))),de=F(()=>Object.keys(e(J))),f=F(()=>e(de).map(v=>{const p=e(J)[v],O=Ha.includes(v);let y="text";(p==null?void 0:p.type)==="number"||(p==null?void 0:p.type)==="integer"||(p==null?void 0:p.type)==="float"?y="number":(p==null?void 0:p.type)==="boolean"?y="boolean":(p==null?void 0:p.type)==="json"?y="json":(p==null?void 0:p.type)==="datetime"||(p==null?void 0:p.type)==="date"?y="datetime":p!=null&&p.enum&&p.enum.length>0&&(y="enum");let j;if(p!=null&&p.references){const L=p.references,R=typeof L=="string"?L:L.table;j=Z=>Z==null||Z===""?null:Ir(Ea,R,{instanceId:l.instanceId,search:String(Z)})}return{key:v,label:v,type:y,editable:!O&&v!=="id",width:v==="id"?280:y==="json"?200:150,enumValues:p==null?void 0:p.enum,linkFn:j}}));function z(v){const p=v?`data/tables/${encodeURIComponent(l.tableName)}/records/${encodeURIComponent(v)}`:`data/tables/${encodeURIComponent(l.tableName)}/records`;if(!l.instanceId)return p;const O=new URLSearchParams({instanceId:l.instanceId});return`${p}?${O.toString()}`}function ce(){return e(K)==="postgres"||e(K)==="neon"}async function Ne(){try{const v=Qa({limit:1,offset:0,search:e(T),includeTotal:!0}),p=await bt.fetch(xa(l.tableName,{instanceId:l.instanceId,params:new URLSearchParams(v)}));typeof p.total=="number"&&t(ee,p.total,!0)}catch{}}async function me(v={}){t(E,!0);try{const p=(e(ne)-1)*e(V),O=Qa({limit:e(V),offset:p,search:e(T),sortKey:e(M),sortDir:e(ae),includeTotal:!ce()}),y=await bt.fetch(xa(l.tableName,{instanceId:l.instanceId,params:new URLSearchParams(O)})),j=y.items??y.data??y.rows??[];if(t(D,j,!0),t(ee,typeof y.total=="number"?y.total:e(D).length,!0),e(H)&&e(x)){const L=j.find(R=>{var Z;return String(R.id)===String((Z=e(x))==null?void 0:Z.id)});L&&t(x,L,!0)}ce()&&v.refreshTotal!==!1&&Ne()}catch(p){dt(p instanceof Error?p.message:"Failed to load records"),t(D,[],!0)}finally{t(E,!1)}}St(()=>{const v=l.tableName;if(l.instanceId,v){const p=X().schema[l.tableName];p&&(t(J,p.fields,!0),t(K,p.provider,!0)),t(ne,1),t(T,""),t(be,""),t(M,""),t(ae,"asc"),yr(()=>me())}});function Ke(){t(T,e(be),!0),t(ne,1),me()}function le(){t(be,""),t(T,""),t(ne,1),me()}async function B(v,p){await bt.fetch(z(v),{method:"PUT",body:p}),e(x)&&String(e(x).id)===v&&t(x,{...e(x),...p},!0),Ct("Record updated"),await me({refreshTotal:!1})}async function De(v){for(const p of v)await bt.fetch(z(p),{method:"DELETE"});Ct(`${v.length} record${v.length>1?"s":""} deleted`),await me()}async function Je(v){await bt.fetch(xa(l.tableName,{instanceId:l.instanceId}),{method:"POST",body:v}),Ct("Record created"),await me()}function Oe(v){t(ne,v,!0),me({refreshTotal:!1})}function at(v){t(V,v,!0),t(ne,1),me()}function Xe(v,p){t(M,v,!0),t(ae,p,!0),me({refreshTotal:!1})}function qe(v){t(x,v,!0),t(H,!0)}async function rt(){try{const v=await bt.fetch(xa(l.tableName,{instanceId:l.instanceId,params:{limit:1e4,includeTotal:0}})),p=v.items??v.data??v.rows??[];if(p.length===0){dt("No records to export");return}const O=Rr(e(de),p),y=new Blob([O],{type:"text/csv;charset=utf-8;"});Va(y,`${l.tableName}.csv`),Ct("CSV exported")}catch(v){dt(v instanceof Error?v.message:"Export failed")}}async function kt(){try{const v=await bt.fetch(xa(l.tableName,{instanceId:l.instanceId,params:{limit:1e4,includeTotal:0}})),p=v.items??v.data??v.rows??[];if(p.length===0){dt("No records to export");return}const O=new Blob([JSON.stringify(p,null,2)],{type:"application/json"});Va(O,`${l.tableName}.json`),Ct("JSON exported")}catch(v){dt(v instanceof Error?v.message:"JSON export failed")}}function he(){t(oe,null),t(ge,[],!0),t(S,[],!0),t(U,{},!0),t(C,""),t(fe,!0)}async function b(v){var y;const O=(y=v.target.files)==null?void 0:y[0];if(O){t(oe,O,!0),t(C,"");try{const j=await O.text(),L=Wa(j);t(ge,L.headers,!0),t(S,L.rows.slice(0,5),!0);const R={};for(const Z of L.headers){const ie=Z.toLowerCase().trim();for(const[ke]of e(W))if(ke.toLowerCase()===ie){R[Z]=ke;break}}t(U,R,!0)}catch{t(C,"Failed to parse CSV file")}}}async function k(){if(e(oe)){t(m,!0),t(C,"");try{const v=await e(oe).text(),p=Wa(v),O=[];for(const j of p.rows){const L={};for(let R=0;R<p.headers.length;R++){const Z=p.headers[R],ie=e(U)[Z];if(!ie)continue;const ke=j[R];if(ke===""||ke===void 0)continue;const Re=e(J)[ie];if((Re==null?void 0:Re.type)==="number"||(Re==null?void 0:Re.type)==="integer"||(Re==null?void 0:Re.type)==="float")L[ie]=Number(ke);else if((Re==null?void 0:Re.type)==="boolean")L[ie]=ke==="true"||ke==="1";else if((Re==null?void 0:Re.type)==="json")try{L[ie]=JSON.parse(ke)}catch{L[ie]=ke}else L[ie]=ke}Object.keys(L).length>0&&O.push(L)}if(O.length===0){t(C,"No valid records to import. Check column mapping.");return}const y=await bt.fetch(`data/tables/${encodeURIComponent(l.tableName)}/import`,{method:"POST",body:{records:O,mode:"create"}});y.errors&&y.errors.length>0?dt(`Imported ${y.imported} records with ${y.errors.length} errors`):Ct(`Imported ${y.imported} records`),t(fe,!1),await me()}catch(v){t(C,v instanceof Error?v.message:"Import failed",!0)}finally{t(m,!1)}}}var Ve=on(),st=r(Ve),u=r(st),P=r(u);jt(P);var ve=o(P,2);pt(ve,{variant:"secondary",size:"sm",type:"submit",children:(v,p)=>{Be();var O=Te("Search");s(v,O)},$$slots:{default:!0}});var ze=o(ve,2);{var ht=v=>{pt(v,{variant:"ghost",size:"sm",onclick:le,children:(p,O)=>{Be();var y=Te("Clear");s(p,y)},$$slots:{default:!0}})};I(ze,v=>{e(T)&&v(ht)})}a(u);var Ft=o(u,2),Nt=r(Ft),Mt=r(Nt);a(Nt);var Qt=o(Nt,2);pt(Qt,{variant:"ghost",size:"sm",onclick:he,children:(v,p)=>{Be();var O=Te("Import CSV");s(v,O)},$$slots:{default:!0}});var Ye=o(Qt,2);pt(Ye,{variant:"ghost",size:"sm",onclick:rt,children:(v,p)=>{Be();var O=Te("Export CSV");s(v,O)},$$slots:{default:!0}});var Ie=o(Ye,2);pt(Ie,{variant:"ghost",size:"sm",onclick:kt,children:(v,p)=>{Be();var O=Te("Export JSON");s(v,O)},$$slots:{default:!0}}),a(Ft),a(st);var He=o(st,2);{let v=F(()=>e(T)?"No records match your search.":"This table has no records yet.");Ps(He,{get columns(){return e(f)},get rows(){return e(D)},get tableName(){return l.tableName},get loading(){return e(E)},get totalCount(){return e(ee)},get page(){return e(ne)},get pageSize(){return e(V)},get emptyMessage(){return e(v)},onSave:B,onDelete:De,onCreate:Je,onPageChange:Oe,onPageSizeChange:at,onSort:Xe,onRowInspect:qe})}var vt=o(He,2);$a(vt,{title:"Import CSV",get open(){return e(fe)},set open(p){t(fe,p,!0)},footer:p=>{var O=Zs(),y=Ae(O);pt(y,{variant:"secondary",onclick:()=>t(fe,!1),children:(L,R)=>{Be();var Z=Te("Cancel");s(L,Z)},$$slots:{default:!0}});var j=o(y,2);{let L=F(()=>!e(oe)||e(ge).length===0);pt(j,{variant:"primary",get disabled(){return e(L)},get loading(){return e(m)},onclick:k,children:(R,Z)=>{Be();var ie=Te("Import");s(R,ie)},$$slots:{default:!0}})}s(p,O)},children:(p,O)=>{var y=ln(),j=r(y);{var L=$e=>{var _t=Xs(),Kt=r(_t,!0);a(_t),g(()=>N(Kt,e(C))),s($e,_t)};I(j,$e=>{e(C)&&$e(L)})}var R=o(j,2),Z=r(R),ie=o(r(Z),2);a(Z);var ke=o(Z,2);{var Re=$e=>{var _t=$s(),Kt=r(_t,!0);a(_t),g(()=>N(Kt,e(oe).name)),s($e,_t)};I(ke,$e=>{e(oe)&&$e(Re)})}a(R);var It=o(R,2);{var Bt=$e=>{var _t=nn(),Kt=Ae(_t),va=o(r(Kt),2);Ze(va,21,()=>e(ge),Ot,(ea,Jt)=>{var Dt=tn(),ta=r(Dt),fa=r(ta,!0);a(ta);var Zt=o(ta,4),la=r(Zt);la.value=la.__value="";var ka=o(la);Ze(ka,17,()=>e(W),Ot,(ha,n)=>{var c=F(()=>wr(e(n),1));let h=()=>e(c)[0];var q=en(),ue=r(q,!0);a(q);var te={};g(()=>{N(ue,h()),te!==(te=h())&&(q.value=(q.__value=h())??"")}),s(ha,q)}),a(Zt),a(Dt),g(()=>N(fa,e(Jt))),ia(Zt,()=>e(U)[e(Jt)],ha=>e(U)[e(Jt)]=ha),s(ea,Dt)}),a(va),a(Kt);var _a=o(Kt,2),ca=o(r(_a),2),ba=r(ca),ga=r(ba),ma=r(ga);Ze(ma,21,()=>e(ge),Ot,(ea,Jt)=>{var Dt=an(),ta=r(Dt,!0);a(Dt),g(()=>N(ta,e(Jt))),s(ea,Dt)}),a(ma),a(ga);var ua=o(ga);Ze(ua,21,()=>e(S),Ot,(ea,Jt)=>{var Dt=sn();Ze(Dt,21,()=>e(Jt),Ot,(ta,fa)=>{var Zt=rn(),la=r(Zt,!0);a(Zt),g(()=>N(la,e(fa))),s(ta,Zt)}),a(Dt),s(ea,Dt)}),a(ua),a(ba),a(ca),a(_a),s($e,_t)};I(It,$e=>{e(ge).length>0&&$e(Bt)})}a(y),re("change",ie,b),s(p,y)},$$slots:{footer:!0,default:!0}});var ye=o(vt,2);Qs(ye,{get row(){return e(x)},get columns(){return e(f)},onSave:B,onClose:()=>{t(H,!1)},get open(){return e(H)},set open(v){t(H,v,!0)}}),a(Ve),g(()=>N(Mt,`${e(ee)??""} record${e(ee)!==1?"s":""}`)),ra("submit",u,v=>{v.preventDefault(),Ke()}),$t(P,()=>e(be),v=>t(be,v)),s(_e,Ve),na(),se()}da(["change"]);var vn=d('<div class="index-error svelte-v6rf4z"> </div>'),cn=d('<div class="index-form svelte-v6rf4z"><!> <div class="index-form__row"><!></div> <div class="index-form__row"><!></div> <div class="index-form__actions svelte-v6rf4z"><!></div></div>'),un=d('<div class="index-empty svelte-v6rf4z">No indexes defined.</div>'),fn=d('<span class="index-unique svelte-v6rf4z">UNIQUE</span>'),pn=d('<button class="index-delete svelte-v6rf4z" title="Remove index"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M4 4L10 10M10 4L4 10" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"></path></svg></button>'),_n=d('<div class="index-row svelte-v6rf4z"><code class="index-fields svelte-v6rf4z"> </code> <!> <!></div>'),bn=d('<div class="index-editor svelte-v6rf4z"><div class="index-editor__header svelte-v6rf4z"><span class="index-editor__title svelte-v6rf4z"> </span> <!></div> <!> <!></div>');function gn(_e,l){sa(l,!0);let X=wt(l,"indexes",19,()=>[]),A=wt(l,"availableFields",19,()=>[]),se=wt(l,"readonly",3,!1),E=w(!1),D=w(""),J=w(!1),ee=w("");function K(){var m;const S=e(D).split(",").map(C=>C.trim()).filter(Boolean);if(S.length===0){t(ee,"At least one field is required.");return}const U=S.filter(C=>!A().includes(C));if(U.length>0){t(ee,`Unknown field(s): ${U.join(", ")}`);return}(m=l.onadd)==null||m.call(l,{fields:S,unique:e(J)||void 0}),t(D,""),t(J,!1),t(ee,""),t(E,!1)}var ne=bn(),V=r(ne),T=r(V),be=r(T);a(T);var M=o(T,2);{var ae=S=>{pt(S,{variant:"secondary",size:"sm",onclick:()=>t(E,!e(E)),children:(U,m)=>{Be();var C=Te();g(()=>N(C,e(E)?"Cancel":"Add Index")),s(U,C)},$$slots:{default:!0}})};I(M,S=>{se()||S(ae)})}a(V);var x=o(V,2);{var H=S=>{var U=cn(),m=r(U);{var C=me=>{var Ke=vn(),le=r(Ke,!0);a(Ke),g(()=>N(le,e(ee))),s(me,Ke)};I(m,me=>{e(ee)&&me(C)})}var W=o(m,2),de=r(W);Tr(de,{placeholder:"field1, field2",label:"Fields (comma-separated)",get value(){return e(D)},set value(me){t(D,me,!0)}}),a(W);var f=o(W,2),z=r(f);Pr(z,{label:"Unique index",get checked(){return e(J)},set checked(me){t(J,me,!0)}}),a(f);var ce=o(f,2),Ne=r(ce);pt(Ne,{variant:"primary",size:"sm",onclick:K,children:(me,Ke)=>{Be();var le=Te("Add");s(me,le)},$$slots:{default:!0}}),a(ce),a(U),s(S,U)};I(x,S=>{e(E)&&S(H)})}var fe=o(x,2);{var oe=S=>{var U=un();s(S,U)},ge=S=>{var U=Ut(),m=Ae(U);Ze(m,17,X,Ot,(C,W,de)=>{var f=_n(),z=r(f),ce=r(z,!0);a(z);var Ne=o(z,2);{var me=B=>{var De=fn();s(B,De)};I(Ne,B=>{e(W).unique&&B(me)})}var Ke=o(Ne,2);{var le=B=>{var De=pn();re("click",De,()=>{var Je;return(Je=l.ondelete)==null?void 0:Je.call(l,de)}),s(B,De)};I(Ke,B=>{se()||B(le)})}a(f),g(B=>N(ce,B),[()=>e(W).fields.join(", ")]),s(C,f)}),s(S,U)};I(fe,S=>{X().length===0&&!e(E)?S(oe):S(ge,!1)})}a(ne),g(()=>N(be,`Indexes (${X().length??""})`)),s(_e,ne),na()}da(["click"]);var mn=d('<div class="fts-empty svelte-974m0i">No string/text fields available for FTS.</div>'),hn=d('<span class="fts-active svelte-974m0i">active</span>'),yn=d('<label class="fts-item svelte-974m0i"><input type="checkbox"/> <code class="svelte-974m0i"> </code> <!></label>'),wn=d('<div class="fts-list svelte-974m0i"></div>'),kn=d('<div class="fts-editor svelte-974m0i"><div class="fts-editor__header svelte-974m0i"><span class="fts-editor__title svelte-974m0i">Full-Text Search</span> <!></div> <!></div>');function xn(_e,l){sa(l,!0);let X=wt(l,"ftsFields",19,()=>[]),A=wt(l,"availableFields",19,()=>[]),se=wt(l,"readonly",3,!1),E=w(it({})),D=w(!1);St(()=>{const x={};for(const H of A())x[H]=X().includes(H);t(E,x,!0),t(D,!1)});function J(x){e(E)[x]=!e(E)[x],t(D,!0)}function ee(){var H;const x=Object.entries(e(E)).filter(([,fe])=>fe).map(([fe])=>fe);(H=l.onsave)==null||H.call(l,x),t(D,!1)}var K=kn(),ne=r(K),V=o(r(ne),2);{var T=x=>{pt(x,{variant:"primary",size:"sm",onclick:ee,children:(H,fe)=>{Be();var oe=Te("Save FTS");s(H,oe)},$$slots:{default:!0}})};I(V,x=>{!se()&&e(D)&&x(T)})}a(ne);var be=o(ne,2);{var M=x=>{var H=mn();s(x,H)},ae=x=>{var H=wn();Ze(H,20,A,fe=>fe,(fe,oe)=>{var ge=yn(),S=r(ge);jt(S);var U=o(S,2),m=r(U,!0);a(U);var C=o(U,2);{var W=f=>{var z=hn();s(f,z)},de=F(()=>X().includes(oe));I(C,f=>{e(de)&&f(W)})}a(ge),g(()=>{Ia(S,e(E)[oe]??!1),S.disabled=se(),N(m,oe)}),re("change",S,()=>J(oe)),s(fe,ge)}),a(H),s(x,H)};I(be,x=>{A().length===0?x(M):x(ae,!1)})}a(K),s(_e,K),na()}da(["change"]);var Sn=d('<div class="schema-empty svelte-aw0zhs">Loading schema...</div>'),Cn=d('<div class="schema-empty svelte-aw0zhs"> </div>'),Nn=d('<div class="readonly-banner svelte-aw0zhs">Schema editing requires dev mode. Viewing in read-only mode.</div>'),In=d('<div class="rename-inline svelte-aw0zhs"><input class="rename-input svelte-aw0zhs" placeholder="new_name"/> <!> <!></div>'),En=d("<!> <!>",1),zn=d('<div class="schema-note svelte-aw0zhs"> </div>'),Rn=d('<div class="schema-actions svelte-aw0zhs"><!></div> <!>',1),Dn=d('<!> <!> <div class="schema-namespace svelte-aw0zhs">Namespace: <code class="svelte-aw0zhs"> </code></div> <!>',1),Tn=d('<div class="schema-tab svelte-aw0zhs"><!></div> <!> <!> <!>',1);function Pn(_e,l){sa(l,!0);const X=()=>ya(er,"$devInfoStore",se),A=()=>ya(qt,"$schemaStore",se),[se,E]=Ra();let D=w(null),J=w("columns"),ee=F(()=>X().devMode),K=w(!1),ne=w("create"),V=w(""),T=w(it({type:"string"})),be=w(!1),M=w(""),ae=w(!1),x=w(!1),H=w("");const fe=[{id:"columns",label:"Columns"},{id:"indexes",label:"Indexes"},{id:"fts",label:"FTS"}];St(()=>{const u=A();l.tableName&&u.schema[l.tableName]?t(D,u.schema[l.tableName],!0):t(D,null)});let oe=F(()=>{var u;return((u=e(D))==null?void 0:u.fields)??{}}),ge=F(()=>{var u;return((u=e(D))==null?void 0:u.indexes)??[]}),S=F(()=>{var u;return((u=e(D))==null?void 0:u.fts)??[]}),U=F(()=>{var u;return((u=e(D))==null?void 0:u.namespace)??"default"}),m=F(()=>{var u;return(u=e(D))!=null&&u.dynamic?"Table rename is unavailable for per-tenant databases because each tenant instance has its own physical database.":""}),C=F(()=>Object.entries(e(oe)).filter(([,u])=>u.type==="string"||u.type==="text").map(([u])=>u));function W(){t(ne,"create"),t(V,""),t(T,{type:"string"},!0),t(K,!0)}function de(u,P){t(ne,"edit"),t(V,u,!0),t(T,{...P},!0),t(K,!0)}function f(u){t(M,u,!0),t(be,!0)}function z(u){return JSON.stringify({fields:u.fields,unique:u.unique===!0?!0:void 0})}function ce(u,P){return JSON.stringify(u??null)===JSON.stringify(P)}function Ne(u,P){return u.length!==P.length?!1:u.every((ve,ze)=>z(ve)===z(P[ze]))}function me(u,P){if(u.length!==P.length)return!1;const ve=[...u].sort(),ze=[...P].sort();return ve.every((ht,Ft)=>ht===ze[Ft])}async function Ke(u,P){try{e(ne)==="create"?(await bt.schemaMutation(`schema/tables/${encodeURIComponent(l.tableName)}/columns`,{method:"POST",body:{dbKey:e(U),columnName:u,fieldDef:P}}),Ct(`Column "${u}" added`)):(await bt.schemaMutation(`schema/tables/${encodeURIComponent(l.tableName)}/columns/${u}`,{method:"PUT",body:{dbKey:e(U),fieldDef:P}}),Ct(`Column "${u}" updated`)),await qt.waitForSchema(ve=>{const ze=ve[l.tableName];return!!(ze&&ce(ze.fields[u],P))})}catch(ve){dt(ve instanceof Error?ve.message:"Failed to save column")}}async function le(){t(be,!1);try{await bt.schemaMutation(`schema/tables/${encodeURIComponent(l.tableName)}/columns/${e(M)}`,{method:"DELETE",body:{dbKey:e(U)}}),Ct(`Column "${e(M)}" deleted`),await qt.waitForSchema(u=>{const P=u[l.tableName];return!!(P&&!(e(M)in P.fields))})}catch(u){dt(u instanceof Error?u.message:"Failed to delete column")}}async function B(u){try{const P=[...e(ge),u];await bt.schemaMutation(`schema/tables/${encodeURIComponent(l.tableName)}/indexes`,{method:"POST",body:{dbKey:e(U),indexDef:u}}),Ct("Index added"),await qt.waitForSchema(ve=>{const ze=ve[l.tableName];return!!(ze&&Ne(ze.indexes??[],P))})}catch(P){dt(P instanceof Error?P.message:"Failed to add index")}}async function De(u){try{const P=e(ge).filter((ve,ze)=>ze!==u);await bt.schemaMutation(`schema/tables/${encodeURIComponent(l.tableName)}/indexes/${u}`,{method:"DELETE",body:{dbKey:e(U)}}),Ct("Index removed"),await qt.waitForSchema(ve=>{const ze=ve[l.tableName];return!!(ze&&Ne(ze.indexes??[],P))})}catch(P){dt(P instanceof Error?P.message:"Failed to remove index")}}async function Je(u){try{await bt.schemaMutation(`schema/tables/${encodeURIComponent(l.tableName)}/fts`,{method:"PUT",body:{dbKey:e(U),fields:u}}),Ct("FTS configuration updated"),await qt.waitForSchema(P=>{const ve=P[l.tableName];return!!(ve&&me(ve.fts??[],u))})}catch(P){dt(P instanceof Error?P.message:"Failed to update FTS")}}async function Oe(){t(ae,!1);try{await bt.schemaMutation(`schema/tables/${encodeURIComponent(l.tableName)}`,{method:"DELETE",body:{dbKey:e(U)}}),Ct(`Table "${l.tableName}" deleted`),await qt.waitForSchema(u=>!(l.tableName in u)),La(`${Ea}/database/tables`)}catch(u){dt(u instanceof Error?u.message:"Failed to delete table")}}async function at(){const u=e(H).trim();if(u)try{await bt.schemaMutation(`schema/tables/${encodeURIComponent(l.tableName)}/rename`,{method:"PUT",body:{dbKey:e(U),newName:u}}),Ct(`Table renamed to "${u}"`),await qt.waitForSchema(P=>!(l.tableName in P)&&!!P[u],{timeoutMessage:`Table rename to "${u}" did not propagate in time.`}),await qt.waitForTableReady(u,{namespace:e(U)}),La(`${Ea}/database/tables/${encodeURIComponent(u)}`)}catch(P){dt(P instanceof Error?P.message:"Failed to rename table")}finally{t(x,!1)}}var Xe=Tn(),qe=Ae(Xe),rt=r(qe);{var kt=u=>{var P=Sn();s(u,P)},he=u=>{var P=Cn(),ve=r(P);a(P),g(()=>N(ve,`Table "${l.tableName??""}" not found.`)),s(u,P)},b=u=>{var P=Dn(),ve=Ae(P);{var ze=Ie=>{var He=Nn();s(Ie,He)};I(ve,Ie=>{e(ee)||Ie(ze)})}var ht=o(ve,2);{var Ft=Ie=>{var He=Rn(),vt=Ae(He),ye=r(vt);{var v=j=>{var L=In(),R=r(L);jt(R);var Z=o(R,2);pt(Z,{variant:"primary",size:"sm",onclick:at,children:(ke,Re)=>{Be();var It=Te("Rename");s(ke,It)},$$slots:{default:!0}});var ie=o(Z,2);pt(ie,{variant:"secondary",size:"sm",onclick:()=>t(x,!1),children:(ke,Re)=>{Be();var It=Te("Cancel");s(ke,It)},$$slots:{default:!0}}),a(L),re("keydown",R,ke=>ke.key==="Enter"&&at()),$t(R,()=>e(H),ke=>t(H,ke)),s(j,L)},p=j=>{var L=En(),R=Ae(L);{let ie=F(()=>!!e(m));pt(R,{variant:"secondary",size:"sm",get disabled(){return e(ie)},onclick:()=>{t(x,!0),t(H,l.tableName,!0)},children:(ke,Re)=>{Be();var It=Te("Rename");s(ke,It)},$$slots:{default:!0}})}var Z=o(R,2);pt(Z,{variant:"danger",size:"sm",onclick:()=>t(ae,!0),children:(ie,ke)=>{Be();var Re=Te("Delete Table");s(ie,Re)},$$slots:{default:!0}}),s(j,L)};I(ye,j=>{e(x)?j(v):j(p,!1)})}a(vt);var O=o(vt,2);{var y=j=>{var L=zn(),R=r(L,!0);a(L),g(()=>N(R,e(m))),s(j,L)};I(O,j=>{e(m)&&j(y)})}s(Ie,He)};I(ht,Ie=>{e(ee)&&Ie(Ft)})}var Nt=o(ht,2),Mt=o(r(Nt)),Qt=r(Mt,!0);a(Mt),a(Nt);var Ye=o(Nt,2);Dr(Ye,{get tabs(){return fe},get activeTab(){return e(J)},set activeTab(Ie){t(J,Ie,!0)},children:(Ie,He)=>{var vt=Ut(),ye=Ae(vt);{var v=y=>{{let j=F(()=>!e(ee));zr(y,{get fields(){return e(oe)},get readonly(){return e(j)},onaddclick:W,oneditclick:de,ondeleteclick:f})}},p=y=>{{let j=F(()=>Object.keys(e(oe))),L=F(()=>!e(ee));gn(y,{get indexes(){return e(ge)},get availableFields(){return e(j)},get readonly(){return e(L)},onadd:B,ondelete:De})}},O=y=>{{let j=F(()=>!e(ee));xn(y,{get ftsFields(){return e(S)},get availableFields(){return e(C)},get readonly(){return e(j)},onsave:Je})}};I(ye,y=>{e(J)==="columns"?y(v):e(J)==="indexes"?y(p,1):e(J)==="fts"&&y(O,2)})}s(Ie,vt)},$$slots:{default:!0}}),g(()=>N(Qt,e(U))),s(u,P)};I(rt,u=>{A().loading?u(kt):e(D)?u(b,!1):u(he,1)})}a(qe);var k=o(qe,2);{let u=F(()=>Object.keys(e(oe)));Er(k,{get mode(){return e(ne)},get columnName(){return e(V)},get field(){return e(T)},get existingColumns(){return e(u)},onsave:Ke,get open(){return e(K)},set open(P){t(K,P,!0)}})}var Ve=o(k,2);Ga(Ve,{title:"Delete Column",get message(){return`Are you sure you want to delete column "${e(M)??""}"? This action will modify edgebase.config.ts.`},confirmLabel:"Delete",confirmVariant:"danger",onconfirm:le,get open(){return e(be)},set open(u){t(be,u,!0)}});var st=o(Ve,2);Ga(st,{title:"Delete Table",get message(){return`Are you sure you want to delete table "${l.tableName??""}"? This will remove it from edgebase.config.ts.`},confirmLabel:"Delete Table",confirmVariant:"danger",onconfirm:Oe,get open(){return e(ae)},set open(u){t(ae,u,!0)}}),s(_e,Xe),na(),E()}da(["keydown"]);var On=d("<option> </option>"),jn=d('<div class="rt-field svelte-wqn9yg"><label class="rt-label svelte-wqn9yg">User</label> <select class="rt-select svelte-wqn9yg"><option>Select a user...</option><!></select></div>'),Fn=d('<div class="rt-field svelte-wqn9yg"><label class="rt-label svelte-wqn9yg">Auth JSON</label> <textarea class="rt-textarea svelte-wqn9yg" rows="5" spellcheck="false"></textarea></div>'),Ln=d('<div class="rt-result-error svelte-wqn9yg"> </div>'),An=d('<div><div class="rt-result-header svelte-wqn9yg"><span class="rt-result-op svelte-wqn9yg"> </span> <span> </span></div> <code class="rt-result-rule svelte-wqn9yg"> </code> <!></div>'),qn=d('<div class="rt-results"><h3 class="rt-results-title svelte-wqn9yg">Results</h3> <div class="rt-results-grid svelte-wqn9yg"></div></div>'),Un=d('<div class="rt-layout svelte-wqn9yg"><div class="rt-form svelte-wqn9yg"><fieldset class="rt-field svelte-wqn9yg"><legend class="rt-label svelte-wqn9yg">Auth Context</legend> <div class="rt-radio-group svelte-wqn9yg"><label class="rt-radio svelte-wqn9yg"><input type="radio"/> Anonymous (null)</label> <label class="rt-radio svelte-wqn9yg"><input type="radio"/> Select User</label> <label class="rt-radio svelte-wqn9yg"><input type="radio"/> Custom JSON</label></div></fieldset> <!> <!> <!></div> <!></div>');function Mn(_e,l){sa(l,!0);const X=[];let A=w(it([])),se=w(!1),E=w("shared"),D=w("anonymous"),J=w(""),ee=w(`{
|
|
5
|
-
"id": "",
|
|
6
|
-
"email": "",
|
|
7
|
-
"role": ""
|
|
8
|
-
}`),K=it(["read","insert","update","delete","access"]),ne=w(it([])),V=w(!1);const T=`rules-user-${Math.random().toString(36).slice(2,9)}`,be=`rules-auth-json-${Math.random().toString(36).slice(2,9)}`;St(()=>{l.tableName&&(qt.subscribe(B=>{const De=B.schema[l.tableName];De&&t(E,De.namespace,!0)})(),t(ne,[],!0),t(V,!1))}),St(()=>{M()});async function M(){try{const le=await bt.fetch("data/users?limit=100");t(A,(le.users??[]).map(B=>({id:B.id,email:B.email??`user-${B.id.slice(0,8)}`,role:B.role})),!0)}catch{}}async function ae(){t(se,!0),t(V,!1),t(ne,[],!0);let le=null;if(e(D)==="user"&&e(J)){const B=e(A).find(De=>De.id===e(J));B&&(le={id:B.id,email:B.email,role:B.role})}else if(e(D)==="custom")try{le=JSON.parse(e(ee))}catch{dt("Invalid JSON for custom auth context"),t(se,!1);return}try{const B=await bt.fetch("data/rules-test",{method:"POST",body:{namespace:e(E),table:l.tableName,auth:le,operations:K}});t(ne,B.results??[],!0),t(V,!0)}catch(B){dt(B instanceof Error?B.message:"Test failed")}finally{t(se,!1)}}var x=Un(),H=r(x),fe=r(H),oe=o(r(fe),2),ge=r(oe),S=r(ge);jt(S),S.value=S.__value="anonymous",Be(),a(ge);var U=o(ge,2),m=r(U);jt(m),m.value=m.__value="user",Be(),a(U);var C=o(U,2),W=r(C);jt(W),W.value=W.__value="custom",Be(),a(C),a(oe),a(fe);var de=o(fe,2);{var f=le=>{var B=jn(),De=r(B),Je=o(De,2),Oe=r(Je);Oe.value=Oe.__value="";var at=o(Oe);Ze(at,17,()=>e(A),Ot,(Xe,qe)=>{var rt=On(),kt=r(rt);a(rt);var he={};g(()=>{N(kt,`${e(qe).email??""} ${e(qe).role?`(${e(qe).role})`:""}`),he!==(he=e(qe).id)&&(rt.value=(rt.__value=e(qe).id)??"")}),s(Xe,rt)}),a(Je),a(B),g(()=>{Ce(De,"for",T),Ce(Je,"id",T)}),ia(Je,()=>e(J),Xe=>t(J,Xe)),s(le,B)};I(de,le=>{e(D)==="user"&&le(f)})}var z=o(de,2);{var ce=le=>{var B=Fn(),De=r(B),Je=o(De,2);za(Je),a(B),g(()=>{Ce(De,"for",be),Ce(Je,"id",be)}),$t(Je,()=>e(ee),Oe=>t(ee,Oe)),s(le,B)};I(z,le=>{e(D)==="custom"&&le(ce)})}var Ne=o(z,2);pt(Ne,{variant:"primary",onclick:ae,get loading(){return e(se)},children:(le,B)=>{Be();var De=Te("Test Rules");s(le,De)},$$slots:{default:!0}}),a(H);var me=o(H,2);{var Ke=le=>{var B=qn(),De=o(r(B),2);Ze(De,21,()=>e(ne),Ot,(Je,Oe)=>{var at=An();let Xe;var qe=r(at),rt=r(qe),kt=r(rt,!0);a(rt);var he=o(rt,2);let b;var k=r(he,!0);a(he),a(qe);var Ve=o(qe,2),st=r(Ve,!0);a(Ve);var u=o(Ve,2);{var P=ve=>{var ze=Ln(),ht=r(ze,!0);a(ze),g(()=>N(ht,e(Oe).error)),s(ve,ze)};I(u,ve=>{e(Oe).error&&ve(P)})}a(at),g(()=>{Xe=Rt(at,1,"rt-result-card svelte-wqn9yg",null,Xe,{"rt-result-card--allowed":e(Oe).allowed,"rt-result-card--denied":!e(Oe).allowed}),N(kt,e(Oe).operation),b=Rt(he,1,"rt-result-badge svelte-wqn9yg",null,b,{"rt-badge--allowed":e(Oe).allowed,"rt-badge--denied":!e(Oe).allowed}),N(k,e(Oe).allowed?"✔ Allowed":"✘ Denied"),N(st,e(Oe).rule)}),s(Je,at)}),a(De),a(B),s(le,B)};I(me,le=>{e(V)&&le(Ke)})}a(x),ja(X,[],S,()=>e(D),le=>t(D,le)),ja(X,[],m,()=>e(D),le=>t(D,le)),ja(X,[],W,()=>e(D),le=>t(D,le)),s(_e,x),na()}var Bn=d("<button> </button>"),Kn=d("<button> </button>"),Jn=d('<div class="sdk-snippets svelte-hdcl64"><div class="lang-tabs svelte-hdcl64"></div> <div class="op-tabs svelte-hdcl64"></div> <div class="code-block svelte-hdcl64"><button class="copy-btn svelte-hdcl64" title="Copy to clipboard"><svg width="14" height="14" viewBox="0 0 16 16" fill="none"><rect x="5" y="5" width="9" height="9" rx="1" stroke="currentColor" stroke-width="1.5"></rect><path d="M11 5V3C11 2.448 10.552 2 10 2H3C2.448 2 2 2.448 2 3V10C2 10.552 2.448 11 3 11H5" stroke="currentColor" stroke-width="1.5"></path></svg> Copy</button> <pre class="code-pre svelte-hdcl64"><code> </code></pre></div></div>');function Vn(_e,l){sa(l,!0);const X=()=>ya(qt,"$schemaStore",A),[A,se]=Ra();let E=w("javascript"),D=w("query");const J=[{id:"javascript",label:"JavaScript"},{id:"python",label:"Python"},{id:"dart",label:"Dart"},{id:"swift",label:"Swift"},{id:"kotlin",label:"Kotlin"}],ee=[{id:"query",label:"Query"},{id:"insert",label:"Insert"},{id:"update",label:"Update"},{id:"delete",label:"Delete"},{id:"subscribe",label:"Subscribe"}];let K=F(()=>(()=>{const m=X().schema[l.tableName];return(m==null?void 0:m.fields)??{}})()),ne=F(()=>Object.keys(e(K)).filter(m=>m!=="id"&&m!=="createdAt"&&m!=="updatedAt"));function V(m,C){return C.type==="number"||C.type==="integer"||C.type==="float"?"42":C.type==="boolean"?"true":C.type==="json"?'{"key": "value"}':C.type==="datetime"||C.type==="date"?'"2024-01-01T00:00:00Z"':C.enum&&C.enum.length>0?`"${C.enum[0]}"`:`"sample ${m}"`}function T(m){const C=e(ne).slice(0,4).map(W=>{const de=e(K)[W],f=V(W,de);return m==="python"?` "${W}": ${f}`:m==="dart"?` "${W}": ${f}`:m==="swift"?` "${W}": ${f}`:m==="kotlin"?` "${W}" to ${f}`:` ${W}: ${f}`});return C.join(`,
|
|
9
|
-
`)}let be=F(()=>(()=>{var de;const m=l.tableName,C=T(e(E));return((de={javascript:{query:`import { createClient } from '@edge-base/web';
|
|
10
|
-
|
|
11
|
-
const client = createClient('YOUR_URL');
|
|
12
|
-
|
|
13
|
-
const result = await client
|
|
14
|
-
.db('shared').table('${m}')
|
|
15
|
-
.limit(20)
|
|
16
|
-
.getList();
|
|
17
|
-
|
|
18
|
-
console.log(result.items);`,insert:`const record = await client
|
|
19
|
-
.db('shared').table('${m}')
|
|
20
|
-
.insert({
|
|
21
|
-
${C}
|
|
22
|
-
});`,update:`const updated = await client
|
|
23
|
-
.db('shared').table('${m}')
|
|
24
|
-
.update('RECORD_ID', {
|
|
25
|
-
${C}
|
|
26
|
-
});`,delete:`await client
|
|
27
|
-
.db('shared').table('${m}')
|
|
28
|
-
.delete('RECORD_ID');`,subscribe:`const unsubscribe = client
|
|
29
|
-
.db('shared').table('${m}')
|
|
30
|
-
.onSnapshot((snapshot) => {
|
|
31
|
-
console.log(snapshot.items);
|
|
32
|
-
console.log(snapshot.changes);
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
// Later: unsubscribe();`},python:{query:`from edgebase import EdgeBase
|
|
36
|
-
|
|
37
|
-
client = EdgeBase("YOUR_URL")
|
|
38
|
-
|
|
39
|
-
result = client.db("shared").table("${m}").limit(20).get_list()
|
|
40
|
-
print(result.items)`,insert:`record = client.db("shared").table("${m}").insert({
|
|
41
|
-
${C}
|
|
42
|
-
})`,update:`updated = client.db("shared").table("${m}").doc("RECORD_ID").update({
|
|
43
|
-
${C}
|
|
44
|
-
})`,delete:`client.db("shared").table("${m}").doc("RECORD_ID").delete()`,subscribe:`def on_change(change):
|
|
45
|
-
print(change)
|
|
46
|
-
|
|
47
|
-
unsub = client.db("shared").table("${m}").doc("RECORD_ID").on_snapshot(on_change)
|
|
48
|
-
|
|
49
|
-
# Later: unsub()`},dart:{query:`import 'package:edgebase/edgebase.dart';
|
|
50
|
-
|
|
51
|
-
final client = EdgeBase.client('YOUR_URL');
|
|
52
|
-
|
|
53
|
-
final result = await client
|
|
54
|
-
.db('shared').table('${m}')
|
|
55
|
-
.limit(20)
|
|
56
|
-
.getList();
|
|
57
|
-
|
|
58
|
-
print(result.items);`,insert:`final record = await client
|
|
59
|
-
.db('shared').table('${m}')
|
|
60
|
-
.insert({
|
|
61
|
-
${C}
|
|
62
|
-
});`,update:`final updated = await client
|
|
63
|
-
.db('shared').table('${m}')
|
|
64
|
-
.doc('RECORD_ID')
|
|
65
|
-
.update({
|
|
66
|
-
${C}
|
|
67
|
-
});`,delete:`await client
|
|
68
|
-
.db('shared').table('${m}')
|
|
69
|
-
.doc('RECORD_ID')
|
|
70
|
-
.delete();`,subscribe:`final stream = client
|
|
71
|
-
.db('shared').table('${m}')
|
|
72
|
-
.onSnapshot();
|
|
73
|
-
|
|
74
|
-
stream.listen((change) {
|
|
75
|
-
print('\${change.event}: \${change.record}');
|
|
76
|
-
});`},swift:{query:`import EdgeBase
|
|
77
|
-
|
|
78
|
-
let client = EdgeBaseClient("YOUR_URL")
|
|
79
|
-
|
|
80
|
-
let result = try await client
|
|
81
|
-
.db("shared").table("${m}")
|
|
82
|
-
.limit(20)
|
|
83
|
-
.getList()
|
|
84
|
-
|
|
85
|
-
print(result.items)`,insert:`let record = try await client
|
|
86
|
-
.db("shared").table("${m}")
|
|
87
|
-
.insert([
|
|
88
|
-
${C}
|
|
89
|
-
])`,update:`let updated = try await client
|
|
90
|
-
.db("shared").table("${m}")
|
|
91
|
-
.doc("RECORD_ID")
|
|
92
|
-
.update([
|
|
93
|
-
${C}
|
|
94
|
-
])`,delete:`try await client
|
|
95
|
-
.db("shared").table("${m}")
|
|
96
|
-
.doc("RECORD_ID")
|
|
97
|
-
.delete()`,subscribe:`let stream = client
|
|
98
|
-
.db("shared").table("${m}")
|
|
99
|
-
.onSnapshot()
|
|
100
|
-
|
|
101
|
-
for await change in stream {
|
|
102
|
-
print("\\(change.event): \\(change.record)")
|
|
103
|
-
}`},kotlin:{query:`import dev.edgebase.sdk.client.ClientEdgeBase
|
|
104
|
-
|
|
105
|
-
val client = ClientEdgeBase("YOUR_URL")
|
|
106
|
-
|
|
107
|
-
val result = client
|
|
108
|
-
.db("shared").table("${m}")
|
|
109
|
-
.limit(20)
|
|
110
|
-
.getList()
|
|
111
|
-
|
|
112
|
-
println(result.items)`,insert:`val record = client
|
|
113
|
-
.db("shared").table("${m}")
|
|
114
|
-
.insert(mapOf(
|
|
115
|
-
${C}
|
|
116
|
-
))`,update:`val updated = client
|
|
117
|
-
.db("shared").table("${m}")
|
|
118
|
-
.update("RECORD_ID", mapOf(
|
|
119
|
-
${C}
|
|
120
|
-
))`,delete:`client
|
|
121
|
-
.db("shared").table("${m}")
|
|
122
|
-
.delete("RECORD_ID")`,subscribe:`val flow = client
|
|
123
|
-
.db("shared").table("${m}")
|
|
124
|
-
.onSnapshot()
|
|
125
|
-
|
|
126
|
-
flow.collect { change ->
|
|
127
|
-
println("\${change.event}: \${change.record}")
|
|
128
|
-
}`}}[e(E)])==null?void 0:de[e(D)])??""})());async function M(){try{await navigator.clipboard.writeText(e(be)),Ct("Copied to clipboard")}catch{}}var ae=Jn(),x=r(ae);Ze(x,21,()=>J,Ot,(m,C)=>{var W=Bn();let de;var f=r(W,!0);a(W),g(()=>{de=Rt(W,1,"lang-tab svelte-hdcl64",null,de,{"lang-tab--active":e(E)===e(C).id}),N(f,e(C).label)}),re("click",W,()=>t(E,e(C).id,!0)),s(m,W)}),a(x);var H=o(x,2);Ze(H,21,()=>ee,Ot,(m,C)=>{var W=Kn();let de;var f=r(W,!0);a(W),g(()=>{de=Rt(W,1,"op-tab svelte-hdcl64",null,de,{"op-tab--active":e(D)===e(C).id}),N(f,e(C).label)}),re("click",W,()=>t(D,e(C).id,!0)),s(m,W)}),a(H);var fe=o(H,2),oe=r(fe),ge=o(oe,2),S=r(ge),U=r(S,!0);a(S),a(ge),a(fe),a(ae),g(()=>N(U,e(be))),re("click",oe,M),s(_e,ae),na(),se()}da(["click"]);const tr="edgebase_admin_recent_instances",Hn=6;function ar(){try{const _e=localStorage.getItem(tr);if(!_e)return{};const l=JSON.parse(_e);return l&&typeof l=="object"?l:{}}catch{return{}}}function Wn(_e){try{localStorage.setItem(tr,JSON.stringify(_e))}catch{}}function Gn(_e){var X,A;const l=_e.id.trim();return l?{id:l,label:((X=_e.label)==null?void 0:X.trim())||void 0,description:((A=_e.description)==null?void 0:A.trim())||void 0}:null}function Za(_e){return(ar()[_e]??[]).slice().sort((A,se)=>se.lastUsedAt-A.lastUsedAt).map(({id:A,label:se,description:E})=>({id:A,label:se,description:E}))}function Yn(_e,l){const X=Gn(l);if(!X)return;const A=ar(),se=A[_e]??[],E=[{...X,lastUsedAt:Date.now()},...se.filter(D=>D.id!==X.id)].slice(0,Hn);Wn({...A,[_e]:E})}var Qn=d("<span><!></span>"),Zn=d('<div class="table-header__hint svelte-11vdap9">Start <code class="svelte-11vdap9">pnpm dev</code> to enable DB block upgrades.</div>'),Xn=d('<input id="upgrade-env-key" class="upgrade-modal__input svelte-11vdap9"/> <p class="upgrade-modal__hint svelte-11vdap9">Only change this if you already use a specific Postgres env key name.</p>',1),$n=d("<option> </option>"),el=d("<option> </option>"),tl=d('<p class="upgrade-modal__hint upgrade-modal__hint--error svelte-11vdap9"> </p>'),al=d('<p class="upgrade-modal__hint svelte-11vdap9">No existing Neon projects were found.</p>'),rl=d('<p class="upgrade-modal__hint svelte-11vdap9">EdgeBase will use the selected project, restart on Postgres, and restore every table in this block.</p>'),sl=d("<li> </li>"),nl=d('<div class="upgrade-modal__status svelte-11vdap9" role="status" aria-live="polite"><div class="upgrade-modal__status-title svelte-11vdap9"> </div> <p class="upgrade-modal__status-copy svelte-11vdap9">EdgeBase is migrating the full <strong> </strong> database block. This can take a while because every table is exported, the worker restarts on Postgres, and then the block is restored.</p> <div class="upgrade-modal__status-current svelte-11vdap9"> </div> <ol class="upgrade-modal__steps upgrade-modal__steps--status svelte-11vdap9"></ol></div>'),ll=d('<div class="upgrade-modal svelte-11vdap9"><p class="upgrade-modal__text svelte-11vdap9">This migrates the entire <strong> </strong> database block from D1 to Postgres. The current table is just the entry point. Every table in this block is exported, the dev worker restarts on Postgres, and then the full block is restored.</p> <div class="upgrade-modal__notice svelte-11vdap9"><div class="upgrade-modal__notice-title svelte-11vdap9">What happens during this migration</div> <ol class="upgrade-modal__steps svelte-11vdap9"><li>Export all tables from the current D1-backed database block.</li> <li>Connect an existing Neon project or create a new one.</li> <li>Restart the dev worker with `provider: \'postgres\'`.</li> <li>Restore every table in the database block into Postgres.</li></ol></div> <div class="upgrade-modal__field svelte-11vdap9"><label class="upgrade-modal__label svelte-11vdap9" for="upgrade-env-key-display">Automatic Postgres Env Key</label> <div id="upgrade-env-key-display" class="upgrade-modal__static svelte-11vdap9"><code class="svelte-11vdap9"> </code></div> <p class="upgrade-modal__hint svelte-11vdap9">EdgeBase will write this key during migration. Only override it if you already use a specific Postgres env key name.</p> <div class="upgrade-modal__actions-row svelte-11vdap9"><!></div> <!></div> <div class="upgrade-modal__choices svelte-11vdap9"><div class="upgrade-modal__choices-copy svelte-11vdap9"><div class="upgrade-modal__notice-title svelte-11vdap9">Neon Setup</div> <p class="upgrade-modal__hint svelte-11vdap9">Both options migrate the same database block and use the env key above. Pick the path that matches whether the Neon project already exists.</p></div> <div class="upgrade-modal__choice-grid svelte-11vdap9"><section class="upgrade-modal__choice-card svelte-11vdap9"><div class="upgrade-modal__choice-header svelte-11vdap9"><div class="upgrade-modal__choice-eyebrow svelte-11vdap9">Existing project</div> <h3 class="upgrade-modal__choice-title svelte-11vdap9">1. Connect an existing Neon project</h3> <p class="upgrade-modal__hint svelte-11vdap9">Best when the Neon project already exists in your account.</p></div> <label class="upgrade-modal__label svelte-11vdap9" for="upgrade-neon-project">Existing Neon Project</label> <select id="upgrade-neon-project" class="upgrade-modal__select svelte-11vdap9"><!></select> <div class="upgrade-modal__actions-row svelte-11vdap9"><!></div> <!> <div class="upgrade-modal__actions-row upgrade-modal__choice-actions svelte-11vdap9"><!></div></section> <section class="upgrade-modal__choice-card svelte-11vdap9"><div class="upgrade-modal__choice-header svelte-11vdap9"><div class="upgrade-modal__choice-eyebrow svelte-11vdap9">Provision new project</div> <h3 class="upgrade-modal__choice-title svelte-11vdap9">2. Create a new Neon project</h3> <p class="upgrade-modal__hint svelte-11vdap9">Best when you want EdgeBase to provision Neon before migrating.</p></div> <label class="upgrade-modal__label svelte-11vdap9" for="upgrade-project-name">New Neon Project Name</label> <input id="upgrade-project-name" class="upgrade-modal__input svelte-11vdap9"/> <p class="upgrade-modal__hint svelte-11vdap9">EdgeBase will try this name first, then append a suffix if Neon already has one.</p> <div class="upgrade-modal__actions-row upgrade-modal__choice-actions svelte-11vdap9"><!></div></section></div></div> <!></div>'),ol=d('<button class="target-bar__button svelte-11vdap9">Clear</button>'),il=d('<span class="target-chip__meta svelte-11vdap9"> </span>'),dl=d('<button class="target-chip svelte-11vdap9" type="button"><span class="target-chip__label svelte-11vdap9"> </span> <!></button>'),vl=d('<div class="target-bar__section svelte-11vdap9"><div class="target-bar__section-label svelte-11vdap9"> </div> <div class="target-bar__chip-row svelte-11vdap9"></div></div>'),cl=d('<span class="target-chip__meta svelte-11vdap9"> </span>'),ul=d('<button class="target-chip svelte-11vdap9" type="button"><span class="target-chip__label svelte-11vdap9"> </span> <!></button>'),fl=d('<div class="target-bar__section svelte-11vdap9"><div class="target-bar__section-label svelte-11vdap9"> </div> <div class="target-bar__chip-row svelte-11vdap9"></div></div>'),pl=d('<div class="target-bar__status svelte-11vdap9">Loading instance suggestions...</div>'),_l=d('<div class="target-bar__status target-bar__status--error svelte-11vdap9"> </div>'),bl=d('<div class="target-bar__suggestions svelte-11vdap9"><!> <!> <!></div>'),gl=d('<div class="target-bar svelte-11vdap9"><div class="target-bar__copy svelte-11vdap9"><div class="target-bar__title svelte-11vdap9"> </div> <div class="target-bar__description svelte-11vdap9"> </div></div> <div class="target-bar__controls svelte-11vdap9"><div class="target-bar__field svelte-11vdap9"><label class="target-bar__field-label svelte-11vdap9" for="database-target-input"> </label> <input id="database-target-input" class="target-bar__input svelte-11vdap9" type="text" maxlength="128"/></div> <button class="target-bar__button target-bar__button--primary svelte-11vdap9"> </button> <!></div> <!></div>'),ml=d("<button> </button>"),hl=d('<div class="target-empty svelte-11vdap9"><h3 class="svelte-11vdap9"> </h3> <p class="svelte-11vdap9"> </p></div>'),yl=d('<div class="target-empty svelte-11vdap9"><h3 class="svelte-11vdap9"> </h3> <p class="svelte-11vdap9"> </p></div>'),wl=d('<div class="target-empty svelte-11vdap9"><h3 class="svelte-11vdap9">Query tools unavailable</h3> <p class="svelte-11vdap9"> </p></div>'),kl=d('<div class="tab-loading svelte-11vdap9">Loading query tools...</div>'),xl=d('<div class="table-detail svelte-11vdap9"><div class="table-header svelte-11vdap9"><div class="table-header__meta svelte-11vdap9"><h2 class="table-title svelte-11vdap9"> </h2> <div class="table-badges svelte-11vdap9"><span class="table-badge svelte-11vdap9"> </span> <span class="table-badge svelte-11vdap9"> </span> <span> </span></div></div> <div class="table-header__actions svelte-11vdap9"><!> <a class="erd-link svelte-11vdap9" title="View ERD Diagram"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="2" width="5" height="4" rx="1" stroke="currentColor" stroke-width="1.5"></rect><rect x="10" y="10" width="5" height="4" rx="1" stroke="currentColor" stroke-width="1.5"></rect><path d="M6 4H8.5V12H10" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg> ERD</a> <a class="erd-link svelte-11vdap9" target="_blank" rel="noreferrer" title="Open database docs"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 2H10L13 5V14H3V2Z" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"></path><path d="M10 2V5H13" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"></path><path d="M6 8H10M6 10.5H9" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path></svg> Docs</a> <!></div></div> <!> <!> <div class="tab-bar svelte-11vdap9"></div> <div class="tab-content svelte-11vdap9"><!></div></div>');function Xl(_e,l){sa(l,!0);const X=()=>ya(Nr,"$page",E),A=()=>ya(qt,"$schemaStore",E),se=()=>ya(er,"$devInfoStore",E),[E,D]=Ra();let J=F(()=>X().params.table??""),ee=F(()=>A().schema[e(J)]??void 0),K=F(()=>{var i;return((i=e(ee))==null?void 0:i.namespace)??""}),ne=F(()=>{var i;return((i=e(ee))==null?void 0:i.provider)??"do"}),V=F(()=>{var i;return!!((i=e(ee))!=null&&i.dynamic)}),T=F(()=>{var i;return(i=e(ee))==null?void 0:i.instanceDiscovery}),be=F(()=>Ja(X().url.searchParams.get("instance"))),M=F(()=>{const i=X().url.searchParams.get("tab");return e(ee)?i==="sql"?"query":i==="records"||i==="query"||i==="schema"||i==="rules"||i==="sdk"?i:e(V)&&!e(be)?"schema":"records":i==="query"||i==="sql"?"query":"schema"}),ae=w(""),x=w(!1),H=w(""),fe=w(it([])),oe=w(it([])),ge=w(!1),S=w(""),U=w(!1),m=w(null),C=w(0),W=w(""),de=w(it([])),f=w(!1),z=w(!1),ce=w(""),Ne=w(""),me=w(null),Ke=F(()=>se().devMode);St(()=>{t(ae,e(be)??"",!0)}),St(()=>{if(typeof window>"u"||!e(V)||!e(K)){t(oe,[],!0);return}t(oe,Za(e(K)),!0)}),St(()=>{var G;if(!e(V)||!e(K)){t(x,!1),t(H,""),t(fe,[],!0);return}if(((G=e(T))==null?void 0:G.source)==="manual"){t(x,!1),t(H,""),t(fe,[],!0);return}const i=e(ae).trim();let _=!1;const Y=i?160:0;t(x,!0),t(H,"");const Q=window.setTimeout(async()=>{try{const $=new URLSearchParams({limit:"8"});i&&$.set("q",i);const We=await bt.fetch(`data/namespaces/${encodeURIComponent(e(K))}/instances?${$.toString()}`);if(_)return;t(fe,We.items??[],!0),t(H,"")}catch($){if(_)return;t(fe,[],!0),t(H,$ instanceof Error?$.message:"Failed to load instance suggestions",!0)}finally{_||t(x,!1)}},Y);return()=>{_=!0,window.clearTimeout(Q)}});function le(i){return i==="postgres"||i==="neon"?"PG":i==="d1"?"D1":"DO"}function B(i){const _=i.trim().toUpperCase().replace(/[^A-Z0-9_]+/g,"_");return _?`DB_POSTGRES_${_}_URL`:"DB_POSTGRES_SHARED_URL"}function De(i){return i.trim().toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/^-+|-+$/g,"").replace(/-{2,}/g,"-")||"edgebase-db"}St(()=>{e(K)&&(!e(ge)||!e(S).trim())&&!e(U)&&t(S,B(e(K)),!0)}),St(()=>{qe()&&!e(z)&&!e(f)&&b()});function Je(){return t(me,e(me)??nr(()=>import("./CkdaVlhQ.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21]),import.meta.url),!0),e(me)}St(()=>{e(M)==="query"&&Je()});function Oe(i){return i?"Per-tenant DB":"Single DB"}function at(){return e(U)?e(S).trim()||B(e(K)):B(e(K))}function Xe(){return e(W).trim()||De(e(K))}function qe(){return e(Ke)&&rt()}function rt(){return!e(V)&&e(ne)==="d1"}function kt(){return rt()?e(Ke)?"":"Database block upgrades require dev mode with the schema sidecar. Start `pnpm dev` to enable Neon/Postgres migration.":""}function he(){t(U,!e(U)),e(U)&&!e(S).trim()&&t(S,B(e(K)),!0)}St(()=>{e(K)&&(e(W).trim()||t(W,De(e(K)),!0))}),St(()=>{if(!e(m)||typeof window>"u"){t(C,0);return}t(C,0);const i=[window.setTimeout(()=>t(C,1),1200),window.setTimeout(()=>t(C,2),4200),window.setTimeout(()=>t(C,3),8200)];return()=>{for(const _ of i)window.clearTimeout(_)}});async function b(i=!1){var _;if(!(!i&&(e(z)||e(f)))){t(f,!0),t(ce,"");try{const Y=await bt.schemaMutation(i?"integrations/neon/projects?refresh=1":"integrations/neon/projects",{method:"GET"});t(de,Y.items??[],!0),t(Ne,((_=e(de)[0])==null?void 0:_.projectId)??"",!0),t(z,!0)}catch(Y){t(ce,Y instanceof Error?Y.message:"Failed to load Neon projects.",!0)}finally{t(f,!1)}}}function k(i){var Y;return((Y=i==null?void 0:i.targetLabel)==null?void 0:Y.trim())||"Target"}function Ve(i){return`Choose ${k(i)}`}function st(i){return`${k(i)} ID`}function u(i){return`Paste ${k(i).toLowerCase()} ID`}function P(i){return k(i)==="Target"?"Apply":"Open"}function ve(i){const _=i==null?void 0:i.helperText;return _||`Pick a ${k(i).toLowerCase()} to view this table's records or run queries.`}function ze(i){return`${Ve(i)} First`}function ht(i,_){const Y=k(i).toLowerCase();return _==="records"?`Select a ${Y} above to view records for this table.`:`Select a ${Y} above to run queries for this table.`}function Ft(i){const _=k(i);return _==="Target"?"Recent":`Recent ${_}s`}function Nt(i){const _=k(i);return _==="Target"?"Suggestions":`Suggested ${_}s`}async function Mt(i){const _=new URL(X().url);i(_.searchParams),await La(`${_.pathname}${_.search}`,{replaceState:!0,keepFocus:!0,noScroll:!0})}function Qt(i){i==="query"&&Je(),Mt(_=>{i==="records"?_.delete("tab"):_.set("tab",i)})}function Ye(i){return e(fe).find(_=>_.id===i)??e(oe).find(_=>_.id===i)}function Ie(i){typeof window>"u"||!e(K)||(Yn(e(K),i),t(oe,Za(e(K)),!0))}function He(i){const _=Ja((i==null?void 0:i.id)??e(ae));Mt(Y=>{if(_){const Q=i??Ye(_)??{id:_};Ie(Q),Y.set("instance",_),e(V)&&e(M)==="schema"&&Y.delete("tab")}else Y.delete("instance"),e(V)&&e(M)==="records"&&Y.set("tab","schema")})}function vt(){t(ae,""),He()}function ye(i){t(ae,i.id,!0),He(i)}async function v(i){if(e(K)){if(i==="reuse"&&!e(Ne)){dt(e(ce)||"Choose an existing Neon project first, or create a new one.");return}i==="create"&&Xe(),t(m,i,!0);try{await bt.schemaMutation("integrations/neon/upgrade",{method:"POST",body:{namespace:e(K),projectId:i==="reuse"?e(Ne):void 0,projectName:i==="create"?Xe():void 0,mode:i,...e(U)?{envKey:at()}:{}}}),await qt.loadSchema({silent:!0}),t(ge,!1),Ct(`"${e(K)}" upgraded from D1 to Postgres`)}catch(_){const Y=_ instanceof Error?_.message:"Failed to upgrade database block.";dt(Y)}finally{t(m,null)}}}function p(){return!e(f)&&e(de).length>0&&!!e(Ne)}function O(){return e(m)==="reuse"?"Migrating Database Block to Postgres":e(m)==="create"?"Creating Neon Project and Migrating Database Block":"Database Block Migration"}function y(i){return i<e(C)?"done":i===e(C)?"active":"pending"}function j(){return[{label:`Export every table in the "${e(K)}" database block from D1`,state:y(0)},{label:e(m)==="create"?`Create the Neon project "${Xe()}" and write the Postgres env key`:"Connect the selected Neon project and write the Postgres env key",state:y(1)},{label:"Restart the dev worker on Postgres",state:y(2)},{label:`Restore all rows back into the "${e(K)}" database block`,state:y(3)}]}function L(){var i;return((i=j()[e(C)])==null?void 0:i.label)??"Preparing migration..."}let R=F(()=>{const i=new Set(e(oe).map(_=>_.id));return e(fe).filter(_=>!i.has(_.id))});const Z=[{id:"records",label:"Records"},{id:"query",label:"Query"},{id:"schema",label:"Schema"},{id:"rules",label:"Rules"},{id:"sdk",label:"SDK"}];var ie=xl(),ke=r(ie),Re=r(ke),It=r(Re),Bt=r(It,!0);a(It);var $e=o(It,2),_t=r($e),Kt=r(_t,!0);a(_t);var va=o(_t,2),_a=r(va,!0);a(va);var ca=o(va,2);let ba;var ga=r(ca,!0);a(ca),a($e),a(Re);var ma=o(Re,2),ua=r(ma);{var ea=i=>{pt(i,{variant:"secondary",size:"sm",onclick:()=>t(ge,!0),children:(_,Y)=>{Be();var Q=Te("Upgrade to Postgres");s(_,Q)},$$slots:{default:!0}})},Jt=F(()=>qe()),Dt=i=>{var _=Qn(),Y=r(_);pt(Y,{variant:"secondary",size:"sm",disabled:!0,children:(Q,G)=>{Be();var $=Te("Upgrade to Postgres");s(Q,$)},$$slots:{default:!0}}),a(_),g(Q=>Ce(_,"title",Q),[kt]),s(i,_)},ta=F(()=>rt());I(ua,i=>{e(Jt)?i(ea):e(ta)&&i(Dt,1)})}var fa=o(ua,2),Zt=o(fa,2),la=o(Zt,2);{var ka=i=>{var _=Zn();s(i,_)},ha=F(()=>kt());I(la,i=>{e(ha)&&i(ka)})}a(ma),a(ke);var n=o(ke,2);$a(n,{title:"Migrate Database Block to Postgres",maxWidth:"560px",get open(){return e(ge)},set open(_){t(ge,_,!0)},footer:_=>{{let Y=F(()=>e(m)!==null);pt(_,{variant:"secondary",get disabled(){return e(Y)},onclick:()=>t(ge,!1),children:(Q,G)=>{Be();var $=Te("Cancel");s(Q,$)},$$slots:{default:!0}})}},children:(_,Y)=>{var Q=ll(),G=r(Q),$=o(r(G)),We=r($,!0);a($),Be(),a(G);var je=o(G,4),Le=o(r(je),2),Pe=r(Le),et=r(Pe,!0);a(Pe),a(Le);var xe=o(Le,4),Fe=r(xe);{let pe=F(()=>e(m)!==null);pt(Fe,{variant:"ghost",onclick:he,get disabled(){return e(pe)},children:(Ee,ft)=>{Be();var Ge=Te();g(()=>N(Ge,e(U)?"Hide Env Key Override":"Customize Env Key")),s(Ee,Ge)},$$slots:{default:!0}})}a(xe);var nt=o(xe,2);{var Ue=pe=>{var Ee=Xn(),ft=Ae(Ee);jt(ft),Be(2),g(Ge=>Ce(ft,"placeholder",Ge),[()=>B(e(K))]),$t(ft,()=>e(S),Ge=>t(S,Ge)),s(pe,Ee)};I(nt,pe=>{e(U)&&pe(Ue)})}a(je);var ct=o(je,2),Ht=o(r(ct),2),Wt=r(Ht),Me=o(r(Wt),4),lt=r(Me);{var yt=pe=>{var Ee=$n(),ft=r(Ee,!0);a(Ee),Ee.value=Ee.__value="",g(()=>N(ft,e(f)?"Loading Neon projects...":"No Neon projects found")),s(pe,Ee)},Se=pe=>{var Ee=Ut(),ft=Ae(Ee);Ze(ft,17,()=>e(de),Ge=>Ge.projectId,(Ge,zt)=>{var Xt=el(),Da=r(Xt);a(Xt);var wa={};g(()=>{N(Da,`${e(zt).projectName??""} (${e(zt).orgName??""})`),wa!==(wa=e(zt).projectId)&&(Xt.value=(Xt.__value=e(zt).projectId)??"")}),s(Ge,Xt)}),s(pe,Ee)};I(lt,pe=>{e(de).length===0?pe(yt):pe(Se,!1)})}a(Me);var we=o(Me,2),ot=r(we);pt(ot,{variant:"ghost",onclick:()=>b(!0),get loading(){return e(f)},children:(pe,Ee)=>{Be();var ft=Te("Refresh Projects");s(pe,ft)},$$slots:{default:!0}}),a(we);var Gt=o(we,2);{var At=pe=>{var Ee=tl(),ft=r(Ee,!0);a(Ee),g(()=>N(ft,e(ce))),s(pe,Ee)},Yt=pe=>{var Ee=al();s(pe,Ee)},tt=pe=>{var Ee=rl();s(pe,Ee)};I(Gt,pe=>{e(ce)?pe(At):!e(f)&&e(de).length===0?pe(Yt,1):e(f)||pe(tt,2)})}var gt=o(Gt,2),Et=r(gt);{let pe=F(()=>!p()||e(m)!==null);pt(Et,{variant:"secondary",get disabled(){return e(pe)},onclick:()=>v("reuse"),children:(Ee,ft)=>{Be();var Ge=Te();g(()=>N(Ge,e(m)==="reuse"?"Connecting Existing Neon...":"Connect Existing Neon")),s(Ee,Ge)},$$slots:{default:!0}})}a(gt),a(Wt);var xt=o(Wt,2),ut=o(r(xt),4);jt(ut);var mt=o(ut,4),Pt=r(mt);{let pe=F(()=>e(m)!==null);pt(Pt,{variant:"primary",get disabled(){return e(pe)},onclick:()=>v("create"),children:(Ee,ft)=>{Be();var Ge=Te();g(()=>N(Ge,e(m)==="create"?"Creating Neon Project...":"Create New Neon Project")),s(Ee,Ge)},$$slots:{default:!0}})}a(mt),a(xt),a(Ht),a(ct);var aa=o(ct,2);{var oa=pe=>{var Ee=nl(),ft=r(Ee),Ge=r(ft,!0);a(ft);var zt=o(ft,2),Xt=o(r(zt)),Da=r(Xt,!0);a(Xt),Be(),a(zt);var wa=o(zt,2),rr=r(wa);a(wa);var qa=o(wa,2);Ze(qa,21,j,Ot,(Ta,Sa)=>{var Ca=sl(),sr=r(Ca,!0);a(Ca),g(()=>{Rt(Ca,1,`upgrade-modal__step upgrade-modal__step--${e(Sa).state}`,"svelte-11vdap9"),N(sr,e(Sa).label)}),s(Ta,Ca)}),a(qa),a(Ee),g((Ta,Sa)=>{N(Ge,Ta),N(Da,e(K)),N(rr,`Current step: ${Sa??""}`)},[O,L]),s(pe,Ee)};I(aa,pe=>{e(m)&&pe(oa)})}a(Q),g((pe,Ee)=>{N(We,e(K)),N(et,pe),Me.disabled=e(f)||e(de).length===0,Ce(ut,"placeholder",Ee),ut.disabled=e(m)!==null},[at,()=>De(e(K))]),ia(Me,()=>e(Ne),pe=>t(Ne,pe)),$t(ut,()=>e(W),pe=>t(W,pe)),s(_,Q)},$$slots:{footer:!0,default:!0}});var c=o(n,2);{var h=i=>{var _=gl(),Y=r(_),Q=r(Y),G=r(Q,!0);a(Q);var $=o(Q,2),We=r($,!0);a($),a(Y);var je=o(Y,2),Le=r(je),Pe=r(Le),et=r(Pe,!0);a(Pe);var xe=o(Pe,2);jt(xe),a(Le);var Fe=o(Le,2),nt=r(Fe,!0);a(Fe);var Ue=o(Fe,2);{var ct=Me=>{var lt=ol();re("click",lt,vt),s(Me,lt)};I(Ue,Me=>{e(be)&&Me(ct)})}a(je);var Ht=o(je,2);{var Wt=Me=>{var lt=bl(),yt=r(lt);{var Se=tt=>{var gt=vl(),Et=r(gt),xt=r(Et,!0);a(Et);var ut=o(Et,2);Ze(ut,21,()=>e(oe),mt=>mt.id,(mt,Pt)=>{var aa=dl(),oa=r(aa),pe=r(oa,!0);a(oa);var Ee=o(oa,2);{var ft=Ge=>{var zt=il(),Xt=r(zt,!0);a(zt),g(()=>N(Xt,e(Pt).id)),s(Ge,zt)};I(Ee,Ge=>{e(Pt).label&&Ge(ft)})}a(aa),g(()=>N(pe,e(Pt).label??e(Pt).id)),re("click",aa,()=>ye(e(Pt))),s(mt,aa)}),a(ut),a(gt),g(mt=>N(xt,mt),[()=>Ft(e(T))]),s(tt,gt)};I(yt,tt=>{e(oe).length>0&&tt(Se)})}var we=o(yt,2);{var ot=tt=>{var gt=fl(),Et=r(gt),xt=r(Et,!0);a(Et);var ut=o(Et,2);Ze(ut,21,()=>e(R),mt=>mt.id,(mt,Pt)=>{var aa=ul(),oa=r(aa),pe=r(oa,!0);a(oa);var Ee=o(oa,2);{var ft=Ge=>{var zt=cl(),Xt=r(zt,!0);a(zt),g(()=>N(Xt,e(Pt).description??e(Pt).id)),s(Ge,zt)};I(Ee,Ge=>{(e(Pt).label||e(Pt).description)&&Ge(ft)})}a(aa),g(()=>N(pe,e(Pt).label??e(Pt).id)),re("click",aa,()=>ye(e(Pt))),s(mt,aa)}),a(ut),a(gt),g(mt=>N(xt,mt),[()=>Nt(e(T))]),s(tt,gt)};I(we,tt=>{e(R).length>0&&tt(ot)})}var Gt=o(we,2);{var At=tt=>{var gt=pl();s(tt,gt)},Yt=tt=>{var gt=_l(),Et=r(gt,!0);a(gt),g(()=>N(Et,e(H))),s(tt,gt)};I(Gt,tt=>{e(x)?tt(At):e(H)&&tt(Yt,1)})}a(lt),s(Me,lt)};I(Ht,Me=>{(e(oe).length>0||e(R).length>0||e(x)||e(H))&&Me(Wt)})}a(_),g((Me,lt,yt,Se,we,ot)=>{N(G,Me),N(We,lt),N(et,yt),Ce(xe,"aria-label",Se),Ce(xe,"placeholder",we),N(nt,ot)},[()=>Ve(e(T)),()=>ve(e(T)),()=>st(e(T)),()=>st(e(T)),()=>{var Me;return((Me=e(T))==null?void 0:Me.placeholder)??u(e(T))},()=>P(e(T))]),re("keydown",xe,Me=>{Me.key==="Enter"&&He()}),$t(xe,()=>e(ae),Me=>t(ae,Me)),re("click",Fe,()=>He()),s(i,_)};I(c,i=>{e(V)&&i(h)})}var q=o(c,2);Ze(q,21,()=>Z,Ot,(i,_)=>{var Y=ml();let Q;var G=r(Y,!0);a(Y),g(()=>{Q=Rt(Y,1,"tab-btn svelte-11vdap9",null,Q,{"tab-btn--active":e(M)===e(_).id}),N(G,e(_).label)}),re("click",Y,()=>Qt(e(_).id)),s(i,Y)}),a(q);var ue=o(q,2),te=r(ue);{var Qe=i=>{var _=Ut(),Y=Ae(_);{var Q=$=>{var We=hl(),je=r(We),Le=r(je,!0);a(je);var Pe=o(je,2),et=r(Pe,!0);a(Pe),a(We),g((xe,Fe)=>{N(Le,xe),N(et,Fe)},[()=>ze(e(T)),()=>ht(e(T),"records")]),s($,We)},G=$=>{dn($,{get tableName(){return e(J)},get instanceId(){return e(be)}})};I(Y,$=>{e(V)&&!e(be)?$(Q):$(G,!1)})}s(i,_)},Lt=i=>{var _=Ut(),Y=Ae(_);{var Q=$=>{var We=yl(),je=r(We),Le=r(je,!0);a(je);var Pe=o(je,2),et=r(Pe,!0);a(Pe),a(We),g((xe,Fe)=>{N(Le,xe),N(et,Fe)},[()=>ze(e(T)),()=>ht(e(T),"query")]),s($,We)},G=$=>{var We=Ut(),je=Ae(We);jr(je,Je,Le=>{var Pe=kl();s(Le,Pe)},(Le,Pe)=>{const et=F(()=>e(Pe).default);var xe=Ut(),Fe=Ae(xe);lr(Fe,()=>e(et),(nt,Ue)=>{Ue(nt,{get tableName(){return e(J)},get namespace(){return e(K)},get instanceId(){return e(be)}})}),s(Le,xe)},(Le,Pe)=>{var et=wl(),xe=o(r(et),2),Fe=r(xe,!0);a(xe),a(et),g(()=>N(Fe,e(Pe)instanceof Error?e(Pe).message:"Failed to load query tools.")),s(Le,et)}),s($,We)};I(Y,$=>{e(V)&&!e(be)?$(Q):$(G,!1)})}s(i,_)},Vt=i=>{Pn(i,{get tableName(){return e(J)}})},pa=i=>{Mn(i,{get tableName(){return e(J)}})},Tt=i=>{Vn(i,{get tableName(){return e(J)}})};I(te,i=>{e(M)==="records"?i(Qe):e(M)==="query"?i(Lt,1):e(M)==="schema"?i(Vt,2):e(M)==="rules"?i(pa,3):e(M)==="sdk"&&i(Tt,4)})}a(ue),a(ie),g((i,_)=>{N(Bt,e(J)),N(Kt,e(K)),N(_a,i),ba=Rt(ca,1,"table-badge svelte-11vdap9",null,ba,{"table-badge--dynamic":e(V)}),N(ga,_),Ce(fa,"href",`${Ea??""}/database/erd`),Ce(Zt,"href",Or)},[()=>le(e(ne)),()=>Oe(e(V))]),s(_e,ie),na(),D()}da(["keydown","click"]);export{Ps as D,Xl as _};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as r}from"../chunks/uboHVq-x.js";import{w as t}from"../chunks/CfPHB4r5.js";export{t as load_css,r as start};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"../chunks/CWj6FrbW.js";import{p as ne,c as s,r as a,s as v,g as e,t as q,a as le,ae as Be,u as ae,w as oe,at as He,d as te,b as j,f as re}from"../chunks/BdTBlfLy.js";import{d as ce,s as Z,a as K,e as Me}from"../chunks/DtZk82gG.js";import{a as n,f as h,d as de,t as Fe,c as he}from"../chunks/DEELgv7K.js";import{s as xe}from"../chunks/XmteHKH_.js";import{i as $}from"../chunks/Y22E1hJM.js";import{a as Y,s as se,r as Ne}from"../chunks/CoI6jjbg.js";import{a as ie,s as ge}from"../chunks/Cp8V0Xy2.js";import{p as $e}from"../chunks/CN6aakgF.js";import{g as Ve}from"../chunks/uboHVq-x.js";import{b as o}from"../chunks/CfPHB4r5.js";import{a as _e}from"../chunks/mD4EETH_.js";import{m as Pe,f as Oe,c as Ze,b as Re}from"../chunks/DgxOZ3uv.js";import{d as Ue,l as Ke}from"../chunks/B-WlnirM.js";import{w as We}from"../chunks/Bn2NtlTj.js";import{e as ue,i as Ce,m as Ge,g as we,f as ye,h as Ye,j as Le,r as Je}from"../chunks/B14gOIqE.js";import{h as ze}from"../chunks/DHWOQ9Ui.js";import{p as je}from"../chunks/F9_4wRrd.js";import{b as Te}from"../chunks/CGgVJi7f.js";import{i as Qe}from"../chunks/C8s55wKu.js";import{b as Xe}from"../chunks/CYatlt7w.js";import{s as et}from"../chunks/BKLsgaNT.js";const tt=!1,rt=!1,br=Object.freeze(Object.defineProperty({__proto__:null,prerender:tt,ssr:rt},Symbol.toStringTag,{value:"Module"})),De="edgebase_theme";let ee="light";const Ae=We(ee);function ot(){if(typeof window>"u")return;const k=localStorage.getItem(De);k==="light"||k==="dark"?ee=k:window.matchMedia("(prefers-color-scheme: dark)").matches&&(ee="dark"),Ee(ee)}function at(){return ee=ee==="light"?"dark":"light",localStorage.setItem(De,ee),Ee(ee),ee}function st(k){document.documentElement.setAttribute("data-theme",k)}function Ee(k){ee=k,Ae.set(k),st(k)}function Se(k){return{overview:'<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="2" y="2" width="5" height="5" rx="1" stroke="currentColor" stroke-width="1.5"/><rect x="9" y="2" width="5" height="5" rx="1" stroke="currentColor" stroke-width="1.5"/><rect x="2" y="9" width="5" height="5" rx="1" stroke="currentColor" stroke-width="1.5"/><rect x="9" y="9" width="5" height="5" rx="1" stroke="currentColor" stroke-width="1.5"/></svg>',tables:'<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="2" y="2" width="12" height="12" rx="1.5" stroke="currentColor" stroke-width="1.5"/><path d="M2 6H14M2 10H14M6 6V14" stroke="currentColor" stroke-width="1.5"/></svg>',schema:'<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="2" y="2" width="5" height="5" rx="1" stroke="currentColor" stroke-width="1.5"/><rect x="9" y="9" width="5" height="5" rx="1" stroke="currentColor" stroke-width="1.5"/><path d="M7 4.5H9.5V9" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>',records:'<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M2 4H14M2 8H14M2 12H14" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>',sql:'<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 3H13M3 6H10M3 9H13M3 12H8" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/><path d="M12 10L14 12L12 14" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>',erd:'<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="2" width="5" height="4" rx="1" stroke="currentColor" stroke-width="1.5"/><rect x="10" y="10" width="5" height="4" rx="1" stroke="currentColor" stroke-width="1.5"/><path d="M6 4H8.5V12H10" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>',rulesTest:'<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M8 2L12 4V7.5C12 10.5 10.2 12.8 8 14C5.8 12.8 4 10.5 4 7.5V4L8 2Z" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/><path d="M6 8L7.5 9.5L10 6.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>',users:'<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><circle cx="8" cy="5" r="2.5" stroke="currentColor" stroke-width="1.5"/><path d="M3 14C3 11.2386 5.23858 9 8 9C10.7614 9 13 11.2386 13 14" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>',settings:'<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><circle cx="8" cy="8" r="2" stroke="currentColor" stroke-width="1.5"/><path d="M8 1V3M8 13V15M1 8H3M13 8H15M2.93 2.93L4.34 4.34M11.66 11.66L13.07 13.07M13.07 2.93L11.66 4.34M4.34 11.66L2.93 13.07" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>',storage:'<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M2 4L8 2L14 4V12L8 14L2 12V4Z" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/><path d="M2 4L8 6L14 4" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/><path d="M8 6V14" stroke="currentColor" stroke-width="1.5"/></svg>',functions:'<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M6 2C4.89543 2 4 2.89543 4 4V6L3 8L4 10V12C4 13.1046 4.89543 14 6 14" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/><path d="M10 2C11.1046 2 12 2.89543 12 4V6L13 8L12 10V12C12 13.1046 11.1046 14 10 14" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/><circle cx="6.5" cy="8" r="0.75" fill="currentColor"/><circle cx="9.5" cy="8" r="0.75" fill="currentColor"/></svg>',ai:'<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="3" y="3" width="10" height="10" rx="2" stroke="currentColor" stroke-width="1.5"/><path d="M8 1V3M8 13V15M1 8H3M13 8H15" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/><circle cx="6" cy="6.5" r="0.75" fill="currentColor"/><circle cx="10" cy="6.5" r="0.75" fill="currentColor"/><path d="M5.5 9.5C6.1 10.3 6.95 10.75 8 10.75C9.05 10.75 9.9 10.3 10.5 9.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>',logs:'<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M4 4H12M4 7H10M4 10H12M4 13H8" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>',live:'<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M1 8H3L5 3L8 13L11 6L13 8H15" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>',analytics:'<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="2" y="9" width="3" height="5" rx="0.5" stroke="currentColor" stroke-width="1.5"/><rect x="6.5" y="5" width="3" height="9" rx="0.5" stroke="currentColor" stroke-width="1.5"/><rect x="11" y="2" width="3" height="12" rx="0.5" stroke="currentColor" stroke-width="1.5"/></svg>',events:'<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><circle cx="4" cy="4" r="1.5" stroke="currentColor" stroke-width="1.5"/><circle cx="4" cy="8" r="1.5" stroke="currentColor" stroke-width="1.5"/><circle cx="4" cy="12" r="1.5" stroke="currentColor" stroke-width="1.5"/><path d="M7 4H14M7 8H12M7 12H14" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>',analyticsAuth:'<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M8 2L12 4V7.5C12 10.5 10.2 12.8 8 14C5.8 12.8 4 10.5 4 7.5V4L8 2Z" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/></svg>',analyticsDb:'<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><ellipse cx="8" cy="4" rx="5" ry="2" stroke="currentColor" stroke-width="1.5"/><path d="M3 4V12C3 13.1 5.24 14 8 14C10.76 14 13 13.1 13 12V4" stroke="currentColor" stroke-width="1.5"/><path d="M3 8C3 9.1 5.24 10 8 10C10.76 10 13 9.1 13 8" stroke="currentColor" stroke-width="1.5"/></svg>',analyticsStorage:'<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M8 2L14 5V11L8 14L2 11V5L8 2Z" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/><path d="M8 8V14M2 5L8 8L14 5" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/></svg>',analyticsFn:'<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M5.5 2H10C11.1 2 12 2.9 12 4V5.5M4 10.5V12C4 13.1 4.9 14 6 14H10.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/><path d="M3 7L6.5 7L8 5L10 9L11.5 7L13 7" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>',push:'<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M4 3C4 2.44772 4.44772 2 5 2H11C11.5523 2 12 2.44772 12 3V13C12 13.5523 11.5523 14 11 14H5C4.44772 14 4 13.5523 4 13V3Z" stroke="currentColor" stroke-width="1.5"/><circle cx="8" cy="11" r="0.75" fill="currentColor"/><path d="M6.5 5H9.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>',backup:'<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8V12C3 13.1046 3.89543 14 5 14H11C12.1046 14 13 13.1046 13 12V8" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/><path d="M8 2V10M8 10L5 7M8 10L11 7" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>',apiDocs:'<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 2H10L13 5V14H3V2Z" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/><path d="M10 2V5H13" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/><path d="M6 8H10M6 10.5H9" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>',configView:'<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="2" y="3" width="12" height="10" rx="1.5" stroke="currentColor" stroke-width="1.5"/><path d="M2 6H14" stroke="currentColor" stroke-width="1.5"/><path d="M5 6V13" stroke="currentColor" stroke-width="1.5"/><circle cx="4" cy="4.5" r="0.5" fill="currentColor"/><circle cx="6" cy="4.5" r="0.5" fill="currentColor"/><circle cx="8" cy="4.5" r="0.5" fill="currentColor"/></svg>',email:'<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="2" y="3" width="12" height="10" rx="1.5" stroke="currentColor" stroke-width="1.5"/><path d="M2 3L8 9L14 3" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>'}[k]??""}var it=h('<a class="sidebar__brand svelte-6dohdz" aria-label="EdgeBase home"><img class="sidebar__brand-icon svelte-6dohdz" alt=""/> <span class="sidebar__brand-text svelte-6dohdz">EdgeBase</span></a>'),nt=h('<a class="sidebar__brand svelte-6dohdz" aria-label="EdgeBase home"><img class="sidebar__brand-icon svelte-6dohdz" alt=""/></a>'),lt=h('<div class="sidebar__dev-badge svelte-6dohdz"><!></div>'),ct=h('<span class="sidebar__label svelte-6dohdz"> </span>'),dt=h('<div class="sidebar__section-title svelte-6dohdz"> </div>'),vt=h('<span class="sidebar__label svelte-6dohdz"> </span>'),ht=h('<a><span class="sidebar__icon svelte-6dohdz"><!></span> <!></a>'),ut=h('<div class="sidebar__section svelte-6dohdz"><!> <!></div>'),pt=de('<path d="M6 3L11 8L6 13" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>'),ft=de('<path d="M10 3L5 8L10 13" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>'),gt=h('<aside><div class="sidebar__logo svelte-6dohdz"><!></div> <!> <nav class="sidebar__nav svelte-6dohdz"><div class="sidebar__section sidebar__section--overview svelte-6dohdz"><a><span class="sidebar__icon svelte-6dohdz"><!></span> <!></a></div> <!></nav> <button class="sidebar__toggle svelte-6dohdz" aria-label="Toggle sidebar"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><!></svg></button></aside>');function kt(k,L){ne(L,!0);const S=()=>ie(Ue,"$devInfoStore",F),H=()=>ie($e,"$page",F),[F,z]=ge();let d=je(L,"collapsed",15,!1);const c={label:"Overview",href:`${o}/`,icon:"overview"},x=[{title:"Auth",items:[{label:"Users",href:`${o}/auth`,icon:"users"},{label:"Auth Settings",href:`${o}/auth/settings`,icon:"settings"},{label:"Email Templates",href:`${o}/auth/email-templates`,icon:"email"}]},{title:"Database",items:[{label:"Tables",href:`${o}/database/tables`,icon:"tables"},{label:"ERD",href:`${o}/database/erd`,icon:"erd"}]},{title:"Storage",items:[{label:"Files",href:`${o}/storage`,icon:"storage"}]},{title:"Functions",items:[{label:"Functions",href:`${o}/functions`,icon:"functions"}]},{title:"Push",items:[{label:"Notifications",href:`${o}/push`,icon:"push"}]},{title:"Analytics",items:[{label:"Overview",href:`${o}/analytics`,icon:"analytics"},{label:"Events",href:`${o}/analytics/events`,icon:"events"},{label:"Auth",href:`${o}/analytics/auth`,icon:"analyticsAuth"},{label:"Database",href:`${o}/analytics/database`,icon:"analyticsDb"},{label:"Storage",href:`${o}/analytics/storage`,icon:"analyticsStorage"},{label:"Functions",href:`${o}/analytics/functions`,icon:"analyticsFn"}]},{title:"Monitoring",items:[{label:"Logs",href:`${o}/logs`,icon:"logs"},{label:"Live",href:`${o}/monitoring`,icon:"live"}]},{title:"System",items:[{label:"API Docs",href:`${o}/docs`,icon:"apiDocs"},{label:"Backup",href:`${o}/backup`,icon:"backup"},{label:"Project Info",href:`${o}/settings`,icon:"configView"}]}];function m(t,r){return t===`${o}/`?r===`${o}/`||r===o:t===`${o}/auth`&&r===`${o}/auth`||t===`${o}/auth`&&r.startsWith(`${o}/auth/`)&&!r.startsWith(`${o}/auth/settings`)&&!r.startsWith(`${o}/auth/email-templates`)?!0:t===`${o}/analytics`&&r!==`${o}/analytics`?!1:t!==`${o}/auth`?r.startsWith(t):!1}var C=gt();let w;var E=s(C),N=s(E);{var R=t=>{var r=it(),B=s(r);Be(2),a(r),q(()=>{Y(r,"href",`${o??""}/`),Y(B,"src",`${o}/favicon.svg`)}),n(t,r)},P=t=>{var r=nt(),B=s(r);a(r),q(()=>{Y(r,"href",`${o??""}/`),Y(B,"src",`${o}/favicon.svg`)}),n(t,r)};$(N,t=>{d()?t(P,!1):t(R)})}a(E);var _=v(E,2);{var T=t=>{var r=lt(),B=s(r);{var W=J=>{var G=Fe("DEV");n(J,G)};$(B,J=>{d()||J(W)})}a(r),n(t,r)};$(_,t=>{S().devMode&&t(T)})}var u=v(_,2),g=s(u),l=s(g);let i;var M=s(l),b=s(M);ze(b,()=>Se(c.icon)),a(M);var y=v(M,2);{var A=t=>{var r=ct(),B=s(r,!0);a(r),q(()=>Z(B,c.label)),n(t,r)};$(y,t=>{d()||t(A)})}a(l),a(g);var I=v(g,2);ue(I,17,()=>x,Ce,(t,r)=>{var B=ut(),W=s(B);{var J=Q=>{var O=dt(),X=s(O,!0);a(O),q(()=>Z(X,e(r).title)),n(Q,O)};$(W,Q=>{d()||Q(J)})}var G=v(W,2);ue(G,17,()=>e(r).items,Ce,(Q,O)=>{var X=ht();let ve;var pe=s(X),ke=s(pe);ze(ke,()=>Se(e(O).icon)),a(pe);var be=v(pe,2);{var Ie=fe=>{var me=vt(),qe=s(me,!0);a(me),q(()=>Z(qe,e(O).label)),n(fe,me)};$(be,fe=>{d()||fe(Ie)})}a(X),q(fe=>{Y(X,"href",e(O).href),ve=se(X,1,"sidebar__link svelte-6dohdz",null,ve,fe),Y(X,"title",d()?e(O).label:void 0)},[()=>({"sidebar__link--active":m(e(O).href,H().url.pathname)})]),n(Q,X)}),a(B),n(t,B)}),a(u);var p=v(u,2),D=s(p),U=s(D);{var V=t=>{var r=pt();n(t,r)},f=t=>{var r=ft();n(t,r)};$(U,t=>{d()?t(V):t(f,!1)})}a(D),a(p),a(C),q(t=>{w=se(C,1,"sidebar svelte-6dohdz",null,w,{"sidebar--collapsed":d()}),Y(l,"href",c.href),i=se(l,1,"sidebar__link svelte-6dohdz",null,i,t),Y(l,"title",d()?c.label:void 0)},[()=>({"sidebar__link--active":m(c.href,H().url.pathname)})]),K("click",p,()=>d(!d())),n(k,C),le(),z()}ce(["click"]);var _t=de('<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="5"></circle><line x1="12" y1="1" x2="12" y2="3"></line><line x1="12" y1="21" x2="12" y2="23"></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line><line x1="1" y1="12" x2="3" y2="12"></line><line x1="21" y1="12" x2="23" y2="12"></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line></svg>'),bt=de('<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"></path></svg>'),mt=h('<button class="theme-toggle svelte-bxe964"><!></button>');function wt(k,L){ne(L,!0);const S=()=>ie(Ae,"$themeStore",H),[H,F]=ge();let z=ae(()=>S()==="dark");function d(){at()}var c=mt(),x=s(c);{var m=w=>{var E=_t();n(w,E)},C=w=>{var E=bt();n(w,E)};$(x,w=>{e(z)?w(m):w(C,!1)})}a(c),q(()=>{Y(c,"aria-label",e(z)?"Switch to light mode":"Switch to dark mode"),Y(c,"title",e(z)?"Light mode":"Dark mode")}),K("click",c,d),n(k,c),le(),F()}ce(["click"]);var yt=h('<span class="nc-badge svelte-la2t1l"> </span>'),xt=h('<button class="nc-clear svelte-la2t1l">Clear all</button>'),Ct=h('<div class="nc-empty svelte-la2t1l">No notifications</div>'),Mt=h('<div><span> </span> <span class="nc-message svelte-la2t1l"> </span> <span class="nc-time svelte-la2t1l"> </span></div>'),$t=h('<button type="button" class="nc-backdrop svelte-la2t1l" aria-label="Close notifications"></button> <div class="nc-dropdown svelte-la2t1l" role="dialog" aria-modal="true" aria-label="Notifications" tabindex="-1"><div class="nc-header svelte-la2t1l"><span class="nc-title svelte-la2t1l">Notifications</span> <!></div> <div class="nc-list svelte-la2t1l"><!></div></div>',1),Lt=h('<div class="notification-center svelte-la2t1l"><button class="nc-btn svelte-la2t1l" aria-label="Notifications"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M8 1.5C5.5 1.5 4 3.5 4 5.5V8L2.5 10.5H13.5L12 8V5.5C12 3.5 10.5 1.5 8 1.5Z" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"></path><path d="M6 11.5C6 12.6046 6.89543 13.5 8 13.5C9.10457 13.5 10 12.6046 10 11.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path></svg> <!></button> <!></div>');function zt(k,L){ne(L,!0);let S=te(!1),H=te(void 0);function F(){j(S,!e(S)),e(S)&&Ge()}function z(){j(S,!1)}function d(_){const T=Date.now()-_,u=Math.floor(T/1e3);if(u<60)return"just now";const g=Math.floor(u/60);if(g<60)return`${g}m ago`;const l=Math.floor(g/60);return l<24?`${l}h ago`:`${Math.floor(l/24)}d ago`}const c={success:"✓",error:"✕",warning:"⚠",info:"ℹ"};function x(_){_.key==="Escape"&&z()}oe(()=>{e(S)&&requestAnimationFrame(()=>{var _;return(_=e(H))==null?void 0:_.focus()})});var m=Lt();Me("keydown",He,x);var C=s(m),w=v(s(C),2);{var E=_=>{var T=yt(),u=s(T,!0);a(T),q(g=>Z(u,g),[()=>we()>9?"9+":we()]),n(_,T)},N=ae(()=>we()>0);$(w,_=>{e(N)&&_(E)})}a(C);var R=v(C,2);{var P=_=>{var T=$t(),u=re(T),g=v(u,2),l=s(g),i=v(s(l),2);{var M=p=>{var D=xt();K("click",D,function(...U){var V;(V=Ye)==null||V.apply(this,U)}),n(p,D)};$(i,p=>{ye.length>0&&p(M)})}a(l);var b=v(l,2),y=s(b);{var A=p=>{var D=Ct();n(p,D)},I=p=>{var D=he(),U=re(D);ue(U,17,()=>ye,V=>V.id,(V,f)=>{var t=Mt(),r=s(t),B=s(r,!0);a(r);var W=v(r,2),J=s(W,!0);a(W);var G=v(W,2),Q=s(G,!0);a(G),a(t),q(O=>{se(t,1,`nc-item nc-item--${e(f).type??""}`,"svelte-la2t1l"),se(r,1,`nc-icon nc-icon--${e(f).type??""}`,"svelte-la2t1l"),Z(B,c[e(f).type]),Z(J,e(f).message),Z(Q,O)},[()=>d(e(f).timestamp)]),n(V,t)}),n(p,D)};$(y,p=>{ye.length===0?p(A):p(I,!1)})}a(b),a(g),Te(g,p=>j(H,p),()=>e(H)),K("click",u,z),n(_,T)};$(R,_=>{e(S)&&_(P)})}a(m),K("click",C,F),n(k,m),le()}ce(["click"]);var St=h('<span class="header__separator svelte-hv3zzy">/</span>'),Bt=h('<span class="header__crumb header__crumb--current svelte-hv3zzy"> </span>'),Ht=h('<a class="header__crumb svelte-hv3zzy"> </a>'),Vt=h("<!> <!>",1),jt=h('<h1 class="header__title svelte-hv3zzy"> </h1>'),Tt=h('<header class="header svelte-hv3zzy"><div class="header__left svelte-hv3zzy"><nav class="header__breadcrumbs svelte-hv3zzy" aria-label="Breadcrumb"></nav> <!></div> <div class="header__right svelte-hv3zzy"><!> <!> <!> <div class="header__user svelte-hv3zzy"><span class="header__email svelte-hv3zzy"> </span> <button class="header__logout svelte-hv3zzy">Logout</button></div></div></header>');function Dt(k,L){ne(L,!0);const S=()=>ie($e,"$page",F),H=()=>ie(_e,"$authStore",F),[F,z]=ge();function d(){Pe(),_e.logout()}function c(b){const y=[],I=b.replace(o,"").split("/").filter(Boolean),p={database:"Database",schema:"Schema",records:"Records",auth:"Auth",settings:"Settings",storage:"Storage",logs:"Logs",monitoring:"Monitoring",new:"New"};let D=o;for(const[U,V]of I.entries()){D+=`/${V}`;const f=decodeURIComponent(V),t=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(f)||/^[0-9a-f]{20,}$/i.test(f);let r=p[V]??(t?f.slice(0,8)+"...":f);V==="settings"&&(r=I[U-1]==="auth"?"Auth Settings":"Project Info"),y.push({label:r,href:D})}return y}let x=ae(()=>c(S().url.pathname));var m=Tt(),C=s(m),w=s(C);ue(w,21,()=>e(x),Ce,(b,y,A)=>{var I=Vt(),p=re(I);{var D=t=>{var r=St();n(t,r)};$(p,t=>{A>0&&t(D)})}var U=v(p,2);{var V=t=>{var r=Bt(),B=s(r,!0);a(r),q(()=>Z(B,e(y).label)),n(t,r)},f=t=>{var r=Ht(),B=s(r,!0);a(r),q(()=>{Y(r,"href",e(y).href),Z(B,e(y).label)}),n(t,r)};$(U,t=>{A===e(x).length-1?t(V):t(f,!1)})}n(b,I)}),a(w);var E=v(w,2);{var N=b=>{var y=jt(),A=s(y,!0);a(y),q(()=>Z(A,L.title)),n(b,y)};$(E,b=>{L.title&&b(N)})}a(C);var R=v(C,2),P=s(R);{var _=b=>{var y=he(),A=re(y);xe(A,()=>L.actions),n(b,y)};$(P,b=>{L.actions&&b(_)})}var T=v(P,2);zt(T,{});var u=v(T,2);wt(u,{});var g=v(u,2),l=s(g),i=s(l,!0);a(l);var M=v(l,2);a(g),a(R),a(m),q(()=>{var b;return Z(i,((b=H().admin)==null?void 0:b.email)??"")}),K("click",M,d),n(k,m),le(),z()}ce(["click"]);var At=de('<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M4 8.5L6.5 11L12 5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg>'),Et=de('<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M5 5L11 11M11 5L5 11" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path></svg>'),It=de('<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><circle cx="8" cy="5" r="0.75" fill="currentColor"></circle><path d="M8 7.5V11" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path></svg>'),qt=h('<div role="status"><span class="toast__icon svelte-zemmny" aria-hidden="true"><!></span> <span class="toast__message svelte-zemmny"> </span> <button class="toast__dismiss svelte-zemmny" aria-label="Dismiss"><svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M4 4L10 10M10 4L4 10" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path></svg></button></div>'),Ft=h('<div class="toast-container svelte-zemmny" aria-live="polite"></div>');function Nt(k,L){ne(L,!1),Qe();var S=he(),H=re(S);{var F=z=>{var d=Ft();ue(d,5,()=>Le,c=>c.id,(c,x)=>{var m=qt(),C=s(m),w=s(C);{var E=u=>{var g=At();n(u,g)},N=u=>{var g=Et();n(u,g)},R=u=>{var g=It();n(u,g)};$(w,u=>{e(x).type==="success"?u(E):e(x).type==="error"?u(N,1):u(R,!1)})}a(C);var P=v(C,2),_=s(P,!0);a(P);var T=v(P,2);a(m),q(()=>{se(m,1,`toast toast--${e(x).type??""}`,"svelte-zemmny"),Z(_,e(x).message)}),K("click",T,()=>Je(e(x).id)),n(c,m)}),a(d),n(z,d)};$(H,z=>{Le.length>0&&z(F)})}n(k,S),le()}ce(["click"]);var Pt=h('<div class="palette__empty svelte-xhxto7">No results found</div>'),Ot=h('<button><span class="palette__item-label svelte-xhxto7"> </span> <span class="palette__item-desc svelte-xhxto7"> </span> <span class="palette__item-cat svelte-xhxto7"> </span></button>'),Zt=h('<div class="palette-layer svelte-xhxto7"><button type="button" class="palette-backdrop svelte-xhxto7" aria-label="Close command palette"></button> <div class="palette svelte-xhxto7" role="dialog" aria-modal="true" aria-label="Command palette" tabindex="-1"><div class="palette__search svelte-xhxto7"><svg class="palette__search-icon svelte-xhxto7" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg> <input class="palette__input svelte-xhxto7" type="text" placeholder="Search pages, tables..."/> <kbd class="palette__kbd svelte-xhxto7">ESC</kbd></div> <div class="palette__results svelte-xhxto7"><!></div></div></div>');function Rt(k,L){ne(L,!0);const S=()=>ie(et,"$schemaStore",H),[H,F]=ge();let z=je(L,"open",15,!1),d=te(""),c=te(0),x=te(void 0);const m=[{label:"Overview",description:"Dashboard home",href:`${o}/`,category:"Navigation"},{label:"Users",description:"Manage user accounts",href:`${o}/auth`,category:"Auth"},{label:"Auth Settings",description:"Manage authentication providers and methods",href:`${o}/auth/settings`,category:"Auth"},{label:"Tables",description:"Database tables",href:`${o}/database/tables`,category:"Database"},{label:"ERD Diagram",description:"Entity relationship diagram",href:`${o}/database/erd`,category:"Database"},{label:"Storage",description:"File storage buckets",href:`${o}/storage`,category:"Storage"},{label:"Functions",description:"Serverless functions",href:`${o}/functions`,category:"Functions"},{label:"Push Notifications",description:"Push token management",href:`${o}/push`,category:"Push"},{label:"Analytics",description:"Traffic and performance",href:`${o}/analytics`,category:"Analytics"},{label:"Events",description:"Event timeline",href:`${o}/analytics/events`,category:"Analytics"},{label:"Logs",description:"Application logs",href:`${o}/logs`,category:"Monitoring"},{label:"Live",description:"WebSocket monitoring",href:`${o}/monitoring`,category:"Monitoring"},{label:"Backup",description:"Backup and restore",href:`${o}/backup`,category:"System"},{label:"Project Info",description:"Environment and resource overview",href:`${o}/settings`,category:"System"}];let C=ae(()=>Object.keys(S().schema||{}).map(i=>({label:i,description:`Table: ${i}`,href:`${o}/database/tables/${i}`,category:"Tables"}))),w=ae(()=>[...m,...e(C)]),E=ae(()=>()=>{if(!e(d).trim())return e(w);const i=e(d).toLowerCase();return e(w).filter(M=>M.label.toLowerCase().includes(i)||M.description.toLowerCase().includes(i)||M.category.toLowerCase().includes(i))}),N=ae(()=>e(E)());oe(()=>{z()&&(j(d,""),j(c,0),requestAnimationFrame(()=>{var i;return(i=e(x))==null?void 0:i.focus()}))}),oe(()=>{e(d),j(c,0)});function R(i){i.key==="ArrowDown"?(i.preventDefault(),j(c,Math.min(e(c)+1,e(N).length-1),!0)):i.key==="ArrowUp"?(i.preventDefault(),j(c,Math.max(e(c)-1,0),!0)):i.key==="Enter"?(i.preventDefault(),e(N)[e(c)]&&P(e(N)[e(c)].href)):i.key==="Escape"&&z(!1)}function P(i){z(!1),Ve(i)}function _(){z(!1)}function T(i){i.stopPropagation()}var u=he(),g=re(u);{var l=i=>{var M=Zt(),b=s(M),y=v(b,2),A=s(y),I=v(s(A),2);Ne(I),Te(I,f=>j(x,f),()=>e(x)),Be(2),a(A);var p=v(A,2),D=s(p);{var U=f=>{var t=Pt();n(f,t)},V=f=>{var t=he(),r=re(t);ue(r,19,()=>e(N),B=>B.href,(B,W,J)=>{var G=Ot();let Q;var O=s(G),X=s(O,!0);a(O);var ve=v(O,2),pe=s(ve,!0);a(ve);var ke=v(ve,2),be=s(ke,!0);a(ke),a(G),q(()=>{Q=se(G,1,"palette__item svelte-xhxto7",null,Q,{"palette__item--selected":e(J)===e(c)}),Z(X,e(W).label),Z(pe,e(W).description),Z(be,e(W).category)}),K("click",G,()=>P(e(W).href)),Me("mouseenter",G,()=>j(c,e(J),!0)),n(B,G)}),n(f,t)};$(D,f=>{e(N).length===0?f(U):f(V,!1)})}a(p),a(y),a(M),K("click",b,_),K("click",y,T),K("keydown",y,R),K("keydown",I,R),Xe(I,()=>e(d),f=>j(d,f)),n(i,M)};$(g,i=>{z()&&i(l)})}n(k,u),le(),F()}ce(["click","keydown"]);var Ut=h('<button type="button" class="sidebar-overlay svelte-12qhfyh" aria-label="Close navigation menu"></button>'),Kt=h('<button class="mobile-menu-btn svelte-12qhfyh" aria-label="Toggle menu"><svg width="20" height="20" viewBox="0 0 20 20" fill="none"><path d="M3 5H17M3 10H17M3 15H17" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path></svg></button>'),Wt=h('<div><!> <!> <div class="app-main svelte-12qhfyh"><!> <!> <main class="app-content svelte-12qhfyh"><!></main></div></div>'),Gt=h('<div class="app-loading svelte-12qhfyh"><span>Loading...</span></div>'),Yt=h("<!> <!> <!>",1);function mr(k,L){ne(L,!0);const S=()=>ie($e,"$page",F),H=()=>ie(_e,"$authStore",F),[F,z]=ge();let d=te(!1),c=te(!1),x=te(!1),m=te(!1);oe(()=>{ot()}),oe(()=>{if(typeof window>"u")return;const l=window.matchMedia("(max-width: 768px)"),i=M=>{j(c,M.matches,!0),M.matches&&j(d,!0)};return i(l),l.addEventListener("change",i),()=>l.removeEventListener("change",i)});function C(){e(c)&&j(d,!0)}let w=ae(()=>S().url.pathname===`${o}/login`||S().url.pathname===`${o}/login/`);oe(()=>{!e(w)&&H().accessToken&&!e(x)?E():H().accessToken||j(x,!0)});async function E(){try{if((await Oe()).needsSetup){_e.logout();return}}catch{}j(x,!0)}oe(()=>{if(!e(w)&&!H().accessToken){const l=Ze()?`${o}/login`:Re(S().url);Ve(l,{replaceState:!0})}}),oe(()=>{H().accessToken&&e(x)&&Ke()});var N=Yt();Me("keydown",He,l=>{(l.metaKey||l.ctrlKey)&&l.key==="k"&&(l.preventDefault(),j(m,!e(m)))});var R=re(N);{var P=l=>{var i=he(),M=re(i);xe(M,()=>L.children),n(l,i)},_=l=>{var i=Wt();let M;var b=s(i);{var y=t=>{var r=Ut();K("click",r,C),n(t,r)};$(b,t=>{e(c)&&!e(d)&&t(y)})}var A=v(b,2);kt(A,{get collapsed(){return e(d)},set collapsed(t){j(d,t,!0)}});var I=v(A,2),p=s(I);{var D=t=>{var r=Kt();K("click",r,()=>j(d,!e(d))),n(t,r)};$(p,t=>{e(c)&&t(D)})}var U=v(p,2);Dt(U,{});var V=v(U,2),f=s(V);xe(f,()=>L.children),a(V),a(I),a(i),q(()=>M=se(i,1,"app-layout svelte-12qhfyh",null,M,{"app-layout--mobile":e(c)})),n(l,i)},T=l=>{var i=Gt();n(l,i)};$(R,l=>{e(w)?l(P):H().accessToken?l(_,1):l(T,!1)})}var u=v(R,2);Nt(u,{});var g=v(u,2);Rt(g,{get open(){return e(m)},set open(l){j(m,l,!0)}}),n(k,N),le(),z()}ce(["click"]);export{mr as component,br as universal};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"../chunks/CWj6FrbW.js";import{p as o,w as t,a as e}from"../chunks/BdTBlfLy.js";import{g as r}from"../chunks/uboHVq-x.js";import{b as p}from"../chunks/CfPHB4r5.js";function n(s,a){o(a,!0),t(()=>{r(`${p}/database/tables`,{replaceState:!0})}),e()}export{n as component};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as m}from"../chunks/D8Nrx_IG.js";export{m as component};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"../chunks/CWj6FrbW.js";import{o as Ye}from"../chunks/Bn2NtlTj.js";import{p as Ze,d as f,M as ye,a as et,g as e,f as ce,c as u,b as l,s as o,r as n,ae as G,t as O,u as X}from"../chunks/BdTBlfLy.js";import{d as tt,s as C,a as Le}from"../chunks/DtZk82gG.js";import{i as y}from"../chunks/Y22E1hJM.js";import{e as ke,i as Ce,a as rt,t as at,b as Ie}from"../chunks/B14gOIqE.js";import{t as Y,a as i,f as d}from"../chunks/DEELgv7K.js";import{s as Z}from"../chunks/CoI6jjbg.js";import{d as Ne}from"../chunks/wJsUhbfZ.js";import{g as st}from"../chunks/Ce-ngf4p.js";import{P as lt}from"../chunks/B8s_s9QY.js";import{a as ot}from"../chunks/Q2nPFxS6.js";import{B as ee}from"../chunks/C72lTcG0.js";import{I as Oe}from"../chunks/_teD5ji5.js";import{S as pe}from"../chunks/DpuSetmN.js";import{E as nt}from"../chunks/m9eWh0Cd.js";import{S as fe}from"../chunks/DP9kmlCd.js";var it=d('<span class="log-counter log-counter--error svelte-1lsf4ps"> </span>'),vt=d("<!> <!>",1),ut=d('<span class="live-dot svelte-1lsf4ps"></span>'),ct=d('<div class="log-actions svelte-1lsf4ps"><div class="log-counters svelte-1lsf4ps"><span class="log-counter svelte-1lsf4ps"> </span> <!></div> <!> <button><!> </button></div>'),pt=d('<div class="log-skeleton__row svelte-1lsf4ps"><!> <!> <!></div>'),ft=d('<div class="log-skeleton svelte-1lsf4ps"></div>'),dt=d("<span> </span>"),gt=d('<span class="log-entry__service svelte-1lsf4ps"> </span>'),mt=d('<span class="log-entry__time svelte-1lsf4ps"> </span>'),_t=d('<pre class="log-entry__detail svelte-1lsf4ps"> </pre>'),ht=d('<button type="button"><div class="log-entry__header svelte-1lsf4ps"><span><svg width="12" height="12" viewBox="0 0 12 12" fill="none" class="svelte-1lsf4ps"><path d="M4.5 3L7.5 6L4.5 9" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-1lsf4ps"></path></svg></span> <!> <!> <!> <span class="log-entry__summary svelte-1lsf4ps"> </span></div> <!></button>'),bt=d('<div class="pagination svelte-1lsf4ps"><!></div>'),St=d('<div class="log-list svelte-1lsf4ps"></div> <!>',1),xt=d('<div class="controls svelte-1lsf4ps"><div class="controls__fields svelte-1lsf4ps"><!> <!> <!> <!> <!></div> <div class="controls__actions svelte-1lsf4ps"><!></div></div> <!>',1);function jt(Pe,De){Ze(De,!0);let te=f(!0),g=f(ye([])),E=f(null),re=f(!1),B=f("log:"),ae=f("50"),F=f("all"),J=f("all"),z=f(""),q=f(ye(new Set)),I=f(!1),P=f(null),de=f(0),se=f(0);const Ue=[{value:"20",label:"20"},{value:"50",label:"50"},{value:"100",label:"100"}],Ee=[{value:"all",label:"All Levels"},{value:"info",label:"Info"},{value:"warn",label:"Warning (3xx/4xx)"},{value:"error",label:"Error (5xx)"},{value:"debug",label:"Debug"}],Ve=[{value:"all",label:"All Services"},{value:"auth",label:"Auth"},{value:"db",label:"Database"},{value:"storage",label:"Storage"},{value:"databaseLive",label:"Live"},{value:"push",label:"Push"},{value:"room",label:"Rooms"},{value:"function",label:"Functions"},{value:"kv",label:"KV"},{value:"sql",label:"SQL"},{value:"d1",label:"D1"},{value:"vectorize",label:"Vectorize"},{value:"users",label:"Users API"},{value:"admin",label:"Admin"},{value:"health",label:"Health"}];async function V(t=!1){t?l(re,!0):(l(te,!0),l(q,new Set,!0));try{let r=`data/logs?limit=${encodeURIComponent(e(ae))}`;e(B).trim()&&(r+=`&prefix=${encodeURIComponent(e(B).trim())}`),e(F)!=="all"&&(r+=`&level=${encodeURIComponent(e(F))}`),e(J)!=="all"&&(r+=`&category=${encodeURIComponent(e(J))}`),e(z).trim()&&(r+=`&path=${encodeURIComponent(e(z).trim())}`),t&&e(E)&&(r+=`&cursor=${encodeURIComponent(e(E))}`);const s=await rt.fetch(r);t?l(g,[...e(g),...s.logs],!0):l(g,s.logs,!0),l(E,s.cursor,!0),l(de,e(g).length,!0),l(se,e(g).filter(h=>{const p=ge(h);return p==="error"||p==="fatal"||p==="critical"}).length,!0)}catch(r){at(r instanceof Error?r.message:"Failed to load logs")}finally{l(te,!1),l(re,!1)}}function Ae(){l(E,null),V()}function Me(t){const r=new Set(e(q));r.has(t)?r.delete(t):r.add(t),l(q,r,!0)}function Re(){l(I,!e(I)),e(I)?(V(),l(P,setInterval(()=>{V()},2e3),!0)):e(P)&&(clearInterval(e(P)),l(P,null))}function je(t){const r=String(t.method??""),s=String(t.path??t.url??""),h=me(t),p=typeof t.duration=="number"?t.duration:Number(t.duration??0);if(r&&s){const L=[`${r.toUpperCase()} ${s}`];return h>0&&L.push(String(h)),p>0&&L.push(`${Math.round(p)}ms`),L.join(" · ")}if(typeof t.message=="string")return t.message;if(typeof t.msg=="string")return t.msg;if(typeof t.level=="string"&&typeof t.timestamp=="string")return`[${t.level}] ${t.timestamp}`;const x=Object.keys(t);return x.length===0?"(empty)":x.slice(0,3).join(", ")+(x.length>3?"...":"")}function ge(t){const r=t.level??t.severity??"";if(r)return String(r).toLowerCase();const s=me(t);return s>=500?"error":s>=400||s>=300?"warn":s>=200?"info":s>0?"debug":""}function me(t){if(typeof t.status=="number")return t.status;if(typeof t.status=="string"){const r=Number.parseInt(t.status,10);return Number.isFinite(r)?r:0}return 0}function Be(t){const r=t.timestamp??t.time??t.ts??t.date??"";if(!r)return"";try{const s=typeof r=="number"?new Date(r):/^\d+$/.test(String(r))?new Date(Number(r)):new Date(String(r));return Number.isNaN(s.getTime())?"":s.toLocaleString()}catch{return String(r)}}function Fe(t){try{return JSON.stringify(t,null,2)}catch{return String(t)}}function Je(t){switch(t){case"error":case"fatal":case"critical":return"level--error";case"warn":case"warning":return"level--warn";case"info":return"level--info";case"debug":case"trace":return"level--debug";default:return""}}function ze(){if(e(g).length===0)return;const t=Object.keys(e(g)[0]),r=st(t,e(g)),s=new Blob([r],{type:"text/csv"});Ne(s,`logs-${new Date().toISOString().slice(0,10)}.csv`),Ie("Logs exported as CSV")}function qe(){if(e(g).length===0)return;const t=new Blob([JSON.stringify(e(g),null,2)],{type:"application/json"});Ne(t,`logs-${new Date().toISOString().slice(0,10)}.json`),Ie("Logs exported as JSON")}Ye(()=>(V(),()=>{e(P)&&clearInterval(e(P))})),lt(Pe,{title:"Logs",description:"View request logs and analytics",get docsHref(){return ot},actions:r=>{var s=ct(),h=u(s),p=u(h),x=u(p);n(p);var L=o(p,2);{var H=m=>{var S=it(),a=u(S);n(S),O(()=>C(a,`${e(se)??""} server errors`)),i(m,S)};y(L,m=>{e(se)>0&&m(H)})}n(h);var A=o(h,2);{var T=m=>{var S=vt(),a=ce(S);ee(a,{variant:"secondary",size:"sm",onclick:ze,children:(b,Q)=>{G();var w=Y("Export CSV");i(b,w)},$$slots:{default:!0}});var $=o(a,2);ee($,{variant:"secondary",size:"sm",onclick:qe,children:(b,Q)=>{G();var w=Y("Export JSON");i(b,w)},$$slots:{default:!0}}),i(m,S)};y(A,m=>{e(g).length>0&&m(T)})}var D=o(A,2);let M;var K=u(D);{var le=m=>{var S=ut();i(m,S)};y(K,m=>{e(I)&&m(le)})}var oe=o(K);n(D),n(s),O(()=>{C(x,`${e(de)??""} total`),M=Z(D,1,"live-btn svelte-1lsf4ps",null,M,{"live-btn--active":e(I)}),C(oe,` ${e(I)?"Live":"Paused"}`)}),Le("click",D,Re),i(r,s)},children:(r,s)=>{var h=xt(),p=ce(h),x=u(p),L=u(x);Oe(L,{label:"Prefix filter",placeholder:"log:",get value(){return e(B)},set value(a){l(B,a,!0)}});var H=o(L,2);pe(H,{label:"Level",get options(){return Ee},get value(){return e(F)},set value(a){l(F,a,!0)}});var A=o(H,2);pe(A,{label:"Service",get options(){return Ve},get value(){return e(J)},set value(a){l(J,a,!0)}});var T=o(A,2);Oe(T,{label:"Search logs",placeholder:"/api/...",get value(){return e(z)},set value(a){l(z,a,!0)}});var D=o(T,2);pe(D,{label:"Limit",get options(){return Ue},get value(){return e(ae)},set value(a){l(ae,a,!0)}}),n(x);var M=o(x,2),K=u(M);ee(K,{variant:"primary",onclick:Ae,children:(a,$)=>{G();var b=Y("Search");i(a,b)},$$slots:{default:!0}}),n(M),n(p);var le=o(p,2);{var oe=a=>{var $=ft();ke($,20,()=>Array(10),Ce,(b,Q)=>{var w=pt(),k=u(w);fe(k,{width:"60px",height:"20px"});var _=o(k,2);fe(_,{width:"120px",height:"14px"});var U=o(_,2);fe(U,{height:"14px"}),n(w),i(b,w)}),n($),i(a,$)},m=a=>{nt(a,{title:"No logs found",description:"No log entries match the current filter."})},S=a=>{var $=St(),b=ce($);ke(b,21,()=>e(g),Ce,(k,_,U)=>{const R=X(()=>ge(e(_))),ne=X(()=>Be(e(_))),W=X(()=>String(e(_).category??"")),ie=X(()=>e(q).has(U));var j=ht();let _e;var ve=u(j),he=u(ve);let be;var Se=o(he,2);{var He=v=>{var c=dt(),N=u(c,!0);n(c),O((ue,Xe)=>{Z(c,1,`log-entry__level ${ue??""}`,"svelte-1lsf4ps"),C(N,Xe)},[()=>Je(e(R)),()=>e(R).toUpperCase()]),i(v,c)};y(Se,v=>{e(R)&&v(He)})}var xe=o(Se,2);{var Te=v=>{var c=gt(),N=u(c,!0);n(c),O(()=>C(N,e(W))),i(v,c)};y(xe,v=>{e(W)&&v(Te)})}var $e=o(xe,2);{var Ke=v=>{var c=mt(),N=u(c,!0);n(c),O(()=>C(N,e(ne))),i(v,c)};y($e,v=>{e(ne)&&v(Ke)})}var we=o($e,2),Qe=u(we,!0);n(we),n(ve);var We=o(ve,2);{var Ge=v=>{var c=_t(),N=u(c,!0);n(c),O(ue=>C(N,ue),[()=>Fe(e(_))]),i(v,c)};y(We,v=>{e(ie)&&v(Ge)})}n(j),O(v=>{_e=Z(j,1,"log-entry svelte-1lsf4ps",null,_e,{"log-entry--expanded":e(ie)}),be=Z(he,1,"log-entry__chevron svelte-1lsf4ps",null,be,{"log-entry__chevron--open":e(ie)}),C(Qe,v)},[()=>je(e(_))]),Le("click",j,()=>Me(U)),i(k,j)}),n(b);var Q=o(b,2);{var w=k=>{var _=bt(),U=u(_);ee(U,{variant:"secondary",get loading(){return e(re)},onclick:()=>V(!0),children:(R,ne)=>{G();var W=Y("Load More");i(R,W)},$$slots:{default:!0}}),n(_),i(k,_)};y(Q,k=>{e(E)&&!e(I)&&k(w)})}i(a,$)};y(le,a=>{e(te)?a(oe):e(g).length===0?a(m,1):a(S,!1)})}i(r,h)}}),et()}tt(["click"]);export{jt as component};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import"../chunks/CWj6FrbW.js";import{o as Ne}from"../chunks/Bn2NtlTj.js";import{p as Te,t as f,g as t,a as Ee,d as g,c as o,b,s as d,r as i,u as w,ae as S,f as Re}from"../chunks/BdTBlfLy.js";import{d as We,s as B,a as X,e as ke}from"../chunks/DtZk82gG.js";import{i as M}from"../chunks/Y22E1hJM.js";import{e as oe,i as ie}from"../chunks/B14gOIqE.js";import{a as l,f as p,t as N}from"../chunks/DEELgv7K.js";import{s as Ae}from"../chunks/XmteHKH_.js";import{b as Pe,c as Ce,a as T,s as F}from"../chunks/CoI6jjbg.js";import{b as He}from"../chunks/CGgVJi7f.js";import{s as Le,a as E}from"../chunks/Cp8V0Xy2.js";import{p as Xe}from"../chunks/CN6aakgF.js";import{b as U}from"../chunks/CfPHB4r5.js";import{s as Fe,n as Ue,t as je}from"../chunks/BKLsgaNT.js";import{d as qe}from"../chunks/B-WlnirM.js";import{B as R}from"../chunks/C72lTcG0.js";var Ge=p("<option> </option>"),Ke=p('<div class="tables-create-actions svelte-scy45p"><a class="tables-create-link svelte-scy45p"><!></a> <a class="tables-create-link svelte-scy45p"><!></a></div>'),Oe=p(`<div class="tables-create-actions svelte-scy45p" aria-label="Schema editing unavailable outside dev mode"><!> <!></div> <p class="tables-dev-note svelte-scy45p">Schema changes require dev mode. Start <code class="svelte-scy45p">pnpm dev</code> to create DB blocks, add tables,
|
|
2
|
-
edit schema, or run upgrades.</p>`,1),Ve=p('<span class="tables-sidebar__provider-badge svelte-scy45p"> </span>'),Ye=p('<a><span class="tables-sidebar__icon svelte-scy45p"><svg width="14" height="14" viewBox="0 0 16 16" fill="none"><rect x="2" y="2" width="12" height="12" rx="1.5" stroke="currentColor" stroke-width="1.5"></rect><path d="M2 6H14M2 10H14M6 6V14" stroke="currentColor" stroke-width="1.5"></path></svg></span> <span class="tables-sidebar__name svelte-scy45p"> </span> <!> <span> </span></a>'),Je=p('<div class="tables-sidebar__empty svelte-scy45p">No tables</div>'),Qe=p('<button type="button" aria-label="Resize tables sidebar"></button>'),Ze=p('<div class="tables-layout svelte-scy45p"><aside class="tables-sidebar svelte-scy45p"><div class="tables-sidebar__header svelte-scy45p"><select class="tables-ns-filter svelte-scy45p" aria-label="Database filter"><option>All databases</option><!></select> <!></div> <nav class="tables-sidebar__list svelte-scy45p"><!> <!></nav></aside> <!> <div class="tables-main svelte-scy45p"><!></div></div>');function ua(ne,j){Te(j,!0);const le=()=>E(Xe,"$page",x),de=()=>E(qe,"$devInfoStore",x),ce=()=>E(Ue,"$namespaceNames",x),pe=()=>E(je,"$tablesByNamespace",x),[x,ve]=Le();let me=w(()=>le().params.table??""),_e=w(()=>de().devMode);const q="edgebase_tables_sidebar_width",G=180,K=360,O=200;let u=g(O),y=g(!1),W=g(!1),k=g(null),V=0,Y=O,D=g("all"),be=w(ce),J=w(()=>{const a=[];for(const[e,s]of Object.entries(pe()))for(const r of s)a.push({name:r.name,namespace:e,provider:r.def.provider,dynamic:r.def.dynamic});return a.sort((e,s)=>e.name.localeCompare(s.name)),a}),Q=w(()=>t(D)==="all"?t(J):t(J).filter(a=>a.namespace===t(D)));function Z(a){return a?"Per-tenant DB":"Single DB"}Ne(()=>{if(Fe.loadSchema(),typeof window>"u")return;try{const e=Number.parseInt(localStorage.getItem(q)??"",10);Number.isFinite(e)&&b(u,Math.min(K,Math.max(G,e)),!0)}catch{}const a=()=>{b(W,window.innerWidth<=768)};return a(),window.addEventListener("resize",a),()=>{A(),window.removeEventListener("resize",a)}});function ue(a){return Math.min(K,Math.max(G,a))}function fe(a){if(!(typeof window>"u"))try{localStorage.setItem(q,String(a))}catch{}}function A(){t(y)&&(b(y,!1),document.body.style.cursor="",document.body.style.userSelect="",fe(t(u)))}function ye(a){t(y)&&(a.preventDefault(),b(u,ue(Y+a.clientX-V),!0))}function he(a){var e;t(W)||(a.preventDefault(),b(y,!0),V=a.clientX,Y=t(u),document.body.style.cursor="col-resize",document.body.style.userSelect="none",(e=t(k))==null||e.setPointerCapture(a.pointerId))}var P=Ze(),z=o(P),C=o(z),I=o(C),H=o(I);H.value=H.__value="all";var $e=d(H);oe($e,17,()=>t(be),ie,(a,e)=>{var s=Ge(),r=o(s,!0);i(s);var n={};f(()=>{B(r,t(e)),n!==(n=t(e))&&(s.value=(s.__value=t(e))??"")}),l(a,s)}),i(I);var ge=d(I,2);{var we=a=>{var e=Ke(),s=o(e),r=o(s);R(r,{variant:"secondary",size:"sm",children:(c,m)=>{S();var _=N("+ DB");l(c,_)},$$slots:{default:!0}}),i(s);var n=d(s,2),v=o(n);R(v,{variant:"primary",size:"sm",children:(c,m)=>{S();var _=N("+ Table");l(c,_)},$$slots:{default:!0}}),i(n),i(e),f(()=>{T(s,"href",`${U??""}/database/new`),T(n,"href",`${U??""}/database/tables/new`)}),l(a,e)},Se=a=>{var e=Oe(),s=Re(e),r=o(s);R(r,{variant:"secondary",size:"sm",disabled:!0,children:(v,c)=>{S();var m=N("+ DB");l(v,m)},$$slots:{default:!0}});var n=d(r,2);R(n,{variant:"primary",size:"sm",disabled:!0,children:(v,c)=>{S();var m=N("+ Table");l(v,m)},$$slots:{default:!0}}),i(s),S(2),l(a,e)};M(ge,a=>{t(_e)?a(we):a(Se,!1)})}i(C);var ee=d(C,2),ae=o(ee);oe(ae,17,()=>t(Q),ie,(a,e)=>{var s=Ye();let r;var n=d(o(s),2),v=o(n,!0);i(n);var c=d(n,2);{var m=h=>{var $=Ve(),L=o($,!0);i($),f(Me=>B(L,Me),[()=>t(e).provider==="postgres"?"PG":t(e).provider.toUpperCase()]),l(h,$)};M(c,h=>{t(e).provider&&h(m)})}var _=d(c,2);let re;var Be=o(_,!0);i(_),i(s),f((h,$,L)=>{T(s,"href",`${U??""}/database/tables/${h??""}`),r=F(s,1,"tables-sidebar__item svelte-scy45p",null,r,{"tables-sidebar__item--active":t(me)===t(e).name}),T(s,"title",`${t(e).name??""} (${t(e).namespace??""}${t(e).provider?` · ${t(e).provider}`:""} · ${$??""})`),B(v,t(e).name),re=F(_,1,"tables-sidebar__topology-badge svelte-scy45p",null,re,{"tables-sidebar__topology-badge--tenant":t(e).dynamic}),B(Be,L)},[()=>encodeURIComponent(t(e).name),()=>Z(t(e).dynamic),()=>Z(t(e).dynamic)]),l(a,s)});var xe=d(ae,2);{var De=a=>{var e=Je();l(a,e)};M(xe,a=>{t(Q).length===0&&a(De)})}i(ee),i(z);var te=d(z,2);{var ze=a=>{var e=Qe();let s;He(e,r=>b(k,r),()=>t(k)),f(()=>s=F(e,1,"tables-sidebar__resizer svelte-scy45p",null,s,{"tables-sidebar__resizer--active":t(y)})),X("pointerdown",e,he),X("pointermove",e,ye),X("pointerup",e,A),ke("pointercancel",e,A),l(a,e)};M(te,a=>{t(W)||a(ze)})}var se=d(te,2),Ie=o(se);Ae(Ie,()=>j.children),i(se),i(P),f(()=>Ce(z,`width:${t(u)}px; min-width:${t(u)}px;`)),Pe(I,()=>t(D),a=>b(D,a)),l(ne,P),Ee(),ve()}We(["pointerdown","pointermove","pointerup"]);export{ua as component};
|