@lunora/studio 1.0.0-alpha.79 → 1.0.0-alpha.80

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 (235) hide show
  1. package/dist/index.d.ts +28 -14
  2. package/dist/index.js +1 -1
  3. package/dist/mount.d.ts +1 -1
  4. package/dist/mount.js +1 -1
  5. package/dist/packem_chunks/ApiTab.js +1 -1
  6. package/dist/packem_chunks/AuditPanel.js +1 -1
  7. package/dist/packem_chunks/DeploymentHealthPanel.js +1 -1
  8. package/dist/packem_chunks/ExportImportPanel.js +3 -3
  9. package/dist/packem_chunks/FileBrowser.js +4 -4
  10. package/dist/packem_chunks/FunctionRunner.js +1 -1
  11. package/dist/packem_chunks/FunctionStatsPanel.js +1 -1
  12. package/dist/packem_chunks/HealthPanel.js +1 -1
  13. package/dist/packem_chunks/InsightsPanel.js +1 -1
  14. package/dist/packem_chunks/LogsPanel.js +1 -1
  15. package/dist/packem_chunks/MailPanel.js +2 -2
  16. package/dist/packem_chunks/MetricsPanel.js +1 -1
  17. package/dist/packem_chunks/NotificationsPanel.js +1 -1
  18. package/dist/packem_chunks/PitrPanel.js +1 -1
  19. package/dist/packem_chunks/SchemaViewer.js +1 -2
  20. package/dist/packem_chunks/SecurityAdvisorPanel.js +1 -1
  21. package/dist/packem_chunks/SettingsPanel.js +1 -1
  22. package/dist/packem_chunks/SqlEditorPanel.js +6 -4
  23. package/dist/packem_chunks/TableEditor.js +1 -1
  24. package/dist/packem_chunks/agents-panel.js +1 -1
  25. package/dist/packem_chunks/analytics-panel.js +1 -1
  26. package/dist/packem_chunks/auth-audit-panel.js +1 -1
  27. package/dist/packem_chunks/auth-config-panel.js +1 -1
  28. package/dist/packem_chunks/auth-sessions-panel.js +1 -1
  29. package/dist/packem_chunks/containers-panel.js +1 -1
  30. package/dist/packem_chunks/dashboards-panel.js +1 -1
  31. package/dist/packem_chunks/fanout-panel.js +1 -1
  32. package/dist/packem_chunks/flags-panel.js +1 -1
  33. package/dist/packem_chunks/issues-panel.js +1 -1
  34. package/dist/packem_chunks/kv-browser.js +1 -1
  35. package/dist/packem_chunks/log-drains-panel.js +4 -4
  36. package/dist/packem_chunks/migrations-route.js +1 -0
  37. package/dist/packem_chunks/organizations-panel.js +1 -1
  38. package/dist/packem_chunks/payments-panel.js +1 -1
  39. package/dist/packem_chunks/permissions-panel.js +1 -1
  40. package/dist/packem_chunks/queues-panel.js +1 -1
  41. package/dist/packem_chunks/rls-panel.js +1 -1
  42. package/dist/packem_chunks/schedule-panel.js +1 -1
  43. package/dist/packem_chunks/sparkline.js +1 -1
  44. package/dist/packem_chunks/storage-rules-panel.js +1 -1
  45. package/dist/packem_chunks/subscriptions-panel.js +1 -1
  46. package/dist/packem_chunks/sync-client-panel.js +1 -1
  47. package/dist/packem_chunks/traces-panel.js +1 -1
  48. package/dist/packem_chunks/users-panel.js +1 -1
  49. package/dist/packem_chunks/vector-browser.js +1 -1
  50. package/dist/packem_chunks/workflows-panel.js +1 -1
  51. package/dist/packem_shared/ADMIN_FUNCTIONS-BnD4aovm.js +1 -0
  52. package/dist/packem_shared/ApiDocsPanel-DfUQ1ZAF.js +2 -0
  53. package/dist/packem_shared/{ApiReferencePanel-C42v1jr6.js → ApiReferencePanel-9q8BbJl-.js} +1 -1
  54. package/dist/packem_shared/CommandPalette--SQwfTW1.js +1 -0
  55. package/dist/packem_shared/DataBrowser-CuRlztBz.js +1 -0
  56. package/dist/packem_shared/DataFilters-B26ZeqBZ.js +1 -0
  57. package/dist/packem_shared/GlobalDataBrowser-DB-vQ2_H.js +1 -0
  58. package/dist/packem_shared/HomePanel-Dcs4a3Ax.js +1 -0
  59. package/dist/packem_shared/MigrationsPanel-C2OnsqRb.js +1 -0
  60. package/dist/packem_shared/{OpenRpcReferencePanel-sGsIgYWj.js → OpenRpcReferencePanel-qOZcWXMs.js} +1 -1
  61. package/dist/packem_shared/ScheduledJobs-D8kBZWBu.js +1 -0
  62. package/dist/packem_shared/Studio-B26_pT8J.js +1 -0
  63. package/dist/packem_shared/StudioApp-bXhJeLlZ.js +1 -0
  64. package/dist/packem_shared/advisor-view-Pa8HLtBv.js +1 -0
  65. package/dist/packem_shared/{app.d-bRPJhby-.d.ts → app.d-DW7yZsfu.d.ts} +1 -3
  66. package/dist/packem_shared/bar-chart-DraN_srt.js +9 -0
  67. package/dist/packem_shared/data-grid-DcxyIXwG.js +1 -0
  68. package/dist/packem_shared/data-view-params-ClrV7XgF.js +1 -0
  69. package/dist/packem_shared/error-alert-t6cpEi0z.js +1 -0
  70. package/dist/packem_shared/grid-features-jnrD0SpX.js +6 -0
  71. package/dist/packem_shared/{home-panel-Cm88Nvqh.js → home-panel-CU6MWLHG.js} +2 -2
  72. package/dist/packem_shared/{internal-AtZ4bTal.js → internal-BSIsQVC6.js} +1 -1
  73. package/dist/packem_shared/live-status-CmuRLFKf.js +1 -0
  74. package/dist/packem_shared/operation-console-provider-BMJNtiyB.js +1 -0
  75. package/dist/packem_shared/recording-client-DRAZEmzE.js +1 -0
  76. package/dist/packem_shared/reference-view-DnYYWr7I.js +12 -0
  77. package/dist/packem_shared/result-chart-DzJOVsaw.js +1 -0
  78. package/dist/packem_shared/schema-diagram-cg-bz_VL.js +2 -0
  79. package/dist/packem_shared/{sparkline-DtcZoU48.js → sparkline-CgjeUU2I.js} +1 -1
  80. package/dist/packem_shared/studio-q-C-acL7.js +2 -0
  81. package/dist/packem_shared/table-list-sidebar-BFkSQwlB.js +1 -0
  82. package/dist/packem_shared/use-admin-query-QJ-ibl5u.js +1 -0
  83. package/dist/packem_shared/use-async-submit-q3ymBJkD.js +1 -0
  84. package/dist/packem_shared/{use-auth-config-9S_K_W-G.js → use-auth-config-BObBpdsi.js} +1 -1
  85. package/dist/packem_shared/use-sql-assistant-CHEu2-Rk.js +1 -0
  86. package/dist/standalone/chunk-2GA4SHO7.js +1 -0
  87. package/dist/standalone/{chunk-NG6LYBPJ.js → chunk-2VDFV5TD.js} +1 -1
  88. package/dist/standalone/chunk-2WOIRKEI.js +1 -0
  89. package/dist/standalone/chunk-33CL6OHR.js +1 -0
  90. package/dist/standalone/{chunk-EIT7ERYE.js → chunk-34D36UCW.js} +1 -1
  91. package/dist/standalone/chunk-3C3CG7ZK.js +1 -0
  92. package/dist/standalone/{chunk-6CULAILE.js → chunk-3O3HAXW7.js} +1 -1
  93. package/dist/standalone/{chunk-LSEZN2ZL.js → chunk-3STOIE7Q.js} +1 -1
  94. package/dist/standalone/chunk-53WEPGUD.js +1 -0
  95. package/dist/standalone/chunk-5CVJS7ON.js +1 -0
  96. package/dist/standalone/chunk-6IKEW5LG.js +1 -0
  97. package/dist/standalone/chunk-6LNCYDZO.js +1 -0
  98. package/dist/standalone/chunk-6NY7SPDL.js +1 -0
  99. package/dist/standalone/chunk-6PNPIW6I.js +2 -0
  100. package/dist/standalone/{chunk-AVZGVZZ7.js → chunk-6VAKZALJ.js} +1 -1
  101. package/dist/standalone/chunk-6YI4WJO4.js +1 -0
  102. package/dist/standalone/{chunk-HYT2ZUNP.js → chunk-6YTSSIEJ.js} +2 -2
  103. package/dist/standalone/{chunk-KYF2E5CJ.js → chunk-7LWMHTJ3.js} +1 -1
  104. package/dist/standalone/chunk-A74VSSA2.js +4 -0
  105. package/dist/standalone/chunk-CCVXYYPJ.js +1 -0
  106. package/dist/standalone/chunk-CT5MMH4O.js +1 -0
  107. package/dist/standalone/chunk-CTNB2KIA.js +1 -0
  108. package/dist/standalone/chunk-CU55Y5TV.js +62 -0
  109. package/dist/standalone/chunk-D2RKH6JK.js +1 -0
  110. package/dist/standalone/chunk-E3NMX2VU.js +4 -0
  111. package/dist/standalone/chunk-FNPJ7GJZ.js +1 -0
  112. package/dist/standalone/chunk-FOBRNWBG.js +3 -0
  113. package/dist/standalone/chunk-G6PSMGLD.js +1 -0
  114. package/dist/standalone/chunk-GAX5IZYG.js +8 -0
  115. package/dist/standalone/chunk-GB6U2BPU.js +1 -0
  116. package/dist/standalone/chunk-GEDMLM4A.js +6 -0
  117. package/dist/standalone/chunk-GXSZH7VJ.js +13 -0
  118. package/dist/standalone/chunk-GYKVBKT5.js +1 -0
  119. package/dist/standalone/chunk-H6YOWRFB.js +1 -0
  120. package/dist/standalone/chunk-HJ3E4YF5.js +1 -0
  121. package/dist/standalone/chunk-HJD2YUQS.js +1 -0
  122. package/dist/standalone/chunk-IHQC7J35.js +1 -0
  123. package/dist/standalone/chunk-JLOWAJRR.js +1 -0
  124. package/dist/standalone/chunk-JRMMYIAF.js +1 -0
  125. package/dist/standalone/{chunk-W6TE2I2D.js → chunk-KC44QCN6.js} +1 -1
  126. package/dist/standalone/chunk-KJB7YAKB.js +1 -0
  127. package/dist/standalone/chunk-KLQYC6CC.js +1 -0
  128. package/dist/standalone/{chunk-XQGANNLS.js → chunk-KZ3ALMMP.js} +1 -1
  129. package/dist/standalone/chunk-L7R74G63.js +1 -0
  130. package/dist/standalone/{chunk-3RTTXLMU.js → chunk-OY2RVUZL.js} +1 -1
  131. package/dist/standalone/chunk-P4YLIBCN.js +1 -0
  132. package/dist/standalone/chunk-PZVU2QMX.js +1 -0
  133. package/dist/standalone/{chunk-PRJ4RJDU.js → chunk-Q7O6B7WC.js} +1 -1
  134. package/dist/standalone/chunk-QLQADHFE.js +1 -0
  135. package/dist/standalone/{chunk-7LQWFOEU.js → chunk-QXXIJAD5.js} +1 -1
  136. package/dist/standalone/chunk-QZGTH6WH.js +1 -0
  137. package/dist/standalone/chunk-RJP3WBZ4.js +1 -0
  138. package/dist/standalone/chunk-RNL6BSFM.js +1 -0
  139. package/dist/standalone/chunk-RNRJKBY3.js +4 -0
  140. package/dist/standalone/{chunk-7YEFOSPH.js → chunk-RQ7AFLIV.js} +1 -1
  141. package/dist/standalone/chunk-S252DAFP.js +1 -0
  142. package/dist/standalone/chunk-S2VVR7HI.js +1 -0
  143. package/dist/standalone/chunk-SKW6J4VW.js +1 -0
  144. package/dist/standalone/chunk-T7IUZIF4.js +1 -0
  145. package/dist/standalone/chunk-TTGOOYLF.js +1 -0
  146. package/dist/standalone/chunk-U6TNNM5U.js +1 -0
  147. package/dist/standalone/chunk-VHWOCPRK.js +1 -0
  148. package/dist/standalone/chunk-W6SAOXGH.js +6 -0
  149. package/dist/standalone/{chunk-YCRMVBPW.js → chunk-WBYSSCV2.js} +1 -1
  150. package/dist/standalone/{chunk-LFXFP4IF.js → chunk-X665E2HU.js} +1 -1
  151. package/dist/standalone/chunk-XDAT7LHC.js +1 -0
  152. package/dist/standalone/chunk-XS5LDR52.js +1 -0
  153. package/dist/standalone/chunk-Y5Y7DHFW.js +1 -0
  154. package/dist/standalone/chunk-YJYTMQJI.js +1 -0
  155. package/dist/standalone/chunk-Z2V42P7J.js +1 -0
  156. package/dist/standalone/studio.js +5 -5
  157. package/dist/styles.css +1 -1
  158. package/package.json +1 -1
  159. package/dist/packem_chunks/MigrationsPanel.js +0 -1
  160. package/dist/packem_shared/ADMIN_FUNCTIONS-CpgIo9pj.js +0 -1
  161. package/dist/packem_shared/ApiDocsPanel-CjdsxN1t.js +0 -2
  162. package/dist/packem_shared/CommandPalette-CVIaY3j8.js +0 -1
  163. package/dist/packem_shared/DataBrowser-Bfstz_au.js +0 -1
  164. package/dist/packem_shared/DataFilters-Csb30F0C.js +0 -1
  165. package/dist/packem_shared/GlobalDataBrowser-RLJ6NvOs.js +0 -1
  166. package/dist/packem_shared/HomePanel-B8EFM4u3.js +0 -1
  167. package/dist/packem_shared/ScheduledJobs-DUbo6epc.js +0 -1
  168. package/dist/packem_shared/Studio-BDtS9C5g.js +0 -1
  169. package/dist/packem_shared/StudioApp-DjLzIO9E.js +0 -1
  170. package/dist/packem_shared/advisor-view-DaCX9Jy5.js +0 -1
  171. package/dist/packem_shared/bar-chart-AryFCeoa.js +0 -9
  172. package/dist/packem_shared/data-grid-BMBKzMEJ.js +0 -1
  173. package/dist/packem_shared/data-view-params-C8T3bW1z.js +0 -1
  174. package/dist/packem_shared/error-alert-B59DnrDI.js +0 -1
  175. package/dist/packem_shared/grid-features-uZCUj955.js +0 -6
  176. package/dist/packem_shared/live-status-CGW2JHf_.js +0 -1
  177. package/dist/packem_shared/reference-view-KvhektwF.js +0 -12
  178. package/dist/packem_shared/result-chart-CwKhhKM0.js +0 -1
  179. package/dist/packem_shared/studio-BmWFd-Rz.js +0 -2
  180. package/dist/packem_shared/table-list-sidebar-CMCcNALK.js +0 -1
  181. package/dist/packem_shared/use-admin-query-Di3fLE8H.js +0 -1
  182. package/dist/packem_shared/use-async-submit-DLNCqLFq.js +0 -1
  183. package/dist/standalone/chunk-2SHUN7KF.js +0 -1
  184. package/dist/standalone/chunk-2Y36BVVM.js +0 -4
  185. package/dist/standalone/chunk-3EXLKL6V.js +0 -1
  186. package/dist/standalone/chunk-3KAERFMC.js +0 -1
  187. package/dist/standalone/chunk-4XDMVUS5.js +0 -1
  188. package/dist/standalone/chunk-5RF4QDDA.js +0 -6
  189. package/dist/standalone/chunk-5YWJNF5X.js +0 -1
  190. package/dist/standalone/chunk-66YJ3IOZ.js +0 -1
  191. package/dist/standalone/chunk-6KHEBRBB.js +0 -1
  192. package/dist/standalone/chunk-6WCIFGDW.js +0 -1
  193. package/dist/standalone/chunk-7RG3AKPY.js +0 -1
  194. package/dist/standalone/chunk-A2FPLOMJ.js +0 -1
  195. package/dist/standalone/chunk-AADXUXZO.js +0 -1
  196. package/dist/standalone/chunk-ARI4JTIH.js +0 -1
  197. package/dist/standalone/chunk-BDO4J5AP.js +0 -1
  198. package/dist/standalone/chunk-BMQJ4CAO.js +0 -1
  199. package/dist/standalone/chunk-CMUP7HPS.js +0 -1
  200. package/dist/standalone/chunk-CP7AUUOU.js +0 -1
  201. package/dist/standalone/chunk-DX3RMFQU.js +0 -8
  202. package/dist/standalone/chunk-E2CJUP53.js +0 -13
  203. package/dist/standalone/chunk-FLYO3XY5.js +0 -1
  204. package/dist/standalone/chunk-FWCKM2CU.js +0 -1
  205. package/dist/standalone/chunk-GITJXQOS.js +0 -4
  206. package/dist/standalone/chunk-GP6IRITM.js +0 -1
  207. package/dist/standalone/chunk-GXU3ATKS.js +0 -1
  208. package/dist/standalone/chunk-H5Y5NQPL.js +0 -1
  209. package/dist/standalone/chunk-HALNNKTC.js +0 -1
  210. package/dist/standalone/chunk-HK4OVYG3.js +0 -1
  211. package/dist/standalone/chunk-HQEMYD2K.js +0 -1
  212. package/dist/standalone/chunk-I4WGRDL2.js +0 -1
  213. package/dist/standalone/chunk-ISZSYNTI.js +0 -4
  214. package/dist/standalone/chunk-JWG3VRGB.js +0 -1
  215. package/dist/standalone/chunk-KDYNM3GV.js +0 -1
  216. package/dist/standalone/chunk-KP6JQSH2.js +0 -4
  217. package/dist/standalone/chunk-LLXFYRGQ.js +0 -1
  218. package/dist/standalone/chunk-LU3GW7HI.js +0 -1
  219. package/dist/standalone/chunk-M536Y2KX.js +0 -1
  220. package/dist/standalone/chunk-MVGE3JJN.js +0 -1
  221. package/dist/standalone/chunk-MXSHWB3M.js +0 -1
  222. package/dist/standalone/chunk-NL2DZKFI.js +0 -1
  223. package/dist/standalone/chunk-OGVCXKRL.js +0 -2
  224. package/dist/standalone/chunk-OPC233PZ.js +0 -1
  225. package/dist/standalone/chunk-P4CWOYFL.js +0 -1
  226. package/dist/standalone/chunk-PUY3YDXI.js +0 -1
  227. package/dist/standalone/chunk-QZMR6MUG.js +0 -1
  228. package/dist/standalone/chunk-WCWYSOCN.js +0 -62
  229. package/dist/standalone/chunk-WEO3YVP6.js +0 -3
  230. package/dist/standalone/chunk-X2FQ6B5V.js +0 -1
  231. package/dist/standalone/chunk-XIZNYKOD.js +0 -1
  232. package/dist/standalone/chunk-XS6Q6GGV.js +0 -1
  233. package/dist/standalone/chunk-Y3CQDULJ.js +0 -1
  234. package/dist/standalone/chunk-Z2JPEI2V.js +0 -1
  235. /package/dist/standalone/{chunk-4CGALXS3.js → chunk-OG4N2XHD.js} +0 -0
