@lunora/studio 1.0.0-alpha.61 → 1.0.0-alpha.63
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/dist/standalone/{chunk-JC6WYIHM.js → chunk-26TQSVUV.js} +1 -1
- package/dist/standalone/{chunk-ZFWEPGWG.js → chunk-2OUPA2WJ.js} +1 -1
- package/dist/standalone/{chunk-HA34GYEX.js → chunk-2PJNAWB3.js} +1 -1
- package/dist/standalone/{chunk-CVMRZUF5.js → chunk-2Y36BVVM.js} +1 -1
- package/dist/standalone/{chunk-KNN3ZEQ7.js → chunk-37RIZFJ4.js} +1 -1
- package/dist/standalone/{chunk-UNN4CESU.js → chunk-3NHORZCK.js} +1 -1
- package/dist/standalone/{chunk-UNDFOYRI.js → chunk-3RTTXLMU.js} +1 -1
- package/dist/standalone/{chunk-UHHTEBC3.js → chunk-3XIESWL4.js} +1 -1
- package/dist/standalone/{chunk-KLLYGWNF.js → chunk-4CGALXS3.js} +1 -1
- package/dist/standalone/{chunk-O62HJZV3.js → chunk-4MSKCWUL.js} +1 -1
- package/dist/standalone/{chunk-SEDZDNQF.js → chunk-4UOFSGUS.js} +1 -1
- package/dist/standalone/{chunk-SA6MBPBL.js → chunk-54MMVNPT.js} +1 -1
- package/dist/standalone/{chunk-RE6UWCMG.js → chunk-5L2MD6F6.js} +1 -1
- package/dist/standalone/{chunk-HY46NTNW.js → chunk-5RF4QDDA.js} +1 -1
- package/dist/standalone/{chunk-YT7VXQVX.js → chunk-5Y3QLNWX.js} +1 -1
- package/dist/standalone/{chunk-LPOKAJT4.js → chunk-66TS6K5F.js} +1 -1
- package/dist/standalone/{chunk-4FNHHFWR.js → chunk-6ST5ECQA.js} +1 -1
- package/dist/standalone/{chunk-C4VURT57.js → chunk-7LQWFOEU.js} +1 -1
- package/dist/standalone/{chunk-46IB4C4Q.js → chunk-7QIFDWQV.js} +1 -1
- package/dist/standalone/{chunk-AKTGRZXN.js → chunk-7RXOPYR5.js} +1 -1
- package/dist/standalone/{chunk-PTTDIYGP.js → chunk-7T7UOTYK.js} +1 -1
- package/dist/standalone/{chunk-XRKCGQM2.js → chunk-7YAUSG6S.js} +1 -1
- package/dist/standalone/{chunk-PWDMXMRD.js → chunk-7YEFOSPH.js} +1 -1
- package/dist/standalone/chunk-AVAC26HJ.js +1 -0
- package/dist/standalone/{chunk-VUJGR4PB.js → chunk-AX4PAEGP.js} +1 -1
- package/dist/standalone/{chunk-JRWBGR5B.js → chunk-B5E7GQHG.js} +1 -1
- package/dist/standalone/{chunk-3DTM4GI5.js → chunk-BEH5N5ZA.js} +1 -1
- package/dist/standalone/{chunk-YNBJ6ICE.js → chunk-BGBLQ563.js} +1 -1
- package/dist/standalone/{chunk-SZUHZ2OG.js → chunk-BY4QROKU.js} +1 -1
- package/dist/standalone/{chunk-7Z5QEFR4.js → chunk-CFPZYHPY.js} +1 -1
- package/dist/standalone/{chunk-BAIN7UJ4.js → chunk-DCJKCERP.js} +1 -1
- package/dist/standalone/{chunk-P4J6XNG3.js → chunk-DY7CLL2H.js} +1 -1
- package/dist/standalone/{chunk-VEFNSN7P.js → chunk-ESVP44Y3.js} +1 -1
- package/dist/standalone/{chunk-IE4ROTQD.js → chunk-F6LUZVVI.js} +1 -1
- package/dist/standalone/{chunk-UY2Y5CXB.js → chunk-FXCBF4XT.js} +1 -1
- package/dist/standalone/{chunk-BHWSIIDT.js → chunk-GBQHGYGH.js} +1 -1
- package/dist/standalone/{chunk-HMIOF5GV.js → chunk-GHUPW2Y5.js} +1 -1
- package/dist/standalone/{chunk-FXFK4M4E.js → chunk-GMR677FL.js} +1 -1
- package/dist/standalone/{chunk-UWF5DOGV.js → chunk-GRL5MG3Z.js} +1 -1
- package/dist/standalone/{chunk-GTXVH7I5.js → chunk-H3V2QQ4K.js} +1 -1
- package/dist/standalone/{chunk-KZ2YUNMR.js → chunk-H7NIIBHH.js} +1 -1
- package/dist/standalone/{chunk-H6SIM4BT.js → chunk-HPFLBYRI.js} +1 -1
- package/dist/standalone/{chunk-CZEUVNCQ.js → chunk-IC4L6G56.js} +1 -1
- package/dist/standalone/{chunk-PGDWFWH5.js → chunk-IGBEXNXY.js} +1 -1
- package/dist/standalone/{chunk-TEIBKU46.js → chunk-IJFCOWEQ.js} +1 -1
- package/dist/standalone/{chunk-TYTJDFX2.js → chunk-ILNELDFC.js} +1 -1
- package/dist/standalone/{chunk-AGVJJQFL.js → chunk-IPHXIGYP.js} +1 -1
- package/dist/standalone/{chunk-TAE2H7PU.js → chunk-IUW24D4X.js} +1 -1
- package/dist/standalone/{chunk-C4O5UR4Y.js → chunk-IVFHIQOT.js} +1 -1
- package/dist/standalone/{chunk-MZEK4SGD.js → chunk-JGY4NGFW.js} +1 -1
- package/dist/standalone/{chunk-JLFCXBNQ.js → chunk-JN2Y24PY.js} +1 -1
- package/dist/standalone/{chunk-CYET4BRZ.js → chunk-K7M4SMQ7.js} +1 -1
- package/dist/standalone/{chunk-6CLVIOCB.js → chunk-KUVMORDQ.js} +1 -1
- package/dist/standalone/{chunk-NCCUM26H.js → chunk-KYF2E5CJ.js} +1 -1
- package/dist/standalone/{chunk-QC5HCNJZ.js → chunk-LA3HEESS.js} +1 -1
- package/dist/standalone/{chunk-UDZY7MKE.js → chunk-LE56LPNH.js} +1 -1
- package/dist/standalone/{chunk-SNDYNCAA.js → chunk-LEDWUPXM.js} +1 -1
- package/dist/standalone/{chunk-YQ5PILIJ.js → chunk-LFKCLLPT.js} +1 -1
- package/dist/standalone/{chunk-V66TSUKV.js → chunk-LFXFP4IF.js} +1 -1
- package/dist/standalone/{chunk-VUXJER3D.js → chunk-LLXFYRGQ.js} +1 -1
- package/dist/standalone/{chunk-KJTLW5W2.js → chunk-LWECXQWP.js} +3 -3
- package/dist/standalone/{chunk-2A4RKII2.js → chunk-M2B3MDFJ.js} +1 -1
- package/dist/standalone/{chunk-ICKBVXPP.js → chunk-M536Y2KX.js} +1 -1
- package/dist/standalone/{chunk-LKHUVEHX.js → chunk-M7QCL3ZP.js} +1 -1
- package/dist/standalone/{chunk-Q5WXTZWX.js → chunk-MIQTKZAR.js} +1 -1
- package/dist/standalone/{chunk-IYYTWZ2E.js → chunk-NPIULIRO.js} +1 -1
- package/dist/standalone/{chunk-SKJZDOHG.js → chunk-OWADN6BI.js} +1 -1
- package/dist/standalone/{chunk-IBCKC2BO.js → chunk-OZGWNJXD.js} +1 -1
- package/dist/standalone/{chunk-CKO3F55C.js → chunk-P4DHFWH7.js} +1 -1
- package/dist/standalone/{chunk-3MHKT76P.js → chunk-P4J3Z3SA.js} +1 -1
- package/dist/standalone/chunk-PF7V3G2Z.js +62 -0
- package/dist/standalone/{chunk-W572365D.js → chunk-PYXZLNG2.js} +1 -1
- package/dist/standalone/{chunk-R43KHQDA.js → chunk-PZPFWABF.js} +1 -1
- package/dist/standalone/chunk-QBWRC5YX.js +1 -0
- package/dist/standalone/{chunk-GS7OBQO5.js → chunk-QLJJ5YYZ.js} +1 -1
- package/dist/standalone/{chunk-ZMFZRGAN.js → chunk-QWGT25SE.js} +1 -1
- package/dist/standalone/{chunk-RC2K5RBE.js → chunk-RLEENOIX.js} +1 -1
- package/dist/standalone/{chunk-Z7MUQMLE.js → chunk-RWZKO2P6.js} +1 -1
- package/dist/standalone/{chunk-PR2SE2MD.js → chunk-SD4BERSA.js} +1 -1
- package/dist/standalone/{chunk-KYCAYNXM.js → chunk-SFDOII3B.js} +1 -1
- package/dist/standalone/{chunk-UNXX5GQH.js → chunk-SM67QXQI.js} +1 -1
- package/dist/standalone/{chunk-6UYILUSX.js → chunk-SMIESS7P.js} +1 -1
- package/dist/standalone/{chunk-KSRXMTBV.js → chunk-T6VMSOBB.js} +1 -1
- package/dist/standalone/{chunk-WYFLGXZ3.js → chunk-TCQEDMAQ.js} +1 -1
- package/dist/standalone/{chunk-23HKRH5H.js → chunk-TDE4AR5O.js} +1 -1
- package/dist/standalone/{chunk-K5PFWU5J.js → chunk-THIXMMZD.js} +1 -1
- package/dist/standalone/{chunk-RUP3M2GF.js → chunk-TRHTFGFW.js} +2 -2
- package/dist/standalone/{chunk-Q34MSC2F.js → chunk-UNUU7CJJ.js} +1 -1
- package/dist/standalone/{chunk-FYAJPWE7.js → chunk-UVDPQU7J.js} +1 -1
- package/dist/standalone/{chunk-JKPK25JO.js → chunk-UZERI5YC.js} +1 -1
- package/dist/standalone/{chunk-P2NBOUGZ.js → chunk-V4RWA7QI.js} +1 -1
- package/dist/standalone/{chunk-UZYGEOWY.js → chunk-V53KNYRN.js} +1 -1
- package/dist/standalone/{chunk-7AZZ7OJO.js → chunk-VSS7NFZJ.js} +1 -1
- package/dist/standalone/{chunk-7CRLAMGB.js → chunk-WQTUQZUM.js} +1 -1
- package/dist/standalone/{chunk-6I62RSI5.js → chunk-X2FQ6B5V.js} +1 -1
- package/dist/standalone/{chunk-UREY4GLG.js → chunk-XBDKZZ67.js} +1 -1
- package/dist/standalone/{chunk-TO6NLVFD.js → chunk-XBGJVK32.js} +1 -1
- package/dist/standalone/{chunk-QJKRHZYV.js → chunk-XITDHIVL.js} +1 -1
- package/dist/standalone/{chunk-6OKDCV7J.js → chunk-XQCVZAGU.js} +1 -1
- package/dist/standalone/{chunk-6P7HIPUE.js → chunk-XQGANNLS.js} +1 -1
- package/dist/standalone/{chunk-4AYEV5UN.js → chunk-XXQUMVWH.js} +1 -1
- package/dist/standalone/{chunk-H6WOFY6A.js → chunk-YQP2EYOC.js} +1 -1
- package/dist/standalone/chunk-ZJGP6EKR.js +1 -0
- package/dist/standalone/{chunk-J2LMP2A7.js → chunk-ZKEVSU66.js} +1 -1
- package/dist/standalone/{chunk-CWWGDW4V.js → chunk-ZSWWTXVW.js} +1 -1
- package/dist/standalone/studio.js +2 -2
- package/package.json +10 -10
- package/dist/standalone/chunk-725RLB7D.js +0 -1
- package/dist/standalone/chunk-KOC5KV3E.js +0 -1
- package/dist/standalone/chunk-OTJOI23O.js +0 -62
- package/dist/standalone/chunk-XDKFPBIL.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as Oe,b as Ke}from"./chunk-7AZZ7OJO.js";import{a as Qe}from"./chunk-JLFCXBNQ.js";import{a as Ve}from"./chunk-VEFNSN7P.js";import{a as Je}from"./chunk-SA6MBPBL.js";import"./chunk-C4O5UR4Y.js";import{a as He}from"./chunk-YQ5PILIJ.js";import{a as Ge}from"./chunk-SKJZDOHG.js";import{a as Ue,b as _e,c as $e,d as M,e as U,f as _}from"./chunk-Q5WXTZWX.js";import{a as we,e as Ce}from"./chunk-JKPK25JO.js";import{a as D}from"./chunk-YT7VXQVX.js";import"./chunk-KOC5KV3E.js";import{R as T}from"./chunk-7Z5QEFR4.js";import"./chunk-46IB4C4Q.js";import{c as z}from"./chunk-UY2Y5CXB.js";import"./chunk-ZFWEPGWG.js";import{b as B}from"./chunk-K5PFWU5J.js";import"./chunk-4FNHHFWR.js";import{f as E}from"./chunk-KJTLW5W2.js";import"./chunk-UREY4GLG.js";import{a as Ze}from"./chunk-6OKDCV7J.js";import{d as W,h as Pe,l as Ae,m as ze,q as Ie}from"./chunk-KLLYGWNF.js";import"./chunk-UDZY7MKE.js";import{a as r,e as Me,f as Ye,g as et,h as tt}from"./chunk-UHHTEBC3.js";var k=Me(Ye(),1);var Z=Me(et(),1);var t=Me(tt(),1);var at=r(()=>{let u=(0,Z.c)(3),{config:e,ready:l}=Oe(),s;return u[0]!==e.capabilities||u[1]!==l?(s={capabilities:e.capabilities,ready:l},u[0]=e.capabilities,u[1]=l,u[2]=s):s=u[2],s},"et"),st={boolean:"checkbox",date:"datetime-local",number:"number",string:"text"},lt=r((u,e)=>u.type==="boolean"?!0:typeof e!="string"||e.trim()===""?!1:u.type!=="number"||!Number.isNaN(Number(e.trim())),"at"),rt=r((u,e)=>{if(u.type==="boolean")return e===!0?{value:!0}:u.required?{value:!1}:void 0;let l=typeof e=="string"?e.trim():"";if(l!==""){if(u.type==="number"){let s=Number(l);return Number.isNaN(s)?void 0:{value:s}}return{value:l}}},"lt"),it=r(u=>{let e=(0,Z.c)(105),{onClose:l,onCreated:s}=u,c=E(),a=W(),{config:o}=Oe(),{busy:i,error:n,run:m}=Ke(),[w,S]=(0,k.useState)(""),[b,C]=(0,k.useState)(""),[y,I]=(0,k.useState)(""),[h,g]=(0,k.useState)(""),v;e[0]===Symbol.for("react.memo_cache_sentinel")?(v={},e[0]=v):v=e[0];let[f,d]=(0,k.useState)(v),A;e[1]===Symbol.for("react.memo_cache_sentinel")?(A=r(p=>{S(p.target.value)},"C"),e[1]=A):A=e[1];let x=A,F;e[2]===Symbol.for("react.memo_cache_sentinel")?(F=r(p=>{C(p.target.value)},"F"),e[2]=F):F=e[2];let q=F,R;e[3]===Symbol.for("react.memo_cache_sentinel")?(R=r(p=>{I(p.target.value)},"_"),e[3]=R):R=e[3];let Te=R,G;e[4]===Symbol.for("react.memo_cache_sentinel")?(G=r(p=>{g(p.target.value)},"O"),e[4]=G):G=e[4];let Be=G,H;e[5]===Symbol.for("react.memo_cache_sentinel")?(H=r((p,$)=>{d(V=>({...V,[p]:$}))},"G"),e[5]=H):H=e[5];let Re=H,J;e[6]!==f?(J=r(p=>f[p.name]??(p.type==="boolean"?!1:""),"H"),e[6]=f,e[7]=J):J=e[7];let j=J,K;if(e[8]!==o.userFields||e[9]!==j){let p;e[11]!==j?(p=r($=>!$.required||lt($,j($)),"p"),e[11]=j,e[12]=p):p=e[12],K=o.userFields.every(p),e[8]=o.userFields,e[9]=j,e[10]=K}else K=e[10];let Fe=K,Q;e[13]!==i||e[14]!==w||e[15]!==b||e[16]!==Fe?(Q=!i&&w.trim()!==""&&b.trim()!==""&&Fe,e[13]=i,e[14]=w,e[15]=b,e[16]=Fe,e[17]=Q):Q=e[17];let De=Q,X;e[18]!==o.userFields||e[19]!==j?(X=r(()=>{let p={};for(let $ of o.userFields){let V=rt($,j($));V!==void 0&&(p[$.name]=V.value)}return Object.keys(p).length===0?void 0:p},"W"),e[18]=o.userFields,e[19]=j,e[20]=X):X=e[20];let Se=X,Y;e[21]!==Se||e[22]!==c||e[23]!==w||e[24]!==b||e[25]!==l||e[26]!==s||e[27]!==y||e[28]!==h||e[29]!==m?(Y=r(()=>{m(async()=>{await c.createAuthUser({data:Se(),email:w.trim(),name:b.trim(),password:y===""?void 0:y,role:h.trim()===""?void 0:h.trim()}),s(),l()})},"Z"),e[21]=Se,e[22]=c,e[23]=w,e[24]=b,e[25]=l,e[26]=s,e[27]=y,e[28]=h,e[29]=m,e[30]=Y):Y=e[30];let N=Y,P;e[31]!==a?(P=a("Create user"),e[31]=a,e[32]=P):P=e[32];let L;e[33]!==a?(L=a("Create user"),e[33]=a,e[34]=L):L=e[34];let O;e[35]!==L?(O=(0,t.jsx)("h2",{className:"text-sm font-semibold text-foreground",children:L}),e[35]=L,e[36]=O):O=e[36];let ee;e[37]!==a?(ee=a("email"),e[37]=a,e[38]=ee):ee=e[38];let te;e[39]!==ee?(te=(0,t.jsx)(D,{htmlFor:"uc-email",children:ee}),e[39]=ee,e[40]=te):te=e[40];let ae;e[41]!==w?(ae=(0,t.jsx)(T,{"data-testid":"uc-email",id:"uc-email",onChange:x,type:"email",value:w}),e[41]=w,e[42]=ae):ae=e[42];let se;e[43]!==te||e[44]!==ae?(se=(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[te,ae]}),e[43]=te,e[44]=ae,e[45]=se):se=e[45];let le;e[46]!==a?(le=a("name"),e[46]=a,e[47]=le):le=e[47];let re;e[48]!==le?(re=(0,t.jsx)(D,{htmlFor:"uc-name",children:le}),e[48]=le,e[49]=re):re=e[49];let ie;e[50]!==b?(ie=(0,t.jsx)(T,{"data-testid":"uc-name",id:"uc-name",onChange:q,value:b}),e[50]=b,e[51]=ie):ie=e[51];let ne;e[52]!==re||e[53]!==ie?(ne=(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[re,ie]}),e[52]=re,e[53]=ie,e[54]=ne):ne=e[54];let de;e[55]!==a?(de=a("Password (optional)"),e[55]=a,e[56]=de):de=e[56];let oe;e[57]!==de?(oe=(0,t.jsx)(D,{htmlFor:"uc-password",children:de}),e[57]=de,e[58]=oe):oe=e[58];let ce;e[59]!==y?(ce=(0,t.jsx)(T,{"data-testid":"uc-password",id:"uc-password",onChange:Te,type:"password",value:y}),e[59]=y,e[60]=ce):ce=e[60];let ue;e[61]!==oe||e[62]!==ce?(ue=(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[oe,ce]}),e[61]=oe,e[62]=ce,e[63]=ue):ue=e[63];let me;e[64]!==a?(me=a("Role (optional)"),e[64]=a,e[65]=me):me=e[65];let he;e[66]!==me?(he=(0,t.jsx)(D,{htmlFor:"uc-role",children:me}),e[66]=me,e[67]=he):he=e[67];let pe;e[68]!==h?(pe=(0,t.jsx)(T,{"data-testid":"uc-role",id:"uc-role",onChange:Be,value:h}),e[68]=h,e[69]=pe):pe=e[69];let fe;e[70]!==he||e[71]!==pe?(fe=(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[he,pe]}),e[70]=he,e[71]=pe,e[72]=fe):fe=e[72];let ve;e[73]!==o.userFields||e[74]!==j||e[75]!==a?(ve=o.userFields.length>0&&(0,t.jsxs)("div",{className:"flex flex-col gap-3 border-t border-border pt-3","data-testid":"uc-plugin-fields",children:[(0,t.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:a("Plugin fields")}),o.userFields.map(p=>{let $=`uc-field-${p.name}`,V=p.required?"":` (${a("optional")})`;if(p.type==="boolean"){let Le=j(p)===!0;return(0,t.jsxs)("label",{className:"flex items-center gap-2",htmlFor:$,children:[(0,t.jsx)(Qe,{checked:Le,"data-testid":$,id:$,onCheckedChange:r(Xe=>{Re(p.name,Xe)},"onCheckedChange")}),(0,t.jsxs)("span",{className:"text-sm",children:[p.name,V]})]},p.name)}let We=j(p);return(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,t.jsxs)(D,{htmlFor:$,children:[p.name,V]}),(0,t.jsx)(T,{"data-testid":$,id:$,onChange:r(Le=>{Re(p.name,Le.target.value)},"onChange"),type:st[p.type],value:typeof We=="string"?We:""})]},p.name)})]}),e[73]=o.userFields,e[74]=j,e[75]=a,e[76]=ve):ve=e[76];let xe;e[77]!==n?(xe=n!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive","data-testid":"uc-error",role:"alert",children:n}),e[77]=n,e[78]=xe):xe=e[78];let be;e[79]!==a?(be=a("Cancel"),e[79]=a,e[80]=be):be=e[80];let ye;e[81]!==l||e[82]!==be?(ye=(0,t.jsx)(z,{"data-testid":"uc-cancel",onClick:l,size:"sm",type:"button",variant:"outline",children:be}),e[81]=l,e[82]=be,e[83]=ye):ye=e[83];let qe=!De,ge;e[84]!==i||e[85]!==a?(ge=a(i?"Creating\u2026":"Create"),e[84]=i,e[85]=a,e[86]=ge):ge=e[86];let Ne;e[87]!==N||e[88]!==qe||e[89]!==ge?(Ne=(0,t.jsx)(z,{"data-testid":"uc-submit",disabled:qe,onClick:N,size:"sm",type:"button",children:ge}),e[87]=N,e[88]=qe,e[89]=ge,e[90]=Ne):Ne=e[90];let ke;e[91]!==ye||e[92]!==Ne?(ke=(0,t.jsxs)("div",{className:"flex justify-end gap-2 pt-1",children:[ye,Ne]}),e[91]=ye,e[92]=Ne,e[93]=ke):ke=e[93];let je;return e[94]!==l||e[95]!==P||e[96]!==O||e[97]!==se||e[98]!==ne||e[99]!==ue||e[100]!==fe||e[101]!==ve||e[102]!==xe||e[103]!==ke?(je=(0,t.jsxs)(Ve,{label:P,onClose:l,panelTestId:"uc-dialog",testId:"uc-overlay",variant:"dialog",children:[O,se,ne,ue,fe,ve,xe,ke]}),e[94]=l,e[95]=P,e[96]=O,e[97]=se,e[98]=ne,e[99]=ue,e[100]=fe,e[101]=ve,e[102]=xe,e[103]=ke,e[104]=je):je=e[104],je},"st"),Ee=r(u=>{let e=(0,Z.c)(2),{children:l}=u,s;return e[0]!==l?(s=(0,t.jsx)("h3",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:l}),e[0]=l,e[1]=s):s=e[1],s},"Le"),nt=r(u=>{let e=(0,Z.c)(29),{busy:l,runAction:s,userId:c,version:a}=u,o=E(),i=W(),[n,m]=(0,k.useState)(null),[w,S]=(0,k.useState)(null),b;e[0]!==o||e[1]!==c?(b=r(()=>{ze((async()=>{S(null);try{let x=await o.listAuthSessions({limit:50,userId:c});m(x.rows)}catch(x){let F=x;m(null),S(Pe(F))}})())},"x"),e[0]=o,e[1]=c,e[2]=b):b=e[2];let C;e[3]!==o||e[4]!==c||e[5]!==a?(C=[o,c,a],e[3]=o,e[4]=c,e[5]=a,e[6]=C):C=e[6],(0,k.useEffect)(b,C);let y;e[7]!==o||e[8]!==s?(y=r(x=>{s(()=>o.revokeAuthSession({sessionId:x}))},"y"),e[7]=o,e[8]=s,e[9]=y):y=e[9];let I=y,h;e[10]!==i?(h=i("Sessions"),e[10]=i,e[11]=h):h=e[11];let g;e[12]!==h?(g=(0,t.jsx)(Ee,{children:h}),e[12]=h,e[13]=g):g=e[13];let v;e[14]!==w?(v=w!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive","data-testid":"ud-sessions-error",role:"alert",children:w}),e[14]=w,e[15]=v):v=e[15];let f;e[16]!==n||e[17]!==i?(f=n!==null&&n.length===0&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"ud-sessions-empty",children:i("No active sessions.")}),e[16]=n,e[17]=i,e[18]=f):f=e[18];let d;e[19]!==l||e[20]!==I||e[21]!==n||e[22]!==i?(d=n!==null&&n.length>0&&(0,t.jsx)(we,{className:"overflow-hidden py-0",children:(0,t.jsx)(Ce,{className:"px-0",children:(0,t.jsxs)(Ue,{"data-testid":"ud-sessions-table",children:[(0,t.jsx)(_e,{children:(0,t.jsxs)(M,{children:[(0,t.jsx)(U,{children:i("expires")}),(0,t.jsx)(U,{children:i("ip")}),(0,t.jsx)(U,{children:i("user agent")}),(0,t.jsx)(U,{"aria-label":i("Actions")})]})}),(0,t.jsx)($e,{children:n.map(x=>(0,t.jsxs)(M,{"data-testid":`ud-session-${x.id}`,children:[(0,t.jsx)(_,{className:"text-muted-foreground tabular-nums",children:Ie(x.expiresAt)}),(0,t.jsx)(_,{children:x.ipAddress??""}),(0,t.jsx)(_,{className:"max-w-40 truncate",children:x.userAgent??""}),(0,t.jsx)(_,{children:(0,t.jsx)(z,{"data-testid":`ud-revoke-${x.id}`,disabled:l,onClick:r(()=>{I(x.id)},"onClick"),size:"xs",type:"button",variant:"ghost",children:i("Revoke")})})]},x.id))})]})})}),e[19]=l,e[20]=I,e[21]=n,e[22]=i,e[23]=d):d=e[23];let A;return e[24]!==g||e[25]!==v||e[26]!==f||e[27]!==d?(A=(0,t.jsxs)("div",{className:"flex flex-col gap-2","data-testid":"ud-sessions",children:[g,v,f,d]}),e[24]=g,e[25]=v,e[26]=f,e[27]=d,e[28]=A):A=e[28],A},"rt"),dt=r(u=>{let e=(0,Z.c)(30),{busy:l,runAction:s,userId:c,version:a}=u,o=E(),i=W(),[n,m]=(0,k.useState)(null),[w,S]=(0,k.useState)(null),b;e[0]!==o||e[1]!==c?(b=r(()=>{ze((async()=>{S(null);try{m(await o.listAuthAccounts({userId:c}))}catch(x){let F=x;m(null),S(Pe(F))}})())},"x"),e[0]=o,e[1]=c,e[2]=b):b=e[2];let C;e[3]!==o||e[4]!==c||e[5]!==a?(C=[o,c,a],e[3]=o,e[4]=c,e[5]=a,e[6]=C):C=e[6],(0,k.useEffect)(b,C);let y;e[7]!==o||e[8]!==s||e[9]!==c?(y=r(x=>{s(()=>o.unlinkAuthAccount({accountId:x,userId:c}))},"y"),e[7]=o,e[8]=s,e[9]=c,e[10]=y):y=e[10];let I=y,h;e[11]!==i?(h=i("Linked accounts"),e[11]=i,e[12]=h):h=e[12];let g;e[13]!==h?(g=(0,t.jsx)(Ee,{children:h}),e[13]=h,e[14]=g):g=e[14];let v;e[15]!==w?(v=w!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive",role:"alert",children:w}),e[15]=w,e[16]=v):v=e[16];let f;e[17]!==n||e[18]!==i?(f=n!==null&&n.length===0&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:i("No linked accounts.")}),e[17]=n,e[18]=i,e[19]=f):f=e[19];let d;e[20]!==n||e[21]!==l||e[22]!==I||e[23]!==i?(d=n!==null&&n.length>0&&(0,t.jsx)(we,{className:"overflow-hidden py-0",children:(0,t.jsx)(Ce,{className:"px-0",children:(0,t.jsxs)(Ue,{"data-testid":"ud-accounts-table",children:[(0,t.jsx)(_e,{children:(0,t.jsxs)(M,{children:[(0,t.jsx)(U,{children:i("provider")}),(0,t.jsx)(U,{children:i("created")}),(0,t.jsx)(U,{"aria-label":i("Actions")})]})}),(0,t.jsx)($e,{children:n.map(x=>{let F=Ae(x.id);return(0,t.jsxs)(M,{"data-testid":`ud-account-${F}`,children:[(0,t.jsx)(_,{children:Ae(x.providerId)}),(0,t.jsx)(_,{className:"text-muted-foreground tabular-nums",children:Ie(x.createdAt)}),(0,t.jsx)(_,{children:(0,t.jsx)(z,{"data-testid":`ud-unlink-${F}`,disabled:l,onClick:r(()=>{I(F)},"onClick"),size:"xs",type:"button",variant:"ghost",children:i("Unlink")})})]},F)})})]})})}),e[20]=n,e[21]=l,e[22]=I,e[23]=i,e[24]=d):d=e[24];let A;return e[25]!==g||e[26]!==v||e[27]!==f||e[28]!==d?(A=(0,t.jsxs)("div",{className:"flex flex-col gap-2","data-testid":"ud-accounts",children:[g,v,f,d]}),e[25]=g,e[26]=v,e[27]=f,e[28]=d,e[29]=A):A=e[29],A},"it"),ot=r(u=>{let e=(0,Z.c)(40),{busy:l,capabilities:s,runAction:c,userId:a,version:o}=u,i=E(),n=W(),[m,w]=(0,k.useState)(null),S;e[0]!==s.passkey||e[1]!==i||e[2]!==a?(S=r(()=>{s.passkey&&ze((async()=>{try{w(await i.listAuthPasskeys({userId:a}))}catch{w(null)}})())},"I"),e[0]=s.passkey,e[1]=i,e[2]=a,e[3]=S):S=e[3];let b;e[4]!==s.passkey||e[5]!==i||e[6]!==a||e[7]!==o?(b=[s.passkey,i,a,o],e[4]=s.passkey,e[5]=i,e[6]=a,e[7]=o,e[8]=b):b=e[8],(0,k.useEffect)(S,b);let C;e[9]!==i||e[10]!==c||e[11]!==a?(C=r(()=>{c(()=>i.disableAuthTwoFactor({userId:a}))},"w"),e[9]=i,e[10]=c,e[11]=a,e[12]=C):C=e[12];let y=C,I;e[13]!==i||e[14]!==c?(I=r(F=>{c(()=>i.deleteAuthPasskey({passkeyId:F}))},"A"),e[13]=i,e[14]=c,e[15]=I):I=e[15];let h=I,g;e[16]!==n?(g=n("Security"),e[16]=n,e[17]=g):g=e[17];let v;e[18]!==g?(v=(0,t.jsx)(Ee,{children:g}),e[18]=g,e[19]=v):v=e[19];let f;e[20]!==l||e[21]!==s.twoFactor||e[22]!==y||e[23]!==n?(f=s.twoFactor&&(0,t.jsx)(z,{"data-testid":"ud-disable-2fa",disabled:l,onClick:y,size:"sm",type:"button",variant:"outline",children:n("Disable two-factor")}),e[20]=l,e[21]=s.twoFactor,e[22]=y,e[23]=n,e[24]=f):f=e[24];let d;e[25]!==s.passkey||e[26]!==m||e[27]!==n?(d=s.passkey&&m!==null&&m.length===0&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:n("No passkeys.")}),e[25]=s.passkey,e[26]=m,e[27]=n,e[28]=d):d=e[28];let A;e[29]!==l||e[30]!==s.passkey||e[31]!==h||e[32]!==m||e[33]!==n?(A=s.passkey&&m!==null&&m.length>0&&(0,t.jsx)(we,{className:"overflow-hidden py-0",children:(0,t.jsx)(Ce,{className:"px-0",children:(0,t.jsxs)(Ue,{"data-testid":"ud-passkeys-table",children:[(0,t.jsx)(_e,{children:(0,t.jsxs)(M,{children:[(0,t.jsx)(U,{children:n("name")}),(0,t.jsx)(U,{children:n("created")}),(0,t.jsx)(U,{"aria-label":n("Actions")})]})}),(0,t.jsx)($e,{children:m.map(F=>{let q=Ae(F.id);return(0,t.jsxs)(M,{"data-testid":`ud-passkey-${q}`,children:[(0,t.jsx)(_,{children:Ae(F.name)||q}),(0,t.jsx)(_,{className:"text-muted-foreground tabular-nums",children:Ie(F.createdAt)}),(0,t.jsx)(_,{children:(0,t.jsx)(z,{"data-testid":`ud-delete-passkey-${q}`,disabled:l,onClick:r(()=>{h(q)},"onClick"),size:"xs",type:"button",variant:"ghost",children:n("Delete")})})]},q)})})]})})}),e[29]=l,e[30]=s.passkey,e[31]=h,e[32]=m,e[33]=n,e[34]=A):A=e[34];let x;return e[35]!==v||e[36]!==f||e[37]!==d||e[38]!==A?(x=(0,t.jsxs)("div",{className:"flex flex-col gap-2","data-testid":"ud-security",children:[v,f,d,A]}),e[35]=v,e[36]=f,e[37]=d,e[38]=A,e[39]=x):x=e[39],x},"nt"),ct=/(?:at|expires)$/iu,ut=new Set(["banExpires","banned","banReason","email","emailVerified","id","name","role"]),mt=r((u,e)=>typeof e=="number"&&ct.test(u)?Ie(e):Ae(e),"ct"),ht=r(({capabilities:u,onChanged:e,onClose:l,user:s})=>{let c=E(),a=W(),o=s.banned===!0,[i,n]=(0,k.useState)(null),[m,w]=(0,k.useState)(!1),[S,b]=(0,k.useState)(0),[C,y]=(0,k.useState)(typeof s.role=="string"?s.role:""),[I,h]=(0,k.useState)(""),[g,v]=(0,k.useState)(""),[f,d]=(0,k.useState)(""),[A,x]=(0,k.useState)(null),[F,q]=(0,k.useState)(!1),R=r((N,P)=>{ze((async()=>{w(!0),n(null);try{let L=await N();P?.refresh!==!1&&(b(O=>O+1),e()),P?.onResult?.(L)}catch(L){n(Pe(L))}finally{w(!1)}})())},"_"),Te=r(N=>{y(N.target.value)},"De"),G=r(N=>{h(N.target.value)},"O"),Be=r(N=>{v(N.target.value)},"je"),H=r(N=>{d(N.target.value)},"G"),Re=r(()=>{let N=C.trim();N!==""&&R(async()=>{await c.setAuthUserRole({role:N,userId:s.id})})},"Se"),J=r(()=>{let N=Number.parseInt(g,10),P=Number.isFinite(N)&&N>0?N*86400:void 0;R(async()=>{await c.banAuthUser({expiresInSeconds:P,reason:I.trim()===""?void 0:I.trim(),userId:s.id})})},"H"),j=r(()=>{R(async()=>{await c.unbanAuthUser({userId:s.id})})},"R"),K=r(()=>{R(async()=>{await c.setAuthUserPassword({newPassword:f,userId:s.id}),d("")})},"J"),Fe=r(()=>{R(()=>c.impersonateAuthUser({userId:s.id}),{onResult:r(N=>{x(N.token)},"onResult"),refresh:!1})},"we"),Q=r(()=>{R(async()=>{await c.revokeAuthUserSessions({userId:s.id})})},"K"),De=r(()=>{R(async()=>{await c.removeAuthUser({userId:s.id}),l()})},"Te"),X=r(()=>{q(!0)},"W"),Se=r(()=>{q(!1)},"Ce"),Y=Object.entries(s).filter(([N])=>!ut.has(N));return(0,t.jsxs)(Ve,{label:a("User details"),onClose:l,panelTestId:"ud-panel",testId:"ud-overlay",variant:"drawer",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,t.jsx)("h2",{className:"text-sm font-semibold text-foreground",children:s.name??s.email??s.id}),(0,t.jsx)("p",{className:"font-mono text-xs text-muted-foreground",children:s.id}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5 pt-1",children:[typeof s.role=="string"&&s.role!==""&&(0,t.jsx)(B,{variant:"secondary",children:s.role}),o?(0,t.jsx)(B,{variant:"destructive",children:a("Banned")}):(0,t.jsx)(B,{variant:"outline",children:a("Active")}),s.emailVerified===!0?(0,t.jsx)(B,{variant:"secondary",children:a("verified")}):(0,t.jsx)(B,{variant:"outline",children:a("unverified")})]})]}),(0,t.jsx)(z,{"data-testid":"ud-close",onClick:l,size:"sm",type:"button",variant:"ghost",children:a("Close")})]}),i!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive","data-testid":"ud-action-error",role:"alert",children:i}),u.admin&&(0,t.jsxs)(we,{className:"gap-0 py-0",children:[(0,t.jsx)("header",{className:"border-b border-border px-4 py-3",children:(0,t.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:a("Actions")})}),(0,t.jsxs)(Ce,{className:"flex flex-col gap-3 p-3",children:[(0,t.jsxs)("div",{className:"flex items-end gap-2",children:[(0,t.jsxs)("div",{className:"flex flex-1 flex-col gap-1",children:[(0,t.jsx)(D,{htmlFor:"ud-role",children:a("Role")}),(0,t.jsx)(T,{"data-testid":"ud-role-input",id:"ud-role",onChange:Te,value:C})]}),(0,t.jsx)(z,{"data-testid":"ud-set-role",disabled:m||C.trim()==="",onClick:Re,size:"sm",type:"button",variant:"outline",children:a("Set role")})]}),o?(0,t.jsx)(z,{"data-testid":"ud-unban",disabled:m,onClick:j,size:"sm",type:"button",variant:"outline",children:a("Unban")}):(0,t.jsxs)("div",{className:"flex items-end gap-2",children:[(0,t.jsxs)("div",{className:"flex flex-1 flex-col gap-1",children:[(0,t.jsx)(D,{htmlFor:"ud-ban-reason",children:a("Ban reason (optional)")}),(0,t.jsx)(T,{"data-testid":"ud-ban-reason",id:"ud-ban-reason",onChange:G,value:I})]}),(0,t.jsxs)("div",{className:"flex w-24 flex-col gap-1",children:[(0,t.jsx)(D,{htmlFor:"ud-ban-days",children:a("Days")}),(0,t.jsx)(T,{"data-testid":"ud-ban-days",id:"ud-ban-days",onChange:Be,type:"number",value:g})]}),(0,t.jsx)(z,{"data-testid":"ud-ban",disabled:m,onClick:J,size:"sm",type:"button",variant:"destructive",children:a("Ban user")})]}),(0,t.jsxs)("div",{className:"flex items-end gap-2",children:[(0,t.jsxs)("div",{className:"flex flex-1 flex-col gap-1",children:[(0,t.jsx)(D,{htmlFor:"ud-password",children:a("New password")}),(0,t.jsx)(T,{"data-testid":"ud-password",id:"ud-password",onChange:H,type:"password",value:f})]}),(0,t.jsx)(z,{"data-testid":"ud-set-password",disabled:m||f==="",onClick:K,size:"sm",type:"button",variant:"outline",children:a("Set password")})]}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,t.jsx)(z,{"data-testid":"ud-impersonate",disabled:m,onClick:Fe,size:"sm",type:"button",variant:"outline",children:a("Impersonate")}),(0,t.jsx)(z,{"data-testid":"ud-revoke-all",disabled:m,onClick:Q,size:"sm",type:"button",variant:"outline",children:a("Revoke all sessions")}),F?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(z,{"data-testid":"ud-delete-confirm",disabled:m,onClick:De,size:"sm",type:"button",variant:"destructive",children:a("Confirm delete")}),(0,t.jsx)(z,{"data-testid":"ud-delete-cancel",onClick:Se,size:"sm",type:"button",variant:"ghost",children:a("Cancel")})]}):(0,t.jsx)(z,{"data-testid":"ud-delete",disabled:m,onClick:X,size:"sm",type:"button",variant:"destructive",children:a("Delete user")})]}),A!==null&&(0,t.jsxs)("div",{className:"flex flex-col gap-1","data-testid":"ud-impersonation",children:[(0,t.jsx)(D,{htmlFor:"ud-token",children:a("Impersonation token")}),(0,t.jsx)(T,{"data-testid":"ud-token",id:"ud-token",readOnly:!0,value:A})]})]})]}),(0,t.jsx)(nt,{busy:m,runAction:R,userId:s.id,version:S}),u.accounts&&(0,t.jsx)(dt,{busy:m,runAction:R,userId:s.id,version:S}),(u.twoFactor||u.passkey)&&(0,t.jsx)(ot,{busy:m,capabilities:u,runAction:R,userId:s.id,version:S}),(0,t.jsxs)("div",{className:"flex flex-col gap-1","data-testid":"ud-fields",children:[(0,t.jsx)("h3",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:a("Fields")}),(0,t.jsx)("dl",{className:"flex flex-col",children:Y.map(([N,P])=>(0,t.jsxs)("div",{className:"flex flex-col border-t border-border py-1.5",children:[(0,t.jsx)("dt",{className:"text-xs font-semibold text-muted-foreground",children:N}),(0,t.jsx)("dd",{className:"m-0 font-mono text-xs break-words",children:mt(N,P)})]},N))})]})]})},"ut"),pt=50,_t=r(({pageSize:u=pt}={})=>{let e=E(),l=W(),[s,c]=(0,k.useState)(""),[a,o]=(0,k.useState)(""),i=He(s),[n,m]=(0,k.useState)(null),[w,S]=(0,k.useState)(!1),{capabilities:b}=at(),C=i.trim(),y=a.trim(),I=Ge(["lunora-auth-users",C,y,u],()=>e.listAuthUsers({filterField:y===""?void 0:"role",filterValue:y===""?void 0:y,limit:u,search:C===""?void 0:C}),{keepPreviousData:!0}),h=I.data?.rows??null,g=I.error,v=r(()=>{I.refetch()},"v");Je(()=>{I.refetch()},!0);let f=n===null?null:h?.find(d=>d.id===n)??null;return(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-users",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)(T,{"aria-label":l("Search users"),className:"w-56","data-testid":"us-search",onChange:r(d=>{c(d.target.value)},"onChange"),placeholder:l("Search by email or name\u2026"),value:s}),(0,t.jsx)(T,{"aria-label":l("Filter by role"),className:"w-40","data-testid":"us-role-filter",onChange:r(d=>{o(d.target.value)},"onChange"),placeholder:l("Filter by role"),value:a}),(0,t.jsx)(z,{"data-testid":"us-new",onClick:r(()=>{S(!0)},"onClick"),size:"sm",type:"button",children:l("New user")})]}),g!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive","data-testid":"us-users-error",role:"alert",children:g}),h!==null&&h.length===0&&(0,t.jsx)(Ze,{description:l("Users who sign up to your app will appear here."),icon:(0,t.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:(0,t.jsx)("path",{d:"M16 20v-2a4 4 0 0 0-4-4H7a4 4 0 0 0-4 4v2M9.5 10a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7Zm11.5 10v-2a4 4 0 0 0-3-3.85"})}),testId:"us-empty",title:l("No users.")}),h!==null&&h.length>0&&(0,t.jsx)(we,{className:"overflow-hidden py-0",children:(0,t.jsx)(Ce,{className:"px-0",children:(0,t.jsxs)(Ue,{"data-testid":"us-table",children:[(0,t.jsx)(_e,{children:(0,t.jsxs)(M,{children:[(0,t.jsx)(U,{children:l("id")}),(0,t.jsx)(U,{children:l("email")}),(0,t.jsx)(U,{children:l("name")}),(0,t.jsx)(U,{children:l("role")}),(0,t.jsx)(U,{children:l("status")}),(0,t.jsx)(U,{children:l("verified")}),(0,t.jsx)(U,{children:l("created")}),(0,t.jsx)(U,{"aria-label":l("Actions")})]})}),(0,t.jsx)($e,{children:h.map(d=>(0,t.jsxs)(M,{"data-testid":`us-row-${d.id}`,children:[(0,t.jsx)(_,{className:"font-mono text-xs",children:d.id}),(0,t.jsx)(_,{children:d.email??""}),(0,t.jsx)(_,{children:d.name??""}),(0,t.jsx)(_,{children:typeof d.role=="string"&&d.role!==""?(0,t.jsx)(B,{variant:"secondary",children:d.role}):""}),(0,t.jsx)(_,{children:d.banned===!0?(0,t.jsx)(B,{variant:"destructive",children:l("Banned")}):(0,t.jsx)(B,{variant:"success",children:l("Active")})}),(0,t.jsx)(_,{children:d.emailVerified===!0?(0,t.jsx)(B,{variant:"success",children:l("yes")}):(0,t.jsx)(B,{variant:"outline",children:l("no")})}),(0,t.jsx)(_,{className:"text-muted-foreground tabular-nums",children:Ie(d.createdAt)}),(0,t.jsx)(_,{children:(0,t.jsx)(z,{"data-testid":`us-manage-${d.id}`,onClick:r(()=>{m(d.id)},"onClick"),size:"xs",type:"button",variant:"ghost",children:l("Manage")})})]},d.id))})]})})}),f!==null&&(0,t.jsx)(ht,{capabilities:b,onChanged:v,onClose:r(()=>{m(null)},"onClose"),user:f}),w&&(0,t.jsx)(it,{onClose:r(()=>{S(!1)},"onClose"),onCreated:v})]})},"Pt");export{_t as UsersPanel};
|
|
1
|
+
import{a as Oe,b as Ke}from"./chunk-VSS7NFZJ.js";import{a as Qe}from"./chunk-JN2Y24PY.js";import{a as Ve}from"./chunk-ESVP44Y3.js";import{a as Je}from"./chunk-54MMVNPT.js";import"./chunk-IVFHIQOT.js";import{a as He}from"./chunk-LFKCLLPT.js";import{a as Ge}from"./chunk-OWADN6BI.js";import{a as Ue,b as _e,c as $e,d as M,e as U,f as _}from"./chunk-MIQTKZAR.js";import{a as we,e as Ce}from"./chunk-UZERI5YC.js";import{a as D}from"./chunk-5Y3QLNWX.js";import"./chunk-QBWRC5YX.js";import{R as T}from"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import{c as z}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import{b as B}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{f as E}from"./chunk-LWECXQWP.js";import"./chunk-XBDKZZ67.js";import{a as Ze}from"./chunk-XQCVZAGU.js";import{d as W,h as Pe,l as Ae,m as ze,q as Ie}from"./chunk-4CGALXS3.js";import"./chunk-LE56LPNH.js";import{a as r,e as Me,f as Ye,g as et,h as tt}from"./chunk-3XIESWL4.js";var k=Me(Ye(),1);var Z=Me(et(),1);var t=Me(tt(),1);var at=r(()=>{let u=(0,Z.c)(3),{config:e,ready:l}=Oe(),s;return u[0]!==e.capabilities||u[1]!==l?(s={capabilities:e.capabilities,ready:l},u[0]=e.capabilities,u[1]=l,u[2]=s):s=u[2],s},"et"),st={boolean:"checkbox",date:"datetime-local",number:"number",string:"text"},lt=r((u,e)=>u.type==="boolean"?!0:typeof e!="string"||e.trim()===""?!1:u.type!=="number"||!Number.isNaN(Number(e.trim())),"at"),rt=r((u,e)=>{if(u.type==="boolean")return e===!0?{value:!0}:u.required?{value:!1}:void 0;let l=typeof e=="string"?e.trim():"";if(l!==""){if(u.type==="number"){let s=Number(l);return Number.isNaN(s)?void 0:{value:s}}return{value:l}}},"lt"),it=r(u=>{let e=(0,Z.c)(105),{onClose:l,onCreated:s}=u,c=E(),a=W(),{config:o}=Oe(),{busy:i,error:n,run:m}=Ke(),[w,S]=(0,k.useState)(""),[b,C]=(0,k.useState)(""),[y,I]=(0,k.useState)(""),[h,g]=(0,k.useState)(""),v;e[0]===Symbol.for("react.memo_cache_sentinel")?(v={},e[0]=v):v=e[0];let[f,d]=(0,k.useState)(v),A;e[1]===Symbol.for("react.memo_cache_sentinel")?(A=r(p=>{S(p.target.value)},"C"),e[1]=A):A=e[1];let x=A,F;e[2]===Symbol.for("react.memo_cache_sentinel")?(F=r(p=>{C(p.target.value)},"F"),e[2]=F):F=e[2];let q=F,R;e[3]===Symbol.for("react.memo_cache_sentinel")?(R=r(p=>{I(p.target.value)},"_"),e[3]=R):R=e[3];let Te=R,G;e[4]===Symbol.for("react.memo_cache_sentinel")?(G=r(p=>{g(p.target.value)},"O"),e[4]=G):G=e[4];let Be=G,H;e[5]===Symbol.for("react.memo_cache_sentinel")?(H=r((p,$)=>{d(V=>({...V,[p]:$}))},"G"),e[5]=H):H=e[5];let Re=H,J;e[6]!==f?(J=r(p=>f[p.name]??(p.type==="boolean"?!1:""),"H"),e[6]=f,e[7]=J):J=e[7];let j=J,K;if(e[8]!==o.userFields||e[9]!==j){let p;e[11]!==j?(p=r($=>!$.required||lt($,j($)),"p"),e[11]=j,e[12]=p):p=e[12],K=o.userFields.every(p),e[8]=o.userFields,e[9]=j,e[10]=K}else K=e[10];let Fe=K,Q;e[13]!==i||e[14]!==w||e[15]!==b||e[16]!==Fe?(Q=!i&&w.trim()!==""&&b.trim()!==""&&Fe,e[13]=i,e[14]=w,e[15]=b,e[16]=Fe,e[17]=Q):Q=e[17];let De=Q,X;e[18]!==o.userFields||e[19]!==j?(X=r(()=>{let p={};for(let $ of o.userFields){let V=rt($,j($));V!==void 0&&(p[$.name]=V.value)}return Object.keys(p).length===0?void 0:p},"W"),e[18]=o.userFields,e[19]=j,e[20]=X):X=e[20];let Se=X,Y;e[21]!==Se||e[22]!==c||e[23]!==w||e[24]!==b||e[25]!==l||e[26]!==s||e[27]!==y||e[28]!==h||e[29]!==m?(Y=r(()=>{m(async()=>{await c.createAuthUser({data:Se(),email:w.trim(),name:b.trim(),password:y===""?void 0:y,role:h.trim()===""?void 0:h.trim()}),s(),l()})},"Z"),e[21]=Se,e[22]=c,e[23]=w,e[24]=b,e[25]=l,e[26]=s,e[27]=y,e[28]=h,e[29]=m,e[30]=Y):Y=e[30];let N=Y,P;e[31]!==a?(P=a("Create user"),e[31]=a,e[32]=P):P=e[32];let L;e[33]!==a?(L=a("Create user"),e[33]=a,e[34]=L):L=e[34];let O;e[35]!==L?(O=(0,t.jsx)("h2",{className:"text-sm font-semibold text-foreground",children:L}),e[35]=L,e[36]=O):O=e[36];let ee;e[37]!==a?(ee=a("email"),e[37]=a,e[38]=ee):ee=e[38];let te;e[39]!==ee?(te=(0,t.jsx)(D,{htmlFor:"uc-email",children:ee}),e[39]=ee,e[40]=te):te=e[40];let ae;e[41]!==w?(ae=(0,t.jsx)(T,{"data-testid":"uc-email",id:"uc-email",onChange:x,type:"email",value:w}),e[41]=w,e[42]=ae):ae=e[42];let se;e[43]!==te||e[44]!==ae?(se=(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[te,ae]}),e[43]=te,e[44]=ae,e[45]=se):se=e[45];let le;e[46]!==a?(le=a("name"),e[46]=a,e[47]=le):le=e[47];let re;e[48]!==le?(re=(0,t.jsx)(D,{htmlFor:"uc-name",children:le}),e[48]=le,e[49]=re):re=e[49];let ie;e[50]!==b?(ie=(0,t.jsx)(T,{"data-testid":"uc-name",id:"uc-name",onChange:q,value:b}),e[50]=b,e[51]=ie):ie=e[51];let ne;e[52]!==re||e[53]!==ie?(ne=(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[re,ie]}),e[52]=re,e[53]=ie,e[54]=ne):ne=e[54];let de;e[55]!==a?(de=a("Password (optional)"),e[55]=a,e[56]=de):de=e[56];let oe;e[57]!==de?(oe=(0,t.jsx)(D,{htmlFor:"uc-password",children:de}),e[57]=de,e[58]=oe):oe=e[58];let ce;e[59]!==y?(ce=(0,t.jsx)(T,{"data-testid":"uc-password",id:"uc-password",onChange:Te,type:"password",value:y}),e[59]=y,e[60]=ce):ce=e[60];let ue;e[61]!==oe||e[62]!==ce?(ue=(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[oe,ce]}),e[61]=oe,e[62]=ce,e[63]=ue):ue=e[63];let me;e[64]!==a?(me=a("Role (optional)"),e[64]=a,e[65]=me):me=e[65];let he;e[66]!==me?(he=(0,t.jsx)(D,{htmlFor:"uc-role",children:me}),e[66]=me,e[67]=he):he=e[67];let pe;e[68]!==h?(pe=(0,t.jsx)(T,{"data-testid":"uc-role",id:"uc-role",onChange:Be,value:h}),e[68]=h,e[69]=pe):pe=e[69];let fe;e[70]!==he||e[71]!==pe?(fe=(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[he,pe]}),e[70]=he,e[71]=pe,e[72]=fe):fe=e[72];let ve;e[73]!==o.userFields||e[74]!==j||e[75]!==a?(ve=o.userFields.length>0&&(0,t.jsxs)("div",{className:"flex flex-col gap-3 border-t border-border pt-3","data-testid":"uc-plugin-fields",children:[(0,t.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:a("Plugin fields")}),o.userFields.map(p=>{let $=`uc-field-${p.name}`,V=p.required?"":` (${a("optional")})`;if(p.type==="boolean"){let Le=j(p)===!0;return(0,t.jsxs)("label",{className:"flex items-center gap-2",htmlFor:$,children:[(0,t.jsx)(Qe,{checked:Le,"data-testid":$,id:$,onCheckedChange:r(Xe=>{Re(p.name,Xe)},"onCheckedChange")}),(0,t.jsxs)("span",{className:"text-sm",children:[p.name,V]})]},p.name)}let We=j(p);return(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,t.jsxs)(D,{htmlFor:$,children:[p.name,V]}),(0,t.jsx)(T,{"data-testid":$,id:$,onChange:r(Le=>{Re(p.name,Le.target.value)},"onChange"),type:st[p.type],value:typeof We=="string"?We:""})]},p.name)})]}),e[73]=o.userFields,e[74]=j,e[75]=a,e[76]=ve):ve=e[76];let xe;e[77]!==n?(xe=n!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive","data-testid":"uc-error",role:"alert",children:n}),e[77]=n,e[78]=xe):xe=e[78];let be;e[79]!==a?(be=a("Cancel"),e[79]=a,e[80]=be):be=e[80];let ye;e[81]!==l||e[82]!==be?(ye=(0,t.jsx)(z,{"data-testid":"uc-cancel",onClick:l,size:"sm",type:"button",variant:"outline",children:be}),e[81]=l,e[82]=be,e[83]=ye):ye=e[83];let qe=!De,ge;e[84]!==i||e[85]!==a?(ge=a(i?"Creating\u2026":"Create"),e[84]=i,e[85]=a,e[86]=ge):ge=e[86];let Ne;e[87]!==N||e[88]!==qe||e[89]!==ge?(Ne=(0,t.jsx)(z,{"data-testid":"uc-submit",disabled:qe,onClick:N,size:"sm",type:"button",children:ge}),e[87]=N,e[88]=qe,e[89]=ge,e[90]=Ne):Ne=e[90];let ke;e[91]!==ye||e[92]!==Ne?(ke=(0,t.jsxs)("div",{className:"flex justify-end gap-2 pt-1",children:[ye,Ne]}),e[91]=ye,e[92]=Ne,e[93]=ke):ke=e[93];let je;return e[94]!==l||e[95]!==P||e[96]!==O||e[97]!==se||e[98]!==ne||e[99]!==ue||e[100]!==fe||e[101]!==ve||e[102]!==xe||e[103]!==ke?(je=(0,t.jsxs)(Ve,{label:P,onClose:l,panelTestId:"uc-dialog",testId:"uc-overlay",variant:"dialog",children:[O,se,ne,ue,fe,ve,xe,ke]}),e[94]=l,e[95]=P,e[96]=O,e[97]=se,e[98]=ne,e[99]=ue,e[100]=fe,e[101]=ve,e[102]=xe,e[103]=ke,e[104]=je):je=e[104],je},"st"),Ee=r(u=>{let e=(0,Z.c)(2),{children:l}=u,s;return e[0]!==l?(s=(0,t.jsx)("h3",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:l}),e[0]=l,e[1]=s):s=e[1],s},"Le"),nt=r(u=>{let e=(0,Z.c)(29),{busy:l,runAction:s,userId:c,version:a}=u,o=E(),i=W(),[n,m]=(0,k.useState)(null),[w,S]=(0,k.useState)(null),b;e[0]!==o||e[1]!==c?(b=r(()=>{ze((async()=>{S(null);try{let x=await o.listAuthSessions({limit:50,userId:c});m(x.rows)}catch(x){let F=x;m(null),S(Pe(F))}})())},"x"),e[0]=o,e[1]=c,e[2]=b):b=e[2];let C;e[3]!==o||e[4]!==c||e[5]!==a?(C=[o,c,a],e[3]=o,e[4]=c,e[5]=a,e[6]=C):C=e[6],(0,k.useEffect)(b,C);let y;e[7]!==o||e[8]!==s?(y=r(x=>{s(()=>o.revokeAuthSession({sessionId:x}))},"y"),e[7]=o,e[8]=s,e[9]=y):y=e[9];let I=y,h;e[10]!==i?(h=i("Sessions"),e[10]=i,e[11]=h):h=e[11];let g;e[12]!==h?(g=(0,t.jsx)(Ee,{children:h}),e[12]=h,e[13]=g):g=e[13];let v;e[14]!==w?(v=w!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive","data-testid":"ud-sessions-error",role:"alert",children:w}),e[14]=w,e[15]=v):v=e[15];let f;e[16]!==n||e[17]!==i?(f=n!==null&&n.length===0&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"ud-sessions-empty",children:i("No active sessions.")}),e[16]=n,e[17]=i,e[18]=f):f=e[18];let d;e[19]!==l||e[20]!==I||e[21]!==n||e[22]!==i?(d=n!==null&&n.length>0&&(0,t.jsx)(we,{className:"overflow-hidden py-0",children:(0,t.jsx)(Ce,{className:"px-0",children:(0,t.jsxs)(Ue,{"data-testid":"ud-sessions-table",children:[(0,t.jsx)(_e,{children:(0,t.jsxs)(M,{children:[(0,t.jsx)(U,{children:i("expires")}),(0,t.jsx)(U,{children:i("ip")}),(0,t.jsx)(U,{children:i("user agent")}),(0,t.jsx)(U,{"aria-label":i("Actions")})]})}),(0,t.jsx)($e,{children:n.map(x=>(0,t.jsxs)(M,{"data-testid":`ud-session-${x.id}`,children:[(0,t.jsx)(_,{className:"text-muted-foreground tabular-nums",children:Ie(x.expiresAt)}),(0,t.jsx)(_,{children:x.ipAddress??""}),(0,t.jsx)(_,{className:"max-w-40 truncate",children:x.userAgent??""}),(0,t.jsx)(_,{children:(0,t.jsx)(z,{"data-testid":`ud-revoke-${x.id}`,disabled:l,onClick:r(()=>{I(x.id)},"onClick"),size:"xs",type:"button",variant:"ghost",children:i("Revoke")})})]},x.id))})]})})}),e[19]=l,e[20]=I,e[21]=n,e[22]=i,e[23]=d):d=e[23];let A;return e[24]!==g||e[25]!==v||e[26]!==f||e[27]!==d?(A=(0,t.jsxs)("div",{className:"flex flex-col gap-2","data-testid":"ud-sessions",children:[g,v,f,d]}),e[24]=g,e[25]=v,e[26]=f,e[27]=d,e[28]=A):A=e[28],A},"rt"),dt=r(u=>{let e=(0,Z.c)(30),{busy:l,runAction:s,userId:c,version:a}=u,o=E(),i=W(),[n,m]=(0,k.useState)(null),[w,S]=(0,k.useState)(null),b;e[0]!==o||e[1]!==c?(b=r(()=>{ze((async()=>{S(null);try{m(await o.listAuthAccounts({userId:c}))}catch(x){let F=x;m(null),S(Pe(F))}})())},"x"),e[0]=o,e[1]=c,e[2]=b):b=e[2];let C;e[3]!==o||e[4]!==c||e[5]!==a?(C=[o,c,a],e[3]=o,e[4]=c,e[5]=a,e[6]=C):C=e[6],(0,k.useEffect)(b,C);let y;e[7]!==o||e[8]!==s||e[9]!==c?(y=r(x=>{s(()=>o.unlinkAuthAccount({accountId:x,userId:c}))},"y"),e[7]=o,e[8]=s,e[9]=c,e[10]=y):y=e[10];let I=y,h;e[11]!==i?(h=i("Linked accounts"),e[11]=i,e[12]=h):h=e[12];let g;e[13]!==h?(g=(0,t.jsx)(Ee,{children:h}),e[13]=h,e[14]=g):g=e[14];let v;e[15]!==w?(v=w!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive",role:"alert",children:w}),e[15]=w,e[16]=v):v=e[16];let f;e[17]!==n||e[18]!==i?(f=n!==null&&n.length===0&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:i("No linked accounts.")}),e[17]=n,e[18]=i,e[19]=f):f=e[19];let d;e[20]!==n||e[21]!==l||e[22]!==I||e[23]!==i?(d=n!==null&&n.length>0&&(0,t.jsx)(we,{className:"overflow-hidden py-0",children:(0,t.jsx)(Ce,{className:"px-0",children:(0,t.jsxs)(Ue,{"data-testid":"ud-accounts-table",children:[(0,t.jsx)(_e,{children:(0,t.jsxs)(M,{children:[(0,t.jsx)(U,{children:i("provider")}),(0,t.jsx)(U,{children:i("created")}),(0,t.jsx)(U,{"aria-label":i("Actions")})]})}),(0,t.jsx)($e,{children:n.map(x=>{let F=Ae(x.id);return(0,t.jsxs)(M,{"data-testid":`ud-account-${F}`,children:[(0,t.jsx)(_,{children:Ae(x.providerId)}),(0,t.jsx)(_,{className:"text-muted-foreground tabular-nums",children:Ie(x.createdAt)}),(0,t.jsx)(_,{children:(0,t.jsx)(z,{"data-testid":`ud-unlink-${F}`,disabled:l,onClick:r(()=>{I(F)},"onClick"),size:"xs",type:"button",variant:"ghost",children:i("Unlink")})})]},F)})})]})})}),e[20]=n,e[21]=l,e[22]=I,e[23]=i,e[24]=d):d=e[24];let A;return e[25]!==g||e[26]!==v||e[27]!==f||e[28]!==d?(A=(0,t.jsxs)("div",{className:"flex flex-col gap-2","data-testid":"ud-accounts",children:[g,v,f,d]}),e[25]=g,e[26]=v,e[27]=f,e[28]=d,e[29]=A):A=e[29],A},"it"),ot=r(u=>{let e=(0,Z.c)(40),{busy:l,capabilities:s,runAction:c,userId:a,version:o}=u,i=E(),n=W(),[m,w]=(0,k.useState)(null),S;e[0]!==s.passkey||e[1]!==i||e[2]!==a?(S=r(()=>{s.passkey&&ze((async()=>{try{w(await i.listAuthPasskeys({userId:a}))}catch{w(null)}})())},"I"),e[0]=s.passkey,e[1]=i,e[2]=a,e[3]=S):S=e[3];let b;e[4]!==s.passkey||e[5]!==i||e[6]!==a||e[7]!==o?(b=[s.passkey,i,a,o],e[4]=s.passkey,e[5]=i,e[6]=a,e[7]=o,e[8]=b):b=e[8],(0,k.useEffect)(S,b);let C;e[9]!==i||e[10]!==c||e[11]!==a?(C=r(()=>{c(()=>i.disableAuthTwoFactor({userId:a}))},"w"),e[9]=i,e[10]=c,e[11]=a,e[12]=C):C=e[12];let y=C,I;e[13]!==i||e[14]!==c?(I=r(F=>{c(()=>i.deleteAuthPasskey({passkeyId:F}))},"A"),e[13]=i,e[14]=c,e[15]=I):I=e[15];let h=I,g;e[16]!==n?(g=n("Security"),e[16]=n,e[17]=g):g=e[17];let v;e[18]!==g?(v=(0,t.jsx)(Ee,{children:g}),e[18]=g,e[19]=v):v=e[19];let f;e[20]!==l||e[21]!==s.twoFactor||e[22]!==y||e[23]!==n?(f=s.twoFactor&&(0,t.jsx)(z,{"data-testid":"ud-disable-2fa",disabled:l,onClick:y,size:"sm",type:"button",variant:"outline",children:n("Disable two-factor")}),e[20]=l,e[21]=s.twoFactor,e[22]=y,e[23]=n,e[24]=f):f=e[24];let d;e[25]!==s.passkey||e[26]!==m||e[27]!==n?(d=s.passkey&&m!==null&&m.length===0&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:n("No passkeys.")}),e[25]=s.passkey,e[26]=m,e[27]=n,e[28]=d):d=e[28];let A;e[29]!==l||e[30]!==s.passkey||e[31]!==h||e[32]!==m||e[33]!==n?(A=s.passkey&&m!==null&&m.length>0&&(0,t.jsx)(we,{className:"overflow-hidden py-0",children:(0,t.jsx)(Ce,{className:"px-0",children:(0,t.jsxs)(Ue,{"data-testid":"ud-passkeys-table",children:[(0,t.jsx)(_e,{children:(0,t.jsxs)(M,{children:[(0,t.jsx)(U,{children:n("name")}),(0,t.jsx)(U,{children:n("created")}),(0,t.jsx)(U,{"aria-label":n("Actions")})]})}),(0,t.jsx)($e,{children:m.map(F=>{let q=Ae(F.id);return(0,t.jsxs)(M,{"data-testid":`ud-passkey-${q}`,children:[(0,t.jsx)(_,{children:Ae(F.name)||q}),(0,t.jsx)(_,{className:"text-muted-foreground tabular-nums",children:Ie(F.createdAt)}),(0,t.jsx)(_,{children:(0,t.jsx)(z,{"data-testid":`ud-delete-passkey-${q}`,disabled:l,onClick:r(()=>{h(q)},"onClick"),size:"xs",type:"button",variant:"ghost",children:n("Delete")})})]},q)})})]})})}),e[29]=l,e[30]=s.passkey,e[31]=h,e[32]=m,e[33]=n,e[34]=A):A=e[34];let x;return e[35]!==v||e[36]!==f||e[37]!==d||e[38]!==A?(x=(0,t.jsxs)("div",{className:"flex flex-col gap-2","data-testid":"ud-security",children:[v,f,d,A]}),e[35]=v,e[36]=f,e[37]=d,e[38]=A,e[39]=x):x=e[39],x},"nt"),ct=/(?:at|expires)$/iu,ut=new Set(["banExpires","banned","banReason","email","emailVerified","id","name","role"]),mt=r((u,e)=>typeof e=="number"&&ct.test(u)?Ie(e):Ae(e),"ct"),ht=r(({capabilities:u,onChanged:e,onClose:l,user:s})=>{let c=E(),a=W(),o=s.banned===!0,[i,n]=(0,k.useState)(null),[m,w]=(0,k.useState)(!1),[S,b]=(0,k.useState)(0),[C,y]=(0,k.useState)(typeof s.role=="string"?s.role:""),[I,h]=(0,k.useState)(""),[g,v]=(0,k.useState)(""),[f,d]=(0,k.useState)(""),[A,x]=(0,k.useState)(null),[F,q]=(0,k.useState)(!1),R=r((N,P)=>{ze((async()=>{w(!0),n(null);try{let L=await N();P?.refresh!==!1&&(b(O=>O+1),e()),P?.onResult?.(L)}catch(L){n(Pe(L))}finally{w(!1)}})())},"_"),Te=r(N=>{y(N.target.value)},"De"),G=r(N=>{h(N.target.value)},"O"),Be=r(N=>{v(N.target.value)},"je"),H=r(N=>{d(N.target.value)},"G"),Re=r(()=>{let N=C.trim();N!==""&&R(async()=>{await c.setAuthUserRole({role:N,userId:s.id})})},"Se"),J=r(()=>{let N=Number.parseInt(g,10),P=Number.isFinite(N)&&N>0?N*86400:void 0;R(async()=>{await c.banAuthUser({expiresInSeconds:P,reason:I.trim()===""?void 0:I.trim(),userId:s.id})})},"H"),j=r(()=>{R(async()=>{await c.unbanAuthUser({userId:s.id})})},"R"),K=r(()=>{R(async()=>{await c.setAuthUserPassword({newPassword:f,userId:s.id}),d("")})},"J"),Fe=r(()=>{R(()=>c.impersonateAuthUser({userId:s.id}),{onResult:r(N=>{x(N.token)},"onResult"),refresh:!1})},"we"),Q=r(()=>{R(async()=>{await c.revokeAuthUserSessions({userId:s.id})})},"K"),De=r(()=>{R(async()=>{await c.removeAuthUser({userId:s.id}),l()})},"Te"),X=r(()=>{q(!0)},"W"),Se=r(()=>{q(!1)},"Ce"),Y=Object.entries(s).filter(([N])=>!ut.has(N));return(0,t.jsxs)(Ve,{label:a("User details"),onClose:l,panelTestId:"ud-panel",testId:"ud-overlay",variant:"drawer",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,t.jsx)("h2",{className:"text-sm font-semibold text-foreground",children:s.name??s.email??s.id}),(0,t.jsx)("p",{className:"font-mono text-xs text-muted-foreground",children:s.id}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5 pt-1",children:[typeof s.role=="string"&&s.role!==""&&(0,t.jsx)(B,{variant:"secondary",children:s.role}),o?(0,t.jsx)(B,{variant:"destructive",children:a("Banned")}):(0,t.jsx)(B,{variant:"outline",children:a("Active")}),s.emailVerified===!0?(0,t.jsx)(B,{variant:"secondary",children:a("verified")}):(0,t.jsx)(B,{variant:"outline",children:a("unverified")})]})]}),(0,t.jsx)(z,{"data-testid":"ud-close",onClick:l,size:"sm",type:"button",variant:"ghost",children:a("Close")})]}),i!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive","data-testid":"ud-action-error",role:"alert",children:i}),u.admin&&(0,t.jsxs)(we,{className:"gap-0 py-0",children:[(0,t.jsx)("header",{className:"border-b border-border px-4 py-3",children:(0,t.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:a("Actions")})}),(0,t.jsxs)(Ce,{className:"flex flex-col gap-3 p-3",children:[(0,t.jsxs)("div",{className:"flex items-end gap-2",children:[(0,t.jsxs)("div",{className:"flex flex-1 flex-col gap-1",children:[(0,t.jsx)(D,{htmlFor:"ud-role",children:a("Role")}),(0,t.jsx)(T,{"data-testid":"ud-role-input",id:"ud-role",onChange:Te,value:C})]}),(0,t.jsx)(z,{"data-testid":"ud-set-role",disabled:m||C.trim()==="",onClick:Re,size:"sm",type:"button",variant:"outline",children:a("Set role")})]}),o?(0,t.jsx)(z,{"data-testid":"ud-unban",disabled:m,onClick:j,size:"sm",type:"button",variant:"outline",children:a("Unban")}):(0,t.jsxs)("div",{className:"flex items-end gap-2",children:[(0,t.jsxs)("div",{className:"flex flex-1 flex-col gap-1",children:[(0,t.jsx)(D,{htmlFor:"ud-ban-reason",children:a("Ban reason (optional)")}),(0,t.jsx)(T,{"data-testid":"ud-ban-reason",id:"ud-ban-reason",onChange:G,value:I})]}),(0,t.jsxs)("div",{className:"flex w-24 flex-col gap-1",children:[(0,t.jsx)(D,{htmlFor:"ud-ban-days",children:a("Days")}),(0,t.jsx)(T,{"data-testid":"ud-ban-days",id:"ud-ban-days",onChange:Be,type:"number",value:g})]}),(0,t.jsx)(z,{"data-testid":"ud-ban",disabled:m,onClick:J,size:"sm",type:"button",variant:"destructive",children:a("Ban user")})]}),(0,t.jsxs)("div",{className:"flex items-end gap-2",children:[(0,t.jsxs)("div",{className:"flex flex-1 flex-col gap-1",children:[(0,t.jsx)(D,{htmlFor:"ud-password",children:a("New password")}),(0,t.jsx)(T,{"data-testid":"ud-password",id:"ud-password",onChange:H,type:"password",value:f})]}),(0,t.jsx)(z,{"data-testid":"ud-set-password",disabled:m||f==="",onClick:K,size:"sm",type:"button",variant:"outline",children:a("Set password")})]}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,t.jsx)(z,{"data-testid":"ud-impersonate",disabled:m,onClick:Fe,size:"sm",type:"button",variant:"outline",children:a("Impersonate")}),(0,t.jsx)(z,{"data-testid":"ud-revoke-all",disabled:m,onClick:Q,size:"sm",type:"button",variant:"outline",children:a("Revoke all sessions")}),F?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(z,{"data-testid":"ud-delete-confirm",disabled:m,onClick:De,size:"sm",type:"button",variant:"destructive",children:a("Confirm delete")}),(0,t.jsx)(z,{"data-testid":"ud-delete-cancel",onClick:Se,size:"sm",type:"button",variant:"ghost",children:a("Cancel")})]}):(0,t.jsx)(z,{"data-testid":"ud-delete",disabled:m,onClick:X,size:"sm",type:"button",variant:"destructive",children:a("Delete user")})]}),A!==null&&(0,t.jsxs)("div",{className:"flex flex-col gap-1","data-testid":"ud-impersonation",children:[(0,t.jsx)(D,{htmlFor:"ud-token",children:a("Impersonation token")}),(0,t.jsx)(T,{"data-testid":"ud-token",id:"ud-token",readOnly:!0,value:A})]})]})]}),(0,t.jsx)(nt,{busy:m,runAction:R,userId:s.id,version:S}),u.accounts&&(0,t.jsx)(dt,{busy:m,runAction:R,userId:s.id,version:S}),(u.twoFactor||u.passkey)&&(0,t.jsx)(ot,{busy:m,capabilities:u,runAction:R,userId:s.id,version:S}),(0,t.jsxs)("div",{className:"flex flex-col gap-1","data-testid":"ud-fields",children:[(0,t.jsx)("h3",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:a("Fields")}),(0,t.jsx)("dl",{className:"flex flex-col",children:Y.map(([N,P])=>(0,t.jsxs)("div",{className:"flex flex-col border-t border-border py-1.5",children:[(0,t.jsx)("dt",{className:"text-xs font-semibold text-muted-foreground",children:N}),(0,t.jsx)("dd",{className:"m-0 font-mono text-xs break-words",children:mt(N,P)})]},N))})]})]})},"ut"),pt=50,_t=r(({pageSize:u=pt}={})=>{let e=E(),l=W(),[s,c]=(0,k.useState)(""),[a,o]=(0,k.useState)(""),i=He(s),[n,m]=(0,k.useState)(null),[w,S]=(0,k.useState)(!1),{capabilities:b}=at(),C=i.trim(),y=a.trim(),I=Ge(["lunora-auth-users",C,y,u],()=>e.listAuthUsers({filterField:y===""?void 0:"role",filterValue:y===""?void 0:y,limit:u,search:C===""?void 0:C}),{keepPreviousData:!0}),h=I.data?.rows??null,g=I.error,v=r(()=>{I.refetch()},"v");Je(()=>{I.refetch()},!0);let f=n===null?null:h?.find(d=>d.id===n)??null;return(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-users",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)(T,{"aria-label":l("Search users"),className:"w-56","data-testid":"us-search",onChange:r(d=>{c(d.target.value)},"onChange"),placeholder:l("Search by email or name\u2026"),value:s}),(0,t.jsx)(T,{"aria-label":l("Filter by role"),className:"w-40","data-testid":"us-role-filter",onChange:r(d=>{o(d.target.value)},"onChange"),placeholder:l("Filter by role"),value:a}),(0,t.jsx)(z,{"data-testid":"us-new",onClick:r(()=>{S(!0)},"onClick"),size:"sm",type:"button",children:l("New user")})]}),g!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive","data-testid":"us-users-error",role:"alert",children:g}),h!==null&&h.length===0&&(0,t.jsx)(Ze,{description:l("Users who sign up to your app will appear here."),icon:(0,t.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:(0,t.jsx)("path",{d:"M16 20v-2a4 4 0 0 0-4-4H7a4 4 0 0 0-4 4v2M9.5 10a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7Zm11.5 10v-2a4 4 0 0 0-3-3.85"})}),testId:"us-empty",title:l("No users.")}),h!==null&&h.length>0&&(0,t.jsx)(we,{className:"overflow-hidden py-0",children:(0,t.jsx)(Ce,{className:"px-0",children:(0,t.jsxs)(Ue,{"data-testid":"us-table",children:[(0,t.jsx)(_e,{children:(0,t.jsxs)(M,{children:[(0,t.jsx)(U,{children:l("id")}),(0,t.jsx)(U,{children:l("email")}),(0,t.jsx)(U,{children:l("name")}),(0,t.jsx)(U,{children:l("role")}),(0,t.jsx)(U,{children:l("status")}),(0,t.jsx)(U,{children:l("verified")}),(0,t.jsx)(U,{children:l("created")}),(0,t.jsx)(U,{"aria-label":l("Actions")})]})}),(0,t.jsx)($e,{children:h.map(d=>(0,t.jsxs)(M,{"data-testid":`us-row-${d.id}`,children:[(0,t.jsx)(_,{className:"font-mono text-xs",children:d.id}),(0,t.jsx)(_,{children:d.email??""}),(0,t.jsx)(_,{children:d.name??""}),(0,t.jsx)(_,{children:typeof d.role=="string"&&d.role!==""?(0,t.jsx)(B,{variant:"secondary",children:d.role}):""}),(0,t.jsx)(_,{children:d.banned===!0?(0,t.jsx)(B,{variant:"destructive",children:l("Banned")}):(0,t.jsx)(B,{variant:"success",children:l("Active")})}),(0,t.jsx)(_,{children:d.emailVerified===!0?(0,t.jsx)(B,{variant:"success",children:l("yes")}):(0,t.jsx)(B,{variant:"outline",children:l("no")})}),(0,t.jsx)(_,{className:"text-muted-foreground tabular-nums",children:Ie(d.createdAt)}),(0,t.jsx)(_,{children:(0,t.jsx)(z,{"data-testid":`us-manage-${d.id}`,onClick:r(()=>{m(d.id)},"onClick"),size:"xs",type:"button",variant:"ghost",children:l("Manage")})})]},d.id))})]})})}),f!==null&&(0,t.jsx)(ht,{capabilities:b,onChanged:v,onClose:r(()=>{m(null)},"onClose"),user:f}),w&&(0,t.jsx)(it,{onClose:r(()=>{S(!1)},"onClose"),onCreated:v})]})},"Pt");export{_t as UsersPanel};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as He}from"./chunk-SNDYNCAA.js";import"./chunk-HA34GYEX.js";import{a as Ge}from"./chunk-SA6MBPBL.js";import"./chunk-YNBJ6ICE.js";import{a as Pe}from"./chunk-Q34MSC2F.js";import{a as Ke}from"./chunk-4AYEV5UN.js";import{b as _e}from"./chunk-SKJZDOHG.js";import{a as De,b as ke,c as Be,d as G,e as w,f as C}from"./chunk-Q5WXTZWX.js";import{a as Me,e as Te}from"./chunk-JKPK25JO.js";import{a as Ue}from"./chunk-UZYGEOWY.js";import{R as We}from"./chunk-7Z5QEFR4.js";import"./chunk-46IB4C4Q.js";import{c as U}from"./chunk-UY2Y5CXB.js";import"./chunk-ZFWEPGWG.js";import{b as le}from"./chunk-K5PFWU5J.js";import"./chunk-4FNHHFWR.js";import{a as z}from"./chunk-GXZAXNZI.js";import{f as Fe}from"./chunk-KJTLW5W2.js";import"./chunk-UREY4GLG.js";import{a as ue}from"./chunk-6OKDCV7J.js";import{d as $,f as ie,g as ce,h as me,m as he,q as je}from"./chunk-KLLYGWNF.js";import"./chunk-UDZY7MKE.js";import{a as h,e as Ee,f as st,g as nt,h as rt}from"./chunk-UHHTEBC3.js";var F=Ee(nt(),1);var A=Ee(st(),1);var t=Ee(rt(),1);var dt=h((n,e)=>{let a=new Set(n.map(s=>s.deadLetterQueue).filter(s=>typeof s=="string"&&s!=="")),u=n.filter(s=>(s.deadLetterQueue===void 0||s.deadLetterQueue==="")&&!a.has(s.name)),o=e.filter(s=>s.deadLettered).length;return{deadLetteredCount:o,queuesWithoutDlq:u,showReliabilityWarning:u.length>0||o>0}},"st"),ot=200,lt=ie(z.sendQueueMessage),ut=ie(z.replayQueueMessage),it=ie(z.clearQueueMessages),Ve=96,ct=h(n=>{if(n===void 0)return"\u2014";try{return JSON.stringify(n)}catch{return"[unserializable]"}},"lt"),mt=h(n=>n.length>Ve?`${n.slice(0,Ve)}\u2026`:n,"ut"),ht=h(n=>n==="error"?"destructive":n==="retry"?"outline":"secondary","ct"),pt=h((n,e)=>e(n==="messages"?"Messages":n==="send"?"Send":"Declared"),"it"),gt=h(n=>{let e=(0,F.c)(11),{loaded:a,queues:u}=n,o=$(),s;e[0]!==o?(s=o("Queues are declared in code with defineQueue. Enqueue from a mutation or action with ctx.queues.<name>.send(...); push consumers process batches in the worker."),e[0]=o,e[1]=s):s=e[1];let d;e[2]!==s?(d=(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:s}),e[2]=s,e[3]=d):d=e[3];let r;e[4]!==a||e[5]!==u||e[6]!==o?(r=a&&u.length===0?(0,t.jsx)(ue,{description:o("No defineQueue is declared in lunora/queues.ts in this deployment. Add one to offload async work to a Cloudflare Queue."),testId:"queues-empty",title:o("No queues defined")}):(0,t.jsx)(Me,{className:"overflow-hidden py-0",children:(0,t.jsx)(Te,{className:"px-0",children:(0,t.jsxs)(De,{"data-testid":"queues-table",children:[(0,t.jsx)(ke,{children:(0,t.jsxs)(G,{children:[(0,t.jsx)(w,{children:o("Export")}),(0,t.jsx)(w,{children:o("Queue")}),(0,t.jsx)(w,{children:o("Mode")}),(0,t.jsx)(w,{children:o("Binding")}),(0,t.jsx)(w,{children:o("Dead-letter")})]})}),(0,t.jsx)(Be,{children:u.map(Nt)})]})})}),e[4]=a,e[5]=u,e[6]=o,e[7]=r):r=e[7];let p;return e[8]!==d||e[9]!==r?(p=(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"queues-declared",children:[d,r]}),e[8]=d,e[9]=r,e[10]=p):p=e[10],p},"mt"),ft=h(n=>{let e=(0,F.c)(67),{message:a,onReplay:u,replayingId:o}=n,s=$(),d,r,p,c,N,g,y,l,m,f;if(e[0]!==a.attempts||e[1]!==a.body||e[2]!==a.deadLettered||e[3]!==a.exportName||e[4]!==a.id||e[5]!==a.messageId||e[6]!==a.outcome||e[7]!==a.queue||e[8]!==s){let W=ct(a.body);r=G,g=`queues-message-${a.id}`;let j=a.exportName??a.queue;e[19]!==j?(y=(0,t.jsx)(C,{className:"font-mono text-xs",children:j}),e[19]=j,e[20]=y):y=e[20],e[21]!==a.messageId?(l=(0,t.jsx)(C,{className:"max-w-[16ch] truncate font-mono text-xs text-muted-foreground",title:a.messageId,children:a.messageId}),e[21]=a.messageId,e[22]=l):l=e[22],e[23]!==a.attempts?(m=(0,t.jsx)(C,{className:"font-mono text-xs tabular-nums",children:a.attempts}),e[23]=a.attempts,e[24]=m):m=e[24];let M=`queues-outcome-${a.id}`,T;e[25]!==a.outcome?(T=ht(a.outcome),e[25]=a.outcome,e[26]=T):T=e[26];let Q;e[27]!==a.outcome||e[28]!==M||e[29]!==T?(Q=(0,t.jsx)(le,{"data-testid":M,variant:T,children:a.outcome}),e[27]=a.outcome,e[28]=M,e[29]=T,e[30]=Q):Q=e[30];let _;e[31]!==a.deadLettered||e[32]!==a.id||e[33]!==s?(_=a.deadLettered&&(0,t.jsx)(le,{"data-testid":`queues-dlq-${a.id}`,variant:"destructive",children:s("DLQ")}),e[31]=a.deadLettered,e[32]=a.id,e[33]=s,e[34]=_):_=e[34],e[35]!==Q||e[36]!==_?(f=(0,t.jsx)(C,{children:(0,t.jsxs)("span",{className:"inline-flex items-center gap-1",children:[Q,_]})}),e[35]=Q,e[36]=_,e[37]=f):f=e[37],d=C,p="max-w-[32ch] truncate font-mono text-xs text-muted-foreground",c=W,N=mt(W),e[0]=a.attempts,e[1]=a.body,e[2]=a.deadLettered,e[3]=a.exportName,e[4]=a.id,e[5]=a.messageId,e[6]=a.outcome,e[7]=a.queue,e[8]=s,e[9]=d,e[10]=r,e[11]=p,e[12]=c,e[13]=N,e[14]=g,e[15]=y,e[16]=l,e[17]=m,e[18]=f}else d=e[9],r=e[10],p=e[11],c=e[12],N=e[13],g=e[14],y=e[15],l=e[16],m=e[17],f=e[18];let x;e[38]!==d||e[39]!==p||e[40]!==c||e[41]!==N?(x=(0,t.jsx)(d,{className:p,title:c,children:N}),e[38]=d,e[39]=p,e[40]=c,e[41]=N,e[42]=x):x=e[42];let q;e[43]!==a.capturedAt?(q=je(a.capturedAt,"\u2014"),e[43]=a.capturedAt,e[44]=q):q=e[44];let b;e[45]!==q?(b=(0,t.jsx)(C,{className:"text-xs text-muted-foreground tabular-nums",children:q}),e[45]=q,e[46]=b):b=e[46];let S=`queues-replay-${a.id}`,E=o!==null,I;e[47]!==a.id||e[48]!==o||e[49]!==s?(I=o===a.id?s("Replaying\u2026"):s("Replay"),e[47]=a.id,e[48]=o,e[49]=s,e[50]=I):I=e[50];let L;e[51]!==a.id||e[52]!==u||e[53]!==S||e[54]!==E||e[55]!==I?(L=(0,t.jsx)(C,{children:(0,t.jsx)(U,{"data-id":a.id,"data-testid":S,disabled:E,onClick:u,size:"xs",type:"button",variant:"outline",children:I})}),e[51]=a.id,e[52]=u,e[53]=S,e[54]=E,e[55]=I,e[56]=L):L=e[56];let D;return e[57]!==r||e[58]!==b||e[59]!==L||e[60]!==g||e[61]!==y||e[62]!==l||e[63]!==m||e[64]!==f||e[65]!==x?(D=(0,t.jsxs)(r,{"data-testid":g,children:[y,l,m,f,x,b,L]}),e[57]=r,e[58]=b,e[59]=L,e[60]=g,e[61]=y,e[62]=l,e[63]=m,e[64]=f,e[65]=x,e[66]=D):D=e[66],D},"ht"),xt=h(n=>{let e=(0,F.c)(26),{hasError:a,messages:u,onClear:o,onReplay:s,replayingId:d}=n,r=$(),p;e[0]!==r?(p=r("Cloudflare Queues have no peek API, so this is what push consumers actually processed \u2014 not pending depth."),e[0]=r,e[1]=p):p=e[1];let c;e[2]!==p?(c=(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:p}),e[2]=p,e[3]=c):c=e[3];let N=u.length===0,g;e[4]!==r?(g=r("Clear log"),e[4]=r,e[5]=g):g=e[5];let y;e[6]!==o||e[7]!==N||e[8]!==g?(y=(0,t.jsx)(U,{className:"ml-auto","data-testid":"queues-clear",disabled:N,onClick:o,size:"sm",type:"button",variant:"outline",children:g}),e[6]=o,e[7]=N,e[8]=g,e[9]=y):y=e[9];let l;e[10]!==u.length||e[11]!==r?(l=u.length>0&&(0,t.jsx)(le,{"data-testid":"queues-count",variant:"secondary",children:r("{count} messages",{count:u.length})}),e[10]=u.length,e[11]=r,e[12]=l):l=e[12];let m;e[13]!==c||e[14]!==y||e[15]!==l?(m=(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[c,y,l]}),e[13]=c,e[14]=y,e[15]=l,e[16]=m):m=e[16];let f;e[17]!==a||e[18]!==u||e[19]!==s||e[20]!==d||e[21]!==r?(f=!a&&u.length===0?(0,t.jsx)(ue,{description:r("Consumed messages appear here once a push consumer processes a batch in dev. Send one from the Send tab to see it captured."),testId:"queues-messages-empty",title:r("No consumed messages yet.")}):(0,t.jsx)(Me,{className:"overflow-hidden py-0",children:(0,t.jsx)(Te,{className:"px-0",children:(0,t.jsx)(He,{className:"max-h-[32rem]","data-testid":"queues-messages-scroll",children:(0,t.jsxs)(De,{"data-testid":"queues-messages-table",children:[(0,t.jsx)(ke,{children:(0,t.jsxs)(G,{children:[(0,t.jsx)(w,{children:r("Export")}),(0,t.jsx)(w,{children:r("Message")}),(0,t.jsx)(w,{children:r("Attempts")}),(0,t.jsx)(w,{children:r("Outcome")}),(0,t.jsx)(w,{children:r("Body")}),(0,t.jsx)(w,{children:r("Captured")}),(0,t.jsx)(w,{})]})}),(0,t.jsx)(Be,{children:u.map(q=>(0,t.jsx)(ft,{message:q,onReplay:s,replayingId:d},q.id))})]})})})}),e[17]=a,e[18]=u,e[19]=s,e[20]=d,e[21]=r,e[22]=f):f=e[22];let x;return e[23]!==m||e[24]!==f?(x=(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"queues-messages",children:[m,f]}),e[23]=m,e[24]=f,e[25]=x):x=e[25],x},"pt"),yt=h(n=>{let e=(0,F.c)(20),{batchMode:a,bodyText:u,delayText:o,onBatchModeChange:s,onBodyChange:d,onDelayChange:r,onSelectExport:p,onSend:c,queues:N,selectedExportName:g,sending:y}=n,l=$(),m;e[0]!==l?(m=l("Enqueue a JSON message to a declared producer to exercise its consumer. Nothing is captured until the consumer processes it."),e[0]=l,e[1]=m):m=e[1];let f;e[2]!==m?(f=(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:m}),e[2]=m,e[3]=f):f=e[3];let x;e[4]!==a||e[5]!==u||e[6]!==o||e[7]!==s||e[8]!==d||e[9]!==r||e[10]!==p||e[11]!==c||e[12]!==N||e[13]!==g||e[14]!==y||e[15]!==l?(x=N.length===0?(0,t.jsx)(ue,{description:l("Declare a queue with defineQueue in lunora/queues.ts to enqueue a test message."),testId:"queues-send-empty",title:l("No queues to send to")}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)("select",{"aria-label":l("Queue"),className:"h-8 rounded-md border border-input bg-transparent px-2.5 py-1 text-xs outline-none focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring/50","data-testid":"queues-send-select",onChange:p,value:g,children:N.map(bt)}),(0,t.jsx)(We,{"aria-label":l("Delay (seconds)"),className:"max-w-36","data-testid":"queues-send-delay",min:0,onChange:r,placeholder:l("Delay (s)"),type:"number",value:o}),(0,t.jsxs)("label",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",htmlFor:"queues-send-batch",children:[(0,t.jsx)("input",{checked:a,"data-testid":"queues-send-batch",id:"queues-send-batch",onChange:s,type:"checkbox"}),l("Send as batch (JSON array)")]}),(0,t.jsx)(U,{className:"ml-auto","data-testid":"queues-send-button",disabled:y||g==="",onClick:c,type:"button",children:l(y?"Sending\u2026":"Send message")})]}),(0,t.jsx)(Ue,{"aria-label":l("Message body (JSON)"),className:"font-mono","data-testid":"queues-send-body",onChange:d,placeholder:a?'[ { "hello": "world" } ]':'{ "hello": "world" }',value:u})]}),e[4]=a,e[5]=u,e[6]=o,e[7]=s,e[8]=d,e[9]=r,e[10]=p,e[11]=c,e[12]=N,e[13]=g,e[14]=y,e[15]=l,e[16]=x):x=e[16];let q;return e[17]!==f||e[18]!==x?(q=(0,t.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"queues-send",children:[f,x]}),e[17]=f,e[18]=x,e[19]=q):q=e[19],q},"gt"),Jt=h(n=>{let e=(0,F.c)(59),{limit:a}=n,u=a??ot,o=Fe(),s=$(),[d,r]=(0,A.useState)("declared"),[p,c]=(0,A.useState)(null),N;e[0]===Symbol.for("react.memo_cache_sentinel")?(N={},e[0]=N):N=e[0];let{data:g,error:y,errorSource:l}=_e(z.listQueues,N),m;e[1]!==u?(m={limit:u},e[1]=u,e[2]=m):m=e[2];let{data:f,error:x,errorSource:q,refetch:b}=_e(z.getQueueMessages,m),S=Array.isArray(g?.queues)?[...g.queues].toSorted(qt):[],E=f?.entries??[],{deadLetteredCount:I,queuesWithoutDlq:L,showReliabilityWarning:D}=dt(S,E),[W,j]=(0,A.useState)(""),[M,T]=(0,A.useState)(""),[Q,_]=(0,A.useState)(""),[K,Xe]=(0,A.useState)(!1),[pe,Oe]=(0,A.useState)(!1),[ge,Re]=(0,A.useState)(null),H=S.some(i=>i.exportName===W)?W:S[0]?.exportName??"",Je=d==="messages"?x:y,Ye=d==="messages"?q:l,fe=Je??p,xe=Je===null?p:Ye,V;e[3]!==b?(V=h(()=>{b()},"K"),e[3]=b,e[4]=V):V=e[4],Ge(V,d==="messages");let ye=h(async()=>{c(null);let i=H;if(i==="")return;let v=null,$e=M.trim();if($e!=="")try{v=JSON.parse($e)}catch{c(s("Body must be valid JSON."));return}let Ae,ze=Q.trim();if(ze!==""){let P=Number(ze);if(!Number.isFinite(P)||P<0){c(s("Delay must be a non-negative number of seconds."));return}Ae=P}if(K&&!Array.isArray(v)){c(s("Batch mode needs a JSON array body \u2014 each element is enqueued as one message."));return}Oe(!0);let at=K?{batch:v,delaySeconds:Ae,exportName:i}:{body:v,delaySeconds:Ae,exportName:i};try{await o.query(lt,at,ce("")),b()}catch(P){c(me(P))}Oe(!1)},"me"),X;e[5]!==o||e[6]!==b?(X=h(async i=>{c(null),Re(i);try{await o.query(ut,{id:i},ce("")),b()}catch(v){c(me(v))}Re(null)},"H"),e[5]=o,e[6]=b,e[7]=X):X=e[7];let Ne=X,Y;e[8]!==o||e[9]!==b?(Y=h(async()=>{c(null);try{await o.query(it,{},ce("")),b()}catch(i){c(me(i))}},"V"),e[8]=o,e[9]=b,e[10]=Y):Y=e[10];let be=Y,Z;e[11]===Symbol.for("react.memo_cache_sentinel")?(Z=h(i=>{let v=i.currentTarget.dataset.tab;(v==="declared"||v==="messages"||v==="send")&&r(v)},"X"),e[11]=Z):Z=e[11];let Ze=Z,ee;e[12]===Symbol.for("react.memo_cache_sentinel")?(ee=h(i=>{j(i.currentTarget.value)},"Y"),e[12]=ee):ee=e[12];let qe=ee,te;e[13]===Symbol.for("react.memo_cache_sentinel")?(te=h(i=>{T(i.currentTarget.value)},"Z"),e[13]=te):te=e[13];let ve=te,ae;e[14]===Symbol.for("react.memo_cache_sentinel")?(ae=h(i=>{_(i.currentTarget.value)},"ee"),e[14]=ae):ae=e[14];let Se=ae,se;e[15]===Symbol.for("react.memo_cache_sentinel")?(se=h(i=>{Xe(i.currentTarget.checked)},"te"),e[15]=se):se=e[15];let we=se,ne;e[16]!==ye?(ne=h(()=>{he(ye())},"ae"),e[16]=ye,e[17]=ne):ne=e[17];let Ce=ne,re;e[18]!==Ne?(re=h(i=>{let{id:v}=i.currentTarget.dataset;v!==void 0&&he(Ne(v))},"se"),e[18]=Ne,e[19]=re):re=e[19];let Qe=re,de;e[20]!==be?(de=h(()=>{he(be())},"re"),e[20]=be,e[21]=de):de=e[21];let Ie=de,et="flex flex-col gap-6",tt="lunora-queues-panel",k;e[22]!==s||e[23]!==d?(k=(0,t.jsx)("div",{className:"flex items-center gap-1","data-testid":"queues-tabs",role:"tablist",children:["declared","messages","send"].map(i=>(0,t.jsx)(U,{"aria-selected":d===i,"data-tab":i,"data-testid":`queues-tab-${i}`,onClick:Ze,role:"tab",size:"sm",type:"button",variant:d===i?"secondary":"ghost",children:pt(i,s)},i))}),e[22]=s,e[23]=d,e[24]=k):k=e[24];let B;e[25]!==fe||e[26]!==xe?(B=fe!==null&&(0,t.jsx)(Pe,{error:xe,testId:"queues-error"}),e[25]=fe,e[26]=xe,e[27]=B):B=e[27];let Le=D&&(0,t.jsx)(Ke,{icon:(0,t.jsx)("span",{"aria-hidden":"true",className:"text-base leading-none",children:"\u26A0"}),testId:"queues-dlq-warning",variant:"warning",children:(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[L.length>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"font-medium",children:s("No dead-letter queue on {queues}.",{queues:L.map(vt).join(", ")})}),(0,t.jsx)("p",{className:"text-muted-foreground",children:s("Exhausted messages are dropped after retries. Add a deadLetterQueue to capture them.")})]}),I>0&&(0,t.jsx)("p",{className:L.length>0?"text-muted-foreground":"font-medium",children:I===1?s("1 message was recently dead-lettered."):s("{count} messages were recently dead-lettered.",{count:I})})]})}),O;e[28]!==S||e[29]!==g||e[30]!==d?(O=d==="declared"&&(0,t.jsx)(gt,{loaded:g!==void 0,queues:S}),e[28]=S,e[29]=g,e[30]=d,e[31]=O):O=e[31];let R;e[32]!==E||e[33]!==x||e[34]!==Ie||e[35]!==Qe||e[36]!==ge||e[37]!==d?(R=d==="messages"&&(0,t.jsx)(xt,{hasError:x!==null,messages:E,onClear:Ie,onReplay:Qe,replayingId:ge}),e[32]=E,e[33]=x,e[34]=Ie,e[35]=Qe,e[36]=ge,e[37]=d,e[38]=R):R=e[38];let J;e[39]!==K||e[40]!==M||e[41]!==Q||e[42]!==we||e[43]!==ve||e[44]!==Se||e[45]!==qe||e[46]!==Ce||e[47]!==S||e[48]!==H||e[49]!==pe||e[50]!==d?(J=d==="send"&&(0,t.jsx)(yt,{batchMode:K,bodyText:M,delayText:Q,onBatchModeChange:we,onBodyChange:ve,onDelayChange:Se,onSelectExport:qe,onSend:Ce,queues:S,selectedExportName:H,sending:pe}),e[39]=K,e[40]=M,e[41]=Q,e[42]=we,e[43]=ve,e[44]=Se,e[45]=qe,e[46]=Ce,e[47]=S,e[48]=H,e[49]=pe,e[50]=d,e[51]=J):J=e[51];let oe;return e[52]!==k||e[53]!==B||e[54]!==Le||e[55]!==O||e[56]!==R||e[57]!==J?(oe=(0,t.jsxs)("div",{className:et,"data-testid":tt,children:[k,B,Le,O,R,J]}),e[52]=k,e[53]=B,e[54]=Le,e[55]=O,e[56]=R,e[57]=J,e[58]=oe):oe=e[58],oe},"Bt");function Nt(n){return(0,t.jsxs)(G,{"data-testid":`queues-row-${n.exportName}`,children:[(0,t.jsx)(C,{className:"font-mono text-xs",children:n.exportName}),(0,t.jsx)(C,{className:"font-mono text-xs text-muted-foreground",children:n.name}),(0,t.jsx)(C,{className:"font-mono text-xs text-muted-foreground",children:n.mode}),(0,t.jsx)(C,{className:"font-mono text-xs text-muted-foreground",children:n.binding}),(0,t.jsx)(C,{className:"font-mono text-xs text-muted-foreground",children:n.deadLetterQueue??"\u2014"})]},n.exportName)}h(Nt,"ft");function bt(n){return(0,t.jsx)("option",{value:n.exportName,children:n.exportName},n.exportName)}h(bt,"xt");function qt(n,e){return n.exportName.localeCompare(e.exportName)}h(qt,"yt");function vt(n){return n.name}h(vt,"Nt");export{Jt as default};
|
|
1
|
+
import{a as He}from"./chunk-LEDWUPXM.js";import"./chunk-2PJNAWB3.js";import{a as Ge}from"./chunk-54MMVNPT.js";import"./chunk-BGBLQ563.js";import{a as Pe}from"./chunk-UNUU7CJJ.js";import{a as Ke}from"./chunk-XXQUMVWH.js";import{b as _e}from"./chunk-OWADN6BI.js";import{a as De,b as ke,c as Be,d as G,e as w,f as C}from"./chunk-MIQTKZAR.js";import{a as Me,e as Te}from"./chunk-UZERI5YC.js";import{a as Ue}from"./chunk-V53KNYRN.js";import{R as We}from"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import{c as U}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import{b as le}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as z}from"./chunk-GXZAXNZI.js";import{f as Fe}from"./chunk-LWECXQWP.js";import"./chunk-XBDKZZ67.js";import{a as ue}from"./chunk-XQCVZAGU.js";import{d as $,f as ie,g as ce,h as me,m as he,q as je}from"./chunk-4CGALXS3.js";import"./chunk-LE56LPNH.js";import{a as h,e as Ee,f as st,g as nt,h as rt}from"./chunk-3XIESWL4.js";var F=Ee(nt(),1);var A=Ee(st(),1);var t=Ee(rt(),1);var dt=h((n,e)=>{let a=new Set(n.map(s=>s.deadLetterQueue).filter(s=>typeof s=="string"&&s!=="")),u=n.filter(s=>(s.deadLetterQueue===void 0||s.deadLetterQueue==="")&&!a.has(s.name)),o=e.filter(s=>s.deadLettered).length;return{deadLetteredCount:o,queuesWithoutDlq:u,showReliabilityWarning:u.length>0||o>0}},"st"),ot=200,lt=ie(z.sendQueueMessage),ut=ie(z.replayQueueMessage),it=ie(z.clearQueueMessages),Ve=96,ct=h(n=>{if(n===void 0)return"\u2014";try{return JSON.stringify(n)}catch{return"[unserializable]"}},"lt"),mt=h(n=>n.length>Ve?`${n.slice(0,Ve)}\u2026`:n,"ut"),ht=h(n=>n==="error"?"destructive":n==="retry"?"outline":"secondary","ct"),pt=h((n,e)=>e(n==="messages"?"Messages":n==="send"?"Send":"Declared"),"it"),gt=h(n=>{let e=(0,F.c)(11),{loaded:a,queues:u}=n,o=$(),s;e[0]!==o?(s=o("Queues are declared in code with defineQueue. Enqueue from a mutation or action with ctx.queues.<name>.send(...); push consumers process batches in the worker."),e[0]=o,e[1]=s):s=e[1];let d;e[2]!==s?(d=(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:s}),e[2]=s,e[3]=d):d=e[3];let r;e[4]!==a||e[5]!==u||e[6]!==o?(r=a&&u.length===0?(0,t.jsx)(ue,{description:o("No defineQueue is declared in lunora/queues.ts in this deployment. Add one to offload async work to a Cloudflare Queue."),testId:"queues-empty",title:o("No queues defined")}):(0,t.jsx)(Me,{className:"overflow-hidden py-0",children:(0,t.jsx)(Te,{className:"px-0",children:(0,t.jsxs)(De,{"data-testid":"queues-table",children:[(0,t.jsx)(ke,{children:(0,t.jsxs)(G,{children:[(0,t.jsx)(w,{children:o("Export")}),(0,t.jsx)(w,{children:o("Queue")}),(0,t.jsx)(w,{children:o("Mode")}),(0,t.jsx)(w,{children:o("Binding")}),(0,t.jsx)(w,{children:o("Dead-letter")})]})}),(0,t.jsx)(Be,{children:u.map(Nt)})]})})}),e[4]=a,e[5]=u,e[6]=o,e[7]=r):r=e[7];let p;return e[8]!==d||e[9]!==r?(p=(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"queues-declared",children:[d,r]}),e[8]=d,e[9]=r,e[10]=p):p=e[10],p},"mt"),ft=h(n=>{let e=(0,F.c)(67),{message:a,onReplay:u,replayingId:o}=n,s=$(),d,r,p,c,N,g,y,l,m,f;if(e[0]!==a.attempts||e[1]!==a.body||e[2]!==a.deadLettered||e[3]!==a.exportName||e[4]!==a.id||e[5]!==a.messageId||e[6]!==a.outcome||e[7]!==a.queue||e[8]!==s){let W=ct(a.body);r=G,g=`queues-message-${a.id}`;let j=a.exportName??a.queue;e[19]!==j?(y=(0,t.jsx)(C,{className:"font-mono text-xs",children:j}),e[19]=j,e[20]=y):y=e[20],e[21]!==a.messageId?(l=(0,t.jsx)(C,{className:"max-w-[16ch] truncate font-mono text-xs text-muted-foreground",title:a.messageId,children:a.messageId}),e[21]=a.messageId,e[22]=l):l=e[22],e[23]!==a.attempts?(m=(0,t.jsx)(C,{className:"font-mono text-xs tabular-nums",children:a.attempts}),e[23]=a.attempts,e[24]=m):m=e[24];let M=`queues-outcome-${a.id}`,T;e[25]!==a.outcome?(T=ht(a.outcome),e[25]=a.outcome,e[26]=T):T=e[26];let Q;e[27]!==a.outcome||e[28]!==M||e[29]!==T?(Q=(0,t.jsx)(le,{"data-testid":M,variant:T,children:a.outcome}),e[27]=a.outcome,e[28]=M,e[29]=T,e[30]=Q):Q=e[30];let _;e[31]!==a.deadLettered||e[32]!==a.id||e[33]!==s?(_=a.deadLettered&&(0,t.jsx)(le,{"data-testid":`queues-dlq-${a.id}`,variant:"destructive",children:s("DLQ")}),e[31]=a.deadLettered,e[32]=a.id,e[33]=s,e[34]=_):_=e[34],e[35]!==Q||e[36]!==_?(f=(0,t.jsx)(C,{children:(0,t.jsxs)("span",{className:"inline-flex items-center gap-1",children:[Q,_]})}),e[35]=Q,e[36]=_,e[37]=f):f=e[37],d=C,p="max-w-[32ch] truncate font-mono text-xs text-muted-foreground",c=W,N=mt(W),e[0]=a.attempts,e[1]=a.body,e[2]=a.deadLettered,e[3]=a.exportName,e[4]=a.id,e[5]=a.messageId,e[6]=a.outcome,e[7]=a.queue,e[8]=s,e[9]=d,e[10]=r,e[11]=p,e[12]=c,e[13]=N,e[14]=g,e[15]=y,e[16]=l,e[17]=m,e[18]=f}else d=e[9],r=e[10],p=e[11],c=e[12],N=e[13],g=e[14],y=e[15],l=e[16],m=e[17],f=e[18];let x;e[38]!==d||e[39]!==p||e[40]!==c||e[41]!==N?(x=(0,t.jsx)(d,{className:p,title:c,children:N}),e[38]=d,e[39]=p,e[40]=c,e[41]=N,e[42]=x):x=e[42];let q;e[43]!==a.capturedAt?(q=je(a.capturedAt,"\u2014"),e[43]=a.capturedAt,e[44]=q):q=e[44];let b;e[45]!==q?(b=(0,t.jsx)(C,{className:"text-xs text-muted-foreground tabular-nums",children:q}),e[45]=q,e[46]=b):b=e[46];let S=`queues-replay-${a.id}`,E=o!==null,I;e[47]!==a.id||e[48]!==o||e[49]!==s?(I=o===a.id?s("Replaying\u2026"):s("Replay"),e[47]=a.id,e[48]=o,e[49]=s,e[50]=I):I=e[50];let L;e[51]!==a.id||e[52]!==u||e[53]!==S||e[54]!==E||e[55]!==I?(L=(0,t.jsx)(C,{children:(0,t.jsx)(U,{"data-id":a.id,"data-testid":S,disabled:E,onClick:u,size:"xs",type:"button",variant:"outline",children:I})}),e[51]=a.id,e[52]=u,e[53]=S,e[54]=E,e[55]=I,e[56]=L):L=e[56];let D;return e[57]!==r||e[58]!==b||e[59]!==L||e[60]!==g||e[61]!==y||e[62]!==l||e[63]!==m||e[64]!==f||e[65]!==x?(D=(0,t.jsxs)(r,{"data-testid":g,children:[y,l,m,f,x,b,L]}),e[57]=r,e[58]=b,e[59]=L,e[60]=g,e[61]=y,e[62]=l,e[63]=m,e[64]=f,e[65]=x,e[66]=D):D=e[66],D},"ht"),xt=h(n=>{let e=(0,F.c)(26),{hasError:a,messages:u,onClear:o,onReplay:s,replayingId:d}=n,r=$(),p;e[0]!==r?(p=r("Cloudflare Queues have no peek API, so this is what push consumers actually processed \u2014 not pending depth."),e[0]=r,e[1]=p):p=e[1];let c;e[2]!==p?(c=(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:p}),e[2]=p,e[3]=c):c=e[3];let N=u.length===0,g;e[4]!==r?(g=r("Clear log"),e[4]=r,e[5]=g):g=e[5];let y;e[6]!==o||e[7]!==N||e[8]!==g?(y=(0,t.jsx)(U,{className:"ml-auto","data-testid":"queues-clear",disabled:N,onClick:o,size:"sm",type:"button",variant:"outline",children:g}),e[6]=o,e[7]=N,e[8]=g,e[9]=y):y=e[9];let l;e[10]!==u.length||e[11]!==r?(l=u.length>0&&(0,t.jsx)(le,{"data-testid":"queues-count",variant:"secondary",children:r("{count} messages",{count:u.length})}),e[10]=u.length,e[11]=r,e[12]=l):l=e[12];let m;e[13]!==c||e[14]!==y||e[15]!==l?(m=(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[c,y,l]}),e[13]=c,e[14]=y,e[15]=l,e[16]=m):m=e[16];let f;e[17]!==a||e[18]!==u||e[19]!==s||e[20]!==d||e[21]!==r?(f=!a&&u.length===0?(0,t.jsx)(ue,{description:r("Consumed messages appear here once a push consumer processes a batch in dev. Send one from the Send tab to see it captured."),testId:"queues-messages-empty",title:r("No consumed messages yet.")}):(0,t.jsx)(Me,{className:"overflow-hidden py-0",children:(0,t.jsx)(Te,{className:"px-0",children:(0,t.jsx)(He,{className:"max-h-[32rem]","data-testid":"queues-messages-scroll",children:(0,t.jsxs)(De,{"data-testid":"queues-messages-table",children:[(0,t.jsx)(ke,{children:(0,t.jsxs)(G,{children:[(0,t.jsx)(w,{children:r("Export")}),(0,t.jsx)(w,{children:r("Message")}),(0,t.jsx)(w,{children:r("Attempts")}),(0,t.jsx)(w,{children:r("Outcome")}),(0,t.jsx)(w,{children:r("Body")}),(0,t.jsx)(w,{children:r("Captured")}),(0,t.jsx)(w,{})]})}),(0,t.jsx)(Be,{children:u.map(q=>(0,t.jsx)(ft,{message:q,onReplay:s,replayingId:d},q.id))})]})})})}),e[17]=a,e[18]=u,e[19]=s,e[20]=d,e[21]=r,e[22]=f):f=e[22];let x;return e[23]!==m||e[24]!==f?(x=(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"queues-messages",children:[m,f]}),e[23]=m,e[24]=f,e[25]=x):x=e[25],x},"pt"),yt=h(n=>{let e=(0,F.c)(20),{batchMode:a,bodyText:u,delayText:o,onBatchModeChange:s,onBodyChange:d,onDelayChange:r,onSelectExport:p,onSend:c,queues:N,selectedExportName:g,sending:y}=n,l=$(),m;e[0]!==l?(m=l("Enqueue a JSON message to a declared producer to exercise its consumer. Nothing is captured until the consumer processes it."),e[0]=l,e[1]=m):m=e[1];let f;e[2]!==m?(f=(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:m}),e[2]=m,e[3]=f):f=e[3];let x;e[4]!==a||e[5]!==u||e[6]!==o||e[7]!==s||e[8]!==d||e[9]!==r||e[10]!==p||e[11]!==c||e[12]!==N||e[13]!==g||e[14]!==y||e[15]!==l?(x=N.length===0?(0,t.jsx)(ue,{description:l("Declare a queue with defineQueue in lunora/queues.ts to enqueue a test message."),testId:"queues-send-empty",title:l("No queues to send to")}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)("select",{"aria-label":l("Queue"),className:"h-8 rounded-md border border-input bg-transparent px-2.5 py-1 text-xs outline-none focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring/50","data-testid":"queues-send-select",onChange:p,value:g,children:N.map(bt)}),(0,t.jsx)(We,{"aria-label":l("Delay (seconds)"),className:"max-w-36","data-testid":"queues-send-delay",min:0,onChange:r,placeholder:l("Delay (s)"),type:"number",value:o}),(0,t.jsxs)("label",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",htmlFor:"queues-send-batch",children:[(0,t.jsx)("input",{checked:a,"data-testid":"queues-send-batch",id:"queues-send-batch",onChange:s,type:"checkbox"}),l("Send as batch (JSON array)")]}),(0,t.jsx)(U,{className:"ml-auto","data-testid":"queues-send-button",disabled:y||g==="",onClick:c,type:"button",children:l(y?"Sending\u2026":"Send message")})]}),(0,t.jsx)(Ue,{"aria-label":l("Message body (JSON)"),className:"font-mono","data-testid":"queues-send-body",onChange:d,placeholder:a?'[ { "hello": "world" } ]':'{ "hello": "world" }',value:u})]}),e[4]=a,e[5]=u,e[6]=o,e[7]=s,e[8]=d,e[9]=r,e[10]=p,e[11]=c,e[12]=N,e[13]=g,e[14]=y,e[15]=l,e[16]=x):x=e[16];let q;return e[17]!==f||e[18]!==x?(q=(0,t.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"queues-send",children:[f,x]}),e[17]=f,e[18]=x,e[19]=q):q=e[19],q},"gt"),Jt=h(n=>{let e=(0,F.c)(59),{limit:a}=n,u=a??ot,o=Fe(),s=$(),[d,r]=(0,A.useState)("declared"),[p,c]=(0,A.useState)(null),N;e[0]===Symbol.for("react.memo_cache_sentinel")?(N={},e[0]=N):N=e[0];let{data:g,error:y,errorSource:l}=_e(z.listQueues,N),m;e[1]!==u?(m={limit:u},e[1]=u,e[2]=m):m=e[2];let{data:f,error:x,errorSource:q,refetch:b}=_e(z.getQueueMessages,m),S=Array.isArray(g?.queues)?[...g.queues].toSorted(qt):[],E=f?.entries??[],{deadLetteredCount:I,queuesWithoutDlq:L,showReliabilityWarning:D}=dt(S,E),[W,j]=(0,A.useState)(""),[M,T]=(0,A.useState)(""),[Q,_]=(0,A.useState)(""),[K,Xe]=(0,A.useState)(!1),[pe,Oe]=(0,A.useState)(!1),[ge,Re]=(0,A.useState)(null),H=S.some(i=>i.exportName===W)?W:S[0]?.exportName??"",Je=d==="messages"?x:y,Ye=d==="messages"?q:l,fe=Je??p,xe=Je===null?p:Ye,V;e[3]!==b?(V=h(()=>{b()},"K"),e[3]=b,e[4]=V):V=e[4],Ge(V,d==="messages");let ye=h(async()=>{c(null);let i=H;if(i==="")return;let v=null,$e=M.trim();if($e!=="")try{v=JSON.parse($e)}catch{c(s("Body must be valid JSON."));return}let Ae,ze=Q.trim();if(ze!==""){let P=Number(ze);if(!Number.isFinite(P)||P<0){c(s("Delay must be a non-negative number of seconds."));return}Ae=P}if(K&&!Array.isArray(v)){c(s("Batch mode needs a JSON array body \u2014 each element is enqueued as one message."));return}Oe(!0);let at=K?{batch:v,delaySeconds:Ae,exportName:i}:{body:v,delaySeconds:Ae,exportName:i};try{await o.query(lt,at,ce("")),b()}catch(P){c(me(P))}Oe(!1)},"me"),X;e[5]!==o||e[6]!==b?(X=h(async i=>{c(null),Re(i);try{await o.query(ut,{id:i},ce("")),b()}catch(v){c(me(v))}Re(null)},"H"),e[5]=o,e[6]=b,e[7]=X):X=e[7];let Ne=X,Y;e[8]!==o||e[9]!==b?(Y=h(async()=>{c(null);try{await o.query(it,{},ce("")),b()}catch(i){c(me(i))}},"V"),e[8]=o,e[9]=b,e[10]=Y):Y=e[10];let be=Y,Z;e[11]===Symbol.for("react.memo_cache_sentinel")?(Z=h(i=>{let v=i.currentTarget.dataset.tab;(v==="declared"||v==="messages"||v==="send")&&r(v)},"X"),e[11]=Z):Z=e[11];let Ze=Z,ee;e[12]===Symbol.for("react.memo_cache_sentinel")?(ee=h(i=>{j(i.currentTarget.value)},"Y"),e[12]=ee):ee=e[12];let qe=ee,te;e[13]===Symbol.for("react.memo_cache_sentinel")?(te=h(i=>{T(i.currentTarget.value)},"Z"),e[13]=te):te=e[13];let ve=te,ae;e[14]===Symbol.for("react.memo_cache_sentinel")?(ae=h(i=>{_(i.currentTarget.value)},"ee"),e[14]=ae):ae=e[14];let Se=ae,se;e[15]===Symbol.for("react.memo_cache_sentinel")?(se=h(i=>{Xe(i.currentTarget.checked)},"te"),e[15]=se):se=e[15];let we=se,ne;e[16]!==ye?(ne=h(()=>{he(ye())},"ae"),e[16]=ye,e[17]=ne):ne=e[17];let Ce=ne,re;e[18]!==Ne?(re=h(i=>{let{id:v}=i.currentTarget.dataset;v!==void 0&&he(Ne(v))},"se"),e[18]=Ne,e[19]=re):re=e[19];let Qe=re,de;e[20]!==be?(de=h(()=>{he(be())},"re"),e[20]=be,e[21]=de):de=e[21];let Ie=de,et="flex flex-col gap-6",tt="lunora-queues-panel",k;e[22]!==s||e[23]!==d?(k=(0,t.jsx)("div",{className:"flex items-center gap-1","data-testid":"queues-tabs",role:"tablist",children:["declared","messages","send"].map(i=>(0,t.jsx)(U,{"aria-selected":d===i,"data-tab":i,"data-testid":`queues-tab-${i}`,onClick:Ze,role:"tab",size:"sm",type:"button",variant:d===i?"secondary":"ghost",children:pt(i,s)},i))}),e[22]=s,e[23]=d,e[24]=k):k=e[24];let B;e[25]!==fe||e[26]!==xe?(B=fe!==null&&(0,t.jsx)(Pe,{error:xe,testId:"queues-error"}),e[25]=fe,e[26]=xe,e[27]=B):B=e[27];let Le=D&&(0,t.jsx)(Ke,{icon:(0,t.jsx)("span",{"aria-hidden":"true",className:"text-base leading-none",children:"\u26A0"}),testId:"queues-dlq-warning",variant:"warning",children:(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[L.length>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"font-medium",children:s("No dead-letter queue on {queues}.",{queues:L.map(vt).join(", ")})}),(0,t.jsx)("p",{className:"text-muted-foreground",children:s("Exhausted messages are dropped after retries. Add a deadLetterQueue to capture them.")})]}),I>0&&(0,t.jsx)("p",{className:L.length>0?"text-muted-foreground":"font-medium",children:I===1?s("1 message was recently dead-lettered."):s("{count} messages were recently dead-lettered.",{count:I})})]})}),O;e[28]!==S||e[29]!==g||e[30]!==d?(O=d==="declared"&&(0,t.jsx)(gt,{loaded:g!==void 0,queues:S}),e[28]=S,e[29]=g,e[30]=d,e[31]=O):O=e[31];let R;e[32]!==E||e[33]!==x||e[34]!==Ie||e[35]!==Qe||e[36]!==ge||e[37]!==d?(R=d==="messages"&&(0,t.jsx)(xt,{hasError:x!==null,messages:E,onClear:Ie,onReplay:Qe,replayingId:ge}),e[32]=E,e[33]=x,e[34]=Ie,e[35]=Qe,e[36]=ge,e[37]=d,e[38]=R):R=e[38];let J;e[39]!==K||e[40]!==M||e[41]!==Q||e[42]!==we||e[43]!==ve||e[44]!==Se||e[45]!==qe||e[46]!==Ce||e[47]!==S||e[48]!==H||e[49]!==pe||e[50]!==d?(J=d==="send"&&(0,t.jsx)(yt,{batchMode:K,bodyText:M,delayText:Q,onBatchModeChange:we,onBodyChange:ve,onDelayChange:Se,onSelectExport:qe,onSend:Ce,queues:S,selectedExportName:H,sending:pe}),e[39]=K,e[40]=M,e[41]=Q,e[42]=we,e[43]=ve,e[44]=Se,e[45]=qe,e[46]=Ce,e[47]=S,e[48]=H,e[49]=pe,e[50]=d,e[51]=J):J=e[51];let oe;return e[52]!==k||e[53]!==B||e[54]!==Le||e[55]!==O||e[56]!==R||e[57]!==J?(oe=(0,t.jsxs)("div",{className:et,"data-testid":tt,children:[k,B,Le,O,R,J]}),e[52]=k,e[53]=B,e[54]=Le,e[55]=O,e[56]=R,e[57]=J,e[58]=oe):oe=e[58],oe},"Bt");function Nt(n){return(0,t.jsxs)(G,{"data-testid":`queues-row-${n.exportName}`,children:[(0,t.jsx)(C,{className:"font-mono text-xs",children:n.exportName}),(0,t.jsx)(C,{className:"font-mono text-xs text-muted-foreground",children:n.name}),(0,t.jsx)(C,{className:"font-mono text-xs text-muted-foreground",children:n.mode}),(0,t.jsx)(C,{className:"font-mono text-xs text-muted-foreground",children:n.binding}),(0,t.jsx)(C,{className:"font-mono text-xs text-muted-foreground",children:n.deadLetterQueue??"\u2014"})]},n.exportName)}h(Nt,"ft");function bt(n){return(0,t.jsx)("option",{value:n.exportName,children:n.exportName},n.exportName)}h(bt,"xt");function qt(n,e){return n.exportName.localeCompare(e.exportName)}h(qt,"yt");function vt(n){return n.name}h(vt,"Nt");export{Jt as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as i,e as v,g as j,h as I,j as k}from"./chunk-
|
|
1
|
+
import{a as i,e as v,g as j,h as I,j as k}from"./chunk-3XIESWL4.js";var y=v(j(),1);var h=v(I(),1);var z={dialog:"fixed inset-0 z-[1000] flex justify-center bg-black/20 pt-[10vh]",drawer:"fixed inset-0 z-[1000] flex justify-end bg-black/20"},C={dialog:"flex h-fit w-[min(28rem,92vw)] flex-col gap-3 rounded-lg border border-border bg-background p-4 shadow-xl",drawer:"flex h-full w-[min(34rem,100vw)] flex-col gap-4 overflow-auto border-l border-border bg-background p-4 shadow-xl"},D=i(N=>{let e=(0,y.c)(18),{className:n,children:c,label:b,onClose:r,panelTestId:f,testId:g,variant:u}=N,o;e[0]!==r?(o=i(s=>{s.target===s.currentTarget&&r()},"t"),e[0]=r,e[1]=o):o=e[1];let m=o,t;e[2]!==r?(t=i(s=>{s.key==="Escape"&&r()},"a"),e[2]=r,e[3]=t):t=e[3];let p=t,x=z[u],w=C[u],l;e[4]!==n||e[5]!==w?(l=k(w,n),e[4]=n,e[5]=w,e[6]=l):l=e[6];let a;e[7]!==c||e[8]!==b||e[9]!==f||e[10]!==l?(a=(0,h.jsx)("div",{"aria-label":b,className:l,"data-testid":f,role:"dialog",children:c}),e[7]=c,e[8]=b,e[9]=f,e[10]=l,e[11]=a):a=e[11];let d;return e[12]!==m||e[13]!==p||e[14]!==x||e[15]!==a||e[16]!==g?(d=(0,h.jsx)("div",{className:x,"data-testid":g,onClick:m,onKeyDown:p,role:"presentation",children:a}),e[12]=m,e[13]=p,e[14]=x,e[15]=a,e[16]=g,e[17]=d):d=e[17],d},"I");export{D as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as yt}from"./chunk-6CLVIOCB.js";import{a as pt,b as bt,c as vt,d as Nt,e as Ve}from"./chunk-RE6UWCMG.js";import{a as xt}from"./chunk-ZMFZRGAN.js";import{a as ut,b as ht,c as gt,d as ft,e as je}from"./chunk-UNDFOYRI.js";import"./chunk-HA34GYEX.js";import{a as dt}from"./chunk-6I62RSI5.js";import{e as mt}from"./chunk-SKHEGARW.js";import"./chunk-PR2SE2MD.js";import"./chunk-CZEUVNCQ.js";import"./chunk-PWDMXMRD.js";import"./chunk-YNBJ6ICE.js";import"./chunk-C4O5UR4Y.js";import"./chunk-OTJOI23O.js";import"./chunk-SEDZDNQF.js";import"./chunk-TYTJDFX2.js";import{e as tt}from"./chunk-6UYILUSX.js";import{a as ct}from"./chunk-YQ5PILIJ.js";import"./chunk-KSRXMTBV.js";import{b as Ke}from"./chunk-SKJZDOHG.js";import{a as Ue,b as Be,c as Ge,d as Re,e as te,f as L}from"./chunk-Q5WXTZWX.js";import{a as de,b as Oe,c as Fe,d as rt,e as he}from"./chunk-JKPK25JO.js";import"./chunk-KOC5KV3E.js";import{a as ot}from"./chunk-V66TSUKV.js";import{a as nt,b as it}from"./chunk-UWF5DOGV.js";import"./chunk-PTTDIYGP.js";import"./chunk-7Z5QEFR4.js";import"./chunk-46IB4C4Q.js";import{c as He}from"./chunk-UY2Y5CXB.js";import"./chunk-ZFWEPGWG.js";import{b as Qe}from"./chunk-K5PFWU5J.js";import"./chunk-4FNHHFWR.js";import{a as De}from"./chunk-GXZAXNZI.js";import{f as et}from"./chunk-KJTLW5W2.js";import"./chunk-UREY4GLG.js";import{d as Te,f as at,g as lt,h as st,m as We,p as Le}from"./chunk-KLLYGWNF.js";import"./chunk-UDZY7MKE.js";import{a as i,e as Je,f as $t,g as qt,h as kt}from"./chunk-UHHTEBC3.js";var Ce=Je(qt(),1);var T=Je($t(),1);var t=Je(kt(),1);var _t=i((s,e)=>s<e?-1:s>e?1:0,"_t"),Ye=i(s=>{if(s===void 0)return"null";if(typeof s=="bigint")throw new TypeError("stableStringify: cannot use a bigint in a stable JSON cache key \u2014 pass it as a string, or use stableWireKey");if(s===null||typeof s!="object")return JSON.stringify(s);if(Array.isArray(s))return`[${s.map(x=>Ye(x)).join(",")}]`;let e=Object.getPrototypeOf(s);if(e!==null&&e!==Object.prototype){let x=s.constructor?.name??"value";throw new TypeError(`stableStringify: cannot use a ${x} in a stable JSON cache key \u2014 only plain objects, arrays, and JSON primitives are supported (wire-typed values key via stableWireKey)`)}let l=s,r=Object.keys(l).toSorted(_t),a=[];for(let x of r){let p=l[x];p!==void 0&&a.push(`${JSON.stringify(x)}:${Ye(p)}`)}return`{${a.join(",")}}`},"Be"),wt=i((s,e,l)=>`${s}:${e}:${Ye(l??{})}`,"rt"),St=i((s,e)=>s==="gauge"?e.last:s==="histogram"?e.sum/Math.max(1,e.count):e.sum,"at"),Mt=i((s,e)=>St(s,e),"Mt"),It=i(s=>St(s.kind,s),"It"),Xe=i(s=>Number.isInteger(s)?s.toLocaleString():s.toLocaleString(void 0,{maximumFractionDigits:2}),"Qe"),Ct=i(s=>Array.isArray(s?.series)?s.series:[],"Ft"),Tt=i(s=>{let e=new Map;if(!Array.isArray(s?.series))return e;for(let l of s.series)e.set(wt(l.kind,l.name,l.attributes),l.points);return e},"Ct"),Ot={counter:"secondary",gauge:"default",histogram:"outline"},Ft=i(s=>{let e=(0,Ce.c)(18),{name:l,onOpenTrace:r,traceId:a}=s,x=Te();if(a===void 0){let c;return e[0]===Symbol.for("react.memo_cache_sentinel")?(c=(0,t.jsx)("span",{className:"text-muted-foreground",children:"\u2014"}),e[0]=c):c=e[0],c}let p;e[1]!==a?(p=a.slice(0,8),e[1]=a,e[2]=p):p=e[2];let g=p;if(r===void 0){let c=`mt-instrument-trace-${l}`,N;return e[3]!==g||e[4]!==c||e[5]!==a?(N=(0,t.jsx)("span",{className:"text-muted-foreground","data-testid":c,title:a,children:g}),e[3]=g,e[4]=c,e[5]=a,e[6]=N):N=e[6],N}let v=`mt-instrument-trace-${l}`,u;e[7]!==r||e[8]!==a?(u=i(()=>{r(a)},"u"),e[7]=r,e[8]=a,e[9]=u):u=e[9];let b;e[10]!==x||e[11]!==a?(b=x("Open the exemplar trace {trace}",{trace:a}),e[10]=x,e[11]=a,e[12]=b):b=e[12];let h;return e[13]!==g||e[14]!==v||e[15]!==u||e[16]!==b?(h=(0,t.jsx)("button",{className:"text-primary underline-offset-4 hover:underline","data-testid":v,onClick:u,title:b,type:"button",children:g}),e[13]=g,e[14]=v,e[15]=u,e[16]=b,e[17]=h):h=e[17],h},"Ot"),Dt=i(s=>{let e=(0,Ce.c)(92),{onOpenTrace:l,shardKey:r}=s,a=Te(),x;e[0]===Symbol.for("react.memo_cache_sentinel")?(x={},e[0]=x):x=e[0];let p;e[1]!==r?(p={live:!0,shardKey:r},e[1]=r,e[2]=p):p=e[2];let{data:g,error:v}=Ke(De.getMetricSeries,x,p),u;e[3]===Symbol.for("react.memo_cache_sentinel")?(u={},e[3]=u):u=e[3];let b;e[4]!==r?(b={live:!0,shardKey:r},e[4]=r,e[5]=b):b=e[5];let{data:h}=Ke(De.getMetricHistory,u,b),c,N,re,O,K,E,o,M,le,F,q,j,f;if(e[6]!==g||e[7]!==v||e[8]!==h||e[9]!==l||e[10]!==a){M=Symbol.for("react.early_return_sentinel");e:{let I=Ct(g);if(v!==null||I.length===0){M=null;break e}let se=Tt(h),P;e[24]!==a?(P=i(m=>a(m==="counter"?"Counter":m==="gauge"?"Gauge":"Histogram"),"j"),e[24]=a,e[25]=P):P=e[25];let ne=P;K="flex flex-col gap-2",E="mt-instruments";let A;e[26]!==a?(A=a("Instruments"),e[26]=a,e[27]=A):A=e[27],e[28]!==A?(o=(0,t.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:A}),e[28]=A,e[29]=o):o=e[29],O=de,f="overflow-hidden py-0",re=he,j="px-0",N=Ue,F="mt-instruments-table";let n;e[30]!==a?(n=a("name"),e[30]=a,e[31]=n):n=e[31];let S;e[32]!==n?(S=(0,t.jsx)(te,{children:n}),e[32]=n,e[33]=S):S=e[33];let y;e[34]!==a?(y=a("kind"),e[34]=a,e[35]=y):y=e[35];let w;e[36]!==y?(w=(0,t.jsx)(te,{children:y}),e[36]=y,e[37]=w):w=e[37];let J;e[38]!==a?(J=a("value"),e[38]=a,e[39]=J):J=e[39];let Q;e[40]!==J?(Q=(0,t.jsx)(te,{className:"text-right",children:J}),e[40]=J,e[41]=Q):Q=e[41];let H;e[42]!==a?(H=a("count"),e[42]=a,e[43]=H):H=e[43];let W;e[44]!==H?(W=(0,t.jsx)(te,{className:"text-right",children:H}),e[44]=H,e[45]=W):W=e[45];let U;e[46]!==a?(U=a("range"),e[46]=a,e[47]=U):U=e[47];let B;e[48]!==U?(B=(0,t.jsx)(te,{className:"text-right",children:U}),e[48]=U,e[49]=B):B=e[49];let G;e[50]!==a?(G=a("trend"),e[50]=a,e[51]=G):G=e[51];let V;e[52]!==G?(V=(0,t.jsx)(te,{children:G}),e[52]=G,e[53]=V):V=e[53];let X;e[54]!==a?(X=a("trace"),e[54]=a,e[55]=X):X=e[55];let Z;e[56]!==X?(Z=(0,t.jsx)(te,{children:X}),e[56]=X,e[57]=Z):Z=e[57];let Y;e[58]!==a?(Y=a("dimensions"),e[58]=a,e[59]=Y):Y=e[59];let ee;e[60]!==Y?(ee=(0,t.jsx)(te,{children:Y}),e[60]=Y,e[61]=ee):ee=e[61],e[62]!==S||e[63]!==w||e[64]!==Q||e[65]!==W||e[66]!==B||e[67]!==V||e[68]!==Z||e[69]!==ee?(q=(0,t.jsx)(Be,{children:(0,t.jsxs)(Re,{children:[S,w,Q,W,B,V,Z,ee]})}),e[62]=S,e[63]=w,e[64]=Q,e[65]=W,e[66]=B,e[67]=V,e[68]=Z,e[69]=ee,e[70]=q):q=e[70],c=Ge,le=I.map(m=>{let ie=xt(m.attributes),oe=wt(m.kind,m.name,m.attributes),ce=(se.get(oe)??[]).map(me=>Mt(m.kind,me));return(0,t.jsxs)(Re,{"data-testid":`mt-instrument-${m.name}`,children:[(0,t.jsx)(L,{className:"font-mono text-xs",title:m.functionPath,children:m.name}),(0,t.jsx)(L,{children:(0,t.jsx)(Qe,{variant:Ot[m.kind],children:ne(m.kind)})}),(0,t.jsx)(L,{className:"text-right font-mono tabular-nums","data-testid":`mt-instrument-value-${m.name}`,children:Xe(It(m))}),(0,t.jsx)(L,{className:"text-right tabular-nums text-muted-foreground",children:m.count.toLocaleString()}),(0,t.jsx)(L,{className:"text-right font-mono text-xs tabular-nums text-muted-foreground",children:m.min===m.max?"\u2014":`${Xe(m.min)}\u2013${Xe(m.max)}`}),(0,t.jsx)(L,{children:ce.length>=2?(0,t.jsx)(Ve,{ariaLabel:a("{name} trend",{name:m.name}),className:"h-6 w-24 text-foreground",series:ce,testId:`mt-instrument-trend-${m.name}`}):(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:"\u2014"})}),(0,t.jsx)(L,{className:"font-mono text-xs",children:(0,t.jsx)(Ft,{name:m.name,onOpenTrace:l,traceId:m.exemplarTraceId})}),(0,t.jsx)(L,{className:"max-w-64 truncate font-mono text-xs text-muted-foreground",title:ie,children:ie===""?"\u2014":ie})]},oe)})}e[6]=g,e[7]=v,e[8]=h,e[9]=l,e[10]=a,e[11]=c,e[12]=N,e[13]=re,e[14]=O,e[15]=K,e[16]=E,e[17]=o,e[18]=M,e[19]=le,e[20]=F,e[21]=q,e[22]=j,e[23]=f}else c=e[11],N=e[12],re=e[13],O=e[14],K=e[15],E=e[16],o=e[17],M=e[18],le=e[19],F=e[20],q=e[21],j=e[22],f=e[23];if(M!==Symbol.for("react.early_return_sentinel"))return M;let D;e[71]!==c||e[72]!==le?(D=(0,t.jsx)(c,{children:le}),e[71]=c,e[72]=le,e[73]=D):D=e[73];let z;e[74]!==N||e[75]!==D||e[76]!==F||e[77]!==q?(z=(0,t.jsxs)(N,{"data-testid":F,children:[q,D]}),e[74]=N,e[75]=D,e[76]=F,e[77]=q,e[78]=z):z=e[78];let k;e[79]!==re||e[80]!==z||e[81]!==j?(k=(0,t.jsx)(re,{className:j,children:z}),e[79]=re,e[80]=z,e[81]=j,e[82]=k):k=e[82];let R;e[83]!==O||e[84]!==k||e[85]!==f?(R=(0,t.jsx)(O,{className:f,children:k}),e[83]=O,e[84]=k,e[85]=f,e[86]=R):R=e[86];let _;return e[87]!==K||e[88]!==E||e[89]!==o||e[90]!==R?(_=(0,t.jsxs)("section",{className:K,"data-testid":E,children:[o,R]}),e[87]=K,e[88]=E,e[89]=o,e[90]=R,e[91]=_):_=e[91],_},"Rt"),Pe=i(s=>s>=100?"critical":s>=50?"warning":"good","je"),Ze=i(s=>s<1?`${(s*1e3).toFixed(0)}\u03BCs`:s<1e3?`${s.toFixed(1)}ms`:`${(s/1e3).toFixed(2)}s`,"Ue"),Ee=i(s=>s>=1e9?`${(s/1e9).toFixed(1)}B`:s>=1e6?`${(s/1e6).toFixed(1)}M`:s>=1e3?`${(s/1e3).toFixed(1)}K`:s.toLocaleString(),"Le"),Rt=i(s=>{let e=(0,Ce.c)(3),{level:l}=s;if(l==="critical"){let a;return e[0]===Symbol.for("react.memo_cache_sentinel")?(a=(0,t.jsx)(Qe,{variant:"destructive",children:"Slow"}),e[0]=a):a=e[0],a}if(l==="warning"){let a;return e[1]===Symbol.for("react.memo_cache_sentinel")?(a=(0,t.jsx)("span",{className:"inline-flex items-center gap-1 rounded-md border border-transparent bg-warning/10 px-2 py-0.5 text-xs font-medium text-warning",children:"Moderate"}),e[1]=a):a=e[1],a}let r;return e[2]===Symbol.for("react.memo_cache_sentinel")?(r=(0,t.jsx)("span",{className:"inline-flex items-center gap-1 rounded-md border border-transparent bg-success/10 px-2 py-0.5 text-xs font-medium text-success",children:"Fast"}),e[2]=r):r=e[2],r},"Dt"),jt=i(s=>{let e=(0,Ce.c)(152),{queryStats:l}=s,r=Te(),[a,x]=(0,T.useState)("totalTime"),p;e[0]===Symbol.for("react.memo_cache_sentinel")?(p=new Set,e[0]=p):p=e[0];let[g,v]=(0,T.useState)(p),u;e[1]===Symbol.for("react.memo_cache_sentinel")?(u=i(d=>{d!==null&&x(d)},"u"),e[1]=u):u=e[1];let b=u,h;if(e[2]!==l||e[3]!==a){h=[...l];let d;e[5]!==a?(d=i((C,$)=>{switch(a){case"avgTime":return $.avgDurationMs-C.avgDurationMs;case"execCount":return $.execCount-C.execCount;case"rowsRead":return $.rowsRead-C.rowsRead;default:return $.totalDurationMs-C.totalDurationMs}},"d"),e[5]=a,e[6]=d):d=e[6],h.sort(d),e[2]=l,e[3]=a,e[4]=h}else h=e[4];let c=h,N;e[7]!==l?(N=l.filter(zt),e[7]=l,e[8]=N):N=e[8];let re=N.length,O;e[9]!==l?(O=l.filter(At),e[9]=l,e[10]=O):O=e[10];let K=O.length,E;e[11]!==l?(E=l.filter(Lt),e[11]=l,e[12]=E):E=e[12];let o=E.length,M;e[13]===Symbol.for("react.memo_cache_sentinel")?(M=i(d=>{v(C=>{let $=new Set(C);return $.has(d)?$.delete(d):$.add(d),$})},"M"),e[13]=M):M=e[13];let le=M;if(l.length===0){let d;e[14]!==r?(d=r("No query insights yet"),e[14]=r,e[15]=d):d=e[15];let C;e[16]!==d?(C=(0,t.jsx)("p",{className:"text-lg font-medium","data-testid":"qi-empty",children:d}),e[16]=d,e[17]=C):C=e[17];let $;e[18]!==r?($=r("Query insights appear once statements are executed against this shard."),e[18]=r,e[19]=$):$=e[19];let ue;e[20]!==$?(ue=(0,t.jsx)("p",{className:"mt-1 text-sm",children:$}),e[20]=$,e[21]=ue):ue=e[21];let Ae;return e[22]!==ue||e[23]!==C?(Ae=(0,t.jsx)(de,{children:(0,t.jsx)(he,{className:"py-12",children:(0,t.jsxs)("div",{className:"text-center text-muted-foreground",children:[C,ue]})})}),e[22]=ue,e[23]=C,e[24]=Ae):Ae=e[24],Ae}let F;e[25]!==r?(F=r("Critical queries"),e[25]=r,e[26]=F):F=e[26];let q;e[27]!==F?(q=(0,t.jsx)(Oe,{className:"pb-2",children:(0,t.jsx)(Fe,{className:"text-sm font-medium",children:F})}),e[27]=F,e[28]=q):q=e[28];let j;e[29]!==re?(j=(0,t.jsx)("div",{className:"text-2xl font-bold text-destructive","data-testid":"qi-critical",children:re}),e[29]=re,e[30]=j):j=e[30];let f;e[31]!==r?(f=r(">100ms avg execution"),e[31]=r,e[32]=f):f=e[32];let D;e[33]!==f?(D=(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:f}),e[33]=f,e[34]=D):D=e[34];let z;e[35]!==D||e[36]!==j?(z=(0,t.jsxs)(he,{children:[j,D]}),e[35]=D,e[36]=j,e[37]=z):z=e[37];let k;e[38]!==z||e[39]!==q?(k=(0,t.jsxs)(de,{children:[q,z]}),e[38]=z,e[39]=q,e[40]=k):k=e[40];let R;e[41]!==r?(R=r("Moderate queries"),e[41]=r,e[42]=R):R=e[42];let _;e[43]!==R?(_=(0,t.jsx)(Oe,{className:"pb-2",children:(0,t.jsx)(Fe,{className:"text-sm font-medium",children:R})}),e[43]=R,e[44]=_):_=e[44];let I;e[45]!==K?(I=(0,t.jsx)("div",{className:"text-2xl font-bold text-warning","data-testid":"qi-moderate",children:K}),e[45]=K,e[46]=I):I=e[46];let se;e[47]!==r?(se=r("50\u2013100ms avg execution"),e[47]=r,e[48]=se):se=e[48];let P;e[49]!==se?(P=(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:se}),e[49]=se,e[50]=P):P=e[50];let ne;e[51]!==I||e[52]!==P?(ne=(0,t.jsxs)(he,{children:[I,P]}),e[51]=I,e[52]=P,e[53]=ne):ne=e[53];let A;e[54]!==_||e[55]!==ne?(A=(0,t.jsxs)(de,{children:[_,ne]}),e[54]=_,e[55]=ne,e[56]=A):A=e[56];let n;e[57]!==r?(n=r("Fast queries"),e[57]=r,e[58]=n):n=e[58];let S;e[59]!==n?(S=(0,t.jsx)(Oe,{className:"pb-2",children:(0,t.jsx)(Fe,{className:"text-sm font-medium",children:n})}),e[59]=n,e[60]=S):S=e[60];let y;e[61]!==o?(y=(0,t.jsx)("div",{className:"text-2xl font-bold text-success","data-testid":"qi-fast",children:o}),e[61]=o,e[62]=y):y=e[62];let w;e[63]!==r?(w=r("<50ms avg execution"),e[63]=r,e[64]=w):w=e[64];let J;e[65]!==w?(J=(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:w}),e[65]=w,e[66]=J):J=e[66];let Q;e[67]!==y||e[68]!==J?(Q=(0,t.jsxs)(he,{children:[y,J]}),e[67]=y,e[68]=J,e[69]=Q):Q=e[69];let H;e[70]!==S||e[71]!==Q?(H=(0,t.jsxs)(de,{children:[S,Q]}),e[70]=S,e[71]=Q,e[72]=H):H=e[72];let W;e[73]!==k||e[74]!==A||e[75]!==H?(W=(0,t.jsxs)("div",{className:"grid gap-4 md:grid-cols-3",children:[k,A,H]}),e[73]=k,e[74]=A,e[75]=H,e[76]=W):W=e[76];let U;e[77]!==r?(U=r("Query leaderboard"),e[77]=r,e[78]=U):U=e[78];let B;e[79]!==U?(B=(0,t.jsx)("h3",{className:"text-lg font-semibold",children:U}),e[79]=U,e[80]=B):B=e[80];let G;e[81]!==a||e[82]!==r?(G=r("Slow queries sorted by {sortField}",{sortField:r(a)}),e[81]=a,e[82]=r,e[83]=G):G=e[83];let V;e[84]!==G?(V=(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:G}),e[84]=G,e[85]=V):V=e[85];let X;e[86]!==B||e[87]!==V?(X=(0,t.jsxs)("div",{children:[B,V]}),e[86]=B,e[87]=V,e[88]=X):X=e[88];let Z;e[89]!==r?(Z=r("Sort by"),e[89]=r,e[90]=Z):Z=e[90];let Y;e[91]!==Z?(Y=(0,t.jsx)("span",{className:"text-sm text-muted-foreground",children:Z}),e[91]=Z,e[92]=Y):Y=e[92];let ee;e[93]!==r?(ee=r("Sort queries by"),e[93]=r,e[94]=ee):ee=e[94];let m;e[95]===Symbol.for("react.memo_cache_sentinel")?(m=(0,t.jsx)(ht,{}),e[95]=m):m=e[95];let ie;e[96]!==ee?(ie=(0,t.jsx)(gt,{"aria-label":ee,className:"w-[140px]","data-testid":"qi-sort",children:m}),e[96]=ee,e[97]=ie):ie=e[97];let oe;e[98]!==r?(oe=r("Total time"),e[98]=r,e[99]=oe):oe=e[99];let ce;e[100]!==oe?(ce=(0,t.jsx)(je,{value:"totalTime",children:oe}),e[100]=oe,e[101]=ce):ce=e[101];let me;e[102]!==r?(me=r("Avg time"),e[102]=r,e[103]=me):me=e[103];let ge;e[104]!==me?(ge=(0,t.jsx)(je,{value:"avgTime",children:me}),e[104]=me,e[105]=ge):ge=e[105];let fe;e[106]!==r?(fe=r("Execution count"),e[106]=r,e[107]=fe):fe=e[107];let xe;e[108]!==fe?(xe=(0,t.jsx)(je,{value:"execCount",children:fe}),e[108]=fe,e[109]=xe):xe=e[109];let pe;e[110]!==r?(pe=r("Rows read"),e[110]=r,e[111]=pe):pe=e[111];let be;e[112]!==pe?(be=(0,t.jsx)(je,{value:"rowsRead",children:pe}),e[112]=pe,e[113]=be):be=e[113];let ve;e[114]!==ce||e[115]!==ge||e[116]!==xe||e[117]!==be?(ve=(0,t.jsxs)(ft,{children:[ce,ge,xe,be]}),e[114]=ce,e[115]=ge,e[116]=xe,e[117]=be,e[118]=ve):ve=e[118];let Ne;e[119]!==a||e[120]!==ie||e[121]!==ve?(Ne=(0,t.jsxs)(ut,{onValueChange:b,value:a,children:[ie,ve]}),e[119]=a,e[120]=ie,e[121]=ve,e[122]=Ne):Ne=e[122];let ye;e[123]!==Y||e[124]!==Ne?(ye=(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[Y,Ne]}),e[123]=Y,e[124]=Ne,e[125]=ye):ye=e[125];let we;e[126]!==X||e[127]!==ye?(we=(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[X,ye]}),e[126]=X,e[127]=ye,e[128]=we):we=e[128];let Se;e[129]!==r?(Se=r("Statements"),e[129]=r,e[130]=Se):Se=e[130];let $e;e[131]!==Se?($e=(0,t.jsx)(Fe,{children:Se}),e[131]=Se,e[132]=$e):$e=e[132];let qe;e[133]!==c.length||e[134]!==r?(qe=r("{count} tracked statements",{count:c.length}),e[133]=c.length,e[134]=r,e[135]=qe):qe=e[135];let ke;e[136]!==qe?(ke=(0,t.jsx)(rt,{children:qe}),e[136]=qe,e[137]=ke):ke=e[137];let _e;e[138]!==$e||e[139]!==ke?(_e=(0,t.jsxs)(Oe,{children:[$e,ke]}),e[138]=$e,e[139]=ke,e[140]=_e):_e=e[140];let Me;e[141]!==g||e[142]!==c||e[143]!==r?(Me=(0,t.jsx)(he,{children:(0,t.jsx)("div",{className:"space-y-2",children:c.map(d=>{let C=d.normalizedSql,$=g.has(C),ue=Pe(d.avgDurationMs);return(0,t.jsxs)("div",{className:"overflow-hidden rounded-lg border","data-testid":"qi-row",children:[(0,t.jsxs)("button",{"aria-expanded":$,className:"flex w-full items-center justify-between p-3 text-left transition-colors hover:bg-muted/50",onClick:i(()=>{le(C)},"onClick"),type:"button",children:[(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-3",children:[(0,t.jsx)(Rt,{level:ue}),(0,t.jsx)("span",{className:"max-w-[300px] truncate font-mono text-sm lg:max-w-[500px]",children:d.normalizedSql})]}),(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-4",children:[(0,t.jsxs)("div",{className:"text-right",children:[(0,t.jsx)("div",{className:"text-sm font-medium",children:Ze(d.totalDurationMs)}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:r("total")})]}),(0,t.jsxs)("div",{className:"text-right",children:[(0,t.jsx)("div",{className:"text-sm font-medium",children:Ze(d.avgDurationMs)}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:r("avg")})]}),(0,t.jsxs)("div",{className:"text-right",children:[(0,t.jsx)("div",{className:"text-sm font-medium",children:Ee(d.execCount)}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:r("calls")})]})]})]}),$&&(0,t.jsxs)("div",{className:"space-y-3 border-t bg-muted/30 p-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-2 text-sm font-medium",children:r("Full statement")}),(0,t.jsx)("pre",{className:"overflow-x-auto rounded-md bg-muted p-3 font-mono text-sm whitespace-pre-wrap break-all",children:d.normalizedSql})]}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4 text-sm md:grid-cols-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:r("Exec count")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:Ee(d.execCount)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:r("Total time")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:Ze(d.totalDurationMs)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:r("Rows read")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:Ee(d.rowsRead)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:r("Rows written")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:Ee(d.rowsWritten)})]})]})]})]},C)})})}),e[141]=g,e[142]=c,e[143]=r,e[144]=Me):Me=e[144];let Ie;e[145]!==_e||e[146]!==Me?(Ie=(0,t.jsxs)(de,{children:[_e,Me]}),e[145]=_e,e[146]=Me,e[147]=Ie):Ie=e[147];let ze;return e[148]!==W||e[149]!==we||e[150]!==Ie?(ze=(0,t.jsxs)("div",{className:"space-y-4","data-testid":"qi-root",children:[W,we,Ie]}),e[148]=W,e[149]=we,e[150]=Ie,e[151]=ze):ze=e[151],ze},"Lt");function zt(s){return Pe(s.avgDurationMs)==="critical"}i(zt,"At");function At(s){return Pe(s.avgDurationMs)==="warning"}i(At,"zt");function Lt(s){return Pe(s.avgDurationMs)==="good"}i(Lt,"Et");var Kt=at(De.getMetrics),Et=i(s=>{let e=Math.floor(s/1e3),l=Math.floor(e/3600),r=Math.floor(e%3600/60),a=e%60;return l>0?`${l.toString()}h ${r.toString()}m`:r>0?`${r.toString()}m ${a.toString()}s`:`${a.toString()}s`},"Kt"),Pt=i((s,e)=>s?e:"overview","Pt"),Jt=i((s,e)=>{let l=s+e;return l===0?"\u2014":`${(s/l*100).toFixed(1)}%`},"Jt"),ae=i(s=>{let e=(0,Ce.c)(16),{chart:l,footer:r,label:a,testId:x,value:p}=s,g;e[0]!==a?(g=(0,t.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:a}),e[0]=a,e[1]=g):g=e[1];let v;e[2]!==x||e[3]!==p?(v=(0,t.jsx)("span",{className:"truncate text-2xl font-semibold tabular-nums text-foreground","data-testid":x,children:p}),e[2]=x,e[3]=p,e[4]=v):v=e[4];let u;e[5]!==l||e[6]!==v?(u=(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[v,l]}),e[5]=l,e[6]=v,e[7]=u):u=e[7];let b;e[8]!==g||e[9]!==u?(b=(0,t.jsxs)("div",{className:"flex flex-col gap-2.5 p-4",children:[g,u]}),e[8]=g,e[9]=u,e[10]=b):b=e[10];let h;e[11]!==r?(h=r!=null&&(0,t.jsx)("div",{className:"border-t border-border bg-muted/50 px-4 py-2.5 text-[11px] text-muted-foreground",children:r}),e[11]=r,e[12]=h):h=e[12];let c;return e[13]!==b||e[14]!==h?(c=(0,t.jsxs)(de,{className:"justify-between gap-0 py-0",children:[b,h]}),e[13]=b,e[14]=h,e[15]=c):c=e[15],c},"te"),dr=i(({initialShardKey:s})=>{let e=et(),l=Te(),r=tt(),[a,x]=(0,T.useState)(s??""),[p,g]=(0,T.useState)("overview"),[v,u]=(0,T.useState)([]),b=(0,T.useRef)(null),h=(0,T.useRef)(null),c=(0,T.useRef)(!0);(0,T.useEffect)(()=>(c.current=!0,()=>{c.current=!1}),[]);let N=ct(a.trim(),400),re=i(n=>{yt({shardKey:N,traceId:n}),We(r({to:"/traces"}))},"ee"),{data:O,error:K,liveError:E}=Ke(De.getMetrics,{},{live:!0,shardKey:N}),o=O??null;(0,T.useEffect)(()=>{if(O===void 0)return;it(N);let n=O,S=b.current,y=h.current!==null&&h.current!==n.shard;if(h.current=n.shard,b.current=n.requests,y){u([]);return}S!==null&&n.requests>=S&&u(w=>[...w,n.requests-S].slice(-30))},[O,N]);let[M,le]=(0,T.useState)(null),[F,q]=(0,T.useState)(!1),j=i(async()=>{q(!0);let n=bt(a,nt());try{let S=await Promise.all(n.map(async y=>{try{let w=await e.query(Kt,{},lt(y));return{error:null,metrics:w,shard:y===""?w.shard:y}}catch(w){return{error:st(w),metrics:null,shard:y===""?"__root__":y}}}));c.current&&le(S)}finally{c.current&&q(!1)}},"D"),f=M===null?null:pt(M),D=o===null||o.requests===0?"\u2014":`${(o.errors/o.requests*100).toFixed(1)}%`,z=v.length>0?v.at(-1):0,k=o?vt(o):{p90:0,p95:0},R=i(n=>n<=0?"\u2014":n<1?`${(n*1e3).toFixed(0)}\u03BCs`:n<1e3?`${n.toFixed(1)}ms`:`${(n/1e3).toFixed(2)}s`,"R"),_=(0,T.useMemo)(()=>{if(!o||!("queryStats"in o))return;let n=o.queryStats;if(!(!n||!Array.isArray(n)))return Nt(n)},[o]),I=Pt(_!==void 0,p),se=i(()=>{We(j())},"le"),P=i(()=>{le(null)},"j"),ne=i(()=>{g("overview")},"se"),A=i(()=>{g("query-insights")},"A");return(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-metrics",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)(ot,{onChange:x,testId:"mt-shard-input",value:a}),(0,t.jsx)(dt,{message:E,prefix:"mt"}),(0,t.jsx)(He,{"data-testid":"mt-aggregate",disabled:F,onClick:se,size:"sm",type:"button",variant:"secondary",children:l(F?"Aggregating\u2026":"All shards")}),M!==null&&(0,t.jsx)(He,{"data-testid":"mt-aggregate-clear",onClick:P,size:"sm",type:"button",variant:"ghost",children:l("Hide")}),(0,t.jsx)("a",{className:"text-sm text-primary underline-offset-4 hover:underline","data-testid":"mt-cf-link",href:mt,rel:"noreferrer",target:"_blank",children:l("Open in Cloudflare")})]}),K!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive","data-testid":"mt-error",role:"alert",children:K}),_!==void 0&&(0,t.jsxs)("div",{className:"flex gap-2 border-b","data-testid":"mt-tabs",children:[(0,t.jsx)("button",{className:`pb-2 text-sm font-medium transition-colors ${I==="overview"?"border-b-2 border-primary text-foreground":"text-muted-foreground hover:text-foreground"}`,"data-testid":"mt-tab-overview",onClick:ne,type:"button",children:l("Overview")}),(0,t.jsxs)("button",{className:`pb-2 text-sm font-medium transition-colors ${I==="query-insights"?"border-b-2 border-primary text-foreground":"text-muted-foreground hover:text-foreground"}`,"data-testid":"mt-tab-query-insights",onClick:A,type:"button",children:[l("Query insights"),_.length>0&&(0,t.jsx)("span",{className:"ml-1.5 rounded-full bg-primary/10 px-1.5 py-0.5 text-xs text-primary",children:_.length})]})]}),I==="query-insights"&&_!==void 0&&(0,t.jsx)(jt,{queryStats:_}),I==="overview"&&o!==null&&(0,t.jsxs)("dl",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4","data-testid":"mt-stats",children:[(0,t.jsx)(ae,{chart:v.length>=2?(0,t.jsx)(Ve,{ariaLabel:l("Requests per interval over time"),className:"h-7 w-24 text-foreground",series:v,testId:"mt-sparkline"}):void 0,footer:v.length>=2?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"font-semibold text-foreground",children:`+${z.toLocaleString()}`})," ",l("last interval")]}):(0,t.jsx)("span",{"data-testid":"mt-sparkline-empty",children:l("collecting samples\u2026")}),label:l("Requests"),testId:"mt-requests",value:o.requests}),(0,t.jsx)(ae,{footer:l("{rate} error rate",{rate:D}),label:l("Errors"),testId:"mt-errors",value:(0,t.jsxs)(t.Fragment,{children:[o.errors," (",D,")"]})}),(0,t.jsx)(ae,{footer:k.p90>0?`P90 ${R(k.p90)}`:void 0,label:l("P95 latency"),testId:"mt-p95",value:k.p95>0?R(k.p95):"\u2014"}),(0,t.jsx)(ae,{footer:o.cache===null?void 0:`${o.cache.entries.toLocaleString()} ${l("cache entries")}`,label:l("Database size"),testId:"mt-db-size",value:Le(o.databaseSize)}),(0,t.jsx)(ae,{label:l("Shard"),testId:"mt-shard",value:o.shard}),(0,t.jsx)(ae,{label:l("Uptime"),testId:"mt-uptime",value:Et(o.uptimeMs)}),(0,t.jsx)(ae,{label:l("Cache hit rate"),testId:"mt-cache",value:o.cache===null?l("no cache configured"):l("{rate} ({count} entries)",{count:o.cache.entries,rate:Jt(o.cache.hits,o.cache.misses)})})]}),I==="overview"&&o===null&&null,I==="overview"&&(0,t.jsx)(Dt,{onOpenTrace:re,shardKey:N}),I==="overview"&&f!==null&&M!==null&&(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"mt-aggregate-view",children:[(0,t.jsxs)("dl",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3","data-testid":"mt-aggregate-stats",children:[(0,t.jsx)(ae,{label:l("Shards"),testId:"mt-agg-shards",value:f.failed>0?l("{reachable} reachable, {failed} unreachable",{failed:f.failed,reachable:f.reachable}):l("{reachable} reachable",{reachable:f.reachable})}),(0,t.jsx)(ae,{label:l("Total requests"),testId:"mt-agg-requests",value:f.totalRequests}),(0,t.jsx)(ae,{label:l("Total errors"),testId:"mt-agg-errors",value:f.totalErrors}),(0,t.jsx)(ae,{label:l("Total database size"),testId:"mt-agg-db-size",value:Le(f.totalDatabaseSize)}),(0,t.jsx)(ae,{label:l("Combined cache hit rate"),testId:"mt-agg-cache",value:f.hitRate===null?l("no cache configured"):`${(f.hitRate*100).toFixed(1)}%`})]}),(0,t.jsx)(de,{className:"overflow-hidden py-0",children:(0,t.jsx)(he,{className:"px-0",children:(0,t.jsxs)(Ue,{"data-testid":"mt-agg-table",children:[(0,t.jsx)(Be,{children:(0,t.jsxs)(Re,{children:[(0,t.jsx)(te,{children:l("shard")}),(0,t.jsx)(te,{children:l("requests")}),(0,t.jsx)(te,{children:l("errors")}),(0,t.jsx)(te,{children:l("db size")})]})}),(0,t.jsx)(Ge,{children:M.map(n=>(0,t.jsxs)(Re,{"data-testid":`mt-agg-row-${n.shard}`,children:[(0,t.jsx)(L,{children:n.shard}),n.metrics===null?(0,t.jsx)(L,{className:"text-destructive",colSpan:3,children:n.error??l("unreachable")}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(L,{className:"tabular-nums",children:n.metrics.requests}),(0,t.jsx)(L,{className:"tabular-nums",children:n.metrics.errors}),(0,t.jsx)(L,{className:"tabular-nums",children:Le(n.metrics.databaseSize)})]})]},n.shard))})]})})})]})]})},"hr");export{dr as MetricsPanel};
|
|
1
|
+
import{a as yt}from"./chunk-KUVMORDQ.js";import{a as pt,b as bt,c as vt,d as Nt,e as Ve}from"./chunk-5L2MD6F6.js";import{a as xt}from"./chunk-QWGT25SE.js";import{a as ut,b as ht,c as gt,d as ft,e as je}from"./chunk-3RTTXLMU.js";import"./chunk-2PJNAWB3.js";import{a as dt}from"./chunk-X2FQ6B5V.js";import{e as mt}from"./chunk-SKHEGARW.js";import"./chunk-SD4BERSA.js";import"./chunk-IC4L6G56.js";import"./chunk-7YEFOSPH.js";import"./chunk-BGBLQ563.js";import"./chunk-IVFHIQOT.js";import"./chunk-PF7V3G2Z.js";import"./chunk-4UOFSGUS.js";import"./chunk-ILNELDFC.js";import{e as tt}from"./chunk-SMIESS7P.js";import{a as ct}from"./chunk-LFKCLLPT.js";import"./chunk-T6VMSOBB.js";import{b as Ke}from"./chunk-OWADN6BI.js";import{a as Ue,b as Be,c as Ge,d as Re,e as te,f as L}from"./chunk-MIQTKZAR.js";import{a as de,b as Oe,c as Fe,d as rt,e as he}from"./chunk-UZERI5YC.js";import"./chunk-QBWRC5YX.js";import{a as ot}from"./chunk-LFXFP4IF.js";import{a as nt,b as it}from"./chunk-GRL5MG3Z.js";import"./chunk-7T7UOTYK.js";import"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import{c as He}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import{b as Qe}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as De}from"./chunk-GXZAXNZI.js";import{f as et}from"./chunk-LWECXQWP.js";import"./chunk-XBDKZZ67.js";import{d as Te,f as at,g as lt,h as st,m as We,p as Le}from"./chunk-4CGALXS3.js";import"./chunk-LE56LPNH.js";import{a as i,e as Je,f as $t,g as qt,h as kt}from"./chunk-3XIESWL4.js";var Ce=Je(qt(),1);var T=Je($t(),1);var t=Je(kt(),1);var _t=i((s,e)=>s<e?-1:s>e?1:0,"_t"),Ye=i(s=>{if(s===void 0)return"null";if(typeof s=="bigint")throw new TypeError("stableStringify: cannot use a bigint in a stable JSON cache key \u2014 pass it as a string, or use stableWireKey");if(s===null||typeof s!="object")return JSON.stringify(s);if(Array.isArray(s))return`[${s.map(x=>Ye(x)).join(",")}]`;let e=Object.getPrototypeOf(s);if(e!==null&&e!==Object.prototype){let x=s.constructor?.name??"value";throw new TypeError(`stableStringify: cannot use a ${x} in a stable JSON cache key \u2014 only plain objects, arrays, and JSON primitives are supported (wire-typed values key via stableWireKey)`)}let l=s,r=Object.keys(l).toSorted(_t),a=[];for(let x of r){let p=l[x];p!==void 0&&a.push(`${JSON.stringify(x)}:${Ye(p)}`)}return`{${a.join(",")}}`},"Be"),wt=i((s,e,l)=>`${s}:${e}:${Ye(l??{})}`,"rt"),St=i((s,e)=>s==="gauge"?e.last:s==="histogram"?e.sum/Math.max(1,e.count):e.sum,"at"),Mt=i((s,e)=>St(s,e),"Mt"),It=i(s=>St(s.kind,s),"It"),Xe=i(s=>Number.isInteger(s)?s.toLocaleString():s.toLocaleString(void 0,{maximumFractionDigits:2}),"Qe"),Ct=i(s=>Array.isArray(s?.series)?s.series:[],"Ft"),Tt=i(s=>{let e=new Map;if(!Array.isArray(s?.series))return e;for(let l of s.series)e.set(wt(l.kind,l.name,l.attributes),l.points);return e},"Ct"),Ot={counter:"secondary",gauge:"default",histogram:"outline"},Ft=i(s=>{let e=(0,Ce.c)(18),{name:l,onOpenTrace:r,traceId:a}=s,x=Te();if(a===void 0){let c;return e[0]===Symbol.for("react.memo_cache_sentinel")?(c=(0,t.jsx)("span",{className:"text-muted-foreground",children:"\u2014"}),e[0]=c):c=e[0],c}let p;e[1]!==a?(p=a.slice(0,8),e[1]=a,e[2]=p):p=e[2];let g=p;if(r===void 0){let c=`mt-instrument-trace-${l}`,N;return e[3]!==g||e[4]!==c||e[5]!==a?(N=(0,t.jsx)("span",{className:"text-muted-foreground","data-testid":c,title:a,children:g}),e[3]=g,e[4]=c,e[5]=a,e[6]=N):N=e[6],N}let v=`mt-instrument-trace-${l}`,u;e[7]!==r||e[8]!==a?(u=i(()=>{r(a)},"u"),e[7]=r,e[8]=a,e[9]=u):u=e[9];let b;e[10]!==x||e[11]!==a?(b=x("Open the exemplar trace {trace}",{trace:a}),e[10]=x,e[11]=a,e[12]=b):b=e[12];let h;return e[13]!==g||e[14]!==v||e[15]!==u||e[16]!==b?(h=(0,t.jsx)("button",{className:"text-primary underline-offset-4 hover:underline","data-testid":v,onClick:u,title:b,type:"button",children:g}),e[13]=g,e[14]=v,e[15]=u,e[16]=b,e[17]=h):h=e[17],h},"Ot"),Dt=i(s=>{let e=(0,Ce.c)(92),{onOpenTrace:l,shardKey:r}=s,a=Te(),x;e[0]===Symbol.for("react.memo_cache_sentinel")?(x={},e[0]=x):x=e[0];let p;e[1]!==r?(p={live:!0,shardKey:r},e[1]=r,e[2]=p):p=e[2];let{data:g,error:v}=Ke(De.getMetricSeries,x,p),u;e[3]===Symbol.for("react.memo_cache_sentinel")?(u={},e[3]=u):u=e[3];let b;e[4]!==r?(b={live:!0,shardKey:r},e[4]=r,e[5]=b):b=e[5];let{data:h}=Ke(De.getMetricHistory,u,b),c,N,re,O,K,E,o,M,le,F,q,j,f;if(e[6]!==g||e[7]!==v||e[8]!==h||e[9]!==l||e[10]!==a){M=Symbol.for("react.early_return_sentinel");e:{let I=Ct(g);if(v!==null||I.length===0){M=null;break e}let se=Tt(h),P;e[24]!==a?(P=i(m=>a(m==="counter"?"Counter":m==="gauge"?"Gauge":"Histogram"),"j"),e[24]=a,e[25]=P):P=e[25];let ne=P;K="flex flex-col gap-2",E="mt-instruments";let A;e[26]!==a?(A=a("Instruments"),e[26]=a,e[27]=A):A=e[27],e[28]!==A?(o=(0,t.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:A}),e[28]=A,e[29]=o):o=e[29],O=de,f="overflow-hidden py-0",re=he,j="px-0",N=Ue,F="mt-instruments-table";let n;e[30]!==a?(n=a("name"),e[30]=a,e[31]=n):n=e[31];let S;e[32]!==n?(S=(0,t.jsx)(te,{children:n}),e[32]=n,e[33]=S):S=e[33];let y;e[34]!==a?(y=a("kind"),e[34]=a,e[35]=y):y=e[35];let w;e[36]!==y?(w=(0,t.jsx)(te,{children:y}),e[36]=y,e[37]=w):w=e[37];let J;e[38]!==a?(J=a("value"),e[38]=a,e[39]=J):J=e[39];let Q;e[40]!==J?(Q=(0,t.jsx)(te,{className:"text-right",children:J}),e[40]=J,e[41]=Q):Q=e[41];let H;e[42]!==a?(H=a("count"),e[42]=a,e[43]=H):H=e[43];let W;e[44]!==H?(W=(0,t.jsx)(te,{className:"text-right",children:H}),e[44]=H,e[45]=W):W=e[45];let U;e[46]!==a?(U=a("range"),e[46]=a,e[47]=U):U=e[47];let B;e[48]!==U?(B=(0,t.jsx)(te,{className:"text-right",children:U}),e[48]=U,e[49]=B):B=e[49];let G;e[50]!==a?(G=a("trend"),e[50]=a,e[51]=G):G=e[51];let V;e[52]!==G?(V=(0,t.jsx)(te,{children:G}),e[52]=G,e[53]=V):V=e[53];let X;e[54]!==a?(X=a("trace"),e[54]=a,e[55]=X):X=e[55];let Z;e[56]!==X?(Z=(0,t.jsx)(te,{children:X}),e[56]=X,e[57]=Z):Z=e[57];let Y;e[58]!==a?(Y=a("dimensions"),e[58]=a,e[59]=Y):Y=e[59];let ee;e[60]!==Y?(ee=(0,t.jsx)(te,{children:Y}),e[60]=Y,e[61]=ee):ee=e[61],e[62]!==S||e[63]!==w||e[64]!==Q||e[65]!==W||e[66]!==B||e[67]!==V||e[68]!==Z||e[69]!==ee?(q=(0,t.jsx)(Be,{children:(0,t.jsxs)(Re,{children:[S,w,Q,W,B,V,Z,ee]})}),e[62]=S,e[63]=w,e[64]=Q,e[65]=W,e[66]=B,e[67]=V,e[68]=Z,e[69]=ee,e[70]=q):q=e[70],c=Ge,le=I.map(m=>{let ie=xt(m.attributes),oe=wt(m.kind,m.name,m.attributes),ce=(se.get(oe)??[]).map(me=>Mt(m.kind,me));return(0,t.jsxs)(Re,{"data-testid":`mt-instrument-${m.name}`,children:[(0,t.jsx)(L,{className:"font-mono text-xs",title:m.functionPath,children:m.name}),(0,t.jsx)(L,{children:(0,t.jsx)(Qe,{variant:Ot[m.kind],children:ne(m.kind)})}),(0,t.jsx)(L,{className:"text-right font-mono tabular-nums","data-testid":`mt-instrument-value-${m.name}`,children:Xe(It(m))}),(0,t.jsx)(L,{className:"text-right tabular-nums text-muted-foreground",children:m.count.toLocaleString()}),(0,t.jsx)(L,{className:"text-right font-mono text-xs tabular-nums text-muted-foreground",children:m.min===m.max?"\u2014":`${Xe(m.min)}\u2013${Xe(m.max)}`}),(0,t.jsx)(L,{children:ce.length>=2?(0,t.jsx)(Ve,{ariaLabel:a("{name} trend",{name:m.name}),className:"h-6 w-24 text-foreground",series:ce,testId:`mt-instrument-trend-${m.name}`}):(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:"\u2014"})}),(0,t.jsx)(L,{className:"font-mono text-xs",children:(0,t.jsx)(Ft,{name:m.name,onOpenTrace:l,traceId:m.exemplarTraceId})}),(0,t.jsx)(L,{className:"max-w-64 truncate font-mono text-xs text-muted-foreground",title:ie,children:ie===""?"\u2014":ie})]},oe)})}e[6]=g,e[7]=v,e[8]=h,e[9]=l,e[10]=a,e[11]=c,e[12]=N,e[13]=re,e[14]=O,e[15]=K,e[16]=E,e[17]=o,e[18]=M,e[19]=le,e[20]=F,e[21]=q,e[22]=j,e[23]=f}else c=e[11],N=e[12],re=e[13],O=e[14],K=e[15],E=e[16],o=e[17],M=e[18],le=e[19],F=e[20],q=e[21],j=e[22],f=e[23];if(M!==Symbol.for("react.early_return_sentinel"))return M;let D;e[71]!==c||e[72]!==le?(D=(0,t.jsx)(c,{children:le}),e[71]=c,e[72]=le,e[73]=D):D=e[73];let z;e[74]!==N||e[75]!==D||e[76]!==F||e[77]!==q?(z=(0,t.jsxs)(N,{"data-testid":F,children:[q,D]}),e[74]=N,e[75]=D,e[76]=F,e[77]=q,e[78]=z):z=e[78];let k;e[79]!==re||e[80]!==z||e[81]!==j?(k=(0,t.jsx)(re,{className:j,children:z}),e[79]=re,e[80]=z,e[81]=j,e[82]=k):k=e[82];let R;e[83]!==O||e[84]!==k||e[85]!==f?(R=(0,t.jsx)(O,{className:f,children:k}),e[83]=O,e[84]=k,e[85]=f,e[86]=R):R=e[86];let _;return e[87]!==K||e[88]!==E||e[89]!==o||e[90]!==R?(_=(0,t.jsxs)("section",{className:K,"data-testid":E,children:[o,R]}),e[87]=K,e[88]=E,e[89]=o,e[90]=R,e[91]=_):_=e[91],_},"Rt"),Pe=i(s=>s>=100?"critical":s>=50?"warning":"good","je"),Ze=i(s=>s<1?`${(s*1e3).toFixed(0)}\u03BCs`:s<1e3?`${s.toFixed(1)}ms`:`${(s/1e3).toFixed(2)}s`,"Ue"),Ee=i(s=>s>=1e9?`${(s/1e9).toFixed(1)}B`:s>=1e6?`${(s/1e6).toFixed(1)}M`:s>=1e3?`${(s/1e3).toFixed(1)}K`:s.toLocaleString(),"Le"),Rt=i(s=>{let e=(0,Ce.c)(3),{level:l}=s;if(l==="critical"){let a;return e[0]===Symbol.for("react.memo_cache_sentinel")?(a=(0,t.jsx)(Qe,{variant:"destructive",children:"Slow"}),e[0]=a):a=e[0],a}if(l==="warning"){let a;return e[1]===Symbol.for("react.memo_cache_sentinel")?(a=(0,t.jsx)("span",{className:"inline-flex items-center gap-1 rounded-md border border-transparent bg-warning/10 px-2 py-0.5 text-xs font-medium text-warning",children:"Moderate"}),e[1]=a):a=e[1],a}let r;return e[2]===Symbol.for("react.memo_cache_sentinel")?(r=(0,t.jsx)("span",{className:"inline-flex items-center gap-1 rounded-md border border-transparent bg-success/10 px-2 py-0.5 text-xs font-medium text-success",children:"Fast"}),e[2]=r):r=e[2],r},"Dt"),jt=i(s=>{let e=(0,Ce.c)(152),{queryStats:l}=s,r=Te(),[a,x]=(0,T.useState)("totalTime"),p;e[0]===Symbol.for("react.memo_cache_sentinel")?(p=new Set,e[0]=p):p=e[0];let[g,v]=(0,T.useState)(p),u;e[1]===Symbol.for("react.memo_cache_sentinel")?(u=i(d=>{d!==null&&x(d)},"u"),e[1]=u):u=e[1];let b=u,h;if(e[2]!==l||e[3]!==a){h=[...l];let d;e[5]!==a?(d=i((C,$)=>{switch(a){case"avgTime":return $.avgDurationMs-C.avgDurationMs;case"execCount":return $.execCount-C.execCount;case"rowsRead":return $.rowsRead-C.rowsRead;default:return $.totalDurationMs-C.totalDurationMs}},"d"),e[5]=a,e[6]=d):d=e[6],h.sort(d),e[2]=l,e[3]=a,e[4]=h}else h=e[4];let c=h,N;e[7]!==l?(N=l.filter(zt),e[7]=l,e[8]=N):N=e[8];let re=N.length,O;e[9]!==l?(O=l.filter(At),e[9]=l,e[10]=O):O=e[10];let K=O.length,E;e[11]!==l?(E=l.filter(Lt),e[11]=l,e[12]=E):E=e[12];let o=E.length,M;e[13]===Symbol.for("react.memo_cache_sentinel")?(M=i(d=>{v(C=>{let $=new Set(C);return $.has(d)?$.delete(d):$.add(d),$})},"M"),e[13]=M):M=e[13];let le=M;if(l.length===0){let d;e[14]!==r?(d=r("No query insights yet"),e[14]=r,e[15]=d):d=e[15];let C;e[16]!==d?(C=(0,t.jsx)("p",{className:"text-lg font-medium","data-testid":"qi-empty",children:d}),e[16]=d,e[17]=C):C=e[17];let $;e[18]!==r?($=r("Query insights appear once statements are executed against this shard."),e[18]=r,e[19]=$):$=e[19];let ue;e[20]!==$?(ue=(0,t.jsx)("p",{className:"mt-1 text-sm",children:$}),e[20]=$,e[21]=ue):ue=e[21];let Ae;return e[22]!==ue||e[23]!==C?(Ae=(0,t.jsx)(de,{children:(0,t.jsx)(he,{className:"py-12",children:(0,t.jsxs)("div",{className:"text-center text-muted-foreground",children:[C,ue]})})}),e[22]=ue,e[23]=C,e[24]=Ae):Ae=e[24],Ae}let F;e[25]!==r?(F=r("Critical queries"),e[25]=r,e[26]=F):F=e[26];let q;e[27]!==F?(q=(0,t.jsx)(Oe,{className:"pb-2",children:(0,t.jsx)(Fe,{className:"text-sm font-medium",children:F})}),e[27]=F,e[28]=q):q=e[28];let j;e[29]!==re?(j=(0,t.jsx)("div",{className:"text-2xl font-bold text-destructive","data-testid":"qi-critical",children:re}),e[29]=re,e[30]=j):j=e[30];let f;e[31]!==r?(f=r(">100ms avg execution"),e[31]=r,e[32]=f):f=e[32];let D;e[33]!==f?(D=(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:f}),e[33]=f,e[34]=D):D=e[34];let z;e[35]!==D||e[36]!==j?(z=(0,t.jsxs)(he,{children:[j,D]}),e[35]=D,e[36]=j,e[37]=z):z=e[37];let k;e[38]!==z||e[39]!==q?(k=(0,t.jsxs)(de,{children:[q,z]}),e[38]=z,e[39]=q,e[40]=k):k=e[40];let R;e[41]!==r?(R=r("Moderate queries"),e[41]=r,e[42]=R):R=e[42];let _;e[43]!==R?(_=(0,t.jsx)(Oe,{className:"pb-2",children:(0,t.jsx)(Fe,{className:"text-sm font-medium",children:R})}),e[43]=R,e[44]=_):_=e[44];let I;e[45]!==K?(I=(0,t.jsx)("div",{className:"text-2xl font-bold text-warning","data-testid":"qi-moderate",children:K}),e[45]=K,e[46]=I):I=e[46];let se;e[47]!==r?(se=r("50\u2013100ms avg execution"),e[47]=r,e[48]=se):se=e[48];let P;e[49]!==se?(P=(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:se}),e[49]=se,e[50]=P):P=e[50];let ne;e[51]!==I||e[52]!==P?(ne=(0,t.jsxs)(he,{children:[I,P]}),e[51]=I,e[52]=P,e[53]=ne):ne=e[53];let A;e[54]!==_||e[55]!==ne?(A=(0,t.jsxs)(de,{children:[_,ne]}),e[54]=_,e[55]=ne,e[56]=A):A=e[56];let n;e[57]!==r?(n=r("Fast queries"),e[57]=r,e[58]=n):n=e[58];let S;e[59]!==n?(S=(0,t.jsx)(Oe,{className:"pb-2",children:(0,t.jsx)(Fe,{className:"text-sm font-medium",children:n})}),e[59]=n,e[60]=S):S=e[60];let y;e[61]!==o?(y=(0,t.jsx)("div",{className:"text-2xl font-bold text-success","data-testid":"qi-fast",children:o}),e[61]=o,e[62]=y):y=e[62];let w;e[63]!==r?(w=r("<50ms avg execution"),e[63]=r,e[64]=w):w=e[64];let J;e[65]!==w?(J=(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:w}),e[65]=w,e[66]=J):J=e[66];let Q;e[67]!==y||e[68]!==J?(Q=(0,t.jsxs)(he,{children:[y,J]}),e[67]=y,e[68]=J,e[69]=Q):Q=e[69];let H;e[70]!==S||e[71]!==Q?(H=(0,t.jsxs)(de,{children:[S,Q]}),e[70]=S,e[71]=Q,e[72]=H):H=e[72];let W;e[73]!==k||e[74]!==A||e[75]!==H?(W=(0,t.jsxs)("div",{className:"grid gap-4 md:grid-cols-3",children:[k,A,H]}),e[73]=k,e[74]=A,e[75]=H,e[76]=W):W=e[76];let U;e[77]!==r?(U=r("Query leaderboard"),e[77]=r,e[78]=U):U=e[78];let B;e[79]!==U?(B=(0,t.jsx)("h3",{className:"text-lg font-semibold",children:U}),e[79]=U,e[80]=B):B=e[80];let G;e[81]!==a||e[82]!==r?(G=r("Slow queries sorted by {sortField}",{sortField:r(a)}),e[81]=a,e[82]=r,e[83]=G):G=e[83];let V;e[84]!==G?(V=(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:G}),e[84]=G,e[85]=V):V=e[85];let X;e[86]!==B||e[87]!==V?(X=(0,t.jsxs)("div",{children:[B,V]}),e[86]=B,e[87]=V,e[88]=X):X=e[88];let Z;e[89]!==r?(Z=r("Sort by"),e[89]=r,e[90]=Z):Z=e[90];let Y;e[91]!==Z?(Y=(0,t.jsx)("span",{className:"text-sm text-muted-foreground",children:Z}),e[91]=Z,e[92]=Y):Y=e[92];let ee;e[93]!==r?(ee=r("Sort queries by"),e[93]=r,e[94]=ee):ee=e[94];let m;e[95]===Symbol.for("react.memo_cache_sentinel")?(m=(0,t.jsx)(ht,{}),e[95]=m):m=e[95];let ie;e[96]!==ee?(ie=(0,t.jsx)(gt,{"aria-label":ee,className:"w-[140px]","data-testid":"qi-sort",children:m}),e[96]=ee,e[97]=ie):ie=e[97];let oe;e[98]!==r?(oe=r("Total time"),e[98]=r,e[99]=oe):oe=e[99];let ce;e[100]!==oe?(ce=(0,t.jsx)(je,{value:"totalTime",children:oe}),e[100]=oe,e[101]=ce):ce=e[101];let me;e[102]!==r?(me=r("Avg time"),e[102]=r,e[103]=me):me=e[103];let ge;e[104]!==me?(ge=(0,t.jsx)(je,{value:"avgTime",children:me}),e[104]=me,e[105]=ge):ge=e[105];let fe;e[106]!==r?(fe=r("Execution count"),e[106]=r,e[107]=fe):fe=e[107];let xe;e[108]!==fe?(xe=(0,t.jsx)(je,{value:"execCount",children:fe}),e[108]=fe,e[109]=xe):xe=e[109];let pe;e[110]!==r?(pe=r("Rows read"),e[110]=r,e[111]=pe):pe=e[111];let be;e[112]!==pe?(be=(0,t.jsx)(je,{value:"rowsRead",children:pe}),e[112]=pe,e[113]=be):be=e[113];let ve;e[114]!==ce||e[115]!==ge||e[116]!==xe||e[117]!==be?(ve=(0,t.jsxs)(ft,{children:[ce,ge,xe,be]}),e[114]=ce,e[115]=ge,e[116]=xe,e[117]=be,e[118]=ve):ve=e[118];let Ne;e[119]!==a||e[120]!==ie||e[121]!==ve?(Ne=(0,t.jsxs)(ut,{onValueChange:b,value:a,children:[ie,ve]}),e[119]=a,e[120]=ie,e[121]=ve,e[122]=Ne):Ne=e[122];let ye;e[123]!==Y||e[124]!==Ne?(ye=(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[Y,Ne]}),e[123]=Y,e[124]=Ne,e[125]=ye):ye=e[125];let we;e[126]!==X||e[127]!==ye?(we=(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[X,ye]}),e[126]=X,e[127]=ye,e[128]=we):we=e[128];let Se;e[129]!==r?(Se=r("Statements"),e[129]=r,e[130]=Se):Se=e[130];let $e;e[131]!==Se?($e=(0,t.jsx)(Fe,{children:Se}),e[131]=Se,e[132]=$e):$e=e[132];let qe;e[133]!==c.length||e[134]!==r?(qe=r("{count} tracked statements",{count:c.length}),e[133]=c.length,e[134]=r,e[135]=qe):qe=e[135];let ke;e[136]!==qe?(ke=(0,t.jsx)(rt,{children:qe}),e[136]=qe,e[137]=ke):ke=e[137];let _e;e[138]!==$e||e[139]!==ke?(_e=(0,t.jsxs)(Oe,{children:[$e,ke]}),e[138]=$e,e[139]=ke,e[140]=_e):_e=e[140];let Me;e[141]!==g||e[142]!==c||e[143]!==r?(Me=(0,t.jsx)(he,{children:(0,t.jsx)("div",{className:"space-y-2",children:c.map(d=>{let C=d.normalizedSql,$=g.has(C),ue=Pe(d.avgDurationMs);return(0,t.jsxs)("div",{className:"overflow-hidden rounded-lg border","data-testid":"qi-row",children:[(0,t.jsxs)("button",{"aria-expanded":$,className:"flex w-full items-center justify-between p-3 text-left transition-colors hover:bg-muted/50",onClick:i(()=>{le(C)},"onClick"),type:"button",children:[(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-3",children:[(0,t.jsx)(Rt,{level:ue}),(0,t.jsx)("span",{className:"max-w-[300px] truncate font-mono text-sm lg:max-w-[500px]",children:d.normalizedSql})]}),(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-4",children:[(0,t.jsxs)("div",{className:"text-right",children:[(0,t.jsx)("div",{className:"text-sm font-medium",children:Ze(d.totalDurationMs)}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:r("total")})]}),(0,t.jsxs)("div",{className:"text-right",children:[(0,t.jsx)("div",{className:"text-sm font-medium",children:Ze(d.avgDurationMs)}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:r("avg")})]}),(0,t.jsxs)("div",{className:"text-right",children:[(0,t.jsx)("div",{className:"text-sm font-medium",children:Ee(d.execCount)}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:r("calls")})]})]})]}),$&&(0,t.jsxs)("div",{className:"space-y-3 border-t bg-muted/30 p-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-2 text-sm font-medium",children:r("Full statement")}),(0,t.jsx)("pre",{className:"overflow-x-auto rounded-md bg-muted p-3 font-mono text-sm whitespace-pre-wrap break-all",children:d.normalizedSql})]}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4 text-sm md:grid-cols-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:r("Exec count")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:Ee(d.execCount)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:r("Total time")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:Ze(d.totalDurationMs)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:r("Rows read")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:Ee(d.rowsRead)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:r("Rows written")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:Ee(d.rowsWritten)})]})]})]})]},C)})})}),e[141]=g,e[142]=c,e[143]=r,e[144]=Me):Me=e[144];let Ie;e[145]!==_e||e[146]!==Me?(Ie=(0,t.jsxs)(de,{children:[_e,Me]}),e[145]=_e,e[146]=Me,e[147]=Ie):Ie=e[147];let ze;return e[148]!==W||e[149]!==we||e[150]!==Ie?(ze=(0,t.jsxs)("div",{className:"space-y-4","data-testid":"qi-root",children:[W,we,Ie]}),e[148]=W,e[149]=we,e[150]=Ie,e[151]=ze):ze=e[151],ze},"Lt");function zt(s){return Pe(s.avgDurationMs)==="critical"}i(zt,"At");function At(s){return Pe(s.avgDurationMs)==="warning"}i(At,"zt");function Lt(s){return Pe(s.avgDurationMs)==="good"}i(Lt,"Et");var Kt=at(De.getMetrics),Et=i(s=>{let e=Math.floor(s/1e3),l=Math.floor(e/3600),r=Math.floor(e%3600/60),a=e%60;return l>0?`${l.toString()}h ${r.toString()}m`:r>0?`${r.toString()}m ${a.toString()}s`:`${a.toString()}s`},"Kt"),Pt=i((s,e)=>s?e:"overview","Pt"),Jt=i((s,e)=>{let l=s+e;return l===0?"\u2014":`${(s/l*100).toFixed(1)}%`},"Jt"),ae=i(s=>{let e=(0,Ce.c)(16),{chart:l,footer:r,label:a,testId:x,value:p}=s,g;e[0]!==a?(g=(0,t.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:a}),e[0]=a,e[1]=g):g=e[1];let v;e[2]!==x||e[3]!==p?(v=(0,t.jsx)("span",{className:"truncate text-2xl font-semibold tabular-nums text-foreground","data-testid":x,children:p}),e[2]=x,e[3]=p,e[4]=v):v=e[4];let u;e[5]!==l||e[6]!==v?(u=(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[v,l]}),e[5]=l,e[6]=v,e[7]=u):u=e[7];let b;e[8]!==g||e[9]!==u?(b=(0,t.jsxs)("div",{className:"flex flex-col gap-2.5 p-4",children:[g,u]}),e[8]=g,e[9]=u,e[10]=b):b=e[10];let h;e[11]!==r?(h=r!=null&&(0,t.jsx)("div",{className:"border-t border-border bg-muted/50 px-4 py-2.5 text-[11px] text-muted-foreground",children:r}),e[11]=r,e[12]=h):h=e[12];let c;return e[13]!==b||e[14]!==h?(c=(0,t.jsxs)(de,{className:"justify-between gap-0 py-0",children:[b,h]}),e[13]=b,e[14]=h,e[15]=c):c=e[15],c},"te"),dr=i(({initialShardKey:s})=>{let e=et(),l=Te(),r=tt(),[a,x]=(0,T.useState)(s??""),[p,g]=(0,T.useState)("overview"),[v,u]=(0,T.useState)([]),b=(0,T.useRef)(null),h=(0,T.useRef)(null),c=(0,T.useRef)(!0);(0,T.useEffect)(()=>(c.current=!0,()=>{c.current=!1}),[]);let N=ct(a.trim(),400),re=i(n=>{yt({shardKey:N,traceId:n}),We(r({to:"/traces"}))},"ee"),{data:O,error:K,liveError:E}=Ke(De.getMetrics,{},{live:!0,shardKey:N}),o=O??null;(0,T.useEffect)(()=>{if(O===void 0)return;it(N);let n=O,S=b.current,y=h.current!==null&&h.current!==n.shard;if(h.current=n.shard,b.current=n.requests,y){u([]);return}S!==null&&n.requests>=S&&u(w=>[...w,n.requests-S].slice(-30))},[O,N]);let[M,le]=(0,T.useState)(null),[F,q]=(0,T.useState)(!1),j=i(async()=>{q(!0);let n=bt(a,nt());try{let S=await Promise.all(n.map(async y=>{try{let w=await e.query(Kt,{},lt(y));return{error:null,metrics:w,shard:y===""?w.shard:y}}catch(w){return{error:st(w),metrics:null,shard:y===""?"__root__":y}}}));c.current&&le(S)}finally{c.current&&q(!1)}},"D"),f=M===null?null:pt(M),D=o===null||o.requests===0?"\u2014":`${(o.errors/o.requests*100).toFixed(1)}%`,z=v.length>0?v.at(-1):0,k=o?vt(o):{p90:0,p95:0},R=i(n=>n<=0?"\u2014":n<1?`${(n*1e3).toFixed(0)}\u03BCs`:n<1e3?`${n.toFixed(1)}ms`:`${(n/1e3).toFixed(2)}s`,"R"),_=(0,T.useMemo)(()=>{if(!o||!("queryStats"in o))return;let n=o.queryStats;if(!(!n||!Array.isArray(n)))return Nt(n)},[o]),I=Pt(_!==void 0,p),se=i(()=>{We(j())},"le"),P=i(()=>{le(null)},"j"),ne=i(()=>{g("overview")},"se"),A=i(()=>{g("query-insights")},"A");return(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-metrics",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)(ot,{onChange:x,testId:"mt-shard-input",value:a}),(0,t.jsx)(dt,{message:E,prefix:"mt"}),(0,t.jsx)(He,{"data-testid":"mt-aggregate",disabled:F,onClick:se,size:"sm",type:"button",variant:"secondary",children:l(F?"Aggregating\u2026":"All shards")}),M!==null&&(0,t.jsx)(He,{"data-testid":"mt-aggregate-clear",onClick:P,size:"sm",type:"button",variant:"ghost",children:l("Hide")}),(0,t.jsx)("a",{className:"text-sm text-primary underline-offset-4 hover:underline","data-testid":"mt-cf-link",href:mt,rel:"noreferrer",target:"_blank",children:l("Open in Cloudflare")})]}),K!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive","data-testid":"mt-error",role:"alert",children:K}),_!==void 0&&(0,t.jsxs)("div",{className:"flex gap-2 border-b","data-testid":"mt-tabs",children:[(0,t.jsx)("button",{className:`pb-2 text-sm font-medium transition-colors ${I==="overview"?"border-b-2 border-primary text-foreground":"text-muted-foreground hover:text-foreground"}`,"data-testid":"mt-tab-overview",onClick:ne,type:"button",children:l("Overview")}),(0,t.jsxs)("button",{className:`pb-2 text-sm font-medium transition-colors ${I==="query-insights"?"border-b-2 border-primary text-foreground":"text-muted-foreground hover:text-foreground"}`,"data-testid":"mt-tab-query-insights",onClick:A,type:"button",children:[l("Query insights"),_.length>0&&(0,t.jsx)("span",{className:"ml-1.5 rounded-full bg-primary/10 px-1.5 py-0.5 text-xs text-primary",children:_.length})]})]}),I==="query-insights"&&_!==void 0&&(0,t.jsx)(jt,{queryStats:_}),I==="overview"&&o!==null&&(0,t.jsxs)("dl",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4","data-testid":"mt-stats",children:[(0,t.jsx)(ae,{chart:v.length>=2?(0,t.jsx)(Ve,{ariaLabel:l("Requests per interval over time"),className:"h-7 w-24 text-foreground",series:v,testId:"mt-sparkline"}):void 0,footer:v.length>=2?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"font-semibold text-foreground",children:`+${z.toLocaleString()}`})," ",l("last interval")]}):(0,t.jsx)("span",{"data-testid":"mt-sparkline-empty",children:l("collecting samples\u2026")}),label:l("Requests"),testId:"mt-requests",value:o.requests}),(0,t.jsx)(ae,{footer:l("{rate} error rate",{rate:D}),label:l("Errors"),testId:"mt-errors",value:(0,t.jsxs)(t.Fragment,{children:[o.errors," (",D,")"]})}),(0,t.jsx)(ae,{footer:k.p90>0?`P90 ${R(k.p90)}`:void 0,label:l("P95 latency"),testId:"mt-p95",value:k.p95>0?R(k.p95):"\u2014"}),(0,t.jsx)(ae,{footer:o.cache===null?void 0:`${o.cache.entries.toLocaleString()} ${l("cache entries")}`,label:l("Database size"),testId:"mt-db-size",value:Le(o.databaseSize)}),(0,t.jsx)(ae,{label:l("Shard"),testId:"mt-shard",value:o.shard}),(0,t.jsx)(ae,{label:l("Uptime"),testId:"mt-uptime",value:Et(o.uptimeMs)}),(0,t.jsx)(ae,{label:l("Cache hit rate"),testId:"mt-cache",value:o.cache===null?l("no cache configured"):l("{rate} ({count} entries)",{count:o.cache.entries,rate:Jt(o.cache.hits,o.cache.misses)})})]}),I==="overview"&&o===null&&null,I==="overview"&&(0,t.jsx)(Dt,{onOpenTrace:re,shardKey:N}),I==="overview"&&f!==null&&M!==null&&(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"mt-aggregate-view",children:[(0,t.jsxs)("dl",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3","data-testid":"mt-aggregate-stats",children:[(0,t.jsx)(ae,{label:l("Shards"),testId:"mt-agg-shards",value:f.failed>0?l("{reachable} reachable, {failed} unreachable",{failed:f.failed,reachable:f.reachable}):l("{reachable} reachable",{reachable:f.reachable})}),(0,t.jsx)(ae,{label:l("Total requests"),testId:"mt-agg-requests",value:f.totalRequests}),(0,t.jsx)(ae,{label:l("Total errors"),testId:"mt-agg-errors",value:f.totalErrors}),(0,t.jsx)(ae,{label:l("Total database size"),testId:"mt-agg-db-size",value:Le(f.totalDatabaseSize)}),(0,t.jsx)(ae,{label:l("Combined cache hit rate"),testId:"mt-agg-cache",value:f.hitRate===null?l("no cache configured"):`${(f.hitRate*100).toFixed(1)}%`})]}),(0,t.jsx)(de,{className:"overflow-hidden py-0",children:(0,t.jsx)(he,{className:"px-0",children:(0,t.jsxs)(Ue,{"data-testid":"mt-agg-table",children:[(0,t.jsx)(Be,{children:(0,t.jsxs)(Re,{children:[(0,t.jsx)(te,{children:l("shard")}),(0,t.jsx)(te,{children:l("requests")}),(0,t.jsx)(te,{children:l("errors")}),(0,t.jsx)(te,{children:l("db size")})]})}),(0,t.jsx)(Ge,{children:M.map(n=>(0,t.jsxs)(Re,{"data-testid":`mt-agg-row-${n.shard}`,children:[(0,t.jsx)(L,{children:n.shard}),n.metrics===null?(0,t.jsx)(L,{className:"text-destructive",colSpan:3,children:n.error??l("unreachable")}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(L,{className:"tabular-nums",children:n.metrics.requests}),(0,t.jsx)(L,{className:"tabular-nums",children:n.metrics.errors}),(0,t.jsx)(L,{className:"tabular-nums",children:Le(n.metrics.databaseSize)})]})]},n.shard))})]})})})]})]})},"hr");export{dr as MetricsPanel};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as K,c as W,i as V}from"./chunk-
|
|
1
|
+
import{a as K,c as W,i as V}from"./chunk-2OUPA2WJ.js";import{a as O,b as B,c as U,j as S}from"./chunk-6ST5ECQA.js";import{a as M}from"./chunk-XBDKZZ67.js";import{a as s,e as g,f as v,h as Y,j as _}from"./chunk-3XIESWL4.js";var $=g(v(),1);var b=g(v(),1);var h=g(v(),1);var Z=h.createContext(void 0);function H(n=!1){let t=h.useContext(Z);if(t===void 0&&!n)throw new Error(U(16));return t}s(H,"useCompositeRootContext");var A=g(v(),1);function F(n){let{focusableWhenDisabled:t,disabled:r,composite:u=!1,tabIndex:o=0,isNativeButton:i}=n,p=u&&t!==!1,f=u&&t===!1;return{props:A.useMemo(()=>{let a={onKeyDown(d){r&&t&&d.key!=="Tab"&&d.preventDefault()}};return u||(a.tabIndex=o,!i&&r&&(a.tabIndex=t?o:-1)),(i&&(t||p)||!i&&r)&&(a["aria-disabled"]=r),i&&(!t||f)&&(a.disabled=r),a},[u,r,t,p,f,i,o])}}s(F,"useFocusableWhenDisabled");function L(n={}){let{disabled:t=!1,focusableWhenDisabled:r,tabIndex:u=0,native:o=!0,composite:i}=n,p=b.useRef(null),f=H(!0),c=i??f!==void 0,{props:a}=F({focusableWhenDisabled:r,disabled:t,composite:c,tabIndex:u,isNativeButton:o}),d=b.useCallback(()=>{let l=p.current;C(l)&&c&&t&&a.disabled===void 0&&l.disabled&&(l.disabled=!1)},[t,a.disabled,c]);K(d,[d]);let k=b.useCallback((l={})=>{let{onClick:m,onMouseDown:R,onKeyUp:q,onKeyDown:G,onPointerDown:J,...Q}=l;return O({onClick(e){if(t){e.preventDefault();return}m?.(e)},onMouseDown(e){t||R?.(e)},onKeyDown(e){if(t||(B(e),G?.(e),e.baseUIHandlerPrevented))return;let N=e.target===e.currentTarget,x=e.currentTarget,E=C(x),z=!o&&ee(x),P=N&&(o?E:!z),T=e.key==="Enter",I=e.key===" ",y=x.getAttribute("role"),X=y?.startsWith("menuitem")||y==="option"||y==="gridcell";if(N&&c&&I){if(e.defaultPrevented&&X)return;e.preventDefault(),z||o&&E?(x.click(),e.preventBaseUIHandler()):P&&(m?.(e),e.preventBaseUIHandler());return}P&&(!o&&(I||T)&&e.preventDefault(),!o&&T&&m?.(e))},onKeyUp(e){if(!t){if(B(e),q?.(e),e.target===e.currentTarget&&o&&c&&C(e.currentTarget)&&e.key===" "){e.preventDefault();return}e.baseUIHandlerPrevented||e.target===e.currentTarget&&!o&&!c&&e.key===" "&&m?.(e)}},onPointerDown(e){if(t){e.preventDefault();return}J?.(e)}},o?{type:"button"}:{role:"button"},a,Q)},[t,a,c,o]),w=W(l=>{p.current=l,d()});return{getButtonProps:k,buttonRef:w}}s(L,"useButton");function C(n){return V(n)&&n.tagName==="BUTTON"}s(C,"isButtonElement");function ee(n){return!!(n?.tagName==="A"&&n?.href)}s(ee,"isValidLinkElement");var D=$.forwardRef(s(function(t,r){let{render:u,className:o,disabled:i=!1,focusableWhenDisabled:p=!1,nativeButton:f=!0,style:c,...a}=t,{getButtonProps:d,buttonRef:k}=L({disabled:i,focusableWhenDisabled:p,native:f});return S("button",t,{state:{disabled:i},ref:[r,k],props:[a,d]})},"Button"));var j=g(Y(),1);var te=M("group/button inline-flex shrink-0 items-center justify-center rounded-md border border-transparent bg-clip-padding text-xs font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-1 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/80",outline:"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pe-2 has-data-[icon=inline-start]:ps-2",xs:"h-6 gap-1 rounded-md px-2 text-xs has-data-[icon=inline-end]:pe-1.5 has-data-[icon=inline-start]:ps-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-md px-2.5 has-data-[icon=inline-end]:pe-1.5 has-data-[icon=inline-start]:ps-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pe-2 has-data-[icon=inline-start]:ps-2",icon:"size-8","icon-xs":"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-md","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});function Ce({className:n,variant:t="default",size:r="default",...u}){return(0,j.jsx)(D,{"data-slot":"button",className:_(te({variant:t,size:r,className:n})),...u})}s(Ce,"g");export{H as a,L as b,Ce as c};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as T}from"./chunk-
|
|
1
|
+
import{a as T}from"./chunk-X2FQ6B5V.js";import{b as k}from"./chunk-OWADN6BI.js";import{a as D,b as E,c as O,d as C,e as i,f as o}from"./chunk-MIQTKZAR.js";import{a as I,e as $}from"./chunk-UZERI5YC.js";import{b}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as A}from"./chunk-GXZAXNZI.js";import"./chunk-LWECXQWP.js";import"./chunk-XBDKZZ67.js";import{a as L}from"./chunk-XQCVZAGU.js";import{d as S}from"./chunk-4CGALXS3.js";import"./chunk-LE56LPNH.js";import{a as v,e as w,f as K,g as M,h as P}from"./chunk-3XIESWL4.js";var j=w(M(),1),q=w(K(),1);var t=w(P(),1);var _="container:",W={error:"error",sleep:"sleeping",start:"running",stop:"stopped"},B=v(e=>{let n=e.indexOf(":");if(n===-1)return{event:e.trim()};let r=e.slice(n+1).trim(),a=e.slice(0,n).trim();return r===""?{event:a}:{detail:r,event:a}},"j"),F=v(e=>{let n=new Map;for(let r of e){let a=r.functionPath??"";if(!a.startsWith(_))continue;let s=a.slice(_.length);if(s==="")continue;let c=JSON.stringify([s,r.instance??""]),m=n.get(c);if(m!==void 0&&m.timestamp>=r.timestamp)continue;let{detail:g,event:l}=B(r.message);n.set(c,{detail:g,event:l,exitCode:r.exitCode,instance:r.instance,level:r.level,name:s,state:W[l]??"unknown",timestamp:r.timestamp})}return[...n.values()].toSorted((r,a)=>r.name.localeCompare(a.name)||(r.instance??"").localeCompare(a.instance??""))},"K"),J={error:"destructive",running:"success",sleeping:"info",stopped:"outline",unknown:"secondary"},U=v(e=>{let{entries:n}=e??{};return Array.isArray(n)?n:[]},"W"),ee=v(()=>{let e=(0,j.c)(23),n=S(),r,a;e[0]===Symbol.for("react.memo_cache_sentinel")?(r={},a={live:!0,shardKey:""},e[0]=r,e[1]=a):(r=e[0],a=e[1]);let{data:s,error:c,liveError:m}=k(A.getLogs,r,a),g=s!==void 0,l;e[2]!==s?(l=F(U(s)),e[2]=s,e[3]=l):l=e[3];let N=l,d;e[4]!==c?(d=c!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive","data-testid":"containers-error",role:"alert",children:c}),e[4]=c,e[5]=d):d=e[5];let h;e[6]!==n?(h=n("Cloudflare Containers are observed from their lifecycle log stream. This shows the current state per instance \u2014 ports and health checks aren't carried in that stream."),e[6]=n,e[7]=h):h=e[7];let p;e[8]!==h?(p=(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:h}),e[8]=h,e[9]=p):p=e[9];let u;e[10]!==m?(u=(0,t.jsx)(T,{message:m,prefix:"containers"}),e[10]=m,e[11]=u):u=e[11];let f;e[12]!==p||e[13]!==u?(f=(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[p,u]}),e[12]=p,e[13]=u,e[14]=f):f=e[14];let x;e[15]!==g||e[16]!==N||e[17]!==n?(x=g&&N.length===0?(0,t.jsx)(L,{description:n("No container lifecycle activity yet. Instances declared with defineContainer show up here once they start, sleep, stop, or error."),testId:"containers-empty",title:n("No container activity")}):(0,t.jsx)(I,{className:"overflow-hidden py-0",children:(0,t.jsx)($,{className:"px-0",children:(0,t.jsxs)(D,{"data-testid":"containers-table",children:[(0,t.jsx)(E,{children:(0,t.jsxs)(C,{children:[(0,t.jsx)(i,{children:n("Container")}),(0,t.jsx)(i,{children:n("Instance")}),(0,t.jsx)(i,{children:n("State")}),(0,t.jsx)(i,{children:n("Last event")}),(0,t.jsx)(i,{children:n("Detail")}),(0,t.jsx)(i,{children:n("Exit")}),(0,t.jsx)(i,{children:n("When")})]})}),(0,t.jsx)(O,{children:N.map(Y)})]})})}),e[15]=g,e[16]=N,e[17]=n,e[18]=x):x=e[18];let y;return e[19]!==d||e[20]!==f||e[21]!==x?(y=(0,t.jsxs)("div",{className:"flex flex-col gap-6","data-testid":"lunora-containers-panel",children:[d,f,x]}),e[19]=d,e[20]=f,e[21]=x,e[22]=y):y=e[22],y},"Y");function Y(e){return(0,t.jsxs)(C,{"data-testid":`containers-row-${e.name}${e.instance===void 0?"":`-${e.instance}`}`,children:[(0,t.jsx)(o,{className:"font-mono text-xs",children:e.name}),(0,t.jsx)(o,{className:"max-w-40 truncate font-mono text-xs text-muted-foreground",title:e.instance,children:e.instance??"\u2014"}),(0,t.jsx)(o,{children:(0,t.jsx)(b,{variant:J[e.state],children:e.state})}),(0,t.jsx)(o,{className:"font-mono text-xs text-muted-foreground",children:e.event}),(0,t.jsx)(o,{className:"max-w-64 truncate text-xs text-muted-foreground",title:e.detail,children:e.detail??"\u2014"}),(0,t.jsx)(o,{className:"font-mono text-xs tabular-nums text-muted-foreground",children:e.exitCode??"\u2014"}),(0,t.jsx)(o,{className:"text-xs tabular-nums text-muted-foreground",children:new Date(e.timestamp).toLocaleString()})]},`${e.name}/${e.instance??""}`)}v(Y,"B");export{ee as ContainersPanel};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as j}from"./chunk-
|
|
1
|
+
import{a as j}from"./chunk-54MMVNPT.js";import{a as E}from"./chunk-UNUU7CJJ.js";import"./chunk-XXQUMVWH.js";import{b}from"./chunk-OWADN6BI.js";import{a as A,b as T,c as I,d as g,e as c,f as a}from"./chunk-MIQTKZAR.js";import{a as y,e as N}from"./chunk-UZERI5YC.js";import{b as x}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as v}from"./chunk-GXZAXNZI.js";import"./chunk-LWECXQWP.js";import"./chunk-XBDKZZ67.js";import{a as w}from"./chunk-XQCVZAGU.js";import{d as _,q as S}from"./chunk-4CGALXS3.js";import"./chunk-LE56LPNH.js";import{a as p,e as C,h as F}from"./chunk-3XIESWL4.js";var e=C(F(),1);var L="subscriptions",J={},R=new Set(["active","trialing"]),K=new Set(["past_due","unpaid"]),n=p((s,t)=>{if(s[t]!==void 0)return s[t];let o=s.__doc__;if(typeof o=="string")try{let d=JSON.parse(o);if(d!==null&&typeof d=="object"&&!Array.isArray(d))return d[t]}catch{}},"s"),i=p(s=>typeof s=="string"?s:typeof s=="number"||typeof s=="bigint"||typeof s=="boolean"?String(s):"","i"),M=p(s=>R.has(s)?"default":K.has(s)?"destructive":"outline","L"),Y=p(({limit:s=100})=>{let t=_(),{data:o}=b(v.listTables,J,{live:!0}),d=o!==void 0,m=Array.isArray(o)&&o.some(r=>r.name===L),l=b(v.readTablePage,{filters:[],limit:s,offset:0,orderBy:[],search:"",table:"subscriptions"},{enabled:m}),h=b(v.readTablePage,{filters:[],limit:25,offset:0,orderBy:[],search:"",table:"events"},{enabled:m});j(()=>{m&&(l.refetch(),h.refetch())},!0);let f=l.data?.rows??[],k=h.data?.rows??[],D=l.error??h.error,O=l.error===null?h.errorSource:l.errorSource,P=f.filter(r=>R.has(i(n(r,"state")))).length,B=k.toSorted((r,u)=>Number(n(u,"processedAt")??0)-Number(n(r,"processedAt")??0));return d&&!m?(0,e.jsx)("div",{className:"flex flex-col gap-4","data-testid":"payments-panel",children:(0,e.jsx)(w,{description:t("No @lunora/payment tables found in this deployment. Declare the store tables (subscriptions, events, \u2026) in lunora/schema.ts and wire `payment` on createShardDO() to sync customers and subscriptions."),testId:"payments-unconfigured",title:t("No payments configured")})}):(0,e.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"payments-panel",children:[(0,e.jsx)("div",{className:"flex items-center gap-2","data-testid":"payments-summary",children:(0,e.jsxs)(y,{className:"justify-between gap-0 py-0",children:[(0,e.jsxs)("div",{className:"flex flex-col gap-2.5 p-4",children:[(0,e.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:t("Subscriptions")}),(0,e.jsxs)("div",{className:"flex items-center gap-2",children:[(0,e.jsx)("span",{className:"text-2xl font-semibold tabular-nums text-foreground",children:P}),(0,e.jsx)(x,{variant:"default",children:t("{count} active",{count:P})})]})]}),(0,e.jsx)("div",{className:"border-t border-border bg-muted/50 px-4 py-2.5 text-[11px] text-muted-foreground",children:t("{total} total",{total:f.length})})]})}),D===null?void 0:(0,e.jsx)(E,{error:O}),f.length===0&&!l.isLoading?(0,e.jsx)(w,{testId:"payments-empty",title:t("No subscriptions yet")}):(0,e.jsx)(y,{className:"overflow-hidden py-0",children:(0,e.jsx)(N,{className:"px-0",children:(0,e.jsxs)(A,{children:[(0,e.jsx)(T,{children:(0,e.jsxs)(g,{children:[(0,e.jsx)(c,{children:t("Provider")}),(0,e.jsx)(c,{children:t("Reference")}),(0,e.jsx)(c,{children:t("Plan")}),(0,e.jsx)(c,{children:t("State")}),(0,e.jsx)(c,{children:t("Renews")})]})}),(0,e.jsx)(I,{children:f.map(r=>{let u=i(n(r,"state"));return(0,e.jsxs)(g,{"data-testid":"payment-subscription-row",children:[(0,e.jsx)(a,{children:i(n(r,"provider"))}),(0,e.jsx)(a,{children:i(n(r,"referenceId"))}),(0,e.jsx)(a,{children:i(n(r,"priceId"))}),(0,e.jsx)(a,{children:(0,e.jsx)(x,{variant:M(u),children:u})}),(0,e.jsx)(a,{children:S(n(r,"currentPeriodEnd"))})]},i(n(r,"providerSubscriptionId")))})})]})})}),(0,e.jsxs)(y,{className:"overflow-hidden py-0",children:[(0,e.jsx)("header",{className:"border-b border-border px-4 py-3",children:(0,e.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:t("Recent webhook events")})}),(0,e.jsx)(N,{className:"px-0",children:(0,e.jsx)(A,{children:(0,e.jsx)(I,{children:B.map(r=>(0,e.jsxs)(g,{"data-testid":"payment-event-row",children:[(0,e.jsx)(a,{children:i(n(r,"provider"))}),(0,e.jsx)(a,{className:"font-medium",children:i(n(r,"type"))}),(0,e.jsx)(a,{className:"text-muted-foreground",children:i(n(r,"providerEventId"))}),(0,e.jsx)(a,{children:S(n(r,"processedAt"))})]},i(n(r,"providerEventId"))))})})})]})]})},"X");export{Y as PaymentsPanel};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as d,e as n,g as c,h as p}from"./chunk-
|
|
1
|
+
import{a as d,e as n,g as c,h as p}from"./chunk-3XIESWL4.js";var b=n(c(),1),s=n(p(),1);var y={alignItems:"center",border:"1px solid",borderRadius:4,display:"inline-flex",fontFamily:"var(--font-mono, ui-monospace, monospace)",fontSize:11,fontWeight:400,gap:6,letterSpacing:"0.06em",lineHeight:1.4,padding:"1px 8px",textTransform:"uppercase"},g={borderRadius:"50%",display:"inline-block",height:7,width:7},h=d((r,e,t,a)=>({badgeStyle:{...y,borderColor:r,color:r},color:r,dotStyle:{...g,backgroundColor:r},hint:a,label:e,title:t}),"i"),S={global:h("var(--royal-amethyst)","Global \xB7 D1","Global table \u2014 a single D1 table shared across all shards","Declared .global() and stored once in Cloudflare D1, shared across every shard and tenant. Auth tables (user, session, \u2026) live here too."),shard:h("var(--sky-sapphire)","Shard-local","Shard-local table \u2014 per-shard SQLite inside a Durable Object","Stored per shard key in a Durable Object's SQLite (.shardBy(...)). You are viewing one shard at a time \u2014 change the shard key to inspect another.")},m=d(r=>{let e=(0,b.c)(9),{tier:t}=r,a=S[t],i=`storage-tier-${t}`,l;e[0]!==a.dotStyle?(l=(0,s.jsx)("span",{"aria-hidden":"true",style:a.dotStyle}),e[0]=a.dotStyle,e[1]=l):l=e[1];let o;return e[2]!==a.badgeStyle||e[3]!==a.label||e[4]!==a.title||e[5]!==i||e[6]!==l||e[7]!==t?(o=(0,s.jsxs)("span",{"data-testid":i,"data-tier":t,style:a.badgeStyle,title:a.title,children:[l,a.label]}),e[2]=a.badgeStyle,e[3]=a.label,e[4]=a.title,e[5]=i,e[6]=l,e[7]=t,e[8]=o):o=e[8],o},"S");export{S as a,m as b};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as o,c as i}from"./chunk-
|
|
1
|
+
import{b as o,c as i}from"./chunk-7T7UOTYK.js";import{a as t}from"./chunk-3XIESWL4.js";var a="lunora-studio-recent-shards",l=10,n=t(()=>o(a,"session").filter(s=>typeof s=="string"),"t"),u=t(s=>{let r=s.trim();if(r==="")return n();let e=[r,...n().filter(c=>c!==r)].slice(0,l);return i(a,e,"session"),e},"d");export{n as a,u as b};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as J}from"./chunk-
|
|
1
|
+
import{a as J}from"./chunk-54MMVNPT.js";import{a as L}from"./chunk-LFKCLLPT.js";import{a as O}from"./chunk-UNUU7CJJ.js";import"./chunk-XXQUMVWH.js";import{b as _}from"./chunk-OWADN6BI.js";import{a as P,b as W,c as B,d as A,e as m,f as u}from"./chunk-MIQTKZAR.js";import{a as E,e as K}from"./chunk-UZERI5YC.js";import{a as F}from"./chunk-LFXFP4IF.js";import"./chunk-GRL5MG3Z.js";import"./chunk-7T7UOTYK.js";import"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import"./chunk-2OUPA2WJ.js";import{b as S}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as D}from"./chunk-GXZAXNZI.js";import"./chunk-LWECXQWP.js";import"./chunk-XBDKZZ67.js";import{a as T}from"./chunk-XQCVZAGU.js";import{d as j}from"./chunk-4CGALXS3.js";import"./chunk-LE56LPNH.js";import{a as N,e as C,f as X,g as q,h as z}from"./chunk-3XIESWL4.js";var U=C(q(),1),Z=C(X(),1);var e=C(z(),1);var R=80,G=N(a=>{if(a===void 0)return"";let t=JSON.stringify(a);return t.length>R?`${t.slice(0,R)}\u2026`:t},"X"),H=N(a=>{let t=[];for(let i of a){let n=i.id.toString();if(i.subscriptions.length===0){t.push({admin:i.admin,connectionId:i.id,key:`c${n}`,subscription:null});continue}i.subscriptions.forEach((s,y)=>{t.push({admin:i.admin,connectionId:i.id,key:`c${n}-s${y.toString()}`,subscription:s})})}return t},"Z"),M=(0,e.jsx)("span",{className:"text-muted-foreground",children:"\u2014"}),lt=N(a=>{let t=(0,U.c)(22),{initialShardKey:i}=a,n=j(),[s,y]=(0,Z.useState)(i??""),h;t[0]!==s?(h=s.trim(),t[0]=s,t[1]=h):h=t[1];let k=L(h,400),p;t[2]===Symbol.for("react.memo_cache_sentinel")?(p={},t[2]=p):p=t[2];let f;t[3]!==k?(f={keepPreviousData:!0,shardKey:k},t[3]=k,t[4]=f):f=t[4];let{data:r,error:o,errorSource:d,refetch:Q}=_(D.listSubscriptions,p,f);J(Q,!0);let b;if(t[5]!==o||t[6]!==d||t[7]!==r||t[8]!==s||t[9]!==n){let I=r===void 0?[]:H(r.connections),c;t[11]!==s?(c=(0,e.jsx)(F,{onChange:y,testId:"subs-shard-input",value:s}),t[11]=s,t[12]=c):c=t[12];let l;t[13]!==r||t[14]!==n?(l=r!==void 0&&(0,e.jsxs)("div",{className:"ml-auto flex items-center gap-2 text-sm text-muted-foreground","data-testid":"subs-count",children:[(0,e.jsx)(S,{variant:"secondary",children:n("{count} connections",{count:r.totalConnections})}),(0,e.jsx)(S,{variant:"secondary",children:n("{count} subscriptions",{count:r.totalSubscriptions})})]}),t[13]=r,t[14]=n,t[15]=l):l=t[15];let g;t[16]!==c||t[17]!==l?(g=(0,e.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[c,l]}),t[16]=c,t[17]=l,t[18]=g):g=t[18];let v;t[19]!==o||t[20]!==d?(v=o!==null&&(0,e.jsx)(O,{error:d,testId:"subs-error"}),t[19]=o,t[20]=d,t[21]=v):v=t[21],b=(0,e.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"subs-panel",children:[g,v,o===null&&r!==void 0&&I.length===0&&(0,e.jsx)(T,{description:n("Active WebSocket subscriptions on this shard."),icon:(0,e.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:(0,e.jsx)("path",{d:"M5 12a7 7 0 0 1 14 0M8 12a4 4 0 0 1 8 0M12 12v8m0-8a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"})}),testId:"subs-empty",title:n("No active subscriptions.")}),o===null&&I.length>0&&(0,e.jsx)(E,{className:"overflow-hidden py-0",children:(0,e.jsx)(K,{className:"px-0",children:(0,e.jsxs)(P,{"data-testid":"subs-table",children:[(0,e.jsx)(W,{children:(0,e.jsxs)(A,{children:[(0,e.jsx)(m,{children:n("Connection")}),(0,e.jsx)(m,{children:n("Function path")}),(0,e.jsx)(m,{children:n("Table")}),(0,e.jsx)(m,{children:n("Arguments")})]})}),(0,e.jsx)(B,{children:I.map(x=>{let{subscription:w}=x,$=G(w?.args);return(0,e.jsxs)(A,{"data-testid":"subs-row",children:[(0,e.jsx)(u,{className:"font-medium tabular-nums",children:(0,e.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:["#",x.connectionId,x.admin&&(0,e.jsx)(S,{variant:"outline",children:n("admin")})]})}),(0,e.jsx)(u,{className:"font-mono text-xs",children:w?.functionPath??M}),(0,e.jsx)(u,{children:w?.table??M}),(0,e.jsx)(u,{className:"max-w-[32ch] truncate font-mono text-xs text-muted-foreground",title:$||void 0,children:$||M})]},x.key)})})]})})})]}),t[5]=o,t[6]=d,t[7]=r,t[8]=s,t[9]=n,t[10]=b}else b=t[10];return b},"at");export{lt as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as v}from"./chunk-
|
|
1
|
+
import{a as v}from"./chunk-UNUU7CJJ.js";import{a as w,b as y,c as $,d,e as c,f as i}from"./chunk-MIQTKZAR.js";import{a as b,e as N}from"./chunk-UZERI5YC.js";import{d as x}from"./chunk-4CGALXS3.js";import{a as s,e as g,f as T,h as O,j as h}from"./chunk-3XIESWL4.js";var m=g(T(),1);var e=g(O(),1);var S={ERROR:"error",INFO:"info",WARN:"warning"},M=s(r=>{let n=typeof r.metadata.table=="string"?r.metadata.table:void 0;return{description:`${r.detail} ${r.remediation}`,entity:n,issueType:r.title,key:r.cacheKey,level:S[r.level]}},"q"),j=["error","warning","info"],A={error:"bg-destructive",info:"bg-info",warning:"bg-warning"},C=s((r,n)=>({error:r("Errors"),info:r("Info"),warning:r("Warnings")})[n],"S"),W=s((r,n,o)=>({error:r("{count} errors",{count:o}),info:r("{count} suggestions",{count:o}),warning:r("{count} warnings",{count:o})})[n],"j"),q=s((r,n)=>({error:r("No errors detected"),info:r("No suggestions"),warning:r("No warnings detected")})[n],"C"),G=s(({error:r=null,errorSource:n,rows:o,testId:l,toolbar:f})=>{let a=x(),[u,k]=(0,m.useState)("error"),I=(0,m.useMemo)(()=>{let t={error:0,info:0,warning:0};for(let R of o??[])t[R.level]+=1;return t},[o]),p=(o??[]).filter(t=>t.level===u),E=s(t=>{k(t.currentTarget.dataset.level)},"h");return(0,e.jsxs)("div",{className:"flex flex-col gap-3","data-testid":l,children:[(0,e.jsx)("div",{className:"flex border-b border-border",role:"tablist",children:j.map(t=>(0,e.jsxs)("button",{"aria-selected":u===t,className:"flex min-w-32 flex-col gap-0.5 border-b-2 border-transparent px-4 py-2 text-start outline-none transition-colors hover:bg-muted/40 focus-visible:bg-muted/40 aria-selected:border-foreground","data-level":t,"data-testid":`${l}-tab-${t}`,onClick:E,role:"tab",type:"button",children:[(0,e.jsxs)("span",{className:"flex items-center gap-2 text-sm font-medium text-foreground",children:[(0,e.jsx)("span",{"aria-hidden":"true",className:h("size-2 rounded-sm",A[t])}),C(a,t)]}),(0,e.jsx)("span",{className:"ps-4 text-xs text-muted-foreground",children:W(a,t,I[t])})]},t))}),f!==void 0&&(0,e.jsx)("div",{className:"flex flex-wrap items-center gap-2",children:f}),r!==null&&(0,e.jsx)(v,{error:n??r,testId:`${l}-error`}),(0,e.jsx)(b,{className:"overflow-hidden py-0",children:(0,e.jsx)(N,{className:"px-0",children:(0,e.jsxs)(w,{children:[(0,e.jsx)(y,{children:(0,e.jsxs)(d,{children:[(0,e.jsx)(c,{children:a("Issue type")}),(0,e.jsx)(c,{children:a("Entity/item")}),(0,e.jsx)(c,{children:a("Description")})]})}),(0,e.jsx)($,{children:p.length===0?(0,e.jsx)(d,{children:(0,e.jsxs)(i,{className:"h-40 text-center align-middle text-muted-foreground",colSpan:3,"data-testid":`${l}-empty`,children:[(0,e.jsx)("span",{className:"block text-sm font-medium text-foreground",children:q(a,u)}),(0,e.jsx)("span",{className:"block text-sm",children:a("Nothing to report for this deployment.")})]})}):p.map(t=>(0,e.jsxs)(d,{children:[(0,e.jsx)(i,{className:"font-medium text-foreground",children:t.issueType}),(0,e.jsx)(i,{className:"font-mono text-xs text-muted-foreground",children:t.entity??"\u2014"}),(0,e.jsxs)(i,{className:"text-muted-foreground",children:[(0,e.jsx)("span",{children:t.description}),t.action!==void 0&&(0,e.jsx)("span",{className:"mt-1.5 flex flex-wrap items-center gap-1.5",children:t.action})]})]},t.key))})]})})})]})},"B");export{M as a,G as b};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,e as l,g as i,h as p,j as n}from"./chunk-
|
|
1
|
+
import{a,e as l,g as i,h as p,j as n}from"./chunk-3XIESWL4.js";var c=l(i(),1);var d=l(p(),1);function f(r){let t=(0,c.c)(8),e,s;t[0]!==r?({className:e,...s}=r,t[0]=r,t[1]=e,t[2]=s):(e=t[1],s=t[2]);let o;t[3]!==e?(o=n("animate-pulse rounded-md bg-muted",e),t[3]=e,t[4]=o):o=t[4];let m;return t[5]!==s||t[6]!==o?(m=(0,d.jsx)("div",{"data-slot":"skeleton",className:o,...s}),t[5]=s,t[6]=o,t[7]=m):m=t[7],m}a(f,"p");export{f as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as o}from"./chunk-
|
|
1
|
+
import{j as o}from"./chunk-6ST5ECQA.js";import{a as r,e as i,f as p}from"./chunk-3XIESWL4.js";var a=i(p(),1);var R=a.forwardRef(r(function(e,n){let{className:l,render:m,orientation:t="horizontal",style:f,...s}=e;return o("div",e,{state:{orientation:t},ref:n,props:[{role:"separator","aria-orientation":t},s]})},"SeparatorComponent"));export{R as a};
|