@lunora/studio 1.0.0-alpha.357 → 1.0.0-alpha.358
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-Q5GY7D5H.js → chunk-2CPBNLFU.js} +1 -1
- package/dist/standalone/{chunk-YHK5UBXI.js → chunk-3HX723U6.js} +1 -1
- package/dist/standalone/{chunk-GNVWTK4S.js → chunk-4FZYH76L.js} +1 -1
- package/dist/standalone/{chunk-FIJVZCBO.js → chunk-5IGDDSST.js} +1 -1
- package/dist/standalone/{chunk-SL7LF2SO.js → chunk-5SYMAYUA.js} +1 -1
- package/dist/standalone/{chunk-SPPJFTWE.js → chunk-7KPRMBD6.js} +1 -1
- package/dist/standalone/{chunk-SOVH524I.js → chunk-AKGGWCWW.js} +1 -1
- package/dist/standalone/{chunk-Z3NZJ4C2.js → chunk-AN2L3XHC.js} +1 -1
- package/dist/standalone/{chunk-MQ3FFFP4.js → chunk-B4BK5Q5O.js} +1 -1
- package/dist/standalone/{chunk-TIQ3NI77.js → chunk-B6OTKSMY.js} +1 -1
- package/dist/standalone/{chunk-DN3HPAOA.js → chunk-BCP3MEB3.js} +1 -1
- package/dist/standalone/{chunk-F7GMBSJP.js → chunk-CVUNFP54.js} +1 -1
- package/dist/standalone/{chunk-S6OBDEAQ.js → chunk-CZACJYDC.js} +1 -1
- package/dist/standalone/{chunk-VO6GV6F2.js → chunk-DPESH5MT.js} +1 -1
- package/dist/standalone/{chunk-N5FOHLIG.js → chunk-EAZXULX6.js} +1 -1
- package/dist/standalone/{chunk-CDV6T5KM.js → chunk-F4VO76XV.js} +1 -1
- package/dist/standalone/{chunk-ILLDX6LU.js → chunk-FACE2CFY.js} +1 -1
- package/dist/standalone/{chunk-64S3IDR2.js → chunk-FCRSF54M.js} +1 -1
- package/dist/standalone/{chunk-XFTWGZKD.js → chunk-FHGTI6PR.js} +1 -1
- package/dist/standalone/{chunk-CHGMDVEQ.js → chunk-FMQ72AKG.js} +1 -1
- package/dist/standalone/{chunk-NQX6SAC6.js → chunk-FNUPPZKJ.js} +1 -1
- package/dist/standalone/{chunk-ESUUPILO.js → chunk-FRN6D6MP.js} +1 -1
- package/dist/standalone/{chunk-D5LY65EX.js → chunk-FSWWDMW2.js} +1 -1
- package/dist/standalone/{chunk-VPG46PCA.js → chunk-FYWZRJCT.js} +1 -1
- package/dist/standalone/{chunk-IMF6DJKL.js → chunk-GMO7IUXO.js} +1 -1
- package/dist/standalone/{chunk-OGKRWT6I.js → chunk-HGT4YHTI.js} +1 -1
- package/dist/standalone/{chunk-EEPCLLGE.js → chunk-HONLEKH5.js} +1 -1
- package/dist/standalone/{chunk-SV34MAIK.js → chunk-HSLO46OW.js} +1 -1
- package/dist/standalone/{chunk-UWAVY3IF.js → chunk-IIJXS3KP.js} +1 -1
- package/dist/standalone/{chunk-UHGLZ5RV.js → chunk-IWG2D7QS.js} +1 -1
- package/dist/standalone/{chunk-R66XCM3J.js → chunk-JYCRY3LM.js} +1 -1
- package/dist/standalone/{chunk-7DMOBHYC.js → chunk-KRDWV6YM.js} +1 -1
- package/dist/standalone/{chunk-RNHTOEL7.js → chunk-KRH6UDVU.js} +1 -1
- package/dist/standalone/{chunk-M3KSCNKR.js → chunk-LVNPLZDL.js} +1 -1
- package/dist/standalone/{chunk-ZXUEBA56.js → chunk-MC577GI5.js} +1 -1
- package/dist/standalone/{chunk-U2YFL6EA.js → chunk-MHJNM7VT.js} +1 -1
- package/dist/standalone/{chunk-3QGR4DC7.js → chunk-MI7DM536.js} +1 -1
- package/dist/standalone/{chunk-I2PP6Q6F.js → chunk-MY7ZGJOD.js} +1 -1
- package/dist/standalone/{chunk-E423VRTC.js → chunk-N4AWDORA.js} +1 -1
- package/dist/standalone/{chunk-O6XMGPGY.js → chunk-NEZRBBPI.js} +1 -1
- package/dist/standalone/{chunk-YJYXN3WQ.js → chunk-NSUOMZWM.js} +1 -1
- package/dist/standalone/{chunk-NXNUGQHB.js → chunk-OIBN6KMM.js} +1 -1
- package/dist/standalone/{chunk-R5ACA3OC.js → chunk-OSQYIZAV.js} +1 -1
- package/dist/standalone/{chunk-AZRUSOAH.js → chunk-OX7I5YHU.js} +1 -1
- package/dist/standalone/{chunk-QSNQXPIX.js → chunk-PBKTGB7B.js} +1 -1
- package/dist/standalone/{chunk-GZX5XABE.js → chunk-PCMV6S7K.js} +1 -1
- package/dist/standalone/{chunk-OT4KZ6Y6.js → chunk-PMGNJZYE.js} +1 -1
- package/dist/standalone/{chunk-BCIFRJ3Q.js → chunk-PTCC45P7.js} +1 -1
- package/dist/standalone/{chunk-AMLIZFTD.js → chunk-QXHMVPS3.js} +1 -1
- package/dist/standalone/{chunk-TNII7Q2L.js → chunk-SUOVLXY6.js} +1 -1
- package/dist/standalone/{chunk-DUQ7KXNS.js → chunk-TA3DCQUA.js} +1 -1
- package/dist/standalone/{chunk-5KD75VXP.js → chunk-UFPN44MP.js} +1 -1
- package/dist/standalone/{chunk-7W6WESSS.js → chunk-V6SVNLUM.js} +1 -1
- package/dist/standalone/{chunk-4SJDWMH3.js → chunk-W37HRJGQ.js} +1 -1
- package/dist/standalone/{chunk-ZZ5564FZ.js → chunk-WC5QFZYZ.js} +1 -1
- package/dist/standalone/{chunk-FXTT2XP3.js → chunk-WCWSMX3N.js} +1 -1
- package/dist/standalone/{chunk-OKSZWLJX.js → chunk-WOGVVXGF.js} +1 -1
- package/dist/standalone/{chunk-4BNWYVLP.js → chunk-XIVWJUD3.js} +1 -1
- package/dist/standalone/{chunk-2CWGRQ5L.js → chunk-XZ6B5XNN.js} +1 -1
- package/dist/standalone/{chunk-AQJXOPBW.js → chunk-XZKWGTLI.js} +1 -1
- package/dist/standalone/{chunk-TAGWTOFD.js → chunk-ZD53YB3L.js} +1 -1
- package/dist/standalone/{chunk-5IIX2STA.js → chunk-ZFFZWSDJ.js} +1 -1
- package/dist/standalone/{chunk-2PHY5V5E.js → chunk-ZQOPXQIT.js} +1 -1
- package/dist/standalone/studio.js +1 -1
- package/package.json +5 -5
- /package/dist/standalone/{chunk-FKM35PXF.js → chunk-SDSQIQJG.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as Be,b as Ue,c as We,d as De,e as we}from"./chunk-FLVDICZL.js";import"./chunk-A566HCBX.js";import"./chunk-LIGOLZND.js";import{a as je}from"./chunk-4IEMXFUB.js";import{a as qe}from"./chunk-XBZUJDHD.js";import"./chunk-KRPXOSBL.js";import"./chunk-W2BCSK5S.js";import"./chunk-NGVP66OH.js";import"./chunk-XYR5NST4.js";import{a as ze}from"./chunk-5DNGK3NT.js";import{a as _e}from"./chunk-KYONGQQ4.js";import"./chunk-SLIDAWNX.js";import"./chunk-6M7FLLMT.js";import"./chunk-ZTOREMGH.js";import{i as ke}from"./chunk-SDQH4HR6.js";import"./chunk-W7MRISE3.js";import"./chunk-IBJVVHV5.js";import{a as ie}from"./chunk-2O6KKVH2.js";import"./chunk-JTGGWF7R.js";import"./chunk-ZBON5T5A.js";import{b as me}from"./chunk-6I42AM75.js";import"./chunk-4C4THJUD.js";import"./chunk-E26OT26O.js";import{a as U}from"./chunk-6UTZXEW3.js";import{c as Ee}from"./chunk-4SJDWMH3.js";import{b as Se,c as $e,p as be}from"./chunk-FKM35PXF.js";import"./chunk-WZTY3ZYI.js";import{a as Ae}from"./chunk-3Y5K3IQO.js";import{a as Le,b as Re,c as Ve,d as pe,e as B,f as L}from"./chunk-CW57Q264.js";import{a as Me,e as Ce}from"./chunk-MD67S53Z.js";import{f as ue,h as re,i as Ne,j as Ke,s as le,w as Te}from"./chunk-LPINY2IJ.js";import{a as d,d as ye,e as Oe,f as Ge,g as He}from"./chunk-OXFKZ4BM.js";var ge=ye(Ge(),1);var ne=ye(Oe(),1);var t=ye(He(),1);var Ie="none",Je=["all","open","resolved","ignored"],Pe=["critical","high","medium","low"],Qe=re(U.resolveIssue),Xe=re(U.ignoreIssue),Fe=re(U.assignIssue),Ye=re(U.setIssueSeverity),Ze=re(U.explainIssue),es=d(n=>Array.isArray(n?.issues)?n.issues:[],"Xe"),ss=d(n=>n==="resolved"?"success":n==="ignored"?"secondary":"warning","Je"),ts=d(n=>n==="critical"?"destructive":n==="high"?"warning":n==="medium"?"info":"secondary","Ze"),as=d(n=>{let e=(0,ge.c)(44),{expanded:u,issue:s,shardKey:$}=n,i=be(),l=ue(),[a,o]=(0,ne.useState)(void 0),{busy:_,error:A,run:R}=je(),K;e[0]!==i||e[1]!==s||e[2]!==R||e[3]!==$?(K=d(()=>{o(void 0),R(async()=>{let g={culprit:s.culprit,sampleMessage:s.sampleMessage,title:s.title},S=await i.query(Ze,g,Ne($));o(S)})},"C"),e[0]=i,e[1]=s,e[2]=R,e[3]=$,e[4]=K):K=e[4];let z=K;if(!u)return null;let k;if(e[5]!==s.sampleMessage){let g=$e(s.sampleMessage);k=g===void 0?void 0:Se(g.body),e[5]=s.sampleMessage,e[6]=k}else k=e[6];let T=k,E=`issues-detail-${s.hash}`,h;e[7]!==s.sampleMessage?(h=(0,t.jsx)("p",{className:"whitespace-pre-wrap font-mono text-xs text-muted-foreground",children:s.sampleMessage}),e[7]=s.sampleMessage,e[8]=h):h=e[8];let x;e[9]!==l?(x=l("Suggested fix"),e[9]=l,e[10]=x):x=e[10];let M;e[11]!==x?(M=(0,t.jsx)("div",{className:"text-xs font-medium text-muted-foreground",children:x}),e[11]=x,e[12]=M):M=e[12];let v;e[13]!==T||e[14]!==s.hash||e[15]!==l?(v=T===void 0?(0,t.jsx)("p",{className:"mt-1 text-sm text-muted-foreground","data-testid":`issues-hint-empty-${s.hash}`,children:l("No known fix for this error yet.")}):(0,t.jsx)("p",{className:"mt-1 whitespace-pre-wrap text-sm","data-testid":`issues-hint-${s.hash}`,children:T}),e[13]=T,e[14]=s.hash,e[15]=l,e[16]=v):v=e[16];let y;e[17]!==M||e[18]!==v?(y=(0,t.jsxs)("div",{children:[M,v]}),e[17]=M,e[18]=v,e[19]=y):y=e[19];let b=`issues-explain-${s.hash}`,w;e[20]!==_||e[21]!==l?(w=l(_?"Explaining\u2026":"Explain in plain language"),e[20]=_,e[21]=l,e[22]=w):w=e[22];let m;e[23]!==_||e[24]!==z||e[25]!==w||e[26]!==b?(m=(0,t.jsx)("div",{children:(0,t.jsx)(ie,{"data-testid":b,disabled:_,onClick:z,size:"sm",type:"button",variant:"outline",children:w})}),e[23]=_,e[24]=z,e[25]=w,e[26]=b,e[27]=m):m=e[27];let f;e[28]!==A||e[29]!==s.hash?(f=A!==null&&(0,t.jsx)("p",{className:"text-xs text-destructive","data-testid":`issues-explain-error-${s.hash}`,role:"alert",children:A}),e[28]=A,e[29]=s.hash,e[30]=f):f=e[30];let p;e[31]!==a||e[32]!==s.hash||e[33]!==l?(p=a!==void 0&&(a.degraded?(0,t.jsx)("p",{className:"text-xs text-muted-foreground","data-testid":`issues-degraded-${s.hash}`,children:a.reason==="no-ai-binding"?l("No AI binding is configured. Wire an AI binding to enable plain-language explanations \u2014 the suggested fix above is always available."):l("The AI model could not explain this error right now. The suggested fix above still applies.")}):(0,t.jsxs)("div",{"data-testid":`issues-explanation-${s.hash}`,children:[(0,t.jsx)("div",{className:"text-xs font-medium text-muted-foreground",children:l("AI explanation")}),(0,t.jsx)("p",{className:"mt-1 whitespace-pre-wrap text-sm",children:a.explanation}),a.groundedId===void 0&&(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground","data-testid":`issues-ungrounded-${s.hash}`,children:l("No catalog fix matched this error, so this explanation is the model's own reading of the message. Verify before acting on it.")}),(0,t.jsx)("p",{className:"mt-1 text-[0.7rem] text-muted-foreground",children:l("Generated by {model}",{model:a.model})})]})),e[31]=a,e[32]=s.hash,e[33]=l,e[34]=p):p=e[34];let c;e[35]!==m||e[36]!==f||e[37]!==p||e[38]!==h||e[39]!==y?(c=(0,t.jsx)(L,{className:"bg-muted/30",colSpan:7,children:(0,t.jsxs)("div",{className:"flex flex-col gap-3 py-1",children:[h,y,m,f,p]})}),e[35]=m,e[36]=f,e[37]=p,e[38]=h,e[39]=y,e[40]=c):c=e[40];let I;return e[41]!==c||e[42]!==E?(I=(0,t.jsx)(pe,{"data-testid":E,children:c}),e[41]=c,e[42]=E,e[43]=I):I=e[43],I},"et"),is=d(n=>{let e=(0,ge.c)(119),{busy:u,issue:s,rowError:$,runTriage:i,shardKey:l}=n,a=ue(),[o,_]=(0,ne.useState)(!1),A;e[0]===Symbol.for("react.memo_cache_sentinel")?(A=d(()=>{_(rs)},"A"),e[0]=A):A=e[0];let R=A,K;e[1]!==s.hash||e[2]!==i?(K=d(ae=>{let ce=ae===null||ae===Ie?null:ae;le(i(s.hash,Ye,{severity:ce}))},"C"),e[1]=s.hash,e[2]=i,e[3]=K):K=e[3];let z=K,k;e[4]!==s.hash||e[5]!==i?(k=d(ae=>{if(ae.key!=="Enter")return;let ce=ae.currentTarget.value.trim();le(i(s.hash,Fe,{assignee:ce===""?null:ce}))},"T"),e[4]=s.hash,e[5]=i,e[6]=k):k=e[6];let T=k,E=`issues-row-${s.hash}`,h;e[7]!==a?(h=a("Toggle issue details"),e[7]=a,e[8]=h):h=e[8];let x=`issues-toggle-${s.hash}`,M=`mt-1 size-3 shrink-0 text-muted-foreground transition-transform ${o?"rotate-90":""}`,v;e[9]===Symbol.for("react.memo_cache_sentinel")?(v=(0,t.jsx)("path",{d:"m9 6 6 6-6 6"}),e[9]=v):v=e[9];let y;e[10]!==M?(y=(0,t.jsx)("svg",{"aria-hidden":"true",className:M,fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,viewBox:"0 0 24 24",children:v}),e[10]=M,e[11]=y):y=e[11];let b;e[12]!==s.title?(b=(0,t.jsx)("span",{className:"block truncate font-medium",title:s.title,children:s.title}),e[12]=s.title,e[13]=b):b=e[13];let w;e[14]!==s.culprit?(w=(0,t.jsx)("span",{className:"block truncate font-mono text-xs text-muted-foreground",title:s.culprit,children:s.culprit}),e[14]=s.culprit,e[15]=w):w=e[15];let m;e[16]!==b||e[17]!==w?(m=(0,t.jsxs)("span",{className:"min-w-0",children:[b,w]}),e[16]=b,e[17]=w,e[18]=m):m=e[18];let f;e[19]!==o||e[20]!==m||e[21]!==h||e[22]!==x||e[23]!==y?(f=(0,t.jsxs)("button",{"aria-expanded":o,"aria-label":h,className:"flex w-full items-start gap-2 text-left","data-testid":x,onClick:R,type:"button",children:[y,m]}),e[19]=o,e[20]=m,e[21]=h,e[22]=x,e[23]=y,e[24]=f):f=e[24];let p;e[25]!==s.hash||e[26]!==$?(p=$!==void 0&&(0,t.jsx)("p",{className:"mt-1 text-xs text-destructive","data-testid":`issues-action-error-${s.hash}`,role:"alert",children:$}),e[25]=s.hash,e[26]=$,e[27]=p):p=e[27];let c;e[28]!==f||e[29]!==p?(c=(0,t.jsxs)(L,{className:"max-w-80",children:[f,p]}),e[28]=f,e[29]=p,e[30]=c):c=e[30];let I=`issues-status-${s.hash}`,g;e[31]!==s.status?(g=ss(s.status),e[31]=s.status,e[32]=g):g=e[32];let S;e[33]!==s.status||e[34]!==I||e[35]!==g?(S=(0,t.jsx)(L,{children:(0,t.jsx)(me,{"data-testid":I,variant:g,children:s.status})}),e[33]=s.status,e[34]=I,e[35]=g,e[36]=S):S=e[36];let V=s.severity??Ie,r;e[37]!==a?(r=a("Set severity"),e[37]=a,e[38]=r):r=e[38];let oe=`issues-severity-${s.hash}`,j;e[39]!==a?(j=a("\u2014"),e[39]=a,e[40]=j):j=e[40];let N;e[41]!==s.severity||e[42]!==a?(N=s.severity===void 0?(0,t.jsx)("span",{className:"text-muted-foreground",children:a("\u2014")}):(0,t.jsx)(me,{variant:ts(s.severity),children:s.severity}),e[41]=s.severity,e[42]=a,e[43]=N):N=e[43];let C;e[44]!==j||e[45]!==N?(C=(0,t.jsx)(Ue,{placeholder:j,children:N}),e[44]=j,e[45]=N,e[46]=C):C=e[46];let q;e[47]!==r||e[48]!==oe||e[49]!==C?(q=(0,t.jsx)(We,{"aria-label":r,className:"h-7 w-[110px]","data-testid":oe,children:C}),e[47]=r,e[48]=oe,e[49]=C,e[50]=q):q=e[50];let de;e[51]===Symbol.for("react.memo_cache_sentinel")?(de=Pe.map(ls),e[51]=de):de=e[51];let W;e[52]!==a?(W=a("Clear"),e[52]=a,e[53]=W):W=e[53];let D;e[54]!==W?(D=(0,t.jsxs)(De,{children:[de,(0,t.jsx)(we,{value:Ie,children:W})]}),e[54]=W,e[55]=D):D=e[55];let F;e[56]!==u||e[57]!==z||e[58]!==V||e[59]!==q||e[60]!==D?(F=(0,t.jsx)(L,{children:(0,t.jsxs)(Be,{disabled:u,onValueChange:z,value:V,children:[q,D]})}),e[56]=u,e[57]=z,e[58]=V,e[59]=q,e[60]=D,e[61]=F):F=e[61];let O;e[62]!==a?(O=a("Assignee"),e[62]=a,e[63]=O):O=e[63];let fe=`issues-assignee-${s.hash}`,xe=s.assignee??"",ve=s.assignee??"",G;e[64]!==a?(G=a("Unassigned"),e[64]=a,e[65]=G):G=e[65];let H;e[66]!==u||e[67]!==T||e[68]!==O||e[69]!==fe||e[70]!==xe||e[71]!==ve||e[72]!==G?(H=(0,t.jsx)(L,{children:(0,t.jsx)(ke,{"aria-label":O,className:"h-7 w-32","data-testid":fe,defaultValue:xe,disabled:u,onKeyDown:T,placeholder:G},ve)}),e[66]=u,e[67]=T,e[68]=O,e[69]=fe,e[70]=xe,e[71]=ve,e[72]=G,e[73]=H):H=e[73];let J;e[74]!==s.count?(J=(0,t.jsx)(L,{className:"text-right",children:(0,t.jsx)(me,{variant:"secondary",children:s.count})}),e[74]=s.count,e[75]=J):J=e[75];let P;e[76]!==s.lastSeen?(P=Te(s.lastSeen),e[76]=s.lastSeen,e[77]=P):P=e[77];let Q;e[78]!==P?(Q=(0,t.jsx)(L,{className:"text-xs tabular-nums text-muted-foreground",children:P}),e[78]=P,e[79]=Q):Q=e[79];let X;e[80]!==u||e[81]!==s.hash||e[82]!==s.status||e[83]!==i||e[84]!==a?(X=s.status!=="resolved"&&(0,t.jsx)(ie,{"data-testid":`issues-resolve-${s.hash}`,disabled:u,onClick:d(()=>{le(i(s.hash,Qe,{}))},"onClick"),size:"xs",variant:"outline",children:a("Resolve")}),e[80]=u,e[81]=s.hash,e[82]=s.status,e[83]=i,e[84]=a,e[85]=X):X=e[85];let Y;e[86]!==u||e[87]!==s.hash||e[88]!==s.status||e[89]!==i||e[90]!==a?(Y=s.status!=="ignored"&&(0,t.jsx)(ie,{"data-testid":`issues-ignore-${s.hash}`,disabled:u,onClick:d(()=>{le(i(s.hash,Xe,{}))},"onClick"),size:"xs",variant:"ghost",children:a("Ignore")}),e[86]=u,e[87]=s.hash,e[88]=s.status,e[89]=i,e[90]=a,e[91]=Y):Y=e[91];let Z;e[92]!==u||e[93]!==s.assignee||e[94]!==s.hash||e[95]!==s.status||e[96]!==i||e[97]!==a?(Z=s.status!=="open"&&(0,t.jsx)(ie,{"data-testid":`issues-reopen-${s.hash}`,disabled:u,onClick:d(()=>{le(i(s.hash,Fe,{assignee:s.assignee??null}))},"onClick"),size:"xs",variant:"ghost",children:a("Reopen")}),e[92]=u,e[93]=s.assignee,e[94]=s.hash,e[95]=s.status,e[96]=i,e[97]=a,e[98]=Z):Z=e[98];let ee;e[99]!==X||e[100]!==Y||e[101]!==Z?(ee=(0,t.jsx)(L,{className:"text-right",children:(0,t.jsxs)("div",{className:"flex justify-end gap-1",children:[X,Y,Z]})}),e[99]=X,e[100]=Y,e[101]=Z,e[102]=ee):ee=e[102];let se;e[103]!==c||e[104]!==S||e[105]!==F||e[106]!==H||e[107]!==J||e[108]!==Q||e[109]!==E||e[110]!==ee?(se=(0,t.jsxs)(pe,{"data-testid":E,children:[c,S,F,H,J,Q,ee]}),e[103]=c,e[104]=S,e[105]=F,e[106]=H,e[107]=J,e[108]=Q,e[109]=E,e[110]=ee,e[111]=se):se=e[111];let te;e[112]!==o||e[113]!==s||e[114]!==l?(te=(0,t.jsx)(as,{expanded:o,issue:s,shardKey:l},s.sampleMessage),e[112]=o,e[113]=s,e[114]=l,e[115]=te):te=e[115];let he;return e[116]!==se||e[117]!==te?(he=(0,t.jsxs)(t.Fragment,{children:[se,te]}),e[116]=se,e[117]=te,e[118]=he):he=e[118],he},"tt"),ks=d(n=>{let e=(0,ge.c)(38),{initialShardKey:u}=n,s=ue(),$=be(),{queryShardKey:i,setShardKey:l,shardKey:a}=ze(u),[o,_]=(0,ne.useState)("all"),[A,R]=(0,ne.useState)(ns),[K,z]=(0,ne.useState)(os),k;e[0]!==o?(k=o==="all"?{}:{status:o},e[0]=o,e[1]=k):k=e[1];let T;e[2]!==i?(T={live:!0,shardKey:i},e[2]=i,e[3]=T):T=e[3];let{data:E,error:h,liveError:x}=Ee(U.getIssues,k,T),M=E!==void 0,v;if(e[4]!==K||e[5]!==A||e[6]!==$||e[7]!==E||e[8]!==h||e[9]!==x||e[10]!==M||e[11]!==i||e[12]!==l||e[13]!==a||e[14]!==o||e[15]!==s){let y=es(E),b;e[17]!==$||e[18]!==i?(b=d(async(r,oe,j)=>{z(N=>{if(!N.has(r))return N;let C=new Map(N);return C.delete(r),C}),R(N=>new Set(N).add(r));try{await $.query(oe,{...j,hash:r},Ne(i))}catch(N){let C=Ke(N);z(q=>new Map(q).set(r,C))}R(N=>{let C=new Set(N);return C.delete(r),C})},"v"),e[17]=$,e[18]=i,e[19]=b):b=e[19];let w=b,m;e[20]!==s?(m=d(r=>s(r==="all"?"All":r==="open"?"Open":r==="resolved"?"Resolved":"Ignored"),"u"),e[20]=s,e[21]=m):m=e[21];let f=m,p;e[22]!==h?(p=h!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive","data-testid":"issues-error",role:"alert",children:h}),e[22]=h,e[23]=p):p=e[23];let c;e[24]!==l||e[25]!==a?(c=(0,t.jsx)(_e,{onChange:l,testId:"issues-shard-input",value:a}),e[24]=l,e[25]=a,e[26]=c):c=e[26];let I;e[27]!==x?(I=(0,t.jsx)(qe,{message:x,prefix:"issues"}),e[27]=x,e[28]=I):I=e[28];let g;e[29]!==o||e[30]!==f?(g=Je.map(r=>(0,t.jsx)(ie,{"data-active":o===r?"":void 0,"data-testid":`issues-filter-${r}`,onClick:d(()=>{_(r)},"onClick"),size:"xs",variant:o===r?"default":"outline",children:f(r)},r)),e[29]=o,e[30]=f,e[31]=g):g=e[31];let S;e[32]!==g?(S=(0,t.jsx)("div",{className:"ms-auto flex items-center gap-1","data-testid":"issues-status-filter",role:"group",children:g}),e[32]=g,e[33]=S):S=e[33];let V;e[34]!==S||e[35]!==c||e[36]!==I?(V=(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[c,I,S]}),e[34]=S,e[35]=c,e[36]=I,e[37]=V):V=e[37],v=(0,t.jsxs)("div",{className:"flex flex-col gap-6","data-testid":"lunora-issues-panel",children:[p,V,M&&y.length===0?(0,t.jsx)(Ae,{description:s("No grouped errors yet. When a function throws or a container crashes, matching errors fold into a single issue here."),testId:"issues-empty",title:s("No issues")}):(0,t.jsx)(Me,{className:"overflow-hidden py-0",children:(0,t.jsx)(Ce,{className:"px-0",children:(0,t.jsxs)(Le,{"data-testid":"issues-table",children:[(0,t.jsx)(Re,{children:(0,t.jsxs)(pe,{children:[(0,t.jsx)(B,{children:s("Issue")}),(0,t.jsx)(B,{children:s("Status")}),(0,t.jsx)(B,{children:s("Severity")}),(0,t.jsx)(B,{children:s("Assignee")}),(0,t.jsx)(B,{className:"text-right",children:s("Events")}),(0,t.jsx)(B,{children:s("Last seen")}),(0,t.jsx)(B,{className:"text-right",children:s("Actions")})]})}),(0,t.jsx)(Ve,{children:y.map(r=>(0,t.jsx)(is,{busy:A.has(r.hash),issue:r,rowError:K.get(r.hash),runTriage:w,shardKey:i},r.hash))})]})})})]}),e[4]=K,e[5]=A,e[6]=$,e[7]=E,e[8]=h,e[9]=x,e[10]=M,e[11]=i,e[12]=l,e[13]=a,e[14]=o,e[15]=s,e[16]=v}else v=e[16];return v},"Tt");function rs(n){return!n}d(rs,"st");function ls(n){return(0,t.jsx)(we,{value:n,children:n},n)}d(ls,"at");function ns(){return new Set}d(ns,"it");function os(){return new Map}d(os,"lt");export{ks as default};
|
|
1
|
+
import{a as Be,b as Ue,c as We,d as De,e as we}from"./chunk-FLVDICZL.js";import"./chunk-A566HCBX.js";import"./chunk-LIGOLZND.js";import{a as je}from"./chunk-4IEMXFUB.js";import{a as qe}from"./chunk-XBZUJDHD.js";import"./chunk-KRPXOSBL.js";import"./chunk-W2BCSK5S.js";import"./chunk-NGVP66OH.js";import"./chunk-XYR5NST4.js";import{a as ze}from"./chunk-5DNGK3NT.js";import{a as _e}from"./chunk-KYONGQQ4.js";import"./chunk-SLIDAWNX.js";import"./chunk-6M7FLLMT.js";import"./chunk-ZTOREMGH.js";import{i as ke}from"./chunk-SDQH4HR6.js";import"./chunk-W7MRISE3.js";import"./chunk-IBJVVHV5.js";import{a as ie}from"./chunk-2O6KKVH2.js";import"./chunk-JTGGWF7R.js";import"./chunk-ZBON5T5A.js";import{b as me}from"./chunk-6I42AM75.js";import"./chunk-4C4THJUD.js";import"./chunk-E26OT26O.js";import{a as U}from"./chunk-6UTZXEW3.js";import{c as Ee}from"./chunk-W37HRJGQ.js";import{b as Se,c as $e,p as be}from"./chunk-SDSQIQJG.js";import"./chunk-WZTY3ZYI.js";import{a as Ae}from"./chunk-3Y5K3IQO.js";import{a as Le,b as Re,c as Ve,d as pe,e as B,f as L}from"./chunk-CW57Q264.js";import{a as Me,e as Ce}from"./chunk-MD67S53Z.js";import{f as ue,h as re,i as Ne,j as Ke,s as le,w as Te}from"./chunk-LPINY2IJ.js";import{a as d,d as ye,e as Oe,f as Ge,g as He}from"./chunk-OXFKZ4BM.js";var ge=ye(Ge(),1);var ne=ye(Oe(),1);var t=ye(He(),1);var Ie="none",Je=["all","open","resolved","ignored"],Pe=["critical","high","medium","low"],Qe=re(U.resolveIssue),Xe=re(U.ignoreIssue),Fe=re(U.assignIssue),Ye=re(U.setIssueSeverity),Ze=re(U.explainIssue),es=d(n=>Array.isArray(n?.issues)?n.issues:[],"Xe"),ss=d(n=>n==="resolved"?"success":n==="ignored"?"secondary":"warning","Je"),ts=d(n=>n==="critical"?"destructive":n==="high"?"warning":n==="medium"?"info":"secondary","Ze"),as=d(n=>{let e=(0,ge.c)(44),{expanded:u,issue:s,shardKey:$}=n,i=be(),l=ue(),[a,o]=(0,ne.useState)(void 0),{busy:_,error:A,run:R}=je(),K;e[0]!==i||e[1]!==s||e[2]!==R||e[3]!==$?(K=d(()=>{o(void 0),R(async()=>{let g={culprit:s.culprit,sampleMessage:s.sampleMessage,title:s.title},S=await i.query(Ze,g,Ne($));o(S)})},"C"),e[0]=i,e[1]=s,e[2]=R,e[3]=$,e[4]=K):K=e[4];let z=K;if(!u)return null;let k;if(e[5]!==s.sampleMessage){let g=$e(s.sampleMessage);k=g===void 0?void 0:Se(g.body),e[5]=s.sampleMessage,e[6]=k}else k=e[6];let T=k,E=`issues-detail-${s.hash}`,h;e[7]!==s.sampleMessage?(h=(0,t.jsx)("p",{className:"whitespace-pre-wrap font-mono text-xs text-muted-foreground",children:s.sampleMessage}),e[7]=s.sampleMessage,e[8]=h):h=e[8];let x;e[9]!==l?(x=l("Suggested fix"),e[9]=l,e[10]=x):x=e[10];let M;e[11]!==x?(M=(0,t.jsx)("div",{className:"text-xs font-medium text-muted-foreground",children:x}),e[11]=x,e[12]=M):M=e[12];let v;e[13]!==T||e[14]!==s.hash||e[15]!==l?(v=T===void 0?(0,t.jsx)("p",{className:"mt-1 text-sm text-muted-foreground","data-testid":`issues-hint-empty-${s.hash}`,children:l("No known fix for this error yet.")}):(0,t.jsx)("p",{className:"mt-1 whitespace-pre-wrap text-sm","data-testid":`issues-hint-${s.hash}`,children:T}),e[13]=T,e[14]=s.hash,e[15]=l,e[16]=v):v=e[16];let y;e[17]!==M||e[18]!==v?(y=(0,t.jsxs)("div",{children:[M,v]}),e[17]=M,e[18]=v,e[19]=y):y=e[19];let b=`issues-explain-${s.hash}`,w;e[20]!==_||e[21]!==l?(w=l(_?"Explaining\u2026":"Explain in plain language"),e[20]=_,e[21]=l,e[22]=w):w=e[22];let m;e[23]!==_||e[24]!==z||e[25]!==w||e[26]!==b?(m=(0,t.jsx)("div",{children:(0,t.jsx)(ie,{"data-testid":b,disabled:_,onClick:z,size:"sm",type:"button",variant:"outline",children:w})}),e[23]=_,e[24]=z,e[25]=w,e[26]=b,e[27]=m):m=e[27];let f;e[28]!==A||e[29]!==s.hash?(f=A!==null&&(0,t.jsx)("p",{className:"text-xs text-destructive","data-testid":`issues-explain-error-${s.hash}`,role:"alert",children:A}),e[28]=A,e[29]=s.hash,e[30]=f):f=e[30];let p;e[31]!==a||e[32]!==s.hash||e[33]!==l?(p=a!==void 0&&(a.degraded?(0,t.jsx)("p",{className:"text-xs text-muted-foreground","data-testid":`issues-degraded-${s.hash}`,children:a.reason==="no-ai-binding"?l("No AI binding is configured. Wire an AI binding to enable plain-language explanations \u2014 the suggested fix above is always available."):l("The AI model could not explain this error right now. The suggested fix above still applies.")}):(0,t.jsxs)("div",{"data-testid":`issues-explanation-${s.hash}`,children:[(0,t.jsx)("div",{className:"text-xs font-medium text-muted-foreground",children:l("AI explanation")}),(0,t.jsx)("p",{className:"mt-1 whitespace-pre-wrap text-sm",children:a.explanation}),a.groundedId===void 0&&(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground","data-testid":`issues-ungrounded-${s.hash}`,children:l("No catalog fix matched this error, so this explanation is the model's own reading of the message. Verify before acting on it.")}),(0,t.jsx)("p",{className:"mt-1 text-[0.7rem] text-muted-foreground",children:l("Generated by {model}",{model:a.model})})]})),e[31]=a,e[32]=s.hash,e[33]=l,e[34]=p):p=e[34];let c;e[35]!==m||e[36]!==f||e[37]!==p||e[38]!==h||e[39]!==y?(c=(0,t.jsx)(L,{className:"bg-muted/30",colSpan:7,children:(0,t.jsxs)("div",{className:"flex flex-col gap-3 py-1",children:[h,y,m,f,p]})}),e[35]=m,e[36]=f,e[37]=p,e[38]=h,e[39]=y,e[40]=c):c=e[40];let I;return e[41]!==c||e[42]!==E?(I=(0,t.jsx)(pe,{"data-testid":E,children:c}),e[41]=c,e[42]=E,e[43]=I):I=e[43],I},"et"),is=d(n=>{let e=(0,ge.c)(119),{busy:u,issue:s,rowError:$,runTriage:i,shardKey:l}=n,a=ue(),[o,_]=(0,ne.useState)(!1),A;e[0]===Symbol.for("react.memo_cache_sentinel")?(A=d(()=>{_(rs)},"A"),e[0]=A):A=e[0];let R=A,K;e[1]!==s.hash||e[2]!==i?(K=d(ae=>{let ce=ae===null||ae===Ie?null:ae;le(i(s.hash,Ye,{severity:ce}))},"C"),e[1]=s.hash,e[2]=i,e[3]=K):K=e[3];let z=K,k;e[4]!==s.hash||e[5]!==i?(k=d(ae=>{if(ae.key!=="Enter")return;let ce=ae.currentTarget.value.trim();le(i(s.hash,Fe,{assignee:ce===""?null:ce}))},"T"),e[4]=s.hash,e[5]=i,e[6]=k):k=e[6];let T=k,E=`issues-row-${s.hash}`,h;e[7]!==a?(h=a("Toggle issue details"),e[7]=a,e[8]=h):h=e[8];let x=`issues-toggle-${s.hash}`,M=`mt-1 size-3 shrink-0 text-muted-foreground transition-transform ${o?"rotate-90":""}`,v;e[9]===Symbol.for("react.memo_cache_sentinel")?(v=(0,t.jsx)("path",{d:"m9 6 6 6-6 6"}),e[9]=v):v=e[9];let y;e[10]!==M?(y=(0,t.jsx)("svg",{"aria-hidden":"true",className:M,fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,viewBox:"0 0 24 24",children:v}),e[10]=M,e[11]=y):y=e[11];let b;e[12]!==s.title?(b=(0,t.jsx)("span",{className:"block truncate font-medium",title:s.title,children:s.title}),e[12]=s.title,e[13]=b):b=e[13];let w;e[14]!==s.culprit?(w=(0,t.jsx)("span",{className:"block truncate font-mono text-xs text-muted-foreground",title:s.culprit,children:s.culprit}),e[14]=s.culprit,e[15]=w):w=e[15];let m;e[16]!==b||e[17]!==w?(m=(0,t.jsxs)("span",{className:"min-w-0",children:[b,w]}),e[16]=b,e[17]=w,e[18]=m):m=e[18];let f;e[19]!==o||e[20]!==m||e[21]!==h||e[22]!==x||e[23]!==y?(f=(0,t.jsxs)("button",{"aria-expanded":o,"aria-label":h,className:"flex w-full items-start gap-2 text-left","data-testid":x,onClick:R,type:"button",children:[y,m]}),e[19]=o,e[20]=m,e[21]=h,e[22]=x,e[23]=y,e[24]=f):f=e[24];let p;e[25]!==s.hash||e[26]!==$?(p=$!==void 0&&(0,t.jsx)("p",{className:"mt-1 text-xs text-destructive","data-testid":`issues-action-error-${s.hash}`,role:"alert",children:$}),e[25]=s.hash,e[26]=$,e[27]=p):p=e[27];let c;e[28]!==f||e[29]!==p?(c=(0,t.jsxs)(L,{className:"max-w-80",children:[f,p]}),e[28]=f,e[29]=p,e[30]=c):c=e[30];let I=`issues-status-${s.hash}`,g;e[31]!==s.status?(g=ss(s.status),e[31]=s.status,e[32]=g):g=e[32];let S;e[33]!==s.status||e[34]!==I||e[35]!==g?(S=(0,t.jsx)(L,{children:(0,t.jsx)(me,{"data-testid":I,variant:g,children:s.status})}),e[33]=s.status,e[34]=I,e[35]=g,e[36]=S):S=e[36];let V=s.severity??Ie,r;e[37]!==a?(r=a("Set severity"),e[37]=a,e[38]=r):r=e[38];let oe=`issues-severity-${s.hash}`,j;e[39]!==a?(j=a("\u2014"),e[39]=a,e[40]=j):j=e[40];let N;e[41]!==s.severity||e[42]!==a?(N=s.severity===void 0?(0,t.jsx)("span",{className:"text-muted-foreground",children:a("\u2014")}):(0,t.jsx)(me,{variant:ts(s.severity),children:s.severity}),e[41]=s.severity,e[42]=a,e[43]=N):N=e[43];let C;e[44]!==j||e[45]!==N?(C=(0,t.jsx)(Ue,{placeholder:j,children:N}),e[44]=j,e[45]=N,e[46]=C):C=e[46];let q;e[47]!==r||e[48]!==oe||e[49]!==C?(q=(0,t.jsx)(We,{"aria-label":r,className:"h-7 w-[110px]","data-testid":oe,children:C}),e[47]=r,e[48]=oe,e[49]=C,e[50]=q):q=e[50];let de;e[51]===Symbol.for("react.memo_cache_sentinel")?(de=Pe.map(ls),e[51]=de):de=e[51];let W;e[52]!==a?(W=a("Clear"),e[52]=a,e[53]=W):W=e[53];let D;e[54]!==W?(D=(0,t.jsxs)(De,{children:[de,(0,t.jsx)(we,{value:Ie,children:W})]}),e[54]=W,e[55]=D):D=e[55];let F;e[56]!==u||e[57]!==z||e[58]!==V||e[59]!==q||e[60]!==D?(F=(0,t.jsx)(L,{children:(0,t.jsxs)(Be,{disabled:u,onValueChange:z,value:V,children:[q,D]})}),e[56]=u,e[57]=z,e[58]=V,e[59]=q,e[60]=D,e[61]=F):F=e[61];let O;e[62]!==a?(O=a("Assignee"),e[62]=a,e[63]=O):O=e[63];let fe=`issues-assignee-${s.hash}`,xe=s.assignee??"",ve=s.assignee??"",G;e[64]!==a?(G=a("Unassigned"),e[64]=a,e[65]=G):G=e[65];let H;e[66]!==u||e[67]!==T||e[68]!==O||e[69]!==fe||e[70]!==xe||e[71]!==ve||e[72]!==G?(H=(0,t.jsx)(L,{children:(0,t.jsx)(ke,{"aria-label":O,className:"h-7 w-32","data-testid":fe,defaultValue:xe,disabled:u,onKeyDown:T,placeholder:G},ve)}),e[66]=u,e[67]=T,e[68]=O,e[69]=fe,e[70]=xe,e[71]=ve,e[72]=G,e[73]=H):H=e[73];let J;e[74]!==s.count?(J=(0,t.jsx)(L,{className:"text-right",children:(0,t.jsx)(me,{variant:"secondary",children:s.count})}),e[74]=s.count,e[75]=J):J=e[75];let P;e[76]!==s.lastSeen?(P=Te(s.lastSeen),e[76]=s.lastSeen,e[77]=P):P=e[77];let Q;e[78]!==P?(Q=(0,t.jsx)(L,{className:"text-xs tabular-nums text-muted-foreground",children:P}),e[78]=P,e[79]=Q):Q=e[79];let X;e[80]!==u||e[81]!==s.hash||e[82]!==s.status||e[83]!==i||e[84]!==a?(X=s.status!=="resolved"&&(0,t.jsx)(ie,{"data-testid":`issues-resolve-${s.hash}`,disabled:u,onClick:d(()=>{le(i(s.hash,Qe,{}))},"onClick"),size:"xs",variant:"outline",children:a("Resolve")}),e[80]=u,e[81]=s.hash,e[82]=s.status,e[83]=i,e[84]=a,e[85]=X):X=e[85];let Y;e[86]!==u||e[87]!==s.hash||e[88]!==s.status||e[89]!==i||e[90]!==a?(Y=s.status!=="ignored"&&(0,t.jsx)(ie,{"data-testid":`issues-ignore-${s.hash}`,disabled:u,onClick:d(()=>{le(i(s.hash,Xe,{}))},"onClick"),size:"xs",variant:"ghost",children:a("Ignore")}),e[86]=u,e[87]=s.hash,e[88]=s.status,e[89]=i,e[90]=a,e[91]=Y):Y=e[91];let Z;e[92]!==u||e[93]!==s.assignee||e[94]!==s.hash||e[95]!==s.status||e[96]!==i||e[97]!==a?(Z=s.status!=="open"&&(0,t.jsx)(ie,{"data-testid":`issues-reopen-${s.hash}`,disabled:u,onClick:d(()=>{le(i(s.hash,Fe,{assignee:s.assignee??null}))},"onClick"),size:"xs",variant:"ghost",children:a("Reopen")}),e[92]=u,e[93]=s.assignee,e[94]=s.hash,e[95]=s.status,e[96]=i,e[97]=a,e[98]=Z):Z=e[98];let ee;e[99]!==X||e[100]!==Y||e[101]!==Z?(ee=(0,t.jsx)(L,{className:"text-right",children:(0,t.jsxs)("div",{className:"flex justify-end gap-1",children:[X,Y,Z]})}),e[99]=X,e[100]=Y,e[101]=Z,e[102]=ee):ee=e[102];let se;e[103]!==c||e[104]!==S||e[105]!==F||e[106]!==H||e[107]!==J||e[108]!==Q||e[109]!==E||e[110]!==ee?(se=(0,t.jsxs)(pe,{"data-testid":E,children:[c,S,F,H,J,Q,ee]}),e[103]=c,e[104]=S,e[105]=F,e[106]=H,e[107]=J,e[108]=Q,e[109]=E,e[110]=ee,e[111]=se):se=e[111];let te;e[112]!==o||e[113]!==s||e[114]!==l?(te=(0,t.jsx)(as,{expanded:o,issue:s,shardKey:l},s.sampleMessage),e[112]=o,e[113]=s,e[114]=l,e[115]=te):te=e[115];let he;return e[116]!==se||e[117]!==te?(he=(0,t.jsxs)(t.Fragment,{children:[se,te]}),e[116]=se,e[117]=te,e[118]=he):he=e[118],he},"tt"),ks=d(n=>{let e=(0,ge.c)(38),{initialShardKey:u}=n,s=ue(),$=be(),{queryShardKey:i,setShardKey:l,shardKey:a}=ze(u),[o,_]=(0,ne.useState)("all"),[A,R]=(0,ne.useState)(ns),[K,z]=(0,ne.useState)(os),k;e[0]!==o?(k=o==="all"?{}:{status:o},e[0]=o,e[1]=k):k=e[1];let T;e[2]!==i?(T={live:!0,shardKey:i},e[2]=i,e[3]=T):T=e[3];let{data:E,error:h,liveError:x}=Ee(U.getIssues,k,T),M=E!==void 0,v;if(e[4]!==K||e[5]!==A||e[6]!==$||e[7]!==E||e[8]!==h||e[9]!==x||e[10]!==M||e[11]!==i||e[12]!==l||e[13]!==a||e[14]!==o||e[15]!==s){let y=es(E),b;e[17]!==$||e[18]!==i?(b=d(async(r,oe,j)=>{z(N=>{if(!N.has(r))return N;let C=new Map(N);return C.delete(r),C}),R(N=>new Set(N).add(r));try{await $.query(oe,{...j,hash:r},Ne(i))}catch(N){let C=Ke(N);z(q=>new Map(q).set(r,C))}R(N=>{let C=new Set(N);return C.delete(r),C})},"v"),e[17]=$,e[18]=i,e[19]=b):b=e[19];let w=b,m;e[20]!==s?(m=d(r=>s(r==="all"?"All":r==="open"?"Open":r==="resolved"?"Resolved":"Ignored"),"u"),e[20]=s,e[21]=m):m=e[21];let f=m,p;e[22]!==h?(p=h!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive","data-testid":"issues-error",role:"alert",children:h}),e[22]=h,e[23]=p):p=e[23];let c;e[24]!==l||e[25]!==a?(c=(0,t.jsx)(_e,{onChange:l,testId:"issues-shard-input",value:a}),e[24]=l,e[25]=a,e[26]=c):c=e[26];let I;e[27]!==x?(I=(0,t.jsx)(qe,{message:x,prefix:"issues"}),e[27]=x,e[28]=I):I=e[28];let g;e[29]!==o||e[30]!==f?(g=Je.map(r=>(0,t.jsx)(ie,{"data-active":o===r?"":void 0,"data-testid":`issues-filter-${r}`,onClick:d(()=>{_(r)},"onClick"),size:"xs",variant:o===r?"default":"outline",children:f(r)},r)),e[29]=o,e[30]=f,e[31]=g):g=e[31];let S;e[32]!==g?(S=(0,t.jsx)("div",{className:"ms-auto flex items-center gap-1","data-testid":"issues-status-filter",role:"group",children:g}),e[32]=g,e[33]=S):S=e[33];let V;e[34]!==S||e[35]!==c||e[36]!==I?(V=(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[c,I,S]}),e[34]=S,e[35]=c,e[36]=I,e[37]=V):V=e[37],v=(0,t.jsxs)("div",{className:"flex flex-col gap-6","data-testid":"lunora-issues-panel",children:[p,V,M&&y.length===0?(0,t.jsx)(Ae,{description:s("No grouped errors yet. When a function throws or a container crashes, matching errors fold into a single issue here."),testId:"issues-empty",title:s("No issues")}):(0,t.jsx)(Me,{className:"overflow-hidden py-0",children:(0,t.jsx)(Ce,{className:"px-0",children:(0,t.jsxs)(Le,{"data-testid":"issues-table",children:[(0,t.jsx)(Re,{children:(0,t.jsxs)(pe,{children:[(0,t.jsx)(B,{children:s("Issue")}),(0,t.jsx)(B,{children:s("Status")}),(0,t.jsx)(B,{children:s("Severity")}),(0,t.jsx)(B,{children:s("Assignee")}),(0,t.jsx)(B,{className:"text-right",children:s("Events")}),(0,t.jsx)(B,{children:s("Last seen")}),(0,t.jsx)(B,{className:"text-right",children:s("Actions")})]})}),(0,t.jsx)(Ve,{children:y.map(r=>(0,t.jsx)(is,{busy:A.has(r.hash),issue:r,rowError:K.get(r.hash),runTriage:w,shardKey:i},r.hash))})]})})})]}),e[4]=K,e[5]=A,e[6]=$,e[7]=E,e[8]=h,e[9]=x,e[10]=M,e[11]=i,e[12]=l,e[13]=a,e[14]=o,e[15]=s,e[16]=v}else v=e[16];return v},"Tt");function rs(n){return!n}d(rs,"st");function ls(n){return(0,t.jsx)(we,{value:n,children:n},n)}d(ls,"at");function ns(){return new Set}d(ns,"it");function os(){return new Map}d(os,"lt");export{ks as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as H}from"./chunk-
|
|
1
|
+
import{a as H}from"./chunk-FACE2CFY.js";import{b as x}from"./chunk-6I42AM75.js";import"./chunk-4C4THJUD.js";import{b as z}from"./chunk-W37HRJGQ.js";import{p as W}from"./chunk-SDSQIQJG.js";import"./chunk-WZTY3ZYI.js";import{a as _}from"./chunk-3Y5K3IQO.js";import{a as B,b as E,c as L,d as S,e as i,f as s}from"./chunk-CW57Q264.js";import{a as A,e as q}from"./chunk-MD67S53Z.js";import{f as O}from"./chunk-LPINY2IJ.js";import{a as R,d as M,f as $,g as D}from"./chunk-OXFKZ4BM.js";var I=M($(),1);var n=M(D(),1);var F=2e3,G=new Set(["open"]),ie=R(Q=>{let e=(0,I.c)(41),{read:y}=Q,t=O(),j=W(),v;e[0]!==j||e[1]!==y?(v=R(()=>Promise.resolve(y?y():j.debug()),"T"),e[0]=j,e[1]=y,e[2]=v):v=e[2];let V=v,K=y?"injected":"live",b;e[3]!==K?(b=["lunora-studio","sync-client-debug",K],e[3]=K,e[4]=b):b=e[4];let{data:c,poll:Y}=z(b,V);if(H(Y,!0,F),!c){let r;e[5]!==t?(r=t("Reading the sync client's state\u2026"),e[5]=t,e[6]=r):r=e[6];let g;e[7]!==t?(g=t("Sync client"),e[7]=t,e[8]=g):g=e[8];let T;return e[9]!==r||e[10]!==g?(T=(0,n.jsx)(A,{children:(0,n.jsx)(q,{children:(0,n.jsx)(_,{description:r,title:g})})}),e[9]=r,e[10]=g,e[11]=T):T=e[11],T}let{pendingWrites:k,shards:N,subscriptions:w}=c,l;e[12]!==t?(l=t("This Studio session's sync client"),e[12]=t,e[13]=l):l=e[13];let a;e[14]!==l?(a=(0,n.jsx)("span",{className:"text-sm font-medium",children:l}),e[14]=l,e[15]=a):a=e[15];let P=c.connectionStatus==="connected"?"default":"secondary",o;e[16]!==c.connectionStatus||e[17]!==P?(o=(0,n.jsx)(x,{variant:P,children:c.connectionStatus}),e[16]=c.connectionStatus,e[17]=P,e[18]=o):o=e[18];let d;e[19]!==k||e[20]!==t?(d=k>0?(0,n.jsx)(x,{variant:"secondary",children:t("{count} pending writes",{count:k})}):null,e[19]=k,e[20]=t,e[21]=d):d=e[21];let h;e[22]!==a||e[23]!==o||e[24]!==d?(h=(0,n.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[a,o,d]}),e[22]=a,e[23]=o,e[24]=d,e[25]=h):h=e[25];let u;e[26]!==t?(u=t("Reads client.debug() for the client running in this page \u2014 not your application's client. Call client.debug() in your app to diagnose a specific stuck overlay there."),e[26]=t,e[27]=u):u=e[27];let m;e[28]!==u?(m=(0,n.jsx)("p",{className:"text-muted-foreground text-xs",children:u}),e[28]=u,e[29]=m):m=e[29];let p;e[30]!==N||e[31]!==t?(p=N.length===0?(0,n.jsx)(_,{description:t("No shard connection has been opened yet."),title:t("No shards")}):(0,n.jsxs)(B,{children:[(0,n.jsx)(E,{children:(0,n.jsxs)(S,{children:[(0,n.jsx)(i,{children:t("Shard")}),(0,n.jsx)(i,{children:t("Socket")}),(0,n.jsx)(i,{children:t("Confirmed watermark")})]})}),(0,n.jsx)(L,{children:N.map(r=>(0,n.jsxs)(S,{children:[(0,n.jsx)(s,{children:r.shardKey??t("(default)")}),(0,n.jsx)(s,{children:(0,n.jsx)(x,{variant:G.has(r.wsState)?"default":"secondary",children:r.wsState})}),(0,n.jsx)(s,{children:r.confirmedMutationWatermark})]},r.shardKey??"__default__"))})]}),e[30]=N,e[31]=t,e[32]=p):p=e[32];let f;e[33]!==w||e[34]!==t?(f=w.length===0?(0,n.jsx)(_,{description:t("This client holds no live queries or shapes."),title:t("No subscriptions")}):(0,n.jsxs)(B,{children:[(0,n.jsx)(E,{children:(0,n.jsxs)(S,{children:[(0,n.jsx)(i,{children:t("Subscription")}),(0,n.jsx)(i,{children:t("Kind")}),(0,n.jsx)(i,{children:t("Acked")}),(0,n.jsx)(i,{children:t("Cursor")}),(0,n.jsx)(i,{children:t("Pending overlays")})]})}),(0,n.jsx)(L,{children:w.map(r=>(0,n.jsxs)(S,{children:[(0,n.jsx)(s,{className:"font-mono text-xs",children:r.functionPath}),(0,n.jsx)(s,{children:r.kind}),(0,n.jsx)(s,{children:(0,n.jsx)(x,{variant:r.acked?"default":"secondary",children:r.acked?t("yes"):t("no")})}),(0,n.jsx)(s,{children:r.serverCursor??"\u2014"}),(0,n.jsx)(s,{children:r.pendingOptimisticLayers})]},r.id))})]}),e[33]=w,e[34]=t,e[35]=f):f=e[35];let C;return e[36]!==m||e[37]!==p||e[38]!==f||e[39]!==h?(C=(0,n.jsx)(A,{children:(0,n.jsxs)(q,{className:"flex flex-col gap-4",children:[h,m,p,f]})}),e[36]=m,e[37]=p,e[38]=f,e[39]=h,e[40]=C):C=e[40],C},"ie");export{ie as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as le}from"./chunk-SJLEEYCR.js";import{a as Pe}from"./chunk-P6L6ABWO.js";import{a as he}from"./chunk-OUFWXYEF.js";import{a as V}from"./chunk-HKLF627N.js";import{d as Ne,f as ke,g as we,k as oe}from"./chunk-XYR5NST4.js";import{a as Ce}from"./chunk-KYONGQQ4.js";import"./chunk-SLIDAWNX.js";import"./chunk-6M7FLLMT.js";import{i as ve}from"./chunk-SDQH4HR6.js";import"./chunk-W7MRISE3.js";import"./chunk-IBJVVHV5.js";import{a as U}from"./chunk-2O6KKVH2.js";import"./chunk-JTGGWF7R.js";import"./chunk-ZBON5T5A.js";import{b as ye}from"./chunk-6I42AM75.js";import"./chunk-4C4THJUD.js";import{a as $e}from"./chunk-6UTZXEW3.js";import{a as be,p as F}from"./chunk-
|
|
1
|
+
import{a as le}from"./chunk-SJLEEYCR.js";import{a as Pe}from"./chunk-P6L6ABWO.js";import{a as he}from"./chunk-OUFWXYEF.js";import{a as V}from"./chunk-HKLF627N.js";import{d as Ne,f as ke,g as we,k as oe}from"./chunk-XYR5NST4.js";import{a as Ce}from"./chunk-KYONGQQ4.js";import"./chunk-SLIDAWNX.js";import"./chunk-6M7FLLMT.js";import{i as ve}from"./chunk-SDQH4HR6.js";import"./chunk-W7MRISE3.js";import"./chunk-IBJVVHV5.js";import{a as U}from"./chunk-2O6KKVH2.js";import"./chunk-JTGGWF7R.js";import"./chunk-ZBON5T5A.js";import{b as ye}from"./chunk-6I42AM75.js";import"./chunk-4C4THJUD.js";import{a as $e}from"./chunk-6UTZXEW3.js";import{a as be,p as F}from"./chunk-SDSQIQJG.js";import"./chunk-WZTY3ZYI.js";import{a as E}from"./chunk-3Y5K3IQO.js";import{b as ue,f as M,g as Se,h as se,i as ie,j as fe,p as Ie,s as Oe,v as ae}from"./chunk-LPINY2IJ.js";import{a as u,d as L,e as me,f as te,g as re}from"./chunk-OXFKZ4BM.js";var Qe=L(te(),1),xe=L(me(),1);var Y=L(te(),1),X=L(me(),1);var R=L(re(),1);var Xe=se($e.listTables),Ye=["react","client","cli"],Ze={action:"action",mutation:"mutation",query:"query"},Te=u(t=>{let e=t.indexOf(":");return e===-1?{file:"",fn:t}:{file:t.slice(0,e),fn:t.slice(e+1)}},"Q"),et=u(({file:t,fn:e,kind:a})=>`await client.${Ze[a]}(api.${t}.${e}, { /* args */ });`,"ae"),tt=u(t=>{let e=`api.${t.file}.${t.fn}`;switch(t.kind){case"action":return`const { call: ${t.fn} } = useAction(${e});`;case"mutation":return`const ${t.fn} = useMutation(${e});`;default:return`const data = useQuery(${e}, { /* args */ });`}},"se"),rt=u(({file:t,fn:e})=>`lunora run ${t}:${e} --args '{ }'`,"oe"),at=u(t=>["// Read rows",`const rows = await ctx.db.query("${t}").collect();`,"","// Insert a row",`const id = await ctx.db.insert("${t}", { /* fields */ });`,"","// Generated types",`type Row = Doc<"${t}">;`,`type RowId = Id<"${t}">;`].join(`
|
|
2
2
|
`),"ce"),nt=u((t,e)=>{switch(t){case"cli":return rt(e);case"client":return et(e);default:return tt(e)}},"re"),Re=u(t=>{let e=(0,Y.c)(19),{code:a,label:r,testId:n}=t,s=M(),o;e[0]!==a?(o=u(()=>{ae(a)},"c"),e[0]=a,e[1]=o):o=e[1];let i=o,c;e[2]!==r?(c=(0,R.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:r}),e[2]=r,e[3]=c):c=e[3];let m=`${n}-copy`,l;e[4]!==s?(l=s("Copy"),e[4]=s,e[5]=l):l=e[5];let p;e[6]!==i||e[7]!==m||e[8]!==l?(p=(0,R.jsx)(U,{"data-testid":m,onClick:i,size:"xs",type:"button",variant:"ghost",children:l}),e[6]=i,e[7]=m,e[8]=l,e[9]=p):p=e[9];let f;e[10]!==c||e[11]!==p?(f=(0,R.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[c,p]}),e[10]=c,e[11]=p,e[12]=f):f=e[12];let h;e[13]!==a||e[14]!==n?(h=(0,R.jsx)("pre",{className:"overflow-auto rounded-md border border-border bg-muted/50 p-3 font-mono text-xs","data-testid":n,children:a}),e[13]=a,e[14]=n,e[15]=h):h=e[15];let g;return e[16]!==f||e[17]!==h?(g=(0,R.jsxs)("div",{className:"flex flex-col gap-1.5",children:[f,h]}),e[16]=f,e[17]=h,e[18]=g):g=e[18],g},"U"),ot=u(t=>{let e=(0,Y.c)(46),{file:a,fn:r,kind:n}=t,s=M(),[o,i]=(0,X.useState)("react"),c,m,l;if(e[0]!==a||e[1]!==r||e[2]!==n||e[3]!==s||e[4]!==o){let w={file:a,fn:r,kind:n},P;e[8]!==s?(P=s("CLI"),e[8]=s,e[9]=P):P=e[9];let O;e[10]!==s?(O=s("Client"),e[10]=s,e[11]=O):O=e[11];let S;e[12]!==s?(S=s("React"),e[12]=s,e[13]=S):S=e[13];let T;e[14]!==P||e[15]!==O||e[16]!==S?(T={cli:P,client:O,react:S},e[14]=P,e[15]=O,e[16]=S,e[17]=T):T=e[17],l=T;let A;e[18]===Symbol.for("react.memo_cache_sentinel")?(A=u(_=>{i(_.currentTarget.dataset.tab)},"B"),e[18]=A):A=e[18],c=A,m=nt(o,w),e[0]=a,e[1]=r,e[2]=n,e[3]=s,e[4]=o,e[5]=c,e[6]=m,e[7]=l}else c=e[5],m=e[6],l=e[7];let p=m,f=`api.${a}.${r}`,h;e[19]!==f?(h=(0,R.jsx)("h2",{className:"font-mono text-sm font-semibold text-foreground","data-testid":"api-fn-title",children:f}),e[19]=f,e[20]=h):h=e[20];let g;e[21]!==n||e[22]!==s?(g=s("Call this {kind} from your app.",{kind:n}),e[21]=n,e[22]=s,e[23]=g):g=e[23];let x;e[24]!==g?(x=(0,R.jsx)("p",{className:"text-xs text-muted-foreground",children:g}),e[24]=g,e[25]=x):x=e[25];let v;e[26]!==h||e[27]!==x?(v=(0,R.jsxs)("div",{children:[h,x]}),e[26]=h,e[27]=x,e[28]=v):v=e[28];let N;e[29]!==s?(N=s("Snippet flavour"),e[29]=s,e[30]=N):N=e[30];let y;e[31]!==c||e[32]!==o||e[33]!==l?(y=Ye.map(w=>(0,R.jsx)(U,{"aria-selected":o===w,"data-tab":w,"data-testid":`api-tab-${w}`,onClick:c,role:"tab",size:"xs",type:"button",variant:o===w?"default":"outline",children:l[w]},w)),e[31]=c,e[32]=o,e[33]=l,e[34]=y):y=e[34];let b;e[35]!==N||e[36]!==y?(b=(0,R.jsx)("div",{"aria-label":N,className:"flex gap-1.5","data-testid":"api-tabs",role:"tablist",children:y}),e[35]=N,e[36]=y,e[37]=b):b=e[37];let I=l[o],C=`api-snippet-${o}`,$;e[38]!==p||e[39]!==I||e[40]!==C?($=(0,R.jsx)(Re,{code:p,label:I,testId:C}),e[38]=p,e[39]=I,e[40]=C,e[41]=$):$=e[41];let k;return e[42]!==$||e[43]!==v||e[44]!==b?(k=(0,R.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"api-fn-doc",children:[v,b,$]}),e[42]=$,e[43]=v,e[44]=b,e[45]=k):k=e[45],k},"de"),st=u(t=>{let e=(0,Y.c)(19),{name:a}=t,r=M(),n;e[0]!==a?(n=at(a),e[0]=a,e[1]=n):n=e[1];let s=n,o;e[2]!==a?(o=(0,R.jsx)("h2",{className:"font-mono text-sm font-semibold text-foreground","data-testid":"api-table-title",children:a}),e[2]=a,e[3]=o):o=e[3];let i;e[4]!==r?(i=r("Read and write this table through the typed data model."),e[4]=r,e[5]=i):i=e[5];let c;e[6]!==i?(c=(0,R.jsx)("p",{className:"text-xs text-muted-foreground",children:i}),e[6]=i,e[7]=c):c=e[7];let m;e[8]!==o||e[9]!==c?(m=(0,R.jsxs)("div",{children:[o,c]}),e[8]=o,e[9]=c,e[10]=m):m=e[10];let l;e[11]!==r?(l=r("Data model"),e[11]=r,e[12]=l):l=e[12];let p;e[13]!==s||e[14]!==l?(p=(0,R.jsx)(Re,{code:s,label:l,testId:"api-snippet-table"}),e[13]=s,e[14]=l,e[15]=p):p=e[15];let f;return e[16]!==m||e[17]!==p?(f=(0,R.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"api-table-doc",children:[m,p]}),e[16]=m,e[17]=p,e[18]=f):f=e[18],f},"fe"),je=u(t=>{let e=(0,Y.c)(8),{active:a,label:r,onSelect:n,testId:s,value:o}=t,i;e[0]!==n||e[1]!==o?(i=u(()=>{n(o)},"m"),e[0]=n,e[1]=o,e[2]=i):i=e[2];let c=i,m=a?"page":void 0,l;return e[3]!==r||e[4]!==c||e[5]!==m||e[6]!==s?(l=(0,R.jsx)("button",{"aria-current":m,className:"w-full truncate rounded-md px-2 py-1 text-start font-mono text-xs text-muted-foreground outline-none transition-colors hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:bg-sidebar-accent aria-[current=page]:bg-sidebar-accent aria-[current=page]:font-medium aria-[current=page]:text-foreground","data-testid":s,onClick:c,type:"button",children:r}),e[3]=r,e[4]=c,e[5]=m,e[6]=s,e[7]=l):l=e[7],l},"G"),it=u(t=>{let e=new Map;for(let a of t){let{file:r,fn:n}=Te(a.path),s=e.get(r)??[];s.push({fn:n,kind:a.kind,path:a.path}),e.set(r,s)}return[...e.entries()].map(([a,r])=>({file:a,items:r.toSorted((n,s)=>n.fn.localeCompare(s.fn))})).toSorted((a,r)=>a.file.localeCompare(r.file))},"pe"),Ae=u(t=>{let e=(0,Y.c)(58),{functions:a,initialShardKey:r}=t,n=M(),s=F(),[o,i]=(0,X.useState)(null),[c,m]=(0,X.useState)(null),l,p;e[0]!==s||e[1]!==r?(l=u(()=>{let _=!1;return s.query(Xe,{},ie(r??"")).then(j=>(_||i(j),j)).catch(()=>{_||i([])}),()=>{_=!0}},"o"),p=[s,r],e[0]=s,e[1]=r,e[2]=l,e[3]=p):(l=e[2],p=e[3]),(0,X.useEffect)(l,p);let f,h,g,x,v,N,y,b,I,C;if(e[4]!==a||e[5]!==c||e[6]!==n||e[7]!==o){let _=a??[],j=it(_),q=(o??[]).map(lt).toSorted(dt),J;e[18]===Symbol.for("react.memo_cache_sentinel")?(J=u(K=>{m({kind:"fn",path:K})},"P"),e[18]=J):J=e[18];let W=J,Q;e[19]===Symbol.for("react.memo_cache_sentinel")?(Q=u(K=>{m({kind:"table",name:K})},"j"),e[19]=Q):Q=e[19];let Ve=Q;h=c?.kind==="fn"?_.find(K=>K.path===c.path):void 0,f=_.length>0||q.length>0,g=h===void 0?void 0:Te(h.path),I="grid min-h-0 gap-6 md:grid-cols-[16rem_minmax(0,1fr)]",C="lunora-api-docs",e[20]!==n?(x=n("API resources"),e[20]=n,e[21]=x):x=e[21],v="flex flex-col gap-4 overflow-y-auto",N="api-rail";let ne;e[22]!==c||e[23]!==n?(ne=u(K=>(0,R.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,R.jsx)("span",{className:"px-2 font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:K.file||n("(root)")}),K.items.map(ee=>(0,R.jsx)(je,{active:c?.kind==="fn"&&c.path===ee.path,label:ee.fn,onSelect:W,testId:`api-rail-fn-${ee.path}`,value:ee.path},ee.path))]},K.file),"q"),e[22]=c,e[23]=n,e[24]=ne):ne=e[24],y=j.map(ne),b=q.length>0&&(0,R.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,R.jsx)("span",{className:"px-2 font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:n("Tables")}),q.map(K=>(0,R.jsx)(je,{active:c?.kind==="table"&&c.name===K,label:K,onSelect:Ve,testId:`api-rail-table-${K}`,value:K},K))]}),e[4]=a,e[5]=c,e[6]=n,e[7]=o,e[8]=f,e[9]=h,e[10]=g,e[11]=x,e[12]=v,e[13]=N,e[14]=y,e[15]=b,e[16]=I,e[17]=C}else f=e[8],h=e[9],g=e[10],x=e[11],v=e[12],N=e[13],y=e[14],b=e[15],I=e[16],C=e[17];let $;e[25]!==f||e[26]!==n?($=!f&&(0,R.jsx)("p",{className:"px-2 text-xs text-muted-foreground","data-testid":"api-rail-empty",children:n("No functions or tables to document yet.")}),e[25]=f,e[26]=n,e[27]=$):$=e[27];let k;e[28]!==$||e[29]!==x||e[30]!==v||e[31]!==N||e[32]!==y||e[33]!==b?(k=(0,R.jsxs)("nav",{"aria-label":x,className:v,"data-testid":N,children:[y,b,$]}),e[28]=$,e[29]=x,e[30]=v,e[31]=N,e[32]=y,e[33]=b,e[34]=k):k=e[34];let w;e[35]!==c||e[36]!==n?(w=c===null&&(0,R.jsx)(E,{description:n("Select a function or table to see how to call it from your app."),testId:"api-empty",title:n("API usage snippets")}),e[35]=c,e[36]=n,e[37]=w):w=e[37];let P;e[38]!==c?.kind||e[39]!==h||e[40]!==g?(P=c?.kind==="fn"&&h!==void 0&&g!==void 0&&(0,R.jsx)(ot,{file:g.file,fn:g.fn,kind:h.kind},h.path),e[38]=c?.kind,e[39]=h,e[40]=g,e[41]=P):P=e[41];let O;e[42]!==c?.kind||e[43]!==h||e[44]!==n?(O=c?.kind==="fn"&&h===void 0&&(0,R.jsx)(E,{testId:"api-empty",title:n("API usage snippets")}),e[42]=c?.kind,e[43]=h,e[44]=n,e[45]=O):O=e[45];let S;e[46]!==c?(S=c?.kind==="table"&&(0,R.jsx)(st,{name:c.name}),e[46]=c,e[47]=S):S=e[47];let T;e[48]!==w||e[49]!==P||e[50]!==O||e[51]!==S?(T=(0,R.jsxs)("div",{className:"min-w-0",children:[w,P,O,S]}),e[48]=w,e[49]=P,e[50]=O,e[51]=S,e[52]=T):T=e[52];let A;return e[53]!==k||e[54]!==T||e[55]!==I||e[56]!==C?(A=(0,R.jsxs)("div",{className:I,"data-testid":C,children:[k,T]}),e[53]=k,e[54]=T,e[55]=I,e[56]=C,e[57]=A):A=e[57],A},"ke");function lt(t){return t.name}u(lt,"ue");function dt(t,e){return t.localeCompare(e)}u(dt,"me");var We=L(te(),1);var B=L(te(),1);var z=L(me(),1);var d=L(re(),1);var ct=u(t=>typeof t=="number"?"number":typeof t=="boolean"?"boolean":"string","we"),Me=u(t=>{if(t.enum!==void 0&&t.enum.length>0)return t.enum;if(t.anyOf!==void 0&&t.anyOf.length>0&&t.anyOf.every(e=>e.const!==void 0))return t.anyOf.map(e=>e.const)},"Q"),ce=u(t=>t===void 0?"any":t.const!==void 0?JSON.stringify(t.const):t.enum!==void 0&&t.enum.length>0?t.enum.map(e=>JSON.stringify(e)).join(" | "):t.anyOf!==void 0&&t.anyOf.length>0?t.anyOf.map(e=>ce(e)).join(" | "):t.type==="array"?`array<${ce(t.items)}>`:t.type??"any","z"),pt=u(t=>{let e=Me(t);return e!==void 0?t.type??ct(e[0]):ce(t)},"ke"),mt=u(t=>{let e=Me(t);return e===void 0?void 0:e.map(a=>JSON.stringify(a)).join(" | ")},"Oe"),ut=u(t=>{let e=[];t.minimum!==void 0?e.push(`${String(t.minimum)} \u2264`):t.exclusiveMinimum!==void 0&&e.push(`${String(t.exclusiveMinimum)} <`);let a=e.length>0;e.push("value"),t.maximum!==void 0?e.push(`\u2264 ${String(t.maximum)}`):t.exclusiveMaximum!==void 0&&e.push(`< ${String(t.exclusiveMaximum)}`);let r=e.length>(a?2:1);return a||r?e.join(" "):void 0},"$e"),ft=u(t=>{if(t.type==="object"&&t.properties!==void 0)return t;if(t.type==="array"&&t.items?.type==="object"&&t.items.properties!==void 0)return t.items},"Te"),Z=u(t=>{if(t===void 0)return null;if(t.const!==void 0)return t.const;if(t.enum!==void 0&&t.enum.length>0)return t.enum[0];if(t.anyOf!==void 0&&t.anyOf.length>0)return Z(t.anyOf[0]);switch(t.type){case"array":return[];case"boolean":return!1;case"number":return 0;case"object":{let e={};for(let[a,r]of Object.entries(t.properties??{}))e[a]=Z(r);return e}case"string":return"";default:return null}},"D"),de=u(t=>{let e=(0,B.c)(7),{label:a,value:r}=t,n;e[0]!==a?(n=(0,d.jsx)("span",{className:"text-muted-foreground",children:a}),e[0]=a,e[1]=n):n=e[1];let s;e[2]!==r?(s=(0,d.jsx)("span",{className:"text-foreground",children:r}),e[2]=r,e[3]=s):s=e[3];let o;return e[4]!==n||e[5]!==s?(o=(0,d.jsxs)("span",{className:"inline-flex items-center gap-1 rounded border border-border px-1.5 py-0.5 font-mono text-[10px]",children:[n,s]}),e[4]=n,e[5]=s,e[6]=o):o=e[6],o},"K"),ht=u(t=>{let e=(0,B.c)(40),{name:a,required:r,schema:n}=t,s=M(),o;e[0]!==n?(o=ut(n),e[0]=n,e[1]=o):o=e[1];let i=o,c;e[2]!==n?(c=mt(n),e[2]=n,e[3]=c):c=e[3];let m=c,l=n["x-lunora-table"],p=n.format!==void 0||i!==void 0||m!==void 0||l!==void 0,f;e[4]!==n?(f=ft(n),e[4]=n,e[5]=f):f=e[5];let h=f,g=r?"*":"?",x;e[6]!==g?(x=(0,d.jsx)("span",{className:"text-muted-foreground",children:g}),e[6]=g,e[7]=x):x=e[7];let v;e[8]!==a||e[9]!==x?(v=(0,d.jsxs)("span",{className:"font-mono text-foreground",children:[a,x]}),e[8]=a,e[9]=x,e[10]=v):v=e[10];let N;e[11]!==n?(N=pt(n),e[11]=n,e[12]=N):N=e[12];let y;e[13]!==N?(y=(0,d.jsx)("span",{className:"font-mono text-muted-foreground",children:N}),e[13]=N,e[14]=y):y=e[14];let b;e[15]!==v||e[16]!==y?(b=(0,d.jsxs)("div",{className:"flex items-baseline gap-2",children:[v,y]}),e[15]=v,e[16]=y,e[17]=b):b=e[17];let I;e[18]!==n.description?(I=n.description!==void 0&&(0,d.jsx)("p",{className:"max-w-prose text-muted-foreground",children:n.description}),e[18]=n.description,e[19]=I):I=e[19];let C;e[20]!==p||e[21]!==i||e[22]!==l||e[23]!==n.format||e[24]!==s||e[25]!==m?(C=p&&(0,d.jsxs)("div",{className:"flex flex-wrap gap-1",children:[n.format!==void 0&&(0,d.jsx)(de,{label:s("Format"),value:n.format}),i!==void 0&&(0,d.jsx)(de,{label:s("Range"),value:i}),m!==void 0&&(0,d.jsx)(de,{label:s("Value in"),value:m}),l!==void 0&&(0,d.jsx)(de,{label:s("relation"),value:l})]}),e[20]=p,e[21]=i,e[22]=l,e[23]=n.format,e[24]=s,e[25]=m,e[26]=C):C=e[26];let $;e[27]!==I||e[28]!==C||e[29]!==b?($=(0,d.jsxs)("div",{className:"flex flex-col gap-1 py-2",children:[b,I,C]}),e[27]=I,e[28]=C,e[29]=b,e[30]=$):$=e[30];let k=$;if(h===void 0){let S;return e[31]!==k?(S=(0,d.jsx)("div",{className:"border-b border-border/50 last:border-b-0",children:k}),e[31]=k,e[32]=S):S=e[32],S}let w;e[33]!==k?(w=(0,d.jsx)("summary",{className:"cursor-pointer marker:text-muted-foreground",children:k}),e[33]=k,e[34]=w):w=e[34];let P;e[35]!==h?(P=(0,d.jsx)("div",{className:"mb-2 ml-2 border-l border-border pl-3",children:(0,d.jsx)(qe,{schema:h})}),e[35]=h,e[36]=P):P=e[36];let O;return e[37]!==w||e[38]!==P?(O=(0,d.jsxs)("details",{className:"border-b border-border/50 last:border-b-0",children:[w,P]}),e[37]=w,e[38]=P,e[39]=O):O=e[39],O},"Ce"),qe=u(t=>{let e=(0,B.c)(7),{schema:a}=t,r;e[0]!==a.required?(r=new Set(a.required),e[0]=a.required,e[1]=r):r=e[1];let n=r,s;e[2]!==a.properties?(s=Object.entries(a.properties??{}),e[2]=a.properties,e[3]=s):s=e[3];let o=s,i;return e[4]!==n||e[5]!==o?(i=(0,d.jsx)("div",{className:"flex flex-col",children:o.map(c=>{let[m,l]=c;return(0,d.jsx)(ht,{name:m,required:n.has(m),schema:l},m)})}),e[4]=n,e[5]=o,e[6]=i):i=e[6],i},"Z"),_e=u(t=>{let e=(0,B.c)(10),{schema:a,testId:r}=t;if(a?.type!=="object"||Object.keys(a.properties??{}).length===0){let o;e[0]!==a?(o=ce(a),e[0]=a,e[1]=o):o=e[1];let i;return e[2]!==o||e[3]!==r?(i=(0,d.jsx)("p",{className:"font-mono text-xs text-muted-foreground","data-testid":r,children:o}),e[2]=o,e[3]=r,e[4]=i):i=e[4],i}let n;e[5]!==a?(n=(0,d.jsx)(qe,{schema:a}),e[5]=a,e[6]=n):n=e[6];let s;return e[7]!==n||e[8]!==r?(s=(0,d.jsx)("div",{className:"text-xs","data-testid":r,children:n}),e[7]=n,e[8]=r,e[9]=s):s=e[9],s},"V"),gt=["curl","javascript","lunora"],xt={lunora:"Lunora",curl:"cURL",javascript:"JavaScript"},bt=u(t=>`api.${t.replaceAll(/[/:]/g,".")}`,"Ae"),yt=u(t=>{let e=Z(t.argsSchema)??{};return t.functionPath===void 0?e:{args:e,functionPath:t.functionPath}},"je"),vt=u((t,e,a)=>{let r=`${a}${e.httpPath}`,n=JSON.stringify(yt(e),void 0,2),s=JSON.stringify(Z(e.argsSchema)??{},void 0,2);switch(t){case"curl":{let o=e.method!=="GET"&&e.method!=="HEAD",i=[`curl -X ${e.method} ${JSON.stringify(r)}`];return o&&i.push(' -H "Content-Type: application/json"',` -d '${n}'`),i.join(` \\
|
|
3
3
|
`)}case"lunora":return e.functionPath===void 0?`await fetch(${JSON.stringify(e.httpPath)}, { method: ${JSON.stringify(e.method)} });`:`import { useLunora } from "@lunora/react";
|
|
4
4
|
import { api } from "./_generated/api";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as we}from"./chunk-X74GEPSG.js";import{b as xe,c as Ne}from"./chunk-4SQBAPY6.js";import{a as Se,b as Ce,c as Ee,d as Ke,e as Fe}from"./chunk-FLVDICZL.js";import"./chunk-A566HCBX.js";import"./chunk-LIGOLZND.js";import{a as ue}from"./chunk-P6L6ABWO.js";import{a as me}from"./chunk-YJWR6ZWC.js";import{a as Y}from"./chunk-OUFWXYEF.js";import{g as ve,h as pe,i as ye,j as he}from"./chunk-M3KSCNKR.js";import"./chunk-YHTHRYP5.js";import"./chunk-FIJVZCBO.js";import"./chunk-DX55P3KZ.js";import"./chunk-AP4PC2M4.js";import"./chunk-KRPXOSBL.js";import"./chunk-W2BCSK5S.js";import"./chunk-HKLF627N.js";import"./chunk-NGVP66OH.js";import"./chunk-XYR5NST4.js";import"./chunk-DBVJ5VLI.js";import"./chunk-6M7FLLMT.js";import"./chunk-LUHXNZI4.js";import"./chunk-ZTOREMGH.js";import{i as ae}from"./chunk-SDQH4HR6.js";import"./chunk-W7MRISE3.js";import"./chunk-IBJVVHV5.js";import{a as R}from"./chunk-2O6KKVH2.js";import"./chunk-JTGGWF7R.js";import"./chunk-ZBON5T5A.js";import{b as ge}from"./chunk-6I42AM75.js";import"./chunk-4C4THJUD.js";import"./chunk-E26OT26O.js";import"./chunk-6UTZXEW3.js";import"./chunk-4SJDWMH3.js";import{p as G}from"./chunk-FKM35PXF.js";import"./chunk-WZTY3ZYI.js";import{a as be}from"./chunk-3Y5K3IQO.js";import{a as ie,b as oe,c as ce,d as Q,e as U,f as X}from"./chunk-CW57Q264.js";import{a as ne,e as de}from"./chunk-MD67S53Z.js";import{f as W,j as H,o as fe,s as P,v as se}from"./chunk-LPINY2IJ.js";import{a as d,d as re,e as Re,f as $e,g as Ae}from"./chunk-OXFKZ4BM.js";var _=re(Re(),1);var ee=re($e(),1);var a=re(Ae(),1);var Pe=d(l=>{let e=l.trim();if(e==="")return;let n=Number(e);return Number.isFinite(n)&&n>0?Math.floor(n):void 0},"Je"),je=d(l=>l===void 0?"\u2014":new Date(l*1e3).toISOString(),"He"),We=d(l=>new TextEncoder().encode(l).length,"We"),Oe=d(l=>{if(l.trim()!=="")try{return JSON.stringify(JSON.parse(l),void 0,2)}catch{return}},"Ce"),Ie=d(l=>{if(l.trim()==="")return!0;try{return JSON.parse(l),!0}catch{return!1}},"Ee"),Be=[{key:"seconds",seconds:1},{key:"minutes",seconds:60},{key:"hours",seconds:3600},{key:"days",seconds:86400}],Te=d((l,e)=>{let n=l.trim();if(n==="")return"";let s=Number(n),i=Be.find(y=>y.key===e)?.seconds??1;return Number.isFinite(s)&&s>0?String(Math.round(s*i)):n},"ve"),_e=d(l=>{let e=l.trim();if(e==="")return!0;let n=Number(e);return Number.isInteger(n)&&n>=60},"Te"),Le=d((l,e,n,s)=>{let i=Pe(l.ttl);return{expiration:i===void 0?s:void 0,expirationTtl:i,key:e,metadata:l.metadata.trim()===""?void 0:JSON.parse(l.metadata),namespace:n,value:l.value}},"Ke"),De=d(l=>{let e=(0,ee.c)(60),{helper:n,id:s,invalid:i,onChange:y,testId:o}=l,t=W(),[r,h]=(0,_.useState)(""),[m,x]=(0,_.useState)("seconds"),N;e[0]!==y||e[1]!==m?(N=d(C=>{h(C.target.value),y(Te(C.target.value,m))},"x"),e[0]=y,e[1]=m,e[2]=N):N=e[2];let T=N,V;e[3]!==r||e[4]!==y?(V=d(C=>{C!==null&&(x(C),y(Te(r,C)))},"F"),e[3]=r,e[4]=y,e[5]=V):V=e[5];let E=V,c;e[6]!==t?(c=t("days"),e[6]=t,e[7]=c):c=e[7];let u;e[8]!==t?(u=t("hours"),e[8]=t,e[9]=u):u=e[9];let p;e[10]!==t?(p=t("minutes"),e[10]=t,e[11]=p):p=e[11];let b;e[12]!==t?(b=t("seconds"),e[12]=t,e[13]=b):b=e[13];let f;e[14]!==c||e[15]!==u||e[16]!==p||e[17]!==b?(f={days:c,hours:u,minutes:p,seconds:b},e[14]=c,e[15]=u,e[16]=p,e[17]=b,e[18]=f):f=e[18];let w=f,g;e[19]!==t?(g=t("Expires after"),e[19]=t,e[20]=g):g=e[20];let S;e[21]!==s||e[22]!==g?(S=(0,a.jsx)(Y,{className:"text-xs",htmlFor:s,children:g}),e[21]=s,e[22]=g,e[23]=S):S=e[23];let M;e[24]!==t?(M=t("No expiration"),e[24]=t,e[25]=M):M=e[25];let D;e[26]!==r||e[27]!==s||e[28]!==i||e[29]!==T||e[30]!==M||e[31]!==o?(D=(0,a.jsx)(ae,{"aria-invalid":i,className:"flex-1","data-testid":o,id:s,inputMode:"numeric",onChange:T,placeholder:M,value:r}),e[26]=r,e[27]=s,e[28]=i,e[29]=T,e[30]=M,e[31]=o,e[32]=D):D=e[32];let O;e[33]!==t?(O=t("TTL unit"),e[33]=t,e[34]=O):O=e[34];let J=`${o}-unit`,z;e[35]===Symbol.for("react.memo_cache_sentinel")?(z=(0,a.jsx)(Ce,{}),e[35]=z):z=e[35];let I;e[36]!==O||e[37]!==J?(I=(0,a.jsx)(Ee,{"aria-label":O,className:"w-[7.5rem]","data-testid":J,children:z}),e[36]=O,e[37]=J,e[38]=I):I=e[38];let v;e[39]!==w?(v=Be.map(C=>(0,a.jsx)(Fe,{value:C.key,children:w[C.key]},C.key)),e[39]=w,e[40]=v):v=e[40];let k;e[41]!==v?(k=(0,a.jsx)(Ke,{children:v}),e[41]=v,e[42]=k):k=e[42];let K;e[43]!==E||e[44]!==I||e[45]!==k||e[46]!==m?(K=(0,a.jsxs)(Se,{onValueChange:E,value:m,children:[I,k]}),e[43]=E,e[44]=I,e[45]=k,e[46]=m,e[47]=K):K=e[47];let B;e[48]!==D||e[49]!==K?(B=(0,a.jsxs)("div",{className:"flex gap-2",children:[D,K]}),e[48]=D,e[49]=K,e[50]=B):B=e[50];let F;e[51]!==n||e[52]!==i||e[53]!==t||e[54]!==o?(F=i?(0,a.jsx)("p",{className:"text-xs text-destructive","data-testid":`${o}-invalid`,children:t("TTL must be at least 60 seconds.")}):n!==void 0&&(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:n}),e[51]=n,e[52]=i,e[53]=t,e[54]=o,e[55]=F):F=e[55];let L;return e[56]!==B||e[57]!==F||e[58]!==S?(L=(0,a.jsxs)("div",{className:"mb-3 grid gap-1",children:[S,B,F]}),e[56]=B,e[57]=F,e[58]=S,e[59]=L):L=e[59],L},"_e"),ze=d(l=>{let e=(0,ee.c)(36),{id:n,invalidTestId:s,onChange:i,testId:y,valid:o,value:t}=l,r=W(),h;e[0]!==t?(h=Oe(t),e[0]=t,e[1]=h):h=e[1];let m=h,x;e[2]!==r?(x=r("Metadata (JSON)"),e[2]=r,e[3]=x):x=e[3];let N;e[4]!==n||e[5]!==x?(N=(0,a.jsx)(Y,{className:"text-xs",htmlFor:n,children:x}),e[4]=n,e[5]=x,e[6]=N):N=e[6];let T=`${y}-format`,V=m===void 0,E;e[7]!==m||e[8]!==i?(E=d(()=>{m!==void 0&&i(m)},"w"),e[7]=m,e[8]=i,e[9]=E):E=e[9];let c;e[10]!==r?(c=r("Format JSON"),e[10]=r,e[11]=c):c=e[11];let u;e[12]!==T||e[13]!==V||e[14]!==E||e[15]!==c?(u=(0,a.jsx)(R,{"data-testid":T,disabled:V,onClick:E,size:"sm",variant:"outline",children:c}),e[12]=T,e[13]=V,e[14]=E,e[15]=c,e[16]=u):u=e[16];let p;e[17]!==N||e[18]!==u?(p=(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[N,u]}),e[17]=N,e[18]=u,e[19]=p):p=e[19];let b=!o,f;e[20]!==i?(f=d(M=>{i(M.target.value)},"b"),e[20]=i,e[21]=f):f=e[21];let w;e[22]!==n||e[23]!==b||e[24]!==f||e[25]!==y||e[26]!==t?(w=(0,a.jsx)(ue,{"aria-invalid":b,className:"min-h-[4rem] font-mono text-xs","data-testid":y,id:n,onChange:f,value:t}),e[22]=n,e[23]=b,e[24]=f,e[25]=y,e[26]=t,e[27]=w):w=e[27];let g;e[28]!==s||e[29]!==r||e[30]!==o?(g=!o&&(0,a.jsx)("p",{className:"text-xs text-destructive","data-testid":s,children:r("Metadata must be valid JSON.")}),e[28]=s,e[29]=r,e[30]=o,e[31]=g):g=e[31];let S;return e[32]!==w||e[33]!==g||e[34]!==p?(S=(0,a.jsxs)("div",{className:"mb-3 grid gap-1",children:[p,w,g]}),e[32]=w,e[33]=g,e[34]=p,e[35]=S):S=e[35],S},"Fe"),He={busy:!1,error:null,metadata:"",name:"",ttl:"",value:""},qe=d((l,e)=>{switch(e.type){case"setField":return{...l,[e.field]:e.value};case"submitFailed":return{...l,busy:!1,error:e.error};case"submitStart":return{...l,busy:!0,error:null};default:return l}},"Ue"),Ze=d(l=>{let e=(0,ee.c)(73),{namespace:n,onCancel:s,onCreated:i}=l,y=G(),o=W(),[t,r]=(0,_.useReducer)(qe,He),h;e[0]!==t.metadata?(h=Ie(t.metadata),e[0]=t.metadata,e[1]=h):h=e[1];let m=h,x;e[2]!==t.ttl?(x=_e(t.ttl),e[2]=t.ttl,e[3]=x):x=e[3];let N=x,T;e[4]!==m||e[5]!==t.busy||e[6]!==t.name||e[7]!==N?(T=t.name.trim()!==""&&m&&N&&!t.busy,e[4]=m,e[5]=t.busy,e[6]=t.name,e[7]=N,e[8]=T):T=e[8];let V=T,E;e[9]!==V||e[10]!==y||e[11]!==n||e[12]!==i||e[13]!==t.metadata||e[14]!==t.name||e[15]!==t.ttl||e[16]!==t.value?(E=d(()=>{V&&(r({type:"submitStart"}),P((async()=>{try{await y.putKvValue(Le({metadata:t.metadata,ttl:t.ttl,value:t.value},t.name,n)),i()}catch(A){r({error:H(A),type:"submitFailed"})}})()))},"w"),e[9]=V,e[10]=y,e[11]=n,e[12]=i,e[13]=t.metadata,e[14]=t.name,e[15]=t.ttl,e[16]=t.value,e[17]=E):E=e[17];let c=E,u;e[18]!==o?(u=o("Key name"),e[18]=o,e[19]=u):u=e[19];let p;e[20]!==u?(p=(0,a.jsx)(Y,{className:"text-xs",htmlFor:"kv-create-name",children:u}),e[20]=u,e[21]=p):p=e[21];let b;e[22]===Symbol.for("react.memo_cache_sentinel")?(b=d(A=>{r({field:"name",type:"setField",value:A.target.value})},"y"),e[22]=b):b=e[22];let f;e[23]!==o?(f=o("Key name"),e[23]=o,e[24]=f):f=e[24];let w;e[25]!==t.name||e[26]!==f?(w=(0,a.jsx)(ae,{autoFocus:!0,"data-testid":"kv-create-name",id:"kv-create-name",onChange:b,placeholder:f,value:t.name}),e[25]=t.name,e[26]=f,e[27]=w):w=e[27];let g;e[28]!==p||e[29]!==w?(g=(0,a.jsxs)("div",{className:"grid gap-1",children:[p,w]}),e[28]=p,e[29]=w,e[30]=g):g=e[30];let S;e[31]!==o?(S=o("Value"),e[31]=o,e[32]=S):S=e[32];let M;e[33]!==S?(M=(0,a.jsx)(Y,{className:"text-xs",htmlFor:"kv-create-value",children:S}),e[33]=S,e[34]=M):M=e[34];let D;e[35]===Symbol.for("react.memo_cache_sentinel")?(D=d(A=>{r({field:"value",type:"setField",value:A.target.value})},"B"),e[35]=D):D=e[35];let O;e[36]!==t.value?(O=(0,a.jsx)(ue,{className:"min-h-[6rem] font-mono text-xs","data-testid":"kv-create-value",id:"kv-create-value",onChange:D,value:t.value}),e[36]=t.value,e[37]=O):O=e[37];let J;e[38]!==M||e[39]!==O?(J=(0,a.jsxs)("div",{className:"grid gap-1",children:[M,O]}),e[38]=M,e[39]=O,e[40]=J):J=e[40];let z=!N,I;e[41]===Symbol.for("react.memo_cache_sentinel")?(I=d(A=>{r({field:"ttl",type:"setField",value:A})},"L"),e[41]=I):I=e[41];let v;e[42]!==z?(v=(0,a.jsx)(De,{id:"kv-create-ttl",invalid:z,onChange:I,testId:"kv-create-ttl"}),e[42]=z,e[43]=v):v=e[43];let k;e[44]===Symbol.for("react.memo_cache_sentinel")?(k=d(A=>{r({field:"metadata",type:"setField",value:A})},"h"),e[44]=k):k=e[44];let K;e[45]!==m||e[46]!==t.metadata?(K=(0,a.jsx)(ze,{id:"kv-create-metadata",invalidTestId:"kv-create-metadata-invalid",onChange:k,testId:"kv-create-metadata",valid:m,value:t.metadata}),e[45]=m,e[46]=t.metadata,e[47]=K):K=e[47];let B=!V,F;e[48]!==t.busy||e[49]!==o?(F=t.busy?o("Creating\u2026"):o("Create key"),e[48]=t.busy,e[49]=o,e[50]=F):F=e[50];let L;e[51]!==c||e[52]!==B||e[53]!==F?(L=(0,a.jsx)(R,{"data-testid":"kv-create-submit",disabled:B,onClick:c,children:F}),e[51]=c,e[52]=B,e[53]=F,e[54]=L):L=e[54];let C=t.busy,$;e[55]!==o?($=o("Cancel"),e[55]=o,e[56]=$):$=e[56];let j;e[57]!==s||e[58]!==t.busy||e[59]!==$?(j=(0,a.jsx)(R,{"data-testid":"kv-create-cancel",disabled:C,onClick:s,variant:"outline",children:$}),e[57]=s,e[58]=t.busy,e[59]=$,e[60]=j):j=e[60];let q;e[61]!==L||e[62]!==j?(q=(0,a.jsxs)("div",{className:"flex flex-wrap gap-2",children:[L,j]}),e[61]=L,e[62]=j,e[63]=q):q=e[63];let Z;e[64]!==t.error?(Z=t.error!==null&&(0,a.jsx)("p",{className:"text-sm text-destructive","data-testid":"kv-create-error",role:"alert",children:t.error}),e[64]=t.error,e[65]=Z):Z=e[65];let te;return e[66]!==g||e[67]!==J||e[68]!==v||e[69]!==K||e[70]!==q||e[71]!==Z?(te=(0,a.jsxs)("div",{className:"grid gap-3 px-4 pb-4","data-testid":"kv-create-form",children:[g,J,v,K,q,Z]}),e[66]=g,e[67]=J,e[68]=v,e[69]=K,e[70]=q,e[71]=Z,e[72]=te):te=e[72],te},"Ze"),le=33,Ve=600,Ye=d(l=>{for(let e=l?.parentElement??null;e!==null;e=e.parentElement){let{overflowY:n}=getComputedStyle(e);if(n==="auto"||n==="scroll")return e}return document.scrollingElement},"qe"),Je=d((l,e,n)=>{if(l===null||typeof ResizeObserver>"u")return;let s=new ResizeObserver(n),i=[];for(let t=l;t!==null&&t!==e;t=t.parentElement)i.push(t);let y=d(()=>{s.disconnect();for(let t of i)for(let r=t.previousElementSibling;r!==null;r=r.previousElementSibling)s.observe(r)},"v");y();let o=typeof MutationObserver>"u"?void 0:new MutationObserver(()=>{y(),n()});for(let t of i)t.parentElement!==null&&o?.observe(t.parentElement,{childList:!0});return()=>{o?.disconnect(),s.disconnect()}},"Ve"),ke=d(l=>l.scrollElement===document.scrollingElement,"ae"),Ge=d((l,e,n)=>{let s=l.targetWindow;if(!s)return;let i=d(r=>{e(Math.max(0,-(n()?.getBoundingClientRect().top??0)),r)},"i"),y=d(()=>{i(!0)},"v"),o=d(()=>{i(!1)},"d");i(!1),s.addEventListener("scroll",y,{passive:!0}),s.addEventListener("scrollend",o);let t=Je(n(),null,o);return()=>{t?.(),s.removeEventListener("scroll",y),s.removeEventListener("scrollend",o)}},"Ge"),Qe=d((l,e)=>{let n=l.targetWindow;if(!n)return;let s=d(()=>{e({height:n.innerHeight,width:n.innerWidth})},"s");return s(),n.addEventListener("resize",s),()=>{n.removeEventListener("resize",s)}},"Ye"),Ue=d(({allSelected:l,bulkSelected:e,keys:n,onSelectKey:s,onToggleAll:i,onToggleBulk:y,selectedKey:o})=>{let t=W(),r=(0,_.useRef)(null),h=(0,_.useRef)(null),m=Ne({count:n.length,estimateSize:d(()=>le,"estimateSize"),getItemKey:d(c=>n[c]?.name??c,"getItemKey"),getScrollElement:d(()=>Ye(r.current),"getScrollElement"),initialRect:{height:Ve,width:800},observeElementOffset:d((c,u)=>{if(ke(c))return Ge(c,u,()=>r.current);let p=d(w=>{let g=c.scrollElement,S=r.current;u(g&&S?Math.max(0,g.getBoundingClientRect().top-S.getBoundingClientRect().top):0,w)},"f"),b=xe(c,(w,g)=>{p(g)}),f=Je(r.current,c.scrollElement,()=>{p(!1)});return()=>{f?.(),b?.()}},"observeElementOffset"),observeElementRect:d((c,u)=>ke(c)?Qe(c,u):we(c,u,Ve),"observeElementRect"),overscan:12}),x=m.getVirtualItems(),N=x[0]?.start??0,T=m.getTotalSize()-(x.at(-1)?.end??0),V=d(c=>{let u=c.key==="Tab"&&c.target instanceof Element?c.target.closest("[data-index]"):null;if(u===null)return;let p=c.shiftKey?-1:1,b=(h.current?.index??Number(u.dataset.index))+p,f=n[b];f===void 0||h.current===null&&u.parentElement?.querySelector(`[data-index="${String(b)}"]`)||(c.preventDefault(),h.current={index:b,name:f.name},ke(m)?m.targetWindow?.scrollBy(0,p*le):m.scrollElement?.scrollBy(0,p*le))},"F");(0,_.useEffect)(()=>{let c=h.current?.name,u=(c===void 0?void 0:[...r.current?.querySelectorAll("[data-key]")??[]].find(p=>p.dataset.key===c))?.querySelector('[data-testid^="kv-select-"]');u&&(h.current=null,u.focus())});let E=0;for(let c of n)E=Math.max(E,c.name.length);return(0,a.jsxs)(ie,{"data-testid":"kv-key-table",children:[(0,a.jsx)(oe,{children:(0,a.jsxs)(Q,{children:[(0,a.jsx)(U,{className:"w-10",children:(0,a.jsx)(me,{"aria-label":t("Select all"),checked:l,"data-testid":"kv-select-all",onCheckedChange:i})}),(0,a.jsx)(U,{children:t("Key")}),(0,a.jsx)(U,{children:t("Expiration")})]})}),(0,a.jsxs)(ce,{onKeyDown:V,ref:r,children:[N>0&&(0,a.jsx)("tr",{"aria-hidden":"true",style:{height:N}}),x.map(c=>{let u=n[c.index];return u===void 0?null:(0,a.jsxs)(Q,{className:u.name===o?"border-l-2 border-l-royal-amethyst bg-muted/50":"cursor-pointer","data-index":c.index,"data-key":u.name,"data-testid":`kv-key-row-${u.name}`,onClick:s,style:{height:le},children:[(0,a.jsx)(X,{onClick:d(p=>{p.stopPropagation()},"onClick"),children:(0,a.jsx)(me,{"aria-label":t("Select {name}",{name:u.name}),checked:e.has(u.name),"data-testid":`kv-select-${u.name}`,onCheckedChange:d(()=>{y(u.name)},"onCheckedChange")})}),(0,a.jsx)(X,{className:"font-mono text-xs",style:{width:`${String(E)}ch`},children:u.name}),(0,a.jsx)(X,{className:"tabular-nums text-xs",children:je(u.expiration)})]},u.name)}),T>0&&(0,a.jsx)("tr",{"aria-hidden":"true",style:{height:T}})]})]})},"Qe"),Xe={busy:"",editedMetadata:"",editedTtl:"",editedValue:"",loadError:null,loading:!0,value:null,writeError:null},et=d((l,e)=>{switch(e.type){case"deleteStart":return{...l,busy:"deleting",writeError:null};case"editMetadata":return{...l,editedMetadata:e.value};case"editTtl":return{...l,editedTtl:e.value};case"editValue":return{...l,editedValue:e.value};case"loaded":return{...l,editedMetadata:e.metadata===null||e.metadata===void 0?"":JSON.stringify(e.metadata,null,2),editedValue:e.value??"",loading:!1,value:e.value};case"loadFailed":return{...l,loadError:e.error,loading:!1};case"saveOk":return{...l,busy:"",value:l.editedValue};case"saveStart":return{...l,busy:"saving",writeError:null};case"writeFailed":return{...l,busy:"",writeError:e.error};default:return l}},"et"),tt=d(l=>{let e=(0,ee.c)(67),{expiration:n,keyName:s,namespace:i,onDeleted:y}=l,o=G(),t=W(),[r,h]=(0,_.useReducer)(et,Xe),m,x;e[0]!==o||e[1]!==s||e[2]!==i?(m=d(()=>{let C={cancelled:!1};return P((async()=>{try{let $=await o.getKvValue({key:s,namespace:i});C.cancelled||h({metadata:$.metadata,type:"loaded",value:$.value})}catch($){let j=$;C.cancelled||h({error:H(j),type:"loadFailed"})}})()),()=>{C.cancelled=!0}},"c"),x=[o,i,s],e[0]=o,e[1]=s,e[2]=i,e[3]=m,e[4]=x):(m=e[3],x=e[4]),(0,_.useEffect)(m,x);let N;e[5]===Symbol.for("react.memo_cache_sentinel")?(N=d(C=>{h({type:"editValue",value:C.target.value})},"x"),e[5]=N):N=e[5];let T=N,V;e[6]===Symbol.for("react.memo_cache_sentinel")?(V=d(C=>{h({type:"editMetadata",value:C})},"F"),e[6]=V):V=e[6];let E=V,c;e[7]!==r.editedValue?(c=Oe(r.editedValue),e[7]=r.editedValue,e[8]=c):c=e[8];let u=c,p;e[9]!==r.editedMetadata?(p=Ie(r.editedMetadata),e[9]=r.editedMetadata,e[10]=p):p=e[10];let b=p,f;e[11]!==r.editedTtl?(f=_e(r.editedTtl),e[11]=r.editedTtl,e[12]=f):f=e[12];let w=f,g;e[13]!==u?(g=d(()=>{u!==void 0&&h({type:"editValue",value:u})},"g"),e[13]=u,e[14]=g):g=e[14];let S=g,M;e[15]!==o||e[16]!==n||e[17]!==s||e[18]!==b||e[19]!==i||e[20]!==r.editedMetadata||e[21]!==r.editedTtl||e[22]!==r.editedValue||e[23]!==t?(M=d(()=>{if(!b){h({error:t("Metadata must be valid JSON."),type:"writeFailed"});return}h({type:"saveStart"}),P((async()=>{try{await o.putKvValue(Le({metadata:r.editedMetadata,ttl:r.editedTtl,value:r.editedValue},s,i,n)),h({type:"saveOk"})}catch(C){h({error:H(C),type:"writeFailed"})}})())},"V"),e[15]=o,e[16]=n,e[17]=s,e[18]=b,e[19]=i,e[20]=r.editedMetadata,e[21]=r.editedTtl,e[22]=r.editedValue,e[23]=t,e[24]=M):M=e[24];let D=M,O;e[25]!==o||e[26]!==s||e[27]!==i||e[28]!==y?(O=d(()=>{h({type:"deleteStart"}),P((async()=>{try{await o.deleteKvKey({key:s,namespace:i}),y(s)}catch(C){h({error:H(C),type:"writeFailed"})}})())},"I"),e[25]=o,e[26]=s,e[27]=i,e[28]=y,e[29]=O):O=e[29];let J=O,z;e[30]!==s?(z=d(()=>{se(s)},"D"),e[30]=s,e[31]=z):z=e[31];let I;e[32]!==t?(I=t("Copy key"),e[32]=t,e[33]=I):I=e[33];let v;e[34]!==z||e[35]!==I?(v=(0,a.jsx)("div",{className:"mb-2 flex justify-end",children:(0,a.jsx)(R,{"data-testid":"kv-copy-key-btn",onClick:z,size:"sm",variant:"outline",children:I})}),e[34]=z,e[35]=I,e[36]=v):v=e[36];let k;e[37]!==r.loadError?(k=r.loadError!==null&&(0,a.jsx)("p",{className:"mb-2 text-sm text-destructive","data-testid":"kv-value-error",role:"alert",children:r.loadError}),e[37]=r.loadError,e[38]=k):k=e[38];let K;e[39]!==r.loading||e[40]!==t?(K=r.loading&&(0,a.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"kv-value-loading",children:t("Loading\u2026")}),e[39]=r.loading,e[40]=t,e[41]=K):K=e[41];let B;e[42]!==u||e[43]!==b||e[44]!==J||e[45]!==S||e[46]!==D||e[47]!==r.busy||e[48]!==r.editedMetadata||e[49]!==r.editedValue||e[50]!==r.loading||e[51]!==r.value||e[52]!==r.writeError||e[53]!==t||e[54]!==w?(B=!r.loading&&r.value!==null&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"mb-1 flex flex-wrap items-center gap-2",children:[(0,a.jsx)(Y,{className:"text-xs",htmlFor:"kv-value-editor",children:t("Value")}),u!==void 0&&(0,a.jsx)(ge,{variant:"secondary",children:t("JSON")}),(0,a.jsx)("span",{className:"ml-auto text-xs tabular-nums text-muted-foreground","data-testid":"kv-value-size",children:fe(We(r.editedValue))})]}),(0,a.jsx)("textarea",{"aria-label":t("KV value"),className:"mb-2 min-h-[8rem] w-full rounded border border-border bg-muted/30 p-2 font-mono text-xs","data-testid":"kv-value-editor",id:"kv-value-editor",onChange:T,value:r.editedValue}),(0,a.jsxs)("div",{className:"mb-3 flex flex-wrap gap-2",children:[(0,a.jsx)(R,{"data-testid":"kv-format-btn",disabled:u===void 0,onClick:S,size:"sm",variant:"outline",children:t("Format JSON")}),(0,a.jsx)(R,{"data-testid":"kv-copy-value-btn",onClick:d(()=>{se(r.editedValue)},"onClick"),size:"sm",variant:"outline",children:t("Copy value")})]}),(0,a.jsx)(De,{helper:t("Leave blank to keep the current expiration."),id:"kv-ttl-input",invalid:!w,onChange:d(C=>{h({type:"editTtl",value:C})},"onChange"),testId:"kv-ttl-input"}),(0,a.jsx)(ze,{id:"kv-metadata-editor",invalidTestId:"kv-metadata-invalid",onChange:E,testId:"kv-metadata-editor",valid:b,value:r.editedMetadata}),(0,a.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,a.jsx)(R,{"data-testid":"kv-save-btn",disabled:r.busy!==""||!b||!w,onClick:D,children:r.busy==="saving"?t("Saving\u2026"):t("Save")}),(0,a.jsx)(R,{"data-testid":"kv-delete-btn",disabled:r.busy!=="",onClick:J,variant:"destructive",children:r.busy==="deleting"?t("Deleting\u2026"):t("Delete")})]}),r.writeError!==null&&(0,a.jsx)("p",{className:"mt-2 text-sm text-destructive","data-testid":"kv-save-error",role:"alert",children:r.writeError})]}),e[42]=u,e[43]=b,e[44]=J,e[45]=S,e[46]=D,e[47]=r.busy,e[48]=r.editedMetadata,e[49]=r.editedValue,e[50]=r.loading,e[51]=r.value,e[52]=r.writeError,e[53]=t,e[54]=w,e[55]=B):B=e[55];let F;e[56]!==r.loadError||e[57]!==r.loading||e[58]!==r.value||e[59]!==t?(F=!r.loading&&r.value===null&&r.loadError===null&&(0,a.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"kv-absent",children:t("Key is absent or has no value.")}),e[56]=r.loadError,e[57]=r.loading,e[58]=r.value,e[59]=t,e[60]=F):F=e[60];let L;return e[61]!==v||e[62]!==k||e[63]!==K||e[64]!==B||e[65]!==F?(L=(0,a.jsxs)("div",{className:"px-4 pb-4","data-testid":"kv-value-section",children:[v,k,K,B,F]}),e[61]=v,e[62]=k,e[63]=K,e[64]=B,e[65]=F,e[66]=L):L=e[66],L},"tt"),Me=100,at={appliedPrefix:"",bulk:[],bulkBusy:!1,bulkError:null,cursor:null,keys:null,listComplete:!1,loadError:null,loading:!1,prefixInput:"",reloadNonce:0,selectedKey:null},lt=d((l,e)=>{switch(e.type){case"appendPage":return e.generation!==l.reloadNonce?l:{...l,cursor:e.cursor,keys:[...l.keys??[],...e.keys],listComplete:e.listComplete,loading:!1};case"applyFilter":return{...l,appliedPrefix:l.prefixInput,bulk:[],bulkError:null,cursor:null,keys:null,listComplete:!1,reloadNonce:l.reloadNonce+1,selectedKey:null};case"bulkDeleted":{let n=new Set(e.deleted);return{...l,bulk:l.bulk.filter(s=>!n.has(s)),bulkBusy:!1,bulkError:e.error,keys:l.keys===null?null:l.keys.filter(s=>!n.has(s.name)),selectedKey:l.selectedKey!==null&&n.has(l.selectedKey)?null:l.selectedKey}}case"bulkDeleteStart":return{...l,bulkBusy:!0,bulkError:null};case"firstPage":return{...l,cursor:e.cursor,keys:e.keys,listComplete:e.listComplete,loading:!1};case"keyDeleted":return{...l,bulk:l.bulk.filter(n=>n!==e.name),keys:l.keys===null?null:l.keys.filter(n=>n.name!==e.name),selectedKey:null};case"loadFailed":return e.generation!==void 0&&e.generation!==l.reloadNonce?l:{...l,loadError:e.error,loading:!1};case"loadStart":return{...l,loadError:null,loading:!0};case"prefixInput":return{...l,prefixInput:e.value};case"reload":return{...l,bulk:[],bulkError:null,reloadNonce:l.reloadNonce+1,selectedKey:null};case"selectKey":return{...l,selectedKey:e.name};case"toggleAllBulk":return{...l,bulk:e.names};case"toggleBulk":return{...l,bulk:l.bulk.includes(e.name)?l.bulk.filter(n=>n!==e.name):[...l.bulk,e.name]};default:return l}},"rt"),rt=d(({namespace:l})=>{let e=G(),n=W(),[s,i]=(0,_.useReducer)(lt,at),{appliedPrefix:y,bulk:o,bulkBusy:t,bulkError:r,cursor:h,keys:m,listComplete:x,loadError:N,loading:T,prefixInput:V,reloadNonce:E,selectedKey:c}=s,[u,p]=(0,_.useState)(!1);(0,_.useEffect)(()=>{let v={cancelled:!1};return P((async()=>{i({type:"loadStart"});try{let k=await e.listKvKeys({limit:Me,namespace:l,prefix:y===""?void 0:y});v.cancelled||i({cursor:k.cursor??null,keys:k.keys,listComplete:k.listComplete,type:"firstPage"})}catch(k){v.cancelled||i({error:H(k),type:"loadFailed"})}})()),()=>{v.cancelled=!0}},[e,l,y,E]);let b=d(v=>{i({type:"prefixInput",value:v.target.value})},"y"),f=d(()=>{i({type:"applyFilter"})},"b"),w=d(v=>{i({name:v.currentTarget.dataset.key??null,type:"selectKey"})},"N"),g=d(()=>{if(h===null)return;i({type:"loadStart"});let v=E;P((async()=>{try{let k=await e.listKvKeys({cursor:h,limit:Me,namespace:l,prefix:y===""?void 0:y});i({cursor:k.cursor??null,generation:v,keys:k.keys,listComplete:k.listComplete,type:"appendPage"})}catch(k){i({error:H(k),generation:v,type:"loadFailed"})}})())},"g"),S=d(v=>{i({name:v,type:"keyDeleted"})},"S"),M=d(v=>{i({name:v,type:"toggleBulk"})},"V"),D=d(v=>{i({names:v&&m!==null?m.map(k=>k.name):[],type:"toggleAllBulk"})},"B"),O=d(()=>{if(o.length===0)return;let v=[...o];i({type:"bulkDeleteStart"}),P((async()=>{let k=await Promise.allSettled(v.map(F=>e.deleteKvKey({key:F,namespace:l}))),K=v.filter((F,L)=>k[L]?.status==="fulfilled"),B=v.length-K.length;i({deleted:K,error:B>0?n("Failed to delete {count} keys.",{count:B}):null,type:"bulkDeleted"})})())},"I"),J=d(()=>{p(!1),i({type:"reload"})},"A"),z=m!==null&&m.length>0&&o.length===m.length,I=new Set(o);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("section",{className:"border border-border bg-card p-3","data-testid":"kv-keys-section",children:[(0,a.jsxs)("div",{className:"mb-3 flex flex-wrap items-center gap-2",children:[(0,a.jsx)(ae,{"aria-label":n("Filter keys by prefix"),className:"min-w-[16rem] flex-1","data-testid":"kv-prefix-input",onChange:b,placeholder:n("Filter by prefix\u2026"),value:V}),(0,a.jsx)(R,{"data-testid":"kv-filter-btn",disabled:T,onClick:f,children:n("Filter")}),(0,a.jsx)(R,{"data-testid":"kv-new-key-btn",onClick:d(()=>{p(v=>!v)},"onClick"),variant:"outline",children:n("New key")}),o.length>0&&(0,a.jsx)(R,{"data-testid":"kv-bulk-delete-btn",disabled:t,onClick:O,variant:"destructive",children:t?n("Deleting\u2026"):n("Delete {count}",{count:o.length})})]}),r!==null&&(0,a.jsx)("p",{className:"mb-2 text-sm text-destructive","data-testid":"kv-bulk-error",role:"alert",children:r}),N!==null&&(0,a.jsx)("p",{className:"text-sm text-destructive","data-testid":"kv-keys-error",role:"alert",children:N}),m!==null&&m.length===0&&!T&&(0,a.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"kv-no-keys",children:n("No keys.")}),m!==null&&m.length>0&&(0,a.jsx)(ne,{className:"overflow-hidden py-0",children:(0,a.jsx)(de,{className:"px-0",children:(0,a.jsx)(Ue,{allSelected:z,bulkSelected:I,keys:m,onSelectKey:w,onToggleAll:D,onToggleBulk:M,selectedKey:c})})}),!x&&h!==null&&(0,a.jsx)("div",{className:"mt-2",children:(0,a.jsx)(R,{"data-testid":"kv-load-more",disabled:T,onClick:g,variant:"outline",children:n(T?"Loading\u2026":"Load more")})})]}),(0,a.jsx)(ve,{onOpenChange:d(v=>{v||p(!1)},"onOpenChange"),open:u,children:(0,a.jsxs)(pe,{className:"w-full gap-0 overflow-y-auto sm:max-w-md","data-testid":"kv-create-sheet",side:"right",children:[(0,a.jsx)(ye,{children:(0,a.jsx)(he,{children:n("New key")})}),(0,a.jsx)(Ze,{namespace:l,onCancel:d(()=>{p(!1)},"onCancel"),onCreated:J})]})}),(0,a.jsx)(ve,{onOpenChange:d(v=>{v||i({name:null,type:"selectKey"})},"onOpenChange"),open:c!==null,children:(0,a.jsxs)(pe,{className:"w-full gap-0 overflow-y-auto sm:max-w-md","data-testid":"kv-editor-sheet",side:"right",children:[(0,a.jsx)(ye,{children:(0,a.jsx)(he,{className:"truncate font-mono text-xs",children:c})}),c!==null&&(0,a.jsx)(tt,{expiration:m?.find(v=>v.name===c)?.expiration,keyName:c,namespace:l,onDeleted:S},`${l}:${c}`)]})})]})},"at"),xt=d(({loadNamespaces:l}={})=>{let e=G(),n=W(),[s,i]=(0,_.useState)(null),[y,o]=(0,_.useState)(null),[t,r]=(0,_.useState)(null);(0,_.useEffect)(()=>{let m={cancelled:!1};return P((async()=>{try{let x=await(l??(()=>e.listKvNamespaces()))();m.cancelled||(i(x),o(null),r(N=>N??x[0]?.binding??null))}catch(x){m.cancelled||(i(null),o(H(x)))}})()),()=>{m.cancelled=!0}},[e,l]);let h=d(m=>{r(m.currentTarget.dataset.ns??null)},"p");return(0,a.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-kv-browser",children:[y!==null&&(0,a.jsx)("p",{className:"text-sm text-destructive","data-testid":"kv-ns-error",role:"alert",children:y}),s!==null&&s.length===0&&(0,a.jsx)(be,{description:n("Add a kv_namespaces binding to wrangler.jsonc \u2014 it appears here automatically, no wiring needed."),icon:(0,a.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:(0,a.jsx)("path",{d:"M5 5h14v4H5V5Zm0 5h14v4H5v-4Zm0 5h14v4H5v-4Z"})}),testId:"kv-empty",title:n("No KV namespaces.")}),s!==null&&s.length>0&&(0,a.jsx)(ne,{className:"overflow-hidden py-0",children:(0,a.jsx)(de,{className:"px-0",children:(0,a.jsxs)(ie,{"data-testid":"kv-namespace-table",children:[(0,a.jsx)(oe,{children:(0,a.jsx)(Q,{children:(0,a.jsx)(U,{children:n("Namespace")})})}),(0,a.jsx)(ce,{children:s.map(m=>(0,a.jsx)(Q,{className:m.binding===t?"border-l-2 border-l-royal-amethyst bg-muted/50":"cursor-pointer","data-ns":m.binding,"data-testid":`kv-ns-row-${m.binding}`,onClick:h,children:(0,a.jsx)(X,{className:"font-mono text-xs",children:m.binding})},m.binding))})]})})}),t!==null&&(0,a.jsx)(rt,{namespace:t},t)]})},"Et");export{xt as KvBrowser};
|
|
1
|
+
import{a as we}from"./chunk-X74GEPSG.js";import{b as xe,c as Ne}from"./chunk-4SQBAPY6.js";import{a as Se,b as Ce,c as Ee,d as Ke,e as Fe}from"./chunk-FLVDICZL.js";import"./chunk-A566HCBX.js";import"./chunk-LIGOLZND.js";import{a as ue}from"./chunk-P6L6ABWO.js";import{a as me}from"./chunk-YJWR6ZWC.js";import{a as Y}from"./chunk-OUFWXYEF.js";import{g as ve,h as pe,i as ye,j as he}from"./chunk-LVNPLZDL.js";import"./chunk-YHTHRYP5.js";import"./chunk-5IGDDSST.js";import"./chunk-DX55P3KZ.js";import"./chunk-AP4PC2M4.js";import"./chunk-KRPXOSBL.js";import"./chunk-W2BCSK5S.js";import"./chunk-HKLF627N.js";import"./chunk-NGVP66OH.js";import"./chunk-XYR5NST4.js";import"./chunk-DBVJ5VLI.js";import"./chunk-6M7FLLMT.js";import"./chunk-LUHXNZI4.js";import"./chunk-ZTOREMGH.js";import{i as ae}from"./chunk-SDQH4HR6.js";import"./chunk-W7MRISE3.js";import"./chunk-IBJVVHV5.js";import{a as R}from"./chunk-2O6KKVH2.js";import"./chunk-JTGGWF7R.js";import"./chunk-ZBON5T5A.js";import{b as ge}from"./chunk-6I42AM75.js";import"./chunk-4C4THJUD.js";import"./chunk-E26OT26O.js";import"./chunk-6UTZXEW3.js";import"./chunk-W37HRJGQ.js";import{p as G}from"./chunk-SDSQIQJG.js";import"./chunk-WZTY3ZYI.js";import{a as be}from"./chunk-3Y5K3IQO.js";import{a as ie,b as oe,c as ce,d as Q,e as U,f as X}from"./chunk-CW57Q264.js";import{a as ne,e as de}from"./chunk-MD67S53Z.js";import{f as W,j as H,o as fe,s as P,v as se}from"./chunk-LPINY2IJ.js";import{a as d,d as re,e as Re,f as $e,g as Ae}from"./chunk-OXFKZ4BM.js";var _=re(Re(),1);var ee=re($e(),1);var a=re(Ae(),1);var Pe=d(l=>{let e=l.trim();if(e==="")return;let n=Number(e);return Number.isFinite(n)&&n>0?Math.floor(n):void 0},"Je"),je=d(l=>l===void 0?"\u2014":new Date(l*1e3).toISOString(),"He"),We=d(l=>new TextEncoder().encode(l).length,"We"),Oe=d(l=>{if(l.trim()!=="")try{return JSON.stringify(JSON.parse(l),void 0,2)}catch{return}},"Ce"),Ie=d(l=>{if(l.trim()==="")return!0;try{return JSON.parse(l),!0}catch{return!1}},"Ee"),Be=[{key:"seconds",seconds:1},{key:"minutes",seconds:60},{key:"hours",seconds:3600},{key:"days",seconds:86400}],Te=d((l,e)=>{let n=l.trim();if(n==="")return"";let s=Number(n),i=Be.find(y=>y.key===e)?.seconds??1;return Number.isFinite(s)&&s>0?String(Math.round(s*i)):n},"ve"),_e=d(l=>{let e=l.trim();if(e==="")return!0;let n=Number(e);return Number.isInteger(n)&&n>=60},"Te"),Le=d((l,e,n,s)=>{let i=Pe(l.ttl);return{expiration:i===void 0?s:void 0,expirationTtl:i,key:e,metadata:l.metadata.trim()===""?void 0:JSON.parse(l.metadata),namespace:n,value:l.value}},"Ke"),De=d(l=>{let e=(0,ee.c)(60),{helper:n,id:s,invalid:i,onChange:y,testId:o}=l,t=W(),[r,h]=(0,_.useState)(""),[m,x]=(0,_.useState)("seconds"),N;e[0]!==y||e[1]!==m?(N=d(C=>{h(C.target.value),y(Te(C.target.value,m))},"x"),e[0]=y,e[1]=m,e[2]=N):N=e[2];let T=N,V;e[3]!==r||e[4]!==y?(V=d(C=>{C!==null&&(x(C),y(Te(r,C)))},"F"),e[3]=r,e[4]=y,e[5]=V):V=e[5];let E=V,c;e[6]!==t?(c=t("days"),e[6]=t,e[7]=c):c=e[7];let u;e[8]!==t?(u=t("hours"),e[8]=t,e[9]=u):u=e[9];let p;e[10]!==t?(p=t("minutes"),e[10]=t,e[11]=p):p=e[11];let b;e[12]!==t?(b=t("seconds"),e[12]=t,e[13]=b):b=e[13];let f;e[14]!==c||e[15]!==u||e[16]!==p||e[17]!==b?(f={days:c,hours:u,minutes:p,seconds:b},e[14]=c,e[15]=u,e[16]=p,e[17]=b,e[18]=f):f=e[18];let w=f,g;e[19]!==t?(g=t("Expires after"),e[19]=t,e[20]=g):g=e[20];let S;e[21]!==s||e[22]!==g?(S=(0,a.jsx)(Y,{className:"text-xs",htmlFor:s,children:g}),e[21]=s,e[22]=g,e[23]=S):S=e[23];let M;e[24]!==t?(M=t("No expiration"),e[24]=t,e[25]=M):M=e[25];let D;e[26]!==r||e[27]!==s||e[28]!==i||e[29]!==T||e[30]!==M||e[31]!==o?(D=(0,a.jsx)(ae,{"aria-invalid":i,className:"flex-1","data-testid":o,id:s,inputMode:"numeric",onChange:T,placeholder:M,value:r}),e[26]=r,e[27]=s,e[28]=i,e[29]=T,e[30]=M,e[31]=o,e[32]=D):D=e[32];let O;e[33]!==t?(O=t("TTL unit"),e[33]=t,e[34]=O):O=e[34];let J=`${o}-unit`,z;e[35]===Symbol.for("react.memo_cache_sentinel")?(z=(0,a.jsx)(Ce,{}),e[35]=z):z=e[35];let I;e[36]!==O||e[37]!==J?(I=(0,a.jsx)(Ee,{"aria-label":O,className:"w-[7.5rem]","data-testid":J,children:z}),e[36]=O,e[37]=J,e[38]=I):I=e[38];let v;e[39]!==w?(v=Be.map(C=>(0,a.jsx)(Fe,{value:C.key,children:w[C.key]},C.key)),e[39]=w,e[40]=v):v=e[40];let k;e[41]!==v?(k=(0,a.jsx)(Ke,{children:v}),e[41]=v,e[42]=k):k=e[42];let K;e[43]!==E||e[44]!==I||e[45]!==k||e[46]!==m?(K=(0,a.jsxs)(Se,{onValueChange:E,value:m,children:[I,k]}),e[43]=E,e[44]=I,e[45]=k,e[46]=m,e[47]=K):K=e[47];let B;e[48]!==D||e[49]!==K?(B=(0,a.jsxs)("div",{className:"flex gap-2",children:[D,K]}),e[48]=D,e[49]=K,e[50]=B):B=e[50];let F;e[51]!==n||e[52]!==i||e[53]!==t||e[54]!==o?(F=i?(0,a.jsx)("p",{className:"text-xs text-destructive","data-testid":`${o}-invalid`,children:t("TTL must be at least 60 seconds.")}):n!==void 0&&(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:n}),e[51]=n,e[52]=i,e[53]=t,e[54]=o,e[55]=F):F=e[55];let L;return e[56]!==B||e[57]!==F||e[58]!==S?(L=(0,a.jsxs)("div",{className:"mb-3 grid gap-1",children:[S,B,F]}),e[56]=B,e[57]=F,e[58]=S,e[59]=L):L=e[59],L},"_e"),ze=d(l=>{let e=(0,ee.c)(36),{id:n,invalidTestId:s,onChange:i,testId:y,valid:o,value:t}=l,r=W(),h;e[0]!==t?(h=Oe(t),e[0]=t,e[1]=h):h=e[1];let m=h,x;e[2]!==r?(x=r("Metadata (JSON)"),e[2]=r,e[3]=x):x=e[3];let N;e[4]!==n||e[5]!==x?(N=(0,a.jsx)(Y,{className:"text-xs",htmlFor:n,children:x}),e[4]=n,e[5]=x,e[6]=N):N=e[6];let T=`${y}-format`,V=m===void 0,E;e[7]!==m||e[8]!==i?(E=d(()=>{m!==void 0&&i(m)},"w"),e[7]=m,e[8]=i,e[9]=E):E=e[9];let c;e[10]!==r?(c=r("Format JSON"),e[10]=r,e[11]=c):c=e[11];let u;e[12]!==T||e[13]!==V||e[14]!==E||e[15]!==c?(u=(0,a.jsx)(R,{"data-testid":T,disabled:V,onClick:E,size:"sm",variant:"outline",children:c}),e[12]=T,e[13]=V,e[14]=E,e[15]=c,e[16]=u):u=e[16];let p;e[17]!==N||e[18]!==u?(p=(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[N,u]}),e[17]=N,e[18]=u,e[19]=p):p=e[19];let b=!o,f;e[20]!==i?(f=d(M=>{i(M.target.value)},"b"),e[20]=i,e[21]=f):f=e[21];let w;e[22]!==n||e[23]!==b||e[24]!==f||e[25]!==y||e[26]!==t?(w=(0,a.jsx)(ue,{"aria-invalid":b,className:"min-h-[4rem] font-mono text-xs","data-testid":y,id:n,onChange:f,value:t}),e[22]=n,e[23]=b,e[24]=f,e[25]=y,e[26]=t,e[27]=w):w=e[27];let g;e[28]!==s||e[29]!==r||e[30]!==o?(g=!o&&(0,a.jsx)("p",{className:"text-xs text-destructive","data-testid":s,children:r("Metadata must be valid JSON.")}),e[28]=s,e[29]=r,e[30]=o,e[31]=g):g=e[31];let S;return e[32]!==w||e[33]!==g||e[34]!==p?(S=(0,a.jsxs)("div",{className:"mb-3 grid gap-1",children:[p,w,g]}),e[32]=w,e[33]=g,e[34]=p,e[35]=S):S=e[35],S},"Fe"),He={busy:!1,error:null,metadata:"",name:"",ttl:"",value:""},qe=d((l,e)=>{switch(e.type){case"setField":return{...l,[e.field]:e.value};case"submitFailed":return{...l,busy:!1,error:e.error};case"submitStart":return{...l,busy:!0,error:null};default:return l}},"Ue"),Ze=d(l=>{let e=(0,ee.c)(73),{namespace:n,onCancel:s,onCreated:i}=l,y=G(),o=W(),[t,r]=(0,_.useReducer)(qe,He),h;e[0]!==t.metadata?(h=Ie(t.metadata),e[0]=t.metadata,e[1]=h):h=e[1];let m=h,x;e[2]!==t.ttl?(x=_e(t.ttl),e[2]=t.ttl,e[3]=x):x=e[3];let N=x,T;e[4]!==m||e[5]!==t.busy||e[6]!==t.name||e[7]!==N?(T=t.name.trim()!==""&&m&&N&&!t.busy,e[4]=m,e[5]=t.busy,e[6]=t.name,e[7]=N,e[8]=T):T=e[8];let V=T,E;e[9]!==V||e[10]!==y||e[11]!==n||e[12]!==i||e[13]!==t.metadata||e[14]!==t.name||e[15]!==t.ttl||e[16]!==t.value?(E=d(()=>{V&&(r({type:"submitStart"}),P((async()=>{try{await y.putKvValue(Le({metadata:t.metadata,ttl:t.ttl,value:t.value},t.name,n)),i()}catch(A){r({error:H(A),type:"submitFailed"})}})()))},"w"),e[9]=V,e[10]=y,e[11]=n,e[12]=i,e[13]=t.metadata,e[14]=t.name,e[15]=t.ttl,e[16]=t.value,e[17]=E):E=e[17];let c=E,u;e[18]!==o?(u=o("Key name"),e[18]=o,e[19]=u):u=e[19];let p;e[20]!==u?(p=(0,a.jsx)(Y,{className:"text-xs",htmlFor:"kv-create-name",children:u}),e[20]=u,e[21]=p):p=e[21];let b;e[22]===Symbol.for("react.memo_cache_sentinel")?(b=d(A=>{r({field:"name",type:"setField",value:A.target.value})},"y"),e[22]=b):b=e[22];let f;e[23]!==o?(f=o("Key name"),e[23]=o,e[24]=f):f=e[24];let w;e[25]!==t.name||e[26]!==f?(w=(0,a.jsx)(ae,{autoFocus:!0,"data-testid":"kv-create-name",id:"kv-create-name",onChange:b,placeholder:f,value:t.name}),e[25]=t.name,e[26]=f,e[27]=w):w=e[27];let g;e[28]!==p||e[29]!==w?(g=(0,a.jsxs)("div",{className:"grid gap-1",children:[p,w]}),e[28]=p,e[29]=w,e[30]=g):g=e[30];let S;e[31]!==o?(S=o("Value"),e[31]=o,e[32]=S):S=e[32];let M;e[33]!==S?(M=(0,a.jsx)(Y,{className:"text-xs",htmlFor:"kv-create-value",children:S}),e[33]=S,e[34]=M):M=e[34];let D;e[35]===Symbol.for("react.memo_cache_sentinel")?(D=d(A=>{r({field:"value",type:"setField",value:A.target.value})},"B"),e[35]=D):D=e[35];let O;e[36]!==t.value?(O=(0,a.jsx)(ue,{className:"min-h-[6rem] font-mono text-xs","data-testid":"kv-create-value",id:"kv-create-value",onChange:D,value:t.value}),e[36]=t.value,e[37]=O):O=e[37];let J;e[38]!==M||e[39]!==O?(J=(0,a.jsxs)("div",{className:"grid gap-1",children:[M,O]}),e[38]=M,e[39]=O,e[40]=J):J=e[40];let z=!N,I;e[41]===Symbol.for("react.memo_cache_sentinel")?(I=d(A=>{r({field:"ttl",type:"setField",value:A})},"L"),e[41]=I):I=e[41];let v;e[42]!==z?(v=(0,a.jsx)(De,{id:"kv-create-ttl",invalid:z,onChange:I,testId:"kv-create-ttl"}),e[42]=z,e[43]=v):v=e[43];let k;e[44]===Symbol.for("react.memo_cache_sentinel")?(k=d(A=>{r({field:"metadata",type:"setField",value:A})},"h"),e[44]=k):k=e[44];let K;e[45]!==m||e[46]!==t.metadata?(K=(0,a.jsx)(ze,{id:"kv-create-metadata",invalidTestId:"kv-create-metadata-invalid",onChange:k,testId:"kv-create-metadata",valid:m,value:t.metadata}),e[45]=m,e[46]=t.metadata,e[47]=K):K=e[47];let B=!V,F;e[48]!==t.busy||e[49]!==o?(F=t.busy?o("Creating\u2026"):o("Create key"),e[48]=t.busy,e[49]=o,e[50]=F):F=e[50];let L;e[51]!==c||e[52]!==B||e[53]!==F?(L=(0,a.jsx)(R,{"data-testid":"kv-create-submit",disabled:B,onClick:c,children:F}),e[51]=c,e[52]=B,e[53]=F,e[54]=L):L=e[54];let C=t.busy,$;e[55]!==o?($=o("Cancel"),e[55]=o,e[56]=$):$=e[56];let j;e[57]!==s||e[58]!==t.busy||e[59]!==$?(j=(0,a.jsx)(R,{"data-testid":"kv-create-cancel",disabled:C,onClick:s,variant:"outline",children:$}),e[57]=s,e[58]=t.busy,e[59]=$,e[60]=j):j=e[60];let q;e[61]!==L||e[62]!==j?(q=(0,a.jsxs)("div",{className:"flex flex-wrap gap-2",children:[L,j]}),e[61]=L,e[62]=j,e[63]=q):q=e[63];let Z;e[64]!==t.error?(Z=t.error!==null&&(0,a.jsx)("p",{className:"text-sm text-destructive","data-testid":"kv-create-error",role:"alert",children:t.error}),e[64]=t.error,e[65]=Z):Z=e[65];let te;return e[66]!==g||e[67]!==J||e[68]!==v||e[69]!==K||e[70]!==q||e[71]!==Z?(te=(0,a.jsxs)("div",{className:"grid gap-3 px-4 pb-4","data-testid":"kv-create-form",children:[g,J,v,K,q,Z]}),e[66]=g,e[67]=J,e[68]=v,e[69]=K,e[70]=q,e[71]=Z,e[72]=te):te=e[72],te},"Ze"),le=33,Ve=600,Ye=d(l=>{for(let e=l?.parentElement??null;e!==null;e=e.parentElement){let{overflowY:n}=getComputedStyle(e);if(n==="auto"||n==="scroll")return e}return document.scrollingElement},"qe"),Je=d((l,e,n)=>{if(l===null||typeof ResizeObserver>"u")return;let s=new ResizeObserver(n),i=[];for(let t=l;t!==null&&t!==e;t=t.parentElement)i.push(t);let y=d(()=>{s.disconnect();for(let t of i)for(let r=t.previousElementSibling;r!==null;r=r.previousElementSibling)s.observe(r)},"v");y();let o=typeof MutationObserver>"u"?void 0:new MutationObserver(()=>{y(),n()});for(let t of i)t.parentElement!==null&&o?.observe(t.parentElement,{childList:!0});return()=>{o?.disconnect(),s.disconnect()}},"Ve"),ke=d(l=>l.scrollElement===document.scrollingElement,"ae"),Ge=d((l,e,n)=>{let s=l.targetWindow;if(!s)return;let i=d(r=>{e(Math.max(0,-(n()?.getBoundingClientRect().top??0)),r)},"i"),y=d(()=>{i(!0)},"v"),o=d(()=>{i(!1)},"d");i(!1),s.addEventListener("scroll",y,{passive:!0}),s.addEventListener("scrollend",o);let t=Je(n(),null,o);return()=>{t?.(),s.removeEventListener("scroll",y),s.removeEventListener("scrollend",o)}},"Ge"),Qe=d((l,e)=>{let n=l.targetWindow;if(!n)return;let s=d(()=>{e({height:n.innerHeight,width:n.innerWidth})},"s");return s(),n.addEventListener("resize",s),()=>{n.removeEventListener("resize",s)}},"Ye"),Ue=d(({allSelected:l,bulkSelected:e,keys:n,onSelectKey:s,onToggleAll:i,onToggleBulk:y,selectedKey:o})=>{let t=W(),r=(0,_.useRef)(null),h=(0,_.useRef)(null),m=Ne({count:n.length,estimateSize:d(()=>le,"estimateSize"),getItemKey:d(c=>n[c]?.name??c,"getItemKey"),getScrollElement:d(()=>Ye(r.current),"getScrollElement"),initialRect:{height:Ve,width:800},observeElementOffset:d((c,u)=>{if(ke(c))return Ge(c,u,()=>r.current);let p=d(w=>{let g=c.scrollElement,S=r.current;u(g&&S?Math.max(0,g.getBoundingClientRect().top-S.getBoundingClientRect().top):0,w)},"f"),b=xe(c,(w,g)=>{p(g)}),f=Je(r.current,c.scrollElement,()=>{p(!1)});return()=>{f?.(),b?.()}},"observeElementOffset"),observeElementRect:d((c,u)=>ke(c)?Qe(c,u):we(c,u,Ve),"observeElementRect"),overscan:12}),x=m.getVirtualItems(),N=x[0]?.start??0,T=m.getTotalSize()-(x.at(-1)?.end??0),V=d(c=>{let u=c.key==="Tab"&&c.target instanceof Element?c.target.closest("[data-index]"):null;if(u===null)return;let p=c.shiftKey?-1:1,b=(h.current?.index??Number(u.dataset.index))+p,f=n[b];f===void 0||h.current===null&&u.parentElement?.querySelector(`[data-index="${String(b)}"]`)||(c.preventDefault(),h.current={index:b,name:f.name},ke(m)?m.targetWindow?.scrollBy(0,p*le):m.scrollElement?.scrollBy(0,p*le))},"F");(0,_.useEffect)(()=>{let c=h.current?.name,u=(c===void 0?void 0:[...r.current?.querySelectorAll("[data-key]")??[]].find(p=>p.dataset.key===c))?.querySelector('[data-testid^="kv-select-"]');u&&(h.current=null,u.focus())});let E=0;for(let c of n)E=Math.max(E,c.name.length);return(0,a.jsxs)(ie,{"data-testid":"kv-key-table",children:[(0,a.jsx)(oe,{children:(0,a.jsxs)(Q,{children:[(0,a.jsx)(U,{className:"w-10",children:(0,a.jsx)(me,{"aria-label":t("Select all"),checked:l,"data-testid":"kv-select-all",onCheckedChange:i})}),(0,a.jsx)(U,{children:t("Key")}),(0,a.jsx)(U,{children:t("Expiration")})]})}),(0,a.jsxs)(ce,{onKeyDown:V,ref:r,children:[N>0&&(0,a.jsx)("tr",{"aria-hidden":"true",style:{height:N}}),x.map(c=>{let u=n[c.index];return u===void 0?null:(0,a.jsxs)(Q,{className:u.name===o?"border-l-2 border-l-royal-amethyst bg-muted/50":"cursor-pointer","data-index":c.index,"data-key":u.name,"data-testid":`kv-key-row-${u.name}`,onClick:s,style:{height:le},children:[(0,a.jsx)(X,{onClick:d(p=>{p.stopPropagation()},"onClick"),children:(0,a.jsx)(me,{"aria-label":t("Select {name}",{name:u.name}),checked:e.has(u.name),"data-testid":`kv-select-${u.name}`,onCheckedChange:d(()=>{y(u.name)},"onCheckedChange")})}),(0,a.jsx)(X,{className:"font-mono text-xs",style:{width:`${String(E)}ch`},children:u.name}),(0,a.jsx)(X,{className:"tabular-nums text-xs",children:je(u.expiration)})]},u.name)}),T>0&&(0,a.jsx)("tr",{"aria-hidden":"true",style:{height:T}})]})]})},"Qe"),Xe={busy:"",editedMetadata:"",editedTtl:"",editedValue:"",loadError:null,loading:!0,value:null,writeError:null},et=d((l,e)=>{switch(e.type){case"deleteStart":return{...l,busy:"deleting",writeError:null};case"editMetadata":return{...l,editedMetadata:e.value};case"editTtl":return{...l,editedTtl:e.value};case"editValue":return{...l,editedValue:e.value};case"loaded":return{...l,editedMetadata:e.metadata===null||e.metadata===void 0?"":JSON.stringify(e.metadata,null,2),editedValue:e.value??"",loading:!1,value:e.value};case"loadFailed":return{...l,loadError:e.error,loading:!1};case"saveOk":return{...l,busy:"",value:l.editedValue};case"saveStart":return{...l,busy:"saving",writeError:null};case"writeFailed":return{...l,busy:"",writeError:e.error};default:return l}},"et"),tt=d(l=>{let e=(0,ee.c)(67),{expiration:n,keyName:s,namespace:i,onDeleted:y}=l,o=G(),t=W(),[r,h]=(0,_.useReducer)(et,Xe),m,x;e[0]!==o||e[1]!==s||e[2]!==i?(m=d(()=>{let C={cancelled:!1};return P((async()=>{try{let $=await o.getKvValue({key:s,namespace:i});C.cancelled||h({metadata:$.metadata,type:"loaded",value:$.value})}catch($){let j=$;C.cancelled||h({error:H(j),type:"loadFailed"})}})()),()=>{C.cancelled=!0}},"c"),x=[o,i,s],e[0]=o,e[1]=s,e[2]=i,e[3]=m,e[4]=x):(m=e[3],x=e[4]),(0,_.useEffect)(m,x);let N;e[5]===Symbol.for("react.memo_cache_sentinel")?(N=d(C=>{h({type:"editValue",value:C.target.value})},"x"),e[5]=N):N=e[5];let T=N,V;e[6]===Symbol.for("react.memo_cache_sentinel")?(V=d(C=>{h({type:"editMetadata",value:C})},"F"),e[6]=V):V=e[6];let E=V,c;e[7]!==r.editedValue?(c=Oe(r.editedValue),e[7]=r.editedValue,e[8]=c):c=e[8];let u=c,p;e[9]!==r.editedMetadata?(p=Ie(r.editedMetadata),e[9]=r.editedMetadata,e[10]=p):p=e[10];let b=p,f;e[11]!==r.editedTtl?(f=_e(r.editedTtl),e[11]=r.editedTtl,e[12]=f):f=e[12];let w=f,g;e[13]!==u?(g=d(()=>{u!==void 0&&h({type:"editValue",value:u})},"g"),e[13]=u,e[14]=g):g=e[14];let S=g,M;e[15]!==o||e[16]!==n||e[17]!==s||e[18]!==b||e[19]!==i||e[20]!==r.editedMetadata||e[21]!==r.editedTtl||e[22]!==r.editedValue||e[23]!==t?(M=d(()=>{if(!b){h({error:t("Metadata must be valid JSON."),type:"writeFailed"});return}h({type:"saveStart"}),P((async()=>{try{await o.putKvValue(Le({metadata:r.editedMetadata,ttl:r.editedTtl,value:r.editedValue},s,i,n)),h({type:"saveOk"})}catch(C){h({error:H(C),type:"writeFailed"})}})())},"V"),e[15]=o,e[16]=n,e[17]=s,e[18]=b,e[19]=i,e[20]=r.editedMetadata,e[21]=r.editedTtl,e[22]=r.editedValue,e[23]=t,e[24]=M):M=e[24];let D=M,O;e[25]!==o||e[26]!==s||e[27]!==i||e[28]!==y?(O=d(()=>{h({type:"deleteStart"}),P((async()=>{try{await o.deleteKvKey({key:s,namespace:i}),y(s)}catch(C){h({error:H(C),type:"writeFailed"})}})())},"I"),e[25]=o,e[26]=s,e[27]=i,e[28]=y,e[29]=O):O=e[29];let J=O,z;e[30]!==s?(z=d(()=>{se(s)},"D"),e[30]=s,e[31]=z):z=e[31];let I;e[32]!==t?(I=t("Copy key"),e[32]=t,e[33]=I):I=e[33];let v;e[34]!==z||e[35]!==I?(v=(0,a.jsx)("div",{className:"mb-2 flex justify-end",children:(0,a.jsx)(R,{"data-testid":"kv-copy-key-btn",onClick:z,size:"sm",variant:"outline",children:I})}),e[34]=z,e[35]=I,e[36]=v):v=e[36];let k;e[37]!==r.loadError?(k=r.loadError!==null&&(0,a.jsx)("p",{className:"mb-2 text-sm text-destructive","data-testid":"kv-value-error",role:"alert",children:r.loadError}),e[37]=r.loadError,e[38]=k):k=e[38];let K;e[39]!==r.loading||e[40]!==t?(K=r.loading&&(0,a.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"kv-value-loading",children:t("Loading\u2026")}),e[39]=r.loading,e[40]=t,e[41]=K):K=e[41];let B;e[42]!==u||e[43]!==b||e[44]!==J||e[45]!==S||e[46]!==D||e[47]!==r.busy||e[48]!==r.editedMetadata||e[49]!==r.editedValue||e[50]!==r.loading||e[51]!==r.value||e[52]!==r.writeError||e[53]!==t||e[54]!==w?(B=!r.loading&&r.value!==null&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"mb-1 flex flex-wrap items-center gap-2",children:[(0,a.jsx)(Y,{className:"text-xs",htmlFor:"kv-value-editor",children:t("Value")}),u!==void 0&&(0,a.jsx)(ge,{variant:"secondary",children:t("JSON")}),(0,a.jsx)("span",{className:"ml-auto text-xs tabular-nums text-muted-foreground","data-testid":"kv-value-size",children:fe(We(r.editedValue))})]}),(0,a.jsx)("textarea",{"aria-label":t("KV value"),className:"mb-2 min-h-[8rem] w-full rounded border border-border bg-muted/30 p-2 font-mono text-xs","data-testid":"kv-value-editor",id:"kv-value-editor",onChange:T,value:r.editedValue}),(0,a.jsxs)("div",{className:"mb-3 flex flex-wrap gap-2",children:[(0,a.jsx)(R,{"data-testid":"kv-format-btn",disabled:u===void 0,onClick:S,size:"sm",variant:"outline",children:t("Format JSON")}),(0,a.jsx)(R,{"data-testid":"kv-copy-value-btn",onClick:d(()=>{se(r.editedValue)},"onClick"),size:"sm",variant:"outline",children:t("Copy value")})]}),(0,a.jsx)(De,{helper:t("Leave blank to keep the current expiration."),id:"kv-ttl-input",invalid:!w,onChange:d(C=>{h({type:"editTtl",value:C})},"onChange"),testId:"kv-ttl-input"}),(0,a.jsx)(ze,{id:"kv-metadata-editor",invalidTestId:"kv-metadata-invalid",onChange:E,testId:"kv-metadata-editor",valid:b,value:r.editedMetadata}),(0,a.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,a.jsx)(R,{"data-testid":"kv-save-btn",disabled:r.busy!==""||!b||!w,onClick:D,children:r.busy==="saving"?t("Saving\u2026"):t("Save")}),(0,a.jsx)(R,{"data-testid":"kv-delete-btn",disabled:r.busy!=="",onClick:J,variant:"destructive",children:r.busy==="deleting"?t("Deleting\u2026"):t("Delete")})]}),r.writeError!==null&&(0,a.jsx)("p",{className:"mt-2 text-sm text-destructive","data-testid":"kv-save-error",role:"alert",children:r.writeError})]}),e[42]=u,e[43]=b,e[44]=J,e[45]=S,e[46]=D,e[47]=r.busy,e[48]=r.editedMetadata,e[49]=r.editedValue,e[50]=r.loading,e[51]=r.value,e[52]=r.writeError,e[53]=t,e[54]=w,e[55]=B):B=e[55];let F;e[56]!==r.loadError||e[57]!==r.loading||e[58]!==r.value||e[59]!==t?(F=!r.loading&&r.value===null&&r.loadError===null&&(0,a.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"kv-absent",children:t("Key is absent or has no value.")}),e[56]=r.loadError,e[57]=r.loading,e[58]=r.value,e[59]=t,e[60]=F):F=e[60];let L;return e[61]!==v||e[62]!==k||e[63]!==K||e[64]!==B||e[65]!==F?(L=(0,a.jsxs)("div",{className:"px-4 pb-4","data-testid":"kv-value-section",children:[v,k,K,B,F]}),e[61]=v,e[62]=k,e[63]=K,e[64]=B,e[65]=F,e[66]=L):L=e[66],L},"tt"),Me=100,at={appliedPrefix:"",bulk:[],bulkBusy:!1,bulkError:null,cursor:null,keys:null,listComplete:!1,loadError:null,loading:!1,prefixInput:"",reloadNonce:0,selectedKey:null},lt=d((l,e)=>{switch(e.type){case"appendPage":return e.generation!==l.reloadNonce?l:{...l,cursor:e.cursor,keys:[...l.keys??[],...e.keys],listComplete:e.listComplete,loading:!1};case"applyFilter":return{...l,appliedPrefix:l.prefixInput,bulk:[],bulkError:null,cursor:null,keys:null,listComplete:!1,reloadNonce:l.reloadNonce+1,selectedKey:null};case"bulkDeleted":{let n=new Set(e.deleted);return{...l,bulk:l.bulk.filter(s=>!n.has(s)),bulkBusy:!1,bulkError:e.error,keys:l.keys===null?null:l.keys.filter(s=>!n.has(s.name)),selectedKey:l.selectedKey!==null&&n.has(l.selectedKey)?null:l.selectedKey}}case"bulkDeleteStart":return{...l,bulkBusy:!0,bulkError:null};case"firstPage":return{...l,cursor:e.cursor,keys:e.keys,listComplete:e.listComplete,loading:!1};case"keyDeleted":return{...l,bulk:l.bulk.filter(n=>n!==e.name),keys:l.keys===null?null:l.keys.filter(n=>n.name!==e.name),selectedKey:null};case"loadFailed":return e.generation!==void 0&&e.generation!==l.reloadNonce?l:{...l,loadError:e.error,loading:!1};case"loadStart":return{...l,loadError:null,loading:!0};case"prefixInput":return{...l,prefixInput:e.value};case"reload":return{...l,bulk:[],bulkError:null,reloadNonce:l.reloadNonce+1,selectedKey:null};case"selectKey":return{...l,selectedKey:e.name};case"toggleAllBulk":return{...l,bulk:e.names};case"toggleBulk":return{...l,bulk:l.bulk.includes(e.name)?l.bulk.filter(n=>n!==e.name):[...l.bulk,e.name]};default:return l}},"rt"),rt=d(({namespace:l})=>{let e=G(),n=W(),[s,i]=(0,_.useReducer)(lt,at),{appliedPrefix:y,bulk:o,bulkBusy:t,bulkError:r,cursor:h,keys:m,listComplete:x,loadError:N,loading:T,prefixInput:V,reloadNonce:E,selectedKey:c}=s,[u,p]=(0,_.useState)(!1);(0,_.useEffect)(()=>{let v={cancelled:!1};return P((async()=>{i({type:"loadStart"});try{let k=await e.listKvKeys({limit:Me,namespace:l,prefix:y===""?void 0:y});v.cancelled||i({cursor:k.cursor??null,keys:k.keys,listComplete:k.listComplete,type:"firstPage"})}catch(k){v.cancelled||i({error:H(k),type:"loadFailed"})}})()),()=>{v.cancelled=!0}},[e,l,y,E]);let b=d(v=>{i({type:"prefixInput",value:v.target.value})},"y"),f=d(()=>{i({type:"applyFilter"})},"b"),w=d(v=>{i({name:v.currentTarget.dataset.key??null,type:"selectKey"})},"N"),g=d(()=>{if(h===null)return;i({type:"loadStart"});let v=E;P((async()=>{try{let k=await e.listKvKeys({cursor:h,limit:Me,namespace:l,prefix:y===""?void 0:y});i({cursor:k.cursor??null,generation:v,keys:k.keys,listComplete:k.listComplete,type:"appendPage"})}catch(k){i({error:H(k),generation:v,type:"loadFailed"})}})())},"g"),S=d(v=>{i({name:v,type:"keyDeleted"})},"S"),M=d(v=>{i({name:v,type:"toggleBulk"})},"V"),D=d(v=>{i({names:v&&m!==null?m.map(k=>k.name):[],type:"toggleAllBulk"})},"B"),O=d(()=>{if(o.length===0)return;let v=[...o];i({type:"bulkDeleteStart"}),P((async()=>{let k=await Promise.allSettled(v.map(F=>e.deleteKvKey({key:F,namespace:l}))),K=v.filter((F,L)=>k[L]?.status==="fulfilled"),B=v.length-K.length;i({deleted:K,error:B>0?n("Failed to delete {count} keys.",{count:B}):null,type:"bulkDeleted"})})())},"I"),J=d(()=>{p(!1),i({type:"reload"})},"A"),z=m!==null&&m.length>0&&o.length===m.length,I=new Set(o);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("section",{className:"border border-border bg-card p-3","data-testid":"kv-keys-section",children:[(0,a.jsxs)("div",{className:"mb-3 flex flex-wrap items-center gap-2",children:[(0,a.jsx)(ae,{"aria-label":n("Filter keys by prefix"),className:"min-w-[16rem] flex-1","data-testid":"kv-prefix-input",onChange:b,placeholder:n("Filter by prefix\u2026"),value:V}),(0,a.jsx)(R,{"data-testid":"kv-filter-btn",disabled:T,onClick:f,children:n("Filter")}),(0,a.jsx)(R,{"data-testid":"kv-new-key-btn",onClick:d(()=>{p(v=>!v)},"onClick"),variant:"outline",children:n("New key")}),o.length>0&&(0,a.jsx)(R,{"data-testid":"kv-bulk-delete-btn",disabled:t,onClick:O,variant:"destructive",children:t?n("Deleting\u2026"):n("Delete {count}",{count:o.length})})]}),r!==null&&(0,a.jsx)("p",{className:"mb-2 text-sm text-destructive","data-testid":"kv-bulk-error",role:"alert",children:r}),N!==null&&(0,a.jsx)("p",{className:"text-sm text-destructive","data-testid":"kv-keys-error",role:"alert",children:N}),m!==null&&m.length===0&&!T&&(0,a.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"kv-no-keys",children:n("No keys.")}),m!==null&&m.length>0&&(0,a.jsx)(ne,{className:"overflow-hidden py-0",children:(0,a.jsx)(de,{className:"px-0",children:(0,a.jsx)(Ue,{allSelected:z,bulkSelected:I,keys:m,onSelectKey:w,onToggleAll:D,onToggleBulk:M,selectedKey:c})})}),!x&&h!==null&&(0,a.jsx)("div",{className:"mt-2",children:(0,a.jsx)(R,{"data-testid":"kv-load-more",disabled:T,onClick:g,variant:"outline",children:n(T?"Loading\u2026":"Load more")})})]}),(0,a.jsx)(ve,{onOpenChange:d(v=>{v||p(!1)},"onOpenChange"),open:u,children:(0,a.jsxs)(pe,{className:"w-full gap-0 overflow-y-auto sm:max-w-md","data-testid":"kv-create-sheet",side:"right",children:[(0,a.jsx)(ye,{children:(0,a.jsx)(he,{children:n("New key")})}),(0,a.jsx)(Ze,{namespace:l,onCancel:d(()=>{p(!1)},"onCancel"),onCreated:J})]})}),(0,a.jsx)(ve,{onOpenChange:d(v=>{v||i({name:null,type:"selectKey"})},"onOpenChange"),open:c!==null,children:(0,a.jsxs)(pe,{className:"w-full gap-0 overflow-y-auto sm:max-w-md","data-testid":"kv-editor-sheet",side:"right",children:[(0,a.jsx)(ye,{children:(0,a.jsx)(he,{className:"truncate font-mono text-xs",children:c})}),c!==null&&(0,a.jsx)(tt,{expiration:m?.find(v=>v.name===c)?.expiration,keyName:c,namespace:l,onDeleted:S},`${l}:${c}`)]})})]})},"at"),xt=d(({loadNamespaces:l}={})=>{let e=G(),n=W(),[s,i]=(0,_.useState)(null),[y,o]=(0,_.useState)(null),[t,r]=(0,_.useState)(null);(0,_.useEffect)(()=>{let m={cancelled:!1};return P((async()=>{try{let x=await(l??(()=>e.listKvNamespaces()))();m.cancelled||(i(x),o(null),r(N=>N??x[0]?.binding??null))}catch(x){m.cancelled||(i(null),o(H(x)))}})()),()=>{m.cancelled=!0}},[e,l]);let h=d(m=>{r(m.currentTarget.dataset.ns??null)},"p");return(0,a.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-kv-browser",children:[y!==null&&(0,a.jsx)("p",{className:"text-sm text-destructive","data-testid":"kv-ns-error",role:"alert",children:y}),s!==null&&s.length===0&&(0,a.jsx)(be,{description:n("Add a kv_namespaces binding to wrangler.jsonc \u2014 it appears here automatically, no wiring needed."),icon:(0,a.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:(0,a.jsx)("path",{d:"M5 5h14v4H5V5Zm0 5h14v4H5v-4Zm0 5h14v4H5v-4Z"})}),testId:"kv-empty",title:n("No KV namespaces.")}),s!==null&&s.length>0&&(0,a.jsx)(ne,{className:"overflow-hidden py-0",children:(0,a.jsx)(de,{className:"px-0",children:(0,a.jsxs)(ie,{"data-testid":"kv-namespace-table",children:[(0,a.jsx)(oe,{children:(0,a.jsx)(Q,{children:(0,a.jsx)(U,{children:n("Namespace")})})}),(0,a.jsx)(ce,{children:s.map(m=>(0,a.jsx)(Q,{className:m.binding===t?"border-l-2 border-l-royal-amethyst bg-muted/50":"cursor-pointer","data-ns":m.binding,"data-testid":`kv-ns-row-${m.binding}`,onClick:h,children:(0,a.jsx)(X,{className:"font-mono text-xs",children:m.binding})},m.binding))})]})})}),t!==null&&(0,a.jsx)(rt,{namespace:t},t)]})},"Et");export{xt as KvBrowser};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as ne}from"./chunk-P6L6ABWO.js";import{a as A}from"./chunk-OUFWXYEF.js";import{a as re}from"./chunk-ZWDORIZY.js";import{a as te}from"./chunk-KYONGQQ4.js";import{b as ee}from"./chunk-SLIDAWNX.js";import"./chunk-6M7FLLMT.js";import{i as q}from"./chunk-SDQH4HR6.js";import"./chunk-W7MRISE3.js";import"./chunk-IBJVVHV5.js";import{a as w}from"./chunk-2O6KKVH2.js";import"./chunk-JTGGWF7R.js";import"./chunk-ZBON5T5A.js";import{b as O}from"./chunk-6I42AM75.js";import"./chunk-4C4THJUD.js";import{a as Q}from"./chunk-6UTZXEW3.js";import{f as I,g as P,p as Y}from"./chunk-
|
|
1
|
+
import{a as ne}from"./chunk-P6L6ABWO.js";import{a as A}from"./chunk-OUFWXYEF.js";import{a as re}from"./chunk-ZWDORIZY.js";import{a as te}from"./chunk-KYONGQQ4.js";import{b as ee}from"./chunk-SLIDAWNX.js";import"./chunk-6M7FLLMT.js";import{i as q}from"./chunk-SDQH4HR6.js";import"./chunk-W7MRISE3.js";import"./chunk-IBJVVHV5.js";import{a as w}from"./chunk-2O6KKVH2.js";import"./chunk-JTGGWF7R.js";import"./chunk-ZBON5T5A.js";import{b as O}from"./chunk-6I42AM75.js";import"./chunk-4C4THJUD.js";import{a as Q}from"./chunk-6UTZXEW3.js";import{f as I,g as P,p as Y}from"./chunk-SDSQIQJG.js";import"./chunk-WZTY3ZYI.js";import{f as U,g as W,h as G,j,p as V,s as H,w as X}from"./chunk-LPINY2IJ.js";import{a as o,d as M,e as he,g as ge}from"./chunk-OXFKZ4BM.js";var c=M(he(),1);var n=M(ge(),1);var be=o(t=>t.kind==="id"?t.table===void 0?"id":`id<${t.table}>`:t.kind==="array"?t.element===void 0?"array":`${t.element}[]`:t.kind,"me"),xe=o(t=>t===void 0||t.length===0?"()":`(${t.map(e=>`${e.name}${e.optional?"?":""}: ${be(e)}`).join(", ")})`,"ge"),ye=o(t=>{switch(t){case"array":return[];case"bigint":return I(0n);case"boolean":return!1;case"bytes":return I(new ArrayBuffer(0));case"number":return 0;case"object":case"record":return{};default:return""}},"be"),ve=o(t=>{let e={};for(let r of t??[])r.optional||(e[r.name]=ye(r.kind));return JSON.stringify(e,void 0,2)},"xe"),Ne=G(Q.runAs),h="\xABsensitive\xBB",we=o(t=>(t??[]).filter(e=>e.sensitive===!0).map(e=>e.name),"ve"),Ae=o((t,e)=>{if(e.length===0)return t;try{let r=JSON.parse(t);if(typeof r!="object"||r===null||Array.isArray(r))return"";let l={...r};for(let i of e)Object.hasOwn(l,i)&&(l[i]=h);return JSON.stringify(l,null,2)}catch{return""}},"Ne"),Se=4,ke=o(t=>{let e=t instanceof ArrayBuffer?new Uint8Array(t):new Uint8Array(t.buffer,t.byteOffset,t.byteLength);try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{return}},"Ae"),$e=o(t=>Array.isArray(t)?[]:Object.keys(t).filter(e=>e.length>0),"we"),Ie=o(t=>{let e=[],r=new Set,l=[t];for(;l.length>0;){let i=l.pop();if(typeof i=="string")i.length>0&&e.push(i);else if(typeof i=="number"||typeof i=="bigint")e.push(String(i));else if(i instanceof ArrayBuffer||ArrayBuffer.isView(i)){let u=ke(i);u!==void 0&&u.length>0&&e.push(u)}else typeof i=="object"&&i!==null&&!r.has(i)&&(r.add(i),e.push(...$e(i)),l.push(...Object.values(i)))}return e},"ke"),Oe=o((t,e)=>{let r=[],l=new Set,i=[[t,e]];for(;i.length>0;){let[u,s]=i.pop()??[void 0,void 0];typeof s=="boolean"?r.push({key:u,text:s?"true":"false"}):typeof s=="object"&&s!==null&&!l.has(s)&&(l.add(s),Array.isArray(s)?i.push(...s.map(p=>[void 0,p])):i.push(...Object.entries(s)))}return r},"Re"),ae=o(t=>t.replaceAll(/[$()*+.?[\\\]^{|}]/gu,String.raw`\$&`),"P"),je=o((t,e)=>e.length>=Se?t.replaceAll(e,h):t.replaceAll(new RegExp(`(?<![A-Za-z0-9])${ae(e)}(?![A-Za-z0-9])`,"gu"),h),"Oe"),Re=o((t,e)=>{let r=t.replaceAll(`"${e.text}"`,h);if(e.key===void 0)return r;let l=ae(e.key);return r.replaceAll(new RegExp(`(?<![A-Za-z0-9_])${l}=${e.text}(?![A-Za-z0-9_])`,"gu"),`${e.key}=${h}`).replaceAll(new RegExp(String.raw`"${l}":\s*${e.text}(?![A-Za-z0-9_])`,"gu"),`"${e.key}":${h}`)},"Ie"),Ce=o((t,e,r)=>{if(r.length===0||typeof e!="object"||e===null)return t;let l=r.flatMap(s=>Oe(s,e[s])),i=r.flatMap(s=>Ie(e[s])).flatMap(s=>{let p=JSON.stringify(s).slice(1,-1);return p===s?[s]:[s,p]}).toSorted((s,p)=>p.length-s.length),u=t;for(let s of l)u=Re(u,s);for(let s of i)u=je(u,s);return u},"$e"),Te=10,Fe=o(t=>t===void 0?"undefined":JSON.stringify(t,V,2),"Ce"),ze=o((t,e)=>[{argsText:Ae(e.argsText,e.sensitive),at:Date.now(),id:(t[0]?.id??0)+1,kind:e.selected.kind,path:e.selected.path,redacted:e.sensitive.length>0,shardKey:e.shardKey,status:e.runStatus},...t].slice(0,Te),"Ee"),Ge=o(({functions:t,runAsIdentity:e=!1}={})=>{let r=U(),l=Y(),[i,u]=(0,c.useState)(null),[s,p]=(0,c.useState)(null),S=t??i??[],[R,C]=(0,c.useState)(""),[y,k]=(0,c.useState)("{}"),[g,T]=(0,c.useState)(""),[b,se]=(0,c.useState)(""),[$,x]=(0,c.useState)("idle"),[ie,v]=(0,c.useState)(void 0),[F,N]=(0,c.useState)(null),[z,oe]=(0,c.useState)([]);(0,c.useEffect)(()=>{if(t!==void 0)return;let a=!1;return l.listFunctions().then(f=>(a||u(f),f)).catch(f=>{a||p(j(f))}),()=>{a=!0}},[l,t]);let B=R===""?S[0]?.path??"":R,d=S.find(a=>a.path===B),le=o(async()=>{if(!d)return;let a;try{a=y.trim()===""?{}:P(JSON.parse(y))}catch(m){x("error"),v(void 0),N(r("Invalid JSON args: {message}",{message:m.message}));return}let f={__lunoraRef:d.path},E=g.trim()===""?{}:{shardKey:g.trim()},K=e?b.trim():"",Z=we(d.args),D=o(m=>{oe(me=>ze(me,{argsText:y,runStatus:m,selected:d,sensitive:Z,shardKey:g}))},"M");x("running"),N(null);try{let m=K===""?await W(l,d.kind,f,a,E):await l.query(Ne,{args:a,functionPath:d.path,userId:K},E);ee(g),v(m),x("success"),D("success")}catch(m){v(void 0),N(Ce(j(m),a,Z)),x("error"),D("error")}},"H"),de=o(a=>{if(C(a.path),T(a.shardKey),a.redacted){v(void 0),N(r("Re-enter the sensitive values before running this again.")),x("error");return}k(a.argsText)},"G"),ue=o(a=>{C(a.target.value)},"W"),ce=o(a=>{k(a.target.value)},"X"),fe=o(a=>{se(a.target.value)},"Y"),J=o(()=>{H(le())},"j"),L=e?b.trim():"",_=$==="running"||d===void 0,pe=o(()=>{k(ve(d?.args))},"_");return(0,n.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-function-runner",children:[s!==null&&(0,n.jsx)("p",{className:"text-sm text-destructive","data-testid":"function-discover-error",role:"alert",children:s}),(0,n.jsxs)("div",{className:"flex flex-col gap-4 rounded-xl border border-border bg-card p-4",children:[(0,n.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,n.jsx)(A,{htmlFor:"function-select",children:r("Function")}),(0,n.jsx)("select",{"aria-label":r("Function"),className:"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-xs transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50","data-testid":"function-select",id:"function-select",onChange:ue,value:B,children:S.map(a=>(0,n.jsxs)("option",{value:a.path,children:[a.path," (",a.kind,")"]},a.path))}),d!==void 0&&(0,n.jsxs)("p",{className:"text-xs text-muted-foreground",children:[(0,n.jsx)("span",{className:"mr-1.5 font-medium",children:r("Signature")}),(0,n.jsx)("code",{className:"font-mono","data-testid":"function-signature",children:xe(d.args)})]})]}),(0,n.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,n.jsx)(A,{htmlFor:"args-input",children:r("Arguments")}),(0,n.jsx)(w,{"data-testid":"prefill-button",disabled:d===void 0,onClick:pe,size:"xs",type:"button",variant:"ghost",children:r("Prefill")})]}),(0,n.jsx)(ne,{"aria-label":r("Arguments"),className:"font-mono text-xs","data-testid":"args-input",id:"args-input",onChange:ce,value:y})]}),(0,n.jsx)(te,{onChange:T,testId:"shard-input",value:g}),e&&(0,n.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"run-as-field",children:[(0,n.jsx)(A,{htmlFor:"run-as-input",children:r("Run as identity (userId)")}),(0,n.jsx)(q,{"aria-label":r("Run as identity (userId)"),className:"font-mono text-xs","data-testid":"run-as-input",id:"run-as-input",onChange:fe,placeholder:r("Leave empty to run as admin"),value:b}),(0,n.jsx)("p",{className:"text-[11px] text-muted-foreground",children:r("Dev only: runs the function as this user so you can test auth and RLS. Forged over the admin gate.")})]}),(0,n.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[L!==""&&d!==void 0&&d.kind!=="query"?(0,n.jsx)(re,{confirmLabel:r("This will execute `{functionPath}` as user `{userId}`.",{functionPath:d.path,userId:L}),disabled:_,onConfirm:J,testId:"run-button",children:r("Run")}):(0,n.jsx)(w,{"data-testid":"run-button",disabled:_,onClick:J,type:"button",children:r("Run")}),d!==void 0&&(0,n.jsx)(O,{variant:"outline",children:d.kind}),e&&b.trim()!==""&&(0,n.jsx)(O,{"data-testid":"run-as-badge",variant:"secondary",children:r("as {userId}",{userId:b.trim()})})]})]}),$==="error"&&F!==null&&(0,n.jsx)("pre",{className:"overflow-auto rounded-md border border-border bg-muted/50 p-3 font-mono text-xs text-destructive","data-testid":"error",role:"alert",children:F}),$==="success"&&(0,n.jsx)("pre",{className:"overflow-auto rounded-md border border-border bg-muted/50 p-3 font-mono text-xs","data-testid":"result",children:Fe(ie)}),z.length>0&&(0,n.jsx)("ul",{className:"flex flex-col overflow-hidden rounded-xl border border-border","data-testid":"fn-history",children:z.map((a,f)=>(0,n.jsxs)("li",{className:"flex flex-wrap items-center gap-2 border-b border-border px-3 py-2 text-sm last:border-b-0","data-testid":"fn-history-row",children:[(0,n.jsx)("span",{className:a.status==="success"?"text-success":"text-destructive","data-testid":`fn-history-status-${f.toString()}`,children:a.status==="success"?"\u2713":"\u2717"})," ",(0,n.jsxs)("span",{className:"font-mono text-xs",children:[a.path," (",a.kind,")"]})," ",(0,n.jsx)("time",{className:"text-xs text-muted-foreground",children:X(a.at)})," ",(0,n.jsx)(w,{className:"ml-auto","data-testid":`fn-history-load-${f.toString()}`,onClick:o(()=>{de(a)},"onClick"),size:"xs",type:"button",variant:"ghost",children:r("Load")})]},a.id))})]})},"Ge");export{Ge as FunctionRunner};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as fe}from"./chunk-X5KWBDTF.js";import"./chunk-A566HCBX.js";import{a as ie}from"./chunk-3GXPALXG.js";import{a as pe}from"./chunk-
|
|
1
|
+
import{a as fe}from"./chunk-X5KWBDTF.js";import"./chunk-A566HCBX.js";import{a as ie}from"./chunk-3GXPALXG.js";import{a as pe}from"./chunk-FACE2CFY.js";import"./chunk-W2BCSK5S.js";import{i as ne}from"./chunk-SDQH4HR6.js";import"./chunk-W7MRISE3.js";import"./chunk-IBJVVHV5.js";import{a as b}from"./chunk-2O6KKVH2.js";import"./chunk-JTGGWF7R.js";import"./chunk-ZBON5T5A.js";import{b as oe}from"./chunk-6I42AM75.js";import"./chunk-4C4THJUD.js";import{a as ue}from"./chunk-GMO7IUXO.js";import"./chunk-OSJ7HV7B.js";import"./chunk-5SYMAYUA.js";import"./chunk-E26OT26O.js";import{a as H}from"./chunk-6UTZXEW3.js";import{c as he}from"./chunk-W37HRJGQ.js";import{p as me}from"./chunk-SDSQIQJG.js";import"./chunk-WZTY3ZYI.js";import{a as de}from"./chunk-3Y5K3IQO.js";import{b as le,f as se,h as Z,i as ee,j as te,s as ae,v as ce,w as re}from"./chunk-LPINY2IJ.js";import{a as l,d as Y,e as ge,f as ve,g as Ne}from"./chunk-OXFKZ4BM.js";var t=Y(Ne(),1);var be=Y(ve(),1),v=Y(ge(),1);function ye({className:a,orientation:e="horizontal",...s}){return(0,t.jsx)(ie,{"data-slot":"separator",orientation:e,className:le("shrink-0 bg-border data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch",a),...s})}l(ye,"ge");var we=/https?:\/\/[^\s"'<>)]+/i,xe=l(a=>a===void 0?void 0:we.exec(a)?.[0],"re"),N=l(a=>a===void 0?"":Array.isArray(a)?a.join(", "):a,"v"),Ce=/<a\s(?:[^>]*?\s)?href\s*=\s*["'](https?:\/\/[^"'\s]+)["']/iu,ke=/&(?:amp|#0*38|#x0*26);/giu,Se=l(a=>a===void 0?void 0:((a.html===void 0?void 0:Ce.exec(a.html)?.[1])??xe(a.text)??xe(a.html))?.replaceAll(ke,"&"),"ye"),Te=l((a,e)=>{let s=e.trim().toLowerCase();return s===""?a:a.filter(o=>`${o.subject} ${N(o.to)} ${N(o.cc)}`.toLowerCase().includes(s))},"Ce"),je=l((a,e)=>{if(a.length!==0)return a.find(s=>s.id===e)??a[0]},"Se"),Le=Z(H.clearCapturedMail),_e=Z(H.sendTestMail),Me=l(a=>{let e=(0,be.c)(36),{limit:s}=a,o=me(),p;e[0]!==s?(p={limit:s},e[0]=s,e[1]=p):p=e[1];let{data:I,error:y,errorSource:w,isLoading:g,poll:P,refetch:c}=he(H.getCapturedMail,p),[C,f]=(0,v.useState)(null),[q,k]=(0,v.useState)(null),[i,h]=(0,v.useState)("html"),[x,B]=(0,v.useState)(""),r=I?.entries??[],m=y??C,D=y===null?C:w,S;e[2]!==o||e[3]!==c?(S=l(async()=>{f(null);try{await o.query(Le,{},ee("")),k(null),c()}catch(d){f(te(d))}},"S"),e[2]=o,e[3]=c,e[4]=S):S=e[4];let R=S,T;e[5]!==o||e[6]!==c?(T=l(async()=>{f(null);try{await o.query(_e,{},ee("")),c()}catch(d){f(te(d))}},"T"),e[5]=o,e[6]=c,e[7]=T):T=e[7];let Q=T;pe(P,!0);let j;e[8]!==R?(j=l(()=>{ae(R())},"k"),e[8]=R,e[9]=j):j=e[9];let U=j,L;e[10]!==Q?(L=l(()=>{ae(Q())},"A"),e[10]=Q,e[11]=L):L=e[11];let W=L,_;e[12]===Symbol.for("react.memo_cache_sentinel")?(_=l(d=>{B(d.currentTarget.value)},"E"),e[12]=_):_=e[12];let G=_,M;e[13]===Symbol.for("react.memo_cache_sentinel")?(M=l(d=>{let{id:u}=d.currentTarget.dataset;u!==void 0&&k(u)},"_"),e[13]=M):M=e[13];let J=M,z;e[14]===Symbol.for("react.memo_cache_sentinel")?(z=l(d=>{let u=d.currentTarget.dataset.tab;(u==="headers"||u==="html"||u==="text")&&h(u)},"L"),e[14]=z):z=e[14];let K=z,$=Te(r,x),A=je($,q),n=Se(A),O;e[15]!==n?(O=l(()=>{n!==void 0&&ce(n)},"j"),e[15]=n,e[16]=O):O=e[16];let V=O,F;e[17]!==n?(F=l(()=>{n!==void 0&&"window"in globalThis&&globalThis.window.open(n,"_blank","noopener")},"$"),e[17]=n,e[18]=F):F=e[18];let X=F,E;return e[19]!==r||e[20]!==m||e[21]!==D||e[22]!==x||e[23]!==g||e[24]!==n||e[25]!==U||e[26]!==V||e[27]!==G||e[28]!==X||e[29]!==J||e[30]!==K||e[31]!==W||e[32]!==A||e[33]!==i||e[34]!==$?(E={entries:r,error:m,errorSource:D,filter:x,isLoading:g,link:n,onClear:U,onCopyLink:V,onFilterChange:G,onOpenLink:X,onSelectMessage:J,onSelectTab:K,onSendTest:W,selected:A,tab:i,visible:$},e[19]=r,e[20]=m,e[21]=D,e[22]=x,e[23]=g,e[24]=n,e[25]=U,e[26]=V,e[27]=G,e[28]=X,e[29]=J,e[30]=K,e[31]=W,e[32]=A,e[33]=i,e[34]=$,e[35]=E):E=e[35],E},"Ae"),ze=`<meta http-equiv="Content-Security-Policy" content="default-src 'none'; img-src data:; style-src 'unsafe-inline'; font-src data:">`,$e=l(a=>`${ze}${a}`,"_e"),Ke=l(({limit:a=100})=>{let e=se(),{entries:s,error:o,errorSource:p,filter:I,isLoading:y,link:w,onClear:g,onCopyLink:P,onFilterChange:c,onOpenLink:C,onSelectMessage:f,onSelectTab:q,onSendTest:k,selected:i,tab:h,visible:x}=Me({limit:a}),B=l(r=>e(r==="html"?"HTML":r==="text"?"Plain text":"Headers"),"H");return(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"mail-panel",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)(b,{"data-testid":"mail-send-test",onClick:k,size:"sm",type:"button",variant:"outline",children:e("Send test")}),(0,t.jsx)(b,{"data-testid":"mail-clear",disabled:s.length===0,onClick:g,size:"sm",type:"button",variant:"outline",children:e("Clear inbox")}),s.length>0&&(0,t.jsx)(oe,{className:"ml-auto","data-testid":"mail-count",variant:"secondary",children:e("{count} messages",{count:s.length})})]}),o!==null&&(0,t.jsx)(ue,{error:p,testId:"mail-error"}),o===null&&!y&&s.length===0&&(0,t.jsx)(de,{description:e("Email your app sends in dev is captured here \u2014 nothing is delivered."),icon:(0,t.jsxs)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:[(0,t.jsx)("path",{d:"M4 5h16v14H4z"}),(0,t.jsx)("path",{d:"m4 6 8 6 8-6"})]}),testId:"mail-empty",title:e("No captured email.")}),s.length>0&&(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-[minmax(0,22rem)_1fr]","data-testid":"mail-reader",children:[(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsx)(ne,{"aria-label":e("Search messages"),"data-testid":"mail-search",onChange:c,placeholder:e("Filter messages"),type:"search",value:I}),(0,t.jsx)(fe,{className:"max-h-[32rem] rounded-xl border border-border bg-card shadow-xs","data-testid":"mail-list",children:(0,t.jsx)("ul",{className:"divide-y",children:x.map(r=>{let m=r.id===i?.id;return(0,t.jsx)("li",{children:(0,t.jsxs)("button",{className:`flex w-full flex-col items-start gap-0.5 px-3 py-2 text-left text-sm hover:bg-muted/60 ${m?"bg-muted":""}`,"data-active":m,"data-id":r.id,"data-testid":"mail-list-item",onClick:f,type:"button",children:[(0,t.jsx)("span",{className:"w-full truncate font-medium",children:r.subject||e("(no subject)")}),(0,t.jsx)("span",{className:"w-full truncate text-xs text-muted-foreground",children:N(r.to)}),(0,t.jsx)("span",{className:"text-xs text-muted-foreground tabular-nums",children:re(r.capturedAt,"\u2014")})]})},r.id)})})})]}),i!==void 0&&(0,t.jsxs)("div",{className:"flex min-w-0 flex-col gap-3 rounded-xl border border-border bg-card p-4 shadow-xs","data-testid":"mail-detail",children:[(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,t.jsx)("h2",{className:"truncate text-base font-semibold","data-testid":"mail-subject",children:i.subject||e("(no subject)")}),(0,t.jsxs)("dl",{className:"grid grid-cols-[auto_1fr] gap-x-3 gap-y-0.5 text-xs text-muted-foreground",children:[(0,t.jsx)("dt",{children:e("From")}),(0,t.jsx)("dd",{className:"truncate font-mono",children:i.from??"\u2014"}),(0,t.jsx)("dt",{children:e("To")}),(0,t.jsx)("dd",{className:"truncate font-mono",children:N(i.to)}),i.cc!==void 0&&i.cc.length>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("dt",{children:e("Cc")}),(0,t.jsx)("dd",{className:"truncate font-mono",children:N(i.cc)})]}),(0,t.jsx)("dt",{children:e("Sent")}),(0,t.jsx)("dd",{className:"tabular-nums",children:re(i.capturedAt,"\u2014")})]})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2","data-testid":"mail-actions",children:[(0,t.jsx)(b,{"data-testid":"mail-copy-link",disabled:w===void 0,onClick:P,size:"sm",type:"button",variant:"outline",children:e("Copy link")}),(0,t.jsx)(b,{"data-testid":"mail-open-link",disabled:w===void 0,onClick:C,size:"sm",type:"button",variant:"outline",children:e("Open in new tab")})]}),(0,t.jsx)(ye,{}),(0,t.jsx)("div",{className:"flex items-center gap-1","data-testid":"mail-tabs",role:"tablist",children:["html","text","headers"].map(r=>(0,t.jsx)(b,{"aria-selected":h===r,"data-tab":r,"data-testid":`mail-tab-${r}`,onClick:q,role:"tab",size:"sm",type:"button",variant:h===r?"secondary":"ghost",children:B(r)},r))}),(0,t.jsxs)("div",{className:"min-h-[12rem]",children:[h==="html"&&(i.html===void 0?(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:e("No HTML body.")}):(0,t.jsx)("iframe",{className:"h-[24rem] w-full rounded-md border bg-white","data-testid":"mail-preview-html",sandbox:"",srcDoc:$e(i.html),title:e("Email preview")})),h==="text"&&(i.text===void 0?(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:e("No text body.")}):(0,t.jsx)("pre",{className:"overflow-auto whitespace-pre-wrap rounded-md border bg-muted/30 p-3 text-xs","data-testid":"mail-preview-text",children:i.text})),h==="headers"&&(i.headers===void 0||Object.keys(i.headers).length===0?(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:e("No headers.")}):(0,t.jsx)("pre",{className:"overflow-auto whitespace-pre-wrap rounded-md border bg-muted/30 p-3 text-xs","data-testid":"mail-preview-headers",children:Object.entries(i.headers).map(([r,m])=>`${r}: ${m}`).join(`
|
|
2
2
|
`)}))]})]})]})]})},"Qe");export{Ke as MailPanel};
|