@lunora/studio 1.0.0-alpha.30 → 1.0.0-alpha.301

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 (465) hide show
  1. package/LICENSE.md +6 -0
  2. package/README.md +1 -1
  3. package/dist/index.d.mts +1581 -0
  4. package/dist/index.d.ts +974 -806
  5. package/dist/index.mjs +1 -0
  6. package/dist/mount.d.mts +22 -0
  7. package/dist/mount.d.ts +11 -10
  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 +3 -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/sparkline.mjs +1 -0
  54. package/dist/packem_chunks/storage-rules-panel.mjs +1 -0
  55. package/dist/packem_chunks/subscriptions-panel.mjs +1 -0
  56. package/dist/packem_chunks/sync-client-panel.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-B8yyk5BX.mjs +1 -0
  62. package/dist/packem_shared/ApiDocsPanel-fhDlZGE4.mjs +2 -0
  63. package/dist/packem_shared/ApiReferencePanel-nAf8tNRr.mjs +1 -0
  64. package/dist/packem_shared/CommandPalette-D9ZY-qQd.mjs +1 -0
  65. package/dist/packem_shared/ConfirmButton-DU4p72Er.mjs +1 -0
  66. package/dist/packem_shared/ConnectionBadge-B8Hj5DaE.mjs +1 -0
  67. package/dist/packem_shared/DEFAULT_AUTO_REFRESH_MS-DuULO4XM.mjs +1 -0
  68. package/dist/packem_shared/DEFAULT_INSIGHT_THRESHOLDS-D5YMT0gM.mjs +1 -0
  69. package/dist/packem_shared/DEFAULT_LOCALE-A1Yg5ORA.mjs +1 -0
  70. package/dist/packem_shared/DataBrowser-E68QfaST.mjs +4 -0
  71. package/dist/packem_shared/DataFilters-CYZFt2EK.mjs +1 -0
  72. package/dist/packem_shared/ErrorBoundary-BWNF98VF.mjs +1 -0
  73. package/dist/packem_shared/GlobalDataBrowser-DhObcZDY.mjs +1 -0
  74. package/dist/packem_shared/HomePanel-CUuYsApa.mjs +1 -0
  75. package/dist/packem_shared/MigrationsPanel-CkVIwAbK.mjs +1 -0
  76. package/dist/packem_shared/OpenRpcReferencePanel-BxEr49D9.mjs +1 -0
  77. package/dist/packem_shared/STUDIO_ROOT_CLASS-C6MccdVk.mjs +1 -0
  78. package/dist/packem_shared/ScheduledJobs-BZNcYWBP.mjs +1 -0
  79. package/dist/packem_shared/ShardInput-C6mjgAh4.mjs +1 -0
  80. package/dist/packem_shared/Studio-CZjQXFHC.mjs +1 -0
  81. package/dist/packem_shared/StudioApp-C9ENwcOH.mjs +1 -0
  82. package/dist/packem_shared/StudioI18nProvider-fVsCSs5L.mjs +1 -0
  83. package/dist/packem_shared/advisor-view-DzI2RQhY.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-D7vL0y8y.d.mts +349 -0
  87. package/dist/packem_shared/app.d-D7vL0y8y.d.ts +349 -0
  88. package/dist/packem_shared/auth-pager-DiDnXsfe.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-DIiNmDR9.mjs +1 -0
  98. package/dist/packem_shared/data-view-params-DhYmAkcj.mjs +1 -0
  99. package/dist/packem_shared/diagram-export-panel-D5CVNJkp.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-DueSEkt-.mjs +1 -0
  103. package/dist/packem_shared/grid-features-OVIMIQan.mjs +6 -0
  104. package/dist/packem_shared/grid-pagination-DgzyzfBh.mjs +1 -0
  105. package/dist/packem_shared/home-panel-BcE8S2Nn.mjs +3 -0
  106. package/dist/packem_shared/input-CXhxesPC.mjs +1 -0
  107. package/dist/packem_shared/internal-Df43vQI0.mjs +2 -0
  108. package/dist/packem_shared/label-DKFzyHq6.mjs +1 -0
  109. package/dist/packem_shared/live-status-BuJdUZFU.mjs +1 -0
  110. package/dist/packem_shared/log-fields-BolUoZ9g.mjs +1 -0
  111. package/dist/packem_shared/log-line-CICyJ_kc.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-CyFiAE2l.mjs +1 -0
  116. package/dist/packem_shared/reference-view-CIHyURU6.mjs +13 -0
  117. package/dist/packem_shared/schema-diagram-C5oilX7l.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-DyK762_A.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-fK2DTLde.mjs +2 -0
  128. package/dist/packem_shared/table-D0SBiDu-.mjs +2 -0
  129. package/dist/packem_shared/table-list-sidebar-DkPO_Qtz.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-tlBof8Yg.mjs +1 -0
  133. package/dist/packem_shared/use-admin-spec-Bir7V68L.mjs +1 -0
  134. package/dist/packem_shared/use-async-submit-CZqCMTJ_.mjs +1 -0
  135. package/dist/packem_shared/use-auth-config-Z_n4ABCI.mjs +1 -0
  136. package/dist/packem_shared/use-mirrored-ref-CVDf2z1M.mjs +1 -0
  137. package/dist/packem_shared/use-open-trace-DMVhpnyG.mjs +1 -0
  138. package/dist/packem_shared/use-shard-key-BsP3o5wT.mjs +1 -0
  139. package/dist/packem_shared/use-sql-assistant-CZydTzd5.mjs +1 -0
  140. package/dist/packem_shared/useDebounced-DVeQ5-oW.mjs +1 -0
  141. package/dist/packem_shared/utils-bhneXptQ.mjs +1 -0
  142. package/dist/packem_shared/virtual-rect-D_j7aLxX.mjs +1 -0
  143. package/dist/standalone/chunk-24T422OY.js +1 -0
  144. package/dist/standalone/chunk-253UHWDX.js +1 -0
  145. package/dist/standalone/chunk-2I4NHEKA.js +1 -0
  146. package/dist/standalone/chunk-2IKDEUCX.js +1 -0
  147. package/dist/standalone/chunk-2LJRI76T.js +1 -0
  148. package/dist/standalone/chunk-2SGUZAFC.js +1 -0
  149. package/dist/standalone/chunk-2TP3H244.js +1 -0
  150. package/dist/standalone/chunk-2VA5S3IA.js +1 -0
  151. package/dist/standalone/chunk-37WYCOQ2.js +1 -0
  152. package/dist/standalone/chunk-3M7IXVST.js +1 -0
  153. package/dist/standalone/chunk-3YXASVTP.js +1 -0
  154. package/dist/standalone/chunk-45M2SFAD.js +1 -0
  155. package/dist/standalone/chunk-4FAWIWSZ.js +1 -0
  156. package/dist/standalone/chunk-4WD4XGC3.js +1 -0
  157. package/dist/standalone/chunk-4ZEL6BYL.js +1 -0
  158. package/dist/standalone/chunk-55UGUCQ6.js +1 -0
  159. package/dist/standalone/chunk-5B2RTXBS.js +1 -0
  160. package/dist/standalone/chunk-5QR2SQIS.js +1 -0
  161. package/dist/standalone/chunk-5WGHX3BJ.js +1 -0
  162. package/dist/standalone/chunk-6HLARDYO.js +1 -0
  163. package/dist/standalone/chunk-6JBF34XO.js +1 -0
  164. package/dist/standalone/chunk-6PDZ5QSX.js +3 -0
  165. package/dist/standalone/chunk-6QTAHSDD.js +1 -0
  166. package/dist/standalone/chunk-6X76NBY7.js +2 -0
  167. package/dist/standalone/chunk-76CINMOE.js +1 -0
  168. package/dist/standalone/chunk-76GDLOCA.js +1 -0
  169. package/dist/standalone/chunk-7G4Z6Q7X.js +1 -0
  170. package/dist/standalone/chunk-7IIQBGQK.js +1 -0
  171. package/dist/standalone/chunk-7NWLYOGL.js +1 -0
  172. package/dist/standalone/chunk-7PBPAGC2.js +3 -0
  173. package/dist/standalone/chunk-7RKB5KS7.js +1 -0
  174. package/dist/standalone/chunk-7Y3SY37W.js +1 -0
  175. package/dist/standalone/chunk-APWVPIZV.js +1 -0
  176. package/dist/standalone/chunk-AUAECCXB.js +1 -0
  177. package/dist/standalone/{chunk-BJGBHGK3.js → chunk-AUGKHAMQ.js} +1 -1
  178. package/dist/standalone/chunk-AZHAXSRA.js +1 -0
  179. package/dist/standalone/chunk-B6WI7CHG.js +1 -0
  180. package/dist/standalone/chunk-BOMPSVRC.js +1 -0
  181. package/dist/standalone/chunk-BXUP4USX.js +1 -0
  182. package/dist/standalone/chunk-CCDX5RYT.js +1 -0
  183. package/dist/standalone/chunk-CG2BXM3M.js +1 -0
  184. package/dist/standalone/chunk-CGQMJYCW.js +1 -0
  185. package/dist/standalone/chunk-CVXNHIQW.js +1 -0
  186. package/dist/standalone/chunk-CZBYO7MB.js +1 -0
  187. package/dist/standalone/chunk-D2MWAZIR.js +1 -0
  188. package/dist/standalone/chunk-D4KVIMPR.js +4 -0
  189. package/dist/standalone/chunk-DRFPILA5.js +1 -0
  190. package/dist/standalone/chunk-E3LQQON3.js +1 -0
  191. package/dist/standalone/chunk-E4PXACVL.js +3 -0
  192. package/dist/standalone/chunk-ECY2JC5F.js +1 -0
  193. package/dist/standalone/chunk-F4CHPK5T.js +1 -0
  194. package/dist/standalone/chunk-F7CMFUN5.js +1 -0
  195. package/dist/standalone/chunk-FPI7AMQJ.js +1 -0
  196. package/dist/standalone/chunk-FSHFJSTY.js +1 -0
  197. package/dist/standalone/chunk-FUYEZFBP.js +1 -0
  198. package/dist/standalone/chunk-G6EOMCDE.js +9 -0
  199. package/dist/standalone/chunk-G74GIEU4.js +1 -0
  200. package/dist/standalone/chunk-GHQ2VDI2.js +1 -0
  201. package/dist/standalone/chunk-HCTJKP5J.js +1 -0
  202. package/dist/standalone/chunk-HJHSQPHW.js +19 -0
  203. package/dist/standalone/chunk-HLFK7BP6.js +1 -0
  204. package/dist/standalone/chunk-HV77I2E5.js +1 -0
  205. package/dist/standalone/chunk-HX5A6HC7.js +1 -0
  206. package/dist/standalone/chunk-I26MS5PJ.js +1 -0
  207. package/dist/standalone/chunk-IWZ7GVQO.js +1 -0
  208. package/dist/standalone/chunk-J6GRPDN3.js +1 -0
  209. package/dist/standalone/chunk-JQXA2OYK.js +1 -0
  210. package/dist/standalone/chunk-JVZG34HR.js +1 -0
  211. package/dist/standalone/chunk-JZGTSH2C.js +4 -0
  212. package/dist/standalone/chunk-K76MCCBF.js +1 -0
  213. package/dist/standalone/chunk-KNVOVRC7.js +1 -0
  214. package/dist/standalone/chunk-KQSQVNVI.js +1 -0
  215. package/dist/standalone/chunk-L7XFE7ZQ.js +15 -0
  216. package/dist/standalone/chunk-MGVUIQTE.js +5 -0
  217. package/dist/standalone/chunk-MK7SA3YV.js +8 -0
  218. package/dist/standalone/chunk-MVWZMWPD.js +1 -0
  219. package/dist/standalone/chunk-N62W6SXC.js +1 -0
  220. package/dist/standalone/chunk-N7ZLG6XW.js +1 -0
  221. package/dist/standalone/chunk-NCPW7WHO.js +1 -0
  222. package/dist/standalone/chunk-NDTQTKDX.js +6 -0
  223. package/dist/standalone/chunk-NGVP66OH.js +1 -0
  224. package/dist/standalone/chunk-NNYTSWRW.js +1 -0
  225. package/dist/standalone/chunk-NQZALRU3.js +1 -0
  226. package/dist/standalone/chunk-NRP22GKC.js +1 -0
  227. package/dist/standalone/chunk-NXQW5E6W.js +1 -0
  228. package/dist/standalone/chunk-OPM7ESDV.js +1 -0
  229. package/dist/standalone/chunk-OQ6I6OXT.js +2 -0
  230. package/dist/standalone/chunk-OSGXNEFA.js +1 -0
  231. package/dist/standalone/chunk-OYCUPD3Q.js +1 -0
  232. package/dist/standalone/chunk-PD2VK52L.js +1 -0
  233. package/dist/standalone/chunk-PIMTWCRD.js +1 -0
  234. package/dist/standalone/chunk-PSPU5HSH.js +1 -0
  235. package/dist/standalone/chunk-Q6ED4KUL.js +1 -0
  236. package/dist/standalone/chunk-Q6IT6ZD7.js +1 -0
  237. package/dist/standalone/chunk-QAQDMS6R.js +1 -0
  238. package/dist/standalone/chunk-QJLHH3ET.js +1 -0
  239. package/dist/standalone/chunk-R6U22RSY.js +1 -0
  240. package/dist/standalone/chunk-RGMVGZV4.js +1 -0
  241. package/dist/standalone/chunk-RJWFF2KE.js +1 -0
  242. package/dist/standalone/chunk-RWVIV3U7.js +1 -0
  243. package/dist/standalone/chunk-RZ6QAA2I.js +1 -0
  244. package/dist/standalone/chunk-S4Z7K55A.js +1 -0
  245. package/dist/standalone/chunk-SA2OGF3F.js +1 -0
  246. package/dist/standalone/chunk-SJQERRSZ.js +1 -0
  247. package/dist/standalone/chunk-SV764LKQ.js +1 -0
  248. package/dist/standalone/chunk-TVUR3FJ4.js +1 -0
  249. package/dist/standalone/chunk-U5ESUXRC.js +1 -0
  250. package/dist/standalone/chunk-UC7MNI2F.js +1 -0
  251. package/dist/standalone/chunk-UD4LDX2S.js +1 -0
  252. package/dist/standalone/chunk-UX6CSZ3D.js +1 -0
  253. package/dist/standalone/chunk-UYEZR3BI.js +1 -0
  254. package/dist/standalone/chunk-V3A4MT5T.js +1 -0
  255. package/dist/standalone/chunk-VCFEO3RI.js +1 -0
  256. package/dist/standalone/chunk-VESGIGMQ.js +1 -0
  257. package/dist/standalone/chunk-VNLBEXJH.js +1 -0
  258. package/dist/standalone/chunk-VOL6MWI6.js +1 -0
  259. package/dist/standalone/chunk-WIASRPIC.js +59 -0
  260. package/dist/standalone/chunk-WJRYEML4.js +1 -0
  261. package/dist/standalone/chunk-WZ44V6FP.js +1 -0
  262. package/dist/standalone/chunk-XGCIDUJF.js +1 -0
  263. package/dist/standalone/chunk-XHRKNCCI.js +1 -0
  264. package/dist/standalone/chunk-XIAH5TMC.js +1 -0
  265. package/dist/standalone/chunk-XILJ2PEQ.js +1 -0
  266. package/dist/standalone/chunk-XNN6PY57.js +14 -0
  267. package/dist/standalone/chunk-Y3AYVFTK.js +1 -0
  268. package/dist/standalone/chunk-YEB2U5KT.js +1 -0
  269. package/dist/standalone/chunk-YLPATGWK.js +15 -0
  270. package/dist/standalone/chunk-YQL6PSXT.js +1 -0
  271. package/dist/standalone/chunk-YRYRCORI.js +1 -0
  272. package/dist/standalone/chunk-YVR4SEPU.js +1 -0
  273. package/dist/standalone/chunk-YZPYGQZ5.js +1 -0
  274. package/dist/standalone/chunk-Z22BDS6N.js +1 -0
  275. package/dist/standalone/chunk-ZKJS6EBE.js +1 -0
  276. package/dist/standalone/studio.js +9 -214
  277. package/dist/styles.css +2 -2
  278. package/package.json +26 -21
  279. package/dist/index.js +0 -41
  280. package/dist/mount.js +0 -26
  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 -197
  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 -375
  287. package/dist/packem_chunks/HealthPanel.js +0 -648
  288. package/dist/packem_chunks/InsightsPanel.js +0 -461
  289. package/dist/packem_chunks/LogsPanel.js +0 -827
  290. package/dist/packem_chunks/MailPanel.js +0 -440
  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 -2512
  295. package/dist/packem_chunks/SecurityAdvisorPanel.js +0 -92
  296. package/dist/packem_chunks/SettingsPanel.js +0 -390
  297. package/dist/packem_chunks/SqlEditorPanel.js +0 -2322
  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/dashboards-panel.js +0 -779
  303. package/dist/packem_chunks/fanout-panel.js +0 -481
  304. package/dist/packem_chunks/flags-panel.js +0 -176
  305. package/dist/packem_chunks/kv-browser.js +0 -1896
  306. package/dist/packem_chunks/log-drains-panel.js +0 -273
  307. package/dist/packem_chunks/organizations-panel.js +0 -670
  308. package/dist/packem_chunks/payments-panel.js +0 -185
  309. package/dist/packem_chunks/permissions-panel.js +0 -804
  310. package/dist/packem_chunks/queues-panel.js +0 -147
  311. package/dist/packem_chunks/rls-panel.js +0 -313
  312. package/dist/packem_chunks/schedule-panel.js +0 -831
  313. package/dist/packem_chunks/sparkline.js +0 -79
  314. package/dist/packem_chunks/storage-rules-panel.js +0 -138
  315. package/dist/packem_chunks/subscriptions-panel.js +0 -236
  316. package/dist/packem_chunks/users-panel.js +0 -1265
  317. package/dist/packem_chunks/vector-browser.js +0 -281
  318. package/dist/packem_chunks/workflows-panel.js +0 -562
  319. package/dist/packem_shared/ADMIN_FUNCTIONS-CdaxLGkE.js +0 -48
  320. package/dist/packem_shared/ApiDocsPanel-B6u_wnz-.js +0 -842
  321. package/dist/packem_shared/ApiReferencePanel-Drz4UO0a.js +0 -230
  322. package/dist/packem_shared/CommandPalette-B5BertvU.js +0 -373
  323. package/dist/packem_shared/ConfirmButton-C2eVi2Qv.js +0 -59
  324. package/dist/packem_shared/ConnectionBadge-B2DDM2Tn.js +0 -111
  325. package/dist/packem_shared/DEFAULT_AUTO_REFRESH_MS-Vxwaxx51.js +0 -50
  326. package/dist/packem_shared/DEFAULT_INSIGHT_THRESHOLDS-DjF0h-gA.js +0 -89
  327. package/dist/packem_shared/DEFAULT_LOCALE-CiX4W7Kr.js +0 -27
  328. package/dist/packem_shared/DataBrowser-ANTHLWWh.js +0 -4493
  329. package/dist/packem_shared/DataFilters-FNquMaiu.js +0 -249
  330. package/dist/packem_shared/ErrorBoundary-BzAApI7J.js +0 -66
  331. package/dist/packem_shared/GlobalDataBrowser-CjgTG_wa.js +0 -289
  332. package/dist/packem_shared/HomePanel-c2FodE9t.js +0 -14
  333. package/dist/packem_shared/OpenRpcReferencePanel-CspFdbUT.js +0 -192
  334. package/dist/packem_shared/STUDIO_ROOT_CLASS-D12gX2dV.js +0 -3
  335. package/dist/packem_shared/ScheduledJobs-BEJXtsBn.js +0 -262
  336. package/dist/packem_shared/ShardInput-gx_DZXXn.js +0 -107
  337. package/dist/packem_shared/Studio-CVTtA_sB.js +0 -16
  338. package/dist/packem_shared/StudioApp-BSYV2fz6.js +0 -657
  339. package/dist/packem_shared/StudioI18nProvider-B-tDCZIi.js +0 -48
  340. package/dist/packem_shared/advisor-view-DzqyvUU3.js +0 -159
  341. package/dist/packem_shared/aggregateMetrics-D4nUHEKU.js +0 -108
  342. package/dist/packem_shared/app.d-B6MyY_al.d.ts +0 -300
  343. package/dist/packem_shared/badge-B2PKA1-5.js +0 -49
  344. package/dist/packem_shared/bar-chart-Bb__F5-u.js +0 -3245
  345. package/dist/packem_shared/browser-storage-d03UsV7v.js +0 -249
  346. package/dist/packem_shared/button-BhsN2uZH.js +0 -49
  347. package/dist/packem_shared/card-DURq3ElK.js +0 -175
  348. package/dist/packem_shared/cf-links-BZfRdxSE.js +0 -8
  349. package/dist/packem_shared/checkbox-UNkzAxl-.js +0 -63
  350. package/dist/packem_shared/data-grid-Dsg6nRjo.js +0 -183
  351. package/dist/packem_shared/data-view-params-Cd6yRVbv.js +0 -96
  352. package/dist/packem_shared/dropdown-menu-WY4B_eJO.js +0 -280
  353. package/dist/packem_shared/empty-state-DY_oe0k6.js +0 -98
  354. package/dist/packem_shared/grid-features-D7nNzBYm.js +0 -745
  355. package/dist/packem_shared/home-panel-aOR_drVv.js +0 -1637
  356. package/dist/packem_shared/input-XH4r1Pt1.js +0 -53
  357. package/dist/packem_shared/internal-FcNZ3beb.js +0 -68
  358. package/dist/packem_shared/label-D8ykjn5J.js +0 -46
  359. package/dist/packem_shared/live-status-FZ0psC1z.js +0 -44
  360. package/dist/packem_shared/modal-shell-hyaJvIJ6.js +0 -100
  361. package/dist/packem_shared/reference-view-Doy1XlQq.js +0 -2140
  362. package/dist/packem_shared/select-UkNYCT3s.js +0 -273
  363. package/dist/packem_shared/shard-history-DyebH1R5.js +0 -38
  364. package/dist/packem_shared/skeleton-CGhL0p20.js +0 -45
  365. package/dist/packem_shared/sparkline-KgMPHS4u.js +0 -93
  366. package/dist/packem_shared/storage-tier-CL98eOvn.js +0 -85
  367. package/dist/packem_shared/studio-dMTJ-kRR.js +0 -3987
  368. package/dist/packem_shared/table-DsCa9Qp9.js +0 -246
  369. package/dist/packem_shared/table-list-sidebar-VMo0ftxD.js +0 -832
  370. package/dist/packem_shared/textarea-D3gaCU_-.js +0 -46
  371. package/dist/packem_shared/use-admin-query-BViPA3US.js +0 -105
  372. package/dist/packem_shared/use-auth-capabilities-BHkoBnbZ.js +0 -32
  373. package/dist/packem_shared/useDebounced-Dxncpg6z.js +0 -32
  374. package/dist/packem_shared/utils-B05Dmz_H.js +0 -8
  375. package/dist/packem_shared/virtual-rect-CVMUskSm.js +0 -10
  376. package/dist/standalone/chunk-2DS7JLWL.js +0 -13
  377. package/dist/standalone/chunk-2K47A3P6.js +0 -1
  378. package/dist/standalone/chunk-2NGUNNGW.js +0 -1
  379. package/dist/standalone/chunk-2PDQ4KZ6.js +0 -1
  380. package/dist/standalone/chunk-3BP4BTLR.js +0 -4
  381. package/dist/standalone/chunk-3OA7PECS.js +0 -6
  382. package/dist/standalone/chunk-4QHKBC77.js +0 -1
  383. package/dist/standalone/chunk-57LYXHXH.js +0 -1
  384. package/dist/standalone/chunk-5NSZVXCS.js +0 -1
  385. package/dist/standalone/chunk-5OIBXYZM.js +0 -1
  386. package/dist/standalone/chunk-63XKJQTQ.js +0 -1
  387. package/dist/standalone/chunk-6RC6L33K.js +0 -4
  388. package/dist/standalone/chunk-6VTGE3WJ.js +0 -1
  389. package/dist/standalone/chunk-7PBZKXYA.js +0 -1
  390. package/dist/standalone/chunk-7POIIWC5.js +0 -3
  391. package/dist/standalone/chunk-7RYIQKZA.js +0 -1
  392. package/dist/standalone/chunk-7TJJXVSE.js +0 -1
  393. package/dist/standalone/chunk-AB6QGMBF.js +0 -1
  394. package/dist/standalone/chunk-AHILM3ZP.js +0 -1
  395. package/dist/standalone/chunk-AQGOX5DK.js +0 -1
  396. package/dist/standalone/chunk-ASLGNHAX.js +0 -1
  397. package/dist/standalone/chunk-BHTPZS7L.js +0 -4
  398. package/dist/standalone/chunk-D7HKX4DI.js +0 -1
  399. package/dist/standalone/chunk-DGWTR4G7.js +0 -1
  400. package/dist/standalone/chunk-DSX53PBM.js +0 -1
  401. package/dist/standalone/chunk-DV2MNASX.js +0 -1
  402. package/dist/standalone/chunk-DWDILV2E.js +0 -1
  403. package/dist/standalone/chunk-E7AVZZKO.js +0 -1
  404. package/dist/standalone/chunk-EGJX34WM.js +0 -1
  405. package/dist/standalone/chunk-FCR3HKFV.js +0 -1
  406. package/dist/standalone/chunk-FKO3HO6I.js +0 -4
  407. package/dist/standalone/chunk-FQKNJSRA.js +0 -76
  408. package/dist/standalone/chunk-G2TFEWEQ.js +0 -4
  409. package/dist/standalone/chunk-GABMIICA.js +0 -1
  410. package/dist/standalone/chunk-GTM65MVX.js +0 -1
  411. package/dist/standalone/chunk-GZXPPJVK.js +0 -1
  412. package/dist/standalone/chunk-HFBRE65A.js +0 -1
  413. package/dist/standalone/chunk-HFMQNUBC.js +0 -1
  414. package/dist/standalone/chunk-HG7Q5B3H.js +0 -1
  415. package/dist/standalone/chunk-HTQL7AXU.js +0 -1
  416. package/dist/standalone/chunk-HV7G6DFP.js +0 -5
  417. package/dist/standalone/chunk-ITLLHEVG.js +0 -1
  418. package/dist/standalone/chunk-J6J54MBP.js +0 -1
  419. package/dist/standalone/chunk-JSEXCW5Q.js +0 -1
  420. package/dist/standalone/chunk-KEGAWN6Y.js +0 -1
  421. package/dist/standalone/chunk-KG3QTFWE.js +0 -1
  422. package/dist/standalone/chunk-KGS7KM4A.js +0 -2
  423. package/dist/standalone/chunk-KODWGUAB.js +0 -1
  424. package/dist/standalone/chunk-KZ6INM5M.js +0 -1
  425. package/dist/standalone/chunk-MGFEVTRI.js +0 -1
  426. package/dist/standalone/chunk-N2QDG3MW.js +0 -1
  427. package/dist/standalone/chunk-N4JI6VQD.js +0 -1
  428. package/dist/standalone/chunk-NNISYDNI.js +0 -1
  429. package/dist/standalone/chunk-O4PXDNR3.js +0 -1
  430. package/dist/standalone/chunk-O77VNUFD.js +0 -1
  431. package/dist/standalone/chunk-OD2POGPJ.js +0 -1
  432. package/dist/standalone/chunk-OXCK3ZUG.js +0 -1
  433. package/dist/standalone/chunk-P7DSVO4U.js +0 -1
  434. package/dist/standalone/chunk-PKAM3N5C.js +0 -1
  435. package/dist/standalone/chunk-QGXGBHQO.js +0 -1
  436. package/dist/standalone/chunk-QHA3TAEJ.js +0 -1
  437. package/dist/standalone/chunk-QQWC62X7.js +0 -1
  438. package/dist/standalone/chunk-RMYA7NAH.js +0 -1
  439. package/dist/standalone/chunk-RRCPZMC2.js +0 -22
  440. package/dist/standalone/chunk-S53RUBW5.js +0 -1
  441. package/dist/standalone/chunk-SB4GT6PK.js +0 -1
  442. package/dist/standalone/chunk-SEU5V7I6.js +0 -1
  443. package/dist/standalone/chunk-SHIOUDOT.js +0 -1
  444. package/dist/standalone/chunk-SIDRSX7Y.js +0 -1
  445. package/dist/standalone/chunk-SVR644RF.js +0 -1
  446. package/dist/standalone/chunk-TAD43CG5.js +0 -1
  447. package/dist/standalone/chunk-TBMYIZIO.js +0 -1
  448. package/dist/standalone/chunk-TICVNLPM.js +0 -1
  449. package/dist/standalone/chunk-TQ36RWOP.js +0 -1
  450. package/dist/standalone/chunk-UGMRUEBU.js +0 -1
  451. package/dist/standalone/chunk-UII66UVF.js +0 -1
  452. package/dist/standalone/chunk-VJPQUBN6.js +0 -8
  453. package/dist/standalone/chunk-VLXV72QE.js +0 -1
  454. package/dist/standalone/chunk-VMJKJWG6.js +0 -1
  455. package/dist/standalone/chunk-VPDPN5RR.js +0 -2
  456. package/dist/standalone/chunk-VSEGZA3J.js +0 -1
  457. package/dist/standalone/chunk-VXBZQIGY.js +0 -4
  458. package/dist/standalone/chunk-W7PCVQTE.js +0 -1
  459. package/dist/standalone/chunk-XLILSHPE.js +0 -1
  460. package/dist/standalone/chunk-XURNGQSS.js +0 -1
  461. package/dist/standalone/chunk-YJGANMU7.js +0 -18
  462. package/dist/standalone/chunk-YQQJ4N6U.js +0 -1
  463. package/dist/standalone/chunk-ZH7UES4T.js +0 -2
  464. package/dist/standalone/chunk-ZPUO7FNI.js +0 -1
  465. package/dist/standalone/chunk-ZQCVDXDL.js +0 -1
