@lunora/studio 1.0.0-alpha.83 → 1.0.0-alpha.85
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-PXYWCZ7T.js → chunk-22LOWEEC.js} +1 -1
- package/dist/standalone/{chunk-6VAKZALJ.js → chunk-232MBXB2.js} +1 -1
- package/dist/standalone/{chunk-GB6LP6UJ.js → chunk-2EJADIPC.js} +1 -1
- package/dist/standalone/{chunk-D2RKH6JK.js → chunk-2SC3EG5Y.js} +1 -1
- package/dist/standalone/{chunk-UDVB4URN.js → chunk-347H2BQO.js} +1 -1
- package/dist/standalone/{chunk-A3KUNMU6.js → chunk-4I2TBTZS.js} +1 -1
- package/dist/standalone/{chunk-B2H5DK55.js → chunk-52OYJHM7.js} +1 -1
- package/dist/standalone/{chunk-YTA2HGRD.js → chunk-5YADKLAQ.js} +1 -1
- package/dist/standalone/{chunk-C7EOC2WS.js → chunk-6IEBRNDW.js} +1 -1
- package/dist/standalone/{chunk-HEB6GQQ6.js → chunk-7AG3T4DK.js} +2 -2
- package/dist/standalone/{chunk-53WEPGUD.js → chunk-AHVDZWB3.js} +1 -1
- package/dist/standalone/{chunk-CU55Y5TV.js → chunk-AQKXMWNF.js} +1 -1
- package/dist/standalone/{chunk-LLF5KWDZ.js → chunk-BAAU4OTI.js} +1 -1
- package/dist/standalone/{chunk-Y7A5NCXT.js → chunk-D3FRQZ4X.js} +1 -1
- package/dist/standalone/{chunk-T242WITF.js → chunk-D67BVBQW.js} +1 -1
- package/dist/standalone/{chunk-WQVVA5NB.js → chunk-EDOMDMVI.js} +1 -1
- package/dist/standalone/{chunk-GM67EQJU.js → chunk-ENBTOX7N.js} +1 -1
- package/dist/standalone/{chunk-DOZAODYC.js → chunk-ESKVOZLC.js} +1 -1
- package/dist/standalone/{chunk-KAPSM6AI.js → chunk-ETZYJL7Z.js} +1 -1
- package/dist/standalone/{chunk-PD4LANXJ.js → chunk-FUBR2PAD.js} +1 -1
- package/dist/standalone/{chunk-GWQIPIYA.js → chunk-HJR42BJY.js} +1 -1
- package/dist/standalone/{chunk-SV52HB7D.js → chunk-JAT5ZBQK.js} +1 -1
- package/dist/standalone/{chunk-CGLS2ILT.js → chunk-JE3WK77V.js} +1 -1
- package/dist/standalone/{chunk-6QP5N57V.js → chunk-KNHWIHC7.js} +1 -1
- package/dist/standalone/{chunk-OE465DVY.js → chunk-LVJ5IHEU.js} +1 -1
- package/dist/standalone/{chunk-TQXZ7LG4.js → chunk-MBVSXVTV.js} +1 -1
- package/dist/standalone/{chunk-7YKWP4QK.js → chunk-MDHUWMFD.js} +1 -1
- package/dist/standalone/{chunk-WZ3B3MEV.js → chunk-MLULN4R2.js} +1 -1
- package/dist/standalone/{chunk-Y5Y7DHFW.js → chunk-MN64D74P.js} +1 -1
- package/dist/standalone/{chunk-ZHBIKP5G.js → chunk-MUGKOGZG.js} +1 -1
- package/dist/standalone/{chunk-HOR3JLUY.js → chunk-NPKNFZUW.js} +1 -1
- package/dist/standalone/{chunk-KXSSTTEY.js → chunk-OLM62NLS.js} +1 -1
- package/dist/standalone/{chunk-Q7O6B7WC.js → chunk-OOL3FV6A.js} +1 -1
- package/dist/standalone/{chunk-DGBJE7YF.js → chunk-OV63HVE4.js} +1 -1
- package/dist/standalone/{chunk-SDQBPFLO.js → chunk-PWTURL56.js} +1 -1
- package/dist/standalone/{chunk-GN567L2T.js → chunk-QFJRZR4U.js} +1 -1
- package/dist/standalone/{chunk-WJGOI3FZ.js → chunk-QI25LTPH.js} +1 -1
- package/dist/standalone/{chunk-TBRZQICB.js → chunk-QNRAMF4X.js} +1 -1
- package/dist/standalone/{chunk-AADILRJW.js → chunk-QNUWWC3N.js} +12 -12
- package/dist/standalone/{chunk-UETNCBWU.js → chunk-QS4IFAFJ.js} +1 -1
- package/dist/standalone/{chunk-ZK3XKFCI.js → chunk-QSFKPGK4.js} +1 -1
- package/dist/standalone/{chunk-GWHM4C4N.js → chunk-QZ6TCNWR.js} +1 -1
- package/dist/standalone/{chunk-VTLYN3CX.js → chunk-RC3H4OP3.js} +1 -1
- package/dist/standalone/{chunk-7ZUQE3KU.js → chunk-RFBU5RZI.js} +1 -1
- package/dist/standalone/{chunk-7L7FXGJU.js → chunk-S67SBGB3.js} +1 -1
- package/dist/standalone/{chunk-VC5SSRUP.js → chunk-SHD2IWQI.js} +1 -1
- package/dist/standalone/{chunk-NRCXRCJX.js → chunk-SKFZXESP.js} +1 -1
- package/dist/standalone/{chunk-KSRP7GZV.js → chunk-SPT3KPV7.js} +1 -1
- package/dist/standalone/{chunk-74DN6HIE.js → chunk-TIR6CWHO.js} +1 -1
- package/dist/standalone/{chunk-Q7QTRX2E.js → chunk-TO45V3L6.js} +1 -1
- package/dist/standalone/{chunk-HJD2YUQS.js → chunk-U44CWN7H.js} +1 -1
- package/dist/standalone/{chunk-VCXH5V3Z.js → chunk-U5IIRHZ6.js} +1 -1
- package/dist/standalone/{chunk-EN2QAEO4.js → chunk-UBR4KB6K.js} +1 -1
- package/dist/standalone/{chunk-ZI5ZVNIN.js → chunk-UOQ24BAY.js} +1 -1
- package/dist/standalone/{chunk-BDJCCVB6.js → chunk-VKEJTZY7.js} +1 -1
- package/dist/standalone/{chunk-RNL6BSFM.js → chunk-VORDESEQ.js} +1 -1
- package/dist/standalone/{chunk-XDAT7LHC.js → chunk-YGKR536O.js} +1 -1
- package/dist/standalone/{chunk-CU6SCYQ7.js → chunk-YNBIW2GN.js} +1 -1
- package/dist/standalone/{chunk-WDG4WFUV.js → chunk-YSMJN36P.js} +1 -1
- package/dist/standalone/{chunk-5SQRE3VR.js → chunk-ZOX6X2DL.js} +1 -1
- package/dist/standalone/studio.js +1 -1
- package/package.json +6 -6
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{b as Ue}from"./chunk-WLZ7YPBH.js";import{c as _e}from"./chunk-XF2B7P5A.js";import"./chunk-7H7LZRLP.js";import"./chunk-SD4BERSA.js";import"./chunk-IC4L6G56.js";import{a as ye}from"./chunk-JN2Y24PY.js";import"./chunk-ESVP44Y3.js";import{a as Re}from"./chunk-54MMVNPT.js";import"./chunk-I6A5C46N.js";import"./chunk-2QSHLBCO.js";import"./chunk-BGBLQ563.js";import"./chunk-IVFHIQOT.js";import"./chunk-QBWRC5YX.js";import{a as Le}from"./chunk-QXXIJAD5.js";import{a as De}from"./chunk-X665E2HU.js";import"./chunk-GRL5MG3Z.js";import"./chunk-7T7UOTYK.js";import{R as Ne}from"./chunk-CFPZYHPY.js";import"./chunk-T6VMSOBB.js";import"./chunk-7QIFDWQV.js";import{c as re}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import{b as ae}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as be}from"./chunk-ERMTJYQF.js";import{f as Se}from"./chunk-
|
|
1
|
+
import{b as Ue}from"./chunk-WLZ7YPBH.js";import{c as _e}from"./chunk-XF2B7P5A.js";import"./chunk-7H7LZRLP.js";import"./chunk-SD4BERSA.js";import"./chunk-IC4L6G56.js";import{a as ye}from"./chunk-JN2Y24PY.js";import"./chunk-ESVP44Y3.js";import{a as Re}from"./chunk-54MMVNPT.js";import"./chunk-I6A5C46N.js";import"./chunk-2QSHLBCO.js";import"./chunk-BGBLQ563.js";import"./chunk-IVFHIQOT.js";import"./chunk-QBWRC5YX.js";import{a as Le}from"./chunk-QXXIJAD5.js";import{a as De}from"./chunk-X665E2HU.js";import"./chunk-GRL5MG3Z.js";import"./chunk-7T7UOTYK.js";import{R as Ne}from"./chunk-CFPZYHPY.js";import"./chunk-T6VMSOBB.js";import"./chunk-7QIFDWQV.js";import{c as re}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import{b as ae}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as be}from"./chunk-ERMTJYQF.js";import{f as Se}from"./chunk-UBR4KB6K.js";import"./chunk-XBDKZZ67.js";import{a as he}from"./chunk-XQCVZAGU.js";import{a as $e,b as Te,c as Fe,d as ce,e as ne,f as ee}from"./chunk-MIQTKZAR.js";import{a as je,e as ze}from"./chunk-UZERI5YC.js";import{d as Ce,f as me,g as ge,h as X,m as W,o as Ke,p as pe}from"./chunk-OG4N2XHD.js";import"./chunk-QNUWWC3N.js";import{a as g,e as fe,f as mt,g as gt,h as pt}from"./chunk-3XIESWL4.js";var M=fe(gt(),1),j=fe(mt(),1);var n=fe(pt(),1);var Oe=g((d,e,t)=>{let{onCopy:r,onDelete:s,onDownload:o,onToggleSelect:c}=t,i=g(()=>{r(d.key)},"i"),l=g(()=>{o(d.key)},"o"),u=g(()=>{s(d.key)},"u"),h=g(()=>{c(d.key)},"h");return{copy:i,download:l,name:d.key.slice(e.length),remove:u,toggle:h}},"Ke"),Me=g(d=>{let e=(0,M.c)(31),{busy:t,buttonClassName:r,copied:s,objectKey:o,onCopy:c,onDelete:i,onDownload:l,t:u}=d,h=`storage-copy-${o}`,f;e[0]!==s||e[1]!==u?(f=u(s?"Copied":"Copy URL"),e[0]=s,e[1]=u,e[2]=f):f=e[2];let m;e[3]!==t||e[4]!==r||e[5]!==c||e[6]!==h||e[7]!==f?(m=(0,n.jsx)(re,{className:r,"data-testid":h,disabled:t,onClick:c,size:"sm",type:"button",variant:"ghost",children:f}),e[3]=t,e[4]=r,e[5]=c,e[6]=h,e[7]=f,e[8]=m):m=e[8];let w=`storage-download-${o}`,a;e[9]!==u?(a=u("Download"),e[9]=u,e[10]=a):a=e[10];let k;e[11]!==t||e[12]!==r||e[13]!==l||e[14]!==w||e[15]!==a?(k=(0,n.jsx)(re,{className:r,"data-testid":w,disabled:t,onClick:l,size:"sm",type:"button",variant:"ghost",children:a}),e[11]=t,e[12]=r,e[13]=l,e[14]=w,e[15]=a,e[16]=k):k=e[16];let C;e[17]!==u?(C=u("Delete object?"),e[17]=u,e[18]=C):C=e[18];let x=`storage-delete-${o}`,b;e[19]!==u?(b=u("Delete"),e[19]=u,e[20]=b):b=e[20];let v;e[21]!==t||e[22]!==i||e[23]!==C||e[24]!==x||e[25]!==b?(v=(0,n.jsx)(Le,{confirmLabel:C,disabled:t,onConfirm:i,testId:x,children:b}),e[21]=t,e[22]=i,e[23]=C,e[24]=x,e[25]=b,e[26]=v):v=e[26];let y;return e[27]!==v||e[28]!==m||e[29]!==k?(y=(0,n.jsxs)(n.Fragment,{children:[m,k,v]}),e[27]=v,e[28]=m,e[29]=k,e[30]=y):y=e[30],y},"De"),Ae=g(d=>{let e=(0,M.c)(14),{objectKey:t,references:r,t:s}=d;if(r===void 0)return null;if(r.length===0){let h=`storage-orphan-${t}`,f;e[0]!==s?(f=s("Orphan"),e[0]=s,e[1]=f):f=e[1];let m;return e[2]!==h||e[3]!==f?(m=(0,n.jsx)(ae,{"data-testid":h,variant:"warning",children:f}),e[2]=h,e[3]=f,e[4]=m):m=e[4],m}let o;e[5]!==r?(o=r.map(bt).join(`
|
|
2
2
|
`),e[5]=r,e[6]=o):o=e[6];let c=o,i=`storage-refs-${t}`,l;e[7]!==r.length||e[8]!==s?(l=r.length===1?s("1 record"):s("{count} records",{count:r.length}),e[7]=r.length,e[8]=s,e[9]=l):l=e[9];let u;return e[10]!==c||e[11]!==i||e[12]!==l?(u=(0,n.jsx)(ae,{"data-testid":i,title:c,variant:"secondary",children:l}),e[10]=c,e[11]=i,e[12]=l,e[13]=u):u=e[13],u},"Te"),Pe=g(d=>{let e=(0,M.c)(7),{objectKey:t,onToggle:r,selected:s,t:o}=d,c;e[0]!==o?(c=o("Select row"),e[0]=o,e[1]=c):c=e[1];let i=`storage-select-${t}`,l;return e[2]!==r||e[3]!==s||e[4]!==c||e[5]!==i?(l=(0,n.jsx)(ye,{"aria-label":c,checked:s,"data-testid":i,onCheckedChange:r}),e[2]=r,e[3]=s,e[4]=c,e[5]=i,e[6]=l):l=e[6],l},"Fe");function bt(d){return`${d.table}\xB7${d.id}`}g(bt,"yt");var yt=g(d=>{let e=(0,M.c)(10),{colSpan:t,name:r,onEnter:s}=d,o;e[0]!==r||e[1]!==s?(o=g(()=>{s(r)},"n"),e[0]=r,e[1]=s,e[2]=o):o=e[2];let c=o,i;e[3]===Symbol.for("react.memo_cache_sentinel")?(i=(0,n.jsx)("svg",{"aria-hidden":"true",className:"size-4 text-muted-foreground",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:(0,n.jsx)("path",{d:"M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7Z"})}),e[3]=i):i=e[3];let l;e[4]!==c||e[5]!==r?(l=(0,n.jsxs)("button",{className:"inline-flex items-center gap-2 font-mono text-xs outline-none hover:text-foreground focus-visible:text-foreground","data-testid":"fb-folder",onClick:c,type:"button",children:[i,r]}),e[4]=c,e[5]=r,e[6]=l):l=e[6];let u;return e[7]!==t||e[8]!==l?(u=(0,n.jsx)(ce,{children:(0,n.jsx)(ee,{colSpan:t,children:l})}),e[7]=t,e[8]=l,e[9]=u):u=e[9],u},"xt"),xt=g(d=>{let e=(0,M.c)(37),{busy:t,copiedKey:r,handlers:s,object:o,prefix:c,references:i,selected:l,showReferences:u,t:h}=d,f;e[0]!==s||e[1]!==o||e[2]!==c?(f=Oe(o,c,s),e[0]=s,e[1]=o,e[2]=c,e[3]=f):f=e[3];let{copy:m,download:w,name:a,remove:k,toggle:C}=f,x;e[4]!==o.key||e[5]!==l||e[6]!==h||e[7]!==C?(x=(0,n.jsx)(ee,{className:"w-8",children:(0,n.jsx)(Pe,{objectKey:o.key,onToggle:C,selected:l,t:h})}),e[4]=o.key,e[5]=l,e[6]=h,e[7]=C,e[8]=x):x=e[8];let b;e[9]!==a?(b=(0,n.jsx)(ee,{className:"font-mono text-xs",children:a}),e[9]=a,e[10]=b):b=e[10];let v;e[11]!==o.size?(v=pe(o.size),e[11]=o.size,e[12]=v):v=e[12];let y;e[13]!==v?(y=(0,n.jsx)(ee,{className:"tabular-nums text-muted-foreground",children:v}),e[13]=v,e[14]=y):y=e[14];let z=o.httpMetadata?.contentType??"",S;e[15]!==z?(S=(0,n.jsx)(ee,{children:z}),e[15]=z,e[16]=S):S=e[16];let N;e[17]!==o.key||e[18]!==i||e[19]!==u||e[20]!==h?(N=u&&(0,n.jsx)(ee,{children:(0,n.jsx)(Ae,{objectKey:o.key,references:i,t:h})}),e[17]=o.key,e[18]=i,e[19]=u,e[20]=h,e[21]=N):N=e[21];let $=r===o.key,K;e[22]!==t||e[23]!==m||e[24]!==w||e[25]!==o.key||e[26]!==k||e[27]!==h||e[28]!==$?(K=(0,n.jsx)(ee,{className:"text-right",children:(0,n.jsx)("span",{className:"inline-flex items-center gap-1",children:(0,n.jsx)(Me,{busy:t,copied:$,objectKey:o.key,onCopy:m,onDelete:k,onDownload:w,t:h})})}),e[22]=t,e[23]=m,e[24]=w,e[25]=o.key,e[26]=k,e[27]=h,e[28]=$,e[29]=K):K=e[29];let F;return e[30]!==K||e[31]!==x||e[32]!==b||e[33]!==y||e[34]!==S||e[35]!==N?(F=(0,n.jsxs)(ce,{"data-testid":"fb-row",children:[x,b,y,S,N,K]}),e[30]=K,e[31]=x,e[32]=b,e[33]=y,e[34]=S,e[35]=N,e[36]=F):F=e[36],F},"vt"),vt=g(d=>{let e=(0,M.c)(65),{allSelected:t,busy:r,copiedKey:s,files:o,folders:c,handlers:i,onEnterFolder:l,prefix:u,references:h,selected:f,showReferences:m,someSelected:w,t:a,toggleSelectAll:k}=d,C;e[0]!==a?(C=a("Select all rows"),e[0]=a,e[1]=C):C=e[1];let x;e[2]!==t||e[3]!==w||e[4]!==C||e[5]!==k?(x=(0,n.jsx)(ne,{className:"w-8",children:(0,n.jsx)(ye,{"aria-label":C,checked:t,"data-testid":"storage-select-all",indeterminate:w,onCheckedChange:k})}),e[2]=t,e[3]=w,e[4]=C,e[5]=k,e[6]=x):x=e[6];let b;e[7]!==a?(b=a("key"),e[7]=a,e[8]=b):b=e[8];let v;e[9]!==b?(v=(0,n.jsx)(ne,{children:b}),e[9]=b,e[10]=v):v=e[10];let y;e[11]!==a?(y=a("size"),e[11]=a,e[12]=y):y=e[12];let z;e[13]!==y?(z=(0,n.jsx)(ne,{children:y}),e[13]=y,e[14]=z):z=e[14];let S;e[15]!==a?(S=a("content-type"),e[15]=a,e[16]=S):S=e[16];let N;e[17]!==S?(N=(0,n.jsx)(ne,{children:S}),e[17]=S,e[18]=N):N=e[18];let $;e[19]!==m||e[20]!==a?($=m&&(0,n.jsx)(ne,{children:a("used by")}),e[19]=m,e[20]=a,e[21]=$):$=e[21];let K;e[22]!==a?(K=a("Actions"),e[22]=a,e[23]=K):K=e[23];let F;e[24]!==K?(F=(0,n.jsx)(ne,{"aria-label":K}),e[24]=K,e[25]=F):F=e[25];let T;e[26]!==F||e[27]!==x||e[28]!==v||e[29]!==z||e[30]!==N||e[31]!==$?(T=(0,n.jsx)(Te,{children:(0,n.jsxs)(ce,{children:[x,v,z,N,$,F]})}),e[26]=F,e[27]=x,e[28]=v,e[29]=z,e[30]=N,e[31]=$,e[32]=T):T=e[32];let L;if(e[33]!==c||e[34]!==l||e[35]!==m){let R;e[37]!==l||e[38]!==m?(R=g(_=>(0,n.jsx)(yt,{colSpan:m?6:5,name:_,onEnter:l},_),"R"),e[37]=l,e[38]=m,e[39]=R):R=e[39],L=c.map(R),e[33]=c,e[34]=l,e[35]=m,e[36]=L}else L=e[36];let B;if(e[40]!==r||e[41]!==s||e[42]!==o||e[43]!==i||e[44]!==u||e[45]!==h||e[46]!==f||e[47]!==m||e[48]!==a){let R;e[50]!==r||e[51]!==s||e[52]!==i||e[53]!==u||e[54]!==h||e[55]!==f||e[56]!==m||e[57]!==a?(R=g(_=>(0,n.jsx)(xt,{busy:r,copiedKey:s,handlers:i,object:_,prefix:u,references:h[_.key],selected:f.has(_.key),showReferences:m,t:a},_.key),"R"),e[50]=r,e[51]=s,e[52]=i,e[53]=u,e[54]=h,e[55]=f,e[56]=m,e[57]=a,e[58]=R):R=e[58],B=o.map(R),e[40]=r,e[41]=s,e[42]=o,e[43]=i,e[44]=u,e[45]=h,e[46]=f,e[47]=m,e[48]=a,e[49]=B}else B=e[49];let U;e[59]!==L||e[60]!==B?(U=(0,n.jsxs)(Fe,{children:[L,B]}),e[59]=L,e[60]=B,e[61]=U):U=e[61];let I;return e[62]!==T||e[63]!==U?(I=(0,n.jsx)(je,{className:"overflow-hidden py-0",children:(0,n.jsx)(ze,{className:"px-0",children:(0,n.jsxs)($e,{"data-testid":"fb-table",children:[T,U]})})}),e[62]=T,e[63]=U,e[64]=I):I=e[64],I},"kt"),kt=[{label:"15m",seconds:900},{label:"1h",seconds:3600},{label:"24h",seconds:86400},{label:"7d",seconds:604800}],wt=3600,Be=g((d,e)=>{if(e==="size")return d.size;if(e==="type")return d.httpMetadata?.contentType??"";if(e==="date"){if(d.uploaded===void 0)return 0;let t=new Date(d.uploaded).getTime();return Number.isNaN(t)?0:t}return e.startsWith("tag:")?d.customMetadata?.[e.slice(4)]??"":d.key},"ve"),St=g((d,e,t)=>{let r=t==="desc"?-1:1;return d.toSorted((s,o)=>{let c=Be(s,e),i=Be(o,e);return(typeof c=="number"&&typeof i=="number"?c-i:String(c).localeCompare(String(i)))*r})},"Nt"),Ct=g((d,e)=>{let t=new Set,r=[];for(let s of d){let o=s.key.slice(e.length),c=o.indexOf("/");c===-1?r.push(s):t.add(o.slice(0,c+1))}return{files:r,folders:[...t].toSorted((s,o)=>s.localeCompare(o))}},"Ct"),Nt=g(d=>{let e=(0,M.c)(59),{bucket:t,buckets:r,busy:s,draftPrefix:o,expiry:c,fileInputRef:i,onBucketChange:l,onExpiryChange:u,onFileChange:h,onList:f,onPrefixChange:m,onUploadClick:w,t:a}=d,k;e[0]!==m?(k=g(P=>{m(P.target.value)},"v"),e[0]=m,e[1]=k):k=e[1];let C=k,x;e[2]!==l?(x=g(P=>{l(P.target.value)},"y"),e[2]=l,e[3]=x):x=e[3];let b=x,v;e[4]!==u?(v=g(P=>{u(Number.parseInt(P.target.value,10))},"x"),e[4]=u,e[5]=v):v=e[5];let y=v,z;e[6]!==t||e[7]!==r||e[8]!==b||e[9]!==a?(z=r.length>0&&(0,n.jsx)("select",{"aria-label":a("Bucket"),className:"h-8 rounded-md border border-border bg-background px-1 outline-none focus-visible:border-ring","data-testid":"fb-bucket",onChange:b,value:t,children:r.map(zt)}),e[6]=t,e[7]=r,e[8]=b,e[9]=a,e[10]=z):z=e[10];let S;e[11]!==a?(S=a("Key prefix"),e[11]=a,e[12]=S):S=e[12];let N;e[13]!==a?(N=a("key prefix (optional)"),e[13]=a,e[14]=N):N=e[14];let $;e[15]!==o||e[16]!==C||e[17]!==S||e[18]!==N?($=(0,n.jsx)(Ne,{"aria-label":S,className:"h-8 w-64 max-w-full","data-testid":"fb-prefix-input",onChange:C,placeholder:N,value:o}),e[15]=o,e[16]=C,e[17]=S,e[18]=N,e[19]=$):$=e[19];let K;e[20]!==a?(K=a("List"),e[20]=a,e[21]=K):K=e[21];let F;e[22]!==s||e[23]!==f||e[24]!==K?(F=(0,n.jsx)(re,{"data-testid":"fb-list",disabled:s,onClick:f,size:"sm",type:"button",children:K}),e[22]=s,e[23]=f,e[24]=K,e[25]=F):F=e[25];let T;e[26]!==s||e[27]!==a?(T=a(s?"Uploading\u2026":"Upload"),e[26]=s,e[27]=a,e[28]=T):T=e[28];let L;e[29]!==s||e[30]!==w||e[31]!==T?(L=(0,n.jsx)(re,{"data-testid":"storage-upload",disabled:s,onClick:w,size:"sm",type:"button",variant:"outline",children:T}),e[29]=s,e[30]=w,e[31]=T,e[32]=L):L=e[32];let B;e[33]!==i||e[34]!==h?(B=(0,n.jsx)("input",{className:"hidden","data-testid":"storage-file-input",onChange:h,ref:i,type:"file"}),e[33]=i,e[34]=h,e[35]=B):B=e[35];let U;e[36]!==a?(U=a("Link expiry"),e[36]=a,e[37]=U):U=e[37];let I;e[38]!==a?(I=kt.map(P=>(0,n.jsx)("option",{value:P.seconds,children:a(P.label)},P.seconds)),e[38]=a,e[39]=I):I=e[39];let R;e[40]!==c||e[41]!==y||e[42]!==I?(R=(0,n.jsx)("select",{className:"h-8 rounded-md border border-border bg-background px-1 tabular-nums outline-none focus-visible:border-ring","data-testid":"storage-expiry",id:"storage-expiry",onChange:y,value:c,children:I}),e[40]=c,e[41]=y,e[42]=I,e[43]=R):R=e[43];let _;e[44]!==U||e[45]!==R?(_=(0,n.jsxs)("label",{className:"ml-auto flex items-center gap-1.5 text-xs text-muted-foreground",htmlFor:"storage-expiry",children:[U,R]}),e[44]=U,e[45]=R,e[46]=_):_=e[46];let O;e[47]!==a?(O=a("Open in Cloudflare"),e[47]=a,e[48]=O):O=e[48];let A;e[49]!==O?(A=(0,n.jsx)("a",{className:"text-sm text-primary underline-offset-4 hover:underline","data-testid":"fb-cf-link",href:_e,rel:"noreferrer",target:"_blank",children:O}),e[49]=O,e[50]=A):A=e[50];let G;return e[51]!==L||e[52]!==B||e[53]!==_||e[54]!==A||e[55]!==z||e[56]!==$||e[57]!==F?(G=(0,n.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[z,$,F,L,B,_,A]}),e[51]=L,e[52]=B,e[53]=_,e[54]=A,e[55]=z,e[56]=$,e[57]=F,e[58]=G):G=e[58],G},"$t"),jt=g(d=>{let e=(0,M.c)(66),{onSortKeyChange:t,onThumbSizeChange:r,showGrid:s,showList:o,sortDirection:c,sortKey:i,t:l,tagKeys:u,thumbSize:h,toggleSortDirection:f,view:m}=d,w;e[0]!==t?(w=g(V=>{t(V.target.value)},"k"),e[0]=t,e[1]=w):w=e[1];let a=w,k;e[2]!==r?(k=g(V=>{r(Number.parseInt(V.target.value,10))},"v"),e[2]=r,e[3]=k):k=e[3];let C=k,x=m==="list",b;e[4]!==l?(b=l("List"),e[4]=l,e[5]=b):b=e[5];let v;e[6]!==o||e[7]!==x||e[8]!==b?(v=(0,n.jsx)("button",{"aria-pressed":x,className:"px-2 py-1 outline-none transition-colors hover:bg-accent aria-pressed:bg-accent aria-pressed:text-accent-foreground","data-testid":"fb-view-list",onClick:o,type:"button",children:b}),e[6]=o,e[7]=x,e[8]=b,e[9]=v):v=e[9];let y=m==="grid",z;e[10]!==l?(z=l("Grid"),e[10]=l,e[11]=z):z=e[11];let S;e[12]!==s||e[13]!==y||e[14]!==z?(S=(0,n.jsx)("button",{"aria-pressed":y,className:"border-s border-border px-2 py-1 outline-none transition-colors hover:bg-accent aria-pressed:bg-accent aria-pressed:text-accent-foreground","data-testid":"fb-view-grid",onClick:s,type:"button",children:z}),e[12]=s,e[13]=y,e[14]=z,e[15]=S):S=e[15];let N;e[16]!==v||e[17]!==S?(N=(0,n.jsxs)("div",{className:"inline-flex overflow-hidden rounded-md border border-border",children:[v,S]}),e[16]=v,e[17]=S,e[18]=N):N=e[18];let $;e[19]!==l?($=l("Sort"),e[19]=l,e[20]=$):$=e[20];let K;e[21]!==l?(K=l("Name"),e[21]=l,e[22]=K):K=e[22];let F;e[23]!==K?(F=(0,n.jsx)("option",{value:"name",children:K}),e[23]=K,e[24]=F):F=e[24];let T;e[25]!==l?(T=l("size"),e[25]=l,e[26]=T):T=e[26];let L;e[27]!==T?(L=(0,n.jsx)("option",{value:"size",children:T}),e[27]=T,e[28]=L):L=e[28];let B;e[29]!==l?(B=l("Type"),e[29]=l,e[30]=B):B=e[30];let U;e[31]!==B?(U=(0,n.jsx)("option",{value:"type",children:B}),e[31]=B,e[32]=U):U=e[32];let I;e[33]!==l?(I=l("Modified"),e[33]=l,e[34]=I):I=e[34];let R;e[35]!==I?(R=(0,n.jsx)("option",{value:"date",children:I}),e[35]=I,e[36]=R):R=e[36];let _;e[37]!==u?(_=u.map(Kt),e[37]=u,e[38]=_):_=e[38];let O;e[39]!==a||e[40]!==i||e[41]!==F||e[42]!==L||e[43]!==U||e[44]!==R||e[45]!==_?(O=(0,n.jsxs)("select",{className:"h-8 rounded-md border border-border bg-background px-1 outline-none focus-visible:border-ring","data-testid":"fb-sort",id:"fb-sort",onChange:a,value:i,children:[F,L,U,R,_]}),e[39]=a,e[40]=i,e[41]=F,e[42]=L,e[43]=U,e[44]=R,e[45]=_,e[46]=O):O=e[46];let A;e[47]!==$||e[48]!==O?(A=(0,n.jsxs)("label",{className:"flex items-center gap-1.5 text-muted-foreground",htmlFor:"fb-sort",children:[$,O]}),e[47]=$,e[48]=O,e[49]=A):A=e[49];let G;e[50]!==l?(G=l("Toggle sort direction"),e[50]=l,e[51]=G):G=e[51];let P=c==="asc"?"\u2191":"\u2193",H;e[52]!==G||e[53]!==P||e[54]!==f?(H=(0,n.jsx)("button",{"aria-label":G,className:"flex size-8 items-center justify-center rounded-md border border-border tabular-nums outline-none transition-colors hover:bg-accent focus-visible:bg-accent","data-testid":"fb-sort-dir",onClick:f,type:"button",children:P}),e[52]=G,e[53]=P,e[54]=f,e[55]=H):H=e[55];let Y;e[56]!==C||e[57]!==l||e[58]!==h||e[59]!==m?(Y=m==="grid"&&(0,n.jsxs)("label",{className:"ml-auto flex items-center gap-1.5 text-muted-foreground",htmlFor:"fb-thumb-size",children:[l("Thumbnail size"),(0,n.jsx)("input",{className:"accent-primary","data-testid":"fb-thumb-size",id:"fb-thumb-size",max:240,min:80,onChange:C,step:8,type:"range",value:h})]}),e[56]=C,e[57]=l,e[58]=h,e[59]=m,e[60]=Y):Y=e[60];let oe;return e[61]!==A||e[62]!==H||e[63]!==Y||e[64]!==N?(oe=(0,n.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-xs","data-testid":"fb-controls",children:[N,A,H,Y]}),e[61]=A,e[62]=H,e[63]=Y,e[64]=N,e[65]=oe):oe=e[65],oe},"jt");function zt(d){return(0,n.jsx)("option",{value:d,children:d},d)}g(zt,"zt");function Kt(d){return(0,n.jsx)("option",{value:`tag:${d}`,children:d},d)}g(Kt,"Kt");var Dt=/\.(?:avif|bmp|gif|ico|jpe?g|png|svg|webp)$/iu,$t=g(d=>(d.httpMetadata?.contentType??"").startsWith("image/")||Dt.test(d.key),"Tt"),Tt=g(()=>{let d=(0,M.c)(1),e;return d[0]===Symbol.for("react.memo_cache_sentinel")?(e=(0,n.jsx)("svg",{"aria-hidden":"true",className:"size-8 text-muted-foreground/60",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.4,viewBox:"0 0 24 24",children:(0,n.jsx)("path",{d:"M7 3h7l5 5v13a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1Zm7 0v5h5"})}),d[0]=e):e=d[0],e},"Ft"),Ft=g(d=>{let e=(0,M.c)(13),{object:t,resolveUrl:r}=d,[s,o]=(0,j.useState)(null),[c,i]=(0,j.useState)(!1),l;e[0]!==t?(l=$t(t),e[0]=t,e[1]=l):l=e[1];let u=l,h,f;e[2]!==u||e[3]!==t.key||e[4]!==r?(h=g(()=>{if(!u)return;let k={cancelled:!1};return W((async()=>{try{let C=await r(t.key);k.cancelled||o(C)}catch{k.cancelled||i(!0)}})()),()=>{k.cancelled=!0}},"h"),f=[u,t.key,r],e[2]=u,e[3]=t.key,e[4]=r,e[5]=h,e[6]=f):(h=e[5],f=e[6]),(0,j.useEffect)(h,f);let m;e[7]===Symbol.for("react.memo_cache_sentinel")?(m=g(()=>{i(!0)},"m"),e[7]=m):m=e[7];let w=m,a;return e[8]!==c||e[9]!==u||e[10]!==t.key||e[11]!==s?(a=(0,n.jsx)("div",{className:"flex aspect-square w-full items-center justify-center overflow-hidden rounded-md border border-border bg-muted/30",children:u&&s!==null&&!c?(0,n.jsx)("img",{alt:t.key,className:"size-full object-cover",loading:"lazy",onError:w,src:s}):(0,n.jsx)(Tt,{})}),e[8]=c,e[9]=u,e[10]=t.key,e[11]=s,e[12]=a):a=e[12],a},"Rt"),Lt=g(d=>{let e=(0,M.c)(42),{busy:t,copiedKey:r,handlers:s,object:o,prefix:c,references:i,resolveUrl:l,selected:u,showReferences:h,t:f}=d,m;e[0]!==s||e[1]!==o||e[2]!==c?(m=Oe(o,c,s),e[0]=s,e[1]=o,e[2]=c,e[3]=m):m=e[3];let{copy:w,download:a,name:k,remove:C,toggle:x}=m,b;e[4]!==o||e[5]!==l?(b=(0,n.jsx)(Ft,{object:o,resolveUrl:l}),e[4]=o,e[5]=l,e[6]=b):b=e[6];let v;e[7]!==o.key||e[8]!==u||e[9]!==f||e[10]!==x?(v=(0,n.jsx)("span",{className:"absolute left-1.5 top-1.5 rounded bg-background/80 p-0.5",children:(0,n.jsx)(Pe,{objectKey:o.key,onToggle:x,selected:u,t:f})}),e[7]=o.key,e[8]=u,e[9]=f,e[10]=x,e[11]=v):v=e[11];let y;e[12]!==b||e[13]!==v?(y=(0,n.jsxs)("div",{className:"relative",children:[b,v]}),e[12]=b,e[13]=v,e[14]=y):y=e[14];let z;e[15]!==k?(z=(0,n.jsx)("p",{className:"truncate font-mono text-xs",title:k,children:k}),e[15]=k,e[16]=z):z=e[16];let S;e[17]!==o.size?(S=pe(o.size),e[17]=o.size,e[18]=S):S=e[18];let N;e[19]!==S?(N=(0,n.jsx)("p",{className:"text-[11px] tabular-nums text-muted-foreground",children:S}),e[19]=S,e[20]=N):N=e[20];let $;e[21]!==o.key||e[22]!==i||e[23]!==h||e[24]!==f?($=h&&(0,n.jsx)("div",{className:"mt-1",children:(0,n.jsx)(Ae,{objectKey:o.key,references:i,t:f})}),e[21]=o.key,e[22]=i,e[23]=h,e[24]=f,e[25]=$):$=e[25];let K;e[26]!==z||e[27]!==N||e[28]!==$?(K=(0,n.jsxs)("div",{className:"min-w-0",children:[z,N,$]}),e[26]=z,e[27]=N,e[28]=$,e[29]=K):K=e[29];let F=r===o.key,T;e[30]!==t||e[31]!==w||e[32]!==a||e[33]!==o.key||e[34]!==C||e[35]!==f||e[36]!==F?(T=(0,n.jsx)("div",{className:"flex items-center gap-1",children:(0,n.jsx)(Me,{busy:t,buttonClassName:"h-7 px-2 text-xs",copied:F,objectKey:o.key,onCopy:w,onDelete:C,onDownload:a,t:f})}),e[30]=t,e[31]=w,e[32]=a,e[33]=o.key,e[34]=C,e[35]=f,e[36]=F,e[37]=T):T=e[37];let L;return e[38]!==T||e[39]!==y||e[40]!==K?(L=(0,n.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"fb-tile",children:[y,K,T]}),e[38]=T,e[39]=y,e[40]=K,e[41]=L):L=e[41],L},"Lt"),Rt=g(d=>{let e=(0,M.c)(9),{name:t,onEnter:r}=d,s;e[0]!==t||e[1]!==r?(s=g(()=>{r(t)},"l"),e[0]=t,e[1]=r,e[2]=s):s=e[2];let o=s,c;e[3]===Symbol.for("react.memo_cache_sentinel")?(c=(0,n.jsx)("span",{className:"flex aspect-square w-full items-center justify-center rounded-md border border-border bg-muted/30 transition-colors hover:bg-accent",children:(0,n.jsx)("svg",{"aria-hidden":"true",className:"size-10 text-muted-foreground",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.4,viewBox:"0 0 24 24",children:(0,n.jsx)("path",{d:"M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7Z"})})}),e[3]=c):c=e[3];let i;e[4]!==t?(i=(0,n.jsx)("span",{className:"truncate font-mono text-xs",title:t,children:t}),e[4]=t,e[5]=i):i=e[5];let l;return e[6]!==o||e[7]!==i?(l=(0,n.jsxs)("button",{className:"flex flex-col gap-1.5 text-left outline-none","data-testid":"fb-folder",onClick:o,type:"button",children:[c,i]}),e[6]=o,e[7]=i,e[8]=l):l=e[8],l},"Ot"),Ut=g(d=>{let e=(0,M.c)(34),{busy:t,copiedKey:r,files:s,folders:o,handlers:c,onEnterFolder:i,prefix:l,references:u,resolveUrl:h,selected:f,showReferences:m,size:w,t:a}=d,k;e[0]!==w?(k=w.toString(),e[0]=w,e[1]=k):k=e[1];let C=`repeat(auto-fill, minmax(${k}px, 1fr))`,x;e[2]!==C?(x={gridTemplateColumns:C},e[2]=C,e[3]=x):x=e[3];let b=x,v;if(e[4]!==o||e[5]!==i){let S;e[7]!==i?(S=g(N=>(0,n.jsx)(Rt,{name:N,onEnter:i},N),"w"),e[7]=i,e[8]=S):S=e[8],v=o.map(S),e[4]=o,e[5]=i,e[6]=v}else v=e[6];let y;if(e[9]!==t||e[10]!==r||e[11]!==s||e[12]!==c||e[13]!==l||e[14]!==u||e[15]!==h||e[16]!==f||e[17]!==m||e[18]!==a){let S;e[20]!==t||e[21]!==r||e[22]!==c||e[23]!==l||e[24]!==u||e[25]!==h||e[26]!==f||e[27]!==m||e[28]!==a?(S=g(N=>(0,n.jsx)(Lt,{busy:t,copiedKey:r,handlers:c,object:N,prefix:l,references:u[N.key],resolveUrl:h,selected:f.has(N.key),showReferences:m,t:a},N.key),"w"),e[20]=t,e[21]=r,e[22]=c,e[23]=l,e[24]=u,e[25]=h,e[26]=f,e[27]=m,e[28]=a,e[29]=S):S=e[29],y=s.map(S),e[9]=t,e[10]=r,e[11]=s,e[12]=c,e[13]=l,e[14]=u,e[15]=h,e[16]=f,e[17]=m,e[18]=a,e[19]=y}else y=e[19];let z;return e[30]!==b||e[31]!==v||e[32]!==y?(z=(0,n.jsxs)("div",{className:"grid gap-4","data-testid":"fb-gallery",style:b,children:[v,y]}),e[30]=b,e[31]=v,e[32]=y,e[33]=z):z=e[33],z},"Et"),_t=g(d=>{let e=(0,M.c)(23),{reference:t,t:r}=d,s=`fb-dangling-${t.table}-${t.id}-${t.column}`,o=`${t.table}\xB7${t.id}`,c;e[0]!==o?(c=(0,n.jsx)(ae,{variant:"secondary",children:o}),e[0]=o,e[1]=c):c=e[1];let i;e[2]!==t.column?(i=(0,n.jsx)("span",{className:"text-muted-foreground",children:t.column}),e[2]=t.column,e[3]=i):i=e[3];let l;e[4]!==r?(l=r("\u2192"),e[4]=r,e[5]=l):l=e[5];let u;e[6]!==l?(u=(0,n.jsx)("span",{className:"text-muted-foreground/60",children:l}),e[6]=l,e[7]=u):u=e[7];let h;e[8]!==t.key?(h=(0,n.jsx)("code",{className:"rounded bg-muted px-1 py-0.5 font-mono text-foreground",children:t.key}),e[8]=t.key,e[9]=h):h=e[9];let f;e[10]!==c||e[11]!==i||e[12]!==u||e[13]!==h?(f=(0,n.jsxs)("span",{className:"flex flex-wrap items-center gap-1.5",children:[c,i,u,h]}),e[10]=c,e[11]=i,e[12]=u,e[13]=h,e[14]=f):f=e[14];let m;e[15]!==r?(m=r("Missing object"),e[15]=r,e[16]=m):m=e[16];let w;e[17]!==m?(w=(0,n.jsx)(ae,{className:"border-destructive/40 text-destructive",variant:"outline",children:m}),e[17]=m,e[18]=w):w=e[18];let a;return e[19]!==s||e[20]!==w||e[21]!==f?(a=(0,n.jsxs)("li",{className:"flex flex-wrap items-center justify-between gap-2 rounded-md border border-border/60 px-3 py-2 text-xs","data-testid":s,children:[f,w]}),e[19]=s,e[20]=w,e[21]=f,e[22]=a):a=e[22],a},"Ut"),Bt=g(d=>{let e=(0,M.c)(37),{busy:t,onCheck:r,references:s,t:o,truncated:c}=d,i;e[0]!==o?(i=o("Integrity"),e[0]=o,e[1]=i):i=e[1];let l;e[2]!==i?(l=(0,n.jsx)("span",{className:"font-mono text-[11px] uppercase tracking-wide text-muted-foreground",children:i}),e[2]=i,e[3]=l):l=e[3];let u;e[4]!==o?(u=o("Orphaned objects"),e[4]=o,e[5]=u):u=e[5];let h;e[6]!==u?(h=(0,n.jsx)("span",{className:"text-sm font-medium text-foreground",children:u}),e[6]=u,e[7]=h):h=e[7];let f;e[8]!==o?(f=o("Find records whose file reference points at an object the bucket no longer has."),e[8]=o,e[9]=f):f=e[9];let m;e[10]!==f?(m=(0,n.jsx)("span",{className:"text-xs text-muted-foreground",children:f}),e[10]=f,e[11]=m):m=e[11];let w;e[12]!==l||e[13]!==h||e[14]!==m?(w=(0,n.jsxs)("div",{className:"flex flex-col gap-1",children:[l,h,m]}),e[12]=l,e[13]=h,e[14]=m,e[15]=w):w=e[15];let a;e[16]!==t||e[17]!==o?(a=o(t?"Checking\u2026":"Check for orphans"),e[16]=t,e[17]=o,e[18]=a):a=e[18];let k;e[19]!==t||e[20]!==r||e[21]!==a?(k=(0,n.jsx)(re,{"data-testid":"fb-orphans-check",disabled:t,onClick:r,size:"sm",type:"button",variant:"outline",children:a}),e[19]=t,e[20]=r,e[21]=a,e[22]=k):k=e[22];let C;e[23]!==w||e[24]!==k?(C=(0,n.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[w,k]}),e[23]=w,e[24]=k,e[25]=C):C=e[25];let x;e[26]!==s?.length||e[27]!==o?(x=s?.length===0&&(0,n.jsx)(he,{description:o("Every record's file reference points at an object that exists in the bucket."),testId:"fb-orphans-empty",title:o("No dangling references.")}),e[26]=s?.length,e[27]=o,e[28]=x):x=e[28];let b;e[29]!==s||e[30]!==o||e[31]!==c?(b=s!==void 0&&s.length>0&&(0,n.jsxs)(n.Fragment,{children:[c&&(0,n.jsx)("p",{className:"text-xs text-warning","data-testid":"fb-orphans-truncated",children:o("Showing the first {count} dangling references \u2014 the scan was truncated.",{count:s.length})}),(0,n.jsx)("ul",{className:"flex flex-col gap-1.5","data-testid":"fb-orphans-list",children:s.map(y=>(0,n.jsx)(_t,{reference:y,t:o},`${y.table}\xB7${y.id}\xB7${y.column}`))})]}),e[29]=s,e[30]=o,e[31]=c,e[32]=b):b=e[32];let v;return e[33]!==C||e[34]!==x||e[35]!==b?(v=(0,n.jsxs)("section",{className:"flex flex-col gap-2 rounded-lg border border-border/60 p-3","data-testid":"fb-orphans",children:[C,x,b]}),e[33]=C,e[34]=x,e[35]=b,e[36]=v):v=e[36],v},"_t"),Et=g(function(d,e){let t=(0,M.c)(18),r;t[0]===Symbol.for("react.memo_cache_sentinel")?(r=new Set,t[0]=r):r=t[0];let[s,o]=(0,j.useState)(r),c;t[1]===Symbol.for("react.memo_cache_sentinel")?(c=g(x=>{o(b=>{let v=new Set(b);return v.has(x)?v.delete(x):v.add(x),v})},"c"),t[1]=c):c=t[1];let i=c,l;t[2]===Symbol.for("react.memo_cache_sentinel")?(l=g(()=>{o(new Set)},"o"),t[2]=l):l=t[2];let u=l,h,f,m;if(t[3]!==d||t[4]!==e||t[5]!==s){let x;t[9]!==e?(x=g(b=>e(b),"y"),t[9]=e,t[10]=x):x=t[10],f=d.map(x),h=f.length>0&&f.every(b=>s.has(b)),m=!h&&f.some(b=>s.has(b)),t[3]=d,t[4]=e,t[5]=s,t[6]=h,t[7]=f,t[8]=m}else h=t[6],f=t[7],m=t[8];let w=m,a;t[11]!==f?(a=g(()=>{o(x=>f.every(b=>x.has(b))?new Set:new Set(f))},"a"),t[11]=f,t[12]=a):a=t[12];let k=a,C;return t[13]!==h||t[14]!==s||t[15]!==w||t[16]!==k?(C={allSelected:h,clear:u,selected:s,someSelected:w,toggle:i,toggleAll:k},t[13]=h,t[14]=s,t[15]=w,t[16]=k,t[17]=C):C=t[17],C},"Bt"),It=me(be.storageReferences),Ot=me(be.storageOrphans),Ee=1e4,Mt=1e3,At=3600,Pt=g((d,e)=>{if(!("document"in globalThis))return;let t=globalThis.document.createElement("a");t.href=d,t.download=e,t.rel="noopener",globalThis.document.body.append(t),t.click(),t.remove()},"Wt"),Wt=g(d=>d.key,"qt"),Gt=g(({initialPrefix:d,pageSize:e})=>{let t=Se(),[r,s]=(0,j.useState)(d??""),[o,c]=(0,j.useState)(d??""),[i,l]=(0,j.useState)(wt),[u,h]=(0,j.useState)("list"),[f,m]=(0,j.useState)(128),[w,a]=(0,j.useState)("name"),[k,C]=(0,j.useState)("asc"),[x,b]=(0,j.useState)(void 0),[v,y]=(0,j.useState)(void 0),[z,S]=(0,j.useState)(!1),[N,$]=(0,j.useState)(void 0),[K,F]=(0,j.useState)(void 0),[T,L]=(0,j.useState)(""),[B,U]=(0,j.useState)({}),[I,R]=(0,j.useState)(!1),[_,O]=(0,j.useState)(void 0),[A,G]=(0,j.useState)(!1),[P,H]=(0,j.useState)(!1),[Y,oe]=(0,j.useState)([]),[V,xe]=(0,j.useState)(""),le=(0,j.useRef)(0),Q=(0,j.useRef)(0);(0,j.useEffect)(()=>{let p={cancelled:!1};return W((async()=>{try{let D=await t.listStorageBuckets();if(!p.cancelled){oe(D);let[E]=D;E!==void 0&&xe(q=>q===""?E:q)}}catch{}})()),()=>{p.cancelled=!0}},[t]);let Z=(0,j.useMemo)(()=>({list:g(p=>t.listStorageObjects({...p,bucket:V}),"list"),remove:g(p=>t.deleteStorageObject(p,{bucket:V}),"remove"),signedUrl:g((p,D)=>t.signedStorageUrl(p,{...D,bucket:V}),"signedUrl"),upload:g(p=>t.uploadStorageObject({...p,bucket:V}),"upload")}),[V,t]),J=(0,j.useCallback)(async(p,D,E)=>{le.current+=1;let q=le.current;y(void 0),S(!0);try{let te=await Z.list({cursor:D,limit:e,prefix:p});if(q!==le.current)return;b(we=>E&&we!==void 0?[...we,...te.objects]:te.objects),F(te.cursor)}catch(te){if(q!==le.current)return;E||b(void 0),y(X(te))}finally{q===le.current&&S(!1)}},[e,Z]);(0,j.useEffect)(()=>{W(J(d??"",void 0,!1))},[J,d]);let We=(x?.length??0)<=e;Re(()=>{W(J(r,void 0,!1))},We);let{files:de,folders:Ge}=Ct(x??[],r),He=(0,j.useMemo)(()=>{let p=new Set;for(let D of de)for(let E of Object.keys(D.customMetadata??{}))p.add(E);return[...p].toSorted((D,E)=>D.localeCompare(E))},[de]),ie=St(de,w,k),ue=(0,j.useMemo)(()=>[...new Set(ie.map(p=>p.key))].toSorted((p,D)=>p.localeCompare(D)).join(`
|
|
3
3
|
`),[ie]);(0,j.useEffect)(()=>{let p=ue===""?[]:ue.split(`
|
|
4
4
|
`);if(p.length===0){U({});return}let D={current:!0};return W((async()=>{try{let E=await t.query(It,{keys:p},ge(T));D.current&&(U(E.references??{}),R(Object.keys(E.storageColumns??{}).length>0))}catch{D.current&&(U({}),R(!1))}})()),()=>{D.current=!1}},[t,ue,T]);let{allSelected:qe,clear:se,selected:ve,someSelected:Ve,toggle:Ze,toggleAll:Je}=Et(ie,Wt),Ye=g(()=>{s(o),se(),W(J(o,void 0,!1))},"Ie"),Qe=g(()=>{W(J(r,K,!0))},"Me"),ke=g(p=>{s(p),c(p),se(),W(J(p,void 0,!1))},"be"),Xe=g(p=>{ke(`${r}${p}`)},"Ae"),et=g(p=>Z.signedUrl(p,{expiresInSeconds:At}),"Pe"),tt=g(()=>{h("list")},"We"),rt=g(()=>{h("grid")},"qe"),nt=g(p=>{a(p)},"Ge"),ot=g(()=>{C(p=>p==="asc"?"desc":"asc")},"He"),lt=g(p=>{m(p)},"Ze"),st=g(p=>{l(p)},"Ve"),at=g(()=>{y(void 0),S(!0),W((async()=>{try{for(let p of ve)await Z.remove(p);await J(r,void 0,!1),se()}catch(p){y(X(p))}S(!1)})())},"Xe"),it=g(p=>{y(void 0),W((async()=>{try{let D=await Z.signedUrl(p,{expiresInSeconds:i});Ke(D)&&$(p)}catch(D){y(X(D))}})())},"Ye"),ct=g(p=>{y(void 0),W((async()=>{try{let D=await Z.signedUrl(p,{expiresInSeconds:i}),E=p.slice(p.lastIndexOf("/")+1)||p;Pt(D,E)}catch(D){y(X(D))}})())},"Qe");(0,j.useEffect)(()=>{if(N===void 0)return;let p=globalThis.setTimeout(()=>{$(void 0)},2e3);return()=>{globalThis.clearTimeout(p)}},[N]);let dt=g(p=>{y(void 0),S(!0),W((async()=>{try{await Z.remove(p),await J(r,void 0,!1)}catch(D){y(X(D))}S(!1)})())},"Je"),ut=g(p=>{let D=`${r}${p.name}`;y(void 0),S(!0),W((async()=>{try{let E=await p.arrayBuffer();await Z.upload({body:E,contentType:p.type===""?void 0:p.type,key:D}),await J(r,void 0,!1)}catch(E){y(X(E))}S(!1)})())},"et");(0,j.useEffect)(()=>{Q.current+=1,O(void 0),H(!1)},[T]);let ft=g(()=>{Q.current+=1;let p=Q.current;y(void 0),G(!0),W((async()=>{try{let D=[],E;do{let q=await Z.list({cursor:E,limit:Mt});for(let te of q.objects)D.push(te.key);E=D.length>=Ee?void 0:q.cursor}while(E!==void 0);if(D.length>=Ee)p===Q.current&&(O([]),H(!0));else{let q=await t.query(Ot,{liveKeys:D},ge(T));p===Q.current&&(O(q.references??[]),H(q.truncated===!0))}}catch(D){p===Q.current&&(O([]),H(!1),y(X(D)))}p===Q.current&&G(!1)})())},"tt"),ht=g(p=>{le.current+=1,Q.current+=1,xe(p),s(d??""),c(d??""),b(void 0),O(void 0),H(!1),se()},"rt");return{allSelected:qe,bucket:V,buckets:Y,bulkDelete:at,busy:z,checkOrphans:ft,clearSelection:se,copiedKey:N,danglingBusy:A,danglingReferences:_,danglingTruncated:P,draftPrefix:o,enterFolder:Xe,error:v,expiry:i,files:ie,folders:Ge,hasObjects:x!==void 0&&x.length>0,hasStorageColumns:I,listFirst:Ye,loaded:x!==void 0,loadMore:Qe,navigate:ke,nextCursor:K,onCopy:it,onDelete:dt,onDownload:ct,onExpiryChange:st,onFile:ut,onSortKeyChange:nt,onThumbSizeChange:lt,prefix:r,referenceShard:T,references:B,resolveUrl:et,selectBucket:ht,selected:ve,setDraftPrefix:c,setReferenceShard:L,showGrid:rt,showList:tt,someSelected:Ve,sortDirection:k,sortKey:w,tagKeys:He,thumbSize:f,toggleSelect:Ze,toggleSelectAll:Je,toggleSortDirection:ot,view:u}},"Gt"),Ht=100,Ie=g(d=>{let e=(0,M.c)(6),{label:t,onNavigate:r,target:s}=d,o;e[0]!==r||e[1]!==s?(o=g(()=>{r(s)},"n"),e[0]=r,e[1]=s,e[2]=o):o=e[2];let c=o,i;return e[3]!==c||e[4]!==t?(i=(0,n.jsx)("button",{className:"rounded px-1 text-muted-foreground outline-none hover:text-foreground focus-visible:text-foreground",onClick:c,type:"button",children:t}),e[3]=c,e[4]=t,e[5]=i):i=e[5],i},"we"),qt=g(d=>{let e=(0,M.c)(11),{onNavigate:t,prefix:r,t:s}=d,o;if(e[0]!==t||e[1]!==r||e[2]!==s){let c=r.split("/").filter(Vt),i;e[4]!==s?(i=s("Folder path"),e[4]=s,e[5]=i):i=e[5];let l;e[6]!==s?(l=s("root"),e[6]=s,e[7]=l):l=e[7];let u;e[8]!==t||e[9]!==l?(u=(0,n.jsx)(Ie,{label:l,onNavigate:t,target:""}),e[8]=t,e[9]=l,e[10]=u):u=e[10],o=(0,n.jsxs)("nav",{"aria-label":i,className:"flex flex-wrap items-center gap-0.5 text-xs","data-testid":"fb-breadcrumbs",children:[u,c.map((h,f)=>(0,n.jsxs)("span",{className:"flex items-center gap-0.5",children:[(0,n.jsx)("span",{className:"text-muted-foreground/50",children:"/"}),(0,n.jsx)(Ie,{label:h,onNavigate:t,target:`${c.slice(0,f+1).join("/")}/`})]},`${h}-${f.toString()}`))]}),e[0]=t,e[1]=r,e[2]=s,e[3]=o}else o=e[3];return o},"Zt"),ur=g(({initialPrefix:d,pageSize:e=Ht})=>{let t=Ce(),r=Gt({initialPrefix:d,pageSize:e}),s=(0,j.useRef)(null),{onCopy:o,onDelete:c,onDownload:i,onFile:l,toggleSelect:u}=r,h={onCopy:o,onDelete:c,onDownload:i,onToggleSelect:u},f=g(()=>{s.current?.click()},"f"),m=g(a=>{let k=a.target,C=k.files?.[0];k.value="",C&&l(C)},"m"),w=r.loaded&&!r.hasObjects;return(0,n.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"lunora-file-browser",children:[(0,n.jsx)(Nt,{bucket:r.bucket,buckets:r.buckets,busy:r.busy,draftPrefix:r.draftPrefix,expiry:r.expiry,fileInputRef:s,onBucketChange:r.selectBucket,onExpiryChange:r.onExpiryChange,onFileChange:m,onList:r.listFirst,onPrefixChange:r.setDraftPrefix,onUploadClick:f,t}),r.loaded&&(0,n.jsx)(qt,{onNavigate:r.navigate,prefix:r.prefix,t}),r.hasObjects&&(0,n.jsx)(jt,{onSortKeyChange:r.onSortKeyChange,onThumbSizeChange:r.onThumbSizeChange,showGrid:r.showGrid,showList:r.showList,sortDirection:r.sortDirection,sortKey:r.sortKey,t,tagKeys:r.tagKeys,thumbSize:r.thumbSize,toggleSortDirection:r.toggleSortDirection,view:r.view}),r.hasStorageColumns&&(0,n.jsxs)("div",{className:"flex flex-wrap items-center gap-2","data-testid":"fb-references-shard",children:[(0,n.jsx)("label",{className:"text-xs text-muted-foreground",htmlFor:"fb-reference-shard-input",children:t("References shard")}),(0,n.jsx)(De,{id:"fb-reference-shard-input",onChange:r.setReferenceShard,testId:"fb-reference-shard-input",value:r.referenceShard}),(0,n.jsx)("span",{className:"text-xs text-muted-foreground",children:t("Which shard's records are checked for references to these files. Empty = root shard.")})]}),r.hasStorageColumns&&(0,n.jsx)(Bt,{busy:r.danglingBusy,onCheck:r.checkOrphans,references:r.danglingReferences,t,truncated:r.danglingTruncated}),r.selected.size>0&&(0,n.jsx)(Ue,{count:r.selected.size,editable:!0,onClear:r.clearSelection,onDelete:r.bulkDelete}),r.error!==void 0&&(0,n.jsx)("p",{className:"text-sm text-destructive","data-testid":"storage-error",role:"alert",children:r.error}),w&&(0,n.jsx)(he,{description:t("Objects you upload to your R2 buckets will appear here."),icon:(0,n.jsxs)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:[(0,n.jsx)("path",{d:"M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7Z"}),(0,n.jsx)("path",{d:"M12 11v5m-2.5-2.5h5"})]}),testId:"fb-empty",title:t("No objects.")}),r.hasObjects&&r.view==="list"&&(0,n.jsx)(vt,{allSelected:r.allSelected,busy:r.busy,copiedKey:r.copiedKey,files:r.files,folders:r.folders,handlers:h,onEnterFolder:r.enterFolder,prefix:r.prefix,references:r.references,selected:r.selected,showReferences:r.hasStorageColumns,someSelected:r.someSelected,t,toggleSelectAll:r.toggleSelectAll}),r.hasObjects&&r.view==="grid"&&(0,n.jsx)(Ut,{busy:r.busy,copiedKey:r.copiedKey,files:r.files,folders:r.folders,handlers:h,onEnterFolder:r.enterFolder,prefix:r.prefix,references:r.references,resolveUrl:r.resolveUrl,selected:r.selected,showReferences:r.hasStorageColumns,size:r.thumbSize,t}),r.nextCursor!==void 0&&(0,n.jsx)("div",{children:(0,n.jsx)(re,{"data-testid":"fb-next",disabled:r.busy,onClick:r.loadMore,size:"sm",type:"button",variant:"outline",children:t("Load more")})})]})},"pr");function Vt(d){return d!==""}g(Vt,"Vt");export{ur as FileBrowser};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as y}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as v}from"./chunk-
|
|
1
|
+
import{b as y}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as v}from"./chunk-AHVDZWB3.js";import"./chunk-XXQUMVWH.js";import"./chunk-VORDESEQ.js";import"./chunk-QLQADHFE.js";import{a as R}from"./chunk-ERMTJYQF.js";import{c as $}from"./chunk-YGKR536O.js";import"./chunk-UBR4KB6K.js";import"./chunk-XBDKZZ67.js";import{a as w}from"./chunk-XQCVZAGU.js";import{a as A,b as I,c as j,d as x,e as n,f as c}from"./chunk-MIQTKZAR.js";import{a as k,e as S}from"./chunk-UZERI5YC.js";import{d as b}from"./chunk-OG4N2XHD.js";import"./chunk-QNUWWC3N.js";import{a as f,e as N,g as E,h as _}from"./chunk-3XIESWL4.js";var T=N(E(),1);var r=N(_(),1);var D=f((e,t)=>({delete:e("Delete"),list:e("List"),read:e("Read"),write:e("Write")})[t],"C"),C={delete:2,list:3,read:0,write:1},O=f(e=>[...e].toSorted((t,a)=>t.bucket.localeCompare(a.bucket)||C[t.on]-C[a.on]||(t.prefix??"").localeCompare(a.prefix??"")),"T"),W=f(()=>{let e=(0,T.c)(14),t=b(),a;e[0]===Symbol.for("react.memo_cache_sentinel")?(a={},e[0]=a):a=e[0];let{data:l,error:i,errorSource:d}=$(R.storageRules,a),h=l!==void 0,m;if(e[1]!==l||e[2]!==i||e[3]!==d||e[4]!==h||e[5]!==t){let g=O(Array.isArray(l?.rules)?l.rules:[]),u;e[7]!==i||e[8]!==d?(u=i!==null&&(0,r.jsx)(v,{error:d,testId:"storage-rules-error"}),e[7]=i,e[8]=d,e[9]=u):u=e[9];let o;e[10]!==t?(o=t("Storage rules are declared in code with defineStorageRule and gate ctx.storage access per bucket. This view is read-only."),e[10]=t,e[11]=o):o=e[11];let p;e[12]!==o?(p=(0,r.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"storage-rules-note",children:o}),e[12]=o,e[13]=p):p=e[13],m=(0,r.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-storage-rules-panel",children:[u,p,h&&g.length===0?(0,r.jsx)(w,{description:t("No defineStorageRule is wired through .use(storageRules(...)) in this deployment. Add one to gate object access by key prefix."),testId:"storage-rules-empty",title:t("No storage rules defined")}):(0,r.jsx)(k,{className:"overflow-hidden py-0",children:(0,r.jsx)(S,{className:"px-0",children:(0,r.jsxs)(A,{"data-testid":"storage-rules-table",children:[(0,r.jsx)(I,{children:(0,r.jsxs)(x,{children:[(0,r.jsx)(n,{children:t("Bucket")}),(0,r.jsx)(n,{children:t("Operation")}),(0,r.jsx)(n,{children:t("Key prefix")}),(0,r.jsx)(n,{children:t("Guarded by")})]})}),(0,r.jsx)(j,{children:g.map(s=>(0,r.jsxs)(x,{"data-testid":`storage-rule-${s.bucket}-${s.on}-${s.prefix??""}`,children:[(0,r.jsx)(c,{className:"font-mono text-xs",children:s.bucket}),(0,r.jsx)(c,{children:(0,r.jsx)(y,{variant:"secondary",children:D(t,s.on)})}),(0,r.jsx)(c,{className:"font-mono text-xs",children:s.prefix??(0,r.jsx)("span",{className:"text-muted-foreground",children:t("(whole bucket)")})}),(0,r.jsx)(c,{className:"font-mono text-xs text-muted-foreground",children:s.procedure})]},`${s.bucket}:${s.on}:${s.prefix??""}:${s.procedure}`))})]})})})]}),e[1]=l,e[2]=i,e[3]=d,e[4]=h,e[5]=t,e[6]=m}else m=e[6];return m},"U");export{W as StorageRulesPanel};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as Y}from"./chunk-QXXIJAD5.js";import{a as G}from"./chunk-X665E2HU.js";import{b as Q}from"./chunk-GRL5MG3Z.js";import{a as z}from"./chunk-SFDOII3B.js";import{e as P}from"./chunk-SMIESS7P.js";import"./chunk-7T7UOTYK.js";import{a as V}from"./chunk-LFKCLLPT.js";import"./chunk-CFPZYHPY.js";import"./chunk-T6VMSOBB.js";import"./chunk-7QIFDWQV.js";import{b as Z,c as ee}from"./chunk-JOFD43OI.js";import{a as F,b as W}from"./chunk-
|
|
1
|
+
import{a as Y}from"./chunk-QXXIJAD5.js";import{a as G}from"./chunk-X665E2HU.js";import{b as Q}from"./chunk-GRL5MG3Z.js";import{a as z}from"./chunk-SFDOII3B.js";import{e as P}from"./chunk-SMIESS7P.js";import"./chunk-7T7UOTYK.js";import{a as V}from"./chunk-LFKCLLPT.js";import"./chunk-CFPZYHPY.js";import"./chunk-T6VMSOBB.js";import"./chunk-7QIFDWQV.js";import{b as Z,c as ee}from"./chunk-JOFD43OI.js";import{a as F,b as W}from"./chunk-U44CWN7H.js";import{c as U}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import"./chunk-6ST5ECQA.js";import"./chunk-AHVDZWB3.js";import"./chunk-XXQUMVWH.js";import"./chunk-VORDESEQ.js";import"./chunk-QLQADHFE.js";import{a as E}from"./chunk-ERMTJYQF.js";import{c as A}from"./chunk-YGKR536O.js";import{f as J}from"./chunk-UBR4KB6K.js";import"./chunk-XBDKZZ67.js";import"./chunk-MIQTKZAR.js";import"./chunk-UZERI5YC.js";import{d as k,f as L,g as _,m as N}from"./chunk-OG4N2XHD.js";import"./chunk-QNUWWC3N.js";import{a as l,e as K,f as ue,g as fe,h as me}from"./chunk-3XIESWL4.js";var q=K(fe(),1);var c=K(ue(),1);var I=K(me(),1);var he=l(t=>{let{suggestedIndex:e,table:r}=t;return!(typeof r!="string"||r.length===0||typeof e!="object"||e===null||!Array.isArray(e.fields)||e.fields.length===0)},"he"),pe=l((t,e,r)=>{let a=`"${t}"`,n=`"${e}"`,d=r.map(o=>`"${o}"`).join(", ");return`CREATE INDEX IF NOT EXISTS ${n} ON ${a} (${d});`},"pe"),ge=l(t=>{let e=(0,q.c)(19),{fields:r,indexName:a,table:n,testId:d}=t,o=k(),[w,f]=(0,c.useState)(!1),m;e[0]!==r||e[1]!==a||e[2]!==n?(m=l(()=>{let y="navigator"in globalThis?globalThis.navigator.clipboard:void 0;if(y===void 0)return;let x=pe(n,a,r);N(y.writeText(x)),f(!0)},"u"),e[0]=r,e[1]=a,e[2]=n,e[3]=m):m=e[3];let p=m;if(w){let y=`${d}-applied`,x;e[4]!==o?(x=o("CREATE INDEX SQL copied to clipboard."),e[4]=o,e[5]=x):x=e[5];let $;return e[6]!==y||e[7]!==x?($=(0,I.jsx)("span",{className:"text-xs text-muted-foreground","data-testid":y,children:x}),e[6]=y,e[7]=x,e[8]=$):$=e[8],$}let g;e[9]!==o?(g=o("Apply?"),e[9]=o,e[10]=g):g=e[10];let h;e[11]!==o||e[12]!==n?(h=o("Apply index on {table}",{table:n}),e[11]=o,e[12]=n,e[13]=h):h=e[13];let v;return e[14]!==p||e[15]!==g||e[16]!==h||e[17]!==d?(v=(0,I.jsx)(Y,{confirmLabel:g,onConfirm:p,testId:d,children:h}),e[14]=p,e[15]=g,e[16]=h,e[17]=d,e[18]=v):v=e[18],v},"ge"),be=l((t,e)=>{let r=new Map;for(let a of e){let n=`${a.table} ${a.index}`;r.set(n,(r.get(n)??0)+a.reads)}return t.map(a=>({index:a.index,reads:r.get(`${a.table} ${a.index}`)??0,table:a.table}))},"be"),ve=l(t=>{let e=new Map;for(let r of t)for(let a of r.scannedTables??[])e.set(a.table,(e.get(a.table)??0)+a.scans);return[...e].map(([r,a])=>({scans:a,table:r}))},"ve"),xe=l((t,e)=>e.map(r=>({index:r.name,table:t})),"xe"),ye=l(t=>{let e=be(t.declaredIndexes??[],t.indexHits??[]),r=ve(t.functions??[]),a=t.shardTraffic??[],n=t.analyticsMetrics,d=n&&n.indexHits.length>0?n.indexHits:e,o=n&&n.tableScans.length>0?n.tableScans:r,w=n&&n.shardTraffic.length>0?n.shardTraffic:a,f=ee({indexHits:d,schema:{tables:[]},shardTraffic:w,tableScans:o},{lints:Z,source:"runtime"}),m=t.suppressHotScanTables;return(m===void 0?f:f.filter(p=>!(p.metadata.kind==="hot_scan"&&typeof p.metadata.table=="string"&&m.has(p.metadata.table)))).map(p=>F(p))},"ye"),we=L(E.listTables),Se=L(E.listTableIndexes),j=l(t=>`${(t*100).toFixed(1)}%`,"M"),te=l(t=>`${(t/1e3).toFixed(2)}s`,"D"),Te=l(t=>{if(t.length<=1)return t[0]??"";let e=t[t.length-1]??"";return`${t.slice(0,-1).join(", ")} and ${e}`},"Se"),Ie=l((t,e)=>({"high-error-rate":t("High error rate"),"high-evictions":t("High cache eviction rate"),"high-write-contention":t("High write contention"),"low-cache-hit-rate":t("Low cache hit rate"),"missing-index":t("Missing index"),"slow-function":t("Slow function")})[e.kind],"Te"),ae=l((t,e)=>({"high-error-rate":t("{rate} of calls failed.",{rate:j(e.value)}),"high-evictions":t("{count} entries evicted recently.",{count:e.value}),"high-write-contention":t("{rate} of calls hit a write conflict \u2014 consider sharding to cut contention.",{rate:j(e.value)}),"low-cache-hit-rate":t("{rate} hit rate over recent traffic.",{rate:j(e.value)}),"missing-index":t("Slowest call took {duration} \u2014 it full-scanned {tables} with no index.",{duration:te(e.value),tables:Te(e.tables??[])}),"slow-function":t("Slowest call took {duration}.",{duration:te(e.value)})})[e.kind],"X"),$e=l(t=>{let e=(0,q.c)(10),{onJump:r,table:a}=t,n=k(),d;e[0]!==r||e[1]!==a?(d=l(()=>{r(a)},"l"),e[0]=r,e[1]=a,e[2]=d):d=e[2];let o=d,w=`in-add-index-${a}`,f;e[3]!==n||e[4]!==a?(f=n("Add index on {table}",{table:a}),e[3]=n,e[4]=a,e[5]=f):f=e[5];let m;return e[6]!==o||e[7]!==w||e[8]!==f?(m=(0,I.jsx)(U,{"data-testid":w,onClick:o,size:"sm",type:"button",variant:"outline",children:f}),e[6]=o,e[7]=w,e[8]=f,e[9]=m):m=e[9],m},"Ie"),De=l(({initialShardKey:t,loadShardTraffic:e})=>{let r=J(),a=P(),n=k(),[d,o]=(0,c.useState)(t??""),[w,f]=(0,c.useState)(null),[m,p]=(0,c.useState)(null),g=V(d.trim(),400),h=(0,c.useRef)(""),v=A(E.getMetrics,{},{live:!0,shardKey:g}),y=A(E.getFunctionStats,{},{live:!0,shardKey:g}),x=A(E.getAdvisories,{},{live:!0,shardKey:g}),$=v.data??null,R=y.data?.functions??null,D=x.data?.advisories??null,ne=v.data?.indexHits??null,O=v.error!==null&&y.error!==null?v.error:null,re=e??(i=>r.shardTraffic(i)),ie=l(async(i,T)=>{let s=i[0];if(s===void 0||s===""){h.current===T&&p(null);return}try{let S=await re(s);if(h.current!==T)return;let b=new Map;for(let u of S.shards)b.has(u.shardKey)||b.set(u.shardKey,{requests:u.requests,shardKey:u.shardKey});p([...b.values()])}catch{h.current===T&&p(null)}},"V"),H=(0,c.useCallback)(async i=>{h.current=i;let T=[];try{let s=await r.query(we,{},_(i));if(h.current!==i)return;Q(i),T=s.map(u=>u.name);let S=await Promise.allSettled(s.map(async u=>[u.name,await r.query(Se,{table:u.name},_(i))]));if(h.current!==i)return;let b=[];for(let u of S)if(u.status==="fulfilled"){let[C,de]=u.value;b.push(...xe(C,de.indexes))}f(b)}catch{h.current===i&&f(null)}await ie(T,i)},[r]);(0,c.useEffect)(()=>{N(H(g))},[g,H]);let se=(0,c.useEffectEvent)(()=>{v.refetch(),y.refetch(),x.refetch(),N(H(g))});(0,c.useEffect)(()=>{let i=l(()=>{document.visibilityState==="visible"&&se()},"i");return document.addEventListener("visibilitychange",i),()=>{document.removeEventListener("visibilitychange",i)}},[]);let X=(0,c.useCallback)(i=>{N(a({search:{table:i},to:"/schema"}))},[a]),M=z($,R),oe=new Set(M.filter(i=>i.kind==="missing-index").flatMap(i=>i.tables??[])),B=ye({declaredIndexes:w??[],functions:R,indexHits:ne,shardTraffic:m,suppressHotScanTables:oe}),le=(0,c.useMemo)(()=>{let i=M.map(s=>{let S=s.kind==="missing-index"?s.tables??[]:[];return{action:S.length>0?S.map(b=>(0,I.jsx)($e,{onJump:X,table:b},b)):void 0,description:s.message===void 0?ae(n,s):`${ae(n,s)} \u2014 ${s.message}`,entity:s.fn,issueType:Ie(n,s),key:`${s.kind}:${s.fn??""}`,level:s.severity}}),T=new Set(["unindexed_foreign_key","unindexed_relation_target"]);return[...(D??[]).map(s=>{let S=F(s);if(T.has(s.name)&&he(s.metadata)){let{table:b,suggestedIndex:u}=s.metadata,C=`in-apply-index-${b}-${u.name}`;return{...S,action:(0,I.jsx)(ge,{fields:u.fields,indexName:u.name,table:b,testId:C})}}return S}),...B,...i]},[D,M,X,B,n]),ce=(0,I.jsx)(G,{onChange:o,testId:"in-shard-input",value:d});return(0,I.jsx)(W,{error:O,errorSource:O===null?void 0:v.errorSource,rows:le,testId:"lunora-insights",toolbar:ce})},"Be");export{De as InsightsPanel};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as Et}from"./chunk-KUVMORDQ.js";import{a as me}from"./chunk-EQZTSISX.js";import{a as Lt,b as At,c as Kt,d as Ot,e as ot}from"./chunk-Y5Y7DHFW.js";import{a as zt}from"./chunk-QWGT25SE.js";import{e as Dt}from"./chunk-XF2B7P5A.js";import{a as It,b as Ct,c as Tt,d as Rt,e as Pe}from"./chunk-UU2QJMGJ.js";import"./chunk-2PJNAWB3.js";import"./chunk-SD4BERSA.js";import"./chunk-IC4L6G56.js";import{a as _t}from"./chunk-CTNB2KIA.js";import"./chunk-2QSHLBCO.js";import"./chunk-BGBLQ563.js";import"./chunk-IVFHIQOT.js";import"./chunk-QBWRC5YX.js";import{a as et,b as tt,c as rt,d as yt,e as Nt,f as at,g as st,h as wt,i as St}from"./chunk-CU55Y5TV.js";import"./chunk-4UOFSGUS.js";import"./chunk-ILNELDFC.js";import{a as $t}from"./chunk-X665E2HU.js";import{a as qt,b as kt}from"./chunk-GRL5MG3Z.js";import{e as ut}from"./chunk-SMIESS7P.js";import"./chunk-7T7UOTYK.js";import{a as Mt}from"./chunk-LFKCLLPT.js";import"./chunk-CFPZYHPY.js";import"./chunk-T6VMSOBB.js";import"./chunk-7QIFDWQV.js";import{c as Ze}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import{b as Be}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import"./chunk-QLQADHFE.js";import{a as Ae}from"./chunk-ERMTJYQF.js";import{c as Ee}from"./chunk-XDAT7LHC.js";import{f as mt}from"./chunk-EN2QAEO4.js";import"./chunk-XBDKZZ67.js";import{a as ft}from"./chunk-XQCVZAGU.js";import{a as lt,b as nt,c as it,d as je,e as de,f as B}from"./chunk-MIQTKZAR.js";import{a as fe,b as Ke,c as Oe,d as gt,e as pe}from"./chunk-UZERI5YC.js";import{d as ge,f as pt,g as xt,h as bt,i as vt,m as Qe,p as Ge}from"./chunk-OG4N2XHD.js";import"./chunk-AADILRJW.js";import{a as o,e as Ye,f as Ft,g as Jt,h as Ht,j as ht}from"./chunk-3XIESWL4.js";var j=Ye(Ft(),1);var xe=Ye(Jt(),1);var t=Ye(Ht(),1);var Wt=o((s,e)=>s<e?-1:s>e?1:0,"Jt"),dt=o(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(d=>dt(d)).join(",")}]`;let e=Object.getPrototypeOf(s);if(e!==null&&e!==Object.prototype){let d=s.constructor?.name??"value";throw new TypeError(`stableStringify: cannot use a ${d} 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,a=Object.keys(l).toSorted(Wt),r=[];for(let d of a){let i=l[d];i!==void 0&&r.push(`${JSON.stringify(d)}:${dt(i)}`)}return`{${r.join(",")}}`},"Ze"),Pt=o((s,e,l)=>`${s}:${e}:${dt(l??{})}`,"gt"),Ut=o((s,e)=>s==="gauge"?e.last:s==="histogram"?e.sum/Math.max(1,e.count):e.sum,"ft"),Bt=o((s,e)=>Ut(s,e),"Ht"),Gt=o(s=>Ut(s.kind,s),"Gt"),ct=o(s=>Number.isInteger(s)?s.toLocaleString():s.toLocaleString(void 0,{maximumFractionDigits:2}),"Xe"),Vt=o(s=>Array.isArray(s?.series)?s.series:[],"Wt"),Xt="FUNCTION_NOT_FOUND",Yt=o(s=>{let e=new Map;if(!Array.isArray(s?.series))return e;for(let l of s.series)e.set(Pt(l.kind,l.name,l.attributes),l.points);return e},"Yt"),Zt={counter:"secondary",gauge:"default",histogram:"outline"},Qt=o(s=>{let e=(0,xe.c)(18),{name:l,onOpenTrace:a,traceId:r}=s,d=ge();if(r===void 0){let u;return e[0]===Symbol.for("react.memo_cache_sentinel")?(u=(0,t.jsx)("span",{className:"text-muted-foreground",children:"\u2014"}),e[0]=u):u=e[0],u}let i;e[1]!==r?(i=r.slice(0,8),e[1]=r,e[2]=i):i=e[2];let n=i;if(a===void 0){let u=`mt-instrument-trace-${l}`,m;return e[3]!==n||e[4]!==u||e[5]!==r?(m=(0,t.jsx)("span",{className:"text-muted-foreground","data-testid":u,title:r,children:n}),e[3]=n,e[4]=u,e[5]=r,e[6]=m):m=e[6],m}let w=`mt-instrument-trace-${l}`,x;e[7]!==a||e[8]!==r?(x=o(()=>{a(r)},"x"),e[7]=a,e[8]=r,e[9]=x):x=e[9];let S;e[10]!==d||e[11]!==r?(S=d("Open the exemplar trace {trace}",{trace:r}),e[10]=d,e[11]=r,e[12]=S):S=e[12];let f;return e[13]!==n||e[14]!==w||e[15]!==x||e[16]!==S?(f=(0,t.jsx)("button",{className:"text-primary underline-offset-4 hover:underline","data-testid":w,onClick:x,title:S,type:"button",children:n}),e[13]=n,e[14]=w,e[15]=x,e[16]=S,e[17]=f):f=e[17],f},"Zt"),er=o(s=>{let e=(0,xe.c)(105),{onOpenTrace:l,shardKey:a}=s,r=ge(),d;e[0]===Symbol.for("react.memo_cache_sentinel")?(d={},e[0]=d):d=e[0];let i;e[1]!==a?(i={live:!0,shardKey:a},e[1]=a,e[2]=i):i=e[2];let{data:n,error:w,errorSource:x}=Ee(Ae.getMetricSeries,d,i),S;e[3]===Symbol.for("react.memo_cache_sentinel")?(S={},e[3]=S):S=e[3];let f;e[4]!==a?(f={live:!0,shardKey:a},e[4]=a,e[5]=f):f=e[5];let{data:u}=Ee(Ae.getMetricHistory,S,f),m,M,b,q,_,c,g,p,k,$,y,D,I;if(e[6]!==n||e[7]!==w||e[8]!==x||e[9]!==u||e[10]!==l||e[11]!==r){p=Symbol.for("react.early_return_sentinel");e:{let K=Vt(n),E=vt(x)===Xt;if(w!==null&&!E){let h;e[25]!==r?(h=r("Instruments"),e[25]=r,e[26]=h):h=e[26];let P;e[27]!==h?(P=(0,t.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:h}),e[27]=h,e[28]=P):P=e[28];let U;e[29]!==w||e[30]!==r?(U=r("Instruments unavailable: {error}",{error:w}),e[29]=w,e[30]=r,e[31]=U):U=e[31];let F;e[32]!==U?(F=(0,t.jsx)("span",{className:"text-xs text-muted-foreground","data-testid":"mt-instruments-error",role:"status",children:U}),e[32]=U,e[33]=F):F=e[33];let ce;e[34]!==P||e[35]!==F?(ce=(0,t.jsxs)("section",{className:"flex flex-col gap-2","data-testid":"mt-instruments",children:[P,F]}),e[34]=P,e[35]=F,e[36]=ce):ce=e[36],p=ce;break e}if(K.length===0){p=null;break e}let J=Yt(u),L;e[37]!==r?(L=o(h=>r(h==="counter"?"Counter":h==="gauge"?"Gauge":"Histogram"),"L"),e[37]=r,e[38]=L):L=e[38];let H=L;_="flex flex-col gap-2",c="mt-instruments";let A;e[39]!==r?(A=r("Instruments"),e[39]=r,e[40]=A):A=e[40],e[41]!==A?(g=(0,t.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:A}),e[41]=A,e[42]=g):g=e[42],q=fe,I="overflow-hidden py-0",b=pe,D="px-0",M=lt,$="mt-instruments-table";let O;e[43]!==r?(O=r("name"),e[43]=r,e[44]=O):O=e[44];let G;e[45]!==O?(G=(0,t.jsx)(de,{children:O}),e[45]=O,e[46]=G):G=e[46];let V;e[47]!==r?(V=r("kind"),e[47]=r,e[48]=V):V=e[48];let X;e[49]!==V?(X=(0,t.jsx)(de,{children:V}),e[49]=V,e[50]=X):X=e[50];let Y;e[51]!==r?(Y=r("value"),e[51]=r,e[52]=Y):Y=e[52];let Z;e[53]!==Y?(Z=(0,t.jsx)(de,{className:"text-right",children:Y}),e[53]=Y,e[54]=Z):Z=e[54];let Q;e[55]!==r?(Q=r("count"),e[55]=r,e[56]=Q):Q=e[56];let ee;e[57]!==Q?(ee=(0,t.jsx)(de,{className:"text-right",children:Q}),e[57]=Q,e[58]=ee):ee=e[58];let te;e[59]!==r?(te=r("range"),e[59]=r,e[60]=te):te=e[60];let re;e[61]!==te?(re=(0,t.jsx)(de,{className:"text-right",children:te}),e[61]=te,e[62]=re):re=e[62];let ae;e[63]!==r?(ae=r("trend"),e[63]=r,e[64]=ae):ae=e[64];let se;e[65]!==ae?(se=(0,t.jsx)(de,{children:ae}),e[65]=ae,e[66]=se):se=e[66];let le;e[67]!==r?(le=r("trace"),e[67]=r,e[68]=le):le=e[68];let ne;e[69]!==le?(ne=(0,t.jsx)(de,{children:le}),e[69]=le,e[70]=ne):ne=e[70];let ie;e[71]!==r?(ie=r("dimensions"),e[71]=r,e[72]=ie):ie=e[72];let oe;e[73]!==ie?(oe=(0,t.jsx)(de,{children:ie}),e[73]=ie,e[74]=oe):oe=e[74],e[75]!==G||e[76]!==X||e[77]!==Z||e[78]!==ee||e[79]!==re||e[80]!==se||e[81]!==ne||e[82]!==oe?(y=(0,t.jsx)(nt,{children:(0,t.jsxs)(je,{children:[G,X,Z,ee,re,se,ne,oe]})}),e[75]=G,e[76]=X,e[77]=Z,e[78]=ee,e[79]=re,e[80]=se,e[81]=ne,e[82]=oe,e[83]=y):y=e[83],m=it,k=K.map(h=>{let P=zt(h.attributes),U=Pt(h.kind,h.name,h.attributes),F=(J.get(U)??[]).map(ce=>Bt(h.kind,ce));return(0,t.jsxs)(je,{"data-testid":`mt-instrument-${h.name}`,children:[(0,t.jsx)(B,{className:"font-mono text-xs",title:h.functionPath,children:h.name}),(0,t.jsx)(B,{children:(0,t.jsx)(Be,{variant:Zt[h.kind],children:H(h.kind)})}),(0,t.jsx)(B,{className:"text-right font-mono tabular-nums","data-testid":`mt-instrument-value-${h.name}`,children:ct(Gt(h))}),(0,t.jsx)(B,{className:"text-right tabular-nums text-muted-foreground",children:h.count.toLocaleString()}),(0,t.jsx)(B,{className:"text-right font-mono text-xs tabular-nums text-muted-foreground",children:h.min===h.max?"\u2014":`${ct(h.min)}\u2013${ct(h.max)}`}),(0,t.jsx)(B,{children:F.length>=2?(0,t.jsx)(ot,{ariaLabel:r("{name} trend",{name:h.name}),className:"h-6 w-24 text-foreground",series:F,testId:`mt-instrument-trend-${h.name}`}):(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:"\u2014"})}),(0,t.jsx)(B,{className:"font-mono text-xs",children:(0,t.jsx)(Qt,{name:h.name,onOpenTrace:l,traceId:h.exemplarTraceId})}),(0,t.jsx)(B,{className:"max-w-64 truncate font-mono text-xs text-muted-foreground",title:P,children:P===""?"\u2014":P})]},U)})}e[6]=n,e[7]=w,e[8]=x,e[9]=u,e[10]=l,e[11]=r,e[12]=m,e[13]=M,e[14]=b,e[15]=q,e[16]=_,e[17]=c,e[18]=g,e[19]=p,e[20]=k,e[21]=$,e[22]=y,e[23]=D,e[24]=I}else m=e[12],M=e[13],b=e[14],q=e[15],_=e[16],c=e[17],g=e[18],p=e[19],k=e[20],$=e[21],y=e[22],D=e[23],I=e[24];if(p!==Symbol.for("react.early_return_sentinel"))return p;let C;e[84]!==m||e[85]!==k?(C=(0,t.jsx)(m,{children:k}),e[84]=m,e[85]=k,e[86]=C):C=e[86];let T;e[87]!==M||e[88]!==C||e[89]!==$||e[90]!==y?(T=(0,t.jsxs)(M,{"data-testid":$,children:[y,C]}),e[87]=M,e[88]=C,e[89]=$,e[90]=y,e[91]=T):T=e[91];let N;e[92]!==b||e[93]!==T||e[94]!==D?(N=(0,t.jsx)(b,{className:D,children:T}),e[92]=b,e[93]=T,e[94]=D,e[95]=N):N=e[95];let v;e[96]!==q||e[97]!==N||e[98]!==I?(v=(0,t.jsx)(q,{className:I,children:N}),e[96]=q,e[97]=N,e[98]=I,e[99]=v):v=e[99];let z;return e[100]!==_||e[101]!==c||e[102]!==g||e[103]!==v?(z=(0,t.jsxs)("section",{className:_,"data-testid":c,children:[g,v]}),e[100]=_,e[101]=c,e[102]=g,e[103]=v,e[104]=z):z=e[104],z},"er"),tr=o(s=>{let e=(0,xe.c)(74),{aggregate:l,shardResults:a}=s,r=ge(),d;e[0]!==r?(d=r("Shards"),e[0]=r,e[1]=d):d=e[1];let i;e[2]!==l.failed||e[3]!==l.reachable||e[4]!==r?(i=l.failed>0?r("{reachable} reachable, {failed} unreachable",{failed:l.failed,reachable:l.reachable}):r("{reachable} reachable",{reachable:l.reachable}),e[2]=l.failed,e[3]=l.reachable,e[4]=r,e[5]=i):i=e[5];let n;e[6]!==d||e[7]!==i?(n=(0,t.jsx)(me,{label:d,testId:"mt-agg-shards",value:i}),e[6]=d,e[7]=i,e[8]=n):n=e[8];let w;e[9]!==r?(w=r("Total requests"),e[9]=r,e[10]=w):w=e[10];let x;e[11]!==l.totalRequests||e[12]!==w?(x=(0,t.jsx)(me,{label:w,testId:"mt-agg-requests",value:l.totalRequests}),e[11]=l.totalRequests,e[12]=w,e[13]=x):x=e[13];let S;e[14]!==r?(S=r("Total errors"),e[14]=r,e[15]=S):S=e[15];let f;e[16]!==l.totalErrors||e[17]!==S?(f=(0,t.jsx)(me,{label:S,testId:"mt-agg-errors",value:l.totalErrors}),e[16]=l.totalErrors,e[17]=S,e[18]=f):f=e[18];let u;e[19]!==r?(u=r("Total database size"),e[19]=r,e[20]=u):u=e[20];let m;e[21]!==l.totalDatabaseSize?(m=Ge(l.totalDatabaseSize),e[21]=l.totalDatabaseSize,e[22]=m):m=e[22];let M;e[23]!==u||e[24]!==m?(M=(0,t.jsx)(me,{label:u,testId:"mt-agg-db-size",value:m}),e[23]=u,e[24]=m,e[25]=M):M=e[25];let b;e[26]!==r?(b=r("Combined cache hit rate"),e[26]=r,e[27]=b):b=e[27];let q;e[28]!==l.hitRate||e[29]!==r?(q=l.hitRate===null?r("no cache configured"):`${(l.hitRate*100).toFixed(1)}%`,e[28]=l.hitRate,e[29]=r,e[30]=q):q=e[30];let _;e[31]!==b||e[32]!==q?(_=(0,t.jsx)(me,{label:b,testId:"mt-agg-cache",value:q}),e[31]=b,e[32]=q,e[33]=_):_=e[33];let c;e[34]!==M||e[35]!==_||e[36]!==n||e[37]!==x||e[38]!==f?(c=(0,t.jsxs)("dl",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3","data-testid":"mt-aggregate-stats",children:[n,x,f,M,_]}),e[34]=M,e[35]=_,e[36]=n,e[37]=x,e[38]=f,e[39]=c):c=e[39];let g;e[40]!==r?(g=r("shard"),e[40]=r,e[41]=g):g=e[41];let p;e[42]!==g?(p=(0,t.jsx)(de,{children:g}),e[42]=g,e[43]=p):p=e[43];let k;e[44]!==r?(k=r("requests"),e[44]=r,e[45]=k):k=e[45];let $;e[46]!==k?($=(0,t.jsx)(de,{children:k}),e[46]=k,e[47]=$):$=e[47];let y;e[48]!==r?(y=r("errors"),e[48]=r,e[49]=y):y=e[49];let D;e[50]!==y?(D=(0,t.jsx)(de,{children:y}),e[50]=y,e[51]=D):D=e[51];let I;e[52]!==r?(I=r("db size"),e[52]=r,e[53]=I):I=e[53];let C;e[54]!==I?(C=(0,t.jsx)(de,{children:I}),e[54]=I,e[55]=C):C=e[55];let T;e[56]!==p||e[57]!==$||e[58]!==D||e[59]!==C?(T=(0,t.jsx)(nt,{children:(0,t.jsxs)(je,{children:[p,$,D,C]})}),e[56]=p,e[57]=$,e[58]=D,e[59]=C,e[60]=T):T=e[60];let N;if(e[61]!==a||e[62]!==r){let E;e[64]!==r?(E=o(J=>(0,t.jsxs)(je,{"data-testid":`mt-agg-row-${J.shard}`,children:[(0,t.jsx)(B,{children:J.shard}),J.metrics===null?(0,t.jsx)(B,{className:"text-destructive",colSpan:3,children:J.error??r("unreachable")}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(B,{className:"tabular-nums",children:J.metrics.requests}),(0,t.jsx)(B,{className:"tabular-nums",children:J.metrics.errors}),(0,t.jsx)(B,{className:"tabular-nums",children:Ge(J.metrics.databaseSize)})]})]},J.shard),"E"),e[64]=r,e[65]=E):E=e[65],N=a.map(E),e[61]=a,e[62]=r,e[63]=N}else N=e[63];let v;e[66]!==N?(v=(0,t.jsx)(it,{children:N}),e[66]=N,e[67]=v):v=e[67];let z;e[68]!==T||e[69]!==v?(z=(0,t.jsx)(fe,{className:"overflow-hidden py-0",children:(0,t.jsx)(pe,{className:"px-0",children:(0,t.jsxs)(lt,{"data-testid":"mt-agg-table",children:[T,v]})})}),e[68]=T,e[69]=v,e[70]=z):z=e[70];let K;return e[71]!==c||e[72]!==z?(K=(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"mt-aggregate-view",children:[c,z]}),e[71]=c,e[72]=z,e[73]=K):K=e[73],K},"tr"),rr=o(s=>{let e=Math.floor(s/1e3),l=Math.floor(e/3600),a=Math.floor(e%3600/60),r=e%60;return l>0?`${l.toString()}h ${a.toString()}m`:a>0?`${a.toString()}m ${r.toString()}s`:`${r.toString()}s`},"rr"),ar=o((s,e)=>{let l=s+e;return l===0?"\u2014":`${(s/l*100).toFixed(1)}%`},"ar"),jt=o(s=>s<=0?"\u2014":s<1?`${(s*1e3).toFixed(0)}\u03BCs`:s<1e3?`${s.toFixed(1)}ms`:`${(s/1e3).toFixed(2)}s`,"ct"),sr=o(s=>{let e=(0,xe.c)(75),{currentDelta:l,errorRate:a,history:r,latencyPercentiles:d,metrics:i}=s,n=ge(),w;e[0]!==r||e[1]!==n?(w=r.length>=2?(0,t.jsx)(ot,{ariaLabel:n("Requests per interval over time"),className:"h-7 w-24 text-foreground",series:r,testId:"mt-sparkline"}):void 0,e[0]=r,e[1]=n,e[2]=w):w=e[2];let x;e[3]!==l||e[4]!==r.length||e[5]!==n?(x=r.length>=2?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"font-semibold text-foreground",children:`+${l.toLocaleString()}`})," ",n("last interval")]}):(0,t.jsx)("span",{"data-testid":"mt-sparkline-empty",children:n("collecting samples\u2026")}),e[3]=l,e[4]=r.length,e[5]=n,e[6]=x):x=e[6];let S;e[7]!==n?(S=n("Requests"),e[7]=n,e[8]=S):S=e[8];let f;e[9]!==i.requests||e[10]!==w||e[11]!==x||e[12]!==S?(f=(0,t.jsx)(me,{chart:w,footer:x,label:S,testId:"mt-requests",value:i.requests}),e[9]=i.requests,e[10]=w,e[11]=x,e[12]=S,e[13]=f):f=e[13];let u;e[14]!==a||e[15]!==n?(u=n("{rate} error rate",{rate:a}),e[14]=a,e[15]=n,e[16]=u):u=e[16];let m;e[17]!==n?(m=n("Errors"),e[17]=n,e[18]=m):m=e[18];let M;e[19]!==a||e[20]!==i.errors?(M=(0,t.jsxs)(t.Fragment,{children:[i.errors," (",a,")"]}),e[19]=a,e[20]=i.errors,e[21]=M):M=e[21];let b;e[22]!==u||e[23]!==m||e[24]!==M?(b=(0,t.jsx)(me,{footer:u,label:m,testId:"mt-errors",value:M}),e[22]=u,e[23]=m,e[24]=M,e[25]=b):b=e[25];let q;e[26]!==d.p90?(q=d.p90>0?`P90 ${jt(d.p90)}`:void 0,e[26]=d.p90,e[27]=q):q=e[27];let _;e[28]!==n?(_=n("P95 latency"),e[28]=n,e[29]=_):_=e[29];let c;e[30]!==d.p95?(c=d.p95>0?jt(d.p95):"\u2014",e[30]=d.p95,e[31]=c):c=e[31];let g;e[32]!==_||e[33]!==c||e[34]!==q?(g=(0,t.jsx)(me,{footer:q,label:_,testId:"mt-p95",value:c}),e[32]=_,e[33]=c,e[34]=q,e[35]=g):g=e[35];let p;e[36]!==i.cache||e[37]!==n?(p=i.cache===null?void 0:`${i.cache.entries.toLocaleString()} ${n("cache entries")}`,e[36]=i.cache,e[37]=n,e[38]=p):p=e[38];let k;e[39]!==n?(k=n("Database size"),e[39]=n,e[40]=k):k=e[40];let $;e[41]!==i.databaseSize?($=Ge(i.databaseSize),e[41]=i.databaseSize,e[42]=$):$=e[42];let y;e[43]!==p||e[44]!==k||e[45]!==$?(y=(0,t.jsx)(me,{footer:p,label:k,testId:"mt-db-size",value:$}),e[43]=p,e[44]=k,e[45]=$,e[46]=y):y=e[46];let D;e[47]!==n?(D=n("Shard"),e[47]=n,e[48]=D):D=e[48];let I;e[49]!==i.shard||e[50]!==D?(I=(0,t.jsx)(me,{label:D,testId:"mt-shard",value:i.shard}),e[49]=i.shard,e[50]=D,e[51]=I):I=e[51];let C;e[52]!==n?(C=n("Uptime"),e[52]=n,e[53]=C):C=e[53];let T;e[54]!==i.uptimeMs?(T=rr(i.uptimeMs),e[54]=i.uptimeMs,e[55]=T):T=e[55];let N;e[56]!==C||e[57]!==T?(N=(0,t.jsx)(me,{label:C,testId:"mt-uptime",value:T}),e[56]=C,e[57]=T,e[58]=N):N=e[58];let v;e[59]!==n?(v=n("Cache hit rate"),e[59]=n,e[60]=v):v=e[60];let z;e[61]!==i.cache||e[62]!==n?(z=i.cache===null?n("no cache configured"):n("{rate} ({count} entries)",{count:i.cache.entries,rate:ar(i.cache.hits,i.cache.misses)}),e[61]=i.cache,e[62]=n,e[63]=z):z=e[63];let K;e[64]!==v||e[65]!==z?(K=(0,t.jsx)(me,{label:v,testId:"mt-cache",value:z}),e[64]=v,e[65]=z,e[66]=K):K=e[66];let E;return e[67]!==g||e[68]!==y||e[69]!==I||e[70]!==N||e[71]!==K||e[72]!==f||e[73]!==b?(E=(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:[f,b,g,y,I,N,K]}),e[67]=g,e[68]=y,e[69]=I,e[70]=N,e[71]=K,e[72]=f,e[73]=b,e[74]=E):E=e[74],E},"lr"),Xe=o(s=>s>=100?"critical":s>=50?"warning":"good","Ge"),Ue=o(s=>s<1?`${(s*1e3).toFixed(0)}\u03BCs`:s<1e3?`${s.toFixed(1)}ms`:`${(s/1e3).toFixed(2)}s`,"Oe"),Ve=o(s=>s>=1e9?`${(s/1e9).toFixed(1)}B`:s>=1e6?`${(s/1e6).toFixed(1)}M`:s>=1e3?`${(s/1e3).toFixed(1)}K`:s.toLocaleString(),"Be"),lr=o(s=>{let e=(0,xe.c)(3),{level:l}=s;if(l==="critical"){let r;return e[0]===Symbol.for("react.memo_cache_sentinel")?(r=(0,t.jsx)(Be,{variant:"destructive",children:"Slow"}),e[0]=r):r=e[0],r}if(l==="warning"){let r;return e[1]===Symbol.for("react.memo_cache_sentinel")?(r=(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]=r):r=e[1],r}let a;return e[2]===Symbol.for("react.memo_cache_sentinel")?(a=(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]=a):a=e[2],a},"sr"),nr=o((s,e)=>{let l=[...s];return l.sort((a,r)=>{switch(e){case"avgTime":return r.avgDurationMs-a.avgDurationMs;case"execCount":return r.execCount-a.execCount;case"rowsRead":return r.rowsRead-a.rowsRead;default:return r.totalDurationMs-a.totalDurationMs}}),l},"nr"),ir=o(s=>{let e=(0,xe.c)(161),{queryStats:l}=s,a=ge(),[r,d]=(0,j.useState)("totalTime"),i;e[0]===Symbol.for("react.memo_cache_sentinel")?(i=new Set,e[0]=i):i=e[0];let[n,w]=(0,j.useState)(i),x;e[1]===Symbol.for("react.memo_cache_sentinel")?(x=o(I=>{I!==null&&d(I)},"x"),e[1]=x):x=e[1];let S=x,f,u,m,M,b,q,_,c,g,p;if(e[2]!==n||e[3]!==l||e[4]!==r||e[5]!==a){m=Symbol.for("react.early_return_sentinel");e:{let I=nr(l,r),C;e[16]!==l?(C=l.filter(or),e[16]=l,e[17]=C):C=e[17];let T=C.length,N;e[18]!==l?(N=l.filter(cr),e[18]=l,e[19]=N):N=e[19];let v=N.length,z;e[20]!==l?(z=l.filter(dr),e[20]=l,e[21]=z):z=e[21];let K=z.length,E;e[22]===Symbol.for("react.memo_cache_sentinel")?(E=o(R=>{w(ue=>{let W=new Set(ue);return W.has(R)?W.delete(R):W.add(R),W})},"E"),e[22]=E):E=e[22];let J=E;if(l.length===0){let R;e[23]!==a?(R=a("No query insights yet"),e[23]=a,e[24]=R):R=e[24];let ue;e[25]!==R?(ue=(0,t.jsx)("p",{className:"text-lg font-medium","data-testid":"qi-empty",children:R}),e[25]=R,e[26]=ue):ue=e[26];let W;e[27]!==a?(W=a("Query insights appear once statements are executed against this shard."),e[27]=a,e[28]=W):W=e[28];let he;e[29]!==W?(he=(0,t.jsx)("p",{className:"mt-1 text-sm",children:W}),e[29]=W,e[30]=he):he=e[30];let We;e[31]!==ue||e[32]!==he?(We=(0,t.jsx)(fe,{children:(0,t.jsx)(pe,{className:"py-12",children:(0,t.jsxs)("div",{className:"text-center text-muted-foreground",children:[ue,he]})})}),e[31]=ue,e[32]=he,e[33]=We):We=e[33],m=We;break e}_="space-y-4",c="qi-root";let L;e[34]!==a?(L=a("Critical queries"),e[34]=a,e[35]=L):L=e[35];let H;e[36]!==L?(H=(0,t.jsx)(Ke,{className:"pb-2",children:(0,t.jsx)(Oe,{className:"text-sm font-medium",children:L})}),e[36]=L,e[37]=H):H=e[37];let A;e[38]!==T?(A=(0,t.jsx)("div",{className:"text-2xl font-bold text-destructive","data-testid":"qi-critical",children:T}),e[38]=T,e[39]=A):A=e[39];let O;e[40]!==a?(O=a(">100ms avg execution"),e[40]=a,e[41]=O):O=e[41];let G;e[42]!==O?(G=(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:O}),e[42]=O,e[43]=G):G=e[43];let V;e[44]!==A||e[45]!==G?(V=(0,t.jsxs)(pe,{children:[A,G]}),e[44]=A,e[45]=G,e[46]=V):V=e[46];let X;e[47]!==H||e[48]!==V?(X=(0,t.jsxs)(fe,{children:[H,V]}),e[47]=H,e[48]=V,e[49]=X):X=e[49];let Y;e[50]!==a?(Y=a("Moderate queries"),e[50]=a,e[51]=Y):Y=e[51];let Z;e[52]!==Y?(Z=(0,t.jsx)(Ke,{className:"pb-2",children:(0,t.jsx)(Oe,{className:"text-sm font-medium",children:Y})}),e[52]=Y,e[53]=Z):Z=e[53];let Q;e[54]!==v?(Q=(0,t.jsx)("div",{className:"text-2xl font-bold text-warning","data-testid":"qi-moderate",children:v}),e[54]=v,e[55]=Q):Q=e[55];let ee;e[56]!==a?(ee=a("50\u2013100ms avg execution"),e[56]=a,e[57]=ee):ee=e[57];let te;e[58]!==ee?(te=(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:ee}),e[58]=ee,e[59]=te):te=e[59];let re;e[60]!==Q||e[61]!==te?(re=(0,t.jsxs)(pe,{children:[Q,te]}),e[60]=Q,e[61]=te,e[62]=re):re=e[62];let ae;e[63]!==Z||e[64]!==re?(ae=(0,t.jsxs)(fe,{children:[Z,re]}),e[63]=Z,e[64]=re,e[65]=ae):ae=e[65];let se;e[66]!==a?(se=a("Fast queries"),e[66]=a,e[67]=se):se=e[67];let le;e[68]!==se?(le=(0,t.jsx)(Ke,{className:"pb-2",children:(0,t.jsx)(Oe,{className:"text-sm font-medium",children:se})}),e[68]=se,e[69]=le):le=e[69];let ne;e[70]!==K?(ne=(0,t.jsx)("div",{className:"text-2xl font-bold text-success","data-testid":"qi-fast",children:K}),e[70]=K,e[71]=ne):ne=e[71];let ie;e[72]!==a?(ie=a("<50ms avg execution"),e[72]=a,e[73]=ie):ie=e[73];let oe;e[74]!==ie?(oe=(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:ie}),e[74]=ie,e[75]=oe):oe=e[75];let h;e[76]!==ne||e[77]!==oe?(h=(0,t.jsxs)(pe,{children:[ne,oe]}),e[76]=ne,e[77]=oe,e[78]=h):h=e[78];let P;e[79]!==le||e[80]!==h?(P=(0,t.jsxs)(fe,{children:[le,h]}),e[79]=le,e[80]=h,e[81]=P):P=e[81],e[82]!==X||e[83]!==ae||e[84]!==P?(g=(0,t.jsxs)("div",{className:"grid gap-4 md:grid-cols-3",children:[X,ae,P]}),e[82]=X,e[83]=ae,e[84]=P,e[85]=g):g=e[85];let U;e[86]!==a?(U=a("Query leaderboard"),e[86]=a,e[87]=U):U=e[87];let F;e[88]!==U?(F=(0,t.jsx)("h3",{className:"text-lg font-semibold",children:U}),e[88]=U,e[89]=F):F=e[89];let ce;e[90]!==r||e[91]!==a?(ce=a("Slow queries sorted by {sortField}",{sortField:a(r)}),e[90]=r,e[91]=a,e[92]=ce):ce=e[92];let be;e[93]!==ce?(be=(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:ce}),e[93]=ce,e[94]=be):be=e[94];let ve;e[95]!==F||e[96]!==be?(ve=(0,t.jsxs)("div",{children:[F,be]}),e[95]=F,e[96]=be,e[97]=ve):ve=e[97];let ye;e[98]!==a?(ye=a("Sort by"),e[98]=a,e[99]=ye):ye=e[99];let Ne;e[100]!==ye?(Ne=(0,t.jsx)("span",{className:"text-sm text-muted-foreground",children:ye}),e[100]=ye,e[101]=Ne):Ne=e[101];let we;e[102]!==a?(we=a("Sort queries by"),e[102]=a,e[103]=we):we=e[103];let Fe;e[104]===Symbol.for("react.memo_cache_sentinel")?(Fe=(0,t.jsx)(Ct,{}),e[104]=Fe):Fe=e[104];let Se;e[105]!==we?(Se=(0,t.jsx)(Tt,{"aria-label":we,className:"w-[140px]","data-testid":"qi-sort",children:Fe}),e[105]=we,e[106]=Se):Se=e[106];let qe;e[107]!==a?(qe=a("Total time"),e[107]=a,e[108]=qe):qe=e[108];let ke;e[109]!==qe?(ke=(0,t.jsx)(Pe,{value:"totalTime",children:qe}),e[109]=qe,e[110]=ke):ke=e[110];let $e;e[111]!==a?($e=a("Avg time"),e[111]=a,e[112]=$e):$e=e[112];let Me;e[113]!==$e?(Me=(0,t.jsx)(Pe,{value:"avgTime",children:$e}),e[113]=$e,e[114]=Me):Me=e[114];let _e;e[115]!==a?(_e=a("Execution count"),e[115]=a,e[116]=_e):_e=e[116];let De;e[117]!==_e?(De=(0,t.jsx)(Pe,{value:"execCount",children:_e}),e[117]=_e,e[118]=De):De=e[118];let Ie;e[119]!==a?(Ie=a("Rows read"),e[119]=a,e[120]=Ie):Ie=e[120];let Ce;e[121]!==Ie?(Ce=(0,t.jsx)(Pe,{value:"rowsRead",children:Ie}),e[121]=Ie,e[122]=Ce):Ce=e[122];let Te;e[123]!==ke||e[124]!==Me||e[125]!==De||e[126]!==Ce?(Te=(0,t.jsxs)(Rt,{children:[ke,Me,De,Ce]}),e[123]=ke,e[124]=Me,e[125]=De,e[126]=Ce,e[127]=Te):Te=e[127];let Re;e[128]!==r||e[129]!==Se||e[130]!==Te?(Re=(0,t.jsxs)(It,{onValueChange:S,value:r,children:[Se,Te]}),e[128]=r,e[129]=Se,e[130]=Te,e[131]=Re):Re=e[131];let ze;e[132]!==Ne||e[133]!==Re?(ze=(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[Ne,Re]}),e[132]=Ne,e[133]=Re,e[134]=ze):ze=e[134],e[135]!==ve||e[136]!==ze?(p=(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[ve,ze]}),e[135]=ve,e[136]=ze,e[137]=p):p=e[137],u=fe;let Le;e[138]!==a?(Le=a("Statements"),e[138]=a,e[139]=Le):Le=e[139];let Je;e[140]!==Le?(Je=(0,t.jsx)(Oe,{children:Le}),e[140]=Le,e[141]=Je):Je=e[141],q=(0,t.jsxs)(Ke,{children:[Je,(0,t.jsx)(gt,{children:a("{count} tracked statements",{count:I.length})})]}),f=pe,M="space-y-2";let He;e[142]!==n||e[143]!==a?(He=o(R=>{let ue=R.normalizedSql,W=n.has(ue),he=Xe(R.avgDurationMs);return(0,t.jsxs)("div",{className:"overflow-hidden rounded-lg border","data-testid":"qi-row",children:[(0,t.jsxs)("button",{"aria-expanded":W,className:"flex w-full items-center justify-between p-3 text-left transition-colors hover:bg-muted/50",onClick:o(()=>{J(ue)},"onClick"),type:"button",children:[(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-3",children:[(0,t.jsx)(lr,{level:he}),(0,t.jsx)("span",{className:"max-w-[300px] truncate font-mono text-sm lg:max-w-[500px]",children:R.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:Ue(R.totalDurationMs)}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:a("total")})]}),(0,t.jsxs)("div",{className:"text-right",children:[(0,t.jsx)("div",{className:"text-sm font-medium",children:Ue(R.avgDurationMs)}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:a("avg")})]}),R.p95DurationMs!==void 0&&(0,t.jsxs)("div",{className:"text-right",children:[(0,t.jsx)("div",{className:"text-sm font-medium",children:Ue(R.p95DurationMs)}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:a("p95")})]}),(0,t.jsxs)("div",{className:"text-right",children:[(0,t.jsx)("div",{className:"text-sm font-medium",children:Ve(R.execCount)}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:a("calls")})]})]})]}),W&&(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:a("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:R.normalizedSql})]}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4 text-sm md:grid-cols-4",children:[R.p50DurationMs!==void 0&&(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:a("p50")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:Ue(R.p50DurationMs)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:a("Exec count")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:Ve(R.execCount)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:a("Total time")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:Ue(R.totalDurationMs)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:a("Rows read")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:Ve(R.rowsRead)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:a("Rows written")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:Ve(R.rowsWritten)})]})]})]})]},ue)},"Ke"),e[142]=n,e[143]=a,e[144]=He):He=e[144],b=I.map(He)}e[2]=n,e[3]=l,e[4]=r,e[5]=a,e[6]=f,e[7]=u,e[8]=m,e[9]=M,e[10]=b,e[11]=q,e[12]=_,e[13]=c,e[14]=g,e[15]=p}else f=e[6],u=e[7],m=e[8],M=e[9],b=e[10],q=e[11],_=e[12],c=e[13],g=e[14],p=e[15];if(m!==Symbol.for("react.early_return_sentinel"))return m;let k;e[145]!==M||e[146]!==b?(k=(0,t.jsx)("div",{className:M,children:b}),e[145]=M,e[146]=b,e[147]=k):k=e[147];let $;e[148]!==f||e[149]!==k?($=(0,t.jsx)(f,{children:k}),e[148]=f,e[149]=k,e[150]=$):$=e[150];let y;e[151]!==u||e[152]!==$||e[153]!==q?(y=(0,t.jsxs)(u,{children:[q,$]}),e[151]=u,e[152]=$,e[153]=q,e[154]=y):y=e[154];let D;return e[155]!==y||e[156]!==_||e[157]!==c||e[158]!==g||e[159]!==p?(D=(0,t.jsxs)("div",{className:_,"data-testid":c,children:[g,p,y]}),e[155]=y,e[156]=_,e[157]=c,e[158]=g,e[159]=p,e[160]=D):D=e[160],D},"ir");function or(s){return Xe(s.avgDurationMs)==="critical"}o(or,"or");function cr(s){return Xe(s.avgDurationMs)==="warning"}o(cr,"cr");function dr(s){return Xe(s.avgDurationMs)==="good"}o(dr,"dr");var mr=["1m","5m","15m","1h"],ur=o(s=>new Date(s).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"}),"ur"),hr=o(s=>s.map(e=>({avg:Math.round(e.avgDurationMs*100)/100,execs:e.execCount,label:ur(e.bucketMs)})),"hr"),gr=o(({shardKey:s=""})=>{let e=ge(),[l,a]=(0,j.useState)("15m"),r=Ee(Ae.getQueryInsights,{range:l},{live:!0,shardKey:s}).data,d=hr(r?.buckets??[]);return(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"qi-range",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)("div",{className:"flex gap-1 rounded-lg border border-border p-0.5","data-testid":"qi-ranges",role:"group",children:mr.map(i=>(0,t.jsx)("button",{"aria-pressed":i===l,className:ht("rounded px-2 py-1 text-xs outline-none transition-colors hover:bg-accent focus-visible:bg-accent",i===l&&"bg-accent font-medium text-foreground"),"data-testid":`qi-range-${i}`,onClick:o(()=>{a(i)},"onClick"),type:"button",children:i},i))}),r?.capped===!0&&(0,t.jsx)(Be,{"data-testid":"qi-capped",variant:"secondary",children:e("showing a capped set")})]}),d.length===0?(0,t.jsx)(ft,{description:e("Statements executed in the selected window appear here, with throughput and latency over time."),testId:"qi-empty",title:e("No queries in this window.")}):(0,t.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,t.jsxs)("figure",{className:"rounded-xl border border-border p-3","data-testid":"qi-throughput",children:[(0,t.jsx)("figcaption",{className:"mb-2 text-xs font-medium text-muted-foreground",children:e("Throughput")}),(0,t.jsx)(et,{height:140,width:"100%",children:(0,t.jsxs)(St,{data:d,children:[(0,t.jsx)(rt,{strokeDasharray:"3 3",vertical:!1}),(0,t.jsx)(at,{dataKey:"label",fontSize:10,tickLine:!1}),(0,t.jsx)(st,{allowDecimals:!1,fontSize:10,tickLine:!1,width:32}),(0,t.jsx)(tt,{}),(0,t.jsx)(Nt,{dataKey:"execs",fill:"var(--color-primary)",fillOpacity:.15,stroke:"var(--color-primary)",type:"monotone"})]})})]}),(0,t.jsxs)("figure",{className:"rounded-xl border border-border p-3","data-testid":"qi-latency",children:[(0,t.jsx)("figcaption",{className:"mb-2 text-xs font-medium text-muted-foreground",children:e("Mean latency (ms)")}),(0,t.jsx)(et,{height:140,width:"100%",children:(0,t.jsxs)(wt,{data:d,children:[(0,t.jsx)(rt,{strokeDasharray:"3 3",vertical:!1}),(0,t.jsx)(at,{dataKey:"label",fontSize:10,tickLine:!1}),(0,t.jsx)(st,{fontSize:10,tickLine:!1,width:32}),(0,t.jsx)(tt,{}),(0,t.jsx)(yt,{dataKey:"avg",dot:!1,stroke:"var(--color-destructive)",type:"monotone"})]})})]})]}),(0,t.jsx)(ir,{queryStats:r?.entries??[]})]})},"gr"),fr=pt(Ae.getMetrics),pr=o((s,e)=>s?e:"overview","pr"),Pr=o(({initialShardKey:s})=>{let e=mt(),l=ge(),a=ut(),[r,d]=(0,j.useState)(s??""),[i,n]=(0,j.useState)("overview"),[w,x]=(0,j.useState)([]),S=(0,j.useRef)(null),f=(0,j.useRef)(null),u=(0,j.useRef)(!0);(0,j.useEffect)(()=>(u.current=!0,()=>{u.current=!1}),[]);let m=Mt(r.trim(),400),M=o(L=>{Et({shardKey:m,traceId:L}),Qe(a({to:"/traces"}))},"M"),{data:b,error:q,liveError:_}=Ee(Ae.getMetrics,{},{live:!0,shardKey:m}),c=b??null;(0,j.useEffect)(()=>{if(b===void 0)return;kt(m);let L=b,H=S.current,A=f.current!==null&&f.current!==L.shard;if(f.current=L.shard,S.current=L.requests,A){x([]);return}H!==null&&L.requests>=H&&x(O=>[...O,L.requests-H].slice(-30))},[b,m]);let[g,p]=(0,j.useState)(null),[k,$]=(0,j.useState)(!1),y=o(async()=>{$(!0);let L=At(r,qt());try{let H=await Promise.all(L.map(async A=>{try{let O=await e.query(fr,{},xt(A));return{error:null,metrics:O,shard:A===""?O.shard:A}}catch(O){return{error:bt(O),metrics:null,shard:A===""?"__root__":A}}}));u.current&&p(H)}finally{u.current&&$(!1)}},"y"),D=g===null?null:Lt(g),I=c===null||c.requests===0?"\u2014":`${(c.errors/c.requests*100).toFixed(1)}%`,C=w.length>0?w.at(-1):0,T=c?Kt(c):{p90:0,p95:0},N=(0,j.useMemo)(()=>{if(!c||!("queryStats"in c))return;let L=c.queryStats;if(!(!L||!Array.isArray(L)))return Ot(L)},[c]),v=pr(N!==void 0,i),z=o(()=>{Qe(y())},"T"),K=o(()=>{p(null)},"z"),E=o(()=>{n("overview")},"E"),J=o(()=>{n("query-insights")},"Q");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)($t,{onChange:d,testId:"mt-shard-input",value:r}),(0,t.jsx)(_t,{message:_,prefix:"mt"}),(0,t.jsx)(Ze,{"data-testid":"mt-aggregate",disabled:k,onClick:z,size:"sm",type:"button",variant:"secondary",children:l(k?"Aggregating\u2026":"All shards")}),g!==null&&(0,t.jsx)(Ze,{"data-testid":"mt-aggregate-clear",onClick:K,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:Dt,rel:"noreferrer",target:"_blank",children:l("Open in Cloudflare")})]}),q!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive","data-testid":"mt-error",role:"alert",children:q}),N!==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 ${v==="overview"?"border-b-2 border-primary text-foreground":"text-muted-foreground hover:text-foreground"}`,"data-testid":"mt-tab-overview",onClick:E,type:"button",children:l("Overview")}),(0,t.jsxs)("button",{className:`pb-2 text-sm font-medium transition-colors ${v==="query-insights"?"border-b-2 border-primary text-foreground":"text-muted-foreground hover:text-foreground"}`,"data-testid":"mt-tab-query-insights",onClick:J,type:"button",children:[l("Query insights"),N.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:N.length})]})]}),v==="query-insights"&&N!==void 0&&(0,t.jsx)(gr,{shardKey:m}),v==="overview"&&c!==null&&(0,t.jsx)(sr,{currentDelta:C,errorRate:I,history:w,latencyPercentiles:T,metrics:c}),v==="overview"&&c===null&&null,v==="overview"&&(0,t.jsx)(er,{onOpenTrace:M,shardKey:m}),v==="overview"&&D!==null&&g!==null&&(0,t.jsx)(tr,{aggregate:D,shardResults:g})]})},"Ur");export{Pr as MetricsPanel};
|
|
1
|
+
import{a as Et}from"./chunk-KUVMORDQ.js";import{a as me}from"./chunk-EQZTSISX.js";import{a as Lt,b as At,c as Kt,d as Ot,e as ot}from"./chunk-MN64D74P.js";import{a as zt}from"./chunk-QWGT25SE.js";import{e as Dt}from"./chunk-XF2B7P5A.js";import{a as It,b as Ct,c as Tt,d as Rt,e as Pe}from"./chunk-UU2QJMGJ.js";import"./chunk-2PJNAWB3.js";import"./chunk-SD4BERSA.js";import"./chunk-IC4L6G56.js";import{a as _t}from"./chunk-CTNB2KIA.js";import"./chunk-2QSHLBCO.js";import"./chunk-BGBLQ563.js";import"./chunk-IVFHIQOT.js";import"./chunk-QBWRC5YX.js";import{a as et,b as tt,c as rt,d as yt,e as Nt,f as at,g as st,h as wt,i as St}from"./chunk-AQKXMWNF.js";import"./chunk-4UOFSGUS.js";import"./chunk-ILNELDFC.js";import{a as $t}from"./chunk-X665E2HU.js";import{a as qt,b as kt}from"./chunk-GRL5MG3Z.js";import{e as ut}from"./chunk-SMIESS7P.js";import"./chunk-7T7UOTYK.js";import{a as Mt}from"./chunk-LFKCLLPT.js";import"./chunk-CFPZYHPY.js";import"./chunk-T6VMSOBB.js";import"./chunk-7QIFDWQV.js";import{c as Ze}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import{b as Be}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import"./chunk-QLQADHFE.js";import{a as Ae}from"./chunk-ERMTJYQF.js";import{c as Ee}from"./chunk-YGKR536O.js";import{f as mt}from"./chunk-UBR4KB6K.js";import"./chunk-XBDKZZ67.js";import{a as ft}from"./chunk-XQCVZAGU.js";import{a as lt,b as nt,c as it,d as je,e as de,f as B}from"./chunk-MIQTKZAR.js";import{a as fe,b as Ke,c as Oe,d as gt,e as pe}from"./chunk-UZERI5YC.js";import{d as ge,f as pt,g as xt,h as bt,i as vt,m as Qe,p as Ge}from"./chunk-OG4N2XHD.js";import"./chunk-QNUWWC3N.js";import{a as o,e as Ye,f as Ft,g as Jt,h as Ht,j as ht}from"./chunk-3XIESWL4.js";var j=Ye(Ft(),1);var xe=Ye(Jt(),1);var t=Ye(Ht(),1);var Wt=o((s,e)=>s<e?-1:s>e?1:0,"Jt"),dt=o(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(d=>dt(d)).join(",")}]`;let e=Object.getPrototypeOf(s);if(e!==null&&e!==Object.prototype){let d=s.constructor?.name??"value";throw new TypeError(`stableStringify: cannot use a ${d} 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,a=Object.keys(l).toSorted(Wt),r=[];for(let d of a){let i=l[d];i!==void 0&&r.push(`${JSON.stringify(d)}:${dt(i)}`)}return`{${r.join(",")}}`},"Ze"),Pt=o((s,e,l)=>`${s}:${e}:${dt(l??{})}`,"gt"),Ut=o((s,e)=>s==="gauge"?e.last:s==="histogram"?e.sum/Math.max(1,e.count):e.sum,"ft"),Bt=o((s,e)=>Ut(s,e),"Ht"),Gt=o(s=>Ut(s.kind,s),"Gt"),ct=o(s=>Number.isInteger(s)?s.toLocaleString():s.toLocaleString(void 0,{maximumFractionDigits:2}),"Xe"),Vt=o(s=>Array.isArray(s?.series)?s.series:[],"Wt"),Xt="FUNCTION_NOT_FOUND",Yt=o(s=>{let e=new Map;if(!Array.isArray(s?.series))return e;for(let l of s.series)e.set(Pt(l.kind,l.name,l.attributes),l.points);return e},"Yt"),Zt={counter:"secondary",gauge:"default",histogram:"outline"},Qt=o(s=>{let e=(0,xe.c)(18),{name:l,onOpenTrace:a,traceId:r}=s,d=ge();if(r===void 0){let u;return e[0]===Symbol.for("react.memo_cache_sentinel")?(u=(0,t.jsx)("span",{className:"text-muted-foreground",children:"\u2014"}),e[0]=u):u=e[0],u}let i;e[1]!==r?(i=r.slice(0,8),e[1]=r,e[2]=i):i=e[2];let n=i;if(a===void 0){let u=`mt-instrument-trace-${l}`,m;return e[3]!==n||e[4]!==u||e[5]!==r?(m=(0,t.jsx)("span",{className:"text-muted-foreground","data-testid":u,title:r,children:n}),e[3]=n,e[4]=u,e[5]=r,e[6]=m):m=e[6],m}let w=`mt-instrument-trace-${l}`,x;e[7]!==a||e[8]!==r?(x=o(()=>{a(r)},"x"),e[7]=a,e[8]=r,e[9]=x):x=e[9];let S;e[10]!==d||e[11]!==r?(S=d("Open the exemplar trace {trace}",{trace:r}),e[10]=d,e[11]=r,e[12]=S):S=e[12];let f;return e[13]!==n||e[14]!==w||e[15]!==x||e[16]!==S?(f=(0,t.jsx)("button",{className:"text-primary underline-offset-4 hover:underline","data-testid":w,onClick:x,title:S,type:"button",children:n}),e[13]=n,e[14]=w,e[15]=x,e[16]=S,e[17]=f):f=e[17],f},"Zt"),er=o(s=>{let e=(0,xe.c)(105),{onOpenTrace:l,shardKey:a}=s,r=ge(),d;e[0]===Symbol.for("react.memo_cache_sentinel")?(d={},e[0]=d):d=e[0];let i;e[1]!==a?(i={live:!0,shardKey:a},e[1]=a,e[2]=i):i=e[2];let{data:n,error:w,errorSource:x}=Ee(Ae.getMetricSeries,d,i),S;e[3]===Symbol.for("react.memo_cache_sentinel")?(S={},e[3]=S):S=e[3];let f;e[4]!==a?(f={live:!0,shardKey:a},e[4]=a,e[5]=f):f=e[5];let{data:u}=Ee(Ae.getMetricHistory,S,f),m,M,b,q,_,c,g,p,k,$,y,D,I;if(e[6]!==n||e[7]!==w||e[8]!==x||e[9]!==u||e[10]!==l||e[11]!==r){p=Symbol.for("react.early_return_sentinel");e:{let K=Vt(n),E=vt(x)===Xt;if(w!==null&&!E){let h;e[25]!==r?(h=r("Instruments"),e[25]=r,e[26]=h):h=e[26];let P;e[27]!==h?(P=(0,t.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:h}),e[27]=h,e[28]=P):P=e[28];let U;e[29]!==w||e[30]!==r?(U=r("Instruments unavailable: {error}",{error:w}),e[29]=w,e[30]=r,e[31]=U):U=e[31];let F;e[32]!==U?(F=(0,t.jsx)("span",{className:"text-xs text-muted-foreground","data-testid":"mt-instruments-error",role:"status",children:U}),e[32]=U,e[33]=F):F=e[33];let ce;e[34]!==P||e[35]!==F?(ce=(0,t.jsxs)("section",{className:"flex flex-col gap-2","data-testid":"mt-instruments",children:[P,F]}),e[34]=P,e[35]=F,e[36]=ce):ce=e[36],p=ce;break e}if(K.length===0){p=null;break e}let J=Yt(u),L;e[37]!==r?(L=o(h=>r(h==="counter"?"Counter":h==="gauge"?"Gauge":"Histogram"),"L"),e[37]=r,e[38]=L):L=e[38];let H=L;_="flex flex-col gap-2",c="mt-instruments";let A;e[39]!==r?(A=r("Instruments"),e[39]=r,e[40]=A):A=e[40],e[41]!==A?(g=(0,t.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:A}),e[41]=A,e[42]=g):g=e[42],q=fe,I="overflow-hidden py-0",b=pe,D="px-0",M=lt,$="mt-instruments-table";let O;e[43]!==r?(O=r("name"),e[43]=r,e[44]=O):O=e[44];let G;e[45]!==O?(G=(0,t.jsx)(de,{children:O}),e[45]=O,e[46]=G):G=e[46];let V;e[47]!==r?(V=r("kind"),e[47]=r,e[48]=V):V=e[48];let X;e[49]!==V?(X=(0,t.jsx)(de,{children:V}),e[49]=V,e[50]=X):X=e[50];let Y;e[51]!==r?(Y=r("value"),e[51]=r,e[52]=Y):Y=e[52];let Z;e[53]!==Y?(Z=(0,t.jsx)(de,{className:"text-right",children:Y}),e[53]=Y,e[54]=Z):Z=e[54];let Q;e[55]!==r?(Q=r("count"),e[55]=r,e[56]=Q):Q=e[56];let ee;e[57]!==Q?(ee=(0,t.jsx)(de,{className:"text-right",children:Q}),e[57]=Q,e[58]=ee):ee=e[58];let te;e[59]!==r?(te=r("range"),e[59]=r,e[60]=te):te=e[60];let re;e[61]!==te?(re=(0,t.jsx)(de,{className:"text-right",children:te}),e[61]=te,e[62]=re):re=e[62];let ae;e[63]!==r?(ae=r("trend"),e[63]=r,e[64]=ae):ae=e[64];let se;e[65]!==ae?(se=(0,t.jsx)(de,{children:ae}),e[65]=ae,e[66]=se):se=e[66];let le;e[67]!==r?(le=r("trace"),e[67]=r,e[68]=le):le=e[68];let ne;e[69]!==le?(ne=(0,t.jsx)(de,{children:le}),e[69]=le,e[70]=ne):ne=e[70];let ie;e[71]!==r?(ie=r("dimensions"),e[71]=r,e[72]=ie):ie=e[72];let oe;e[73]!==ie?(oe=(0,t.jsx)(de,{children:ie}),e[73]=ie,e[74]=oe):oe=e[74],e[75]!==G||e[76]!==X||e[77]!==Z||e[78]!==ee||e[79]!==re||e[80]!==se||e[81]!==ne||e[82]!==oe?(y=(0,t.jsx)(nt,{children:(0,t.jsxs)(je,{children:[G,X,Z,ee,re,se,ne,oe]})}),e[75]=G,e[76]=X,e[77]=Z,e[78]=ee,e[79]=re,e[80]=se,e[81]=ne,e[82]=oe,e[83]=y):y=e[83],m=it,k=K.map(h=>{let P=zt(h.attributes),U=Pt(h.kind,h.name,h.attributes),F=(J.get(U)??[]).map(ce=>Bt(h.kind,ce));return(0,t.jsxs)(je,{"data-testid":`mt-instrument-${h.name}`,children:[(0,t.jsx)(B,{className:"font-mono text-xs",title:h.functionPath,children:h.name}),(0,t.jsx)(B,{children:(0,t.jsx)(Be,{variant:Zt[h.kind],children:H(h.kind)})}),(0,t.jsx)(B,{className:"text-right font-mono tabular-nums","data-testid":`mt-instrument-value-${h.name}`,children:ct(Gt(h))}),(0,t.jsx)(B,{className:"text-right tabular-nums text-muted-foreground",children:h.count.toLocaleString()}),(0,t.jsx)(B,{className:"text-right font-mono text-xs tabular-nums text-muted-foreground",children:h.min===h.max?"\u2014":`${ct(h.min)}\u2013${ct(h.max)}`}),(0,t.jsx)(B,{children:F.length>=2?(0,t.jsx)(ot,{ariaLabel:r("{name} trend",{name:h.name}),className:"h-6 w-24 text-foreground",series:F,testId:`mt-instrument-trend-${h.name}`}):(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:"\u2014"})}),(0,t.jsx)(B,{className:"font-mono text-xs",children:(0,t.jsx)(Qt,{name:h.name,onOpenTrace:l,traceId:h.exemplarTraceId})}),(0,t.jsx)(B,{className:"max-w-64 truncate font-mono text-xs text-muted-foreground",title:P,children:P===""?"\u2014":P})]},U)})}e[6]=n,e[7]=w,e[8]=x,e[9]=u,e[10]=l,e[11]=r,e[12]=m,e[13]=M,e[14]=b,e[15]=q,e[16]=_,e[17]=c,e[18]=g,e[19]=p,e[20]=k,e[21]=$,e[22]=y,e[23]=D,e[24]=I}else m=e[12],M=e[13],b=e[14],q=e[15],_=e[16],c=e[17],g=e[18],p=e[19],k=e[20],$=e[21],y=e[22],D=e[23],I=e[24];if(p!==Symbol.for("react.early_return_sentinel"))return p;let C;e[84]!==m||e[85]!==k?(C=(0,t.jsx)(m,{children:k}),e[84]=m,e[85]=k,e[86]=C):C=e[86];let T;e[87]!==M||e[88]!==C||e[89]!==$||e[90]!==y?(T=(0,t.jsxs)(M,{"data-testid":$,children:[y,C]}),e[87]=M,e[88]=C,e[89]=$,e[90]=y,e[91]=T):T=e[91];let N;e[92]!==b||e[93]!==T||e[94]!==D?(N=(0,t.jsx)(b,{className:D,children:T}),e[92]=b,e[93]=T,e[94]=D,e[95]=N):N=e[95];let v;e[96]!==q||e[97]!==N||e[98]!==I?(v=(0,t.jsx)(q,{className:I,children:N}),e[96]=q,e[97]=N,e[98]=I,e[99]=v):v=e[99];let z;return e[100]!==_||e[101]!==c||e[102]!==g||e[103]!==v?(z=(0,t.jsxs)("section",{className:_,"data-testid":c,children:[g,v]}),e[100]=_,e[101]=c,e[102]=g,e[103]=v,e[104]=z):z=e[104],z},"er"),tr=o(s=>{let e=(0,xe.c)(74),{aggregate:l,shardResults:a}=s,r=ge(),d;e[0]!==r?(d=r("Shards"),e[0]=r,e[1]=d):d=e[1];let i;e[2]!==l.failed||e[3]!==l.reachable||e[4]!==r?(i=l.failed>0?r("{reachable} reachable, {failed} unreachable",{failed:l.failed,reachable:l.reachable}):r("{reachable} reachable",{reachable:l.reachable}),e[2]=l.failed,e[3]=l.reachable,e[4]=r,e[5]=i):i=e[5];let n;e[6]!==d||e[7]!==i?(n=(0,t.jsx)(me,{label:d,testId:"mt-agg-shards",value:i}),e[6]=d,e[7]=i,e[8]=n):n=e[8];let w;e[9]!==r?(w=r("Total requests"),e[9]=r,e[10]=w):w=e[10];let x;e[11]!==l.totalRequests||e[12]!==w?(x=(0,t.jsx)(me,{label:w,testId:"mt-agg-requests",value:l.totalRequests}),e[11]=l.totalRequests,e[12]=w,e[13]=x):x=e[13];let S;e[14]!==r?(S=r("Total errors"),e[14]=r,e[15]=S):S=e[15];let f;e[16]!==l.totalErrors||e[17]!==S?(f=(0,t.jsx)(me,{label:S,testId:"mt-agg-errors",value:l.totalErrors}),e[16]=l.totalErrors,e[17]=S,e[18]=f):f=e[18];let u;e[19]!==r?(u=r("Total database size"),e[19]=r,e[20]=u):u=e[20];let m;e[21]!==l.totalDatabaseSize?(m=Ge(l.totalDatabaseSize),e[21]=l.totalDatabaseSize,e[22]=m):m=e[22];let M;e[23]!==u||e[24]!==m?(M=(0,t.jsx)(me,{label:u,testId:"mt-agg-db-size",value:m}),e[23]=u,e[24]=m,e[25]=M):M=e[25];let b;e[26]!==r?(b=r("Combined cache hit rate"),e[26]=r,e[27]=b):b=e[27];let q;e[28]!==l.hitRate||e[29]!==r?(q=l.hitRate===null?r("no cache configured"):`${(l.hitRate*100).toFixed(1)}%`,e[28]=l.hitRate,e[29]=r,e[30]=q):q=e[30];let _;e[31]!==b||e[32]!==q?(_=(0,t.jsx)(me,{label:b,testId:"mt-agg-cache",value:q}),e[31]=b,e[32]=q,e[33]=_):_=e[33];let c;e[34]!==M||e[35]!==_||e[36]!==n||e[37]!==x||e[38]!==f?(c=(0,t.jsxs)("dl",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3","data-testid":"mt-aggregate-stats",children:[n,x,f,M,_]}),e[34]=M,e[35]=_,e[36]=n,e[37]=x,e[38]=f,e[39]=c):c=e[39];let g;e[40]!==r?(g=r("shard"),e[40]=r,e[41]=g):g=e[41];let p;e[42]!==g?(p=(0,t.jsx)(de,{children:g}),e[42]=g,e[43]=p):p=e[43];let k;e[44]!==r?(k=r("requests"),e[44]=r,e[45]=k):k=e[45];let $;e[46]!==k?($=(0,t.jsx)(de,{children:k}),e[46]=k,e[47]=$):$=e[47];let y;e[48]!==r?(y=r("errors"),e[48]=r,e[49]=y):y=e[49];let D;e[50]!==y?(D=(0,t.jsx)(de,{children:y}),e[50]=y,e[51]=D):D=e[51];let I;e[52]!==r?(I=r("db size"),e[52]=r,e[53]=I):I=e[53];let C;e[54]!==I?(C=(0,t.jsx)(de,{children:I}),e[54]=I,e[55]=C):C=e[55];let T;e[56]!==p||e[57]!==$||e[58]!==D||e[59]!==C?(T=(0,t.jsx)(nt,{children:(0,t.jsxs)(je,{children:[p,$,D,C]})}),e[56]=p,e[57]=$,e[58]=D,e[59]=C,e[60]=T):T=e[60];let N;if(e[61]!==a||e[62]!==r){let E;e[64]!==r?(E=o(J=>(0,t.jsxs)(je,{"data-testid":`mt-agg-row-${J.shard}`,children:[(0,t.jsx)(B,{children:J.shard}),J.metrics===null?(0,t.jsx)(B,{className:"text-destructive",colSpan:3,children:J.error??r("unreachable")}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(B,{className:"tabular-nums",children:J.metrics.requests}),(0,t.jsx)(B,{className:"tabular-nums",children:J.metrics.errors}),(0,t.jsx)(B,{className:"tabular-nums",children:Ge(J.metrics.databaseSize)})]})]},J.shard),"E"),e[64]=r,e[65]=E):E=e[65],N=a.map(E),e[61]=a,e[62]=r,e[63]=N}else N=e[63];let v;e[66]!==N?(v=(0,t.jsx)(it,{children:N}),e[66]=N,e[67]=v):v=e[67];let z;e[68]!==T||e[69]!==v?(z=(0,t.jsx)(fe,{className:"overflow-hidden py-0",children:(0,t.jsx)(pe,{className:"px-0",children:(0,t.jsxs)(lt,{"data-testid":"mt-agg-table",children:[T,v]})})}),e[68]=T,e[69]=v,e[70]=z):z=e[70];let K;return e[71]!==c||e[72]!==z?(K=(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"mt-aggregate-view",children:[c,z]}),e[71]=c,e[72]=z,e[73]=K):K=e[73],K},"tr"),rr=o(s=>{let e=Math.floor(s/1e3),l=Math.floor(e/3600),a=Math.floor(e%3600/60),r=e%60;return l>0?`${l.toString()}h ${a.toString()}m`:a>0?`${a.toString()}m ${r.toString()}s`:`${r.toString()}s`},"rr"),ar=o((s,e)=>{let l=s+e;return l===0?"\u2014":`${(s/l*100).toFixed(1)}%`},"ar"),jt=o(s=>s<=0?"\u2014":s<1?`${(s*1e3).toFixed(0)}\u03BCs`:s<1e3?`${s.toFixed(1)}ms`:`${(s/1e3).toFixed(2)}s`,"ct"),sr=o(s=>{let e=(0,xe.c)(75),{currentDelta:l,errorRate:a,history:r,latencyPercentiles:d,metrics:i}=s,n=ge(),w;e[0]!==r||e[1]!==n?(w=r.length>=2?(0,t.jsx)(ot,{ariaLabel:n("Requests per interval over time"),className:"h-7 w-24 text-foreground",series:r,testId:"mt-sparkline"}):void 0,e[0]=r,e[1]=n,e[2]=w):w=e[2];let x;e[3]!==l||e[4]!==r.length||e[5]!==n?(x=r.length>=2?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"font-semibold text-foreground",children:`+${l.toLocaleString()}`})," ",n("last interval")]}):(0,t.jsx)("span",{"data-testid":"mt-sparkline-empty",children:n("collecting samples\u2026")}),e[3]=l,e[4]=r.length,e[5]=n,e[6]=x):x=e[6];let S;e[7]!==n?(S=n("Requests"),e[7]=n,e[8]=S):S=e[8];let f;e[9]!==i.requests||e[10]!==w||e[11]!==x||e[12]!==S?(f=(0,t.jsx)(me,{chart:w,footer:x,label:S,testId:"mt-requests",value:i.requests}),e[9]=i.requests,e[10]=w,e[11]=x,e[12]=S,e[13]=f):f=e[13];let u;e[14]!==a||e[15]!==n?(u=n("{rate} error rate",{rate:a}),e[14]=a,e[15]=n,e[16]=u):u=e[16];let m;e[17]!==n?(m=n("Errors"),e[17]=n,e[18]=m):m=e[18];let M;e[19]!==a||e[20]!==i.errors?(M=(0,t.jsxs)(t.Fragment,{children:[i.errors," (",a,")"]}),e[19]=a,e[20]=i.errors,e[21]=M):M=e[21];let b;e[22]!==u||e[23]!==m||e[24]!==M?(b=(0,t.jsx)(me,{footer:u,label:m,testId:"mt-errors",value:M}),e[22]=u,e[23]=m,e[24]=M,e[25]=b):b=e[25];let q;e[26]!==d.p90?(q=d.p90>0?`P90 ${jt(d.p90)}`:void 0,e[26]=d.p90,e[27]=q):q=e[27];let _;e[28]!==n?(_=n("P95 latency"),e[28]=n,e[29]=_):_=e[29];let c;e[30]!==d.p95?(c=d.p95>0?jt(d.p95):"\u2014",e[30]=d.p95,e[31]=c):c=e[31];let g;e[32]!==_||e[33]!==c||e[34]!==q?(g=(0,t.jsx)(me,{footer:q,label:_,testId:"mt-p95",value:c}),e[32]=_,e[33]=c,e[34]=q,e[35]=g):g=e[35];let p;e[36]!==i.cache||e[37]!==n?(p=i.cache===null?void 0:`${i.cache.entries.toLocaleString()} ${n("cache entries")}`,e[36]=i.cache,e[37]=n,e[38]=p):p=e[38];let k;e[39]!==n?(k=n("Database size"),e[39]=n,e[40]=k):k=e[40];let $;e[41]!==i.databaseSize?($=Ge(i.databaseSize),e[41]=i.databaseSize,e[42]=$):$=e[42];let y;e[43]!==p||e[44]!==k||e[45]!==$?(y=(0,t.jsx)(me,{footer:p,label:k,testId:"mt-db-size",value:$}),e[43]=p,e[44]=k,e[45]=$,e[46]=y):y=e[46];let D;e[47]!==n?(D=n("Shard"),e[47]=n,e[48]=D):D=e[48];let I;e[49]!==i.shard||e[50]!==D?(I=(0,t.jsx)(me,{label:D,testId:"mt-shard",value:i.shard}),e[49]=i.shard,e[50]=D,e[51]=I):I=e[51];let C;e[52]!==n?(C=n("Uptime"),e[52]=n,e[53]=C):C=e[53];let T;e[54]!==i.uptimeMs?(T=rr(i.uptimeMs),e[54]=i.uptimeMs,e[55]=T):T=e[55];let N;e[56]!==C||e[57]!==T?(N=(0,t.jsx)(me,{label:C,testId:"mt-uptime",value:T}),e[56]=C,e[57]=T,e[58]=N):N=e[58];let v;e[59]!==n?(v=n("Cache hit rate"),e[59]=n,e[60]=v):v=e[60];let z;e[61]!==i.cache||e[62]!==n?(z=i.cache===null?n("no cache configured"):n("{rate} ({count} entries)",{count:i.cache.entries,rate:ar(i.cache.hits,i.cache.misses)}),e[61]=i.cache,e[62]=n,e[63]=z):z=e[63];let K;e[64]!==v||e[65]!==z?(K=(0,t.jsx)(me,{label:v,testId:"mt-cache",value:z}),e[64]=v,e[65]=z,e[66]=K):K=e[66];let E;return e[67]!==g||e[68]!==y||e[69]!==I||e[70]!==N||e[71]!==K||e[72]!==f||e[73]!==b?(E=(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:[f,b,g,y,I,N,K]}),e[67]=g,e[68]=y,e[69]=I,e[70]=N,e[71]=K,e[72]=f,e[73]=b,e[74]=E):E=e[74],E},"lr"),Xe=o(s=>s>=100?"critical":s>=50?"warning":"good","Ge"),Ue=o(s=>s<1?`${(s*1e3).toFixed(0)}\u03BCs`:s<1e3?`${s.toFixed(1)}ms`:`${(s/1e3).toFixed(2)}s`,"Oe"),Ve=o(s=>s>=1e9?`${(s/1e9).toFixed(1)}B`:s>=1e6?`${(s/1e6).toFixed(1)}M`:s>=1e3?`${(s/1e3).toFixed(1)}K`:s.toLocaleString(),"Be"),lr=o(s=>{let e=(0,xe.c)(3),{level:l}=s;if(l==="critical"){let r;return e[0]===Symbol.for("react.memo_cache_sentinel")?(r=(0,t.jsx)(Be,{variant:"destructive",children:"Slow"}),e[0]=r):r=e[0],r}if(l==="warning"){let r;return e[1]===Symbol.for("react.memo_cache_sentinel")?(r=(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]=r):r=e[1],r}let a;return e[2]===Symbol.for("react.memo_cache_sentinel")?(a=(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]=a):a=e[2],a},"sr"),nr=o((s,e)=>{let l=[...s];return l.sort((a,r)=>{switch(e){case"avgTime":return r.avgDurationMs-a.avgDurationMs;case"execCount":return r.execCount-a.execCount;case"rowsRead":return r.rowsRead-a.rowsRead;default:return r.totalDurationMs-a.totalDurationMs}}),l},"nr"),ir=o(s=>{let e=(0,xe.c)(161),{queryStats:l}=s,a=ge(),[r,d]=(0,j.useState)("totalTime"),i;e[0]===Symbol.for("react.memo_cache_sentinel")?(i=new Set,e[0]=i):i=e[0];let[n,w]=(0,j.useState)(i),x;e[1]===Symbol.for("react.memo_cache_sentinel")?(x=o(I=>{I!==null&&d(I)},"x"),e[1]=x):x=e[1];let S=x,f,u,m,M,b,q,_,c,g,p;if(e[2]!==n||e[3]!==l||e[4]!==r||e[5]!==a){m=Symbol.for("react.early_return_sentinel");e:{let I=nr(l,r),C;e[16]!==l?(C=l.filter(or),e[16]=l,e[17]=C):C=e[17];let T=C.length,N;e[18]!==l?(N=l.filter(cr),e[18]=l,e[19]=N):N=e[19];let v=N.length,z;e[20]!==l?(z=l.filter(dr),e[20]=l,e[21]=z):z=e[21];let K=z.length,E;e[22]===Symbol.for("react.memo_cache_sentinel")?(E=o(R=>{w(ue=>{let W=new Set(ue);return W.has(R)?W.delete(R):W.add(R),W})},"E"),e[22]=E):E=e[22];let J=E;if(l.length===0){let R;e[23]!==a?(R=a("No query insights yet"),e[23]=a,e[24]=R):R=e[24];let ue;e[25]!==R?(ue=(0,t.jsx)("p",{className:"text-lg font-medium","data-testid":"qi-empty",children:R}),e[25]=R,e[26]=ue):ue=e[26];let W;e[27]!==a?(W=a("Query insights appear once statements are executed against this shard."),e[27]=a,e[28]=W):W=e[28];let he;e[29]!==W?(he=(0,t.jsx)("p",{className:"mt-1 text-sm",children:W}),e[29]=W,e[30]=he):he=e[30];let We;e[31]!==ue||e[32]!==he?(We=(0,t.jsx)(fe,{children:(0,t.jsx)(pe,{className:"py-12",children:(0,t.jsxs)("div",{className:"text-center text-muted-foreground",children:[ue,he]})})}),e[31]=ue,e[32]=he,e[33]=We):We=e[33],m=We;break e}_="space-y-4",c="qi-root";let L;e[34]!==a?(L=a("Critical queries"),e[34]=a,e[35]=L):L=e[35];let H;e[36]!==L?(H=(0,t.jsx)(Ke,{className:"pb-2",children:(0,t.jsx)(Oe,{className:"text-sm font-medium",children:L})}),e[36]=L,e[37]=H):H=e[37];let A;e[38]!==T?(A=(0,t.jsx)("div",{className:"text-2xl font-bold text-destructive","data-testid":"qi-critical",children:T}),e[38]=T,e[39]=A):A=e[39];let O;e[40]!==a?(O=a(">100ms avg execution"),e[40]=a,e[41]=O):O=e[41];let G;e[42]!==O?(G=(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:O}),e[42]=O,e[43]=G):G=e[43];let V;e[44]!==A||e[45]!==G?(V=(0,t.jsxs)(pe,{children:[A,G]}),e[44]=A,e[45]=G,e[46]=V):V=e[46];let X;e[47]!==H||e[48]!==V?(X=(0,t.jsxs)(fe,{children:[H,V]}),e[47]=H,e[48]=V,e[49]=X):X=e[49];let Y;e[50]!==a?(Y=a("Moderate queries"),e[50]=a,e[51]=Y):Y=e[51];let Z;e[52]!==Y?(Z=(0,t.jsx)(Ke,{className:"pb-2",children:(0,t.jsx)(Oe,{className:"text-sm font-medium",children:Y})}),e[52]=Y,e[53]=Z):Z=e[53];let Q;e[54]!==v?(Q=(0,t.jsx)("div",{className:"text-2xl font-bold text-warning","data-testid":"qi-moderate",children:v}),e[54]=v,e[55]=Q):Q=e[55];let ee;e[56]!==a?(ee=a("50\u2013100ms avg execution"),e[56]=a,e[57]=ee):ee=e[57];let te;e[58]!==ee?(te=(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:ee}),e[58]=ee,e[59]=te):te=e[59];let re;e[60]!==Q||e[61]!==te?(re=(0,t.jsxs)(pe,{children:[Q,te]}),e[60]=Q,e[61]=te,e[62]=re):re=e[62];let ae;e[63]!==Z||e[64]!==re?(ae=(0,t.jsxs)(fe,{children:[Z,re]}),e[63]=Z,e[64]=re,e[65]=ae):ae=e[65];let se;e[66]!==a?(se=a("Fast queries"),e[66]=a,e[67]=se):se=e[67];let le;e[68]!==se?(le=(0,t.jsx)(Ke,{className:"pb-2",children:(0,t.jsx)(Oe,{className:"text-sm font-medium",children:se})}),e[68]=se,e[69]=le):le=e[69];let ne;e[70]!==K?(ne=(0,t.jsx)("div",{className:"text-2xl font-bold text-success","data-testid":"qi-fast",children:K}),e[70]=K,e[71]=ne):ne=e[71];let ie;e[72]!==a?(ie=a("<50ms avg execution"),e[72]=a,e[73]=ie):ie=e[73];let oe;e[74]!==ie?(oe=(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:ie}),e[74]=ie,e[75]=oe):oe=e[75];let h;e[76]!==ne||e[77]!==oe?(h=(0,t.jsxs)(pe,{children:[ne,oe]}),e[76]=ne,e[77]=oe,e[78]=h):h=e[78];let P;e[79]!==le||e[80]!==h?(P=(0,t.jsxs)(fe,{children:[le,h]}),e[79]=le,e[80]=h,e[81]=P):P=e[81],e[82]!==X||e[83]!==ae||e[84]!==P?(g=(0,t.jsxs)("div",{className:"grid gap-4 md:grid-cols-3",children:[X,ae,P]}),e[82]=X,e[83]=ae,e[84]=P,e[85]=g):g=e[85];let U;e[86]!==a?(U=a("Query leaderboard"),e[86]=a,e[87]=U):U=e[87];let F;e[88]!==U?(F=(0,t.jsx)("h3",{className:"text-lg font-semibold",children:U}),e[88]=U,e[89]=F):F=e[89];let ce;e[90]!==r||e[91]!==a?(ce=a("Slow queries sorted by {sortField}",{sortField:a(r)}),e[90]=r,e[91]=a,e[92]=ce):ce=e[92];let be;e[93]!==ce?(be=(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:ce}),e[93]=ce,e[94]=be):be=e[94];let ve;e[95]!==F||e[96]!==be?(ve=(0,t.jsxs)("div",{children:[F,be]}),e[95]=F,e[96]=be,e[97]=ve):ve=e[97];let ye;e[98]!==a?(ye=a("Sort by"),e[98]=a,e[99]=ye):ye=e[99];let Ne;e[100]!==ye?(Ne=(0,t.jsx)("span",{className:"text-sm text-muted-foreground",children:ye}),e[100]=ye,e[101]=Ne):Ne=e[101];let we;e[102]!==a?(we=a("Sort queries by"),e[102]=a,e[103]=we):we=e[103];let Fe;e[104]===Symbol.for("react.memo_cache_sentinel")?(Fe=(0,t.jsx)(Ct,{}),e[104]=Fe):Fe=e[104];let Se;e[105]!==we?(Se=(0,t.jsx)(Tt,{"aria-label":we,className:"w-[140px]","data-testid":"qi-sort",children:Fe}),e[105]=we,e[106]=Se):Se=e[106];let qe;e[107]!==a?(qe=a("Total time"),e[107]=a,e[108]=qe):qe=e[108];let ke;e[109]!==qe?(ke=(0,t.jsx)(Pe,{value:"totalTime",children:qe}),e[109]=qe,e[110]=ke):ke=e[110];let $e;e[111]!==a?($e=a("Avg time"),e[111]=a,e[112]=$e):$e=e[112];let Me;e[113]!==$e?(Me=(0,t.jsx)(Pe,{value:"avgTime",children:$e}),e[113]=$e,e[114]=Me):Me=e[114];let _e;e[115]!==a?(_e=a("Execution count"),e[115]=a,e[116]=_e):_e=e[116];let De;e[117]!==_e?(De=(0,t.jsx)(Pe,{value:"execCount",children:_e}),e[117]=_e,e[118]=De):De=e[118];let Ie;e[119]!==a?(Ie=a("Rows read"),e[119]=a,e[120]=Ie):Ie=e[120];let Ce;e[121]!==Ie?(Ce=(0,t.jsx)(Pe,{value:"rowsRead",children:Ie}),e[121]=Ie,e[122]=Ce):Ce=e[122];let Te;e[123]!==ke||e[124]!==Me||e[125]!==De||e[126]!==Ce?(Te=(0,t.jsxs)(Rt,{children:[ke,Me,De,Ce]}),e[123]=ke,e[124]=Me,e[125]=De,e[126]=Ce,e[127]=Te):Te=e[127];let Re;e[128]!==r||e[129]!==Se||e[130]!==Te?(Re=(0,t.jsxs)(It,{onValueChange:S,value:r,children:[Se,Te]}),e[128]=r,e[129]=Se,e[130]=Te,e[131]=Re):Re=e[131];let ze;e[132]!==Ne||e[133]!==Re?(ze=(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[Ne,Re]}),e[132]=Ne,e[133]=Re,e[134]=ze):ze=e[134],e[135]!==ve||e[136]!==ze?(p=(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[ve,ze]}),e[135]=ve,e[136]=ze,e[137]=p):p=e[137],u=fe;let Le;e[138]!==a?(Le=a("Statements"),e[138]=a,e[139]=Le):Le=e[139];let Je;e[140]!==Le?(Je=(0,t.jsx)(Oe,{children:Le}),e[140]=Le,e[141]=Je):Je=e[141],q=(0,t.jsxs)(Ke,{children:[Je,(0,t.jsx)(gt,{children:a("{count} tracked statements",{count:I.length})})]}),f=pe,M="space-y-2";let He;e[142]!==n||e[143]!==a?(He=o(R=>{let ue=R.normalizedSql,W=n.has(ue),he=Xe(R.avgDurationMs);return(0,t.jsxs)("div",{className:"overflow-hidden rounded-lg border","data-testid":"qi-row",children:[(0,t.jsxs)("button",{"aria-expanded":W,className:"flex w-full items-center justify-between p-3 text-left transition-colors hover:bg-muted/50",onClick:o(()=>{J(ue)},"onClick"),type:"button",children:[(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-3",children:[(0,t.jsx)(lr,{level:he}),(0,t.jsx)("span",{className:"max-w-[300px] truncate font-mono text-sm lg:max-w-[500px]",children:R.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:Ue(R.totalDurationMs)}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:a("total")})]}),(0,t.jsxs)("div",{className:"text-right",children:[(0,t.jsx)("div",{className:"text-sm font-medium",children:Ue(R.avgDurationMs)}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:a("avg")})]}),R.p95DurationMs!==void 0&&(0,t.jsxs)("div",{className:"text-right",children:[(0,t.jsx)("div",{className:"text-sm font-medium",children:Ue(R.p95DurationMs)}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:a("p95")})]}),(0,t.jsxs)("div",{className:"text-right",children:[(0,t.jsx)("div",{className:"text-sm font-medium",children:Ve(R.execCount)}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:a("calls")})]})]})]}),W&&(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:a("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:R.normalizedSql})]}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4 text-sm md:grid-cols-4",children:[R.p50DurationMs!==void 0&&(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:a("p50")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:Ue(R.p50DurationMs)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:a("Exec count")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:Ve(R.execCount)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:a("Total time")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:Ue(R.totalDurationMs)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:a("Rows read")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:Ve(R.rowsRead)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:a("Rows written")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:Ve(R.rowsWritten)})]})]})]})]},ue)},"Ke"),e[142]=n,e[143]=a,e[144]=He):He=e[144],b=I.map(He)}e[2]=n,e[3]=l,e[4]=r,e[5]=a,e[6]=f,e[7]=u,e[8]=m,e[9]=M,e[10]=b,e[11]=q,e[12]=_,e[13]=c,e[14]=g,e[15]=p}else f=e[6],u=e[7],m=e[8],M=e[9],b=e[10],q=e[11],_=e[12],c=e[13],g=e[14],p=e[15];if(m!==Symbol.for("react.early_return_sentinel"))return m;let k;e[145]!==M||e[146]!==b?(k=(0,t.jsx)("div",{className:M,children:b}),e[145]=M,e[146]=b,e[147]=k):k=e[147];let $;e[148]!==f||e[149]!==k?($=(0,t.jsx)(f,{children:k}),e[148]=f,e[149]=k,e[150]=$):$=e[150];let y;e[151]!==u||e[152]!==$||e[153]!==q?(y=(0,t.jsxs)(u,{children:[q,$]}),e[151]=u,e[152]=$,e[153]=q,e[154]=y):y=e[154];let D;return e[155]!==y||e[156]!==_||e[157]!==c||e[158]!==g||e[159]!==p?(D=(0,t.jsxs)("div",{className:_,"data-testid":c,children:[g,p,y]}),e[155]=y,e[156]=_,e[157]=c,e[158]=g,e[159]=p,e[160]=D):D=e[160],D},"ir");function or(s){return Xe(s.avgDurationMs)==="critical"}o(or,"or");function cr(s){return Xe(s.avgDurationMs)==="warning"}o(cr,"cr");function dr(s){return Xe(s.avgDurationMs)==="good"}o(dr,"dr");var mr=["1m","5m","15m","1h"],ur=o(s=>new Date(s).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"}),"ur"),hr=o(s=>s.map(e=>({avg:Math.round(e.avgDurationMs*100)/100,execs:e.execCount,label:ur(e.bucketMs)})),"hr"),gr=o(({shardKey:s=""})=>{let e=ge(),[l,a]=(0,j.useState)("15m"),r=Ee(Ae.getQueryInsights,{range:l},{live:!0,shardKey:s}).data,d=hr(r?.buckets??[]);return(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"qi-range",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)("div",{className:"flex gap-1 rounded-lg border border-border p-0.5","data-testid":"qi-ranges",role:"group",children:mr.map(i=>(0,t.jsx)("button",{"aria-pressed":i===l,className:ht("rounded px-2 py-1 text-xs outline-none transition-colors hover:bg-accent focus-visible:bg-accent",i===l&&"bg-accent font-medium text-foreground"),"data-testid":`qi-range-${i}`,onClick:o(()=>{a(i)},"onClick"),type:"button",children:i},i))}),r?.capped===!0&&(0,t.jsx)(Be,{"data-testid":"qi-capped",variant:"secondary",children:e("showing a capped set")})]}),d.length===0?(0,t.jsx)(ft,{description:e("Statements executed in the selected window appear here, with throughput and latency over time."),testId:"qi-empty",title:e("No queries in this window.")}):(0,t.jsxs)("div",{className:"grid gap-4 lg:grid-cols-2",children:[(0,t.jsxs)("figure",{className:"rounded-xl border border-border p-3","data-testid":"qi-throughput",children:[(0,t.jsx)("figcaption",{className:"mb-2 text-xs font-medium text-muted-foreground",children:e("Throughput")}),(0,t.jsx)(et,{height:140,width:"100%",children:(0,t.jsxs)(St,{data:d,children:[(0,t.jsx)(rt,{strokeDasharray:"3 3",vertical:!1}),(0,t.jsx)(at,{dataKey:"label",fontSize:10,tickLine:!1}),(0,t.jsx)(st,{allowDecimals:!1,fontSize:10,tickLine:!1,width:32}),(0,t.jsx)(tt,{}),(0,t.jsx)(Nt,{dataKey:"execs",fill:"var(--color-primary)",fillOpacity:.15,stroke:"var(--color-primary)",type:"monotone"})]})})]}),(0,t.jsxs)("figure",{className:"rounded-xl border border-border p-3","data-testid":"qi-latency",children:[(0,t.jsx)("figcaption",{className:"mb-2 text-xs font-medium text-muted-foreground",children:e("Mean latency (ms)")}),(0,t.jsx)(et,{height:140,width:"100%",children:(0,t.jsxs)(wt,{data:d,children:[(0,t.jsx)(rt,{strokeDasharray:"3 3",vertical:!1}),(0,t.jsx)(at,{dataKey:"label",fontSize:10,tickLine:!1}),(0,t.jsx)(st,{fontSize:10,tickLine:!1,width:32}),(0,t.jsx)(tt,{}),(0,t.jsx)(yt,{dataKey:"avg",dot:!1,stroke:"var(--color-destructive)",type:"monotone"})]})})]})]}),(0,t.jsx)(ir,{queryStats:r?.entries??[]})]})},"gr"),fr=pt(Ae.getMetrics),pr=o((s,e)=>s?e:"overview","pr"),Pr=o(({initialShardKey:s})=>{let e=mt(),l=ge(),a=ut(),[r,d]=(0,j.useState)(s??""),[i,n]=(0,j.useState)("overview"),[w,x]=(0,j.useState)([]),S=(0,j.useRef)(null),f=(0,j.useRef)(null),u=(0,j.useRef)(!0);(0,j.useEffect)(()=>(u.current=!0,()=>{u.current=!1}),[]);let m=Mt(r.trim(),400),M=o(L=>{Et({shardKey:m,traceId:L}),Qe(a({to:"/traces"}))},"M"),{data:b,error:q,liveError:_}=Ee(Ae.getMetrics,{},{live:!0,shardKey:m}),c=b??null;(0,j.useEffect)(()=>{if(b===void 0)return;kt(m);let L=b,H=S.current,A=f.current!==null&&f.current!==L.shard;if(f.current=L.shard,S.current=L.requests,A){x([]);return}H!==null&&L.requests>=H&&x(O=>[...O,L.requests-H].slice(-30))},[b,m]);let[g,p]=(0,j.useState)(null),[k,$]=(0,j.useState)(!1),y=o(async()=>{$(!0);let L=At(r,qt());try{let H=await Promise.all(L.map(async A=>{try{let O=await e.query(fr,{},xt(A));return{error:null,metrics:O,shard:A===""?O.shard:A}}catch(O){return{error:bt(O),metrics:null,shard:A===""?"__root__":A}}}));u.current&&p(H)}finally{u.current&&$(!1)}},"y"),D=g===null?null:Lt(g),I=c===null||c.requests===0?"\u2014":`${(c.errors/c.requests*100).toFixed(1)}%`,C=w.length>0?w.at(-1):0,T=c?Kt(c):{p90:0,p95:0},N=(0,j.useMemo)(()=>{if(!c||!("queryStats"in c))return;let L=c.queryStats;if(!(!L||!Array.isArray(L)))return Ot(L)},[c]),v=pr(N!==void 0,i),z=o(()=>{Qe(y())},"T"),K=o(()=>{p(null)},"z"),E=o(()=>{n("overview")},"E"),J=o(()=>{n("query-insights")},"Q");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)($t,{onChange:d,testId:"mt-shard-input",value:r}),(0,t.jsx)(_t,{message:_,prefix:"mt"}),(0,t.jsx)(Ze,{"data-testid":"mt-aggregate",disabled:k,onClick:z,size:"sm",type:"button",variant:"secondary",children:l(k?"Aggregating\u2026":"All shards")}),g!==null&&(0,t.jsx)(Ze,{"data-testid":"mt-aggregate-clear",onClick:K,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:Dt,rel:"noreferrer",target:"_blank",children:l("Open in Cloudflare")})]}),q!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive","data-testid":"mt-error",role:"alert",children:q}),N!==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 ${v==="overview"?"border-b-2 border-primary text-foreground":"text-muted-foreground hover:text-foreground"}`,"data-testid":"mt-tab-overview",onClick:E,type:"button",children:l("Overview")}),(0,t.jsxs)("button",{className:`pb-2 text-sm font-medium transition-colors ${v==="query-insights"?"border-b-2 border-primary text-foreground":"text-muted-foreground hover:text-foreground"}`,"data-testid":"mt-tab-query-insights",onClick:J,type:"button",children:[l("Query insights"),N.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:N.length})]})]}),v==="query-insights"&&N!==void 0&&(0,t.jsx)(gr,{shardKey:m}),v==="overview"&&c!==null&&(0,t.jsx)(sr,{currentDelta:C,errorRate:I,history:w,latencyPercentiles:T,metrics:c}),v==="overview"&&c===null&&null,v==="overview"&&(0,t.jsx)(er,{onOpenTrace:M,shardKey:m}),v==="overview"&&D!==null&&g!==null&&(0,t.jsx)(tr,{aggregate:D,shardResults:g})]})},"Ur");export{Pr as MetricsPanel};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as ee}from"./chunk-QWGT25SE.js";import{a as ke}from"./chunk-ZJGP6EKR.js";import{b as Ce}from"./chunk-AVAC26HJ.js";import{a as de}from"./chunk-XF2B7P5A.js";import{a as Ne}from"./chunk-CTNB2KIA.js";import{a as ve}from"./chunk-X665E2HU.js";import{b as pe}from"./chunk-GRL5MG3Z.js";import"./chunk-7T7UOTYK.js";import{a as X}from"./chunk-LFKCLLPT.js";import{R as D}from"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import{c as ge}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import{b as J}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as be}from"./chunk-53WEPGUD.js";import"./chunk-XXQUMVWH.js";import"./chunk-RNL6BSFM.js";import"./chunk-QLQADHFE.js";import{a as se}from"./chunk-ERMTJYQF.js";import{c as ne}from"./chunk-XDAT7LHC.js";import{f as he}from"./chunk-EN2QAEO4.js";import"./chunk-XBDKZZ67.js";import{a as Z}from"./chunk-XQCVZAGU.js";import{a as xe,b as ye,c as we,d as ie,e as U,f as z}from"./chunk-MIQTKZAR.js";import{d as j,h as ae,i as fe,m as oe}from"./chunk-OG4N2XHD.js";import"./chunk-AADILRJW.js";import{a as N,e as le,f as Ee,g as Fe,h as Me,j as V}from"./chunk-3XIESWL4.js";var _=le(Fe(),1);var T=le(Ee(),1);var r=le(Me(),1);var ue=["trace","debug","log","info","warn","error","fatal"],Ke="LOG_ARCHIVE_NOT_CONFIGURED",Se={debug:"secondary",error:"destructive",fatal:"destructive",info:"outline",log:"outline",trace:"outline",warn:"secondary"},_e={cursor:void 0,error:null,loading:!1,notConfigured:!1,rows:null},$e=N((i,e)=>{switch(e.type){case"append":return{...i,cursor:e.cursor,error:null,loading:!1,rows:[...i.rows??[],...e.rows]};case"failed":return{cursor:void 0,error:e.message,loading:!1,notConfigured:!1,rows:null};case"loaded":return{cursor:e.cursor,error:null,loading:!1,notConfigured:!1,rows:e.rows};case"loading":return{...i,error:null,loading:!0,notConfigured:!1};case"notConfigured":return{cursor:void 0,error:null,loading:!1,notConfigured:!0,rows:null};case"pageFailed":return{...i,error:e.message,loading:!1};default:return i}},"Me"),Ae=N(i=>{let e=(0,_.c)(33),{row:t}=i,n;e[0]!==t.fields?(n=ee(t.fields),e[0]=t.fields,e[1]=n):n=e[1];let c=n,o=`lg-archive-row-${String(t.ts)}`,m;e[2]!==t.ts?(m=new Date(t.ts).toLocaleString(),e[2]=t.ts,e[3]=m):m=e[3];let p;e[4]!==m?(p=(0,r.jsx)(z,{className:"tabular-nums whitespace-nowrap text-xs text-muted-foreground",children:m}),e[4]=m,e[5]=p):p=e[5];let g=Se[t.level],s;e[6]!==t.level||e[7]!==g?(s=(0,r.jsx)(z,{children:(0,r.jsx)(J,{variant:g,children:t.level})}),e[6]=t.level,e[7]=g,e[8]=s):s=e[8];let l;e[9]!==t.functionPath?(l=(0,r.jsx)(z,{className:"font-mono text-xs",children:t.functionPath}),e[9]=t.functionPath,e[10]=l):l=e[10];let v;e[11]!==t.message?(v=(0,r.jsx)("div",{className:"truncate",title:t.message,children:t.message}),e[11]=t.message,e[12]=v):v=e[12];let a;e[13]!==c?(a=c!==""&&(0,r.jsx)("div",{className:"truncate font-mono text-[11px] text-muted-foreground",title:c,children:c}),e[13]=c,e[14]=a):a=e[14];let d;e[15]!==v||e[16]!==a?(d=(0,r.jsxs)(z,{className:"max-w-md",children:[v,a]}),e[15]=v,e[16]=a,e[17]=d):d=e[17];let u=t.traceId??"\u2014",h;e[18]!==u?(h=(0,r.jsx)(z,{className:"font-mono text-[11px] text-muted-foreground",children:u}),e[18]=u,e[19]=h):h=e[19];let x=t.shardKey??"\u2014",f;e[20]!==x?(f=(0,r.jsx)(z,{className:"font-mono text-[11px] text-muted-foreground",children:x}),e[20]=x,e[21]=f):f=e[21];let b=t.userId??"\u2014",y;e[22]!==b?(y=(0,r.jsx)(z,{className:"font-mono text-[11px] text-muted-foreground",children:b}),e[22]=b,e[23]=y):y=e[23];let k;return e[24]!==d||e[25]!==h||e[26]!==f||e[27]!==y||e[28]!==o||e[29]!==p||e[30]!==s||e[31]!==l?(k=(0,r.jsxs)(ie,{"data-testid":o,children:[p,s,l,d,h,f,y]}),e[24]=d,e[25]=h,e[26]=f,e[27]=y,e[28]=o,e[29]=p,e[30]=s,e[31]=l,e[32]=k):k=e[32],k},"Ke"),Oe=N(({shardKey:i})=>{let e=he(),t=j(),[n,c]=(0,T.useState)(""),[o,m]=(0,T.useState)(""),[p,g]=(0,T.useState)(""),[{cursor:s,error:l,loading:v,notConfigured:a,rows:d},u]=(0,T.useReducer)($e,_e),h=X(n.trim(),400),x=X(o.trim(),400),f={...h===""?{}:{functionPathPrefix:h},...p===""?{}:{minLevel:p},...i===""?{}:{shardKey:i},...x===""?{}:{userId:x}},b=JSON.stringify(f),y=(0,T.useRef)(b);(0,T.useEffect)(()=>{let w={cancelled:!1};return y.current=b,oe((async()=>{u({type:"loading"});try{let C=await e.queryLogArchive(f);w.cancelled||u({cursor:C.nextCursor,rows:C.rows,type:"loaded"})}catch(C){w.cancelled||u(fe(C)===Ke?{type:"notConfigured"}:{message:ae(C),type:"failed"})}})()),()=>{w.cancelled=!0}},[e,b]);let k=N(async()=>{if(s===void 0)return;let w=b;u({type:"loading"});try{let C=await e.queryLogArchive({...f,cursor:s});y.current===w&&u({cursor:C.nextCursor,rows:C.rows,type:"append"})}catch(C){y.current===w&&u({message:ae(C),type:"pageFailed"})}},"C"),R=N(w=>{c(w.target.value)},"$"),L=N(w=>{m(w.target.value)},"L"),S=N(w=>{g(w.target.value)},"k"),I=N(()=>{oe(k())},"R");return a?(0,r.jsx)(Z,{action:(0,r.jsx)("a",{className:"text-sm text-primary underline-offset-4 hover:underline",href:de,rel:"noreferrer",target:"_blank",children:t("Open in Cloudflare")}),description:t("Wire pipelineLogSink to a Cloudflare Pipeline \u2192 R2 Data Catalog table and set R2_SQL_ACCOUNT_ID, R2_SQL_TOKEN, R2_SQL_BUCKET to browse the durable log archive here."),testId:"lg-archive-not-configured",title:t("Log archive not configured")}):(0,r.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lg-archive",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,r.jsx)(D,{"aria-label":t("Function path prefix"),className:"h-8 w-48","data-testid":"lg-archive-path",onChange:R,placeholder:t("function path\u2026"),value:n}),(0,r.jsx)(D,{"aria-label":t("User id"),className:"h-8 w-40","data-testid":"lg-archive-user",onChange:L,placeholder:t("user id\u2026"),value:o}),(0,r.jsxs)("select",{"aria-label":t("Minimum level"),className:"h-8 rounded-md border border-border bg-background px-2 text-sm","data-testid":"lg-archive-min-level",onChange:S,value:p,children:[(0,r.jsx)("option",{value:"",children:t("min level")}),ue.map(w=>(0,r.jsx)("option",{value:w,children:w},w))]})]}),l!==null&&(0,r.jsx)("p",{className:"text-sm text-destructive","data-testid":"lg-archive-error",role:"alert",children:l}),v&&d===null&&l===null&&(0,r.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"lg-archive-loading",children:t("Loading\u2026")}),d!==null&&d.length===0&&(0,r.jsx)(Z,{description:t("No archived logs match these filters. The durable archive fills as pipelineLogSink flushes records to R2."),testId:"lg-archive-empty",title:t("No archived logs.")}),d!==null&&d.length>0&&(0,r.jsx)("div",{className:"overflow-hidden rounded-xl border border-border shadow-xs",children:(0,r.jsxs)(xe,{"data-testid":"lg-archive-table",children:[(0,r.jsx)(ye,{children:(0,r.jsxs)(ie,{children:[(0,r.jsx)(U,{children:t("Time")}),(0,r.jsx)(U,{children:t("Level")}),(0,r.jsx)(U,{children:t("Function")}),(0,r.jsx)(U,{children:t("Message")}),(0,r.jsx)(U,{children:t("Trace")}),(0,r.jsx)(U,{children:t("Shard")}),(0,r.jsx)(U,{children:t("User")})]})}),(0,r.jsx)(we,{children:d.map((w,C)=>(0,r.jsx)(Ae,{row:w},`${String(w.ts)}-${String(C)}`))})]})}),s!==void 0&&(0,r.jsx)("div",{children:(0,r.jsx)(ge,{"data-testid":"lg-archive-more",disabled:v,onClick:I,size:"sm",variant:"outline",children:t(v?"Loading\u2026":"Load more")})})]})},"Ue"),De=N(i=>{let e=(0,_.c)(11),{level:t,onToggle:n,selected:c}=i,o;e[0]!==t||e[1]!==n?(o=N(()=>{n(t)},"o"),e[0]=t,e[1]=n,e[2]=o):o=e[2];let m=o,p=c?"border-border bg-muted font-medium":"border-input text-muted-foreground",g;e[3]!==p?(g=V("rounded-md border px-2 py-1 text-xs",p),e[3]=p,e[4]=g):g=e[4];let s=`logs-level-${t}`,l;return e[5]!==t||e[6]!==m||e[7]!==c||e[8]!==g||e[9]!==s?(l=(0,r.jsx)("button",{"aria-pressed":c,className:g,"data-testid":s,onClick:m,type:"button",children:t}),e[5]=t,e[6]=m,e[7]=c,e[8]=g,e[9]=s,e[10]=l):l=e[10],l},"De"),Ue=N(i=>{let e=(0,_.c)(68),{levelFilter:t,onLogPathChange:n,onSearchChange:c,onTimeRangeChange:o,onToggleLevel:m,onToggleSummary:p,pathFilter:g,search:s,showSummary:l,timeRange:v}=i,a=j(),d;e[0]!==a?(d=a("Search messages"),e[0]=a,e[1]=d):d=e[1];let u;e[2]!==a?(u=a("search message"),e[2]=a,e[3]=u):u=e[3];let h;e[4]!==c||e[5]!==s||e[6]!==d||e[7]!==u?(h=(0,r.jsx)(D,{"aria-label":d,className:"h-8 w-48","data-testid":"lg-search",onChange:c,placeholder:u,value:s}),e[4]=c,e[5]=s,e[6]=d,e[7]=u,e[8]=h):h=e[8];let x;e[9]!==a?(x=a("Function path"),e[9]=a,e[10]=x):x=e[10];let f;e[11]!==a?(f=a("filter path"),e[11]=a,e[12]=f):f=e[12];let b;e[13]!==n||e[14]!==g||e[15]!==x||e[16]!==f?(b=(0,r.jsx)(D,{"aria-label":x,className:"h-8 w-40","data-testid":"logs-path-filter",onChange:n,placeholder:f,value:g}),e[13]=n,e[14]=g,e[15]=x,e[16]=f,e[17]=b):b=e[17];let y;e[18]!==a?(y=a("Level filter"),e[18]=a,e[19]=y):y=e[19];let k;e[20]!==t||e[21]!==m?(k=ue.map(W=>(0,r.jsx)(De,{level:W,onToggle:m,selected:t.has(W)},W)),e[20]=t,e[21]=m,e[22]=k):k=e[22];let R;e[23]!==y||e[24]!==k?(R=(0,r.jsx)("div",{"aria-label":y,className:"inline-flex items-center gap-1","data-testid":"logs-level-filter",role:"group",children:k}),e[23]=y,e[24]=k,e[25]=R):R=e[25];let L;e[26]!==a?(L=a("Time range"),e[26]=a,e[27]=L):L=e[27];let S;e[28]!==a?(S=a("All time"),e[28]=a,e[29]=S):S=e[29];let I;e[30]!==S?(I=(0,r.jsx)("option",{value:"all",children:S}),e[30]=S,e[31]=I):I=e[31];let w;e[32]!==a?(w=a("Last 5m"),e[32]=a,e[33]=w):w=e[33];let C;e[34]!==w?(C=(0,r.jsx)("option",{value:"5m",children:w}),e[34]=w,e[35]=C):C=e[35];let q;e[36]!==a?(q=a("Last 15m"),e[36]=a,e[37]=q):q=e[37];let E;e[38]!==q?(E=(0,r.jsx)("option",{value:"15m",children:q}),e[38]=q,e[39]=E):E=e[39];let F;e[40]!==a?(F=a("Last hour"),e[40]=a,e[41]=F):F=e[41];let M;e[42]!==F?(M=(0,r.jsx)("option",{value:"1h",children:F}),e[42]=F,e[43]=M):M=e[43];let $;e[44]!==o||e[45]!==L||e[46]!==I||e[47]!==C||e[48]!==E||e[49]!==M||e[50]!==v?($=(0,r.jsxs)("select",{"aria-label":L,className:"h-8 rounded-md border border-input bg-transparent px-2 text-sm shadow-xs focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none","data-testid":"logs-time-range",onChange:o,value:v,children:[I,C,E,M]}),e[44]=o,e[45]=L,e[46]=I,e[47]=C,e[48]=E,e[49]=M,e[50]=v,e[51]=$):$=e[51];let G=l?"border-border bg-muted font-medium":"border-input text-muted-foreground",O;e[52]!==G?(O=V("h-8 rounded-md border px-3 text-sm",G),e[52]=G,e[53]=O):O=e[53];let A;e[54]!==l||e[55]!==a?(A=a(l?"List":"Summary"),e[54]=l,e[55]=a,e[56]=A):A=e[56];let K;e[57]!==p||e[58]!==l||e[59]!==O||e[60]!==A?(K=(0,r.jsx)("button",{"aria-pressed":l,className:O,"data-testid":"logs-summary-toggle",onClick:p,type:"button",children:A}),e[57]=p,e[58]=l,e[59]=O,e[60]=A,e[61]=K):K=e[61];let B;return e[62]!==$||e[63]!==K||e[64]!==h||e[65]!==b||e[66]!==R?(B=(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[h,b,R,$,K]}),e[62]=$,e[63]=K,e[64]=h,e[65]=b,e[66]=R,e[67]=B):B=e[67],B},"Ve"),ze=N(i=>{let e=(0,_.c)(53),{onOutcomeChange:t,onPathChange:n,onTableChange:c,onUserChange:o,outcomeFilter:m,pathPrefix:p,tableFilter:g,userIdFilter:s}=i,l=j(),v;e[0]!==l?(v=l("Function path"),e[0]=l,e[1]=v):v=e[1];let a;e[2]!==l?(a=l("file:function"),e[2]=l,e[3]=a):a=e[3];let d;e[4]!==n||e[5]!==p||e[6]!==v||e[7]!==a?(d=(0,r.jsx)(D,{"aria-label":v,className:"h-8 w-44","data-testid":"lg-req-path",onChange:n,placeholder:a,value:p}),e[4]=n,e[5]=p,e[6]=v,e[7]=a,e[8]=d):d=e[8];let u;e[9]!==l?(u=l("User id"),e[9]=l,e[10]=u):u=e[10];let h;e[11]!==l?(h=l("userId"),e[11]=l,e[12]=h):h=e[12];let x;e[13]!==o||e[14]!==u||e[15]!==h||e[16]!==s?(x=(0,r.jsx)(D,{"aria-label":u,className:"h-8 w-32","data-testid":"lg-req-user",onChange:o,placeholder:h,value:s}),e[13]=o,e[14]=u,e[15]=h,e[16]=s,e[17]=x):x=e[17];let f;e[18]!==l?(f=l("Table touched"),e[18]=l,e[19]=f):f=e[19];let b;e[20]!==l?(b=l("table"),e[20]=l,e[21]=b):b=e[21];let y;e[22]!==c||e[23]!==f||e[24]!==b||e[25]!==g?(y=(0,r.jsx)(D,{"aria-label":f,className:"h-8 w-32","data-testid":"lg-req-table",onChange:c,placeholder:b,value:g}),e[22]=c,e[23]=f,e[24]=b,e[25]=g,e[26]=y):y=e[26];let k;e[27]!==l?(k=l("Outcome filter"),e[27]=l,e[28]=k):k=e[28];let R;e[29]!==l?(R=l("all"),e[29]=l,e[30]=R):R=e[30];let L;e[31]!==R?(L=(0,r.jsx)("option",{value:"all",children:R}),e[31]=R,e[32]=L):L=e[32];let S;e[33]!==l?(S=l("ok"),e[33]=l,e[34]=S):S=e[34];let I;e[35]!==S?(I=(0,r.jsx)("option",{value:"ok",children:S}),e[35]=S,e[36]=I):I=e[36];let w;e[37]!==l?(w=l("error"),e[37]=l,e[38]=w):w=e[38];let C;e[39]!==w?(C=(0,r.jsx)("option",{value:"error",children:w}),e[39]=w,e[40]=C):C=e[40];let q;e[41]!==t||e[42]!==m||e[43]!==k||e[44]!==L||e[45]!==I||e[46]!==C?(q=(0,r.jsxs)("select",{"aria-label":k,className:"h-8 rounded-md border border-input bg-transparent px-2 text-sm shadow-xs focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none","data-testid":"lg-req-outcome",onChange:t,value:m,children:[L,I,C]}),e[41]=t,e[42]=m,e[43]=k,e[44]=L,e[45]=I,e[46]=C,e[47]=q):q=e[47];let E;return e[48]!==q||e[49]!==d||e[50]!==x||e[51]!==y?(E=(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[d,x,y,q]}),e[48]=q,e[49]=d,e[50]=x,e[51]=y,e[52]=E):E=e[52],E},"je"),Re=N(i=>{let e=(0,_.c)(7),{bucket:t}=i,n;e[0]!==t.key?(n=(0,r.jsx)("span",{className:"truncate text-muted-foreground",role:"gridcell",children:t.key}),e[0]=t.key,e[1]=n):n=e[1];let c;e[2]!==t.count?(c=(0,r.jsx)("span",{className:"shrink-0 tabular-nums",role:"gridcell",children:t.count}),e[2]=t.count,e[3]=c):c=e[3];let o;return e[4]!==n||e[5]!==c?(o=(0,r.jsxs)("div",{className:"flex items-center justify-between gap-4 px-3 py-1 font-mono text-xs","data-testid":"logs-summary-row",role:"row",children:[n,c]}),e[4]=n,e[5]=c,e[6]=o):o=e[6],o},"ve"),We=N(i=>{let e=(0,_.c)(31),{summary:t}=i,n=j(),c;e[0]!==t.total||e[1]!==n?(c=n("{count} entries",{count:t.total}),e[0]=t.total,e[1]=n,e[2]=c):c=e[2];let o;e[3]!==c?(o=(0,r.jsx)("p",{className:"text-xs text-muted-foreground","data-testid":"logs-summary-total",children:c}),e[3]=c,e[4]=o):o=e[4];let m;e[5]!==n?(m=n("By level"),e[5]=n,e[6]=m):m=e[6];let p;e[7]!==m?(p=(0,r.jsx)("h4",{className:"mb-1 font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:m}),e[7]=m,e[8]=p):p=e[8];let g;e[9]!==t.byLevel?(g=t.byLevel.map(je),e[9]=t.byLevel,e[10]=g):g=e[10];let s;e[11]!==g?(s=(0,r.jsx)("div",{className:"overflow-hidden rounded-lg border border-border","data-testid":"logs-summary-levels",role:"grid",children:g}),e[11]=g,e[12]=s):s=e[12];let l;e[13]!==p||e[14]!==s?(l=(0,r.jsxs)("div",{children:[p,s]}),e[13]=p,e[14]=s,e[15]=l):l=e[15];let v;e[16]!==n?(v=n("By function"),e[16]=n,e[17]=v):v=e[17];let a;e[18]!==v?(a=(0,r.jsx)("h4",{className:"mb-1 font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:v}),e[18]=v,e[19]=a):a=e[19];let d;e[20]!==t.byPath?(d=t.byPath.map(Be),e[20]=t.byPath,e[21]=d):d=e[21];let u;e[22]!==d?(u=(0,r.jsx)("div",{className:"overflow-hidden rounded-lg border border-border","data-testid":"logs-summary-paths",role:"grid",children:d}),e[22]=d,e[23]=u):u=e[23];let h;e[24]!==u||e[25]!==a?(h=(0,r.jsxs)("div",{children:[a,u]}),e[24]=u,e[25]=a,e[26]=h):h=e[26];let x;return e[27]!==h||e[28]!==o||e[29]!==l?(x=(0,r.jsxs)("div",{className:"flex flex-col gap-4 rounded-xl border border-border bg-card p-4 shadow-xs","data-testid":"logs-summary",children:[o,l,h]}),e[27]=h,e[28]=o,e[29]=l,e[30]=x):x=e[30],x},"Be");function je(i){return(0,r.jsx)(Re,{bucket:i},i.key)}N(je,"ze");function Be(i){return(0,r.jsx)(Re,{bucket:i},i.key)}N(Be,"We");var Ve=N(i=>{let e=(0,_.c)(46),{liveError:t,onShardKeyChange:n,onShowArchive:c,onShowErrors:o,onShowRequests:m,shardKey:p,view:g}=i,s=j(),l=g==="requests",v=g==="requests"?"bg-muted font-medium":"text-muted-foreground",a;e[0]!==v?(a=V("px-3 py-1 text-sm",v),e[0]=v,e[1]=a):a=e[1];let d;e[2]!==s?(d=s("Requests"),e[2]=s,e[3]=d):d=e[3];let u;e[4]!==m||e[5]!==l||e[6]!==a||e[7]!==d?(u=(0,r.jsx)("button",{"aria-selected":l,className:a,"data-testid":"lg-view-requests",onClick:m,role:"tab",type:"button",children:d}),e[4]=m,e[5]=l,e[6]=a,e[7]=d,e[8]=u):u=e[8];let h=g==="errors",x=g==="errors"?"bg-muted font-medium":"text-muted-foreground",f;e[9]!==x?(f=V("px-3 py-1 text-sm",x),e[9]=x,e[10]=f):f=e[10];let b;e[11]!==s?(b=s("Errors"),e[11]=s,e[12]=b):b=e[12];let y;e[13]!==o||e[14]!==h||e[15]!==f||e[16]!==b?(y=(0,r.jsx)("button",{"aria-selected":h,className:f,"data-testid":"lg-view-errors",onClick:o,role:"tab",type:"button",children:b}),e[13]=o,e[14]=h,e[15]=f,e[16]=b,e[17]=y):y=e[17];let k=g==="archive",R=g==="archive"?"bg-muted font-medium":"text-muted-foreground",L;e[18]!==R?(L=V("px-3 py-1 text-sm",R),e[18]=R,e[19]=L):L=e[19];let S;e[20]!==s?(S=s("Archive"),e[20]=s,e[21]=S):S=e[21];let I;e[22]!==c||e[23]!==k||e[24]!==L||e[25]!==S?(I=(0,r.jsx)("button",{"aria-selected":k,className:L,"data-testid":"lg-view-archive",onClick:c,role:"tab",type:"button",children:S}),e[22]=c,e[23]=k,e[24]=L,e[25]=S,e[26]=I):I=e[26];let w;e[27]!==y||e[28]!==I||e[29]!==u?(w=(0,r.jsxs)("div",{className:"inline-flex overflow-hidden rounded-lg border border-border",role:"tablist",children:[u,y,I]}),e[27]=y,e[28]=I,e[29]=u,e[30]=w):w=e[30];let C;e[31]!==n||e[32]!==p?(C=(0,r.jsx)(ve,{onChange:n,testId:"lg-shard-input",value:p}),e[31]=n,e[32]=p,e[33]=C):C=e[33];let q;e[34]!==t||e[35]!==g?(q=g!=="archive"&&(0,r.jsx)(Ne,{message:t,prefix:"lg"}),e[34]=t,e[35]=g,e[36]=q):q=e[36];let E;e[37]!==s?(E=s("Open in Cloudflare"),e[37]=s,e[38]=E):E=e[38];let F;e[39]!==E?(F=(0,r.jsx)("a",{className:"text-sm text-primary underline-offset-4 hover:underline","data-testid":"lg-cf-link",href:de,rel:"noreferrer",target:"_blank",children:E}),e[39]=E,e[40]=F):F=e[40];let M;return e[41]!==w||e[42]!==C||e[43]!==q||e[44]!==F?(M=(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[w,C,q,F]}),e[41]=w,e[42]=C,e[43]=q,e[44]=F,e[45]=M):M=e[45],M},"Ge"),ce=400,Ge=36,Qe={height:ce,overflow:"auto"},Ie={left:0,position:"absolute",top:0,width:"100%"},Ye={error:"destructive",ok:"secondary"},He=N(i=>{let e=(0,_.c)(26),{entry:t,index:n,measureRef:c,start:o}=i,m=`translateY(${String(o)}px)`,p;e[0]!==m?(p={...Ie,transform:m},e[0]=m,e[1]=p):p=e[1];let g=p,s;e[2]!==t.fields?(s=ee(t.fields),e[2]=t.fields,e[3]=s):s=e[3];let l=s,v;e[4]!==t.timestamp?(v=new Date(t.timestamp).toLocaleString(),e[4]=t.timestamp,e[5]=v):v=e[5];let a;e[6]!==v?(a=(0,r.jsx)("span",{className:"w-44 shrink-0 tabular-nums text-muted-foreground",role:"gridcell",children:v}),e[6]=v,e[7]=a):a=e[7];let d=Se[t.level],u;e[8]!==t.level||e[9]!==d?(u=(0,r.jsx)("span",{className:"w-20 shrink-0",role:"gridcell",children:(0,r.jsx)(J,{variant:d,children:t.level})}),e[8]=t.level,e[9]=d,e[10]=u):u=e[10];let h=t.functionPath??"\u2014",x;e[11]!==h?(x=(0,r.jsx)("span",{className:"w-48 shrink-0 truncate text-muted-foreground",role:"gridcell",children:h}),e[11]=h,e[12]=x):x=e[12];let f;e[13]!==l?(f=l===""?null:(0,r.jsx)("span",{className:"ml-2 text-muted-foreground","data-testid":"lg-fields",children:l}),e[13]=l,e[14]=f):f=e[14];let b;e[15]!==t.message||e[16]!==f?(b=(0,r.jsxs)("span",{className:"flex-1 truncate",role:"gridcell",children:[t.message,f]}),e[15]=t.message,e[16]=f,e[17]=b):b=e[17];let y;return e[18]!==n||e[19]!==c||e[20]!==g||e[21]!==b||e[22]!==a||e[23]!==u||e[24]!==x?(y=(0,r.jsxs)("div",{className:"flex items-center border-b border-border px-3 py-1.5 font-mono text-xs hover:bg-muted/50","data-index":n,"data-testid":"lg-row",ref:c,role:"row",style:g,children:[a,u,x,b]}),e[18]=n,e[19]=c,e[20]=g,e[21]=b,e[22]=a,e[23]=u,e[24]=x,e[25]=y):y=e[25],y},"Je"),Le=N(i=>i.length===0?"\u2014":i.join(", "),"ce"),Je=N(i=>{let e=(0,_.c)(37),{entry:t,index:n,measureRef:c,start:o}=i,m=`translateY(${String(o)}px)`,p;e[0]!==m?(p={...Ie,transform:m},e[0]=m,e[1]=p):p=e[1];let g=p,s;e[2]!==t.ts?(s=new Date(t.ts).toLocaleString(),e[2]=t.ts,e[3]=s):s=e[3];let l;e[4]!==s?(l=(0,r.jsx)("span",{className:"w-40 shrink-0 tabular-nums text-muted-foreground",role:"gridcell",children:s}),e[4]=s,e[5]=l):l=e[5];let v=Ye[t.outcome],a;e[6]!==t.outcome||e[7]!==v?(a=(0,r.jsx)("span",{className:"w-16 shrink-0",role:"gridcell",children:(0,r.jsx)(J,{variant:v,children:t.outcome})}),e[6]=t.outcome,e[7]=v,e[8]=a):a=e[8];let d;e[9]!==t.functionPath?(d=(0,r.jsx)("span",{className:"w-44 shrink-0 truncate",role:"gridcell",title:t.functionPath,children:t.functionPath}),e[9]=t.functionPath,e[10]=d):d=e[10];let u=t.shardKey??"\u2014",h;e[11]!==u?(h=(0,r.jsx)("span",{className:"w-24 shrink-0 truncate text-muted-foreground",role:"gridcell",children:u}),e[11]=u,e[12]=h):h=e[12];let x=t.userId??"\u2014",f;e[13]!==x?(f=(0,r.jsx)("span",{className:"w-24 shrink-0 truncate text-muted-foreground",role:"gridcell",children:x}),e[13]=x,e[14]=f):f=e[14];let b;e[15]!==t.durationMs?(b=Math.round(t.durationMs),e[15]=t.durationMs,e[16]=b):b=e[16];let y=`${String(b)}ms`,k;e[17]!==y?(k=(0,r.jsx)("span",{className:"w-16 shrink-0 tabular-nums text-muted-foreground",role:"gridcell",children:y}),e[17]=y,e[18]=k):k=e[18];let R;e[19]!==t.errorMessage||e[20]!==t.outcome||e[21]!==t.tablesRead||e[22]!==t.tablesWritten?(R=t.outcome==="error"&&t.errorMessage!==void 0?t.errorMessage:`r:${Le(t.tablesRead)} \xB7 w:${Le(t.tablesWritten)}`,e[19]=t.errorMessage,e[20]=t.outcome,e[21]=t.tablesRead,e[22]=t.tablesWritten,e[23]=R):R=e[23];let L;e[24]!==R?(L=(0,r.jsx)("span",{className:"flex-1 truncate text-muted-foreground",role:"gridcell",children:R}),e[24]=R,e[25]=L):L=e[25];let S;return e[26]!==n||e[27]!==c||e[28]!==g||e[29]!==f||e[30]!==k||e[31]!==L||e[32]!==l||e[33]!==a||e[34]!==d||e[35]!==h?(S=(0,r.jsxs)("div",{className:"flex items-center border-b border-border px-3 py-1.5 font-mono text-xs hover:bg-muted/50","data-index":n,"data-testid":"lg-req-row",ref:c,role:"row",style:g,children:[l,a,d,h,f,k,L]}),e[26]=n,e[27]=c,e[28]=g,e[29]=f,e[30]=k,e[31]=L,e[32]=l,e[33]=a,e[34]=d,e[35]=h,e[36]=S):S=e[36],S},"Xe"),Pe=N(i=>{let{entries:e}=i??{};return Array.isArray(e)?e:[]},"ue"),Ze=N(i=>{let e={};return i.functionPathPrefix.trim()!==""&&(e.functionPathPrefix=i.functionPathPrefix.trim()),i.userId.trim()!==""&&(e.userId=i.userId.trim()),i.tableTouched.trim()!==""&&(e.tableTouched=i.tableTouched.trim()),(i.outcome==="ok"||i.outcome==="error")&&(e.outcome=i.outcome),e},"Ze"),Xe={"5m":300*1e3,"15m":900*1e3,"1h":3600*1e3},et=N((i,e)=>{let t=e.search.trim().toLowerCase(),n=e.path.trim().toLowerCase(),c=e.range==="all"?Number.NEGATIVE_INFINITY:e.now-Xe[e.range];return i.filter(o=>e.levels.size>0&&!e.levels.has(o.level)||o.timestamp<c||n!==""&&!(o.functionPath??"").toLowerCase().includes(n)?!1:t===""||o.message.toLowerCase().includes(t)||ee(o.fields).toLowerCase().includes(t))},"tt"),tt="\u2014",rt=N(i=>{let e=new Map,t=new Map;for(let o of i){e.set(o.level,(e.get(o.level)??0)+1);let m=o.functionPath??tt;t.set(m,(t.get(m)??0)+1)}let n=ue.filter(o=>e.has(o)).map(o=>({count:e.get(o)??0,key:o})),c=[...t.entries()].map(([o,m])=>({count:m,key:o})).toSorted((o,m)=>m.count===o.count?o.key.localeCompare(m.key):m.count-o.count);return{byLevel:n,byPath:c,total:i.length}},"lt"),Ct=N(({initialShardKey:i})=>{let e=j(),[t,n]=(0,T.useState)("requests"),[c,o]=(0,T.useState)(i??""),[m,p]=(0,T.useState)(""),[g,s]=(0,T.useState)(()=>new Set),[l,v]=(0,T.useState)(""),[a,d]=(0,T.useState)("all"),[u,h]=(0,T.useState)(!1),[x,f]=(0,T.useState)(""),[b,y]=(0,T.useState)(""),[k,R]=(0,T.useState)(""),[L,S]=(0,T.useState)("all"),I=X(c.trim(),400),w=Ze({functionPathPrefix:x,outcome:L,tableTouched:k,userId:b}),C=ne(se.getRequestLog,w,{enabled:t==="requests",live:!0,shardKey:I}),q=ne(se.getLogs,{},{enabled:t==="errors",live:!0,shardKey:I}),E=t==="requests"?C:q,{error:F,errorSource:M,isLoading:$,liveError:G}=E,O=Pe(q.data),A=Pe(C.data);(0,T.useEffect)(()=>{E.data!==void 0&&pe(I)},[E.data,I]);let K=et(O,{levels:g,now:Date.now(),path:l,range:a,search:m}),B=rt(K),W=t==="requests"?A.length:K.length,te=t==="errors"&&u,Q=(0,T.useMemo)(()=>F!==null?"error":W===0?$?te?"summary":"list":"empty":te?"summary":"list",[W,$,F,te]),me=(0,T.useRef)(null),Y=Ce({count:W,estimateSize:N(()=>Ge,"estimateSize"),getScrollElement:N(()=>me.current,"getScrollElement"),initialRect:{height:ce,width:800},observeElementRect:N((P,re)=>ke(P,re,ce),"observeElementRect"),overscan:8}),Te=Y.getVirtualItems(),qe={height:Y.getTotalSize(),position:"relative",width:"100%"};return(0,r.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-logs",children:[(0,r.jsx)(Ve,{liveError:G,onShardKeyChange:o,onShowArchive:N(()=>{n("archive"),h(!1)},"onShowArchive"),onShowErrors:N(()=>{n("errors"),h(!1)},"onShowErrors"),onShowRequests:N(()=>{n("requests"),h(!1)},"onShowRequests"),shardKey:c,view:t}),t==="errors"&&(0,r.jsx)(Ue,{levelFilter:g,onLogPathChange:N(P=>{v(P.target.value)},"onLogPathChange"),onSearchChange:N(P=>{p(P.target.value)},"onSearchChange"),onTimeRangeChange:N(P=>{d(P.target.value)},"onTimeRangeChange"),onToggleLevel:N(P=>{s(re=>{let H=new Set(re);return H.has(P)?H.delete(P):H.add(P),H})},"onToggleLevel"),onToggleSummary:N(()=>{h(P=>!P)},"onToggleSummary"),pathFilter:l,search:m,showSummary:u,timeRange:a}),t==="requests"&&(0,r.jsx)(ze,{onOutcomeChange:N(P=>{S(P.target.value)},"onOutcomeChange"),onPathChange:N(P=>{f(P.target.value)},"onPathChange"),onTableChange:N(P=>{R(P.target.value)},"onTableChange"),onUserChange:N(P=>{y(P.target.value)},"onUserChange"),outcomeFilter:L,pathPrefix:x,tableFilter:k,userIdFilter:b}),t==="archive"?(0,r.jsx)(Oe,{shardKey:I}):(0,r.jsxs)(r.Fragment,{children:[Q==="error"&&(0,r.jsx)(be,{error:M,testId:"lg-error"}),Q==="empty"&&(0,r.jsx)(Z,{description:e("Function and request logs for this shard show up here as your app handles traffic."),icon:(0,r.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:(0,r.jsx)("path",{d:"M4 5h16M4 12h16M4 19h10"})}),testId:"lg-empty",title:e("No logs.")}),Q==="summary"&&(0,r.jsx)(We,{summary:B}),Q==="list"&&(0,r.jsx)("div",{className:"rounded-xl border border-border shadow-xs","data-testid":"lg-scroll",ref:me,style:Qe,children:(0,r.jsx)("div",{"aria-label":e("Recent logs"),"data-testid":"lg-table",role:"grid",style:qe,children:Te.map(P=>t==="requests"?(0,r.jsx)(Je,{entry:A[P.index],index:P.index,measureRef:Y.measureElement,start:P.start},P.key):(0,r.jsx)(He,{entry:K[P.index],index:P.index,measureRef:Y.measureElement,start:P.start},P.key))})})]})]})},"$t");export{Ct as LogsPanel,et as filterLogs,rt as summarizeLogs};
|
|
1
|
+
import{a as ee}from"./chunk-QWGT25SE.js";import{a as ke}from"./chunk-ZJGP6EKR.js";import{b as Ce}from"./chunk-AVAC26HJ.js";import{a as de}from"./chunk-XF2B7P5A.js";import{a as Ne}from"./chunk-CTNB2KIA.js";import{a as ve}from"./chunk-X665E2HU.js";import{b as pe}from"./chunk-GRL5MG3Z.js";import"./chunk-7T7UOTYK.js";import{a as X}from"./chunk-LFKCLLPT.js";import{R as D}from"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import{c as ge}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import{b as J}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as be}from"./chunk-AHVDZWB3.js";import"./chunk-XXQUMVWH.js";import"./chunk-VORDESEQ.js";import"./chunk-QLQADHFE.js";import{a as se}from"./chunk-ERMTJYQF.js";import{c as ne}from"./chunk-YGKR536O.js";import{f as he}from"./chunk-UBR4KB6K.js";import"./chunk-XBDKZZ67.js";import{a as Z}from"./chunk-XQCVZAGU.js";import{a as xe,b as ye,c as we,d as ie,e as U,f as z}from"./chunk-MIQTKZAR.js";import{d as j,h as ae,i as fe,m as oe}from"./chunk-OG4N2XHD.js";import"./chunk-QNUWWC3N.js";import{a as N,e as le,f as Ee,g as Fe,h as Me,j as V}from"./chunk-3XIESWL4.js";var _=le(Fe(),1);var T=le(Ee(),1);var r=le(Me(),1);var ue=["trace","debug","log","info","warn","error","fatal"],Ke="LOG_ARCHIVE_NOT_CONFIGURED",Se={debug:"secondary",error:"destructive",fatal:"destructive",info:"outline",log:"outline",trace:"outline",warn:"secondary"},_e={cursor:void 0,error:null,loading:!1,notConfigured:!1,rows:null},$e=N((i,e)=>{switch(e.type){case"append":return{...i,cursor:e.cursor,error:null,loading:!1,rows:[...i.rows??[],...e.rows]};case"failed":return{cursor:void 0,error:e.message,loading:!1,notConfigured:!1,rows:null};case"loaded":return{cursor:e.cursor,error:null,loading:!1,notConfigured:!1,rows:e.rows};case"loading":return{...i,error:null,loading:!0,notConfigured:!1};case"notConfigured":return{cursor:void 0,error:null,loading:!1,notConfigured:!0,rows:null};case"pageFailed":return{...i,error:e.message,loading:!1};default:return i}},"Me"),Ae=N(i=>{let e=(0,_.c)(33),{row:t}=i,n;e[0]!==t.fields?(n=ee(t.fields),e[0]=t.fields,e[1]=n):n=e[1];let c=n,o=`lg-archive-row-${String(t.ts)}`,m;e[2]!==t.ts?(m=new Date(t.ts).toLocaleString(),e[2]=t.ts,e[3]=m):m=e[3];let p;e[4]!==m?(p=(0,r.jsx)(z,{className:"tabular-nums whitespace-nowrap text-xs text-muted-foreground",children:m}),e[4]=m,e[5]=p):p=e[5];let g=Se[t.level],s;e[6]!==t.level||e[7]!==g?(s=(0,r.jsx)(z,{children:(0,r.jsx)(J,{variant:g,children:t.level})}),e[6]=t.level,e[7]=g,e[8]=s):s=e[8];let l;e[9]!==t.functionPath?(l=(0,r.jsx)(z,{className:"font-mono text-xs",children:t.functionPath}),e[9]=t.functionPath,e[10]=l):l=e[10];let v;e[11]!==t.message?(v=(0,r.jsx)("div",{className:"truncate",title:t.message,children:t.message}),e[11]=t.message,e[12]=v):v=e[12];let a;e[13]!==c?(a=c!==""&&(0,r.jsx)("div",{className:"truncate font-mono text-[11px] text-muted-foreground",title:c,children:c}),e[13]=c,e[14]=a):a=e[14];let d;e[15]!==v||e[16]!==a?(d=(0,r.jsxs)(z,{className:"max-w-md",children:[v,a]}),e[15]=v,e[16]=a,e[17]=d):d=e[17];let u=t.traceId??"\u2014",h;e[18]!==u?(h=(0,r.jsx)(z,{className:"font-mono text-[11px] text-muted-foreground",children:u}),e[18]=u,e[19]=h):h=e[19];let x=t.shardKey??"\u2014",f;e[20]!==x?(f=(0,r.jsx)(z,{className:"font-mono text-[11px] text-muted-foreground",children:x}),e[20]=x,e[21]=f):f=e[21];let b=t.userId??"\u2014",y;e[22]!==b?(y=(0,r.jsx)(z,{className:"font-mono text-[11px] text-muted-foreground",children:b}),e[22]=b,e[23]=y):y=e[23];let k;return e[24]!==d||e[25]!==h||e[26]!==f||e[27]!==y||e[28]!==o||e[29]!==p||e[30]!==s||e[31]!==l?(k=(0,r.jsxs)(ie,{"data-testid":o,children:[p,s,l,d,h,f,y]}),e[24]=d,e[25]=h,e[26]=f,e[27]=y,e[28]=o,e[29]=p,e[30]=s,e[31]=l,e[32]=k):k=e[32],k},"Ke"),Oe=N(({shardKey:i})=>{let e=he(),t=j(),[n,c]=(0,T.useState)(""),[o,m]=(0,T.useState)(""),[p,g]=(0,T.useState)(""),[{cursor:s,error:l,loading:v,notConfigured:a,rows:d},u]=(0,T.useReducer)($e,_e),h=X(n.trim(),400),x=X(o.trim(),400),f={...h===""?{}:{functionPathPrefix:h},...p===""?{}:{minLevel:p},...i===""?{}:{shardKey:i},...x===""?{}:{userId:x}},b=JSON.stringify(f),y=(0,T.useRef)(b);(0,T.useEffect)(()=>{let w={cancelled:!1};return y.current=b,oe((async()=>{u({type:"loading"});try{let C=await e.queryLogArchive(f);w.cancelled||u({cursor:C.nextCursor,rows:C.rows,type:"loaded"})}catch(C){w.cancelled||u(fe(C)===Ke?{type:"notConfigured"}:{message:ae(C),type:"failed"})}})()),()=>{w.cancelled=!0}},[e,b]);let k=N(async()=>{if(s===void 0)return;let w=b;u({type:"loading"});try{let C=await e.queryLogArchive({...f,cursor:s});y.current===w&&u({cursor:C.nextCursor,rows:C.rows,type:"append"})}catch(C){y.current===w&&u({message:ae(C),type:"pageFailed"})}},"C"),R=N(w=>{c(w.target.value)},"$"),L=N(w=>{m(w.target.value)},"L"),S=N(w=>{g(w.target.value)},"k"),I=N(()=>{oe(k())},"R");return a?(0,r.jsx)(Z,{action:(0,r.jsx)("a",{className:"text-sm text-primary underline-offset-4 hover:underline",href:de,rel:"noreferrer",target:"_blank",children:t("Open in Cloudflare")}),description:t("Wire pipelineLogSink to a Cloudflare Pipeline \u2192 R2 Data Catalog table and set R2_SQL_ACCOUNT_ID, R2_SQL_TOKEN, R2_SQL_BUCKET to browse the durable log archive here."),testId:"lg-archive-not-configured",title:t("Log archive not configured")}):(0,r.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lg-archive",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,r.jsx)(D,{"aria-label":t("Function path prefix"),className:"h-8 w-48","data-testid":"lg-archive-path",onChange:R,placeholder:t("function path\u2026"),value:n}),(0,r.jsx)(D,{"aria-label":t("User id"),className:"h-8 w-40","data-testid":"lg-archive-user",onChange:L,placeholder:t("user id\u2026"),value:o}),(0,r.jsxs)("select",{"aria-label":t("Minimum level"),className:"h-8 rounded-md border border-border bg-background px-2 text-sm","data-testid":"lg-archive-min-level",onChange:S,value:p,children:[(0,r.jsx)("option",{value:"",children:t("min level")}),ue.map(w=>(0,r.jsx)("option",{value:w,children:w},w))]})]}),l!==null&&(0,r.jsx)("p",{className:"text-sm text-destructive","data-testid":"lg-archive-error",role:"alert",children:l}),v&&d===null&&l===null&&(0,r.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"lg-archive-loading",children:t("Loading\u2026")}),d!==null&&d.length===0&&(0,r.jsx)(Z,{description:t("No archived logs match these filters. The durable archive fills as pipelineLogSink flushes records to R2."),testId:"lg-archive-empty",title:t("No archived logs.")}),d!==null&&d.length>0&&(0,r.jsx)("div",{className:"overflow-hidden rounded-xl border border-border shadow-xs",children:(0,r.jsxs)(xe,{"data-testid":"lg-archive-table",children:[(0,r.jsx)(ye,{children:(0,r.jsxs)(ie,{children:[(0,r.jsx)(U,{children:t("Time")}),(0,r.jsx)(U,{children:t("Level")}),(0,r.jsx)(U,{children:t("Function")}),(0,r.jsx)(U,{children:t("Message")}),(0,r.jsx)(U,{children:t("Trace")}),(0,r.jsx)(U,{children:t("Shard")}),(0,r.jsx)(U,{children:t("User")})]})}),(0,r.jsx)(we,{children:d.map((w,C)=>(0,r.jsx)(Ae,{row:w},`${String(w.ts)}-${String(C)}`))})]})}),s!==void 0&&(0,r.jsx)("div",{children:(0,r.jsx)(ge,{"data-testid":"lg-archive-more",disabled:v,onClick:I,size:"sm",variant:"outline",children:t(v?"Loading\u2026":"Load more")})})]})},"Ue"),De=N(i=>{let e=(0,_.c)(11),{level:t,onToggle:n,selected:c}=i,o;e[0]!==t||e[1]!==n?(o=N(()=>{n(t)},"o"),e[0]=t,e[1]=n,e[2]=o):o=e[2];let m=o,p=c?"border-border bg-muted font-medium":"border-input text-muted-foreground",g;e[3]!==p?(g=V("rounded-md border px-2 py-1 text-xs",p),e[3]=p,e[4]=g):g=e[4];let s=`logs-level-${t}`,l;return e[5]!==t||e[6]!==m||e[7]!==c||e[8]!==g||e[9]!==s?(l=(0,r.jsx)("button",{"aria-pressed":c,className:g,"data-testid":s,onClick:m,type:"button",children:t}),e[5]=t,e[6]=m,e[7]=c,e[8]=g,e[9]=s,e[10]=l):l=e[10],l},"De"),Ue=N(i=>{let e=(0,_.c)(68),{levelFilter:t,onLogPathChange:n,onSearchChange:c,onTimeRangeChange:o,onToggleLevel:m,onToggleSummary:p,pathFilter:g,search:s,showSummary:l,timeRange:v}=i,a=j(),d;e[0]!==a?(d=a("Search messages"),e[0]=a,e[1]=d):d=e[1];let u;e[2]!==a?(u=a("search message"),e[2]=a,e[3]=u):u=e[3];let h;e[4]!==c||e[5]!==s||e[6]!==d||e[7]!==u?(h=(0,r.jsx)(D,{"aria-label":d,className:"h-8 w-48","data-testid":"lg-search",onChange:c,placeholder:u,value:s}),e[4]=c,e[5]=s,e[6]=d,e[7]=u,e[8]=h):h=e[8];let x;e[9]!==a?(x=a("Function path"),e[9]=a,e[10]=x):x=e[10];let f;e[11]!==a?(f=a("filter path"),e[11]=a,e[12]=f):f=e[12];let b;e[13]!==n||e[14]!==g||e[15]!==x||e[16]!==f?(b=(0,r.jsx)(D,{"aria-label":x,className:"h-8 w-40","data-testid":"logs-path-filter",onChange:n,placeholder:f,value:g}),e[13]=n,e[14]=g,e[15]=x,e[16]=f,e[17]=b):b=e[17];let y;e[18]!==a?(y=a("Level filter"),e[18]=a,e[19]=y):y=e[19];let k;e[20]!==t||e[21]!==m?(k=ue.map(W=>(0,r.jsx)(De,{level:W,onToggle:m,selected:t.has(W)},W)),e[20]=t,e[21]=m,e[22]=k):k=e[22];let R;e[23]!==y||e[24]!==k?(R=(0,r.jsx)("div",{"aria-label":y,className:"inline-flex items-center gap-1","data-testid":"logs-level-filter",role:"group",children:k}),e[23]=y,e[24]=k,e[25]=R):R=e[25];let L;e[26]!==a?(L=a("Time range"),e[26]=a,e[27]=L):L=e[27];let S;e[28]!==a?(S=a("All time"),e[28]=a,e[29]=S):S=e[29];let I;e[30]!==S?(I=(0,r.jsx)("option",{value:"all",children:S}),e[30]=S,e[31]=I):I=e[31];let w;e[32]!==a?(w=a("Last 5m"),e[32]=a,e[33]=w):w=e[33];let C;e[34]!==w?(C=(0,r.jsx)("option",{value:"5m",children:w}),e[34]=w,e[35]=C):C=e[35];let q;e[36]!==a?(q=a("Last 15m"),e[36]=a,e[37]=q):q=e[37];let E;e[38]!==q?(E=(0,r.jsx)("option",{value:"15m",children:q}),e[38]=q,e[39]=E):E=e[39];let F;e[40]!==a?(F=a("Last hour"),e[40]=a,e[41]=F):F=e[41];let M;e[42]!==F?(M=(0,r.jsx)("option",{value:"1h",children:F}),e[42]=F,e[43]=M):M=e[43];let $;e[44]!==o||e[45]!==L||e[46]!==I||e[47]!==C||e[48]!==E||e[49]!==M||e[50]!==v?($=(0,r.jsxs)("select",{"aria-label":L,className:"h-8 rounded-md border border-input bg-transparent px-2 text-sm shadow-xs focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none","data-testid":"logs-time-range",onChange:o,value:v,children:[I,C,E,M]}),e[44]=o,e[45]=L,e[46]=I,e[47]=C,e[48]=E,e[49]=M,e[50]=v,e[51]=$):$=e[51];let G=l?"border-border bg-muted font-medium":"border-input text-muted-foreground",O;e[52]!==G?(O=V("h-8 rounded-md border px-3 text-sm",G),e[52]=G,e[53]=O):O=e[53];let A;e[54]!==l||e[55]!==a?(A=a(l?"List":"Summary"),e[54]=l,e[55]=a,e[56]=A):A=e[56];let K;e[57]!==p||e[58]!==l||e[59]!==O||e[60]!==A?(K=(0,r.jsx)("button",{"aria-pressed":l,className:O,"data-testid":"logs-summary-toggle",onClick:p,type:"button",children:A}),e[57]=p,e[58]=l,e[59]=O,e[60]=A,e[61]=K):K=e[61];let B;return e[62]!==$||e[63]!==K||e[64]!==h||e[65]!==b||e[66]!==R?(B=(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[h,b,R,$,K]}),e[62]=$,e[63]=K,e[64]=h,e[65]=b,e[66]=R,e[67]=B):B=e[67],B},"Ve"),ze=N(i=>{let e=(0,_.c)(53),{onOutcomeChange:t,onPathChange:n,onTableChange:c,onUserChange:o,outcomeFilter:m,pathPrefix:p,tableFilter:g,userIdFilter:s}=i,l=j(),v;e[0]!==l?(v=l("Function path"),e[0]=l,e[1]=v):v=e[1];let a;e[2]!==l?(a=l("file:function"),e[2]=l,e[3]=a):a=e[3];let d;e[4]!==n||e[5]!==p||e[6]!==v||e[7]!==a?(d=(0,r.jsx)(D,{"aria-label":v,className:"h-8 w-44","data-testid":"lg-req-path",onChange:n,placeholder:a,value:p}),e[4]=n,e[5]=p,e[6]=v,e[7]=a,e[8]=d):d=e[8];let u;e[9]!==l?(u=l("User id"),e[9]=l,e[10]=u):u=e[10];let h;e[11]!==l?(h=l("userId"),e[11]=l,e[12]=h):h=e[12];let x;e[13]!==o||e[14]!==u||e[15]!==h||e[16]!==s?(x=(0,r.jsx)(D,{"aria-label":u,className:"h-8 w-32","data-testid":"lg-req-user",onChange:o,placeholder:h,value:s}),e[13]=o,e[14]=u,e[15]=h,e[16]=s,e[17]=x):x=e[17];let f;e[18]!==l?(f=l("Table touched"),e[18]=l,e[19]=f):f=e[19];let b;e[20]!==l?(b=l("table"),e[20]=l,e[21]=b):b=e[21];let y;e[22]!==c||e[23]!==f||e[24]!==b||e[25]!==g?(y=(0,r.jsx)(D,{"aria-label":f,className:"h-8 w-32","data-testid":"lg-req-table",onChange:c,placeholder:b,value:g}),e[22]=c,e[23]=f,e[24]=b,e[25]=g,e[26]=y):y=e[26];let k;e[27]!==l?(k=l("Outcome filter"),e[27]=l,e[28]=k):k=e[28];let R;e[29]!==l?(R=l("all"),e[29]=l,e[30]=R):R=e[30];let L;e[31]!==R?(L=(0,r.jsx)("option",{value:"all",children:R}),e[31]=R,e[32]=L):L=e[32];let S;e[33]!==l?(S=l("ok"),e[33]=l,e[34]=S):S=e[34];let I;e[35]!==S?(I=(0,r.jsx)("option",{value:"ok",children:S}),e[35]=S,e[36]=I):I=e[36];let w;e[37]!==l?(w=l("error"),e[37]=l,e[38]=w):w=e[38];let C;e[39]!==w?(C=(0,r.jsx)("option",{value:"error",children:w}),e[39]=w,e[40]=C):C=e[40];let q;e[41]!==t||e[42]!==m||e[43]!==k||e[44]!==L||e[45]!==I||e[46]!==C?(q=(0,r.jsxs)("select",{"aria-label":k,className:"h-8 rounded-md border border-input bg-transparent px-2 text-sm shadow-xs focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none","data-testid":"lg-req-outcome",onChange:t,value:m,children:[L,I,C]}),e[41]=t,e[42]=m,e[43]=k,e[44]=L,e[45]=I,e[46]=C,e[47]=q):q=e[47];let E;return e[48]!==q||e[49]!==d||e[50]!==x||e[51]!==y?(E=(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[d,x,y,q]}),e[48]=q,e[49]=d,e[50]=x,e[51]=y,e[52]=E):E=e[52],E},"je"),Re=N(i=>{let e=(0,_.c)(7),{bucket:t}=i,n;e[0]!==t.key?(n=(0,r.jsx)("span",{className:"truncate text-muted-foreground",role:"gridcell",children:t.key}),e[0]=t.key,e[1]=n):n=e[1];let c;e[2]!==t.count?(c=(0,r.jsx)("span",{className:"shrink-0 tabular-nums",role:"gridcell",children:t.count}),e[2]=t.count,e[3]=c):c=e[3];let o;return e[4]!==n||e[5]!==c?(o=(0,r.jsxs)("div",{className:"flex items-center justify-between gap-4 px-3 py-1 font-mono text-xs","data-testid":"logs-summary-row",role:"row",children:[n,c]}),e[4]=n,e[5]=c,e[6]=o):o=e[6],o},"ve"),We=N(i=>{let e=(0,_.c)(31),{summary:t}=i,n=j(),c;e[0]!==t.total||e[1]!==n?(c=n("{count} entries",{count:t.total}),e[0]=t.total,e[1]=n,e[2]=c):c=e[2];let o;e[3]!==c?(o=(0,r.jsx)("p",{className:"text-xs text-muted-foreground","data-testid":"logs-summary-total",children:c}),e[3]=c,e[4]=o):o=e[4];let m;e[5]!==n?(m=n("By level"),e[5]=n,e[6]=m):m=e[6];let p;e[7]!==m?(p=(0,r.jsx)("h4",{className:"mb-1 font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:m}),e[7]=m,e[8]=p):p=e[8];let g;e[9]!==t.byLevel?(g=t.byLevel.map(je),e[9]=t.byLevel,e[10]=g):g=e[10];let s;e[11]!==g?(s=(0,r.jsx)("div",{className:"overflow-hidden rounded-lg border border-border","data-testid":"logs-summary-levels",role:"grid",children:g}),e[11]=g,e[12]=s):s=e[12];let l;e[13]!==p||e[14]!==s?(l=(0,r.jsxs)("div",{children:[p,s]}),e[13]=p,e[14]=s,e[15]=l):l=e[15];let v;e[16]!==n?(v=n("By function"),e[16]=n,e[17]=v):v=e[17];let a;e[18]!==v?(a=(0,r.jsx)("h4",{className:"mb-1 font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:v}),e[18]=v,e[19]=a):a=e[19];let d;e[20]!==t.byPath?(d=t.byPath.map(Be),e[20]=t.byPath,e[21]=d):d=e[21];let u;e[22]!==d?(u=(0,r.jsx)("div",{className:"overflow-hidden rounded-lg border border-border","data-testid":"logs-summary-paths",role:"grid",children:d}),e[22]=d,e[23]=u):u=e[23];let h;e[24]!==u||e[25]!==a?(h=(0,r.jsxs)("div",{children:[a,u]}),e[24]=u,e[25]=a,e[26]=h):h=e[26];let x;return e[27]!==h||e[28]!==o||e[29]!==l?(x=(0,r.jsxs)("div",{className:"flex flex-col gap-4 rounded-xl border border-border bg-card p-4 shadow-xs","data-testid":"logs-summary",children:[o,l,h]}),e[27]=h,e[28]=o,e[29]=l,e[30]=x):x=e[30],x},"Be");function je(i){return(0,r.jsx)(Re,{bucket:i},i.key)}N(je,"ze");function Be(i){return(0,r.jsx)(Re,{bucket:i},i.key)}N(Be,"We");var Ve=N(i=>{let e=(0,_.c)(46),{liveError:t,onShardKeyChange:n,onShowArchive:c,onShowErrors:o,onShowRequests:m,shardKey:p,view:g}=i,s=j(),l=g==="requests",v=g==="requests"?"bg-muted font-medium":"text-muted-foreground",a;e[0]!==v?(a=V("px-3 py-1 text-sm",v),e[0]=v,e[1]=a):a=e[1];let d;e[2]!==s?(d=s("Requests"),e[2]=s,e[3]=d):d=e[3];let u;e[4]!==m||e[5]!==l||e[6]!==a||e[7]!==d?(u=(0,r.jsx)("button",{"aria-selected":l,className:a,"data-testid":"lg-view-requests",onClick:m,role:"tab",type:"button",children:d}),e[4]=m,e[5]=l,e[6]=a,e[7]=d,e[8]=u):u=e[8];let h=g==="errors",x=g==="errors"?"bg-muted font-medium":"text-muted-foreground",f;e[9]!==x?(f=V("px-3 py-1 text-sm",x),e[9]=x,e[10]=f):f=e[10];let b;e[11]!==s?(b=s("Errors"),e[11]=s,e[12]=b):b=e[12];let y;e[13]!==o||e[14]!==h||e[15]!==f||e[16]!==b?(y=(0,r.jsx)("button",{"aria-selected":h,className:f,"data-testid":"lg-view-errors",onClick:o,role:"tab",type:"button",children:b}),e[13]=o,e[14]=h,e[15]=f,e[16]=b,e[17]=y):y=e[17];let k=g==="archive",R=g==="archive"?"bg-muted font-medium":"text-muted-foreground",L;e[18]!==R?(L=V("px-3 py-1 text-sm",R),e[18]=R,e[19]=L):L=e[19];let S;e[20]!==s?(S=s("Archive"),e[20]=s,e[21]=S):S=e[21];let I;e[22]!==c||e[23]!==k||e[24]!==L||e[25]!==S?(I=(0,r.jsx)("button",{"aria-selected":k,className:L,"data-testid":"lg-view-archive",onClick:c,role:"tab",type:"button",children:S}),e[22]=c,e[23]=k,e[24]=L,e[25]=S,e[26]=I):I=e[26];let w;e[27]!==y||e[28]!==I||e[29]!==u?(w=(0,r.jsxs)("div",{className:"inline-flex overflow-hidden rounded-lg border border-border",role:"tablist",children:[u,y,I]}),e[27]=y,e[28]=I,e[29]=u,e[30]=w):w=e[30];let C;e[31]!==n||e[32]!==p?(C=(0,r.jsx)(ve,{onChange:n,testId:"lg-shard-input",value:p}),e[31]=n,e[32]=p,e[33]=C):C=e[33];let q;e[34]!==t||e[35]!==g?(q=g!=="archive"&&(0,r.jsx)(Ne,{message:t,prefix:"lg"}),e[34]=t,e[35]=g,e[36]=q):q=e[36];let E;e[37]!==s?(E=s("Open in Cloudflare"),e[37]=s,e[38]=E):E=e[38];let F;e[39]!==E?(F=(0,r.jsx)("a",{className:"text-sm text-primary underline-offset-4 hover:underline","data-testid":"lg-cf-link",href:de,rel:"noreferrer",target:"_blank",children:E}),e[39]=E,e[40]=F):F=e[40];let M;return e[41]!==w||e[42]!==C||e[43]!==q||e[44]!==F?(M=(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[w,C,q,F]}),e[41]=w,e[42]=C,e[43]=q,e[44]=F,e[45]=M):M=e[45],M},"Ge"),ce=400,Ge=36,Qe={height:ce,overflow:"auto"},Ie={left:0,position:"absolute",top:0,width:"100%"},Ye={error:"destructive",ok:"secondary"},He=N(i=>{let e=(0,_.c)(26),{entry:t,index:n,measureRef:c,start:o}=i,m=`translateY(${String(o)}px)`,p;e[0]!==m?(p={...Ie,transform:m},e[0]=m,e[1]=p):p=e[1];let g=p,s;e[2]!==t.fields?(s=ee(t.fields),e[2]=t.fields,e[3]=s):s=e[3];let l=s,v;e[4]!==t.timestamp?(v=new Date(t.timestamp).toLocaleString(),e[4]=t.timestamp,e[5]=v):v=e[5];let a;e[6]!==v?(a=(0,r.jsx)("span",{className:"w-44 shrink-0 tabular-nums text-muted-foreground",role:"gridcell",children:v}),e[6]=v,e[7]=a):a=e[7];let d=Se[t.level],u;e[8]!==t.level||e[9]!==d?(u=(0,r.jsx)("span",{className:"w-20 shrink-0",role:"gridcell",children:(0,r.jsx)(J,{variant:d,children:t.level})}),e[8]=t.level,e[9]=d,e[10]=u):u=e[10];let h=t.functionPath??"\u2014",x;e[11]!==h?(x=(0,r.jsx)("span",{className:"w-48 shrink-0 truncate text-muted-foreground",role:"gridcell",children:h}),e[11]=h,e[12]=x):x=e[12];let f;e[13]!==l?(f=l===""?null:(0,r.jsx)("span",{className:"ml-2 text-muted-foreground","data-testid":"lg-fields",children:l}),e[13]=l,e[14]=f):f=e[14];let b;e[15]!==t.message||e[16]!==f?(b=(0,r.jsxs)("span",{className:"flex-1 truncate",role:"gridcell",children:[t.message,f]}),e[15]=t.message,e[16]=f,e[17]=b):b=e[17];let y;return e[18]!==n||e[19]!==c||e[20]!==g||e[21]!==b||e[22]!==a||e[23]!==u||e[24]!==x?(y=(0,r.jsxs)("div",{className:"flex items-center border-b border-border px-3 py-1.5 font-mono text-xs hover:bg-muted/50","data-index":n,"data-testid":"lg-row",ref:c,role:"row",style:g,children:[a,u,x,b]}),e[18]=n,e[19]=c,e[20]=g,e[21]=b,e[22]=a,e[23]=u,e[24]=x,e[25]=y):y=e[25],y},"Je"),Le=N(i=>i.length===0?"\u2014":i.join(", "),"ce"),Je=N(i=>{let e=(0,_.c)(37),{entry:t,index:n,measureRef:c,start:o}=i,m=`translateY(${String(o)}px)`,p;e[0]!==m?(p={...Ie,transform:m},e[0]=m,e[1]=p):p=e[1];let g=p,s;e[2]!==t.ts?(s=new Date(t.ts).toLocaleString(),e[2]=t.ts,e[3]=s):s=e[3];let l;e[4]!==s?(l=(0,r.jsx)("span",{className:"w-40 shrink-0 tabular-nums text-muted-foreground",role:"gridcell",children:s}),e[4]=s,e[5]=l):l=e[5];let v=Ye[t.outcome],a;e[6]!==t.outcome||e[7]!==v?(a=(0,r.jsx)("span",{className:"w-16 shrink-0",role:"gridcell",children:(0,r.jsx)(J,{variant:v,children:t.outcome})}),e[6]=t.outcome,e[7]=v,e[8]=a):a=e[8];let d;e[9]!==t.functionPath?(d=(0,r.jsx)("span",{className:"w-44 shrink-0 truncate",role:"gridcell",title:t.functionPath,children:t.functionPath}),e[9]=t.functionPath,e[10]=d):d=e[10];let u=t.shardKey??"\u2014",h;e[11]!==u?(h=(0,r.jsx)("span",{className:"w-24 shrink-0 truncate text-muted-foreground",role:"gridcell",children:u}),e[11]=u,e[12]=h):h=e[12];let x=t.userId??"\u2014",f;e[13]!==x?(f=(0,r.jsx)("span",{className:"w-24 shrink-0 truncate text-muted-foreground",role:"gridcell",children:x}),e[13]=x,e[14]=f):f=e[14];let b;e[15]!==t.durationMs?(b=Math.round(t.durationMs),e[15]=t.durationMs,e[16]=b):b=e[16];let y=`${String(b)}ms`,k;e[17]!==y?(k=(0,r.jsx)("span",{className:"w-16 shrink-0 tabular-nums text-muted-foreground",role:"gridcell",children:y}),e[17]=y,e[18]=k):k=e[18];let R;e[19]!==t.errorMessage||e[20]!==t.outcome||e[21]!==t.tablesRead||e[22]!==t.tablesWritten?(R=t.outcome==="error"&&t.errorMessage!==void 0?t.errorMessage:`r:${Le(t.tablesRead)} \xB7 w:${Le(t.tablesWritten)}`,e[19]=t.errorMessage,e[20]=t.outcome,e[21]=t.tablesRead,e[22]=t.tablesWritten,e[23]=R):R=e[23];let L;e[24]!==R?(L=(0,r.jsx)("span",{className:"flex-1 truncate text-muted-foreground",role:"gridcell",children:R}),e[24]=R,e[25]=L):L=e[25];let S;return e[26]!==n||e[27]!==c||e[28]!==g||e[29]!==f||e[30]!==k||e[31]!==L||e[32]!==l||e[33]!==a||e[34]!==d||e[35]!==h?(S=(0,r.jsxs)("div",{className:"flex items-center border-b border-border px-3 py-1.5 font-mono text-xs hover:bg-muted/50","data-index":n,"data-testid":"lg-req-row",ref:c,role:"row",style:g,children:[l,a,d,h,f,k,L]}),e[26]=n,e[27]=c,e[28]=g,e[29]=f,e[30]=k,e[31]=L,e[32]=l,e[33]=a,e[34]=d,e[35]=h,e[36]=S):S=e[36],S},"Xe"),Pe=N(i=>{let{entries:e}=i??{};return Array.isArray(e)?e:[]},"ue"),Ze=N(i=>{let e={};return i.functionPathPrefix.trim()!==""&&(e.functionPathPrefix=i.functionPathPrefix.trim()),i.userId.trim()!==""&&(e.userId=i.userId.trim()),i.tableTouched.trim()!==""&&(e.tableTouched=i.tableTouched.trim()),(i.outcome==="ok"||i.outcome==="error")&&(e.outcome=i.outcome),e},"Ze"),Xe={"5m":300*1e3,"15m":900*1e3,"1h":3600*1e3},et=N((i,e)=>{let t=e.search.trim().toLowerCase(),n=e.path.trim().toLowerCase(),c=e.range==="all"?Number.NEGATIVE_INFINITY:e.now-Xe[e.range];return i.filter(o=>e.levels.size>0&&!e.levels.has(o.level)||o.timestamp<c||n!==""&&!(o.functionPath??"").toLowerCase().includes(n)?!1:t===""||o.message.toLowerCase().includes(t)||ee(o.fields).toLowerCase().includes(t))},"tt"),tt="\u2014",rt=N(i=>{let e=new Map,t=new Map;for(let o of i){e.set(o.level,(e.get(o.level)??0)+1);let m=o.functionPath??tt;t.set(m,(t.get(m)??0)+1)}let n=ue.filter(o=>e.has(o)).map(o=>({count:e.get(o)??0,key:o})),c=[...t.entries()].map(([o,m])=>({count:m,key:o})).toSorted((o,m)=>m.count===o.count?o.key.localeCompare(m.key):m.count-o.count);return{byLevel:n,byPath:c,total:i.length}},"lt"),Ct=N(({initialShardKey:i})=>{let e=j(),[t,n]=(0,T.useState)("requests"),[c,o]=(0,T.useState)(i??""),[m,p]=(0,T.useState)(""),[g,s]=(0,T.useState)(()=>new Set),[l,v]=(0,T.useState)(""),[a,d]=(0,T.useState)("all"),[u,h]=(0,T.useState)(!1),[x,f]=(0,T.useState)(""),[b,y]=(0,T.useState)(""),[k,R]=(0,T.useState)(""),[L,S]=(0,T.useState)("all"),I=X(c.trim(),400),w=Ze({functionPathPrefix:x,outcome:L,tableTouched:k,userId:b}),C=ne(se.getRequestLog,w,{enabled:t==="requests",live:!0,shardKey:I}),q=ne(se.getLogs,{},{enabled:t==="errors",live:!0,shardKey:I}),E=t==="requests"?C:q,{error:F,errorSource:M,isLoading:$,liveError:G}=E,O=Pe(q.data),A=Pe(C.data);(0,T.useEffect)(()=>{E.data!==void 0&&pe(I)},[E.data,I]);let K=et(O,{levels:g,now:Date.now(),path:l,range:a,search:m}),B=rt(K),W=t==="requests"?A.length:K.length,te=t==="errors"&&u,Q=(0,T.useMemo)(()=>F!==null?"error":W===0?$?te?"summary":"list":"empty":te?"summary":"list",[W,$,F,te]),me=(0,T.useRef)(null),Y=Ce({count:W,estimateSize:N(()=>Ge,"estimateSize"),getScrollElement:N(()=>me.current,"getScrollElement"),initialRect:{height:ce,width:800},observeElementRect:N((P,re)=>ke(P,re,ce),"observeElementRect"),overscan:8}),Te=Y.getVirtualItems(),qe={height:Y.getTotalSize(),position:"relative",width:"100%"};return(0,r.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-logs",children:[(0,r.jsx)(Ve,{liveError:G,onShardKeyChange:o,onShowArchive:N(()=>{n("archive"),h(!1)},"onShowArchive"),onShowErrors:N(()=>{n("errors"),h(!1)},"onShowErrors"),onShowRequests:N(()=>{n("requests"),h(!1)},"onShowRequests"),shardKey:c,view:t}),t==="errors"&&(0,r.jsx)(Ue,{levelFilter:g,onLogPathChange:N(P=>{v(P.target.value)},"onLogPathChange"),onSearchChange:N(P=>{p(P.target.value)},"onSearchChange"),onTimeRangeChange:N(P=>{d(P.target.value)},"onTimeRangeChange"),onToggleLevel:N(P=>{s(re=>{let H=new Set(re);return H.has(P)?H.delete(P):H.add(P),H})},"onToggleLevel"),onToggleSummary:N(()=>{h(P=>!P)},"onToggleSummary"),pathFilter:l,search:m,showSummary:u,timeRange:a}),t==="requests"&&(0,r.jsx)(ze,{onOutcomeChange:N(P=>{S(P.target.value)},"onOutcomeChange"),onPathChange:N(P=>{f(P.target.value)},"onPathChange"),onTableChange:N(P=>{R(P.target.value)},"onTableChange"),onUserChange:N(P=>{y(P.target.value)},"onUserChange"),outcomeFilter:L,pathPrefix:x,tableFilter:k,userIdFilter:b}),t==="archive"?(0,r.jsx)(Oe,{shardKey:I}):(0,r.jsxs)(r.Fragment,{children:[Q==="error"&&(0,r.jsx)(be,{error:M,testId:"lg-error"}),Q==="empty"&&(0,r.jsx)(Z,{description:e("Function and request logs for this shard show up here as your app handles traffic."),icon:(0,r.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:(0,r.jsx)("path",{d:"M4 5h16M4 12h16M4 19h10"})}),testId:"lg-empty",title:e("No logs.")}),Q==="summary"&&(0,r.jsx)(We,{summary:B}),Q==="list"&&(0,r.jsx)("div",{className:"rounded-xl border border-border shadow-xs","data-testid":"lg-scroll",ref:me,style:Qe,children:(0,r.jsx)("div",{"aria-label":e("Recent logs"),"data-testid":"lg-table",role:"grid",style:qe,children:Te.map(P=>t==="requests"?(0,r.jsx)(Je,{entry:A[P.index],index:P.index,measureRef:Y.measureElement,start:P.start},P.key):(0,r.jsx)(He,{entry:K[P.index],index:P.index,measureRef:Y.measureElement,start:P.start},P.key))})})]})]})},"$t");export{Ct as LogsPanel,et as filterLogs,rt as summarizeLogs};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as R}from"./chunk-
|
|
1
|
+
import{b as R}from"./chunk-U44CWN7H.js";import"./chunk-AHVDZWB3.js";import"./chunk-XXQUMVWH.js";import"./chunk-VORDESEQ.js";import"./chunk-QLQADHFE.js";import{a as p}from"./chunk-ERMTJYQF.js";import{c as h}from"./chunk-YGKR536O.js";import"./chunk-UBR4KB6K.js";import"./chunk-XBDKZZ67.js";import"./chunk-MIQTKZAR.js";import"./chunk-UZERI5YC.js";import{d as g}from"./chunk-OG4N2XHD.js";import"./chunk-QNUWWC3N.js";import{a as s,e as m,g as S,h as _}from"./chunk-3XIESWL4.js";var f=m(S(),1);var k=m(_(),1);var A=s((e,t)=>({"admin-token-weak":e("Weak admin token"),"auth-secret-weak":e("Weak auth secret"),"cookies-insecure":e("Session cookies are not Secure"),"cors-wildcard-credentials":e("Wildcard CORS with credentials"),"csrf-disabled":e("CSRF/origin guard is off"),"dev-args-unredacted":e("Request log keeps un-redacted args"),"security-headers-disabled":e("Security headers are off"),"ws-gate-open":e("Live admin subscriptions are ungated")})[t.kind],"R"),w=s(e=>Array.isArray(e.findings)?e.findings:[],"k"),E=s(e=>({"admin-token-weak":"LUNORA_ADMIN_TOKEN","auth-secret-weak":"AUTH_SECRET","cookies-insecure":"BETTER_AUTH_URL","cors-wildcard-credentials":"LUNORA_ALLOWED_ORIGINS","csrf-disabled":"LUNORA_SECURITY_CSRF","dev-args-unredacted":"request log","security-headers-disabled":"LUNORA_SECURITY_HEADERS","ws-gate-open":"LUNORA_WS_BEARER"})[e.kind],"S"),T=s((e,t)=>({"admin-token-weak":e("Your admin token is {length} characters \u2014 use at least {min} for a brute-force-resistant secret.",{length:t.detail?.length,min:t.detail?.min}),"auth-secret-weak":e("Your auth secret is {length} characters \u2014 use at least {min} (e.g. `openssl rand -hex 32`) to sign sessions safely.",{length:t.detail?.length,min:t.detail?.min}),"cookies-insecure":e("BETTER_AUTH_URL is a plaintext http:// origin, so session cookies cannot be Secure and ride in cleartext. Serve auth over https:// in production."),"cors-wildcard-credentials":e("LUNORA_ALLOWED_ORIGINS includes a wildcard while credentials are allowed \u2014 browsers reject this and it defeats the allowlist. Name explicit origins instead of *."),"csrf-disabled":e("LUNORA_SECURITY_CSRF is off, so cross-origin state-changing cookie requests are not blocked. Re-enable it in production to keep mutations un-forgeable."),"dev-args-unredacted":e("This worker reports a development environment, so the request log stores raw args and identity. Confirm it isn't a mislabeled production deploy."),"security-headers-disabled":e("LUNORA_SECURITY_HEADERS is off, so HSTS, CSP, nosniff, and frame-options are not applied. Re-enable the baseline headers in production."),"ws-gate-open":e("LUNORA_WS_BEARER is unset, so the WebSocket upgrade gate is open: live admin subscriptions need no credential. Set it to gate them like the HTTP admin RPCs.")})[t.kind],"A"),O=s(()=>{let e=(0,f.c)(8),t=g(),r;e[0]===Symbol.for("react.memo_cache_sentinel")?(r={},e[0]=r):r=e[0];let{data:a,error:d,errorSource:c}=h(p.getSecurityAudit,r),n;if(e[1]!==a||e[2]!==t){let u=a===void 0?null:w(a);n=u===null?null:u.map(i=>({description:T(t,i),entity:E(i),issueType:A(t,i),key:i.kind,level:i.level})),e[1]=a,e[2]=t,e[3]=n}else n=e[3];let l=n,o;return e[4]!==d||e[5]!==c||e[6]!==l?(o=(0,k.jsx)(R,{error:d,errorSource:c,rows:l,testId:"lunora-security-advisor"}),e[4]=d,e[5]=c,e[6]=l,e[7]=o):o=e[7],o},"N");export{O as default};
|