@lunora/studio 1.0.0-alpha.35 → 1.0.0-alpha.351

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 (475) hide show
  1. package/LICENSE.md +6 -0
  2. package/README.md +4 -4
  3. package/dist/index.d.mts +1621 -0
  4. package/dist/index.d.ts +1013 -809
  5. package/dist/index.mjs +1 -0
  6. package/dist/mount.d.mts +23 -0
  7. package/dist/mount.d.ts +13 -11
  8. package/dist/mount.mjs +1 -0
  9. package/dist/packem_chunks/AdvisorHealthPanel.mjs +1 -0
  10. package/dist/packem_chunks/ApiTab.mjs +1 -0
  11. package/dist/packem_chunks/AuditPanel.mjs +1 -0
  12. package/dist/packem_chunks/DeploymentHealthPanel.mjs +1 -0
  13. package/dist/packem_chunks/ExportImportPanel.mjs +8 -0
  14. package/dist/packem_chunks/FileBrowser.mjs +4 -0
  15. package/dist/packem_chunks/FunctionRunner.mjs +1 -0
  16. package/dist/packem_chunks/FunctionStatsPanel.mjs +1 -0
  17. package/dist/packem_chunks/HealthPanel.mjs +1 -0
  18. package/dist/packem_chunks/InsightsPanel.mjs +1 -0
  19. package/dist/packem_chunks/LogsPanel.mjs +1 -0
  20. package/dist/packem_chunks/MailPanel.mjs +2 -0
  21. package/dist/packem_chunks/MetricsPanel.mjs +1 -0
  22. package/dist/packem_chunks/NotificationsPanel.mjs +1 -0
  23. package/dist/packem_chunks/PitrPanel.mjs +1 -0
  24. package/dist/packem_chunks/SchemaViewer.mjs +1 -0
  25. package/dist/packem_chunks/SecurityAdvisorPanel.mjs +1 -0
  26. package/dist/packem_chunks/SettingsPanel.mjs +1 -0
  27. package/dist/packem_chunks/SqlEditorPanel.mjs +10 -0
  28. package/dist/packem_chunks/TableEditor.mjs +1 -0
  29. package/dist/packem_chunks/agents-panel.mjs +1 -0
  30. package/dist/packem_chunks/ai-usage-panel.mjs +1 -0
  31. package/dist/packem_chunks/analytics-panel.mjs +1 -0
  32. package/dist/packem_chunks/architecture-panel.mjs +1 -0
  33. package/dist/packem_chunks/auth-audit-panel.mjs +1 -0
  34. package/dist/packem_chunks/auth-config-panel.mjs +1 -0
  35. package/dist/packem_chunks/auth-sessions-panel.mjs +1 -0
  36. package/dist/packem_chunks/containers-panel.mjs +1 -0
  37. package/dist/packem_chunks/dashboards-panel.mjs +1 -0
  38. package/dist/packem_chunks/evals-panel.mjs +1 -0
  39. package/dist/packem_chunks/fanout-panel.mjs +1 -0
  40. package/dist/packem_chunks/flags-panel.mjs +1 -0
  41. package/dist/packem_chunks/issues-panel.mjs +1 -0
  42. package/dist/packem_chunks/kv-browser.mjs +1 -0
  43. package/dist/packem_chunks/log-drains-panel.mjs +4 -0
  44. package/dist/packem_chunks/migrations-route.mjs +1 -0
  45. package/dist/packem_chunks/organizations-panel.mjs +1 -0
  46. package/dist/packem_chunks/payments-panel.mjs +1 -0
  47. package/dist/packem_chunks/permissions-panel.mjs +1 -0
  48. package/dist/packem_chunks/privacy-requests-panel.mjs +1 -0
  49. package/dist/packem_chunks/queues-panel.mjs +1 -0
  50. package/dist/packem_chunks/reactors-panel.mjs +1 -0
  51. package/dist/packem_chunks/rls-panel.mjs +1 -0
  52. package/dist/packem_chunks/schedule-panel.mjs +1 -0
  53. package/dist/packem_chunks/storage-rules-panel.mjs +1 -0
  54. package/dist/packem_chunks/subscriptions-panel.mjs +1 -0
  55. package/dist/packem_chunks/sync-client-panel.mjs +1 -0
  56. package/dist/packem_chunks/theme-indicator.mjs +1 -0
  57. package/dist/packem_chunks/traces-panel.mjs +1 -0
  58. package/dist/packem_chunks/users-panel.mjs +1 -0
  59. package/dist/packem_chunks/vector-browser.mjs +1 -0
  60. package/dist/packem_chunks/workflows-panel.mjs +1 -0
  61. package/dist/packem_shared/ADMIN_FUNCTIONS-4aGsMs95.mjs +1 -0
  62. package/dist/packem_shared/ApiDocsPanel-E4Vr-8zW.mjs +2 -0
  63. package/dist/packem_shared/ApiReferencePanel-u9Rrljdf.mjs +1 -0
  64. package/dist/packem_shared/CommandPalette-5OsK8PNe.mjs +1 -0
  65. package/dist/packem_shared/ConfirmButton-CIXYF6Mg.mjs +1 -0
  66. package/dist/packem_shared/ConnectionBadge-BfcoN-VE.mjs +1 -0
  67. package/dist/packem_shared/DEFAULT_AUTO_REFRESH_MS-CG7Q45ZS.mjs +1 -0
  68. package/dist/packem_shared/DEFAULT_INSIGHT_THRESHOLDS-D5YMT0gM.mjs +1 -0
  69. package/dist/packem_shared/DEFAULT_LOCALE-BQ3jRT74.mjs +1 -0
  70. package/dist/packem_shared/DataBrowser-C5HbI4TH.mjs +4 -0
  71. package/dist/packem_shared/DataFilters--ocFTVT2.mjs +1 -0
  72. package/dist/packem_shared/ErrorBoundary-BWNF98VF.mjs +1 -0
  73. package/dist/packem_shared/GlobalDataBrowser-D0H2yJSl.mjs +1 -0
  74. package/dist/packem_shared/HomePanel-CcYkDlR-.mjs +1 -0
  75. package/dist/packem_shared/MigrationsPanel-YyCO_T-3.mjs +1 -0
  76. package/dist/packem_shared/OpenRpcReferencePanel-E9cDfHRv.mjs +1 -0
  77. package/dist/packem_shared/STUDIO_ROOT_CLASS-C6MccdVk.mjs +1 -0
  78. package/dist/packem_shared/ScheduledJobs-D4CUj7aX.mjs +1 -0
  79. package/dist/packem_shared/ShardInput-CoySruKZ.mjs +1 -0
  80. package/dist/packem_shared/Studio-4vJzwwNa.mjs +1 -0
  81. package/dist/packem_shared/StudioApp-px2FMPDS.mjs +1 -0
  82. package/dist/packem_shared/StudioI18nProvider-CGXCPnQn.mjs +1 -0
  83. package/dist/packem_shared/advisor-view-fNcNYW2Q.mjs +1 -0
  84. package/dist/packem_shared/aggregateMetrics-DKFJc-o5.mjs +1 -0
  85. package/dist/packem_shared/alert-PB5W11MM.mjs +1 -0
  86. package/dist/packem_shared/app.d-D425h1XO.d.mts +352 -0
  87. package/dist/packem_shared/app.d-D425h1XO.d.ts +352 -0
  88. package/dist/packem_shared/auth-pager-DW77WeZw.mjs +1 -0
  89. package/dist/packem_shared/badge-r_5B4LHP.mjs +1 -0
  90. package/dist/packem_shared/bar-chart-BCsEIQoQ.mjs +6 -0
  91. package/dist/packem_shared/browser-storage-BH1MxLZs.mjs +1 -0
  92. package/dist/packem_shared/button-q0UYSmrn.mjs +1 -0
  93. package/dist/packem_shared/card-By2O8ULa.mjs +1 -0
  94. package/dist/packem_shared/cf-links-CBJ5SywP.mjs +1 -0
  95. package/dist/packem_shared/checkbox-CnS9cyCz.mjs +1 -0
  96. package/dist/packem_shared/control-button-BOZ5K-FC.mjs +1 -0
  97. package/dist/packem_shared/data-grid-r3isM8Nq.mjs +1 -0
  98. package/dist/packem_shared/data-view-params-C-_G-biH.mjs +1 -0
  99. package/dist/packem_shared/diagram-export-panel-aBDQdX4e.mjs +2 -0
  100. package/dist/packem_shared/dropdown-menu-jLZenfWH.mjs +2 -0
  101. package/dist/packem_shared/empty-state-D7jEML_T.mjs +1 -0
  102. package/dist/packem_shared/error-alert-54TiaMvZ.mjs +1 -0
  103. package/dist/packem_shared/grid-features-2c5SaBtH.mjs +6 -0
  104. package/dist/packem_shared/grid-pagination-DY2erU65.mjs +1 -0
  105. package/dist/packem_shared/home-panel-DPiMVQZ2.mjs +3 -0
  106. package/dist/packem_shared/input-CXhxesPC.mjs +1 -0
  107. package/dist/packem_shared/internal-BXEjuLPN.mjs +2 -0
  108. package/dist/packem_shared/label-DKFzyHq6.mjs +1 -0
  109. package/dist/packem_shared/live-status-D1GasNsH.mjs +1 -0
  110. package/dist/packem_shared/log-fields-BolUoZ9g.mjs +1 -0
  111. package/dist/packem_shared/log-line-BWDt_F56.mjs +1 -0
  112. package/dist/packem_shared/metrics-format-1sNGG47R.mjs +1 -0
  113. package/dist/packem_shared/modal-shell-CDztwLnv.mjs +1 -0
  114. package/dist/packem_shared/operation-console-provider-DoloEvon.mjs +1 -0
  115. package/dist/packem_shared/recording-client-MbGZ28I0.mjs +1 -0
  116. package/dist/packem_shared/reference-view-DCEC5kjY.mjs +13 -0
  117. package/dist/packem_shared/schema-diagram-k7cFl7Wp.mjs +2 -0
  118. package/dist/packem_shared/scroll-area-CXCQH7VT.mjs +2 -0
  119. package/dist/packem_shared/select-DPyS18Vy.mjs +2 -0
  120. package/dist/packem_shared/shard-history-CaO3C4KQ.mjs +1 -0
  121. package/dist/packem_shared/shortcuts-B9gDaXmw.mjs +1 -0
  122. package/dist/packem_shared/skeleton-DX1gfixl.mjs +1 -0
  123. package/dist/packem_shared/sparkline-B_sPPO_8.mjs +1 -0
  124. package/dist/packem_shared/sql-result-table-CatgdmMh.mjs +1 -0
  125. package/dist/packem_shared/stat-card-BAv73QtB.mjs +1 -0
  126. package/dist/packem_shared/storage-tier-C2mKwYRj.mjs +1 -0
  127. package/dist/packem_shared/studio-DIUgH7k0.mjs +2 -0
  128. package/dist/packem_shared/table-D0SBiDu-.mjs +2 -0
  129. package/dist/packem_shared/table-list-sidebar-CCRB_iYz.mjs +1 -0
  130. package/dist/packem_shared/textarea--40GKAyz.mjs +1 -0
  131. package/dist/packem_shared/trace-handoff-BV3EWqy_.mjs +1 -0
  132. package/dist/packem_shared/use-admin-query-BW9IuacC.mjs +1 -0
  133. package/dist/packem_shared/use-admin-spec-BdNLZbTO.mjs +1 -0
  134. package/dist/packem_shared/use-async-submit-2eBBD0-m.mjs +1 -0
  135. package/dist/packem_shared/use-auth-config-KO9tnI39.mjs +1 -0
  136. package/dist/packem_shared/use-mirrored-ref-CVDf2z1M.mjs +1 -0
  137. package/dist/packem_shared/use-open-trace-B_0LbTD7.mjs +1 -0
  138. package/dist/packem_shared/use-shard-key-BsP3o5wT.mjs +1 -0
  139. package/dist/packem_shared/use-sql-assistant-BMVlguKF.mjs +1 -0
  140. package/dist/packem_shared/use-studio-client-DCA50tF2.mjs +1 -0
  141. package/dist/packem_shared/useDebounced-DVeQ5-oW.mjs +1 -0
  142. package/dist/packem_shared/utils-bhneXptQ.mjs +1 -0
  143. package/dist/packem_shared/virtual-rect-D_j7aLxX.mjs +1 -0
  144. package/dist/standalone/chunk-22O2JDWR.js +1 -0
  145. package/dist/standalone/chunk-2DV455PX.js +1 -0
  146. package/dist/standalone/chunk-2EMNPL3B.js +1 -0
  147. package/dist/standalone/chunk-2O6KKVH2.js +1 -0
  148. package/dist/standalone/chunk-35BGGOWV.js +1 -0
  149. package/dist/standalone/chunk-3GXPALXG.js +1 -0
  150. package/dist/standalone/chunk-3MQ477EE.js +1 -0
  151. package/dist/standalone/chunk-3Y5K3IQO.js +1 -0
  152. package/dist/standalone/chunk-453GHHZ4.js +1 -0
  153. package/dist/standalone/chunk-4C4THJUD.js +1 -0
  154. package/dist/standalone/chunk-4CITH2NU.js +1 -0
  155. package/dist/standalone/chunk-4EDOPHLM.js +5 -0
  156. package/dist/standalone/chunk-4IEMXFUB.js +1 -0
  157. package/dist/standalone/chunk-4QRVJDM4.js +1 -0
  158. package/dist/standalone/chunk-4SQBAPY6.js +1 -0
  159. package/dist/standalone/chunk-4UWYDYM5.js +1 -0
  160. package/dist/standalone/chunk-57ZNR6IA.js +1 -0
  161. package/dist/standalone/chunk-5DNGK3NT.js +1 -0
  162. package/dist/standalone/chunk-6DYXTEU7.js +1 -0
  163. package/dist/standalone/chunk-6GPEHYCG.js +1 -0
  164. package/dist/standalone/chunk-6GRI2HXU.js +1 -0
  165. package/dist/standalone/chunk-6I42AM75.js +1 -0
  166. package/dist/standalone/chunk-6M7FLLMT.js +1 -0
  167. package/dist/standalone/chunk-6QBK3Z7A.js +1 -0
  168. package/dist/standalone/chunk-6QEXGYWH.js +1 -0
  169. package/dist/standalone/chunk-6UTZXEW3.js +1 -0
  170. package/dist/standalone/chunk-7EAHHRJR.js +1 -0
  171. package/dist/standalone/chunk-7RGYCU6F.js +1 -0
  172. package/dist/standalone/chunk-A566HCBX.js +1 -0
  173. package/dist/standalone/chunk-ACNWZIAH.js +15 -0
  174. package/dist/standalone/chunk-ANACHJRU.js +1 -0
  175. package/dist/standalone/chunk-AOHKAKKL.js +1 -0
  176. package/dist/standalone/chunk-AP4PC2M4.js +1 -0
  177. package/dist/standalone/chunk-BAGJYLSU.js +8 -0
  178. package/dist/standalone/chunk-BCOOULSO.js +1 -0
  179. package/dist/standalone/chunk-BKH2NALB.js +1 -0
  180. package/dist/standalone/chunk-BTOOJXUL.js +59 -0
  181. package/dist/standalone/chunk-C6FNBKCO.js +1 -0
  182. package/dist/standalone/chunk-CTE6RPXC.js +1 -0
  183. package/dist/standalone/chunk-CW57Q264.js +1 -0
  184. package/dist/standalone/chunk-DBVJ5VLI.js +1 -0
  185. package/dist/standalone/chunk-DS7HZKZ2.js +6 -0
  186. package/dist/standalone/chunk-DSTNWB4N.js +1 -0
  187. package/dist/standalone/chunk-DTW4E5AB.js +1 -0
  188. package/dist/standalone/chunk-DX55P3KZ.js +1 -0
  189. package/dist/standalone/chunk-E26OT26O.js +1 -0
  190. package/dist/standalone/chunk-FLVDICZL.js +1 -0
  191. package/dist/standalone/chunk-FNWRS4VQ.js +1 -0
  192. package/dist/standalone/chunk-FST24UXA.js +1 -0
  193. package/dist/standalone/chunk-FXGYX2V6.js +1 -0
  194. package/dist/standalone/chunk-HKLF627N.js +1 -0
  195. package/dist/standalone/chunk-HKPDPKXD.js +1 -0
  196. package/dist/standalone/chunk-HWTX54JM.js +8 -0
  197. package/dist/standalone/chunk-HZCLLEWP.js +1 -0
  198. package/dist/standalone/chunk-IBJVVHV5.js +1 -0
  199. package/dist/standalone/chunk-IH2CJZF2.js +1 -0
  200. package/dist/standalone/chunk-IRCUXARN.js +1 -0
  201. package/dist/standalone/chunk-IVQKQBKK.js +1 -0
  202. package/dist/standalone/chunk-JTGGWF7R.js +1 -0
  203. package/dist/standalone/chunk-K7FZTYAY.js +1 -0
  204. package/dist/standalone/chunk-KNX3KB7E.js +1 -0
  205. package/dist/standalone/chunk-KRPXOSBL.js +1 -0
  206. package/dist/standalone/chunk-KYONGQQ4.js +1 -0
  207. package/dist/standalone/chunk-LIGOLZND.js +1 -0
  208. package/dist/standalone/chunk-LKCO3E2B.js +1 -0
  209. package/dist/standalone/chunk-LPINY2IJ.js +19 -0
  210. package/dist/standalone/chunk-LRXCL6IA.js +1 -0
  211. package/dist/standalone/chunk-LUHXNZI4.js +2 -0
  212. package/dist/standalone/chunk-LYHEBMM6.js +1 -0
  213. package/dist/standalone/chunk-M2RIGPGL.js +1 -0
  214. package/dist/standalone/chunk-MD67S53Z.js +1 -0
  215. package/dist/standalone/chunk-MDAXV2XH.js +4 -0
  216. package/dist/standalone/chunk-MKVZXGJQ.js +1 -0
  217. package/dist/standalone/chunk-NGVP66OH.js +1 -0
  218. package/dist/standalone/chunk-NMVFSJM7.js +1 -0
  219. package/dist/standalone/chunk-OIDFWEJX.js +21 -0
  220. package/dist/standalone/chunk-OJG65AG4.js +1 -0
  221. package/dist/standalone/chunk-OSJ7HV7B.js +1 -0
  222. package/dist/standalone/chunk-OUFWXYEF.js +1 -0
  223. package/dist/standalone/chunk-OXFKZ4BM.js +1 -0
  224. package/dist/standalone/chunk-P6L6ABWO.js +1 -0
  225. package/dist/standalone/chunk-PZZWUL5U.js +1 -0
  226. package/dist/standalone/chunk-Q4N3TJPV.js +1 -0
  227. package/dist/standalone/chunk-QEVFVWGC.js +2 -0
  228. package/dist/standalone/chunk-R36QXQZX.js +1 -0
  229. package/dist/standalone/chunk-RHOQJNDW.js +1 -0
  230. package/dist/standalone/chunk-RQDSPVVH.js +1 -0
  231. package/dist/standalone/chunk-S5S2YICJ.js +1 -0
  232. package/dist/standalone/chunk-S6JFSLBK.js +1 -0
  233. package/dist/standalone/chunk-SDQH4HR6.js +3 -0
  234. package/dist/standalone/chunk-SDTHCM5H.js +1 -0
  235. package/dist/standalone/chunk-SFY646MC.js +1 -0
  236. package/dist/standalone/chunk-SJLEEYCR.js +1 -0
  237. package/dist/standalone/chunk-SLIDAWNX.js +1 -0
  238. package/dist/standalone/chunk-SM2IQWCJ.js +1 -0
  239. package/dist/standalone/{chunk-BJGBHGK3.js → chunk-SYGCASPT.js} +1 -1
  240. package/dist/standalone/chunk-T2QAOXUO.js +14 -0
  241. package/dist/standalone/chunk-T4VAXHRL.js +4 -0
  242. package/dist/standalone/chunk-TBDJVYCB.js +1 -0
  243. package/dist/standalone/chunk-TDVDZ7XQ.js +1 -0
  244. package/dist/standalone/chunk-TRZTGE4R.js +1 -0
  245. package/dist/standalone/chunk-TTD7BKB6.js +1 -0
  246. package/dist/standalone/chunk-UCK6ITED.js +1 -0
  247. package/dist/standalone/chunk-UKKZJRJT.js +1 -0
  248. package/dist/standalone/chunk-UYEZR3BI.js +1 -0
  249. package/dist/standalone/chunk-V74BXQXC.js +1 -0
  250. package/dist/standalone/chunk-VEWQWS3J.js +1 -0
  251. package/dist/standalone/chunk-VHMA6YPT.js +1 -0
  252. package/dist/standalone/chunk-W2BCSK5S.js +1 -0
  253. package/dist/standalone/chunk-W4X4J7BU.js +1 -0
  254. package/dist/standalone/chunk-W6ZKEW5M.js +1 -0
  255. package/dist/standalone/chunk-W7MRISE3.js +1 -0
  256. package/dist/standalone/chunk-WIYDA4XT.js +1 -0
  257. package/dist/standalone/chunk-WS36BO4R.js +1 -0
  258. package/dist/standalone/chunk-WZTY3ZYI.js +1 -0
  259. package/dist/standalone/chunk-X5KWBDTF.js +1 -0
  260. package/dist/standalone/chunk-X74GEPSG.js +1 -0
  261. package/dist/standalone/chunk-X7GSROPX.js +1 -0
  262. package/dist/standalone/chunk-XBZUJDHD.js +1 -0
  263. package/dist/standalone/chunk-XYR5NST4.js +1 -0
  264. package/dist/standalone/chunk-Y7SN6CTX.js +1 -0
  265. package/dist/standalone/chunk-YHTHRYP5.js +1 -0
  266. package/dist/standalone/chunk-YJWR6ZWC.js +1 -0
  267. package/dist/standalone/chunk-YRQHFMEY.js +1 -0
  268. package/dist/standalone/chunk-Z5EV64KS.js +1 -0
  269. package/dist/standalone/chunk-ZBON5T5A.js +1 -0
  270. package/dist/standalone/chunk-ZGSL4DPP.js +1 -0
  271. package/dist/standalone/chunk-ZKPRORLI.js +1 -0
  272. package/dist/standalone/chunk-ZLSNET6H.js +1 -0
  273. package/dist/standalone/chunk-ZM4K2ETZ.js +3 -0
  274. package/dist/standalone/chunk-ZTOREMGH.js +1 -0
  275. package/dist/standalone/chunk-ZWDORIZY.js +1 -0
  276. package/dist/standalone/studio.js +9 -214
  277. package/dist/styles.css +2 -2
  278. package/package.json +26 -22
  279. package/dist/index.js +0 -41
  280. package/dist/mount.js +0 -27
  281. package/dist/packem_chunks/ApiTab.js +0 -251
  282. package/dist/packem_chunks/AuditPanel.js +0 -200
  283. package/dist/packem_chunks/ExportImportPanel.js +0 -198
  284. package/dist/packem_chunks/FileBrowser.js +0 -2932
  285. package/dist/packem_chunks/FunctionRunner.js +0 -343
  286. package/dist/packem_chunks/FunctionStatsPanel.js +0 -377
  287. package/dist/packem_chunks/HealthPanel.js +0 -648
  288. package/dist/packem_chunks/InsightsPanel.js +0 -462
  289. package/dist/packem_chunks/LogsPanel.js +0 -827
  290. package/dist/packem_chunks/MailPanel.js +0 -353
  291. package/dist/packem_chunks/MetricsPanel.js +0 -1344
  292. package/dist/packem_chunks/MigrationsPanel.js +0 -239
  293. package/dist/packem_chunks/PitrPanel.js +0 -252
  294. package/dist/packem_chunks/SchemaViewer.js +0 -2513
  295. package/dist/packem_chunks/SecurityAdvisorPanel.js +0 -95
  296. package/dist/packem_chunks/SettingsPanel.js +0 -391
  297. package/dist/packem_chunks/SqlEditorPanel.js +0 -2323
  298. package/dist/packem_chunks/TableEditor.js +0 -313
  299. package/dist/packem_chunks/analytics-panel.js +0 -261
  300. package/dist/packem_chunks/auth-config-panel.js +0 -179
  301. package/dist/packem_chunks/auth-sessions-panel.js +0 -175
  302. package/dist/packem_chunks/containers-panel.js +0 -247
  303. package/dist/packem_chunks/dashboards-panel.js +0 -780
  304. package/dist/packem_chunks/fanout-panel.js +0 -482
  305. package/dist/packem_chunks/flags-panel.js +0 -176
  306. package/dist/packem_chunks/kv-browser.js +0 -1896
  307. package/dist/packem_chunks/log-drains-panel.js +0 -273
  308. package/dist/packem_chunks/organizations-panel.js +0 -670
  309. package/dist/packem_chunks/payments-panel.js +0 -186
  310. package/dist/packem_chunks/permissions-panel.js +0 -805
  311. package/dist/packem_chunks/queues-panel.js +0 -1052
  312. package/dist/packem_chunks/rls-panel.js +0 -315
  313. package/dist/packem_chunks/schedule-panel.js +0 -831
  314. package/dist/packem_chunks/sparkline.js +0 -79
  315. package/dist/packem_chunks/storage-rules-panel.js +0 -140
  316. package/dist/packem_chunks/subscriptions-panel.js +0 -238
  317. package/dist/packem_chunks/users-panel.js +0 -1265
  318. package/dist/packem_chunks/vector-browser.js +0 -281
  319. package/dist/packem_chunks/workflows-panel.js +0 -562
  320. package/dist/packem_shared/ADMIN_FUNCTIONS-BHHJi3Gb.js +0 -52
  321. package/dist/packem_shared/ApiDocsPanel-D4CJf2ad.js +0 -842
  322. package/dist/packem_shared/ApiReferencePanel-Co_wpRF2.js +0 -230
  323. package/dist/packem_shared/CommandPalette-BUPpbpMc.js +0 -373
  324. package/dist/packem_shared/ConfirmButton-C2eVi2Qv.js +0 -59
  325. package/dist/packem_shared/ConnectionBadge-B2DDM2Tn.js +0 -111
  326. package/dist/packem_shared/DEFAULT_AUTO_REFRESH_MS-Vxwaxx51.js +0 -50
  327. package/dist/packem_shared/DEFAULT_INSIGHT_THRESHOLDS-DjF0h-gA.js +0 -89
  328. package/dist/packem_shared/DEFAULT_LOCALE-CiX4W7Kr.js +0 -27
  329. package/dist/packem_shared/DataBrowser-BeVNxSVm.js +0 -4493
  330. package/dist/packem_shared/DataFilters-FNquMaiu.js +0 -249
  331. package/dist/packem_shared/ErrorBoundary-BzAApI7J.js +0 -66
  332. package/dist/packem_shared/GlobalDataBrowser-ErfvIs1S.js +0 -289
  333. package/dist/packem_shared/HomePanel-D9MQk8I7.js +0 -14
  334. package/dist/packem_shared/OpenRpcReferencePanel-DLWzrIx9.js +0 -192
  335. package/dist/packem_shared/STUDIO_ROOT_CLASS-D12gX2dV.js +0 -3
  336. package/dist/packem_shared/ScheduledJobs-ClaNpZsg.js +0 -262
  337. package/dist/packem_shared/ShardInput-gx_DZXXn.js +0 -107
  338. package/dist/packem_shared/Studio-C48P1K5W.js +0 -16
  339. package/dist/packem_shared/StudioApp-Cqh-SYm2.js +0 -657
  340. package/dist/packem_shared/StudioI18nProvider-B-tDCZIi.js +0 -48
  341. package/dist/packem_shared/advisor-view-D3-U4kRR.js +0 -159
  342. package/dist/packem_shared/aggregateMetrics-D4nUHEKU.js +0 -108
  343. package/dist/packem_shared/alert-CdAET2K_.js +0 -68
  344. package/dist/packem_shared/app.d-CNLRTrWw.d.ts +0 -300
  345. package/dist/packem_shared/badge-B2PKA1-5.js +0 -49
  346. package/dist/packem_shared/bar-chart-DSwcWIRy.js +0 -3246
  347. package/dist/packem_shared/browser-storage-tLOxkIHd.js +0 -185
  348. package/dist/packem_shared/button-BhsN2uZH.js +0 -49
  349. package/dist/packem_shared/card-DURq3ElK.js +0 -175
  350. package/dist/packem_shared/cf-links-BZfRdxSE.js +0 -8
  351. package/dist/packem_shared/checkbox-UNkzAxl-.js +0 -63
  352. package/dist/packem_shared/data-grid-Jz8FqQ2C.js +0 -183
  353. package/dist/packem_shared/data-view-params-Cd6yRVbv.js +0 -96
  354. package/dist/packem_shared/dropdown-menu-WY4B_eJO.js +0 -280
  355. package/dist/packem_shared/empty-state-DY_oe0k6.js +0 -98
  356. package/dist/packem_shared/error-alert-BBT6D22d.js +0 -114
  357. package/dist/packem_shared/grid-features-CUr8Z1_O.js +0 -745
  358. package/dist/packem_shared/home-panel-CoGxi-oj.js +0 -1639
  359. package/dist/packem_shared/input-XH4r1Pt1.js +0 -53
  360. package/dist/packem_shared/internal-DTsYVn-g.js +0 -97
  361. package/dist/packem_shared/label-D8ykjn5J.js +0 -46
  362. package/dist/packem_shared/live-status-FZ0psC1z.js +0 -44
  363. package/dist/packem_shared/modal-shell-hyaJvIJ6.js +0 -100
  364. package/dist/packem_shared/reference-view-CSKyUyPl.js +0 -2141
  365. package/dist/packem_shared/scroll-area-DLhcy-ml.js +0 -93
  366. package/dist/packem_shared/select-UkNYCT3s.js +0 -273
  367. package/dist/packem_shared/shard-history-DyebH1R5.js +0 -38
  368. package/dist/packem_shared/skeleton-CGhL0p20.js +0 -45
  369. package/dist/packem_shared/sparkline-BnA1kC9X.js +0 -93
  370. package/dist/packem_shared/storage-tier-CL98eOvn.js +0 -85
  371. package/dist/packem_shared/studio-CPHA_-3I.js +0 -4015
  372. package/dist/packem_shared/table-DsCa9Qp9.js +0 -246
  373. package/dist/packem_shared/table-list-sidebar-B5psdSV1.js +0 -832
  374. package/dist/packem_shared/textarea-D3gaCU_-.js +0 -46
  375. package/dist/packem_shared/use-admin-query-BHPKmPuj.js +0 -106
  376. package/dist/packem_shared/use-auth-capabilities-C-VH0oJJ.js +0 -32
  377. package/dist/packem_shared/useDebounced-Dxncpg6z.js +0 -32
  378. package/dist/packem_shared/utils-B05Dmz_H.js +0 -8
  379. package/dist/packem_shared/virtual-rect-CVMUskSm.js +0 -10
  380. package/dist/standalone/chunk-25VHPD2I.js +0 -1
  381. package/dist/standalone/chunk-2GGMGPEP.js +0 -1
  382. package/dist/standalone/chunk-2K47A3P6.js +0 -1
  383. package/dist/standalone/chunk-2NGUNNGW.js +0 -1
  384. package/dist/standalone/chunk-3CJW6NWG.js +0 -4
  385. package/dist/standalone/chunk-3OA7PECS.js +0 -6
  386. package/dist/standalone/chunk-46K3NKPA.js +0 -1
  387. package/dist/standalone/chunk-474C2O7W.js +0 -1
  388. package/dist/standalone/chunk-4H2OJBXO.js +0 -1
  389. package/dist/standalone/chunk-4QHKBC77.js +0 -1
  390. package/dist/standalone/chunk-55YA7ZZI.js +0 -76
  391. package/dist/standalone/chunk-5OH3VPZF.js +0 -1
  392. package/dist/standalone/chunk-5OIBXYZM.js +0 -1
  393. package/dist/standalone/chunk-6GFEVKJP.js +0 -1
  394. package/dist/standalone/chunk-6UGM5IHN.js +0 -4
  395. package/dist/standalone/chunk-6WRZP62V.js +0 -1
  396. package/dist/standalone/chunk-764T6X6X.js +0 -1
  397. package/dist/standalone/chunk-7TJJXVSE.js +0 -1
  398. package/dist/standalone/chunk-7VF3IAAW.js +0 -2
  399. package/dist/standalone/chunk-7WNJ4Q7Z.js +0 -8
  400. package/dist/standalone/chunk-AHILM3ZP.js +0 -1
  401. package/dist/standalone/chunk-AJIUI7DD.js +0 -1
  402. package/dist/standalone/chunk-BACPICH6.js +0 -1
  403. package/dist/standalone/chunk-BI35RXKQ.js +0 -1
  404. package/dist/standalone/chunk-BOXSWNXZ.js +0 -1
  405. package/dist/standalone/chunk-BQUQS7QN.js +0 -1
  406. package/dist/standalone/chunk-CKSHCYGC.js +0 -2
  407. package/dist/standalone/chunk-DORBUITF.js +0 -1
  408. package/dist/standalone/chunk-DVC6YWVP.js +0 -1
  409. package/dist/standalone/chunk-DVKPRFIJ.js +0 -1
  410. package/dist/standalone/chunk-DWDILV2E.js +0 -1
  411. package/dist/standalone/chunk-DWTBY343.js +0 -1
  412. package/dist/standalone/chunk-EIQW6ACH.js +0 -1
  413. package/dist/standalone/chunk-EUIHTPKI.js +0 -1
  414. package/dist/standalone/chunk-FCSPAJW4.js +0 -1
  415. package/dist/standalone/chunk-FKO3HO6I.js +0 -4
  416. package/dist/standalone/chunk-GMSGZDDH.js +0 -13
  417. package/dist/standalone/chunk-GTM65MVX.js +0 -1
  418. package/dist/standalone/chunk-HV7G6DFP.js +0 -5
  419. package/dist/standalone/chunk-ILCTSAOB.js +0 -1
  420. package/dist/standalone/chunk-IODYGARQ.js +0 -1
  421. package/dist/standalone/chunk-J6J54MBP.js +0 -1
  422. package/dist/standalone/chunk-JE2YOAB7.js +0 -4
  423. package/dist/standalone/chunk-JFSZIUZT.js +0 -4
  424. package/dist/standalone/chunk-JSEXCW5Q.js +0 -1
  425. package/dist/standalone/chunk-K3GNLVYK.js +0 -1
  426. package/dist/standalone/chunk-KEGAWN6Y.js +0 -1
  427. package/dist/standalone/chunk-KZ6INM5M.js +0 -1
  428. package/dist/standalone/chunk-LD2R263D.js +0 -1
  429. package/dist/standalone/chunk-LI43EKM6.js +0 -1
  430. package/dist/standalone/chunk-M55U7NHO.js +0 -1
  431. package/dist/standalone/chunk-MPTM7ZU3.js +0 -3
  432. package/dist/standalone/chunk-MPYFGAOW.js +0 -1
  433. package/dist/standalone/chunk-NJFMWO6P.js +0 -1
  434. package/dist/standalone/chunk-O3NAGRTR.js +0 -1
  435. package/dist/standalone/chunk-O77VNUFD.js +0 -1
  436. package/dist/standalone/chunk-OCHNCAXJ.js +0 -1
  437. package/dist/standalone/chunk-PACH5AHG.js +0 -1
  438. package/dist/standalone/chunk-PN5NCZDX.js +0 -1
  439. package/dist/standalone/chunk-PVZI3CXP.js +0 -19
  440. package/dist/standalone/chunk-PZ7HD5T2.js +0 -1
  441. package/dist/standalone/chunk-QAFAJBAW.js +0 -1
  442. package/dist/standalone/chunk-QBAT52GB.js +0 -1
  443. package/dist/standalone/chunk-QLM6FYZW.js +0 -2
  444. package/dist/standalone/chunk-RRAFQ5G2.js +0 -1
  445. package/dist/standalone/chunk-RRCPZMC2.js +0 -22
  446. package/dist/standalone/chunk-RSEEHNFI.js +0 -1
  447. package/dist/standalone/chunk-SEU5V7I6.js +0 -1
  448. package/dist/standalone/chunk-SLKF2L74.js +0 -1
  449. package/dist/standalone/chunk-SVR644RF.js +0 -1
  450. package/dist/standalone/chunk-TAD43CG5.js +0 -1
  451. package/dist/standalone/chunk-TBMYIZIO.js +0 -1
  452. package/dist/standalone/chunk-TDL7NEWA.js +0 -1
  453. package/dist/standalone/chunk-TO4JQX7W.js +0 -1
  454. package/dist/standalone/chunk-TQ36RWOP.js +0 -1
  455. package/dist/standalone/chunk-U4OAQPBT.js +0 -1
  456. package/dist/standalone/chunk-UII66UVF.js +0 -1
  457. package/dist/standalone/chunk-UK64ZSUW.js +0 -1
  458. package/dist/standalone/chunk-VLXV72QE.js +0 -1
  459. package/dist/standalone/chunk-VSHUSN6T.js +0 -1
  460. package/dist/standalone/chunk-VTGBPW24.js +0 -1
  461. package/dist/standalone/chunk-WXPWVBIY.js +0 -1
  462. package/dist/standalone/chunk-X6F22DBL.js +0 -1
  463. package/dist/standalone/chunk-X7MMBSNW.js +0 -1
  464. package/dist/standalone/chunk-XGMIDFUK.js +0 -1
  465. package/dist/standalone/chunk-XNJNSCLM.js +0 -1
  466. package/dist/standalone/chunk-XUGSA2NG.js +0 -1
  467. package/dist/standalone/chunk-XZE2RNDA.js +0 -1
  468. package/dist/standalone/chunk-Y2ZPNDL7.js +0 -4
  469. package/dist/standalone/chunk-YAECF5LW.js +0 -1
  470. package/dist/standalone/chunk-YEVCU7TB.js +0 -13
  471. package/dist/standalone/chunk-YV43BOP7.js +0 -1
  472. package/dist/standalone/chunk-ZHVTQ37P.js +0 -1
  473. package/dist/standalone/chunk-ZPP2KOR4.js +0 -1
  474. package/dist/standalone/chunk-ZPUO7FNI.js +0 -1
  475. package/dist/standalone/chunk-ZU4DZ6NK.js +0 -1
