@lunora/studio 1.0.0-alpha.55 → 1.0.0-alpha.57

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.
Files changed (133) hide show
  1. package/dist/index.d.ts +5 -1
  2. package/dist/index.js +11 -11
  3. package/dist/mount.js +1 -1
  4. package/dist/packem_chunks/ApiTab.js +3 -3
  5. package/dist/packem_chunks/AuditPanel.js +4 -4
  6. package/dist/packem_chunks/ExportImportPanel.js +3 -3
  7. package/dist/packem_chunks/FileBrowser.js +3 -3
  8. package/dist/packem_chunks/FunctionRunner.js +2 -2
  9. package/dist/packem_chunks/FunctionStatsPanel.js +4 -4
  10. package/dist/packem_chunks/HealthPanel.js +3 -3
  11. package/dist/packem_chunks/InsightsPanel.js +4 -4
  12. package/dist/packem_chunks/LogsPanel.js +537 -89
  13. package/dist/packem_chunks/MailPanel.js +4 -4
  14. package/dist/packem_chunks/MetricsPanel.js +4 -4
  15. package/dist/packem_chunks/MigrationsPanel.js +4 -4
  16. package/dist/packem_chunks/PitrPanel.js +2 -2
  17. package/dist/packem_chunks/SchemaViewer.js +2 -2
  18. package/dist/packem_chunks/SecurityAdvisorPanel.js +3 -3
  19. package/dist/packem_chunks/SettingsPanel.js +3 -3
  20. package/dist/packem_chunks/SqlEditorPanel.js +5 -5
  21. package/dist/packem_chunks/TableEditor.js +3 -3
  22. package/dist/packem_chunks/agents-panel.js +4 -4
  23. package/dist/packem_chunks/analytics-panel.js +1 -1
  24. package/dist/packem_chunks/auth-config-panel.js +1 -1
  25. package/dist/packem_chunks/auth-sessions-panel.js +2 -2
  26. package/dist/packem_chunks/containers-panel.js +2 -2
  27. package/dist/packem_chunks/dashboards-panel.js +3 -3
  28. package/dist/packem_chunks/fanout-panel.js +3 -3
  29. package/dist/packem_chunks/flags-panel.js +3 -3
  30. package/dist/packem_chunks/issues-panel.js +321 -82
  31. package/dist/packem_chunks/kv-browser.js +3 -3
  32. package/dist/packem_chunks/log-drains-panel.js +1 -1
  33. package/dist/packem_chunks/organizations-panel.js +3 -3
  34. package/dist/packem_chunks/payments-panel.js +4 -4
  35. package/dist/packem_chunks/permissions-panel.js +4 -4
  36. package/dist/packem_chunks/queues-panel.js +4 -4
  37. package/dist/packem_chunks/rls-panel.js +3 -3
  38. package/dist/packem_chunks/schedule-panel.js +3 -3
  39. package/dist/packem_chunks/storage-rules-panel.js +3 -3
  40. package/dist/packem_chunks/subscriptions-panel.js +3 -3
  41. package/dist/packem_chunks/traces-panel.js +4 -4
  42. package/dist/packem_chunks/users-panel.js +3 -3
  43. package/dist/packem_chunks/vector-browser.js +1 -1
  44. package/dist/packem_chunks/workflows-panel.js +3 -3
  45. package/dist/packem_shared/{ADMIN_FUNCTIONS-C6TEeUiJ.js → ADMIN_FUNCTIONS-C1LXrovV.js} +4 -0
  46. package/dist/packem_shared/{ApiDocsPanel-CcC6ucbp.js → ApiDocsPanel-BBvinlRD.js} +2 -2
  47. package/dist/packem_shared/{ApiReferencePanel-Dd8pcswz.js → ApiReferencePanel-ChlRsAXU.js} +1 -1
  48. package/dist/packem_shared/{CommandPalette-BXV4eKf5.js → CommandPalette-BpkopP5f.js} +1 -1
  49. package/dist/packem_shared/{DataBrowser-BuFEPTiv.js → DataBrowser-BoinTGxr.js} +6 -6
  50. package/dist/packem_shared/{GlobalDataBrowser-D8h1fTL1.js → GlobalDataBrowser-BCaohHZ5.js} +3 -3
  51. package/dist/packem_shared/{HomePanel-2I1YZm0A.js → HomePanel-BpdGcW4L.js} +4 -4
  52. package/dist/packem_shared/{OpenRpcReferencePanel-CWaf0ZtX.js → OpenRpcReferencePanel-CIeQE1aE.js} +1 -1
  53. package/dist/packem_shared/{ScheduledJobs-Cz5Tr-M6.js → ScheduledJobs-BQzQo84k.js} +2 -2
  54. package/dist/packem_shared/{Studio-CCJBI2wP.js → Studio-BpnYw3lc.js} +4 -4
  55. package/dist/packem_shared/{StudioApp-Daeqxw2h.js → StudioApp-DRGVBnFx.js} +2 -2
  56. package/dist/packem_shared/{advisor-view-1RaDWED7.js → advisor-view-D95sN-wO.js} +1 -1
  57. package/dist/packem_shared/{data-grid-C9I16KWr.js → data-grid-BywzWfek.js} +1 -1
  58. package/dist/packem_shared/{error-alert-vIPQoN3Y.js → error-alert-D9uIFJUS.js} +1 -1
  59. package/dist/packem_shared/{grid-features-B_fZH4iQ.js → grid-features-ZOLhHKrR.js} +1 -1
  60. package/dist/packem_shared/{home-panel-DHHUtnKU.js → home-panel-Dmg4sNiv.js} +3 -3
  61. package/dist/packem_shared/{internal-zwBoOv24.js → internal-DzHCc2Rq.js} +10 -1
  62. package/dist/packem_shared/{reference-view-DUULLuOi.js → reference-view-DfXN7oWP.js} +1 -1
  63. package/dist/packem_shared/{result-chart-DZradBAS.js → result-chart-Bf9mbCIo.js} +1 -1
  64. package/dist/packem_shared/{select-UkNYCT3s.js → select-D9OwHEch.js} +1 -1
  65. package/dist/packem_shared/{studio-0479nrrm.js → studio-LL4iP8fZ.js} +3 -3
  66. package/dist/packem_shared/{table-list-sidebar-huX4VmgI.js → table-list-sidebar-gCE17v9B.js} +1 -1
  67. package/dist/packem_shared/{use-admin-query-BGJ010yZ.js → use-admin-query-C7JNuQp-.js} +1 -1
  68. package/dist/packem_shared/{use-async-submit-DGCtuDyz.js → use-async-submit-rnSk_jXl.js} +2 -2
  69. package/dist/standalone/{chunk-GVFODXW2.js → chunk-227DORM6.js} +1 -1
  70. package/dist/standalone/{chunk-RCSULEDU.js → chunk-27JTW53L.js} +1 -1
  71. package/dist/standalone/{chunk-RG4HLPM2.js → chunk-2BSDITP4.js} +1 -1
  72. package/dist/standalone/{chunk-D73WYMRU.js → chunk-2ICZ6HXQ.js} +1 -1
  73. package/dist/standalone/{chunk-EOE5NDMK.js → chunk-2TJVFKD2.js} +1 -1
  74. package/dist/standalone/{chunk-4AZYW2PI.js → chunk-2XUT4Z4W.js} +1 -1
  75. package/dist/standalone/{chunk-WOYQG5AM.js → chunk-2YTF6LJ6.js} +1 -1
  76. package/dist/standalone/{chunk-4F72YCTU.js → chunk-2YUYNNHQ.js} +1 -1
  77. package/dist/standalone/chunk-3HGNPZBN.js +1 -0
  78. package/dist/standalone/{chunk-N5FMEYSL.js → chunk-4Q66FL5S.js} +1 -1
  79. package/dist/standalone/{chunk-SPACAIAR.js → chunk-53J4JZ2D.js} +1 -1
  80. package/dist/standalone/{chunk-EPDC422O.js → chunk-67YMILPJ.js} +1 -1
  81. package/dist/standalone/{chunk-XCNYUUD6.js → chunk-AN4RKMKW.js} +1 -1
  82. package/dist/standalone/{chunk-W7ND56KZ.js → chunk-AYHAJL3Z.js} +1 -1
  83. package/dist/standalone/chunk-BIA2DLBR.js +1 -0
  84. package/dist/standalone/{chunk-S2G7OH5T.js → chunk-C7UZEQZ7.js} +2 -2
  85. package/dist/standalone/{chunk-3W4CSGDO.js → chunk-CENYZ5GF.js} +1 -1
  86. package/dist/standalone/{chunk-DVBY6YQK.js → chunk-CURAOCQJ.js} +1 -1
  87. package/dist/standalone/{chunk-FPKTXKPE.js → chunk-EFYZYQUA.js} +1 -1
  88. package/dist/standalone/{chunk-TTEEPVCN.js → chunk-EXNK5XAW.js} +1 -1
  89. package/dist/standalone/{chunk-FDWXYXOM.js → chunk-F2YMCQ6B.js} +1 -1
  90. package/dist/standalone/{chunk-JQPHZL2A.js → chunk-GF6GF6CF.js} +1 -1
  91. package/dist/standalone/{chunk-5XO36X4C.js → chunk-HBGS4SEX.js} +8 -8
  92. package/dist/standalone/{chunk-HNIDN3RX.js → chunk-HQ2CPGA4.js} +1 -1
  93. package/dist/standalone/{chunk-LJE6PGHD.js → chunk-IMVAYDPK.js} +1 -1
  94. package/dist/standalone/{chunk-CW7LZ4SR.js → chunk-J2DQ63SR.js} +1 -1
  95. package/dist/standalone/{chunk-VC2VDAUO.js → chunk-JM3ZISDM.js} +1 -1
  96. package/dist/standalone/{chunk-S5NTGHCG.js → chunk-JZLGLG4T.js} +1 -1
  97. package/dist/standalone/{chunk-G5CMK5GY.js → chunk-LABWKVKR.js} +1 -1
  98. package/dist/standalone/chunk-LFORIMS7.js +1 -0
  99. package/dist/standalone/{chunk-JHR3HKT5.js → chunk-LT2HPR6R.js} +2 -2
  100. package/dist/standalone/{chunk-MWH5LBNF.js → chunk-MBG7XWNH.js} +1 -1
  101. package/dist/standalone/chunk-MHGJUKCZ.js +1 -0
  102. package/dist/standalone/{chunk-ZUTFDG76.js → chunk-MJ4HATA2.js} +1 -1
  103. package/dist/standalone/{chunk-EIZG4GOM.js → chunk-N2E4TKRD.js} +1 -1
  104. package/dist/standalone/{chunk-CHNXZYAC.js → chunk-N5XX4HOL.js} +1 -1
  105. package/dist/standalone/{chunk-YS7NUMAN.js → chunk-NIC6UYAQ.js} +1 -1
  106. package/dist/standalone/{chunk-XG4TZSP4.js → chunk-NV5LO5I6.js} +1 -1
  107. package/dist/standalone/{chunk-VQ3YOUZB.js → chunk-OHCGUIOG.js} +1 -1
  108. package/dist/standalone/{chunk-G4GGGHEV.js → chunk-OPSAI5PZ.js} +1 -1
  109. package/dist/standalone/{chunk-YRE6TGXH.js → chunk-P7MZQ6VJ.js} +1 -1
  110. package/dist/standalone/{chunk-FBGC3RSU.js → chunk-PRHAIUWS.js} +1 -1
  111. package/dist/standalone/{chunk-LTCX3QOE.js → chunk-PYPWIYI2.js} +1 -1
  112. package/dist/standalone/{chunk-6LLFTVEI.js → chunk-QAW6AWOE.js} +1 -1
  113. package/dist/standalone/{chunk-XZWFP2GI.js → chunk-QVUQXJCT.js} +1 -1
  114. package/dist/standalone/{chunk-NAFKYFBZ.js → chunk-R4ALMCZA.js} +1 -1
  115. package/dist/standalone/{chunk-JGCRBFFO.js → chunk-RIZDNIW7.js} +1 -1
  116. package/dist/standalone/{chunk-IKVZUVHJ.js → chunk-S6PTK7Y2.js} +1 -1
  117. package/dist/standalone/{chunk-FXNS5NBY.js → chunk-SAQU44MF.js} +1 -1
  118. package/dist/standalone/{chunk-WA3DGSC2.js → chunk-T3R6VHAT.js} +1 -1
  119. package/dist/standalone/{chunk-AE3AKGOW.js → chunk-W3EYW2EA.js} +1 -1
  120. package/dist/standalone/{chunk-RDA4VTHI.js → chunk-WAX3RSAI.js} +1 -1
  121. package/dist/standalone/{chunk-FQUNSQLG.js → chunk-WMDH2CIZ.js} +1 -1
  122. package/dist/standalone/{chunk-SP7GSPKX.js → chunk-X34PHGZF.js} +1 -1
  123. package/dist/standalone/{chunk-PIB7VUVM.js → chunk-X3VAERRH.js} +1 -1
  124. package/dist/standalone/{chunk-Q3X7IMLF.js → chunk-XAGYDGI6.js} +1 -1
  125. package/dist/standalone/{chunk-OVSBLTAA.js → chunk-Y26ZIWUZ.js} +1 -1
  126. package/dist/standalone/{chunk-WCLFE2ZB.js → chunk-ZVQMTQYX.js} +1 -1
  127. package/dist/standalone/studio.js +1 -1
  128. package/dist/styles.css +1 -1
  129. package/package.json +3 -3
  130. package/dist/standalone/chunk-DWDILV2E.js +0 -1
  131. package/dist/standalone/chunk-EBTLTGG3.js +0 -1
  132. package/dist/standalone/chunk-G5RC7USY.js +0 -1
  133. package/dist/standalone/chunk-YNSFQKMM.js +0 -1