@@ -1,1637 +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-BViPA3US.js';
8
- import { useT } from './DEFAULT_LOCALE-CiX4W7Kr.js';
9
- import { ADMIN_FUNCTIONS } from './ADMIN_FUNCTIONS-CdaxLGkE.js';
10
- import { f as fireAndForget, c as callOptions, a as adminRef, h as formatBytes } from './internal-FcNZ3beb.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
- flags: true,
21
- kv: true,
22
- mail: true,
23
- payments: true,
24
- queues: true,
25
- scheduler: true,
26
- storage: true,
27
- vectors: true,
28
- workflows: true
29
- };
30
- const coerceFeatures = (raw) => {
31
- if (raw === null || typeof raw !== "object") {
32
- return DEFAULT_STUDIO_FEATURES;
33
- }
34
- const record = raw;
35
- const flag = (key) => typeof record[key] === "boolean" ? record[key] : true;
36
- return {
37
- analytics: flag("analytics"),
38
- auth: flag("auth"),
39
- flags: flag("flags"),
40
- kv: flag("kv"),
41
- mail: flag("mail"),
42
- payments: flag("payments"),
43
- queues: flag("queues"),
44
- scheduler: flag("scheduler"),
45
- storage: flag("storage"),
46
- vectors: flag("vectors"),
47
- workflows: flag("workflows")
48
- };
49
- };
50
- const useStudioFeatures = () => {
51
- const $ = c(3);
52
- const client = useLunora();
53
- const [features, setFeatures] = useState(DEFAULT_STUDIO_FEATURES);
54
- let t0;
55
- let t1;
56
- if ($[0] !== client) {
57
- t0 = () => {
58
- fireAndForget((async () => {
59
- try {
60
- setFeatures(coerceFeatures(await client.query(STUDIO_FEATURES, {}, callOptions(""))));
61
- } catch {
62
- }
63
- })());
64
- };
65
- t1 = [client];
66
- $[0] = client;
67
- $[1] = t0;
68
- $[2] = t1;
69
- } else {
70
- t0 = $[1];
71
- t1 = $[2];
72
- }
73
- useEffect(t0, t1);
74
- return features;
75
- };
76
-
77
- const ChevronRight$1 = () => {
78
- const $ = c(1);
79
- let t0;
80
- if ($[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
81
- t0 = /* @__PURE__ */ jsxDEV("svg", {
82
- "aria-hidden": "true",
83
- className: "size-4 text-muted-foreground",
84
- fill: "none",
85
- stroke: "currentColor",
86
- strokeWidth: 1.6,
87
- viewBox: "0 0 24 24",
88
- children: /* @__PURE__ */ jsxDEV("path", {
89
- d: "m9 6 6 6-6 6",
90
- strokeLinecap: "round",
91
- strokeLinejoin: "round"
92
- }, void 0, false)
93
- }, void 0, false);
94
- $[0] = t0;
95
- } else {
96
- t0 = $[0];
97
- }
98
- return t0;
99
- };
100
- const BindingCard = (t0) => {
101
- const $ = c(24);
102
- const {
103
- group
104
- } = t0;
105
- const t = useT();
106
- const navigate = useNavigate();
107
- let t1;
108
- if ($[0] !== group.tab || $[1] !== navigate) {
109
- t1 = () => {
110
- fireAndForget(navigate({
111
- to: `/${group.tab}`
112
- }));
113
- };
114
- $[0] = group.tab;
115
- $[1] = navigate;
116
- $[2] = t1;
117
- } else {
118
- t1 = $[2];
119
- }
120
- const onOpen = t1;
121
- const count = group.bindings.length;
122
- let t2;
123
- if ($[3] !== group.label) {
124
- t2 = /* @__PURE__ */ jsxDEV("span", {
125
- className: "text-sm font-medium text-foreground",
126
- children: group.label
127
- }, void 0, false);
128
- $[3] = group.label;
129
- $[4] = t2;
130
- } else {
131
- t2 = $[4];
132
- }
133
- let t3;
134
- if ($[5] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
135
- t3 = /* @__PURE__ */ jsxDEV(ChevronRight$1, {}, void 0, false);
136
- $[5] = t3;
137
- } else {
138
- t3 = $[5];
139
- }
140
- let t4;
141
- if ($[6] !== t2) {
142
- t4 = /* @__PURE__ */ jsxDEV("div", {
143
- className: "flex items-center justify-between",
144
- children: [t2, t3]
145
- }, void 0, true);
146
- $[6] = t2;
147
- $[7] = t4;
148
- } else {
149
- t4 = $[7];
150
- }
151
- let t5;
152
- if ($[8] !== count || $[9] !== t) {
153
- t5 = count === 1 ? t("1 binding") : t("{count} bindings", {
154
- count
155
- });
156
- $[8] = count;
157
- $[9] = t;
158
- $[10] = t5;
159
- } else {
160
- t5 = $[10];
161
- }
162
- let t6;
163
- if ($[11] !== t5) {
164
- t6 = /* @__PURE__ */ jsxDEV("span", {
165
- className: "text-xs text-muted-foreground",
166
- children: t5
167
- }, void 0, false);
168
- $[11] = t5;
169
- $[12] = t6;
170
- } else {
171
- t6 = $[12];
172
- }
173
- let t7;
174
- if ($[13] !== count || $[14] !== group.bindings) {
175
- t7 = count > 0 && /* @__PURE__ */ jsxDEV("div", {
176
- className: "flex flex-wrap gap-1.5",
177
- children: group.bindings.map(_temp$1)
178
- }, void 0, false);
179
- $[13] = count;
180
- $[14] = group.bindings;
181
- $[15] = t7;
182
- } else {
183
- t7 = $[15];
184
- }
185
- let t8;
186
- if ($[16] !== t4 || $[17] !== t6 || $[18] !== t7) {
187
- t8 = /* @__PURE__ */ jsxDEV(CardContent, {
188
- className: "flex flex-col gap-2 py-4",
189
- children: [t4, t6, t7]
190
- }, void 0, true);
191
- $[16] = t4;
192
- $[17] = t6;
193
- $[18] = t7;
194
- $[19] = t8;
195
- } else {
196
- t8 = $[19];
197
- }
198
- let t9;
199
- if ($[20] !== group.testId || $[21] !== onOpen || $[22] !== t8) {
200
- t9 = /* @__PURE__ */ jsxDEV(Card, {
201
- className: "cursor-pointer gap-0 py-0 transition-colors hover:bg-muted/40",
202
- "data-testid": group.testId,
203
- onClick: onOpen,
204
- children: t8
205
- }, void 0, false);
206
- $[20] = group.testId;
207
- $[21] = onOpen;
208
- $[22] = t8;
209
- $[23] = t9;
210
- } else {
211
- t9 = $[23];
212
- }
213
- return t9;
214
- };
215
- const TAB_ORDER = ["kv", "files", "vectors"];
216
- 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));
217
- const BindingsOverview = () => {
218
- const $ = c(19);
219
- const client = useLunora();
220
- const features = useStudioFeatures();
221
- const t = useT();
222
- let t0;
223
- if ($[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
224
- t0 = [];
225
- $[0] = t0;
226
- } else {
227
- t0 = $[0];
228
- }
229
- const [groups, setGroups] = useState(t0);
230
- let t1;
231
- let t2;
232
- if ($[1] !== client || $[2] !== features.kv || $[3] !== features.storage || $[4] !== features.vectors || $[5] !== t) {
233
- t1 = () => {
234
- const token = {
235
- cancelled: false
236
- };
237
- const sources = [{
238
- enabled: features.kv,
239
- label: t("KV Namespaces"),
240
- load: async () => {
241
- const namespaces = await client.listKvNamespaces();
242
- return namespaces.map(_temp2$1);
243
- },
244
- tab: "kv",
245
- testId: "home-binding-kv"
246
- }, {
247
- enabled: features.storage,
248
- label: t("R2 Buckets"),
249
- load: () => client.listStorageBuckets(),
250
- tab: "files",
251
- testId: "home-binding-r2"
252
- }, {
253
- enabled: features.vectors,
254
- label: t("Vectorize Indexes"),
255
- load: async () => {
256
- const indexes = await client.listVectorIndexes();
257
- return indexes.map(_temp3$1);
258
- },
259
- tab: "vectors",
260
- testId: "home-binding-vectors"
261
- }];
262
- for (const source of sources) {
263
- if (!source.enabled) {
264
- continue;
265
- }
266
- fireAndForget((async () => {
267
- try {
268
- const bindings = await source.load();
269
- if (!token.cancelled) {
270
- const card = {
271
- bindings,
272
- label: source.label,
273
- tab: source.tab,
274
- testId: source.testId
275
- };
276
- setGroups((current) => upsertCard(current, card));
277
- }
278
- } catch {
279
- }
280
- })());
281
- }
282
- return () => {
283
- token.cancelled = true;
284
- };
285
- };
286
- t2 = [client, features.kv, features.storage, features.vectors, t];
287
- $[1] = client;
288
- $[2] = features.kv;
289
- $[3] = features.storage;
290
- $[4] = features.vectors;
291
- $[5] = t;
292
- $[6] = t1;
293
- $[7] = t2;
294
- } else {
295
- t1 = $[6];
296
- t2 = $[7];
297
- }
298
- useEffect(t1, t2);
299
- if (groups.length === 0) {
300
- return null;
301
- }
302
- let t3;
303
- if ($[8] !== t) {
304
- t3 = t("Bindings");
305
- $[8] = t;
306
- $[9] = t3;
307
- } else {
308
- t3 = $[9];
309
- }
310
- let t4;
311
- if ($[10] !== t3) {
312
- t4 = /* @__PURE__ */ jsxDEV("h2", {
313
- className: "text-sm font-semibold tracking-tight text-foreground",
314
- children: t3
315
- }, void 0, false);
316
- $[10] = t3;
317
- $[11] = t4;
318
- } else {
319
- t4 = $[11];
320
- }
321
- let t5;
322
- if ($[12] !== groups) {
323
- t5 = groups.map(_temp4);
324
- $[12] = groups;
325
- $[13] = t5;
326
- } else {
327
- t5 = $[13];
328
- }
329
- let t6;
330
- if ($[14] !== t5) {
331
- t6 = /* @__PURE__ */ jsxDEV("div", {
332
- className: "grid gap-3 sm:grid-cols-2 lg:grid-cols-3",
333
- children: t5
334
- }, void 0, false);
335
- $[14] = t5;
336
- $[15] = t6;
337
- } else {
338
- t6 = $[15];
339
- }
340
- let t7;
341
- if ($[16] !== t4 || $[17] !== t6) {
342
- t7 = /* @__PURE__ */ jsxDEV("section", {
343
- className: "flex flex-col gap-3",
344
- "data-testid": "home-bindings",
345
- children: [t4, t6]
346
- }, void 0, true);
347
- $[16] = t4;
348
- $[17] = t6;
349
- $[18] = t7;
350
- } else {
351
- t7 = $[18];
352
- }
353
- return t7;
354
- };
355
- function _temp$1(binding) {
356
- return /* @__PURE__ */ jsxDEV(Badge, {
357
- variant: "secondary",
358
- children: binding
359
- }, binding, false);
360
- }
361
- function _temp2$1(ns) {
362
- return ns.binding;
363
- }
364
- function _temp3$1(index) {
365
- return index.name;
366
- }
367
- function _temp4(group) {
368
- return /* @__PURE__ */ jsxDEV(BindingCard, {
369
- group
370
- }, group.tab, false);
371
- }
372
-
373
- const Sparkline = /* @__PURE__ */ lazy(() => import('../packem_chunks/sparkline.js').then((m) => {
374
- return {
375
- default: m.Sparkline
376
- };
377
- }));
378
- const formatMs = (ms) => {
379
- if (ms < 1e3) {
380
- return `${String(Math.round(ms))}ms`;
381
- }
382
- const digits = ms >= 1e4 ? 0 : 1;
383
- return `${(ms / 1e3).toFixed(digits)}s`;
384
- };
385
- const relativeTime = (ts, now) => {
386
- const seconds = Math.max(0, Math.round((now - ts) / 1e3));
387
- if (seconds < 60) {
388
- return `${String(seconds)}s ago`;
389
- }
390
- const minutes = Math.round(seconds / 60);
391
- if (minutes < 60) {
392
- return `${String(minutes)}m ago`;
393
- }
394
- const hours = Math.round(minutes / 60);
395
- return hours < 24 ? `${String(hours)}h ago` : `${String(Math.round(hours / 24))}d ago`;
396
- };
397
- const bucketSeries = (history, field) => {
398
- if (history === void 0 || history.length === 0) {
399
- return [];
400
- }
401
- const byBucket = /* @__PURE__ */ new Map();
402
- for (const bucket of history) {
403
- byBucket.set(bucket.bucketMs, (byBucket.get(bucket.bucketMs) ?? 0) + bucket[field]);
404
- }
405
- return [...byBucket.entries()].toSorted(([a], [b]) => a - b).map(([, total]) => total);
406
- };
407
- const seriesDelta = (series, higherIsBetter = true) => {
408
- if (series.length < 4) {
409
- return null;
410
- }
411
- const mid = Math.floor(series.length / 2);
412
- const earlier = series.slice(0, mid).reduce((sum, value) => sum + value, 0);
413
- const recent = series.slice(mid).reduce((sum, value) => sum + value, 0);
414
- if (earlier === 0) {
415
- return null;
416
- }
417
- const pct = (recent - earlier) / earlier * 100;
418
- return {
419
- positive: higherIsBetter ? pct >= 0 : pct <= 0,
420
- text: `${pct >= 0 ? "+" : ""}${pct.toFixed(1)}%`
421
- };
422
- };
423
- const StatCard = (t0) => {
424
- const $ = c(24);
425
- const {
426
- delta,
427
- footer,
428
- label,
429
- trend,
430
- unit,
431
- value
432
- } = t0;
433
- const t = useT();
434
- let t1;
435
- if ($[0] !== label) {
436
- t1 = /* @__PURE__ */ jsxDEV("span", {
437
- className: "font-mono text-[11px] tracking-wide text-muted-foreground uppercase",
438
- children: label
439
- }, void 0, false);
440
- $[0] = label;
441
- $[1] = t1;
442
- } else {
443
- t1 = $[1];
444
- }
445
- let t2;
446
- if ($[2] !== value) {
447
- t2 = /* @__PURE__ */ jsxDEV("span", {
448
- className: "text-2xl font-semibold tabular-nums text-foreground",
449
- children: value
450
- }, void 0, false);
451
- $[2] = value;
452
- $[3] = t2;
453
- } else {
454
- t2 = $[3];
455
- }
456
- let t3;
457
- if ($[4] !== unit) {
458
- t3 = unit !== void 0 && /* @__PURE__ */ jsxDEV("span", {
459
- className: "text-xs text-muted-foreground",
460
- children: unit
461
- }, void 0, false);
462
- $[4] = unit;
463
- $[5] = t3;
464
- } else {
465
- t3 = $[5];
466
- }
467
- let t4;
468
- if ($[6] !== t2 || $[7] !== t3) {
469
- t4 = /* @__PURE__ */ jsxDEV("span", {
470
- className: "flex items-baseline gap-1.5",
471
- children: [t2, t3]
472
- }, void 0, true);
473
- $[6] = t2;
474
- $[7] = t3;
475
- $[8] = t4;
476
- } else {
477
- t4 = $[8];
478
- }
479
- let t5;
480
- if ($[9] !== trend) {
481
- t5 = trend !== void 0 && /* @__PURE__ */ jsxDEV(Suspense, {
482
- fallback: /* @__PURE__ */ jsxDEV("div", {
483
- "aria-hidden": "true",
484
- className: "h-8 w-28"
485
- }, void 0, false),
486
- children: /* @__PURE__ */ jsxDEV(Sparkline, {
487
- data: trend
488
- }, void 0, false)
489
- }, void 0, false);
490
- $[9] = trend;
491
- $[10] = t5;
492
- } else {
493
- t5 = $[10];
494
- }
495
- let t6;
496
- if ($[11] !== t4 || $[12] !== t5) {
497
- t6 = /* @__PURE__ */ jsxDEV("div", {
498
- className: "flex items-center justify-between gap-3",
499
- children: [t4, t5]
500
- }, void 0, true);
501
- $[11] = t4;
502
- $[12] = t5;
503
- $[13] = t6;
504
- } else {
505
- t6 = $[13];
506
- }
507
- let t7;
508
- if ($[14] !== t1 || $[15] !== t6) {
509
- t7 = /* @__PURE__ */ jsxDEV("div", {
510
- className: "flex flex-col gap-2.5 p-4",
511
- children: [t1, t6]
512
- }, void 0, true);
513
- $[14] = t1;
514
- $[15] = t6;
515
- $[16] = t7;
516
- } else {
517
- t7 = $[16];
518
- }
519
- let t8;
520
- if ($[17] !== delta || $[18] !== footer || $[19] !== t) {
521
- t8 = delta == null ? footer != null && /* @__PURE__ */ jsxDEV("div", {
522
- className: "border-t border-border bg-muted/50 px-4 py-2.5 text-[11px] text-muted-foreground",
523
- children: footer
524
- }, void 0, false) : /* @__PURE__ */ jsxDEV("div", {
525
- className: "border-t border-border bg-muted/50 px-4 py-2.5 text-[11px]",
526
- children: [/* @__PURE__ */ jsxDEV("span", {
527
- className: cn("font-semibold", delta.positive ? "text-success" : "text-destructive"),
528
- children: delta.text
529
- }, void 0, false), " ", /* @__PURE__ */ jsxDEV("span", {
530
- className: "text-muted-foreground",
531
- children: t("vs. prev.")
532
- }, void 0, false)]
533
- }, void 0, true);
534
- $[17] = delta;
535
- $[18] = footer;
536
- $[19] = t;
537
- $[20] = t8;
538
- } else {
539
- t8 = $[20];
540
- }
541
- let t9;
542
- if ($[21] !== t7 || $[22] !== t8) {
543
- t9 = /* @__PURE__ */ jsxDEV(Card, {
544
- className: "justify-between gap-0 py-0",
545
- children: [t7, t8]
546
- }, void 0, true);
547
- $[21] = t7;
548
- $[22] = t8;
549
- $[23] = t9;
550
- } else {
551
- t9 = $[23];
552
- }
553
- return t9;
554
- };
555
- const ChevronRight = () => {
556
- const $ = c(1);
557
- let t0;
558
- if ($[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
559
- t0 = /* @__PURE__ */ jsxDEV("svg", {
560
- "aria-hidden": "true",
561
- className: "size-3.5",
562
- fill: "none",
563
- stroke: "currentColor",
564
- strokeLinecap: "round",
565
- strokeLinejoin: "round",
566
- strokeWidth: 1.8,
567
- viewBox: "0 0 24 24",
568
- children: /* @__PURE__ */ jsxDEV("path", {
569
- d: "m9 6 6 6-6 6"
570
- }, void 0, false)
571
- }, void 0, false);
572
- $[0] = t0;
573
- } else {
574
- t0 = $[0];
575
- }
576
- return t0;
577
- };
578
- const ConnectCard = (t0) => {
579
- const $ = c(7);
580
- const {
581
- command,
582
- label
583
- } = t0;
584
- let t1;
585
- if ($[0] !== label) {
586
- t1 = /* @__PURE__ */ jsxDEV("div", {
587
- className: "p-4",
588
- children: /* @__PURE__ */ jsxDEV("span", {
589
- className: "text-sm font-medium text-foreground",
590
- children: label
591
- }, void 0, false)
592
- }, void 0, false);
593
- $[0] = label;
594
- $[1] = t1;
595
- } else {
596
- t1 = $[1];
597
- }
598
- let t2;
599
- if ($[2] !== command) {
600
- t2 = /* @__PURE__ */ jsxDEV("div", {
601
- className: "border-t border-border bg-muted/50 px-4 py-2.5",
602
- children: /* @__PURE__ */ jsxDEV("code", {
603
- className: "font-mono text-xs text-muted-foreground",
604
- children: command
605
- }, void 0, false)
606
- }, void 0, false);
607
- $[2] = command;
608
- $[3] = t2;
609
- } else {
610
- t2 = $[3];
611
- }
612
- let t3;
613
- if ($[4] !== t1 || $[5] !== t2) {
614
- t3 = /* @__PURE__ */ jsxDEV(Card, {
615
- className: "justify-between gap-0 py-0",
616
- children: [t1, t2]
617
- }, void 0, true);
618
- $[4] = t1;
619
- $[5] = t2;
620
- $[6] = t3;
621
- } else {
622
- t3 = $[6];
623
- }
624
- return t3;
625
- };
626
- const AdvisorCard = (t0) => {
627
- const $ = c(18);
628
- const {
629
- count,
630
- onView,
631
- testId,
632
- title
633
- } = t0;
634
- const t = useT();
635
- let t1;
636
- if ($[0] !== title) {
637
- t1 = /* @__PURE__ */ jsxDEV("span", {
638
- className: "font-mono text-[11px] tracking-wide text-muted-foreground uppercase",
639
- children: title
640
- }, void 0, false);
641
- $[0] = title;
642
- $[1] = t1;
643
- } else {
644
- t1 = $[1];
645
- }
646
- let t2;
647
- if ($[2] !== count || $[3] !== t) {
648
- t2 = count === null ? /* @__PURE__ */ jsxDEV("span", {
649
- className: "text-xs text-muted-foreground",
650
- children: t("No data yet")
651
- }, void 0, false) : /* @__PURE__ */ jsxDEV(Badge, {
652
- variant: count > 0 ? "destructive" : "success",
653
- children: count > 0 ? count : t("All clear")
654
- }, void 0, false);
655
- $[2] = count;
656
- $[3] = t;
657
- $[4] = t2;
658
- } else {
659
- t2 = $[4];
660
- }
661
- let t3;
662
- if ($[5] !== t1 || $[6] !== t2) {
663
- t3 = /* @__PURE__ */ jsxDEV("div", {
664
- className: "flex items-start justify-between gap-2 p-4",
665
- children: [t1, t2]
666
- }, void 0, true);
667
- $[5] = t1;
668
- $[6] = t2;
669
- $[7] = t3;
670
- } else {
671
- t3 = $[7];
672
- }
673
- let t4;
674
- if ($[8] !== t) {
675
- t4 = t("View");
676
- $[8] = t;
677
- $[9] = t4;
678
- } else {
679
- t4 = $[9];
680
- }
681
- let t5;
682
- if ($[10] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
683
- t5 = /* @__PURE__ */ jsxDEV(ChevronRight, {}, void 0, false);
684
- $[10] = t5;
685
- } else {
686
- t5 = $[10];
687
- }
688
- let t6;
689
- if ($[11] !== onView || $[12] !== t4) {
690
- t6 = /* @__PURE__ */ jsxDEV("button", {
691
- 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",
692
- onClick: onView,
693
- type: "button",
694
- children: [t4, t5]
695
- }, void 0, true);
696
- $[11] = onView;
697
- $[12] = t4;
698
- $[13] = t6;
699
- } else {
700
- t6 = $[13];
701
- }
702
- let t7;
703
- if ($[14] !== t3 || $[15] !== t6 || $[16] !== testId) {
704
- t7 = /* @__PURE__ */ jsxDEV(Card, {
705
- className: "justify-between gap-0 py-0",
706
- "data-testid": testId,
707
- children: [t3, t6]
708
- }, void 0, true);
709
- $[14] = t3;
710
- $[15] = t6;
711
- $[16] = testId;
712
- $[17] = t7;
713
- } else {
714
- t7 = $[17];
715
- }
716
- return t7;
717
- };
718
- const TopFunctionsCard = (t0) => {
719
- const $ = c(7);
720
- const {
721
- functions
722
- } = t0;
723
- const t = useT();
724
- let t1;
725
- if ($[0] !== functions || $[1] !== t) {
726
- const top = [...functions].toSorted(_temp).slice(0, 5);
727
- let t2;
728
- if ($[3] !== t) {
729
- t2 = t("Top functions");
730
- $[3] = t;
731
- $[4] = t2;
732
- } else {
733
- t2 = $[4];
734
- }
735
- let t3;
736
- if ($[5] !== t2) {
737
- t3 = /* @__PURE__ */ jsxDEV("div", {
738
- className: "border-b border-border px-4 py-3",
739
- children: /* @__PURE__ */ jsxDEV("span", {
740
- className: "font-mono text-[11px] tracking-wide text-muted-foreground uppercase",
741
- children: t2
742
- }, void 0, false)
743
- }, void 0, false);
744
- $[5] = t2;
745
- $[6] = t3;
746
- } else {
747
- t3 = $[6];
748
- }
749
- t1 = /* @__PURE__ */ jsxDEV(Card, {
750
- className: "gap-0 py-0",
751
- "data-testid": "home-top-functions",
752
- children: [t3, top.length === 0 ? /* @__PURE__ */ jsxDEV("p", {
753
- className: "px-4 py-8 text-center text-xs text-muted-foreground",
754
- children: t("No functions called yet.")
755
- }, void 0, false) : /* @__PURE__ */ jsxDEV("div", {
756
- className: "divide-y divide-border",
757
- children: [/* @__PURE__ */ jsxDEV("div", {
758
- 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",
759
- children: [/* @__PURE__ */ jsxDEV("span", {
760
- children: t("Function")
761
- }, void 0, false), /* @__PURE__ */ jsxDEV("span", {
762
- className: "text-end",
763
- children: t("Calls")
764
- }, void 0, false), /* @__PURE__ */ jsxDEV("span", {
765
- className: "w-12 text-end",
766
- children: t("Avg")
767
- }, void 0, false), /* @__PURE__ */ jsxDEV("span", {
768
- className: "w-8 text-end",
769
- children: t("Err")
770
- }, void 0, false)]
771
- }, void 0, true), top.map(_temp2)]
772
- }, void 0, true)]
773
- }, void 0, true);
774
- $[0] = functions;
775
- $[1] = t;
776
- $[2] = t1;
777
- } else {
778
- t1 = $[2];
779
- }
780
- return t1;
781
- };
782
- const LiveConnectionsCard = (t0) => {
783
- const $ = c(26);
784
- const {
785
- subs
786
- } = t0;
787
- const t = useT();
788
- let t1;
789
- if ($[0] !== t) {
790
- t1 = t("Live connections");
791
- $[0] = t;
792
- $[1] = t1;
793
- } else {
794
- t1 = $[1];
795
- }
796
- let t2;
797
- if ($[2] !== t1) {
798
- t2 = /* @__PURE__ */ jsxDEV("span", {
799
- className: "font-mono text-[11px] tracking-wide text-muted-foreground uppercase",
800
- children: t1
801
- }, void 0, false);
802
- $[2] = t1;
803
- $[3] = t2;
804
- } else {
805
- t2 = $[3];
806
- }
807
- const t3 = subs?.totalConnections ?? 0;
808
- let t4;
809
- if ($[4] !== t3) {
810
- t4 = t3.toLocaleString();
811
- $[4] = t3;
812
- $[5] = t4;
813
- } else {
814
- t4 = $[5];
815
- }
816
- let t5;
817
- if ($[6] !== t4) {
818
- t5 = /* @__PURE__ */ jsxDEV("span", {
819
- className: "text-2xl font-semibold tabular-nums text-foreground",
820
- children: t4
821
- }, void 0, false);
822
- $[6] = t4;
823
- $[7] = t5;
824
- } else {
825
- t5 = $[7];
826
- }
827
- let t6;
828
- if ($[8] !== t) {
829
- t6 = t("sockets");
830
- $[8] = t;
831
- $[9] = t6;
832
- } else {
833
- t6 = $[9];
834
- }
835
- let t7;
836
- if ($[10] !== t6) {
837
- t7 = /* @__PURE__ */ jsxDEV("span", {
838
- className: "text-xs text-muted-foreground",
839
- children: t6
840
- }, void 0, false);
841
- $[10] = t6;
842
- $[11] = t7;
843
- } else {
844
- t7 = $[11];
845
- }
846
- let t8;
847
- if ($[12] !== t5 || $[13] !== t7) {
848
- t8 = /* @__PURE__ */ jsxDEV("span", {
849
- className: "flex items-baseline gap-1.5",
850
- children: [t5, t7]
851
- }, void 0, true);
852
- $[12] = t5;
853
- $[13] = t7;
854
- $[14] = t8;
855
- } else {
856
- t8 = $[14];
857
- }
858
- const t9 = subs?.totalSubscriptions ?? 0;
859
- let t10;
860
- if ($[15] !== t9) {
861
- t10 = t9.toLocaleString();
862
- $[15] = t9;
863
- $[16] = t10;
864
- } else {
865
- t10 = $[16];
866
- }
867
- let t11;
868
- if ($[17] !== t) {
869
- t11 = t("active subscriptions");
870
- $[17] = t;
871
- $[18] = t11;
872
- } else {
873
- t11 = $[18];
874
- }
875
- let t12;
876
- if ($[19] !== t10 || $[20] !== t11) {
877
- t12 = /* @__PURE__ */ jsxDEV("span", {
878
- className: "text-[11px] text-muted-foreground",
879
- children: [t10, " ", t11]
880
- }, void 0, true);
881
- $[19] = t10;
882
- $[20] = t11;
883
- $[21] = t12;
884
- } else {
885
- t12 = $[21];
886
- }
887
- let t13;
888
- if ($[22] !== t12 || $[23] !== t2 || $[24] !== t8) {
889
- t13 = /* @__PURE__ */ jsxDEV(Card, {
890
- "data-testid": "home-live-connections",
891
- children: /* @__PURE__ */ jsxDEV(CardContent, {
892
- className: "flex flex-col gap-2.5 py-4",
893
- children: [t2, t8, t12]
894
- }, void 0, true)
895
- }, void 0, false);
896
- $[22] = t12;
897
- $[23] = t2;
898
- $[24] = t8;
899
- $[25] = t13;
900
- } else {
901
- t13 = $[25];
902
- }
903
- return t13;
904
- };
905
- const RecentActivityCard = (t0) => {
906
- const $ = c(7);
907
- const {
908
- entries
909
- } = t0;
910
- const t = useT();
911
- let t1;
912
- if ($[0] !== entries || $[1] !== t) {
913
- const now = Date.now();
914
- let t2;
915
- if ($[3] !== t) {
916
- t2 = t("Recent activity");
917
- $[3] = t;
918
- $[4] = t2;
919
- } else {
920
- t2 = $[4];
921
- }
922
- let t3;
923
- if ($[5] !== t2) {
924
- t3 = /* @__PURE__ */ jsxDEV("div", {
925
- className: "border-b border-border px-4 py-3",
926
- children: /* @__PURE__ */ jsxDEV("span", {
927
- className: "font-mono text-[11px] tracking-wide text-muted-foreground uppercase",
928
- children: t2
929
- }, void 0, false)
930
- }, void 0, false);
931
- $[5] = t2;
932
- $[6] = t3;
933
- } else {
934
- t3 = $[6];
935
- }
936
- t1 = /* @__PURE__ */ jsxDEV(Card, {
937
- className: "gap-0 py-0",
938
- "data-testid": "home-recent-activity",
939
- children: [t3, entries.length === 0 ? /* @__PURE__ */ jsxDEV("p", {
940
- className: "px-4 py-8 text-center text-xs text-muted-foreground",
941
- children: t("No recent activity.")
942
- }, void 0, false) : /* @__PURE__ */ jsxDEV("ul", {
943
- className: "divide-y divide-border",
944
- children: entries.slice(0, 5).map((entry) => /* @__PURE__ */ jsxDEV("li", {
945
- className: "flex items-center justify-between gap-3 px-4 py-2 text-[13px]",
946
- children: [/* @__PURE__ */ jsxDEV("span", {
947
- className: "flex min-w-0 items-center gap-2",
948
- children: [/* @__PURE__ */ jsxDEV("span", {
949
- "aria-hidden": "true",
950
- className: "size-1.5 shrink-0 rounded-full bg-muted-foreground/40"
951
- }, void 0, false), /* @__PURE__ */ jsxDEV("span", {
952
- className: "truncate text-foreground",
953
- children: [entry.op, entry.table !== void 0 && /* @__PURE__ */ jsxDEV("span", {
954
- className: "text-muted-foreground",
955
- children: [" · ", entry.table, entry.id === void 0 ? "" : `#${entry.id}`]
956
- }, void 0, true)]
957
- }, void 0, true)]
958
- }, void 0, true), /* @__PURE__ */ jsxDEV("span", {
959
- className: "shrink-0 text-xs tabular-nums text-muted-foreground",
960
- children: relativeTime(entry.ts, now)
961
- }, void 0, false)]
962
- }, entry.seq, true))
963
- }, void 0, false)]
964
- }, void 0, true);
965
- $[0] = entries;
966
- $[1] = t;
967
- $[2] = t1;
968
- } else {
969
- t1 = $[2];
970
- }
971
- return t1;
972
- };
973
- const averageLatencyMs = (functions) => {
974
- const calls = functions.reduce((sum, function_) => sum + function_.calls, 0);
975
- if (calls === 0) {
976
- return null;
977
- }
978
- return functions.reduce((sum, function_) => sum + function_.totalDurationMs, 0) / calls;
979
- };
980
- const HomePanel = (t0) => {
981
- const $ = c(150);
982
- const {
983
- initialShardKey
984
- } = t0;
985
- const t = useT();
986
- const navigate = useNavigate();
987
- const shard = initialShardKey ?? "";
988
- let t1;
989
- if ($[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
990
- t1 = {};
991
- $[0] = t1;
992
- } else {
993
- t1 = $[0];
994
- }
995
- let t2;
996
- if ($[1] !== shard) {
997
- t2 = {
998
- shardKey: shard
999
- };
1000
- $[1] = shard;
1001
- $[2] = t2;
1002
- } else {
1003
- t2 = $[2];
1004
- }
1005
- const metricsQuery = useAdminQuery(ADMIN_FUNCTIONS.getMetrics, t1, t2);
1006
- let t3;
1007
- if ($[3] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
1008
- t3 = {};
1009
- $[3] = t3;
1010
- } else {
1011
- t3 = $[3];
1012
- }
1013
- let t4;
1014
- if ($[4] !== shard) {
1015
- t4 = {
1016
- shardKey: shard
1017
- };
1018
- $[4] = shard;
1019
- $[5] = t4;
1020
- } else {
1021
- t4 = $[5];
1022
- }
1023
- const statsQuery = useAdminQuery(ADMIN_FUNCTIONS.getFunctionStats, t3, t4);
1024
- let t5;
1025
- let t6;
1026
- if ($[6] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
1027
- t5 = {};
1028
- t6 = {
1029
- shardKey: ""
1030
- };
1031
- $[6] = t5;
1032
- $[7] = t6;
1033
- } else {
1034
- t5 = $[6];
1035
- t6 = $[7];
1036
- }
1037
- const auditQuery = useAdminQuery(ADMIN_FUNCTIONS.getSecurityAudit, t5, t6);
1038
- let t7;
1039
- if ($[8] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
1040
- t7 = {};
1041
- $[8] = t7;
1042
- } else {
1043
- t7 = $[8];
1044
- }
1045
- let t8;
1046
- if ($[9] !== shard) {
1047
- t8 = {
1048
- shardKey: shard
1049
- };
1050
- $[9] = shard;
1051
- $[10] = t8;
1052
- } else {
1053
- t8 = $[10];
1054
- }
1055
- const subscriptionsQuery = useAdminQuery(ADMIN_FUNCTIONS.listSubscriptions, t7, t8);
1056
- let t9;
1057
- if ($[11] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
1058
- t9 = {};
1059
- $[11] = t9;
1060
- } else {
1061
- t9 = $[11];
1062
- }
1063
- let t10;
1064
- if ($[12] !== shard) {
1065
- t10 = {
1066
- shardKey: shard
1067
- };
1068
- $[12] = shard;
1069
- $[13] = t10;
1070
- } else {
1071
- t10 = $[13];
1072
- }
1073
- const auditLogQuery = useAdminQuery(ADMIN_FUNCTIONS.getAuditLog, t9, t10);
1074
- const metrics = metricsQuery.data ?? null;
1075
- let T0;
1076
- let activity;
1077
- let cacheHitRate;
1078
- let functions;
1079
- let performanceCount;
1080
- let securityCount;
1081
- let subscriptions;
1082
- let t11;
1083
- let t12;
1084
- let t13;
1085
- let t14;
1086
- let t15;
1087
- let t16;
1088
- let t17;
1089
- let t18;
1090
- let t19;
1091
- let viewPerformance;
1092
- let viewSecurity;
1093
- if ($[14] !== auditLogQuery.data || $[15] !== auditQuery.data || $[16] !== metrics || $[17] !== metricsQuery.data || $[18] !== navigate || $[19] !== statsQuery.data || $[20] !== subscriptionsQuery.data || $[21] !== t) {
1094
- functions = Array.isArray(statsQuery.data?.functions) ? statsQuery.data.functions : [];
1095
- subscriptions = subscriptionsQuery.data ?? null;
1096
- let t202;
1097
- if ($[40] !== auditLogQuery.data) {
1098
- t202 = Array.isArray(auditLogQuery.data?.entries) ? auditLogQuery.data.entries : [];
1099
- $[40] = auditLogQuery.data;
1100
- $[41] = t202;
1101
- } else {
1102
- t202 = $[41];
1103
- }
1104
- activity = t202;
1105
- performanceCount = metricsQuery.data === void 0 || statsQuery.data === void 0 ? null : deriveInsights(metrics, functions).length;
1106
- securityCount = Array.isArray(auditQuery.data?.findings) ? auditQuery.data.findings.length : null;
1107
- let t212;
1108
- if ($[42] !== navigate) {
1109
- t212 = () => {
1110
- fireAndForget(navigate({
1111
- to: "/security"
1112
- }));
1113
- };
1114
- $[42] = navigate;
1115
- $[43] = t212;
1116
- } else {
1117
- t212 = $[43];
1118
- }
1119
- viewSecurity = t212;
1120
- let t222;
1121
- if ($[44] !== navigate) {
1122
- t222 = () => {
1123
- fireAndForget(navigate({
1124
- to: "/insights"
1125
- }));
1126
- };
1127
- $[44] = navigate;
1128
- $[45] = t222;
1129
- } else {
1130
- t222 = $[45];
1131
- }
1132
- viewPerformance = t222;
1133
- const requestSeries = bucketSeries(metrics?.history, "calls");
1134
- const errorSeries = bucketSeries(metrics?.history, "errors");
1135
- const avgLatency = averageLatencyMs(functions);
1136
- const maxLatency = Math.max(0, ...functions.map(_temp3));
1137
- const cache = metrics?.cache;
1138
- let t232;
1139
- if ($[46] !== cache) {
1140
- t232 = cache != null && cache.hits + cache.misses > 0 ? Math.round(cache.hits / (cache.hits + cache.misses) * 100) : null;
1141
- $[46] = cache;
1142
- $[47] = t232;
1143
- } else {
1144
- t232 = $[47];
1145
- }
1146
- cacheHitRate = t232;
1147
- t18 = "flex flex-col gap-6";
1148
- t19 = "lunora-home";
1149
- t14 = "grid gap-3 sm:grid-cols-2 xl:grid-cols-4";
1150
- t15 = "home-health";
1151
- const t242 = seriesDelta(requestSeries);
1152
- let t252;
1153
- if ($[48] !== t) {
1154
- t252 = t("Requests");
1155
- $[48] = t;
1156
- $[49] = t252;
1157
- } else {
1158
- t252 = $[49];
1159
- }
1160
- const t262 = metrics?.requests ?? 0;
1161
- let t272;
1162
- if ($[50] !== t262) {
1163
- t272 = t262.toLocaleString();
1164
- $[50] = t262;
1165
- $[51] = t272;
1166
- } else {
1167
- t272 = $[51];
1168
- }
1169
- if ($[52] !== requestSeries || $[53] !== t242 || $[54] !== t252 || $[55] !== t272) {
1170
- t16 = /* @__PURE__ */ jsxDEV(StatCard, {
1171
- delta: t242,
1172
- label: t252,
1173
- trend: requestSeries,
1174
- value: t272
1175
- }, void 0, false);
1176
- $[52] = requestSeries;
1177
- $[53] = t242;
1178
- $[54] = t252;
1179
- $[55] = t272;
1180
- $[56] = t16;
1181
- } else {
1182
- t16 = $[56];
1183
- }
1184
- const t282 = seriesDelta(errorSeries, false);
1185
- let t292;
1186
- if ($[57] !== t) {
1187
- t292 = t("Errors");
1188
- $[57] = t;
1189
- $[58] = t292;
1190
- } else {
1191
- t292 = $[58];
1192
- }
1193
- const t302 = metrics?.errors ?? 0;
1194
- let t312;
1195
- if ($[59] !== t302) {
1196
- t312 = t302.toLocaleString();
1197
- $[59] = t302;
1198
- $[60] = t312;
1199
- } else {
1200
- t312 = $[60];
1201
- }
1202
- if ($[61] !== errorSeries || $[62] !== t282 || $[63] !== t292 || $[64] !== t312) {
1203
- t17 = /* @__PURE__ */ jsxDEV(StatCard, {
1204
- delta: t282,
1205
- label: t292,
1206
- trend: errorSeries,
1207
- value: t312
1208
- }, void 0, false);
1209
- $[61] = errorSeries;
1210
- $[62] = t282;
1211
- $[63] = t292;
1212
- $[64] = t312;
1213
- $[65] = t17;
1214
- } else {
1215
- t17 = $[65];
1216
- }
1217
- T0 = StatCard;
1218
- if ($[66] !== maxLatency || $[67] !== t) {
1219
- t11 = maxLatency > 0 ? `${t("max")} ${formatMs(maxLatency)}` : void 0;
1220
- $[66] = maxLatency;
1221
- $[67] = t;
1222
- $[68] = t11;
1223
- } else {
1224
- t11 = $[68];
1225
- }
1226
- if ($[69] !== t) {
1227
- t12 = t("Avg latency");
1228
- $[69] = t;
1229
- $[70] = t12;
1230
- } else {
1231
- t12 = $[70];
1232
- }
1233
- t13 = avgLatency === null ? "—" : formatMs(avgLatency);
1234
- $[14] = auditLogQuery.data;
1235
- $[15] = auditQuery.data;
1236
- $[16] = metrics;
1237
- $[17] = metricsQuery.data;
1238
- $[18] = navigate;
1239
- $[19] = statsQuery.data;
1240
- $[20] = subscriptionsQuery.data;
1241
- $[21] = t;
1242
- $[22] = T0;
1243
- $[23] = activity;
1244
- $[24] = cacheHitRate;
1245
- $[25] = functions;
1246
- $[26] = performanceCount;
1247
- $[27] = securityCount;
1248
- $[28] = subscriptions;
1249
- $[29] = t11;
1250
- $[30] = t12;
1251
- $[31] = t13;
1252
- $[32] = t14;
1253
- $[33] = t15;
1254
- $[34] = t16;
1255
- $[35] = t17;
1256
- $[36] = t18;
1257
- $[37] = t19;
1258
- $[38] = viewPerformance;
1259
- $[39] = viewSecurity;
1260
- } else {
1261
- T0 = $[22];
1262
- activity = $[23];
1263
- cacheHitRate = $[24];
1264
- functions = $[25];
1265
- performanceCount = $[26];
1266
- securityCount = $[27];
1267
- subscriptions = $[28];
1268
- t11 = $[29];
1269
- t12 = $[30];
1270
- t13 = $[31];
1271
- t14 = $[32];
1272
- t15 = $[33];
1273
- t16 = $[34];
1274
- t17 = $[35];
1275
- t18 = $[36];
1276
- t19 = $[37];
1277
- viewPerformance = $[38];
1278
- viewSecurity = $[39];
1279
- }
1280
- let t20;
1281
- if ($[71] !== T0 || $[72] !== t11 || $[73] !== t12 || $[74] !== t13) {
1282
- t20 = /* @__PURE__ */ jsxDEV(T0, {
1283
- footer: t11,
1284
- label: t12,
1285
- value: t13
1286
- }, void 0, false);
1287
- $[71] = T0;
1288
- $[72] = t11;
1289
- $[73] = t12;
1290
- $[74] = t13;
1291
- $[75] = t20;
1292
- } else {
1293
- t20 = $[75];
1294
- }
1295
- let t21;
1296
- if ($[76] !== cacheHitRate || $[77] !== t) {
1297
- t21 = cacheHitRate === null ? void 0 : `${String(cacheHitRate)}% ${t("cache hit")}`;
1298
- $[76] = cacheHitRate;
1299
- $[77] = t;
1300
- $[78] = t21;
1301
- } else {
1302
- t21 = $[78];
1303
- }
1304
- let t22;
1305
- if ($[79] !== t) {
1306
- t22 = t("Database size");
1307
- $[79] = t;
1308
- $[80] = t22;
1309
- } else {
1310
- t22 = $[80];
1311
- }
1312
- const t23 = metrics?.databaseSize ?? null;
1313
- let t24;
1314
- if ($[81] !== t23) {
1315
- t24 = formatBytes(t23);
1316
- $[81] = t23;
1317
- $[82] = t24;
1318
- } else {
1319
- t24 = $[82];
1320
- }
1321
- let t25;
1322
- if ($[83] !== t21 || $[84] !== t22 || $[85] !== t24) {
1323
- t25 = /* @__PURE__ */ jsxDEV(StatCard, {
1324
- footer: t21,
1325
- label: t22,
1326
- value: t24
1327
- }, void 0, false);
1328
- $[83] = t21;
1329
- $[84] = t22;
1330
- $[85] = t24;
1331
- $[86] = t25;
1332
- } else {
1333
- t25 = $[86];
1334
- }
1335
- let t26;
1336
- if ($[87] !== t14 || $[88] !== t15 || $[89] !== t16 || $[90] !== t17 || $[91] !== t20 || $[92] !== t25) {
1337
- t26 = /* @__PURE__ */ jsxDEV("div", {
1338
- className: t14,
1339
- "data-testid": t15,
1340
- children: [t16, t17, t20, t25]
1341
- }, void 0, true);
1342
- $[87] = t14;
1343
- $[88] = t15;
1344
- $[89] = t16;
1345
- $[90] = t17;
1346
- $[91] = t20;
1347
- $[92] = t25;
1348
- $[93] = t26;
1349
- } else {
1350
- t26 = $[93];
1351
- }
1352
- let t27;
1353
- if ($[94] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
1354
- t27 = /* @__PURE__ */ jsxDEV(BindingsOverview, {}, void 0, false);
1355
- $[94] = t27;
1356
- } else {
1357
- t27 = $[94];
1358
- }
1359
- let t28;
1360
- if ($[95] !== functions) {
1361
- t28 = /* @__PURE__ */ jsxDEV("div", {
1362
- className: "lg:col-span-2",
1363
- children: /* @__PURE__ */ jsxDEV(TopFunctionsCard, {
1364
- functions
1365
- }, void 0, false)
1366
- }, void 0, false);
1367
- $[95] = functions;
1368
- $[96] = t28;
1369
- } else {
1370
- t28 = $[96];
1371
- }
1372
- let t29;
1373
- if ($[97] !== subscriptions) {
1374
- t29 = /* @__PURE__ */ jsxDEV(LiveConnectionsCard, {
1375
- subs: subscriptions
1376
- }, void 0, false);
1377
- $[97] = subscriptions;
1378
- $[98] = t29;
1379
- } else {
1380
- t29 = $[98];
1381
- }
1382
- let t30;
1383
- if ($[99] !== activity) {
1384
- t30 = /* @__PURE__ */ jsxDEV(RecentActivityCard, {
1385
- entries: activity
1386
- }, void 0, false);
1387
- $[99] = activity;
1388
- $[100] = t30;
1389
- } else {
1390
- t30 = $[100];
1391
- }
1392
- let t31;
1393
- if ($[101] !== t29 || $[102] !== t30) {
1394
- t31 = /* @__PURE__ */ jsxDEV("div", {
1395
- className: "flex flex-col gap-3",
1396
- children: [t29, t30]
1397
- }, void 0, true);
1398
- $[101] = t29;
1399
- $[102] = t30;
1400
- $[103] = t31;
1401
- } else {
1402
- t31 = $[103];
1403
- }
1404
- let t32;
1405
- if ($[104] !== t28 || $[105] !== t31) {
1406
- t32 = /* @__PURE__ */ jsxDEV("div", {
1407
- className: "grid gap-3 lg:grid-cols-3",
1408
- children: [t28, t31]
1409
- }, void 0, true);
1410
- $[104] = t28;
1411
- $[105] = t31;
1412
- $[106] = t32;
1413
- } else {
1414
- t32 = $[106];
1415
- }
1416
- let t33;
1417
- if ($[107] !== t) {
1418
- t33 = t("Advisors");
1419
- $[107] = t;
1420
- $[108] = t33;
1421
- } else {
1422
- t33 = $[108];
1423
- }
1424
- let t34;
1425
- if ($[109] !== t33) {
1426
- t34 = /* @__PURE__ */ jsxDEV("h2", {
1427
- className: "text-sm font-semibold tracking-tight text-foreground",
1428
- children: t33
1429
- }, void 0, false);
1430
- $[109] = t33;
1431
- $[110] = t34;
1432
- } else {
1433
- t34 = $[110];
1434
- }
1435
- let t35;
1436
- if ($[111] !== performanceCount || $[112] !== securityCount || $[113] !== t || $[114] !== viewPerformance || $[115] !== viewSecurity) {
1437
- t35 = securityCount === 0 && performanceCount === 0 ? /* @__PURE__ */ jsxDEV(EmptyState, {
1438
- description: t("No security or performance issues detected."),
1439
- icon: /* @__PURE__ */ jsxDEV("svg", {
1440
- "aria-hidden": "true",
1441
- fill: "none",
1442
- stroke: "currentColor",
1443
- strokeLinecap: "round",
1444
- strokeLinejoin: "round",
1445
- strokeWidth: 1.6,
1446
- viewBox: "0 0 24 24",
1447
- children: [/* @__PURE__ */ jsxDEV("path", {
1448
- d: "M12 3 4 6v5c0 5 3.4 8.5 8 10 4.6-1.5 8-5 8-10V6l-8-3Z"
1449
- }, void 0, false), /* @__PURE__ */ jsxDEV("path", {
1450
- d: "m9 12 2 2 4-4"
1451
- }, void 0, false)]
1452
- }, void 0, true),
1453
- testId: "home-advisors-clear",
1454
- title: t("No issues found")
1455
- }, void 0, false) : /* @__PURE__ */ jsxDEV("div", {
1456
- className: "grid gap-3 sm:grid-cols-2",
1457
- children: [/* @__PURE__ */ jsxDEV(AdvisorCard, {
1458
- count: securityCount,
1459
- onView: viewSecurity,
1460
- testId: "home-security",
1461
- title: t("Security findings")
1462
- }, void 0, false), /* @__PURE__ */ jsxDEV(AdvisorCard, {
1463
- count: performanceCount,
1464
- onView: viewPerformance,
1465
- testId: "home-performance",
1466
- title: t("Performance issues")
1467
- }, void 0, false)]
1468
- }, void 0, true);
1469
- $[111] = performanceCount;
1470
- $[112] = securityCount;
1471
- $[113] = t;
1472
- $[114] = viewPerformance;
1473
- $[115] = viewSecurity;
1474
- $[116] = t35;
1475
- } else {
1476
- t35 = $[116];
1477
- }
1478
- let t36;
1479
- if ($[117] !== t34 || $[118] !== t35) {
1480
- t36 = /* @__PURE__ */ jsxDEV("section", {
1481
- className: "flex flex-col gap-3",
1482
- "data-testid": "home-advisors",
1483
- children: [t34, t35]
1484
- }, void 0, true);
1485
- $[117] = t34;
1486
- $[118] = t35;
1487
- $[119] = t36;
1488
- } else {
1489
- t36 = $[119];
1490
- }
1491
- let t37;
1492
- if ($[120] !== t) {
1493
- t37 = t("Get connected");
1494
- $[120] = t;
1495
- $[121] = t37;
1496
- } else {
1497
- t37 = $[121];
1498
- }
1499
- let t38;
1500
- if ($[122] !== t37) {
1501
- t38 = /* @__PURE__ */ jsxDEV("h2", {
1502
- className: "text-sm font-semibold tracking-tight text-foreground",
1503
- children: t37
1504
- }, void 0, false);
1505
- $[122] = t37;
1506
- $[123] = t38;
1507
- } else {
1508
- t38 = $[123];
1509
- }
1510
- let t39;
1511
- if ($[124] !== t) {
1512
- t39 = t("Client SDK");
1513
- $[124] = t;
1514
- $[125] = t39;
1515
- } else {
1516
- t39 = $[125];
1517
- }
1518
- let t40;
1519
- if ($[126] !== t39) {
1520
- t40 = /* @__PURE__ */ jsxDEV(ConnectCard, {
1521
- command: "npm i @lunora/client",
1522
- label: t39
1523
- }, void 0, false);
1524
- $[126] = t39;
1525
- $[127] = t40;
1526
- } else {
1527
- t40 = $[127];
1528
- }
1529
- let t41;
1530
- if ($[128] !== t) {
1531
- t41 = t("React");
1532
- $[128] = t;
1533
- $[129] = t41;
1534
- } else {
1535
- t41 = $[129];
1536
- }
1537
- let t42;
1538
- if ($[130] !== t41) {
1539
- t42 = /* @__PURE__ */ jsxDEV(ConnectCard, {
1540
- command: "npm i @lunora/react",
1541
- label: t41
1542
- }, void 0, false);
1543
- $[130] = t41;
1544
- $[131] = t42;
1545
- } else {
1546
- t42 = $[131];
1547
- }
1548
- let t43;
1549
- if ($[132] !== t) {
1550
- t43 = t("CLI");
1551
- $[132] = t;
1552
- $[133] = t43;
1553
- } else {
1554
- t43 = $[133];
1555
- }
1556
- let t44;
1557
- if ($[134] !== t43) {
1558
- t44 = /* @__PURE__ */ jsxDEV(ConnectCard, {
1559
- command: "lunora dev",
1560
- label: t43
1561
- }, void 0, false);
1562
- $[134] = t43;
1563
- $[135] = t44;
1564
- } else {
1565
- t44 = $[135];
1566
- }
1567
- let t45;
1568
- if ($[136] !== t40 || $[137] !== t42 || $[138] !== t44) {
1569
- t45 = /* @__PURE__ */ jsxDEV("div", {
1570
- className: "grid gap-3 sm:grid-cols-3",
1571
- children: [t40, t42, t44]
1572
- }, void 0, true);
1573
- $[136] = t40;
1574
- $[137] = t42;
1575
- $[138] = t44;
1576
- $[139] = t45;
1577
- } else {
1578
- t45 = $[139];
1579
- }
1580
- let t46;
1581
- if ($[140] !== t38 || $[141] !== t45) {
1582
- t46 = /* @__PURE__ */ jsxDEV("section", {
1583
- className: "flex flex-col gap-3",
1584
- "data-testid": "home-get-connected",
1585
- children: [t38, t45]
1586
- }, void 0, true);
1587
- $[140] = t38;
1588
- $[141] = t45;
1589
- $[142] = t46;
1590
- } else {
1591
- t46 = $[142];
1592
- }
1593
- let t47;
1594
- if ($[143] !== t18 || $[144] !== t19 || $[145] !== t26 || $[146] !== t32 || $[147] !== t36 || $[148] !== t46) {
1595
- t47 = /* @__PURE__ */ jsxDEV("div", {
1596
- className: t18,
1597
- "data-testid": t19,
1598
- children: [t26, t27, t32, t36, t46]
1599
- }, void 0, true);
1600
- $[143] = t18;
1601
- $[144] = t19;
1602
- $[145] = t26;
1603
- $[146] = t32;
1604
- $[147] = t36;
1605
- $[148] = t46;
1606
- $[149] = t47;
1607
- } else {
1608
- t47 = $[149];
1609
- }
1610
- return t47;
1611
- };
1612
- function _temp(a, b) {
1613
- return b.calls - a.calls;
1614
- }
1615
- function _temp2(function_) {
1616
- return /* @__PURE__ */ jsxDEV("div", {
1617
- className: "grid grid-cols-[1fr_auto_auto_auto] items-center gap-4 px-4 py-2 text-[13px]",
1618
- children: [/* @__PURE__ */ jsxDEV("span", {
1619
- className: "truncate font-mono text-xs text-foreground",
1620
- children: function_.path
1621
- }, void 0, false), /* @__PURE__ */ jsxDEV("span", {
1622
- className: "text-end tabular-nums",
1623
- children: function_.calls.toLocaleString()
1624
- }, void 0, false), /* @__PURE__ */ jsxDEV("span", {
1625
- className: "w-12 text-end tabular-nums text-muted-foreground",
1626
- children: formatMs(function_.calls > 0 ? function_.totalDurationMs / function_.calls : 0)
1627
- }, void 0, false), /* @__PURE__ */ jsxDEV("span", {
1628
- className: cn("w-8 text-end tabular-nums", function_.errors > 0 ? "text-destructive" : "text-muted-foreground"),
1629
- children: function_.errors
1630
- }, void 0, false)]
1631
- }, function_.path, true);
1632
- }
1633
- function _temp3(function_) {
1634
- return function_.maxDurationMs;
1635
- }
1636
-
1637
- export { HomePanel as H, useStudioFeatures as u };