@@ -1,1639 +0,0 @@
1
- import { c } from 'react/compiler-runtime';
2
- import { useNavigate } from '@tanstack/react-router';
3
- import { useState, useEffect, Suspense, lazy } from 'react';
4
- import { B as Badge } from './badge-B2PKA1-5.js';
5
- import { a as CardContent, C as Card } from './card-DURq3ElK.js';
6
- import { E as EmptyState } from './empty-state-DY_oe0k6.js';
7
- import { u as useAdminQuery } from './use-admin-query-BHPKmPuj.js';
8
- import { useT } from './DEFAULT_LOCALE-CiX4W7Kr.js';
9
- import { ADMIN_FUNCTIONS } from './ADMIN_FUNCTIONS-BHHJi3Gb.js';
10
- import { f as fireAndForget, c as callOptions, a as adminRef, j as formatBytes } from './internal-DTsYVn-g.js';
11
- import { c as cn } from './utils-B05Dmz_H.js';
12
- import { deriveInsights } from './DEFAULT_INSIGHT_THRESHOLDS-DjF0h-gA.js';
13
- import { useLunora } from '@lunora/react';
14
- import { jsxDEV } from 'react/jsx-dev-runtime';
15
-
16
- const STUDIO_FEATURES = adminRef(ADMIN_FUNCTIONS.studioFeatures);
17
- const DEFAULT_STUDIO_FEATURES = {
18
- analytics: true,
19
- auth: true,
20
- containers: true,
21
- flags: true,
22
- kv: true,
23
- mail: true,
24
- payments: true,
25
- queues: true,
26
- scheduler: true,
27
- storage: true,
28
- vectors: true,
29
- workflows: true
30
- };
31
- const coerceFeatures = (raw) => {
32
- if (raw === null || typeof raw !== "object") {
33
- return DEFAULT_STUDIO_FEATURES;
34
- }
35
- const record = raw;
36
- const flag = (key) => typeof record[key] === "boolean" ? record[key] : true;
37
- return {
38
- analytics: flag("analytics"),
39
- auth: flag("auth"),
40
- containers: flag("containers"),
41
- flags: flag("flags"),
42
- kv: flag("kv"),
43
- mail: flag("mail"),
44
- payments: flag("payments"),
45
- queues: flag("queues"),
46
- scheduler: flag("scheduler"),
47
- storage: flag("storage"),
48
- vectors: flag("vectors"),
49
- workflows: flag("workflows")
50
- };
51
- };
52
- const useStudioFeatures = () => {
53
- const $ = c(3);
54
- const client = useLunora();
55
- const [features, setFeatures] = useState(DEFAULT_STUDIO_FEATURES);
56
- let t0;
57
- let t1;
58
- if ($[0] !== client) {
59
- t0 = () => {
60
- fireAndForget((async () => {
61
- try {
62
- setFeatures(coerceFeatures(await client.query(STUDIO_FEATURES, {}, callOptions(""))));
63
- } catch {
64
- }
65
- })());
66
- };
67
- t1 = [client];
68
- $[0] = client;
69
- $[1] = t0;
70
- $[2] = t1;
71
- } else {
72
- t0 = $[1];
73
- t1 = $[2];
74
- }
75
- useEffect(t0, t1);
76
- return features;
77
- };
78
-
79
- const ChevronRight$1 = () => {
80
- const $ = c(1);
81
- let t0;
82
- if ($[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
83
- t0 = /* @__PURE__ */ jsxDEV("svg", {
84
- "aria-hidden": "true",
85
- className: "size-4 text-muted-foreground",
86
- fill: "none",
87
- stroke: "currentColor",
88
- strokeWidth: 1.6,
89
- viewBox: "0 0 24 24",
90
- children: /* @__PURE__ */ jsxDEV("path", {
91
- d: "m9 6 6 6-6 6",
92
- strokeLinecap: "round",
93
- strokeLinejoin: "round"
94
- }, void 0, false)
95
- }, void 0, false);
96
- $[0] = t0;
97
- } else {
98
- t0 = $[0];
99
- }
100
- return t0;
101
- };
102
- const BindingCard = (t0) => {
103
- const $ = c(24);
104
- const {
105
- group
106
- } = t0;
107
- const t = useT();
108
- const navigate = useNavigate();
109
- let t1;
110
- if ($[0] !== group.tab || $[1] !== navigate) {
111
- t1 = () => {
112
- fireAndForget(navigate({
113
- to: `/${group.tab}`
114
- }));
115
- };
116
- $[0] = group.tab;
117
- $[1] = navigate;
118
- $[2] = t1;
119
- } else {
120
- t1 = $[2];
121
- }
122
- const onOpen = t1;
123
- const count = group.bindings.length;
124
- let t2;
125
- if ($[3] !== group.label) {
126
- t2 = /* @__PURE__ */ jsxDEV("span", {
127
- className: "text-sm font-medium text-foreground",
128
- children: group.label
129
- }, void 0, false);
130
- $[3] = group.label;
131
- $[4] = t2;
132
- } else {
133
- t2 = $[4];
134
- }
135
- let t3;
136
- if ($[5] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
137
- t3 = /* @__PURE__ */ jsxDEV(ChevronRight$1, {}, void 0, false);
138
- $[5] = t3;
139
- } else {
140
- t3 = $[5];
141
- }
142
- let t4;
143
- if ($[6] !== t2) {
144
- t4 = /* @__PURE__ */ jsxDEV("div", {
145
- className: "flex items-center justify-between",
146
- children: [t2, t3]
147
- }, void 0, true);
148
- $[6] = t2;
149
- $[7] = t4;
150
- } else {
151
- t4 = $[7];
152
- }
153
- let t5;
154
- if ($[8] !== count || $[9] !== t) {
155
- t5 = count === 1 ? t("1 binding") : t("{count} bindings", {
156
- count
157
- });
158
- $[8] = count;
159
- $[9] = t;
160
- $[10] = t5;
161
- } else {
162
- t5 = $[10];
163
- }
164
- let t6;
165
- if ($[11] !== t5) {
166
- t6 = /* @__PURE__ */ jsxDEV("span", {
167
- className: "text-xs text-muted-foreground",
168
- children: t5
169
- }, void 0, false);
170
- $[11] = t5;
171
- $[12] = t6;
172
- } else {
173
- t6 = $[12];
174
- }
175
- let t7;
176
- if ($[13] !== count || $[14] !== group.bindings) {
177
- t7 = count > 0 && /* @__PURE__ */ jsxDEV("div", {
178
- className: "flex flex-wrap gap-1.5",
179
- children: group.bindings.map(_temp$1)
180
- }, void 0, false);
181
- $[13] = count;
182
- $[14] = group.bindings;
183
- $[15] = t7;
184
- } else {
185
- t7 = $[15];
186
- }
187
- let t8;
188
- if ($[16] !== t4 || $[17] !== t6 || $[18] !== t7) {
189
- t8 = /* @__PURE__ */ jsxDEV(CardContent, {
190
- className: "flex flex-col gap-2 py-4",
191
- children: [t4, t6, t7]
192
- }, void 0, true);
193
- $[16] = t4;
194
- $[17] = t6;
195
- $[18] = t7;
196
- $[19] = t8;
197
- } else {
198
- t8 = $[19];
199
- }
200
- let t9;
201
- if ($[20] !== group.testId || $[21] !== onOpen || $[22] !== t8) {
202
- t9 = /* @__PURE__ */ jsxDEV(Card, {
203
- className: "cursor-pointer gap-0 py-0 transition-colors hover:bg-muted/40",
204
- "data-testid": group.testId,
205
- onClick: onOpen,
206
- children: t8
207
- }, void 0, false);
208
- $[20] = group.testId;
209
- $[21] = onOpen;
210
- $[22] = t8;
211
- $[23] = t9;
212
- } else {
213
- t9 = $[23];
214
- }
215
- return t9;
216
- };
217
- const TAB_ORDER = ["kv", "files", "vectors"];
218
- const upsertCard = (current, card) => [...current.filter((group) => group.tab !== card.tab), card].toSorted((a, b) => TAB_ORDER.indexOf(a.tab) - TAB_ORDER.indexOf(b.tab));
219
- const BindingsOverview = () => {
220
- const $ = c(19);
221
- const client = useLunora();
222
- const features = useStudioFeatures();
223
- const t = useT();
224
- let t0;
225
- if ($[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
226
- t0 = [];
227
- $[0] = t0;
228
- } else {
229
- t0 = $[0];
230
- }
231
- const [groups, setGroups] = useState(t0);
232
- let t1;
233
- let t2;
234
- if ($[1] !== client || $[2] !== features.kv || $[3] !== features.storage || $[4] !== features.vectors || $[5] !== t) {
235
- t1 = () => {
236
- const token = {
237
- cancelled: false
238
- };
239
- const sources = [{
240
- enabled: features.kv,
241
- label: t("KV Namespaces"),
242
- load: async () => {
243
- const namespaces = await client.listKvNamespaces();
244
- return namespaces.map(_temp2$1);
245
- },
246
- tab: "kv",
247
- testId: "home-binding-kv"
248
- }, {
249
- enabled: features.storage,
250
- label: t("R2 Buckets"),
251
- load: () => client.listStorageBuckets(),
252
- tab: "files",
253
- testId: "home-binding-r2"
254
- }, {
255
- enabled: features.vectors,
256
- label: t("Vectorize Indexes"),
257
- load: async () => {
258
- const indexes = await client.listVectorIndexes();
259
- return indexes.map(_temp3$1);
260
- },
261
- tab: "vectors",
262
- testId: "home-binding-vectors"
263
- }];
264
- for (const source of sources) {
265
- if (!source.enabled) {
266
- continue;
267
- }
268
- fireAndForget((async () => {
269
- try {
270
- const bindings = await source.load();
271
- if (!token.cancelled) {
272
- const card = {
273
- bindings,
274
- label: source.label,
275
- tab: source.tab,
276
- testId: source.testId
277
- };
278
- setGroups((current) => upsertCard(current, card));
279
- }
280
- } catch {
281
- }
282
- })());
283
- }
284
- return () => {
285
- token.cancelled = true;
286
- };
287
- };
288
- t2 = [client, features.kv, features.storage, features.vectors, t];
289
- $[1] = client;
290
- $[2] = features.kv;
291
- $[3] = features.storage;
292
- $[4] = features.vectors;
293
- $[5] = t;
294
- $[6] = t1;
295
- $[7] = t2;
296
- } else {
297
- t1 = $[6];
298
- t2 = $[7];
299
- }
300
- useEffect(t1, t2);
301
- if (groups.length === 0) {
302
- return null;
303
- }
304
- let t3;
305
- if ($[8] !== t) {
306
- t3 = t("Bindings");
307
- $[8] = t;
308
- $[9] = t3;
309
- } else {
310
- t3 = $[9];
311
- }
312
- let t4;
313
- if ($[10] !== t3) {
314
- t4 = /* @__PURE__ */ jsxDEV("h2", {
315
- className: "text-sm font-semibold tracking-tight text-foreground",
316
- children: t3
317
- }, void 0, false);
318
- $[10] = t3;
319
- $[11] = t4;
320
- } else {
321
- t4 = $[11];
322
- }
323
- let t5;
324
- if ($[12] !== groups) {
325
- t5 = groups.map(_temp4);
326
- $[12] = groups;
327
- $[13] = t5;
328
- } else {
329
- t5 = $[13];
330
- }
331
- let t6;
332
- if ($[14] !== t5) {
333
- t6 = /* @__PURE__ */ jsxDEV("div", {
334
- className: "grid gap-3 sm:grid-cols-2 lg:grid-cols-3",
335
- children: t5
336
- }, void 0, false);
337
- $[14] = t5;
338
- $[15] = t6;
339
- } else {
340
- t6 = $[15];
341
- }
342
- let t7;
343
- if ($[16] !== t4 || $[17] !== t6) {
344
- t7 = /* @__PURE__ */ jsxDEV("section", {
345
- className: "flex flex-col gap-3",
346
- "data-testid": "home-bindings",
347
- children: [t4, t6]
348
- }, void 0, true);
349
- $[16] = t4;
350
- $[17] = t6;
351
- $[18] = t7;
352
- } else {
353
- t7 = $[18];
354
- }
355
- return t7;
356
- };
357
- function _temp$1(binding) {
358
- return /* @__PURE__ */ jsxDEV(Badge, {
359
- variant: "secondary",
360
- children: binding
361
- }, binding, false);
362
- }
363
- function _temp2$1(ns) {
364
- return ns.binding;
365
- }
366
- function _temp3$1(index) {
367
- return index.name;
368
- }
369
- function _temp4(group) {
370
- return /* @__PURE__ */ jsxDEV(BindingCard, {
371
- group
372
- }, group.tab, false);
373
- }
374
-
375
- const Sparkline = /* @__PURE__ */ lazy(() => import('../packem_chunks/sparkline.js').then((m) => {
376
- return {
377
- default: m.Sparkline
378
- };
379
- }));
380
- const formatMs = (ms) => {
381
- if (ms < 1e3) {
382
- return `${String(Math.round(ms))}ms`;
383
- }
384
- const digits = ms >= 1e4 ? 0 : 1;
385
- return `${(ms / 1e3).toFixed(digits)}s`;
386
- };
387
- const relativeTime = (ts, now) => {
388
- const seconds = Math.max(0, Math.round((now - ts) / 1e3));
389
- if (seconds < 60) {
390
- return `${String(seconds)}s ago`;
391
- }
392
- const minutes = Math.round(seconds / 60);
393
- if (minutes < 60) {
394
- return `${String(minutes)}m ago`;
395
- }
396
- const hours = Math.round(minutes / 60);
397
- return hours < 24 ? `${String(hours)}h ago` : `${String(Math.round(hours / 24))}d ago`;
398
- };
399
- const bucketSeries = (history, field) => {
400
- if (history === void 0 || history.length === 0) {
401
- return [];
402
- }
403
- const byBucket = /* @__PURE__ */ new Map();
404
- for (const bucket of history) {
405
- byBucket.set(bucket.bucketMs, (byBucket.get(bucket.bucketMs) ?? 0) + bucket[field]);
406
- }
407
- return [...byBucket.entries()].toSorted(([a], [b]) => a - b).map(([, total]) => total);
408
- };
409
- const seriesDelta = (series, higherIsBetter = true) => {
410
- if (series.length < 4) {
411
- return null;
412
- }
413
- const mid = Math.floor(series.length / 2);
414
- const earlier = series.slice(0, mid).reduce((sum, value) => sum + value, 0);
415
- const recent = series.slice(mid).reduce((sum, value) => sum + value, 0);
416
- if (earlier === 0) {
417
- return null;
418
- }
419
- const pct = (recent - earlier) / earlier * 100;
420
- return {
421
- positive: higherIsBetter ? pct >= 0 : pct <= 0,
422
- text: `${pct >= 0 ? "+" : ""}${pct.toFixed(1)}%`
423
- };
424
- };
425
- const StatCard = (t0) => {
426
- const $ = c(24);
427
- const {
428
- delta,
429
- footer,
430
- label,
431
- trend,
432
- unit,
433
- value
434
- } = t0;
435
- const t = useT();
436
- let t1;
437
- if ($[0] !== label) {
438
- t1 = /* @__PURE__ */ jsxDEV("span", {
439
- className: "font-mono text-[11px] tracking-wide text-muted-foreground uppercase",
440
- children: label
441
- }, void 0, false);
442
- $[0] = label;
443
- $[1] = t1;
444
- } else {
445
- t1 = $[1];
446
- }
447
- let t2;
448
- if ($[2] !== value) {
449
- t2 = /* @__PURE__ */ jsxDEV("span", {
450
- className: "text-2xl font-semibold tabular-nums text-foreground",
451
- children: value
452
- }, void 0, false);
453
- $[2] = value;
454
- $[3] = t2;
455
- } else {
456
- t2 = $[3];
457
- }
458
- let t3;
459
- if ($[4] !== unit) {
460
- t3 = unit !== void 0 && /* @__PURE__ */ jsxDEV("span", {
461
- className: "text-xs text-muted-foreground",
462
- children: unit
463
- }, void 0, false);
464
- $[4] = unit;
465
- $[5] = t3;
466
- } else {
467
- t3 = $[5];
468
- }
469
- let t4;
470
- if ($[6] !== t2 || $[7] !== t3) {
471
- t4 = /* @__PURE__ */ jsxDEV("span", {
472
- className: "flex items-baseline gap-1.5",
473
- children: [t2, t3]
474
- }, void 0, true);
475
- $[6] = t2;
476
- $[7] = t3;
477
- $[8] = t4;
478
- } else {
479
- t4 = $[8];
480
- }
481
- let t5;
482
- if ($[9] !== trend) {
483
- t5 = trend !== void 0 && /* @__PURE__ */ jsxDEV(Suspense, {
484
- fallback: /* @__PURE__ */ jsxDEV("div", {
485
- "aria-hidden": "true",
486
- className: "h-8 w-28"
487
- }, void 0, false),
488
- children: /* @__PURE__ */ jsxDEV(Sparkline, {
489
- data: trend
490
- }, void 0, false)
491
- }, void 0, false);
492
- $[9] = trend;
493
- $[10] = t5;
494
- } else {
495
- t5 = $[10];
496
- }
497
- let t6;
498
- if ($[11] !== t4 || $[12] !== t5) {
499
- t6 = /* @__PURE__ */ jsxDEV("div", {
500
- className: "flex items-center justify-between gap-3",
501
- children: [t4, t5]
502
- }, void 0, true);
503
- $[11] = t4;
504
- $[12] = t5;
505
- $[13] = t6;
506
- } else {
507
- t6 = $[13];
508
- }
509
- let t7;
510
- if ($[14] !== t1 || $[15] !== t6) {
511
- t7 = /* @__PURE__ */ jsxDEV("div", {
512
- className: "flex flex-col gap-2.5 p-4",
513
- children: [t1, t6]
514
- }, void 0, true);
515
- $[14] = t1;
516
- $[15] = t6;
517
- $[16] = t7;
518
- } else {
519
- t7 = $[16];
520
- }
521
- let t8;
522
- if ($[17] !== delta || $[18] !== footer || $[19] !== t) {
523
- t8 = delta == null ? footer != null && /* @__PURE__ */ jsxDEV("div", {
524
- className: "border-t border-border bg-muted/50 px-4 py-2.5 text-[11px] text-muted-foreground",
525
- children: footer
526
- }, void 0, false) : /* @__PURE__ */ jsxDEV("div", {
527
- className: "border-t border-border bg-muted/50 px-4 py-2.5 text-[11px]",
528
- children: [/* @__PURE__ */ jsxDEV("span", {
529
- className: cn("font-semibold", delta.positive ? "text-success" : "text-destructive"),
530
- children: delta.text
531
- }, void 0, false), " ", /* @__PURE__ */ jsxDEV("span", {
532
- className: "text-muted-foreground",
533
- children: t("vs. prev.")
534
- }, void 0, false)]
535
- }, void 0, true);
536
- $[17] = delta;
537
- $[18] = footer;
538
- $[19] = t;
539
- $[20] = t8;
540
- } else {
541
- t8 = $[20];
542
- }
543
- let t9;
544
- if ($[21] !== t7 || $[22] !== t8) {
545
- t9 = /* @__PURE__ */ jsxDEV(Card, {
546
- className: "justify-between gap-0 py-0",
547
- children: [t7, t8]
548
- }, void 0, true);
549
- $[21] = t7;
550
- $[22] = t8;
551
- $[23] = t9;
552
- } else {
553
- t9 = $[23];
554
- }
555
- return t9;
556
- };
557
- const ChevronRight = () => {
558
- const $ = c(1);
559
- let t0;
560
- if ($[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
561
- t0 = /* @__PURE__ */ jsxDEV("svg", {
562
- "aria-hidden": "true",
563
- className: "size-3.5",
564
- fill: "none",
565
- stroke: "currentColor",
566
- strokeLinecap: "round",
567
- strokeLinejoin: "round",
568
- strokeWidth: 1.8,
569
- viewBox: "0 0 24 24",
570
- children: /* @__PURE__ */ jsxDEV("path", {
571
- d: "m9 6 6 6-6 6"
572
- }, void 0, false)
573
- }, void 0, false);
574
- $[0] = t0;
575
- } else {
576
- t0 = $[0];
577
- }
578
- return t0;
579
- };
580
- const ConnectCard = (t0) => {
581
- const $ = c(7);
582
- const {
583
- command,
584
- label
585
- } = t0;
586
- let t1;
587
- if ($[0] !== label) {
588
- t1 = /* @__PURE__ */ jsxDEV("div", {
589
- className: "p-4",
590
- children: /* @__PURE__ */ jsxDEV("span", {
591
- className: "text-sm font-medium text-foreground",
592
- children: label
593
- }, void 0, false)
594
- }, void 0, false);
595
- $[0] = label;
596
- $[1] = t1;
597
- } else {
598
- t1 = $[1];
599
- }
600
- let t2;
601
- if ($[2] !== command) {
602
- t2 = /* @__PURE__ */ jsxDEV("div", {
603
- className: "border-t border-border bg-muted/50 px-4 py-2.5",
604
- children: /* @__PURE__ */ jsxDEV("code", {
605
- className: "font-mono text-xs text-muted-foreground",
606
- children: command
607
- }, void 0, false)
608
- }, void 0, false);
609
- $[2] = command;
610
- $[3] = t2;
611
- } else {
612
- t2 = $[3];
613
- }
614
- let t3;
615
- if ($[4] !== t1 || $[5] !== t2) {
616
- t3 = /* @__PURE__ */ jsxDEV(Card, {
617
- className: "justify-between gap-0 py-0",
618
- children: [t1, t2]
619
- }, void 0, true);
620
- $[4] = t1;
621
- $[5] = t2;
622
- $[6] = t3;
623
- } else {
624
- t3 = $[6];
625
- }
626
- return t3;
627
- };
628
- const AdvisorCard = (t0) => {
629
- const $ = c(18);
630
- const {
631
- count,
632
- onView,
633
- testId,
634
- title
635
- } = t0;
636
- const t = useT();
637
- let t1;
638
- if ($[0] !== title) {
639
- t1 = /* @__PURE__ */ jsxDEV("span", {
640
- className: "font-mono text-[11px] tracking-wide text-muted-foreground uppercase",
641
- children: title
642
- }, void 0, false);
643
- $[0] = title;
644
- $[1] = t1;
645
- } else {
646
- t1 = $[1];
647
- }
648
- let t2;
649
- if ($[2] !== count || $[3] !== t) {
650
- t2 = count === null ? /* @__PURE__ */ jsxDEV("span", {
651
- className: "text-xs text-muted-foreground",
652
- children: t("No data yet")
653
- }, void 0, false) : /* @__PURE__ */ jsxDEV(Badge, {
654
- variant: count > 0 ? "destructive" : "success",
655
- children: count > 0 ? count : t("All clear")
656
- }, void 0, false);
657
- $[2] = count;
658
- $[3] = t;
659
- $[4] = t2;
660
- } else {
661
- t2 = $[4];
662
- }
663
- let t3;
664
- if ($[5] !== t1 || $[6] !== t2) {
665
- t3 = /* @__PURE__ */ jsxDEV("div", {
666
- className: "flex items-start justify-between gap-2 p-4",
667
- children: [t1, t2]
668
- }, void 0, true);
669
- $[5] = t1;
670
- $[6] = t2;
671
- $[7] = t3;
672
- } else {
673
- t3 = $[7];
674
- }
675
- let t4;
676
- if ($[8] !== t) {
677
- t4 = t("View");
678
- $[8] = t;
679
- $[9] = t4;
680
- } else {
681
- t4 = $[9];
682
- }
683
- let t5;
684
- if ($[10] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
685
- t5 = /* @__PURE__ */ jsxDEV(ChevronRight, {}, void 0, false);
686
- $[10] = t5;
687
- } else {
688
- t5 = $[10];
689
- }
690
- let t6;
691
- if ($[11] !== onView || $[12] !== t4) {
692
- t6 = /* @__PURE__ */ jsxDEV("button", {
693
- className: "flex items-center gap-1 border-t border-border bg-muted/50 px-4 py-2.5 text-[12px] font-medium text-foreground outline-none transition-colors hover:bg-muted focus-visible:bg-muted",
694
- onClick: onView,
695
- type: "button",
696
- children: [t4, t5]
697
- }, void 0, true);
698
- $[11] = onView;
699
- $[12] = t4;
700
- $[13] = t6;
701
- } else {
702
- t6 = $[13];
703
- }
704
- let t7;
705
- if ($[14] !== t3 || $[15] !== t6 || $[16] !== testId) {
706
- t7 = /* @__PURE__ */ jsxDEV(Card, {
707
- className: "justify-between gap-0 py-0",
708
- "data-testid": testId,
709
- children: [t3, t6]
710
- }, void 0, true);
711
- $[14] = t3;
712
- $[15] = t6;
713
- $[16] = testId;
714
- $[17] = t7;
715
- } else {
716
- t7 = $[17];
717
- }
718
- return t7;
719
- };
720
- const TopFunctionsCard = (t0) => {
721
- const $ = c(7);
722
- const {
723
- functions
724
- } = t0;
725
- const t = useT();
726
- let t1;
727
- if ($[0] !== functions || $[1] !== t) {
728
- const top = [...functions].toSorted(_temp).slice(0, 5);
729
- let t2;
730
- if ($[3] !== t) {
731
- t2 = t("Top functions");
732
- $[3] = t;
733
- $[4] = t2;
734
- } else {
735
- t2 = $[4];
736
- }
737
- let t3;
738
- if ($[5] !== t2) {
739
- t3 = /* @__PURE__ */ jsxDEV("div", {
740
- className: "border-b border-border px-4 py-3",
741
- children: /* @__PURE__ */ jsxDEV("span", {
742
- className: "font-mono text-[11px] tracking-wide text-muted-foreground uppercase",
743
- children: t2
744
- }, void 0, false)
745
- }, void 0, false);
746
- $[5] = t2;
747
- $[6] = t3;
748
- } else {
749
- t3 = $[6];
750
- }
751
- t1 = /* @__PURE__ */ jsxDEV(Card, {
752
- className: "gap-0 py-0",
753
- "data-testid": "home-top-functions",
754
- children: [t3, top.length === 0 ? /* @__PURE__ */ jsxDEV("p", {
755
- className: "px-4 py-8 text-center text-xs text-muted-foreground",
756
- children: t("No functions called yet.")
757
- }, void 0, false) : /* @__PURE__ */ jsxDEV("div", {
758
- className: "divide-y divide-border",
759
- children: [/* @__PURE__ */ jsxDEV("div", {
760
- className: "grid grid-cols-[1fr_auto_auto_auto] gap-4 px-4 py-1.5 font-mono text-[10px] tracking-wide text-muted-foreground uppercase",
761
- children: [/* @__PURE__ */ jsxDEV("span", {
762
- children: t("Function")
763
- }, void 0, false), /* @__PURE__ */ jsxDEV("span", {
764
- className: "text-end",
765
- children: t("Calls")
766
- }, void 0, false), /* @__PURE__ */ jsxDEV("span", {
767
- className: "w-12 text-end",
768
- children: t("Avg")
769
- }, void 0, false), /* @__PURE__ */ jsxDEV("span", {
770
- className: "w-8 text-end",
771
- children: t("Err")
772
- }, void 0, false)]
773
- }, void 0, true), top.map(_temp2)]
774
- }, void 0, true)]
775
- }, void 0, true);
776
- $[0] = functions;
777
- $[1] = t;
778
- $[2] = t1;
779
- } else {
780
- t1 = $[2];
781
- }
782
- return t1;
783
- };
784
- const LiveConnectionsCard = (t0) => {
785
- const $ = c(26);
786
- const {
787
- subs
788
- } = t0;
789
- const t = useT();
790
- let t1;
791
- if ($[0] !== t) {
792
- t1 = t("Live connections");
793
- $[0] = t;
794
- $[1] = t1;
795
- } else {
796
- t1 = $[1];
797
- }
798
- let t2;
799
- if ($[2] !== t1) {
800
- t2 = /* @__PURE__ */ jsxDEV("span", {
801
- className: "font-mono text-[11px] tracking-wide text-muted-foreground uppercase",
802
- children: t1
803
- }, void 0, false);
804
- $[2] = t1;
805
- $[3] = t2;
806
- } else {
807
- t2 = $[3];
808
- }
809
- const t3 = subs?.totalConnections ?? 0;
810
- let t4;
811
- if ($[4] !== t3) {
812
- t4 = t3.toLocaleString();
813
- $[4] = t3;
814
- $[5] = t4;
815
- } else {
816
- t4 = $[5];
817
- }
818
- let t5;
819
- if ($[6] !== t4) {
820
- t5 = /* @__PURE__ */ jsxDEV("span", {
821
- className: "text-2xl font-semibold tabular-nums text-foreground",
822
- children: t4
823
- }, void 0, false);
824
- $[6] = t4;
825
- $[7] = t5;
826
- } else {
827
- t5 = $[7];
828
- }
829
- let t6;
830
- if ($[8] !== t) {
831
- t6 = t("sockets");
832
- $[8] = t;
833
- $[9] = t6;
834
- } else {
835
- t6 = $[9];
836
- }
837
- let t7;
838
- if ($[10] !== t6) {
839
- t7 = /* @__PURE__ */ jsxDEV("span", {
840
- className: "text-xs text-muted-foreground",
841
- children: t6
842
- }, void 0, false);
843
- $[10] = t6;
844
- $[11] = t7;
845
- } else {
846
- t7 = $[11];
847
- }
848
- let t8;
849
- if ($[12] !== t5 || $[13] !== t7) {
850
- t8 = /* @__PURE__ */ jsxDEV("span", {
851
- className: "flex items-baseline gap-1.5",
852
- children: [t5, t7]
853
- }, void 0, true);
854
- $[12] = t5;
855
- $[13] = t7;
856
- $[14] = t8;
857
- } else {
858
- t8 = $[14];
859
- }
860
- const t9 = subs?.totalSubscriptions ?? 0;
861
- let t10;
862
- if ($[15] !== t9) {
863
- t10 = t9.toLocaleString();
864
- $[15] = t9;
865
- $[16] = t10;
866
- } else {
867
- t10 = $[16];
868
- }
869
- let t11;
870
- if ($[17] !== t) {
871
- t11 = t("active subscriptions");
872
- $[17] = t;
873
- $[18] = t11;
874
- } else {
875
- t11 = $[18];
876
- }
877
- let t12;
878
- if ($[19] !== t10 || $[20] !== t11) {
879
- t12 = /* @__PURE__ */ jsxDEV("span", {
880
- className: "text-[11px] text-muted-foreground",
881
- children: [t10, " ", t11]
882
- }, void 0, true);
883
- $[19] = t10;
884
- $[20] = t11;
885
- $[21] = t12;
886
- } else {
887
- t12 = $[21];
888
- }
889
- let t13;
890
- if ($[22] !== t12 || $[23] !== t2 || $[24] !== t8) {
891
- t13 = /* @__PURE__ */ jsxDEV(Card, {
892
- "data-testid": "home-live-connections",
893
- children: /* @__PURE__ */ jsxDEV(CardContent, {
894
- className: "flex flex-col gap-2.5 py-4",
895
- children: [t2, t8, t12]
896
- }, void 0, true)
897
- }, void 0, false);
898
- $[22] = t12;
899
- $[23] = t2;
900
- $[24] = t8;
901
- $[25] = t13;
902
- } else {
903
- t13 = $[25];
904
- }
905
- return t13;
906
- };
907
- const RecentActivityCard = (t0) => {
908
- const $ = c(7);
909
- const {
910
- entries
911
- } = t0;
912
- const t = useT();
913
- let t1;
914
- if ($[0] !== entries || $[1] !== t) {
915
- const now = Date.now();
916
- let t2;
917
- if ($[3] !== t) {
918
- t2 = t("Recent activity");
919
- $[3] = t;
920
- $[4] = t2;
921
- } else {
922
- t2 = $[4];
923
- }
924
- let t3;
925
- if ($[5] !== t2) {
926
- t3 = /* @__PURE__ */ jsxDEV("div", {
927
- className: "border-b border-border px-4 py-3",
928
- children: /* @__PURE__ */ jsxDEV("span", {
929
- className: "font-mono text-[11px] tracking-wide text-muted-foreground uppercase",
930
- children: t2
931
- }, void 0, false)
932
- }, void 0, false);
933
- $[5] = t2;
934
- $[6] = t3;
935
- } else {
936
- t3 = $[6];
937
- }
938
- t1 = /* @__PURE__ */ jsxDEV(Card, {
939
- className: "gap-0 py-0",
940
- "data-testid": "home-recent-activity",
941
- children: [t3, entries.length === 0 ? /* @__PURE__ */ jsxDEV("p", {
942
- className: "px-4 py-8 text-center text-xs text-muted-foreground",
943
- children: t("No recent activity.")
944
- }, void 0, false) : /* @__PURE__ */ jsxDEV("ul", {
945
- className: "divide-y divide-border",
946
- children: entries.slice(0, 5).map((entry) => /* @__PURE__ */ jsxDEV("li", {
947
- className: "flex items-center justify-between gap-3 px-4 py-2 text-[13px]",
948
- children: [/* @__PURE__ */ jsxDEV("span", {
949
- className: "flex min-w-0 items-center gap-2",
950
- children: [/* @__PURE__ */ jsxDEV("span", {
951
- "aria-hidden": "true",
952
- className: "size-1.5 shrink-0 rounded-full bg-muted-foreground/40"
953
- }, void 0, false), /* @__PURE__ */ jsxDEV("span", {
954
- className: "truncate text-foreground",
955
- children: [entry.op, entry.table !== void 0 && /* @__PURE__ */ jsxDEV("span", {
956
- className: "text-muted-foreground",
957
- children: [" · ", entry.table, entry.id === void 0 ? "" : `#${entry.id}`]
958
- }, void 0, true)]
959
- }, void 0, true)]
960
- }, void 0, true), /* @__PURE__ */ jsxDEV("span", {
961
- className: "shrink-0 text-xs tabular-nums text-muted-foreground",
962
- children: relativeTime(entry.ts, now)
963
- }, void 0, false)]
964
- }, entry.seq, true))
965
- }, void 0, false)]
966
- }, void 0, true);
967
- $[0] = entries;
968
- $[1] = t;
969
- $[2] = t1;
970
- } else {
971
- t1 = $[2];
972
- }
973
- return t1;
974
- };
975
- const averageLatencyMs = (functions) => {
976
- const calls = functions.reduce((sum, function_) => sum + function_.calls, 0);
977
- if (calls === 0) {
978
- return null;
979
- }
980
- return functions.reduce((sum, function_) => sum + function_.totalDurationMs, 0) / calls;
981
- };
982
- const HomePanel = (t0) => {
983
- const $ = c(150);
984
- const {
985
- initialShardKey
986
- } = t0;
987
- const t = useT();
988
- const navigate = useNavigate();
989
- const shard = initialShardKey ?? "";
990
- let t1;
991
- if ($[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
992
- t1 = {};
993
- $[0] = t1;
994
- } else {
995
- t1 = $[0];
996
- }
997
- let t2;
998
- if ($[1] !== shard) {
999
- t2 = {
1000
- shardKey: shard
1001
- };
1002
- $[1] = shard;
1003
- $[2] = t2;
1004
- } else {
1005
- t2 = $[2];
1006
- }
1007
- const metricsQuery = useAdminQuery(ADMIN_FUNCTIONS.getMetrics, t1, t2);
1008
- let t3;
1009
- if ($[3] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
1010
- t3 = {};
1011
- $[3] = t3;
1012
- } else {
1013
- t3 = $[3];
1014
- }
1015
- let t4;
1016
- if ($[4] !== shard) {
1017
- t4 = {
1018
- shardKey: shard
1019
- };
1020
- $[4] = shard;
1021
- $[5] = t4;
1022
- } else {
1023
- t4 = $[5];
1024
- }
1025
- const statsQuery = useAdminQuery(ADMIN_FUNCTIONS.getFunctionStats, t3, t4);
1026
- let t5;
1027
- let t6;
1028
- if ($[6] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
1029
- t5 = {};
1030
- t6 = {
1031
- shardKey: ""
1032
- };
1033
- $[6] = t5;
1034
- $[7] = t6;
1035
- } else {
1036
- t5 = $[6];
1037
- t6 = $[7];
1038
- }
1039
- const auditQuery = useAdminQuery(ADMIN_FUNCTIONS.getSecurityAudit, t5, t6);
1040
- let t7;
1041
- if ($[8] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
1042
- t7 = {};
1043
- $[8] = t7;
1044
- } else {
1045
- t7 = $[8];
1046
- }
1047
- let t8;
1048
- if ($[9] !== shard) {
1049
- t8 = {
1050
- shardKey: shard
1051
- };
1052
- $[9] = shard;
1053
- $[10] = t8;
1054
- } else {
1055
- t8 = $[10];
1056
- }
1057
- const subscriptionsQuery = useAdminQuery(ADMIN_FUNCTIONS.listSubscriptions, t7, t8);
1058
- let t9;
1059
- if ($[11] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
1060
- t9 = {};
1061
- $[11] = t9;
1062
- } else {
1063
- t9 = $[11];
1064
- }
1065
- let t10;
1066
- if ($[12] !== shard) {
1067
- t10 = {
1068
- shardKey: shard
1069
- };
1070
- $[12] = shard;
1071
- $[13] = t10;
1072
- } else {
1073
- t10 = $[13];
1074
- }
1075
- const auditLogQuery = useAdminQuery(ADMIN_FUNCTIONS.getAuditLog, t9, t10);
1076
- const metrics = metricsQuery.data ?? null;
1077
- let T0;
1078
- let activity;
1079
- let cacheHitRate;
1080
- let functions;
1081
- let performanceCount;
1082
- let securityCount;
1083
- let subscriptions;
1084
- let t11;
1085
- let t12;
1086
- let t13;
1087
- let t14;
1088
- let t15;
1089
- let t16;
1090
- let t17;
1091
- let t18;
1092
- let t19;
1093
- let viewPerformance;
1094
- let viewSecurity;
1095
- if ($[14] !== auditLogQuery.data || $[15] !== auditQuery.data || $[16] !== metrics || $[17] !== metricsQuery.data || $[18] !== navigate || $[19] !== statsQuery.data || $[20] !== subscriptionsQuery.data || $[21] !== t) {
1096
- functions = Array.isArray(statsQuery.data?.functions) ? statsQuery.data.functions : [];
1097
- subscriptions = subscriptionsQuery.data ?? null;
1098
- let t202;
1099
- if ($[40] !== auditLogQuery.data) {
1100
- t202 = Array.isArray(auditLogQuery.data?.entries) ? auditLogQuery.data.entries : [];
1101
- $[40] = auditLogQuery.data;
1102
- $[41] = t202;
1103
- } else {
1104
- t202 = $[41];
1105
- }
1106
- activity = t202;
1107
- performanceCount = metricsQuery.data === void 0 || statsQuery.data === void 0 ? null : deriveInsights(metrics, functions).length;
1108
- securityCount = Array.isArray(auditQuery.data?.findings) ? auditQuery.data.findings.length : null;
1109
- let t212;
1110
- if ($[42] !== navigate) {
1111
- t212 = () => {
1112
- fireAndForget(navigate({
1113
- to: "/security"
1114
- }));
1115
- };
1116
- $[42] = navigate;
1117
- $[43] = t212;
1118
- } else {
1119
- t212 = $[43];
1120
- }
1121
- viewSecurity = t212;
1122
- let t222;
1123
- if ($[44] !== navigate) {
1124
- t222 = () => {
1125
- fireAndForget(navigate({
1126
- to: "/insights"
1127
- }));
1128
- };
1129
- $[44] = navigate;
1130
- $[45] = t222;
1131
- } else {
1132
- t222 = $[45];
1133
- }
1134
- viewPerformance = t222;
1135
- const requestSeries = bucketSeries(metrics?.history, "calls");
1136
- const errorSeries = bucketSeries(metrics?.history, "errors");
1137
- const avgLatency = averageLatencyMs(functions);
1138
- const maxLatency = Math.max(0, ...functions.map(_temp3));
1139
- const cache = metrics?.cache;
1140
- let t232;
1141
- if ($[46] !== cache) {
1142
- t232 = cache != null && cache.hits + cache.misses > 0 ? Math.round(cache.hits / (cache.hits + cache.misses) * 100) : null;
1143
- $[46] = cache;
1144
- $[47] = t232;
1145
- } else {
1146
- t232 = $[47];
1147
- }
1148
- cacheHitRate = t232;
1149
- t18 = "flex flex-col gap-6";
1150
- t19 = "lunora-home";
1151
- t14 = "grid gap-3 sm:grid-cols-2 xl:grid-cols-4";
1152
- t15 = "home-health";
1153
- const t242 = seriesDelta(requestSeries);
1154
- let t252;
1155
- if ($[48] !== t) {
1156
- t252 = t("Requests");
1157
- $[48] = t;
1158
- $[49] = t252;
1159
- } else {
1160
- t252 = $[49];
1161
- }
1162
- const t262 = metrics?.requests ?? 0;
1163
- let t272;
1164
- if ($[50] !== t262) {
1165
- t272 = t262.toLocaleString();
1166
- $[50] = t262;
1167
- $[51] = t272;
1168
- } else {
1169
- t272 = $[51];
1170
- }
1171
- if ($[52] !== requestSeries || $[53] !== t242 || $[54] !== t252 || $[55] !== t272) {
1172
- t16 = /* @__PURE__ */ jsxDEV(StatCard, {
1173
- delta: t242,
1174
- label: t252,
1175
- trend: requestSeries,
1176
- value: t272
1177
- }, void 0, false);
1178
- $[52] = requestSeries;
1179
- $[53] = t242;
1180
- $[54] = t252;
1181
- $[55] = t272;
1182
- $[56] = t16;
1183
- } else {
1184
- t16 = $[56];
1185
- }
1186
- const t282 = seriesDelta(errorSeries, false);
1187
- let t292;
1188
- if ($[57] !== t) {
1189
- t292 = t("Errors");
1190
- $[57] = t;
1191
- $[58] = t292;
1192
- } else {
1193
- t292 = $[58];
1194
- }
1195
- const t302 = metrics?.errors ?? 0;
1196
- let t312;
1197
- if ($[59] !== t302) {
1198
- t312 = t302.toLocaleString();
1199
- $[59] = t302;
1200
- $[60] = t312;
1201
- } else {
1202
- t312 = $[60];
1203
- }
1204
- if ($[61] !== errorSeries || $[62] !== t282 || $[63] !== t292 || $[64] !== t312) {
1205
- t17 = /* @__PURE__ */ jsxDEV(StatCard, {
1206
- delta: t282,
1207
- label: t292,
1208
- trend: errorSeries,
1209
- value: t312
1210
- }, void 0, false);
1211
- $[61] = errorSeries;
1212
- $[62] = t282;
1213
- $[63] = t292;
1214
- $[64] = t312;
1215
- $[65] = t17;
1216
- } else {
1217
- t17 = $[65];
1218
- }
1219
- T0 = StatCard;
1220
- if ($[66] !== maxLatency || $[67] !== t) {
1221
- t11 = maxLatency > 0 ? `${t("max")} ${formatMs(maxLatency)}` : void 0;
1222
- $[66] = maxLatency;
1223
- $[67] = t;
1224
- $[68] = t11;
1225
- } else {
1226
- t11 = $[68];
1227
- }
1228
- if ($[69] !== t) {
1229
- t12 = t("Avg latency");
1230
- $[69] = t;
1231
- $[70] = t12;
1232
- } else {
1233
- t12 = $[70];
1234
- }
1235
- t13 = avgLatency === null ? "—" : formatMs(avgLatency);
1236
- $[14] = auditLogQuery.data;
1237
- $[15] = auditQuery.data;
1238
- $[16] = metrics;
1239
- $[17] = metricsQuery.data;
1240
- $[18] = navigate;
1241
- $[19] = statsQuery.data;
1242
- $[20] = subscriptionsQuery.data;
1243
- $[21] = t;
1244
- $[22] = T0;
1245
- $[23] = activity;
1246
- $[24] = cacheHitRate;
1247
- $[25] = functions;
1248
- $[26] = performanceCount;
1249
- $[27] = securityCount;
1250
- $[28] = subscriptions;
1251
- $[29] = t11;
1252
- $[30] = t12;
1253
- $[31] = t13;
1254
- $[32] = t14;
1255
- $[33] = t15;
1256
- $[34] = t16;
1257
- $[35] = t17;
1258
- $[36] = t18;
1259
- $[37] = t19;
1260
- $[38] = viewPerformance;
1261
- $[39] = viewSecurity;
1262
- } else {
1263
- T0 = $[22];
1264
- activity = $[23];
1265
- cacheHitRate = $[24];
1266
- functions = $[25];
1267
- performanceCount = $[26];
1268
- securityCount = $[27];
1269
- subscriptions = $[28];
1270
- t11 = $[29];
1271
- t12 = $[30];
1272
- t13 = $[31];
1273
- t14 = $[32];
1274
- t15 = $[33];
1275
- t16 = $[34];
1276
- t17 = $[35];
1277
- t18 = $[36];
1278
- t19 = $[37];
1279
- viewPerformance = $[38];
1280
- viewSecurity = $[39];
1281
- }
1282
- let t20;
1283
- if ($[71] !== T0 || $[72] !== t11 || $[73] !== t12 || $[74] !== t13) {
1284
- t20 = /* @__PURE__ */ jsxDEV(T0, {
1285
- footer: t11,
1286
- label: t12,
1287
- value: t13
1288
- }, void 0, false);
1289
- $[71] = T0;
1290
- $[72] = t11;
1291
- $[73] = t12;
1292
- $[74] = t13;
1293
- $[75] = t20;
1294
- } else {
1295
- t20 = $[75];
1296
- }
1297
- let t21;
1298
- if ($[76] !== cacheHitRate || $[77] !== t) {
1299
- t21 = cacheHitRate === null ? void 0 : `${String(cacheHitRate)}% ${t("cache hit")}`;
1300
- $[76] = cacheHitRate;
1301
- $[77] = t;
1302
- $[78] = t21;
1303
- } else {
1304
- t21 = $[78];
1305
- }
1306
- let t22;
1307
- if ($[79] !== t) {
1308
- t22 = t("Database size");
1309
- $[79] = t;
1310
- $[80] = t22;
1311
- } else {
1312
- t22 = $[80];
1313
- }
1314
- const t23 = metrics?.databaseSize ?? null;
1315
- let t24;
1316
- if ($[81] !== t23) {
1317
- t24 = formatBytes(t23);
1318
- $[81] = t23;
1319
- $[82] = t24;
1320
- } else {
1321
- t24 = $[82];
1322
- }
1323
- let t25;
1324
- if ($[83] !== t21 || $[84] !== t22 || $[85] !== t24) {
1325
- t25 = /* @__PURE__ */ jsxDEV(StatCard, {
1326
- footer: t21,
1327
- label: t22,
1328
- value: t24
1329
- }, void 0, false);
1330
- $[83] = t21;
1331
- $[84] = t22;
1332
- $[85] = t24;
1333
- $[86] = t25;
1334
- } else {
1335
- t25 = $[86];
1336
- }
1337
- let t26;
1338
- if ($[87] !== t14 || $[88] !== t15 || $[89] !== t16 || $[90] !== t17 || $[91] !== t20 || $[92] !== t25) {
1339
- t26 = /* @__PURE__ */ jsxDEV("div", {
1340
- className: t14,
1341
- "data-testid": t15,
1342
- children: [t16, t17, t20, t25]
1343
- }, void 0, true);
1344
- $[87] = t14;
1345
- $[88] = t15;
1346
- $[89] = t16;
1347
- $[90] = t17;
1348
- $[91] = t20;
1349
- $[92] = t25;
1350
- $[93] = t26;
1351
- } else {
1352
- t26 = $[93];
1353
- }
1354
- let t27;
1355
- if ($[94] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
1356
- t27 = /* @__PURE__ */ jsxDEV(BindingsOverview, {}, void 0, false);
1357
- $[94] = t27;
1358
- } else {
1359
- t27 = $[94];
1360
- }
1361
- let t28;
1362
- if ($[95] !== functions) {
1363
- t28 = /* @__PURE__ */ jsxDEV("div", {
1364
- className: "lg:col-span-2",
1365
- children: /* @__PURE__ */ jsxDEV(TopFunctionsCard, {
1366
- functions
1367
- }, void 0, false)
1368
- }, void 0, false);
1369
- $[95] = functions;
1370
- $[96] = t28;
1371
- } else {
1372
- t28 = $[96];
1373
- }
1374
- let t29;
1375
- if ($[97] !== subscriptions) {
1376
- t29 = /* @__PURE__ */ jsxDEV(LiveConnectionsCard, {
1377
- subs: subscriptions
1378
- }, void 0, false);
1379
- $[97] = subscriptions;
1380
- $[98] = t29;
1381
- } else {
1382
- t29 = $[98];
1383
- }
1384
- let t30;
1385
- if ($[99] !== activity) {
1386
- t30 = /* @__PURE__ */ jsxDEV(RecentActivityCard, {
1387
- entries: activity
1388
- }, void 0, false);
1389
- $[99] = activity;
1390
- $[100] = t30;
1391
- } else {
1392
- t30 = $[100];
1393
- }
1394
- let t31;
1395
- if ($[101] !== t29 || $[102] !== t30) {
1396
- t31 = /* @__PURE__ */ jsxDEV("div", {
1397
- className: "flex flex-col gap-3",
1398
- children: [t29, t30]
1399
- }, void 0, true);
1400
- $[101] = t29;
1401
- $[102] = t30;
1402
- $[103] = t31;
1403
- } else {
1404
- t31 = $[103];
1405
- }
1406
- let t32;
1407
- if ($[104] !== t28 || $[105] !== t31) {
1408
- t32 = /* @__PURE__ */ jsxDEV("div", {
1409
- className: "grid gap-3 lg:grid-cols-3",
1410
- children: [t28, t31]
1411
- }, void 0, true);
1412
- $[104] = t28;
1413
- $[105] = t31;
1414
- $[106] = t32;
1415
- } else {
1416
- t32 = $[106];
1417
- }
1418
- let t33;
1419
- if ($[107] !== t) {
1420
- t33 = t("Advisors");
1421
- $[107] = t;
1422
- $[108] = t33;
1423
- } else {
1424
- t33 = $[108];
1425
- }
1426
- let t34;
1427
- if ($[109] !== t33) {
1428
- t34 = /* @__PURE__ */ jsxDEV("h2", {
1429
- className: "text-sm font-semibold tracking-tight text-foreground",
1430
- children: t33
1431
- }, void 0, false);
1432
- $[109] = t33;
1433
- $[110] = t34;
1434
- } else {
1435
- t34 = $[110];
1436
- }
1437
- let t35;
1438
- if ($[111] !== performanceCount || $[112] !== securityCount || $[113] !== t || $[114] !== viewPerformance || $[115] !== viewSecurity) {
1439
- t35 = securityCount === 0 && performanceCount === 0 ? /* @__PURE__ */ jsxDEV(EmptyState, {
1440
- description: t("No security or performance issues detected."),
1441
- icon: /* @__PURE__ */ jsxDEV("svg", {
1442
- "aria-hidden": "true",
1443
- fill: "none",
1444
- stroke: "currentColor",
1445
- strokeLinecap: "round",
1446
- strokeLinejoin: "round",
1447
- strokeWidth: 1.6,
1448
- viewBox: "0 0 24 24",
1449
- children: [/* @__PURE__ */ jsxDEV("path", {
1450
- d: "M12 3 4 6v5c0 5 3.4 8.5 8 10 4.6-1.5 8-5 8-10V6l-8-3Z"
1451
- }, void 0, false), /* @__PURE__ */ jsxDEV("path", {
1452
- d: "m9 12 2 2 4-4"
1453
- }, void 0, false)]
1454
- }, void 0, true),
1455
- testId: "home-advisors-clear",
1456
- title: t("No issues found")
1457
- }, void 0, false) : /* @__PURE__ */ jsxDEV("div", {
1458
- className: "grid gap-3 sm:grid-cols-2",
1459
- children: [/* @__PURE__ */ jsxDEV(AdvisorCard, {
1460
- count: securityCount,
1461
- onView: viewSecurity,
1462
- testId: "home-security",
1463
- title: t("Security findings")
1464
- }, void 0, false), /* @__PURE__ */ jsxDEV(AdvisorCard, {
1465
- count: performanceCount,
1466
- onView: viewPerformance,
1467
- testId: "home-performance",
1468
- title: t("Performance issues")
1469
- }, void 0, false)]
1470
- }, void 0, true);
1471
- $[111] = performanceCount;
1472
- $[112] = securityCount;
1473
- $[113] = t;
1474
- $[114] = viewPerformance;
1475
- $[115] = viewSecurity;
1476
- $[116] = t35;
1477
- } else {
1478
- t35 = $[116];
1479
- }
1480
- let t36;
1481
- if ($[117] !== t34 || $[118] !== t35) {
1482
- t36 = /* @__PURE__ */ jsxDEV("section", {
1483
- className: "flex flex-col gap-3",
1484
- "data-testid": "home-advisors",
1485
- children: [t34, t35]
1486
- }, void 0, true);
1487
- $[117] = t34;
1488
- $[118] = t35;
1489
- $[119] = t36;
1490
- } else {
1491
- t36 = $[119];
1492
- }
1493
- let t37;
1494
- if ($[120] !== t) {
1495
- t37 = t("Get connected");
1496
- $[120] = t;
1497
- $[121] = t37;
1498
- } else {
1499
- t37 = $[121];
1500
- }
1501
- let t38;
1502
- if ($[122] !== t37) {
1503
- t38 = /* @__PURE__ */ jsxDEV("h2", {
1504
- className: "text-sm font-semibold tracking-tight text-foreground",
1505
- children: t37
1506
- }, void 0, false);
1507
- $[122] = t37;
1508
- $[123] = t38;
1509
- } else {
1510
- t38 = $[123];
1511
- }
1512
- let t39;
1513
- if ($[124] !== t) {
1514
- t39 = t("Client SDK");
1515
- $[124] = t;
1516
- $[125] = t39;
1517
- } else {
1518
- t39 = $[125];
1519
- }
1520
- let t40;
1521
- if ($[126] !== t39) {
1522
- t40 = /* @__PURE__ */ jsxDEV(ConnectCard, {
1523
- command: "npm i @lunora/client",
1524
- label: t39
1525
- }, void 0, false);
1526
- $[126] = t39;
1527
- $[127] = t40;
1528
- } else {
1529
- t40 = $[127];
1530
- }
1531
- let t41;
1532
- if ($[128] !== t) {
1533
- t41 = t("React");
1534
- $[128] = t;
1535
- $[129] = t41;
1536
- } else {
1537
- t41 = $[129];
1538
- }
1539
- let t42;
1540
- if ($[130] !== t41) {
1541
- t42 = /* @__PURE__ */ jsxDEV(ConnectCard, {
1542
- command: "npm i @lunora/react",
1543
- label: t41
1544
- }, void 0, false);
1545
- $[130] = t41;
1546
- $[131] = t42;
1547
- } else {
1548
- t42 = $[131];
1549
- }
1550
- let t43;
1551
- if ($[132] !== t) {
1552
- t43 = t("CLI");
1553
- $[132] = t;
1554
- $[133] = t43;
1555
- } else {
1556
- t43 = $[133];
1557
- }
1558
- let t44;
1559
- if ($[134] !== t43) {
1560
- t44 = /* @__PURE__ */ jsxDEV(ConnectCard, {
1561
- command: "lunora dev",
1562
- label: t43
1563
- }, void 0, false);
1564
- $[134] = t43;
1565
- $[135] = t44;
1566
- } else {
1567
- t44 = $[135];
1568
- }
1569
- let t45;
1570
- if ($[136] !== t40 || $[137] !== t42 || $[138] !== t44) {
1571
- t45 = /* @__PURE__ */ jsxDEV("div", {
1572
- className: "grid gap-3 sm:grid-cols-3",
1573
- children: [t40, t42, t44]
1574
- }, void 0, true);
1575
- $[136] = t40;
1576
- $[137] = t42;
1577
- $[138] = t44;
1578
- $[139] = t45;
1579
- } else {
1580
- t45 = $[139];
1581
- }
1582
- let t46;
1583
- if ($[140] !== t38 || $[141] !== t45) {
1584
- t46 = /* @__PURE__ */ jsxDEV("section", {
1585
- className: "flex flex-col gap-3",
1586
- "data-testid": "home-get-connected",
1587
- children: [t38, t45]
1588
- }, void 0, true);
1589
- $[140] = t38;
1590
- $[141] = t45;
1591
- $[142] = t46;
1592
- } else {
1593
- t46 = $[142];
1594
- }
1595
- let t47;
1596
- if ($[143] !== t18 || $[144] !== t19 || $[145] !== t26 || $[146] !== t32 || $[147] !== t36 || $[148] !== t46) {
1597
- t47 = /* @__PURE__ */ jsxDEV("div", {
1598
- className: t18,
1599
- "data-testid": t19,
1600
- children: [t26, t27, t32, t36, t46]
1601
- }, void 0, true);
1602
- $[143] = t18;
1603
- $[144] = t19;
1604
- $[145] = t26;
1605
- $[146] = t32;
1606
- $[147] = t36;
1607
- $[148] = t46;
1608
- $[149] = t47;
1609
- } else {
1610
- t47 = $[149];
1611
- }
1612
- return t47;
1613
- };
1614
- function _temp(a, b) {
1615
- return b.calls - a.calls;
1616
- }
1617
- function _temp2(function_) {
1618
- return /* @__PURE__ */ jsxDEV("div", {
1619
- className: "grid grid-cols-[1fr_auto_auto_auto] items-center gap-4 px-4 py-2 text-[13px]",
1620
- children: [/* @__PURE__ */ jsxDEV("span", {
1621
- className: "truncate font-mono text-xs text-foreground",
1622
- children: function_.path
1623
- }, void 0, false), /* @__PURE__ */ jsxDEV("span", {
1624
- className: "text-end tabular-nums",
1625
- children: function_.calls.toLocaleString()
1626
- }, void 0, false), /* @__PURE__ */ jsxDEV("span", {
1627
- className: "w-12 text-end tabular-nums text-muted-foreground",
1628
- children: formatMs(function_.calls > 0 ? function_.totalDurationMs / function_.calls : 0)
1629
- }, void 0, false), /* @__PURE__ */ jsxDEV("span", {
1630
- className: cn("w-8 text-end tabular-nums", function_.errors > 0 ? "text-destructive" : "text-muted-foreground"),
1631
- children: function_.errors
1632
- }, void 0, false)]
1633
- }, function_.path, true);
1634
- }
1635
- function _temp3(function_) {
1636
- return function_.maxDurationMs;
1637
- }
1638
-
1639
- export { HomePanel as H, useStudioFeatures as u };