@@ -1,3 +0,0 @@
1
- import{a as q}from"./chunk-7LQWFOEU.js";import{c as k}from"./chunk-BMQJ4CAO.js";import{a as y,e as w}from"./chunk-UZERI5YC.js";import{a as P}from"./chunk-V53KNYRN.js";import{a as D}from"./chunk-LFXFP4IF.js";import{b as j}from"./chunk-GRL5MG3Z.js";import"./chunk-7T7UOTYK.js";import"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import{c as $}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import"./chunk-6ST5ECQA.js";import{a as f}from"./chunk-AADXUXZO.js";import{f as L}from"./chunk-EN2QAEO4.js";import"./chunk-XBDKZZ67.js";import{d as J,f as I,g as S,h as b,m as v}from"./chunk-4CGALXS3.js";import{c as N}from"./chunk-AADILRJW.js";import{a,e as A,f as U,h as z}from"./chunk-3XIESWL4.js";var c=A(U(),1);var e=A(z(),1);var X=I(f.exportShard),G=I(f.importShard),H=a(m=>m.map(s=>JSON.stringify(s)).join(`
2
- `),"X"),Q=a(m=>{let s=[],x=m.split(`
3
- `);for(let[t,l]of x.entries()){let h=l.trim();if(h==="")continue;let n=JSON.parse(h);if(typeof n!="object"||n===null)throw new N("INTERNAL",`line ${(t+1).toString()}: expected a { table, doc } object`);let o=n;if(typeof o.table!="string"||typeof o.doc!="object"||o.doc===null||Array.isArray(o.doc))throw new N("INTERNAL",`line ${(t+1).toString()}: expected a { table, doc } object`);s.push(o)}return s},"z"),ie=a(({initialShardKey:m})=>{let s=L(),x=k(),t=J(),[l,h]=(0,c.useState)(m??""),[n,o]=(0,c.useState)(""),[E,p]=(0,c.useState)(!1),[C,u]=(0,c.useState)(null),[i,g]=(0,c.useState)(null),[O,T]=(0,c.useState)(null),R=a(async()=>{p(!0),u(null),g(null);try{let r=await s.query(X,{},S(l));j(l),o(H(r.rows)),T(r.rows.length)}catch(r){u(b(r))}finally{p(!1)}},"T"),_=a(async()=>{p(!0),u(null),g(null),T(null);let r;try{r=Q(n)}catch(d){u(t("Invalid NDJSON: {message}",{message:b(d)})),p(!1);return}try{let d=await s.query(G,{rows:r},S(l));j(l),g(d),x(f.readTablePage),x(f.listTables)}catch(d){u(b(d))}finally{p(!1)}},"C"),B=i===null?0:Object.values(i.inserted).reduce((r,d)=>r+d,0),F=a(()=>{v(R())},"k"),K=a(()=>{v(_())},"J"),M=a(r=>{o(r.target.value)},"q");return(0,e.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-export-import",children:[(0,e.jsxs)(y,{className:"rounded-xl border border-border bg-card shadow-xs",children:[(0,e.jsx)("header",{className:"border-b border-border px-4 py-3",children:(0,e.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:t("Export")})}),(0,e.jsxs)(w,{className:"flex flex-col gap-3 p-4",children:[(0,e.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,e.jsx)(D,{onChange:h,testId:"ei-shard-input",value:l}),(0,e.jsx)($,{"data-testid":"ei-export",disabled:E,onClick:F,type:"button",children:t("Export")})]}),O!==null&&(0,e.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"ei-export-result",children:t("Exported {count} rows.",{count:O})})]})]}),(0,e.jsxs)(y,{className:"rounded-xl border border-border bg-card shadow-xs",children:[(0,e.jsx)("header",{className:"border-b border-border px-4 py-3",children:(0,e.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:t("Import")})}),(0,e.jsxs)(w,{className:"flex flex-col gap-3 p-4",children:[(0,e.jsx)(P,{"aria-label":"NDJSON",className:"font-mono text-xs min-h-40 rounded-md","data-testid":"ei-ndjson",onChange:M,placeholder:'{"table":"messages","doc":{\u2026}}',value:n}),(0,e.jsx)("div",{className:"flex flex-wrap items-center gap-2",children:(0,e.jsx)(q,{confirmLabel:t("Import (writes rows)?"),disabled:E||n.trim()==="",onConfirm:K,testId:"ei-import",children:t("Import")})}),i!==null&&(0,e.jsxs)("div",{className:"flex flex-col gap-2","data-testid":"ei-import-result",children:[(0,e.jsx)("p",{className:"text-sm text-muted-foreground",children:t("Inserted {inserted}, {conflicts} conflicts, {errors} errors.",{conflicts:i.conflicts,errors:i.errors.length,inserted:B})}),i.errors.length>0&&(0,e.jsx)("ul",{className:"flex flex-col gap-1","data-testid":"ei-import-errors",children:i.errors.map(r=>(0,e.jsx)("li",{className:"text-xs text-destructive",children:t("line {line} ({table}): {message}",{line:r.line,message:r.message,table:r.table})},`${r.table}-${r.line.toString()}`))})]})]})]}),C!==null&&(0,e.jsx)("p",{className:"text-sm text-destructive","data-testid":"ei-error",role:"alert",children:C})]})},"ne");export{ie as ExportImportPanel};
@@ -1 +0,0 @@
1
- import{d as n}from"./chunk-4CGALXS3.js";import{a,e as l,g as u,h as x}from"./chunk-3XIESWL4.js";var m=l(u(),1);var v=l(x(),1);var f=a(c=>{let r=(0,m.c)(6),{message:t,prefix:p}=c,o=n();if(t===void 0)return null;let i=`${p}-live-error`,e;r[0]!==t||r[1]!==o?(e=o("Live unavailable: {liveError}",{liveError:t}),r[0]=t,r[1]=o,r[2]=e):e=r[2];let s;return r[3]!==i||r[4]!==e?(s=(0,v.jsx)("span",{className:"text-xs text-destructive","data-testid":i,role:"status",children:e}),r[3]=i,r[4]=e,r[5]=s):s=r[5],s},"p");export{f as a};
@@ -1 +0,0 @@
1
- import{a as wt}from"./chunk-KUVMORDQ.js";import{a as bt,b as vt,c as Nt,d as yt,e as Ve}from"./chunk-CMUP7HPS.js";import{a as pt}from"./chunk-QWGT25SE.js";import{a as ht,b as gt,c as ft,d as xt,e as je}from"./chunk-3RTTXLMU.js";import"./chunk-2PJNAWB3.js";import{a as mt}from"./chunk-X2FQ6B5V.js";import{e as ut}from"./chunk-SKHEGARW.js";import"./chunk-SD4BERSA.js";import"./chunk-IC4L6G56.js";import"./chunk-7YEFOSPH.js";import"./chunk-BGBLQ563.js";import"./chunk-IVFHIQOT.js";import"./chunk-WCWYSOCN.js";import"./chunk-4UOFSGUS.js";import"./chunk-ILNELDFC.js";import{e as tt}from"./chunk-SMIESS7P.js";import{a as dt}from"./chunk-LFKCLLPT.js";import"./chunk-T6VMSOBB.js";import{b as Le}from"./chunk-BMQJ4CAO.js";import{a as We,b as Be,c as Ge,d as Re,e as se,f as E}from"./chunk-MIQTKZAR.js";import{a as he,b as Oe,c as Ce,d as rt,e as fe}from"./chunk-UZERI5YC.js";import"./chunk-QBWRC5YX.js";import{a as ct}from"./chunk-LFXFP4IF.js";import{a as it,b as ot}from"./chunk-GRL5MG3Z.js";import"./chunk-7T7UOTYK.js";import"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import{c as Ue}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import{b as Qe}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as De}from"./chunk-AADXUXZO.js";import{f as et}from"./chunk-EN2QAEO4.js";import"./chunk-XBDKZZ67.js";import{d as Te,f as at,g as lt,h as st,i as nt,m as He,p as Ke}from"./chunk-4CGALXS3.js";import"./chunk-AADILRJW.js";import{a as o,e as Je,f as $t,g as kt,h as _t}from"./chunk-3XIESWL4.js";var Fe=Je(kt(),1);var O=Je($t(),1);var t=Je(_t(),1);var It=o((s,e)=>s<e?-1:s>e?1:0,"Mt"),Ze=o(s=>{if(s===void 0)return"null";if(typeof s=="bigint")throw new TypeError("stableStringify: cannot use a bigint in a stable JSON cache key \u2014 pass it as a string, or use stableWireKey");if(s===null||typeof s!="object")return JSON.stringify(s);if(Array.isArray(s))return`[${s.map(p=>Ze(p)).join(",")}]`;let e=Object.getPrototypeOf(s);if(e!==null&&e!==Object.prototype){let p=s.constructor?.name??"value";throw new TypeError(`stableStringify: cannot use a ${p} in a stable JSON cache key \u2014 only plain objects, arrays, and JSON primitives are supported (wire-typed values key via stableWireKey)`)}let l=s,r=Object.keys(l).toSorted(It),a=[];for(let p of r){let b=l[p];b!==void 0&&a.push(`${JSON.stringify(p)}:${Ze(b)}`)}return`{${a.join(",")}}`},"We"),St=o((s,e,l)=>`${s}:${e}:${Ze(l??{})}`,"rt"),qt=o((s,e)=>s==="gauge"?e.last:s==="histogram"?e.sum/Math.max(1,e.count):e.sum,"at"),Mt=o((s,e)=>qt(s,e),"It"),Ft=o(s=>qt(s.kind,s),"Ft"),Xe=o(s=>Number.isInteger(s)?s.toLocaleString():s.toLocaleString(void 0,{maximumFractionDigits:2}),"Je"),Tt=o(s=>Array.isArray(s?.series)?s.series:[],"Ct"),Ot="FUNCTION_NOT_FOUND",Ct=o(s=>{let e=new Map;if(!Array.isArray(s?.series))return e;for(let l of s.series)e.set(St(l.kind,l.name,l.attributes),l.points);return e},"Tt"),Dt={counter:"secondary",gauge:"default",histogram:"outline"},Rt=o(s=>{let e=(0,Fe.c)(18),{name:l,onOpenTrace:r,traceId:a}=s,p=Te();if(a===void 0){let m;return e[0]===Symbol.for("react.memo_cache_sentinel")?(m=(0,t.jsx)("span",{className:"text-muted-foreground",children:"\u2014"}),e[0]=m):m=e[0],m}let b;e[1]!==a?(b=a.slice(0,8),e[1]=a,e[2]=b):b=e[2];let f=b;if(r===void 0){let m=`mt-instrument-trace-${l}`,N;return e[3]!==f||e[4]!==m||e[5]!==a?(N=(0,t.jsx)("span",{className:"text-muted-foreground","data-testid":m,title:a,children:f}),e[3]=f,e[4]=m,e[5]=a,e[6]=N):N=e[6],N}let h=`mt-instrument-trace-${l}`,g;e[7]!==r||e[8]!==a?(g=o(()=>{r(a)},"g"),e[7]=r,e[8]=a,e[9]=g):g=e[9];let v;e[10]!==p||e[11]!==a?(v=p("Open the exemplar trace {trace}",{trace:a}),e[10]=p,e[11]=a,e[12]=v):v=e[12];let u;return e[13]!==f||e[14]!==h||e[15]!==g||e[16]!==v?(u=(0,t.jsx)("button",{className:"text-primary underline-offset-4 hover:underline","data-testid":h,onClick:g,title:v,type:"button",children:f}),e[13]=f,e[14]=h,e[15]=g,e[16]=v,e[17]=u):u=e[17],u},"Dt"),jt=o(s=>{let e=(0,Fe.c)(105),{onOpenTrace:l,shardKey:r}=s,a=Te(),p;e[0]===Symbol.for("react.memo_cache_sentinel")?(p={},e[0]=p):p=e[0];let b;e[1]!==r?(b={live:!0,shardKey:r},e[1]=r,e[2]=b):b=e[2];let{data:f,error:h,errorSource:g}=Le(De.getMetricSeries,p,b),v;e[3]===Symbol.for("react.memo_cache_sentinel")?(v={},e[3]=v):v=e[3];let u;e[4]!==r?(u={live:!0,shardKey:r},e[4]=r,e[5]=u):u=e[5];let{data:m}=Le(De.getMetricHistory,v,u),N,ne,C,P,J,c,q,ie,D,R,M,x,j;if(e[6]!==f||e[7]!==h||e[8]!==g||e[9]!==m||e[10]!==l||e[11]!==a){ie=Symbol.for("react.early_return_sentinel");e:{let ce=Tt(f),me=nt(g)===Ot;if(h!==null&&!me){let i;e[25]!==a?(i=a("Instruments"),e[25]=a,e[26]=i):i=e[26];let F;e[27]!==i?(F=(0,t.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:i}),e[27]=i,e[28]=F):F=e[28];let A;e[29]!==h||e[30]!==a?(A=a("Instruments unavailable: {error}",{error:h}),e[29]=h,e[30]=a,e[31]=A):A=e[31];let K;e[32]!==A?(K=(0,t.jsx)("span",{className:"text-xs text-muted-foreground","data-testid":"mt-instruments-error",role:"status",children:A}),e[32]=A,e[33]=K):K=e[33];let le;e[34]!==F||e[35]!==K?(le=(0,t.jsxs)("section",{className:"flex flex-col gap-2","data-testid":"mt-instruments",children:[F,K]}),e[34]=F,e[35]=K,e[36]=le):le=e[36],ie=le;break e}if(ce.length===0){ie=null;break e}let ue=Ct(m),Q;e[37]!==a?(Q=o(i=>a(i==="counter"?"Counter":i==="gauge"?"Gauge":"Histogram"),"P"),e[37]=a,e[38]=Q):Q=e[38];let n=Q;J="flex flex-col gap-2",c="mt-instruments";let k;e[39]!==a?(k=a("Instruments"),e[39]=a,e[40]=k):k=e[40],e[41]!==k?(q=(0,t.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:k}),e[41]=k,e[42]=q):q=e[42],P=he,j="overflow-hidden py-0",C=fe,x="px-0",ne=We,R="mt-instruments-table";let y;e[43]!==a?(y=a("name"),e[43]=a,e[44]=y):y=e[44];let S;e[45]!==y?(S=(0,t.jsx)(se,{children:y}),e[45]=y,e[46]=S):S=e[46];let U;e[47]!==a?(U=a("kind"),e[47]=a,e[48]=U):U=e[48];let H;e[49]!==U?(H=(0,t.jsx)(se,{children:U}),e[49]=U,e[50]=H):H=e[50];let W;e[51]!==a?(W=a("value"),e[51]=a,e[52]=W):W=e[52];let B;e[53]!==W?(B=(0,t.jsx)(se,{className:"text-right",children:W}),e[53]=W,e[54]=B):B=e[54];let G;e[55]!==a?(G=a("count"),e[55]=a,e[56]=G):G=e[56];let V;e[57]!==G?(V=(0,t.jsx)(se,{className:"text-right",children:G}),e[57]=G,e[58]=V):V=e[58];let X;e[59]!==a?(X=a("range"),e[59]=a,e[60]=X):X=e[60];let Y;e[61]!==X?(Y=(0,t.jsx)(se,{className:"text-right",children:X}),e[61]=X,e[62]=Y):Y=e[62];let Z;e[63]!==a?(Z=a("trend"),e[63]=a,e[64]=Z):Z=e[64];let ee;e[65]!==Z?(ee=(0,t.jsx)(se,{children:Z}),e[65]=Z,e[66]=ee):ee=e[66];let te;e[67]!==a?(te=a("trace"),e[67]=a,e[68]=te):te=e[68];let re;e[69]!==te?(re=(0,t.jsx)(se,{children:te}),e[69]=te,e[70]=re):re=e[70];let de;e[71]!==a?(de=a("dimensions"),e[71]=a,e[72]=de):de=e[72];let ae;e[73]!==de?(ae=(0,t.jsx)(se,{children:de}),e[73]=de,e[74]=ae):ae=e[74],e[75]!==S||e[76]!==H||e[77]!==B||e[78]!==V||e[79]!==Y||e[80]!==ee||e[81]!==re||e[82]!==ae?(M=(0,t.jsx)(Be,{children:(0,t.jsxs)(Re,{children:[S,H,B,V,Y,ee,re,ae]})}),e[75]=S,e[76]=H,e[77]=B,e[78]=V,e[79]=Y,e[80]=ee,e[81]=re,e[82]=ae,e[83]=M):M=e[83],N=Ge,D=ce.map(i=>{let F=pt(i.attributes),A=St(i.kind,i.name,i.attributes),K=(ue.get(A)??[]).map(le=>Mt(i.kind,le));return(0,t.jsxs)(Re,{"data-testid":`mt-instrument-${i.name}`,children:[(0,t.jsx)(E,{className:"font-mono text-xs",title:i.functionPath,children:i.name}),(0,t.jsx)(E,{children:(0,t.jsx)(Qe,{variant:Dt[i.kind],children:n(i.kind)})}),(0,t.jsx)(E,{className:"text-right font-mono tabular-nums","data-testid":`mt-instrument-value-${i.name}`,children:Xe(Ft(i))}),(0,t.jsx)(E,{className:"text-right tabular-nums text-muted-foreground",children:i.count.toLocaleString()}),(0,t.jsx)(E,{className:"text-right font-mono text-xs tabular-nums text-muted-foreground",children:i.min===i.max?"\u2014":`${Xe(i.min)}\u2013${Xe(i.max)}`}),(0,t.jsx)(E,{children:K.length>=2?(0,t.jsx)(Ve,{ariaLabel:a("{name} trend",{name:i.name}),className:"h-6 w-24 text-foreground",series:K,testId:`mt-instrument-trend-${i.name}`}):(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:"\u2014"})}),(0,t.jsx)(E,{className:"font-mono text-xs",children:(0,t.jsx)(Rt,{name:i.name,onOpenTrace:l,traceId:i.exemplarTraceId})}),(0,t.jsx)(E,{className:"max-w-64 truncate font-mono text-xs text-muted-foreground",title:F,children:F===""?"\u2014":F})]},A)})}e[6]=f,e[7]=h,e[8]=g,e[9]=m,e[10]=l,e[11]=a,e[12]=N,e[13]=ne,e[14]=C,e[15]=P,e[16]=J,e[17]=c,e[18]=q,e[19]=ie,e[20]=D,e[21]=R,e[22]=M,e[23]=x,e[24]=j}else N=e[12],ne=e[13],C=e[14],P=e[15],J=e[16],c=e[17],q=e[18],ie=e[19],D=e[20],R=e[21],M=e[22],x=e[23],j=e[24];if(ie!==Symbol.for("react.early_return_sentinel"))return ie;let L;e[84]!==N||e[85]!==D?(L=(0,t.jsx)(N,{children:D}),e[84]=N,e[85]=D,e[86]=L):L=e[86];let I;e[87]!==ne||e[88]!==L||e[89]!==R||e[90]!==M?(I=(0,t.jsxs)(ne,{"data-testid":R,children:[M,L]}),e[87]=ne,e[88]=L,e[89]=R,e[90]=M,e[91]=I):I=e[91];let z;e[92]!==C||e[93]!==I||e[94]!==x?(z=(0,t.jsx)(C,{className:x,children:I}),e[92]=C,e[93]=I,e[94]=x,e[95]=z):z=e[95];let w;e[96]!==P||e[97]!==z||e[98]!==j?(w=(0,t.jsx)(P,{className:j,children:z}),e[96]=P,e[97]=z,e[98]=j,e[99]=w):w=e[99];let $;return e[100]!==J||e[101]!==c||e[102]!==q||e[103]!==w?($=(0,t.jsxs)("section",{className:J,"data-testid":c,children:[q,w]}),e[100]=J,e[101]=c,e[102]=q,e[103]=w,e[104]=$):$=e[104],$},"Lt"),Pe=o(s=>s>=100?"critical":s>=50?"warning":"good","je"),Ye=o(s=>s<1?`${(s*1e3).toFixed(0)}\u03BCs`:s<1e3?`${s.toFixed(1)}ms`:`${(s/1e3).toFixed(2)}s`,"Qe"),Ee=o(s=>s>=1e9?`${(s/1e9).toFixed(1)}B`:s>=1e6?`${(s/1e6).toFixed(1)}M`:s>=1e3?`${(s/1e3).toFixed(1)}K`:s.toLocaleString(),"Le"),zt=o(s=>{let e=(0,Fe.c)(3),{level:l}=s;if(l==="critical"){let a;return e[0]===Symbol.for("react.memo_cache_sentinel")?(a=(0,t.jsx)(Qe,{variant:"destructive",children:"Slow"}),e[0]=a):a=e[0],a}if(l==="warning"){let a;return e[1]===Symbol.for("react.memo_cache_sentinel")?(a=(0,t.jsx)("span",{className:"inline-flex items-center gap-1 rounded-md border border-transparent bg-warning/10 px-2 py-0.5 text-xs font-medium text-warning",children:"Moderate"}),e[1]=a):a=e[1],a}let r;return e[2]===Symbol.for("react.memo_cache_sentinel")?(r=(0,t.jsx)("span",{className:"inline-flex items-center gap-1 rounded-md border border-transparent bg-success/10 px-2 py-0.5 text-xs font-medium text-success",children:"Fast"}),e[2]=r):r=e[2],r},"At"),At=o(s=>{let e=(0,Fe.c)(152),{queryStats:l}=s,r=Te(),[a,p]=(0,O.useState)("totalTime"),b;e[0]===Symbol.for("react.memo_cache_sentinel")?(b=new Set,e[0]=b):b=e[0];let[f,h]=(0,O.useState)(b),g;e[1]===Symbol.for("react.memo_cache_sentinel")?(g=o(d=>{d!==null&&p(d)},"g"),e[1]=g):g=e[1];let v=g,u;if(e[2]!==l||e[3]!==a){u=[...l];let d;e[5]!==a?(d=o((T,_)=>{switch(a){case"avgTime":return _.avgDurationMs-T.avgDurationMs;case"execCount":return _.execCount-T.execCount;case"rowsRead":return _.rowsRead-T.rowsRead;default:return _.totalDurationMs-T.totalDurationMs}},"d"),e[5]=a,e[6]=d):d=e[6],u.sort(d),e[2]=l,e[3]=a,e[4]=u}else u=e[4];let m=u,N;e[7]!==l?(N=l.filter(Kt),e[7]=l,e[8]=N):N=e[8];let ne=N.length,C;e[9]!==l?(C=l.filter(Lt),e[9]=l,e[10]=C):C=e[10];let P=C.length,J;e[11]!==l?(J=l.filter(Et),e[11]=l,e[12]=J):J=e[12];let c=J.length,q;e[13]===Symbol.for("react.memo_cache_sentinel")?(q=o(d=>{h(T=>{let _=new Set(T);return _.has(d)?_.delete(d):_.add(d),_})},"S"),e[13]=q):q=e[13];let ie=q;if(l.length===0){let d;e[14]!==r?(d=r("No query insights yet"),e[14]=r,e[15]=d):d=e[15];let T;e[16]!==d?(T=(0,t.jsx)("p",{className:"text-lg font-medium","data-testid":"qi-empty",children:d}),e[16]=d,e[17]=T):T=e[17];let _;e[18]!==r?(_=r("Query insights appear once statements are executed against this shard."),e[18]=r,e[19]=_):_=e[19];let ge;e[20]!==_?(ge=(0,t.jsx)("p",{className:"mt-1 text-sm",children:_}),e[20]=_,e[21]=ge):ge=e[21];let Ae;return e[22]!==ge||e[23]!==T?(Ae=(0,t.jsx)(he,{children:(0,t.jsx)(fe,{className:"py-12",children:(0,t.jsxs)("div",{className:"text-center text-muted-foreground",children:[T,ge]})})}),e[22]=ge,e[23]=T,e[24]=Ae):Ae=e[24],Ae}let D;e[25]!==r?(D=r("Critical queries"),e[25]=r,e[26]=D):D=e[26];let R;e[27]!==D?(R=(0,t.jsx)(Oe,{className:"pb-2",children:(0,t.jsx)(Ce,{className:"text-sm font-medium",children:D})}),e[27]=D,e[28]=R):R=e[28];let M;e[29]!==ne?(M=(0,t.jsx)("div",{className:"text-2xl font-bold text-destructive","data-testid":"qi-critical",children:ne}),e[29]=ne,e[30]=M):M=e[30];let x;e[31]!==r?(x=r(">100ms avg execution"),e[31]=r,e[32]=x):x=e[32];let j;e[33]!==x?(j=(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:x}),e[33]=x,e[34]=j):j=e[34];let L;e[35]!==j||e[36]!==M?(L=(0,t.jsxs)(fe,{children:[M,j]}),e[35]=j,e[36]=M,e[37]=L):L=e[37];let I;e[38]!==L||e[39]!==R?(I=(0,t.jsxs)(he,{children:[R,L]}),e[38]=L,e[39]=R,e[40]=I):I=e[40];let z;e[41]!==r?(z=r("Moderate queries"),e[41]=r,e[42]=z):z=e[42];let w;e[43]!==z?(w=(0,t.jsx)(Oe,{className:"pb-2",children:(0,t.jsx)(Ce,{className:"text-sm font-medium",children:z})}),e[43]=z,e[44]=w):w=e[44];let $;e[45]!==P?($=(0,t.jsx)("div",{className:"text-2xl font-bold text-warning","data-testid":"qi-moderate",children:P}),e[45]=P,e[46]=$):$=e[46];let ce;e[47]!==r?(ce=r("50\u2013100ms avg execution"),e[47]=r,e[48]=ce):ce=e[48];let me;e[49]!==ce?(me=(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:ce}),e[49]=ce,e[50]=me):me=e[50];let ue;e[51]!==$||e[52]!==me?(ue=(0,t.jsxs)(fe,{children:[$,me]}),e[51]=$,e[52]=me,e[53]=ue):ue=e[53];let Q;e[54]!==w||e[55]!==ue?(Q=(0,t.jsxs)(he,{children:[w,ue]}),e[54]=w,e[55]=ue,e[56]=Q):Q=e[56];let n;e[57]!==r?(n=r("Fast queries"),e[57]=r,e[58]=n):n=e[58];let k;e[59]!==n?(k=(0,t.jsx)(Oe,{className:"pb-2",children:(0,t.jsx)(Ce,{className:"text-sm font-medium",children:n})}),e[59]=n,e[60]=k):k=e[60];let y;e[61]!==c?(y=(0,t.jsx)("div",{className:"text-2xl font-bold text-success","data-testid":"qi-fast",children:c}),e[61]=c,e[62]=y):y=e[62];let S;e[63]!==r?(S=r("<50ms avg execution"),e[63]=r,e[64]=S):S=e[64];let U;e[65]!==S?(U=(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:S}),e[65]=S,e[66]=U):U=e[66];let H;e[67]!==y||e[68]!==U?(H=(0,t.jsxs)(fe,{children:[y,U]}),e[67]=y,e[68]=U,e[69]=H):H=e[69];let W;e[70]!==k||e[71]!==H?(W=(0,t.jsxs)(he,{children:[k,H]}),e[70]=k,e[71]=H,e[72]=W):W=e[72];let B;e[73]!==I||e[74]!==Q||e[75]!==W?(B=(0,t.jsxs)("div",{className:"grid gap-4 md:grid-cols-3",children:[I,Q,W]}),e[73]=I,e[74]=Q,e[75]=W,e[76]=B):B=e[76];let G;e[77]!==r?(G=r("Query leaderboard"),e[77]=r,e[78]=G):G=e[78];let V;e[79]!==G?(V=(0,t.jsx)("h3",{className:"text-lg font-semibold",children:G}),e[79]=G,e[80]=V):V=e[80];let X;e[81]!==a||e[82]!==r?(X=r("Slow queries sorted by {sortField}",{sortField:r(a)}),e[81]=a,e[82]=r,e[83]=X):X=e[83];let Y;e[84]!==X?(Y=(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:X}),e[84]=X,e[85]=Y):Y=e[85];let Z;e[86]!==V||e[87]!==Y?(Z=(0,t.jsxs)("div",{children:[V,Y]}),e[86]=V,e[87]=Y,e[88]=Z):Z=e[88];let ee;e[89]!==r?(ee=r("Sort by"),e[89]=r,e[90]=ee):ee=e[90];let te;e[91]!==ee?(te=(0,t.jsx)("span",{className:"text-sm text-muted-foreground",children:ee}),e[91]=ee,e[92]=te):te=e[92];let re;e[93]!==r?(re=r("Sort queries by"),e[93]=r,e[94]=re):re=e[94];let de;e[95]===Symbol.for("react.memo_cache_sentinel")?(de=(0,t.jsx)(gt,{}),e[95]=de):de=e[95];let ae;e[96]!==re?(ae=(0,t.jsx)(ft,{"aria-label":re,className:"w-[140px]","data-testid":"qi-sort",children:de}),e[96]=re,e[97]=ae):ae=e[97];let i;e[98]!==r?(i=r("Total time"),e[98]=r,e[99]=i):i=e[99];let F;e[100]!==i?(F=(0,t.jsx)(je,{value:"totalTime",children:i}),e[100]=i,e[101]=F):F=e[101];let A;e[102]!==r?(A=r("Avg time"),e[102]=r,e[103]=A):A=e[103];let K;e[104]!==A?(K=(0,t.jsx)(je,{value:"avgTime",children:A}),e[104]=A,e[105]=K):K=e[105];let le;e[106]!==r?(le=r("Execution count"),e[106]=r,e[107]=le):le=e[107];let xe;e[108]!==le?(xe=(0,t.jsx)(je,{value:"execCount",children:le}),e[108]=le,e[109]=xe):xe=e[109];let pe;e[110]!==r?(pe=r("Rows read"),e[110]=r,e[111]=pe):pe=e[111];let be;e[112]!==pe?(be=(0,t.jsx)(je,{value:"rowsRead",children:pe}),e[112]=pe,e[113]=be):be=e[113];let ve;e[114]!==F||e[115]!==K||e[116]!==xe||e[117]!==be?(ve=(0,t.jsxs)(xt,{children:[F,K,xe,be]}),e[114]=F,e[115]=K,e[116]=xe,e[117]=be,e[118]=ve):ve=e[118];let Ne;e[119]!==a||e[120]!==ae||e[121]!==ve?(Ne=(0,t.jsxs)(ht,{onValueChange:v,value:a,children:[ae,ve]}),e[119]=a,e[120]=ae,e[121]=ve,e[122]=Ne):Ne=e[122];let ye;e[123]!==te||e[124]!==Ne?(ye=(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[te,Ne]}),e[123]=te,e[124]=Ne,e[125]=ye):ye=e[125];let we;e[126]!==Z||e[127]!==ye?(we=(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[Z,ye]}),e[126]=Z,e[127]=ye,e[128]=we):we=e[128];let Se;e[129]!==r?(Se=r("Statements"),e[129]=r,e[130]=Se):Se=e[130];let qe;e[131]!==Se?(qe=(0,t.jsx)(Ce,{children:Se}),e[131]=Se,e[132]=qe):qe=e[132];let $e;e[133]!==m.length||e[134]!==r?($e=r("{count} tracked statements",{count:m.length}),e[133]=m.length,e[134]=r,e[135]=$e):$e=e[135];let ke;e[136]!==$e?(ke=(0,t.jsx)(rt,{children:$e}),e[136]=$e,e[137]=ke):ke=e[137];let _e;e[138]!==qe||e[139]!==ke?(_e=(0,t.jsxs)(Oe,{children:[qe,ke]}),e[138]=qe,e[139]=ke,e[140]=_e):_e=e[140];let Ie;e[141]!==f||e[142]!==m||e[143]!==r?(Ie=(0,t.jsx)(fe,{children:(0,t.jsx)("div",{className:"space-y-2",children:m.map(d=>{let T=d.normalizedSql,_=f.has(T),ge=Pe(d.avgDurationMs);return(0,t.jsxs)("div",{className:"overflow-hidden rounded-lg border","data-testid":"qi-row",children:[(0,t.jsxs)("button",{"aria-expanded":_,className:"flex w-full items-center justify-between p-3 text-left transition-colors hover:bg-muted/50",onClick:o(()=>{ie(T)},"onClick"),type:"button",children:[(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-3",children:[(0,t.jsx)(zt,{level:ge}),(0,t.jsx)("span",{className:"max-w-[300px] truncate font-mono text-sm lg:max-w-[500px]",children:d.normalizedSql})]}),(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-4",children:[(0,t.jsxs)("div",{className:"text-right",children:[(0,t.jsx)("div",{className:"text-sm font-medium",children:Ye(d.totalDurationMs)}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:r("total")})]}),(0,t.jsxs)("div",{className:"text-right",children:[(0,t.jsx)("div",{className:"text-sm font-medium",children:Ye(d.avgDurationMs)}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:r("avg")})]}),(0,t.jsxs)("div",{className:"text-right",children:[(0,t.jsx)("div",{className:"text-sm font-medium",children:Ee(d.execCount)}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:r("calls")})]})]})]}),_&&(0,t.jsxs)("div",{className:"space-y-3 border-t bg-muted/30 p-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-2 text-sm font-medium",children:r("Full statement")}),(0,t.jsx)("pre",{className:"overflow-x-auto rounded-md bg-muted p-3 font-mono text-sm whitespace-pre-wrap break-all",children:d.normalizedSql})]}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4 text-sm md:grid-cols-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:r("Exec count")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:Ee(d.execCount)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:r("Total time")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:Ye(d.totalDurationMs)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:r("Rows read")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:Ee(d.rowsRead)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:r("Rows written")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:Ee(d.rowsWritten)})]})]})]})]},T)})})}),e[141]=f,e[142]=m,e[143]=r,e[144]=Ie):Ie=e[144];let Me;e[145]!==_e||e[146]!==Ie?(Me=(0,t.jsxs)(he,{children:[_e,Ie]}),e[145]=_e,e[146]=Ie,e[147]=Me):Me=e[147];let ze;return e[148]!==B||e[149]!==we||e[150]!==Me?(ze=(0,t.jsxs)("div",{className:"space-y-4","data-testid":"qi-root",children:[B,we,Me]}),e[148]=B,e[149]=we,e[150]=Me,e[151]=ze):ze=e[151],ze},"zt");function Kt(s){return Pe(s.avgDurationMs)==="critical"}o(Kt,"Et");function Lt(s){return Pe(s.avgDurationMs)==="warning"}o(Lt,"jt");function Et(s){return Pe(s.avgDurationMs)==="good"}o(Et,"Kt");var Pt=at(De.getMetrics),Jt=o(s=>{let e=Math.floor(s/1e3),l=Math.floor(e/3600),r=Math.floor(e%3600/60),a=e%60;return l>0?`${l.toString()}h ${r.toString()}m`:r>0?`${r.toString()}m ${a.toString()}s`:`${a.toString()}s`},"Ut"),Qt=o((s,e)=>s?e:"overview","Jt"),Ut=o((s,e)=>{let l=s+e;return l===0?"\u2014":`${(s/l*100).toFixed(1)}%`},"Qt"),oe=o(s=>{let e=(0,Fe.c)(16),{chart:l,footer:r,label:a,testId:p,value:b}=s,f;e[0]!==a?(f=(0,t.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:a}),e[0]=a,e[1]=f):f=e[1];let h;e[2]!==p||e[3]!==b?(h=(0,t.jsx)("span",{className:"truncate text-2xl font-semibold tabular-nums text-foreground","data-testid":p,children:b}),e[2]=p,e[3]=b,e[4]=h):h=e[4];let g;e[5]!==l||e[6]!==h?(g=(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[h,l]}),e[5]=l,e[6]=h,e[7]=g):g=e[7];let v;e[8]!==f||e[9]!==g?(v=(0,t.jsxs)("div",{className:"flex flex-col gap-2.5 p-4",children:[f,g]}),e[8]=f,e[9]=g,e[10]=v):v=e[10];let u;e[11]!==r?(u=r!=null&&(0,t.jsx)("div",{className:"border-t border-border bg-muted/50 px-4 py-2.5 text-[11px] text-muted-foreground",children:r}),e[11]=r,e[12]=u):u=e[12];let m;return e[13]!==v||e[14]!==u?(m=(0,t.jsxs)(he,{className:"justify-between gap-0 py-0",children:[v,u]}),e[13]=v,e[14]=u,e[15]=m):m=e[15],m},"ne"),ur=o(({initialShardKey:s})=>{let e=et(),l=Te(),r=tt(),[a,p]=(0,O.useState)(s??""),[b,f]=(0,O.useState)("overview"),[h,g]=(0,O.useState)([]),v=(0,O.useRef)(null),u=(0,O.useRef)(null),m=(0,O.useRef)(!0);(0,O.useEffect)(()=>(m.current=!0,()=>{m.current=!1}),[]);let N=dt(a.trim(),400),ne=o(n=>{wt({shardKey:N,traceId:n}),He(r({to:"/traces"}))},"le"),{data:C,error:P,liveError:J}=Le(De.getMetrics,{},{live:!0,shardKey:N}),c=C??null;(0,O.useEffect)(()=>{if(C===void 0)return;ot(N);let n=C,k=v.current,y=u.current!==null&&u.current!==n.shard;if(u.current=n.shard,v.current=n.requests,y){g([]);return}k!==null&&n.requests>=k&&g(S=>[...S,n.requests-k].slice(-30))},[C,N]);let[q,ie]=(0,O.useState)(null),[D,R]=(0,O.useState)(!1),M=o(async()=>{R(!0);let n=vt(a,it());try{let k=await Promise.all(n.map(async y=>{try{let S=await e.query(Pt,{},lt(y));return{error:null,metrics:S,shard:y===""?S.shard:y}}catch(S){return{error:st(S),metrics:null,shard:y===""?"__root__":y}}}));m.current&&ie(k)}finally{m.current&&R(!1)}},"I"),x=q===null?null:bt(q),j=c===null||c.requests===0?"\u2014":`${(c.errors/c.requests*100).toFixed(1)}%`,L=h.length>0?h.at(-1):0,I=c?Nt(c):{p90:0,p95:0},z=o(n=>n<=0?"\u2014":n<1?`${(n*1e3).toFixed(0)}\u03BCs`:n<1e3?`${n.toFixed(1)}ms`:`${(n/1e3).toFixed(2)}s`,"L"),w=(0,O.useMemo)(()=>{if(!c||!("queryStats"in c))return;let n=c.queryStats;if(!(!n||!Array.isArray(n)))return yt(n)},[c]),$=Qt(w!==void 0,b),ce=o(()=>{He(M())},"oe"),me=o(()=>{ie(null)},"de"),ue=o(()=>{f("overview")},"me"),Q=o(()=>{f("query-insights")},"P");return(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-metrics",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)(ct,{onChange:p,testId:"mt-shard-input",value:a}),(0,t.jsx)(mt,{message:J,prefix:"mt"}),(0,t.jsx)(Ue,{"data-testid":"mt-aggregate",disabled:D,onClick:ce,size:"sm",type:"button",variant:"secondary",children:l(D?"Aggregating\u2026":"All shards")}),q!==null&&(0,t.jsx)(Ue,{"data-testid":"mt-aggregate-clear",onClick:me,size:"sm",type:"button",variant:"ghost",children:l("Hide")}),(0,t.jsx)("a",{className:"text-sm text-primary underline-offset-4 hover:underline","data-testid":"mt-cf-link",href:ut,rel:"noreferrer",target:"_blank",children:l("Open in Cloudflare")})]}),P!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive","data-testid":"mt-error",role:"alert",children:P}),w!==void 0&&(0,t.jsxs)("div",{className:"flex gap-2 border-b","data-testid":"mt-tabs",children:[(0,t.jsx)("button",{className:`pb-2 text-sm font-medium transition-colors ${$==="overview"?"border-b-2 border-primary text-foreground":"text-muted-foreground hover:text-foreground"}`,"data-testid":"mt-tab-overview",onClick:ue,type:"button",children:l("Overview")}),(0,t.jsxs)("button",{className:`pb-2 text-sm font-medium transition-colors ${$==="query-insights"?"border-b-2 border-primary text-foreground":"text-muted-foreground hover:text-foreground"}`,"data-testid":"mt-tab-query-insights",onClick:Q,type:"button",children:[l("Query insights"),w.length>0&&(0,t.jsx)("span",{className:"ml-1.5 rounded-full bg-primary/10 px-1.5 py-0.5 text-xs text-primary",children:w.length})]})]}),$==="query-insights"&&w!==void 0&&(0,t.jsx)(At,{queryStats:w}),$==="overview"&&c!==null&&(0,t.jsxs)("dl",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4","data-testid":"mt-stats",children:[(0,t.jsx)(oe,{chart:h.length>=2?(0,t.jsx)(Ve,{ariaLabel:l("Requests per interval over time"),className:"h-7 w-24 text-foreground",series:h,testId:"mt-sparkline"}):void 0,footer:h.length>=2?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"font-semibold text-foreground",children:`+${L.toLocaleString()}`})," ",l("last interval")]}):(0,t.jsx)("span",{"data-testid":"mt-sparkline-empty",children:l("collecting samples\u2026")}),label:l("Requests"),testId:"mt-requests",value:c.requests}),(0,t.jsx)(oe,{footer:l("{rate} error rate",{rate:j}),label:l("Errors"),testId:"mt-errors",value:(0,t.jsxs)(t.Fragment,{children:[c.errors," (",j,")"]})}),(0,t.jsx)(oe,{footer:I.p90>0?`P90 ${z(I.p90)}`:void 0,label:l("P95 latency"),testId:"mt-p95",value:I.p95>0?z(I.p95):"\u2014"}),(0,t.jsx)(oe,{footer:c.cache===null?void 0:`${c.cache.entries.toLocaleString()} ${l("cache entries")}`,label:l("Database size"),testId:"mt-db-size",value:Ke(c.databaseSize)}),(0,t.jsx)(oe,{label:l("Shard"),testId:"mt-shard",value:c.shard}),(0,t.jsx)(oe,{label:l("Uptime"),testId:"mt-uptime",value:Jt(c.uptimeMs)}),(0,t.jsx)(oe,{label:l("Cache hit rate"),testId:"mt-cache",value:c.cache===null?l("no cache configured"):l("{rate} ({count} entries)",{count:c.cache.entries,rate:Ut(c.cache.hits,c.cache.misses)})})]}),$==="overview"&&c===null&&null,$==="overview"&&(0,t.jsx)(jt,{onOpenTrace:ne,shardKey:N}),$==="overview"&&x!==null&&q!==null&&(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"mt-aggregate-view",children:[(0,t.jsxs)("dl",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3","data-testid":"mt-aggregate-stats",children:[(0,t.jsx)(oe,{label:l("Shards"),testId:"mt-agg-shards",value:x.failed>0?l("{reachable} reachable, {failed} unreachable",{failed:x.failed,reachable:x.reachable}):l("{reachable} reachable",{reachable:x.reachable})}),(0,t.jsx)(oe,{label:l("Total requests"),testId:"mt-agg-requests",value:x.totalRequests}),(0,t.jsx)(oe,{label:l("Total errors"),testId:"mt-agg-errors",value:x.totalErrors}),(0,t.jsx)(oe,{label:l("Total database size"),testId:"mt-agg-db-size",value:Ke(x.totalDatabaseSize)}),(0,t.jsx)(oe,{label:l("Combined cache hit rate"),testId:"mt-agg-cache",value:x.hitRate===null?l("no cache configured"):`${(x.hitRate*100).toFixed(1)}%`})]}),(0,t.jsx)(he,{className:"overflow-hidden py-0",children:(0,t.jsx)(fe,{className:"px-0",children:(0,t.jsxs)(We,{"data-testid":"mt-agg-table",children:[(0,t.jsx)(Be,{children:(0,t.jsxs)(Re,{children:[(0,t.jsx)(se,{children:l("shard")}),(0,t.jsx)(se,{children:l("requests")}),(0,t.jsx)(se,{children:l("errors")}),(0,t.jsx)(se,{children:l("db size")})]})}),(0,t.jsx)(Ge,{children:q.map(n=>(0,t.jsxs)(Re,{"data-testid":`mt-agg-row-${n.shard}`,children:[(0,t.jsx)(E,{children:n.shard}),n.metrics===null?(0,t.jsx)(E,{className:"text-destructive",colSpan:3,children:n.error??l("unreachable")}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(E,{className:"tabular-nums",children:n.metrics.requests}),(0,t.jsx)(E,{className:"tabular-nums",children:n.metrics.errors}),(0,t.jsx)(E,{className:"tabular-nums",children:Ke(n.metrics.databaseSize)})]})]},n.shard))})]})})})]})]})},"fr");export{ur as MetricsPanel};
@@ -1 +0,0 @@
1
- import{b as de,c as ce}from"./chunk-KUVMORDQ.js";import{a as ie}from"./chunk-QWGT25SE.js";import{a as le}from"./chunk-X2FQ6B5V.js";import{a as ne}from"./chunk-LFKCLLPT.js";import{a as oe}from"./chunk-HK4OVYG3.js";import"./chunk-XXQUMVWH.js";import{b as te}from"./chunk-BMQJ4CAO.js";import{a as se}from"./chunk-LFXFP4IF.js";import{b as ae}from"./chunk-GRL5MG3Z.js";import"./chunk-7T7UOTYK.js";import{R as Z}from"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import"./chunk-2OUPA2WJ.js";import{b as Y}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as re}from"./chunk-AADXUXZO.js";import"./chunk-EN2QAEO4.js";import"./chunk-XBDKZZ67.js";import{a as X}from"./chunk-XQCVZAGU.js";import{d as z,q as ee}from"./chunk-4CGALXS3.js";import"./chunk-AADILRJW.js";import{a as M,e as Q,f as he,g as fe,h as pe,j as V}from"./chunk-3XIESWL4.js";var H=Q(fe(),1),F=Q(he(),1);var a=Q(pe(),1);var me=M(o=>Math.min(100,Math.max(0,o)),"V"),ge=M((o,e)=>{if(!Number.isFinite(e)||e<=0)return{leftPercent:0,widthPercent:100};let t=me(o.offsetMs/e*100),s=o.durationMs/e*100,r=Math.max(.5,Math.min(me(s),100-t));return{leftPercent:t,widthPercent:r}},"he"),xe=M((o,e)=>{let t=e.trim().toLowerCase();return t===""?[...o]:o.filter(s=>s.rootName.toLowerCase().includes(t)||s.functionPath.toLowerCase().includes(t)||s.traceId.toLowerCase().includes(t))},"fe"),G=M(o=>Number.isFinite(o)?o>0&&o<1?`${o.toFixed(2)}ms`:`${String(Math.round(o))}ms`:"\u2014","U"),be=14,we=M(o=>Array.isArray(o?.traces)?o.traces:[],"ge"),Ne=M(o=>{let e=(0,H.c)(50),{span:t,traceDurationMs:s}=o,r=z(),n;e[0]!==t||e[1]!==s?(n=ge(t,s),e[0]=t,e[1]=s,e[2]=n):n=e[2];let{leftPercent:P,widthPercent:x}=n,L;e[3]!==t.attributes?(L=ie(t.attributes),e[3]=t.attributes,e[4]=L):L=e[4];let k=L,C=t.depth*be,y;e[5]!==C?(y={paddingLeft:C},e[5]=C,e[6]=y):y=e[6];let b=y,c=`${String(P)}%`,w=`${String(x)}%`,p;e[7]!==c||e[8]!==w?(p={left:c,width:w},e[7]=c,e[8]=w,e[9]=p):p=e[9];let l=p,f=t.depth,i;e[10]!==t.ok||e[11]!==r?(i=t.ok?null:(0,a.jsx)("span",{"aria-label":r("Errored span"),className:"mr-1 text-destructive","data-testid":"tr-span-error",role:"img",children:"\u25CF"}),e[10]=t.ok,e[11]=r,e[12]=i):i=e[12];let v;e[13]!==b||e[14]!==t.name||e[15]!==i?(v=(0,a.jsxs)("span",{className:"w-56 shrink-0 truncate",role:"gridcell",style:b,title:t.name,children:[i,t.name]}),e[13]=b,e[14]=t.name,e[15]=i,e[16]=v):v=e[16];let d;e[17]!==t.durationMs||e[18]!==t.offsetMs||e[19]!==r?(d=r("starts {offset} in, runs {duration}",{duration:G(t.durationMs),offset:G(t.offsetMs)}),e[17]=t.durationMs,e[18]=t.offsetMs,e[19]=r,e[20]=d):d=e[20];let N=t.ok?"bg-primary/70":"bg-destructive",m;e[21]!==N?(m=V("absolute inset-y-0 rounded-sm",N),e[21]=N,e[22]=m):m=e[22];let u;e[23]!==l||e[24]!==P||e[25]!==m||e[26]!==x?(u=(0,a.jsx)("span",{className:m,"data-left":P,"data-testid":"tr-span-bar","data-width":x,style:l}),e[23]=l,e[24]=P,e[25]=m,e[26]=x,e[27]=u):u=e[27];let h;e[28]!==d||e[29]!==u?(h=(0,a.jsx)("span",{"aria-label":d,className:"relative h-3 flex-1 overflow-hidden rounded-sm bg-muted",role:"gridcell",children:u}),e[28]=d,e[29]=u,e[30]=h):h=e[30];let g;e[31]!==t.durationMs?(g=G(t.durationMs),e[31]=t.durationMs,e[32]=g):g=e[32];let I;e[33]!==g?(I=(0,a.jsx)("span",{className:"w-16 shrink-0 text-right tabular-nums text-muted-foreground",role:"gridcell",children:g}),e[33]=g,e[34]=I):I=e[34];let S;e[35]!==t.error?(S=t.error===void 0?null:(0,a.jsx)("span",{className:"text-destructive","data-testid":"tr-span-error-message",title:t.error.message,children:`${t.error.type}: ${t.error.message}`}),e[35]=t.error,e[36]=S):S=e[36];let T;e[37]!==S?(T=(0,a.jsx)("span",{className:"w-64 shrink-0 truncate text-muted-foreground",role:"gridcell",children:S}),e[37]=S,e[38]=T):T=e[38];let E;e[39]!==k?(E=k===""?null:(0,a.jsx)("span",{"data-testid":"tr-span-attributes",title:k,children:k}),e[39]=k,e[40]=E):E=e[40];let $;e[41]!==E?($=(0,a.jsx)("span",{className:"w-64 shrink-0 truncate text-muted-foreground",role:"gridcell",children:E}),e[41]=E,e[42]=$):$=e[42];let _;return e[43]!==t.depth||e[44]!==v||e[45]!==h||e[46]!==I||e[47]!==T||e[48]!==$?(_=(0,a.jsxs)("div",{className:"flex items-center gap-2 border-b border-border px-3 py-1.5 font-mono text-xs last:border-b-0 hover:bg-muted/50","data-depth":f,"data-testid":"tr-span-row",role:"row",children:[v,h,I,T,$]}),e[43]=t.depth,e[44]=v,e[45]=h,e[46]=I,e[47]=T,e[48]=$,e[49]=_):_=e[49],_},"xe"),Me=M(o=>{let e=(0,H.c)(50),{expanded:t,onToggle:s,trace:r}=o,n=z(),P;e[0]!==s||e[1]!==r.traceId?(P=M(()=>{s(r.traceId)},"S"),e[0]=s,e[1]=r.traceId,e[2]=P):P=e[2];let x=P,L=`tr-row-${r.traceId}`,k=`tr-waterfall-${r.traceId}`,C=`tr-toggle-${r.traceId}`,y=t?"\u25BE":"\u25B8",b;e[3]!==y?(b=(0,a.jsx)("span",{"aria-hidden":"true",className:"w-3 shrink-0 text-xs text-muted-foreground",children:y}),e[3]=y,e[4]=b):b=e[4];let c;e[5]!==r.rootName?(c=(0,a.jsx)("span",{className:"w-56 shrink-0 truncate text-sm font-medium",title:r.rootName,children:r.rootName}),e[5]=r.rootName,e[6]=c):c=e[6];let w;e[7]!==r.functionPath?(w=(0,a.jsx)("span",{className:"w-48 shrink-0 truncate font-mono text-xs text-muted-foreground",title:r.functionPath,children:r.functionPath}),e[7]=r.functionPath,e[8]=w):w=e[8];let p;e[9]!==r.durationMs?(p=G(r.durationMs),e[9]=r.durationMs,e[10]=p):p=e[10];let l;e[11]!==p?(l=(0,a.jsx)("span",{className:"w-20 shrink-0 text-right font-mono text-xs tabular-nums text-muted-foreground",children:p}),e[11]=p,e[12]=l):l=e[12];let f;e[13]!==n||e[14]!==r.spans.length?(f=n("{count} spans",{count:r.spans.length}),e[13]=n,e[14]=r.spans.length,e[15]=f):f=e[15];let i;e[16]!==f?(i=(0,a.jsx)("span",{className:"w-20 shrink-0 text-right font-mono text-xs tabular-nums text-muted-foreground",children:f}),e[16]=f,e[17]=i):i=e[17];let v=r.ok?"secondary":"destructive",d;e[18]!==n||e[19]!==r.ok?(d=r.ok?n("ok"):n("error"),e[18]=n,e[19]=r.ok,e[20]=d):d=e[20];let N;e[21]!==v||e[22]!==d?(N=(0,a.jsx)("span",{className:"shrink-0",children:(0,a.jsx)(Y,{variant:v,children:d})}),e[21]=v,e[22]=d,e[23]=N):N=e[23];let m;e[24]!==r.startTs?(m=ee(r.startTs),e[24]=r.startTs,e[25]=m):m=e[25];let u;e[26]!==m?(u=(0,a.jsx)("span",{className:"flex-1 truncate text-right font-mono text-xs tabular-nums text-muted-foreground",children:m}),e[26]=m,e[27]=u):u=e[27];let h;e[28]!==t||e[29]!==x||e[30]!==l||e[31]!==i||e[32]!==N||e[33]!==u||e[34]!==k||e[35]!==C||e[36]!==b||e[37]!==c||e[38]!==w?(h=(0,a.jsxs)("button",{"aria-controls":k,"aria-expanded":t,className:"flex w-full items-center gap-3 px-3 py-2 text-left hover:bg-muted/50","data-testid":C,onClick:x,type:"button",children:[b,c,w,l,i,N,u]}),e[28]=t,e[29]=x,e[30]=l,e[31]=i,e[32]=N,e[33]=u,e[34]=k,e[35]=C,e[36]=b,e[37]=c,e[38]=w,e[39]=h):h=e[39];let g;e[40]!==t||e[41]!==n||e[42]!==r.durationMs||e[43]!==r.spans||e[44]!==r.traceId?(g=t&&(0,a.jsx)("div",{"aria-label":n("Trace waterfall"),className:"bg-muted/20","data-testid":`tr-waterfall-${r.traceId}`,id:`tr-waterfall-${r.traceId}`,role:"grid",children:r.spans.map(S=>(0,a.jsx)(Ne,{span:S,traceDurationMs:r.durationMs},S.spanId))}),e[40]=t,e[41]=n,e[42]=r.durationMs,e[43]=r.spans,e[44]=r.traceId,e[45]=g):g=e[45];let I;return e[46]!==h||e[47]!==g||e[48]!==L?(I=(0,a.jsxs)("div",{className:"border-b border-border last:border-b-0","data-testid":L,children:[h,g]}),e[46]=h,e[47]=g,e[48]=L,e[49]=I):I=e[49],I},"be"),Be=M(o=>{let e=(0,H.c)(44),{initialShardKey:t}=o,s=z(),[r]=(0,F.useState)(de),[n,P]=(0,F.useState)(r?.shardKey!==void 0&&r.shardKey!==""?r.shardKey:t??""),[x,L]=(0,F.useState)(r?.traceId??""),[k,C]=(0,F.useState)(ve),y;e[0]===Symbol.for("react.memo_cache_sentinel")?(y=[],e[0]=y):y=e[0],(0,F.useEffect)(ke,y);let b;e[1]!==n?(b=n.trim(),e[1]=n,e[2]=b):b=e[2];let c=ne(b,400),w;e[3]===Symbol.for("react.memo_cache_sentinel")?(w={},e[3]=w):w=e[3];let p;e[4]!==c?(p={live:!0,shardKey:c},e[4]=c,e[5]=p):p=e[5];let{data:l,error:f,errorSource:i,isLoading:v,liveError:d}=te(re.getTraces,w,p),N,m;e[6]!==l||e[7]!==c?(N=M(()=>{l!==void 0&&ae(c)},"N"),m=[l,c],e[6]=l,e[7]=c,e[8]=N,e[9]=m):(N=e[8],m=e[9]),(0,F.useEffect)(N,m);let u;if(e[10]!==l||e[11]!==f||e[12]!==i||e[13]!==k||e[14]!==v||e[15]!==d||e[16]!==x||e[17]!==n||e[18]!==s){let h=we(l),g=l?.total??h.length,I=g>h.length,S=xe(h,x),T;e[20]===Symbol.for("react.memo_cache_sentinel")?(T=M(K=>{L(K.target.value)},"T"),e[20]=T):T=e[20];let E=T,$;e[21]===Symbol.for("react.memo_cache_sentinel")?($=M(K=>{C(ue=>{let q=new Set(ue);return q.has(K)?q.delete(K):q.add(K),q})},"$"),e[21]=$):$=e[21];let _=$,J=f===null&&S.length===0&&!v,j;e[22]!==n?(j=(0,a.jsx)(se,{onChange:P,testId:"tr-shard-input",value:n}),e[22]=n,e[23]=j):j=e[23];let A;e[24]!==s?(A=s("Search traces"),e[24]=s,e[25]=A):A=e[25];let D;e[26]!==s?(D=s("search trace or function"),e[26]=s,e[27]=D):D=e[27];let B;e[28]!==x||e[29]!==A||e[30]!==D?(B=(0,a.jsx)(Z,{"aria-label":A,className:"h-8 w-56","data-testid":"tr-search",onChange:E,placeholder:D,value:x}),e[28]=x,e[29]=A,e[30]=D,e[31]=B):B=e[31];let O;e[32]!==d?(O=(0,a.jsx)(le,{message:d,prefix:"tr"}),e[32]=d,e[33]=O):O=e[33];let R;e[34]!==j||e[35]!==B||e[36]!==O?(R=(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[j,B,O]}),e[34]=j,e[35]=B,e[36]=O,e[37]=R):R=e[37];let U;e[38]!==f||e[39]!==i?(U=f!==null&&(0,a.jsx)(oe,{error:i,testId:"tr-error"}),e[38]=f,e[39]=i,e[40]=U):U=e[40];let W;e[41]!==J||e[42]!==s?(W=J&&(0,a.jsx)(X,{description:s("Traces recorded with ctx.trace show up here as your app handles traffic. The span buffer resets when the shard hibernates."),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:"M4 6h10M7 12h13M10 18h7"})}),testId:"tr-empty",title:s("No traces")}),e[41]=J,e[42]=s,e[43]=W):W=e[43],u=(0,a.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-traces-panel",children:[R,U,W,f===null&&I&&(0,a.jsx)("p",{className:"text-xs text-muted-foreground","data-testid":"tr-truncated",children:s("Showing the {shown} most recent of {total} traces in the buffer.",{shown:h.length,total:g})}),f===null&&S.length>0&&(0,a.jsx)("div",{"aria-label":s("Recent traces"),className:"overflow-hidden rounded-xl border border-border shadow-xs","data-testid":"tr-list",children:S.map(K=>(0,a.jsx)(Me,{expanded:k.has(K.traceId),onToggle:_,trace:K},K.traceId))})]}),e[10]=l,e[11]=f,e[12]=i,e[13]=k,e[14]=v,e[15]=d,e[16]=x,e[17]=n,e[18]=s,e[19]=u}else u=e[19];return u},"Be");function ve(){return new Set}M(ve,"we");function ke(){ce()}M(ke,"Ne");export{Be as TracesPanel};
@@ -1 +0,0 @@
1
- import{a as O}from"./chunk-X2FQ6B5V.js";import{a as q,b as B}from"./chunk-AVAC26HJ.js";import{a as z}from"./chunk-LFKCLLPT.js";import{a as A}from"./chunk-HK4OVYG3.js";import"./chunk-XXQUMVWH.js";import{b as R}from"./chunk-BMQJ4CAO.js";import{a as K,b as T,c as F,d as p,e as l,f as d}from"./chunk-MIQTKZAR.js";import{a as I,e as E}from"./chunk-UZERI5YC.js";import{a as j}from"./chunk-LFXFP4IF.js";import"./chunk-GRL5MG3Z.js";import"./chunk-7T7UOTYK.js";import{R as C}from"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import"./chunk-2OUPA2WJ.js";import{b as y}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as V}from"./chunk-AADXUXZO.js";import"./chunk-EN2QAEO4.js";import"./chunk-XBDKZZ67.js";import{a as k}from"./chunk-XQCVZAGU.js";import{d as L,q as M}from"./chunk-4CGALXS3.js";import"./chunk-AADILRJW.js";import{a as o,e as b,f as ee,h as te}from"./chunk-3XIESWL4.js";var i=b(ee(),1);var e=b(te(),1);var D=80,re=o(s=>{if(s===void 0)return"";let t=JSON.stringify(s);return t.length>D?`${t.slice(0,D)}\u2026`:t},"te"),ae=41,J=480,H=5,ie=o((s,t)=>q(s,n=>{t(n.height>0?n:{height:J,width:n.width})}),"ae"),Ne=o(({initialShardKey:s})=>{let t=L(),[n,P]=(0,i.useState)(s??""),[c,U]=(0,i.useState)(""),W=z(n.trim(),400),{data:f,error:g,errorSource:Z,isLoading:_,liveError:$}=R(V.getAuditLog,{},{live:!0,shardKey:W}),h=(0,i.useMemo)(()=>f?.entries??[],[f]),m=(0,i.useMemo)(()=>{let a=c.trim().toLowerCase();return a===""?h:h.filter(r=>r.op.toLowerCase().includes(a)||(r.table??"").toLowerCase().includes(a)||(r.id??"").toLowerCase().includes(a))},[h,c]),x=(0,i.useRef)(null),v=B({count:m.length,estimateSize:o(()=>ae,"estimateSize"),getScrollElement:o(()=>x.current,"getScrollElement"),initialRect:{height:J,width:800},observeElementRect:ie,overscan:8}),u=v.getVirtualItems(),G=v.getTotalSize(),N=u[0]?.start??0,w=G-(u.at(-1)?.end??0),Q={height:N},X={height:w},Y=o(a=>{U(a.target.value)},"V");return(0,e.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-audit",children:[(0,e.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,e.jsx)(j,{onChange:P,testId:"au-shard-input",value:n}),(0,e.jsx)(O,{message:$,prefix:"au"}),(0,e.jsx)(C,{"aria-label":t("Filter audit log"),className:"h-8 w-48","data-testid":"au-search",onChange:Y,placeholder:t("filter op, table, id"),value:c})]}),g!==null&&(0,e.jsx)(A,{error:Z,testId:"au-error"}),g===null&&!_&&m.length===0&&(0,e.jsx)(k,{description:t("State-changing admin operations are recorded here."),icon:(0,e.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:(0,e.jsx)("path",{d:"M8 3H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2h-2M9 3a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v1a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1V3Zm-1 9h8m-8 4h5"})}),testId:"au-empty",title:t("No audit entries.")}),m.length>0&&(0,e.jsx)(I,{className:"overflow-hidden py-0",children:(0,e.jsx)(E,{className:"max-h-[30rem] overflow-auto px-0",ref:x,children:(0,e.jsxs)(K,{"data-testid":"au-table",children:[(0,e.jsx)(T,{children:(0,e.jsxs)(p,{children:[(0,e.jsx)(l,{children:t("time")}),(0,e.jsx)(l,{children:t("op")}),(0,e.jsx)(l,{children:t("table")}),(0,e.jsx)(l,{children:t("id")}),(0,e.jsx)(l,{children:t("detail")})]})}),(0,e.jsxs)(F,{children:[N>0&&(0,e.jsx)("tr",{"aria-hidden":"true",children:(0,e.jsx)("td",{colSpan:H,style:Q})}),u.map(a=>{let r=m[a.index],S=re(r.detail);return(0,e.jsxs)(p,{"data-testid":"au-row",children:[(0,e.jsx)(d,{className:"text-muted-foreground tabular-nums",children:M(r.ts,"\u2014")}),(0,e.jsx)(d,{children:(0,e.jsx)(y,{variant:"secondary",children:r.op})}),(0,e.jsx)(d,{className:"font-medium",children:r.table??(0,e.jsx)("span",{className:"text-muted-foreground",children:"\u2014"})}),(0,e.jsx)(d,{className:"max-w-[20ch] truncate font-mono text-xs",children:r.id??(0,e.jsx)("span",{className:"text-muted-foreground",children:"\u2014"})}),(0,e.jsx)(d,{className:"max-w-[32ch] truncate font-mono text-xs text-muted-foreground",title:S||void 0,children:S||(0,e.jsx)("span",{className:"text-muted-foreground",children:"\u2014"})})]},r.seq)}),w>0&&(0,e.jsx)("tr",{"aria-hidden":"true",children:(0,e.jsx)("td",{colSpan:H,style:X})})]})]})})})]})},"we");export{Ne as AuditPanel};
@@ -1 +0,0 @@
1
- import{a as v}from"./chunk-HK4OVYG3.js";import{a as w,b as y,c as $,d,e as c,f as i}from"./chunk-MIQTKZAR.js";import{a as b,e as N}from"./chunk-UZERI5YC.js";import{d as x}from"./chunk-4CGALXS3.js";import{a as s,e as g,f as T,h as O,j as h}from"./chunk-3XIESWL4.js";var m=g(T(),1);var e=g(O(),1);var S={ERROR:"error",INFO:"info",WARN:"warning"},M=s(r=>{let n=typeof r.metadata.table=="string"?r.metadata.table:void 0;return{description:`${r.detail} ${r.remediation}`,entity:n,issueType:r.title,key:r.cacheKey,level:S[r.level]}},"q"),j=["error","warning","info"],A={error:"bg-destructive",info:"bg-info",warning:"bg-warning"},C=s((r,n)=>({error:r("Errors"),info:r("Info"),warning:r("Warnings")})[n],"S"),W=s((r,n,o)=>({error:r("{count} errors",{count:o}),info:r("{count} suggestions",{count:o}),warning:r("{count} warnings",{count:o})})[n],"j"),q=s((r,n)=>({error:r("No errors detected"),info:r("No suggestions"),warning:r("No warnings detected")})[n],"C"),G=s(({error:r=null,errorSource:n,rows:o,testId:l,toolbar:f})=>{let a=x(),[u,k]=(0,m.useState)("error"),I=(0,m.useMemo)(()=>{let t={error:0,info:0,warning:0};for(let R of o??[])t[R.level]+=1;return t},[o]),p=(o??[]).filter(t=>t.level===u),E=s(t=>{k(t.currentTarget.dataset.level)},"h");return(0,e.jsxs)("div",{className:"flex flex-col gap-3","data-testid":l,children:[(0,e.jsx)("div",{className:"flex border-b border-border",role:"tablist",children:j.map(t=>(0,e.jsxs)("button",{"aria-selected":u===t,className:"flex min-w-32 flex-col gap-0.5 border-b-2 border-transparent px-4 py-2 text-start outline-none transition-colors hover:bg-muted/40 focus-visible:bg-muted/40 aria-selected:border-foreground","data-level":t,"data-testid":`${l}-tab-${t}`,onClick:E,role:"tab",type:"button",children:[(0,e.jsxs)("span",{className:"flex items-center gap-2 text-sm font-medium text-foreground",children:[(0,e.jsx)("span",{"aria-hidden":"true",className:h("size-2 rounded-sm",A[t])}),C(a,t)]}),(0,e.jsx)("span",{className:"ps-4 text-xs text-muted-foreground",children:W(a,t,I[t])})]},t))}),f!==void 0&&(0,e.jsx)("div",{className:"flex flex-wrap items-center gap-2",children:f}),r!==null&&(0,e.jsx)(v,{error:n??r,testId:`${l}-error`}),(0,e.jsx)(b,{className:"overflow-hidden py-0",children:(0,e.jsx)(N,{className:"px-0",children:(0,e.jsxs)(w,{children:[(0,e.jsx)(y,{children:(0,e.jsxs)(d,{children:[(0,e.jsx)(c,{children:a("Issue type")}),(0,e.jsx)(c,{children:a("Entity/item")}),(0,e.jsx)(c,{children:a("Description")})]})}),(0,e.jsx)($,{children:p.length===0?(0,e.jsx)(d,{children:(0,e.jsxs)(i,{className:"h-40 text-center align-middle text-muted-foreground",colSpan:3,"data-testid":`${l}-empty`,children:[(0,e.jsx)("span",{className:"block text-sm font-medium text-foreground",children:q(a,u)}),(0,e.jsx)("span",{className:"block text-sm",children:a("Nothing to report for this deployment.")})]})}):p.map(t=>(0,e.jsxs)(d,{children:[(0,e.jsx)(i,{className:"font-medium text-foreground",children:t.issueType}),(0,e.jsx)(i,{className:"font-mono text-xs text-muted-foreground",children:t.entity??"\u2014"}),(0,e.jsxs)(i,{className:"text-muted-foreground",children:[(0,e.jsx)("span",{children:t.description}),t.action!==void 0&&(0,e.jsx)("span",{className:"mt-1.5 flex flex-wrap items-center gap-1.5",children:t.action})]})]},t.key))})]})})})]})},"B");export{M as a,G as b};