@@ -1 +0,0 @@
1
- import{a as O}from"./chunk-FQUNSQLG.js";import{a as L}from"./chunk-2K47A3P6.js";import{b as _}from"./chunk-4F72YCTU.js";import{a as M,b as F,c as H,d as T,e as d,f as n}from"./chunk-GTM65MVX.js";import{a as E,e as A}from"./chunk-Y572GMZE.js";import{a as D}from"./chunk-FDWXYXOM.js";import"./chunk-4PC7IXNY.js";import"./chunk-2MLA6WFH.js";import"./chunk-VL23Y44O.js";import"./chunk-HV7G6DFP.js";import"./chunk-O3NAGRTR.js";import{b as w}from"./chunk-ZPP2KOR4.js";import"./chunk-CKSHCYGC.js";import{a as B}from"./chunk-EBTLTGG3.js";import"./chunk-S2G7OH5T.js";import"./chunk-ZHVTQ37P.js";import"./chunk-3OA7PECS.js";import{a as K}from"./chunk-TAD43CG5.js";import{d as C,p as S}from"./chunk-5XO36X4C.js";import"./chunk-ZXLEXF4X.js";import{a as g,e as b,f as R,g as U,h as V}from"./chunk-RRCPZMC2.js";var $=b(U(),1),j=b(R(),1);var t=b(V(),1);var W=g(s=>Array.isArray(s?.issues)?s.issues:[],"issuesOf"),re=g(s=>{let e=(0,$.c)(21),{initialShardKey:P}=s,a=C(),[r,Q]=(0,j.useState)(P??""),c;e[0]!==r?(c=r.trim(),e[0]=r,e[1]=c):c=e[1];let N=L(c,400),f;e[2]===Symbol.for("react.memo_cache_sentinel")?(f={},e[2]=f):f=e[2];let u;e[3]!==N?(u={live:!0,shardKey:N},e[3]=N,e[4]=u):u=e[4];let{data:h,error:i,liveError:m}=_(B.getIssues,f,u),y=h!==void 0,v;if(e[5]!==h||e[6]!==i||e[7]!==m||e[8]!==y||e[9]!==r||e[10]!==a){let I=W(h),p;e[12]!==i?(p=i!==null&&(0,t.jsxDEV)("p",{className:"text-sm text-destructive","data-testid":"issues-error",role:"alert",children:i},void 0,!1),e[12]=i,e[13]=p):p=e[13];let l;e[14]!==r?(l=(0,t.jsxDEV)(D,{onChange:Q,testId:"issues-shard-input",value:r},void 0,!1),e[14]=r,e[15]=l):l=e[15];let o;e[16]!==m?(o=(0,t.jsxDEV)(O,{message:m,prefix:"issues"},void 0,!1),e[16]=m,e[17]=o):o=e[17];let x;e[18]!==l||e[19]!==o?(x=(0,t.jsxDEV)("div",{className:"flex flex-wrap items-center gap-2",children:[l,o]},void 0,!0),e[18]=l,e[19]=o,e[20]=x):x=e[20],v=(0,t.jsxDEV)("div",{className:"flex flex-col gap-6","data-testid":"lunora-issues-panel",children:[p,x,y&&I.length===0?(0,t.jsxDEV)(K,{description:a("No grouped errors yet. When a function throws or a container crashes, matching errors fold into a single issue here."),testId:"issues-empty",title:a("No issues")},void 0,!1):(0,t.jsxDEV)(E,{className:"overflow-hidden py-0",children:(0,t.jsxDEV)(A,{className:"px-0",children:(0,t.jsxDEV)(M,{"data-testid":"issues-table",children:[(0,t.jsxDEV)(F,{children:(0,t.jsxDEV)(T,{children:[(0,t.jsxDEV)(d,{children:a("Issue")},void 0,!1),(0,t.jsxDEV)(d,{children:a("Source")},void 0,!1),(0,t.jsxDEV)(d,{className:"text-right",children:a("Events")},void 0,!1),(0,t.jsxDEV)(d,{children:a("First seen")},void 0,!1),(0,t.jsxDEV)(d,{children:a("Last seen")},void 0,!1)]},void 0,!0)},void 0,!1),(0,t.jsxDEV)(H,{children:I.map(k)},void 0,!1)]},void 0,!0)},void 0,!1)},void 0,!1)]},void 0,!0),e[5]=h,e[6]=i,e[7]=m,e[8]=y,e[9]=r,e[10]=a,e[11]=v}else v=e[11];return v},"IssuesPanel");function k(s){return(0,t.jsxDEV)(T,{"data-testid":`issues-row-${s.hash}`,children:[(0,t.jsxDEV)(n,{className:"max-w-96",children:[(0,t.jsxDEV)("div",{className:"truncate font-medium",title:s.title,children:s.title},void 0,!1),(0,t.jsxDEV)("div",{className:"truncate text-xs text-muted-foreground",title:s.sampleMessage,children:s.sampleMessage},void 0,!1)]},void 0,!0),(0,t.jsxDEV)(n,{className:"font-mono text-xs text-muted-foreground",children:s.culprit},void 0,!1),(0,t.jsxDEV)(n,{className:"text-right",children:(0,t.jsxDEV)(w,{variant:"secondary",children:s.count},void 0,!1)},void 0,!1),(0,t.jsxDEV)(n,{className:"text-xs tabular-nums text-muted-foreground",children:S(s.firstSeen)},void 0,!1),(0,t.jsxDEV)(n,{className:"text-xs tabular-nums text-muted-foreground",children:S(s.lastSeen)},void 0,!1)]},s.hash,!0)}g(k,"_temp");export{re as IssuesPanel};
@@ -1 +0,0 @@
1
- import{a as Y}from"./chunk-N7SVJOHN.js";import{a as ne}from"./chunk-QVIPA6UJ.js";import{b as le}from"./chunk-VXM5H542.js";import{a as ie}from"./chunk-IYHPYY4A.js";import{a as ae}from"./chunk-FQUNSQLG.js";import{a as se}from"./chunk-2K47A3P6.js";import{a as oe}from"./chunk-D73WYMRU.js";import"./chunk-XNJNSCLM.js";import{b as K}from"./chunk-4F72YCTU.js";import{a as re}from"./chunk-FDWXYXOM.js";import{b as te}from"./chunk-4PC7IXNY.js";import"./chunk-2MLA6WFH.js";import{R}from"./chunk-VL23Y44O.js";import"./chunk-HV7G6DFP.js";import"./chunk-O3NAGRTR.js";import{b as D}from"./chunk-ZPP2KOR4.js";import"./chunk-CKSHCYGC.js";import{a as U}from"./chunk-EBTLTGG3.js";import"./chunk-S2G7OH5T.js";import"./chunk-ZHVTQ37P.js";import"./chunk-3OA7PECS.js";import{a as ee}from"./chunk-TAD43CG5.js";import{d as Z}from"./chunk-5XO36X4C.js";import"./chunk-ZXLEXF4X.js";import{a as i,e as z,f as qe,g as Pe,h as Oe,j as I}from"./chunk-RRCPZMC2.js";var T=z(Pe(),1);var u=z(qe(),1);var r=z(Oe(),1);var Me=["trace","debug","log","info","warn","error","fatal"],G=400,Fe=36,Ae={height:G,overflow:"auto"},me={left:0,position:"absolute",top:0,width:"100%"},_e={debug:"secondary",error:"destructive",fatal:"destructive",info:"outline",log:"outline",trace:"outline",warn:"secondary"},Ve={error:"destructive",ok:"secondary"},$e=i(a=>{let e=(0,T.c)(26),{entry:t,index:l,measureRef:n,start:o}=a,d=`translateY(${String(o)}px)`,g;e[0]!==d?(g={...me,transform:d},e[0]=d,e[1]=g):g=e[1];let m=g,f;e[2]!==t.fields?(f=Y(t.fields),e[2]=t.fields,e[3]=f):f=e[3];let c=f,w;e[4]!==t.timestamp?(w=new Date(t.timestamp).toLocaleString(),e[4]=t.timestamp,e[5]=w):w=e[5];let h;e[6]!==w?(h=(0,r.jsxDEV)("span",{className:"w-44 shrink-0 tabular-nums text-muted-foreground",role:"gridcell",children:w},void 0,!1),e[6]=w,e[7]=h):h=e[7];let N=_e[t.level],v;e[8]!==t.level||e[9]!==N?(v=(0,r.jsxDEV)("span",{className:"w-20 shrink-0",role:"gridcell",children:(0,r.jsxDEV)(D,{variant:N,children:t.level},void 0,!1)},void 0,!1),e[8]=t.level,e[9]=N,e[10]=v):v=e[10];let b=t.functionPath??"\u2014",y;e[11]!==b?(y=(0,r.jsxDEV)("span",{className:"w-48 shrink-0 truncate text-muted-foreground",role:"gridcell",children:b},void 0,!1),e[11]=b,e[12]=y):y=e[12];let p;e[13]!==c?(p=c===""?null:(0,r.jsxDEV)("span",{className:"ml-2 text-muted-foreground","data-testid":"lg-fields",children:c},void 0,!1),e[13]=c,e[14]=p):p=e[14];let x;e[15]!==t.message||e[16]!==p?(x=(0,r.jsxDEV)("span",{className:"flex-1 truncate",role:"gridcell",children:[t.message,p]},void 0,!0),e[15]=t.message,e[16]=p,e[17]=x):x=e[17];let L;return e[18]!==l||e[19]!==n||e[20]!==m||e[21]!==x||e[22]!==h||e[23]!==v||e[24]!==y?(L=(0,r.jsxDEV)("div",{className:"flex items-center border-b border-border px-3 py-1.5 font-mono text-xs hover:bg-muted/50","data-index":l,"data-testid":"lg-row",ref:n,role:"row",style:m,children:[h,v,y,x]},void 0,!0),e[18]=l,e[19]=n,e[20]=m,e[21]=x,e[22]=h,e[23]=v,e[24]=y,e[25]=L):L=e[25],L},"LogRow"),de=i(a=>a.length===0?"\u2014":a.join(", "),"tablesLabel"),Be=i(a=>{let e=(0,T.c)(37),{entry:t,index:l,measureRef:n,start:o}=a,d=`translateY(${String(o)}px)`,g;e[0]!==d?(g={...me,transform:d},e[0]=d,e[1]=g):g=e[1];let m=g,f;e[2]!==t.ts?(f=new Date(t.ts).toLocaleString(),e[2]=t.ts,e[3]=f):f=e[3];let c;e[4]!==f?(c=(0,r.jsxDEV)("span",{className:"w-40 shrink-0 tabular-nums text-muted-foreground",role:"gridcell",children:f},void 0,!1),e[4]=f,e[5]=c):c=e[5];let w=Ve[t.outcome],h;e[6]!==t.outcome||e[7]!==w?(h=(0,r.jsxDEV)("span",{className:"w-16 shrink-0",role:"gridcell",children:(0,r.jsxDEV)(D,{variant:w,children:t.outcome},void 0,!1)},void 0,!1),e[6]=t.outcome,e[7]=w,e[8]=h):h=e[8];let N;e[9]!==t.functionPath?(N=(0,r.jsxDEV)("span",{className:"w-44 shrink-0 truncate",role:"gridcell",title:t.functionPath,children:t.functionPath},void 0,!1),e[9]=t.functionPath,e[10]=N):N=e[10];let v=t.shardKey??"\u2014",b;e[11]!==v?(b=(0,r.jsxDEV)("span",{className:"w-24 shrink-0 truncate text-muted-foreground",role:"gridcell",children:v},void 0,!1),e[11]=v,e[12]=b):b=e[12];let y=t.userId??"\u2014",p;e[13]!==y?(p=(0,r.jsxDEV)("span",{className:"w-24 shrink-0 truncate text-muted-foreground",role:"gridcell",children:y},void 0,!1),e[13]=y,e[14]=p):p=e[14];let x;e[15]!==t.durationMs?(x=Math.round(t.durationMs),e[15]=t.durationMs,e[16]=x):x=e[16];let L=`${String(x)}ms`,S;e[17]!==L?(S=(0,r.jsxDEV)("span",{className:"w-16 shrink-0 tabular-nums text-muted-foreground",role:"gridcell",children:L},void 0,!1),e[17]=L,e[18]=S):S=e[18];let C;e[19]!==t.errorMessage||e[20]!==t.outcome||e[21]!==t.tablesRead||e[22]!==t.tablesWritten?(C=t.outcome==="error"&&t.errorMessage!==void 0?t.errorMessage:`r:${de(t.tablesRead)} \xB7 w:${de(t.tablesWritten)}`,e[19]=t.errorMessage,e[20]=t.outcome,e[21]=t.tablesRead,e[22]=t.tablesWritten,e[23]=C):C=e[23];let k;e[24]!==C?(k=(0,r.jsxDEV)("span",{className:"flex-1 truncate text-muted-foreground",role:"gridcell",children:C},void 0,!1),e[24]=C,e[25]=k):k=e[25];let E;return e[26]!==l||e[27]!==n||e[28]!==m||e[29]!==p||e[30]!==S||e[31]!==k||e[32]!==c||e[33]!==h||e[34]!==N||e[35]!==b?(E=(0,r.jsxDEV)("div",{className:"flex items-center border-b border-border px-3 py-1.5 font-mono text-xs hover:bg-muted/50","data-index":l,"data-testid":"lg-req-row",ref:n,role:"row",style:m,children:[c,h,N,b,p,S,k]},void 0,!0),e[26]=l,e[27]=n,e[28]=m,e[29]=p,e[30]=S,e[31]=k,e[32]=c,e[33]=h,e[34]=N,e[35]=b,e[36]=E):E=e[36],E},"RequestRow"),ce=i(a=>{let{entries:e}=a??{};return Array.isArray(e)?e:[]},"entriesOf"),ze=i(a=>{let e={};return a.functionPathPrefix.trim()!==""&&(e.functionPathPrefix=a.functionPathPrefix.trim()),a.userId.trim()!==""&&(e.userId=a.userId.trim()),a.tableTouched.trim()!==""&&(e.tableTouched=a.tableTouched.trim()),(a.outcome==="ok"||a.outcome==="error")&&(e.outcome=a.outcome),e},"buildRequestQuery"),fe=Me,De={"5m":300*1e3,"15m":900*1e3,"1h":3600*1e3},Ke=i((a,e)=>{let t=e.search.trim().toLowerCase(),l=e.path.trim().toLowerCase(),n=e.range==="all"?Number.NEGATIVE_INFINITY:e.now-De[e.range];return a.filter(o=>e.levels.size>0&&!e.levels.has(o.level)||o.timestamp<n||l!==""&&!(o.functionPath??"").toLowerCase().includes(l)?!1:t===""||o.message.toLowerCase().includes(t)||Y(o.fields).toLowerCase().includes(t))},"filterLogs"),Ue="\u2014",Ye=i(a=>{let e=new Map,t=new Map;for(let o of a){e.set(o.level,(e.get(o.level)??0)+1);let d=o.functionPath??Ue;t.set(d,(t.get(d)??0)+1)}let l=fe.filter(o=>e.has(o)).map(o=>({count:e.get(o)??0,key:o})),n=[...t.entries()].map(([o,d])=>({count:d,key:o})).toSorted((o,d)=>d.count===o.count?o.key.localeCompare(d.key):d.count-o.count);return{byLevel:l,byPath:n,total:a.length}},"summarizeLogs"),Ge=i(a=>{let e=(0,T.c)(11),{level:t,onToggle:l,selected:n}=a,o;e[0]!==t||e[1]!==l?(o=i(()=>{l(t)},"t1"),e[0]=t,e[1]=l,e[2]=o):o=e[2];let d=o,g=n?"border-border bg-muted font-medium":"border-input text-muted-foreground",m;e[3]!==g?(m=I("rounded-md border px-2 py-1 text-xs",g),e[3]=g,e[4]=m):m=e[4];let f=`logs-level-${t}`,c;return e[5]!==t||e[6]!==d||e[7]!==n||e[8]!==m||e[9]!==f?(c=(0,r.jsxDEV)("button",{"aria-pressed":n,className:m,"data-testid":f,onClick:d,type:"button",children:t},void 0,!1),e[5]=t,e[6]=d,e[7]=n,e[8]=m,e[9]=f,e[10]=c):c=e[10],c},"LevelToggle"),ue=i(a=>{let e=(0,T.c)(7),{bucket:t}=a,l;e[0]!==t.key?(l=(0,r.jsxDEV)("span",{className:"truncate text-muted-foreground",role:"gridcell",children:t.key},void 0,!1),e[0]=t.key,e[1]=l):l=e[1];let n;e[2]!==t.count?(n=(0,r.jsxDEV)("span",{className:"shrink-0 tabular-nums",role:"gridcell",children:t.count},void 0,!1),e[2]=t.count,e[3]=n):n=e[3];let o;return e[4]!==l||e[5]!==n?(o=(0,r.jsxDEV)("div",{className:"flex items-center justify-between gap-4 px-3 py-1 font-mono text-xs","data-testid":"logs-summary-row",role:"row",children:[l,n]},void 0,!0),e[4]=l,e[5]=n,e[6]=o):o=e[6],o},"SummaryBucketRow"),ct=i(({initialShardKey:a})=>{let e=Z(),[t,l]=(0,u.useState)("requests"),[n,o]=(0,u.useState)(a??""),[d,g]=(0,u.useState)(""),[m,f]=(0,u.useState)(()=>new Set),[c,w]=(0,u.useState)(""),[h,N]=(0,u.useState)("all"),[v,b]=(0,u.useState)(!1),[y,p]=(0,u.useState)(""),[x,L]=(0,u.useState)(""),[S,C]=(0,u.useState)(""),[k,E]=(0,u.useState)("all"),q=se(n.trim(),400),he=ze({functionPathPrefix:y,outcome:k,tableTouched:S,userId:x}),Q=K(U.getRequestLog,he,{enabled:t==="requests",live:!0,shardKey:q}),W=K(U.getLogs,{},{enabled:t==="errors",live:!0,shardKey:q}),F=t==="requests"?Q:W,{error:H,errorSource:ge,isLoading:j,liveError:ve}=F,pe=ce(W.data),J=ce(Q.data);(0,u.useEffect)(()=>{F.data!==void 0&&te(q)},[F.data,q]);let A=Ke(pe,{levels:m,now:Date.now(),path:c,range:h,search:d}),_=Ye(A),V=t==="requests"?J.length:A.length,$=t==="errors"&&v,P=(0,u.useMemo)(()=>H!==null?"error":V===0?j?$?"summary":"list":"empty":$?"summary":"list",[V,j,H,$]),X=(0,u.useRef)(null),O=le({count:V,estimateSize:i(()=>Fe,"estimateSize"),getScrollElement:i(()=>X.current,"getScrollElement"),initialRect:{height:G,width:800},observeElementRect:i((s,B)=>ne(s,B,G),"observeElementRect"),overscan:8}),be=O.getVirtualItems(),xe={height:O.getTotalSize(),position:"relative",width:"100%"},ye=i(s=>{g(s.target.value)},"onSearchChange"),we=i(s=>{f(B=>{let M=new Set(B);return M.has(s)?M.delete(s):M.add(s),M})},"toggleLevel"),Ne=i(s=>{w(s.target.value)},"onLogPathChange"),Le=i(s=>{N(s.target.value)},"onTimeRangeChange"),Se=i(()=>{b(s=>!s)},"toggleSummary"),ke=i(s=>{p(s.target.value)},"onPathChange"),Ce=i(s=>{L(s.target.value)},"onUserChange"),Ee=i(s=>{C(s.target.value)},"onTableChange"),Re=i(s=>{E(s.target.value)},"onOutcomeChange"),Ie=i(()=>{l("requests"),b(!1)},"showRequests"),Te=i(()=>{l("errors"),b(!1)},"showErrors");return(0,r.jsxDEV)("div",{className:"flex flex-col gap-4","data-testid":"lunora-logs",children:[(0,r.jsxDEV)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,r.jsxDEV)("div",{className:"inline-flex overflow-hidden rounded-lg border border-border",role:"tablist",children:[(0,r.jsxDEV)("button",{"aria-selected":t==="requests",className:I("px-3 py-1 text-sm",t==="requests"?"bg-muted font-medium":"text-muted-foreground"),"data-testid":"lg-view-requests",onClick:Ie,role:"tab",type:"button",children:e("Requests")},void 0,!1),(0,r.jsxDEV)("button",{"aria-selected":t==="errors",className:I("px-3 py-1 text-sm",t==="errors"?"bg-muted font-medium":"text-muted-foreground"),"data-testid":"lg-view-errors",onClick:Te,role:"tab",type:"button",children:e("Errors")},void 0,!1)]},void 0,!0),(0,r.jsxDEV)(re,{onChange:o,testId:"lg-shard-input",value:n},void 0,!1),(0,r.jsxDEV)(ae,{message:ve,prefix:"lg"},void 0,!1),(0,r.jsxDEV)("a",{className:"text-sm text-primary underline-offset-4 hover:underline","data-testid":"lg-cf-link",href:ie,rel:"noreferrer",target:"_blank",children:e("Open in Cloudflare")},void 0,!1)]},void 0,!0),t==="errors"&&(0,r.jsxDEV)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,r.jsxDEV)(R,{"aria-label":e("Search messages"),className:"h-8 w-48","data-testid":"lg-search",onChange:ye,placeholder:e("search message"),value:d},void 0,!1),(0,r.jsxDEV)(R,{"aria-label":e("Function path"),className:"h-8 w-40","data-testid":"logs-path-filter",onChange:Ne,placeholder:e("filter path"),value:c},void 0,!1),(0,r.jsxDEV)("div",{"aria-label":e("Level filter"),className:"inline-flex items-center gap-1","data-testid":"logs-level-filter",role:"group",children:fe.map(s=>(0,r.jsxDEV)(Ge,{level:s,onToggle:we,selected:m.has(s)},s,!1))},void 0,!1),(0,r.jsxDEV)("select",{"aria-label":e("Time range"),className:"h-8 rounded-md border border-input bg-transparent px-2 text-sm shadow-xs focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none","data-testid":"logs-time-range",onChange:Le,value:h,children:[(0,r.jsxDEV)("option",{value:"all",children:e("All time")},void 0,!1),(0,r.jsxDEV)("option",{value:"5m",children:e("Last 5m")},void 0,!1),(0,r.jsxDEV)("option",{value:"15m",children:e("Last 15m")},void 0,!1),(0,r.jsxDEV)("option",{value:"1h",children:e("Last hour")},void 0,!1)]},void 0,!0),(0,r.jsxDEV)("button",{"aria-pressed":v,className:I("h-8 rounded-md border px-3 text-sm",v?"border-border bg-muted font-medium":"border-input text-muted-foreground"),"data-testid":"logs-summary-toggle",onClick:Se,type:"button",children:e(v?"List":"Summary")},void 0,!1)]},void 0,!0),t==="requests"&&(0,r.jsxDEV)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,r.jsxDEV)(R,{"aria-label":e("Function path"),className:"h-8 w-44","data-testid":"lg-req-path",onChange:ke,placeholder:e("file:function"),value:y},void 0,!1),(0,r.jsxDEV)(R,{"aria-label":e("User id"),className:"h-8 w-32","data-testid":"lg-req-user",onChange:Ce,placeholder:e("userId"),value:x},void 0,!1),(0,r.jsxDEV)(R,{"aria-label":e("Table touched"),className:"h-8 w-32","data-testid":"lg-req-table",onChange:Ee,placeholder:e("table"),value:S},void 0,!1),(0,r.jsxDEV)("select",{"aria-label":e("Outcome filter"),className:"h-8 rounded-md border border-input bg-transparent px-2 text-sm shadow-xs focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none","data-testid":"lg-req-outcome",onChange:Re,value:k,children:[(0,r.jsxDEV)("option",{value:"all",children:e("all")},void 0,!1),(0,r.jsxDEV)("option",{value:"ok",children:e("ok")},void 0,!1),(0,r.jsxDEV)("option",{value:"error",children:e("error")},void 0,!1)]},void 0,!0)]},void 0,!0),P==="error"&&(0,r.jsxDEV)(oe,{error:ge,testId:"lg-error"},void 0,!1),P==="empty"&&(0,r.jsxDEV)(ee,{description:e("Function and request logs for this shard show up here as your app handles traffic."),icon:(0,r.jsxDEV)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:(0,r.jsxDEV)("path",{d:"M4 5h16M4 12h16M4 19h10"},void 0,!1)},void 0,!1),testId:"lg-empty",title:e("No logs.")},void 0,!1),P==="summary"&&(0,r.jsxDEV)("div",{className:"flex flex-col gap-4 rounded-xl border border-border bg-card p-4 shadow-xs","data-testid":"logs-summary",children:[(0,r.jsxDEV)("p",{className:"text-xs text-muted-foreground","data-testid":"logs-summary-total",children:e("{count} entries",{count:_.total})},void 0,!1),(0,r.jsxDEV)("div",{children:[(0,r.jsxDEV)("h4",{className:"mb-1 font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:e("By level")},void 0,!1),(0,r.jsxDEV)("div",{className:"overflow-hidden rounded-lg border border-border","data-testid":"logs-summary-levels",role:"grid",children:_.byLevel.map(s=>(0,r.jsxDEV)(ue,{bucket:s},s.key,!1))},void 0,!1)]},void 0,!0),(0,r.jsxDEV)("div",{children:[(0,r.jsxDEV)("h4",{className:"mb-1 font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:e("By function")},void 0,!1),(0,r.jsxDEV)("div",{className:"overflow-hidden rounded-lg border border-border","data-testid":"logs-summary-paths",role:"grid",children:_.byPath.map(s=>(0,r.jsxDEV)(ue,{bucket:s},s.key,!1))},void 0,!1)]},void 0,!0)]},void 0,!0),P==="list"&&(0,r.jsxDEV)("div",{className:"rounded-xl border border-border shadow-xs","data-testid":"lg-scroll",ref:X,style:Ae,children:(0,r.jsxDEV)("div",{"aria-label":e("Recent logs"),"data-testid":"lg-table",role:"grid",style:xe,children:be.map(s=>t==="requests"?(0,r.jsxDEV)(Be,{entry:J[s.index],index:s.index,measureRef:O.measureElement,start:s.start},s.key,!1):(0,r.jsxDEV)($e,{entry:A[s.index],index:s.index,measureRef:O.measureElement,start:s.start},s.key,!1))},void 0,!1)},void 0,!1)]},void 0,!0)},"LogsPanel");export{ct as LogsPanel,Ke as filterLogs,Ye as summarizeLogs};