@marinoscar/platform-web 0.0.0-stage → 0.1.0-next.3

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 (356) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/LICENSE +21 -0
  3. package/README.md +96 -2
  4. package/dist/core/api-client.d.ts +112 -0
  5. package/dist/core/api-client.d.ts.map +1 -0
  6. package/dist/core/api-client.js +24 -0
  7. package/dist/core/api-client.js.map +1 -0
  8. package/dist/core/host.d.ts +74 -0
  9. package/dist/core/host.d.ts.map +1 -0
  10. package/dist/core/host.js +84 -0
  11. package/dist/core/host.js.map +1 -0
  12. package/dist/core/index.d.ts +7 -0
  13. package/dist/core/index.d.ts.map +1 -0
  14. package/dist/core/index.js +5 -0
  15. package/dist/core/index.js.map +1 -0
  16. package/dist/core/settings-page.d.ts +47 -0
  17. package/dist/core/settings-page.d.ts.map +1 -0
  18. package/dist/core/settings-page.js +5 -0
  19. package/dist/core/settings-page.js.map +1 -0
  20. package/dist/core/viewer.d.ts +14 -0
  21. package/dist/core/viewer.d.ts.map +1 -0
  22. package/dist/core/viewer.js +4 -0
  23. package/dist/core/viewer.js.map +1 -0
  24. package/dist/doctor/headless/categories.d.ts +31 -0
  25. package/dist/doctor/headless/categories.d.ts.map +1 -0
  26. package/dist/doctor/headless/categories.js +41 -0
  27. package/dist/doctor/headless/categories.js.map +1 -0
  28. package/dist/doctor/headless/client.d.ts +33 -0
  29. package/dist/doctor/headless/client.d.ts.map +1 -0
  30. package/dist/doctor/headless/client.js +31 -0
  31. package/dist/doctor/headless/client.js.map +1 -0
  32. package/dist/doctor/headless/contract.d.ts +18 -0
  33. package/dist/doctor/headless/contract.d.ts.map +1 -0
  34. package/dist/doctor/headless/contract.js +15 -0
  35. package/dist/doctor/headless/contract.js.map +1 -0
  36. package/dist/doctor/headless/index.d.ts +12 -0
  37. package/dist/doctor/headless/index.d.ts.map +1 -0
  38. package/dist/doctor/headless/index.js +8 -0
  39. package/dist/doctor/headless/index.js.map +1 -0
  40. package/dist/doctor/headless/use-doctor.d.ts +36 -0
  41. package/dist/doctor/headless/use-doctor.d.ts.map +1 -0
  42. package/dist/doctor/headless/use-doctor.js +80 -0
  43. package/dist/doctor/headless/use-doctor.js.map +1 -0
  44. package/dist/doctor/headless/use-support-bundle-download.d.ts +68 -0
  45. package/dist/doctor/headless/use-support-bundle-download.d.ts.map +1 -0
  46. package/dist/doctor/headless/use-support-bundle-download.js +135 -0
  47. package/dist/doctor/headless/use-support-bundle-download.js.map +1 -0
  48. package/dist/doctor/internal/relative-time.d.ts +2 -0
  49. package/dist/doctor/internal/relative-time.d.ts.map +1 -0
  50. package/dist/doctor/internal/relative-time.js +29 -0
  51. package/dist/doctor/internal/relative-time.js.map +1 -0
  52. package/dist/doctor/internal/status-colors.d.ts +5 -0
  53. package/dist/doctor/internal/status-colors.d.ts.map +1 -0
  54. package/dist/doctor/internal/status-colors.js +29 -0
  55. package/dist/doctor/internal/status-colors.js.map +1 -0
  56. package/dist/doctor/internal/use-is-mounted.d.ts +2 -0
  57. package/dist/doctor/internal/use-is-mounted.d.ts.map +1 -0
  58. package/dist/doctor/internal/use-is-mounted.js +15 -0
  59. package/dist/doctor/internal/use-is-mounted.js.map +1 -0
  60. package/dist/doctor/ui/check-row.d.ts +54 -0
  61. package/dist/doctor/ui/check-row.d.ts.map +1 -0
  62. package/dist/doctor/ui/check-row.js +100 -0
  63. package/dist/doctor/ui/check-row.js.map +1 -0
  64. package/dist/doctor/ui/copy.d.ts +3 -0
  65. package/dist/doctor/ui/copy.d.ts.map +1 -0
  66. package/dist/doctor/ui/copy.js +6 -0
  67. package/dist/doctor/ui/copy.js.map +1 -0
  68. package/dist/doctor/ui/doctor-page.d.ts +50 -0
  69. package/dist/doctor/ui/doctor-page.d.ts.map +1 -0
  70. package/dist/doctor/ui/doctor-page.js +152 -0
  71. package/dist/doctor/ui/doctor-page.js.map +1 -0
  72. package/dist/doctor/ui/index.d.ts +8 -0
  73. package/dist/doctor/ui/index.d.ts.map +1 -0
  74. package/dist/doctor/ui/index.js +7 -0
  75. package/dist/doctor/ui/index.js.map +1 -0
  76. package/dist/doctor/ui/settings-page.d.ts +20 -0
  77. package/dist/doctor/ui/settings-page.d.ts.map +1 -0
  78. package/dist/doctor/ui/settings-page.js +32 -0
  79. package/dist/doctor/ui/settings-page.js.map +1 -0
  80. package/dist/doctor/ui/support-bundle-button.d.ts +37 -0
  81. package/dist/doctor/ui/support-bundle-button.d.ts.map +1 -0
  82. package/dist/doctor/ui/support-bundle-button.js +39 -0
  83. package/dist/doctor/ui/support-bundle-button.js.map +1 -0
  84. package/dist/index.d.ts +11 -0
  85. package/dist/index.d.ts.map +1 -0
  86. package/dist/index.js +11 -0
  87. package/dist/index.js.map +1 -0
  88. package/dist/telemetry/headless/adapters/TelemetryWebAdapters.d.ts +106 -0
  89. package/dist/telemetry/headless/adapters/TelemetryWebAdapters.d.ts.map +1 -0
  90. package/dist/telemetry/headless/adapters/TelemetryWebAdapters.js +58 -0
  91. package/dist/telemetry/headless/adapters/TelemetryWebAdapters.js.map +1 -0
  92. package/dist/telemetry/headless/context/TelemetryConfigProvider.d.ts +43 -0
  93. package/dist/telemetry/headless/context/TelemetryConfigProvider.d.ts.map +1 -0
  94. package/dist/telemetry/headless/context/TelemetryConfigProvider.js +24 -0
  95. package/dist/telemetry/headless/context/TelemetryConfigProvider.js.map +1 -0
  96. package/dist/telemetry/headless/context/telemetryConfig.d.ts +68 -0
  97. package/dist/telemetry/headless/context/telemetryConfig.d.ts.map +1 -0
  98. package/dist/telemetry/headless/context/telemetryConfig.js +119 -0
  99. package/dist/telemetry/headless/context/telemetryConfig.js.map +1 -0
  100. package/dist/telemetry/headless/guards/RequireTelemetryEnabled.d.ts +35 -0
  101. package/dist/telemetry/headless/guards/RequireTelemetryEnabled.d.ts.map +1 -0
  102. package/dist/telemetry/headless/guards/RequireTelemetryEnabled.js +44 -0
  103. package/dist/telemetry/headless/guards/RequireTelemetryEnabled.js.map +1 -0
  104. package/dist/telemetry/headless/hooks/useTelemetryAdmin.d.ts +40 -0
  105. package/dist/telemetry/headless/hooks/useTelemetryAdmin.d.ts.map +1 -0
  106. package/dist/telemetry/headless/hooks/useTelemetryAdmin.js +111 -0
  107. package/dist/telemetry/headless/hooks/useTelemetryAdmin.js.map +1 -0
  108. package/dist/telemetry/headless/hooks/useTelemetryAssistant.d.ts +120 -0
  109. package/dist/telemetry/headless/hooks/useTelemetryAssistant.d.ts.map +1 -0
  110. package/dist/telemetry/headless/hooks/useTelemetryAssistant.js +185 -0
  111. package/dist/telemetry/headless/hooks/useTelemetryAssistant.js.map +1 -0
  112. package/dist/telemetry/headless/hooks/useTelemetryAssistantAvailable.d.ts +12 -0
  113. package/dist/telemetry/headless/hooks/useTelemetryAssistantAvailable.d.ts.map +1 -0
  114. package/dist/telemetry/headless/hooks/useTelemetryAssistantAvailable.js +36 -0
  115. package/dist/telemetry/headless/hooks/useTelemetryAssistantAvailable.js.map +1 -0
  116. package/dist/telemetry/headless/hooks/useTelemetryConnection.d.ts +46 -0
  117. package/dist/telemetry/headless/hooks/useTelemetryConnection.d.ts.map +1 -0
  118. package/dist/telemetry/headless/hooks/useTelemetryConnection.js +133 -0
  119. package/dist/telemetry/headless/hooks/useTelemetryConnection.js.map +1 -0
  120. package/dist/telemetry/headless/hooks/useTelemetryDashboard.d.ts +147 -0
  121. package/dist/telemetry/headless/hooks/useTelemetryDashboard.d.ts.map +1 -0
  122. package/dist/telemetry/headless/hooks/useTelemetryDashboard.js +231 -0
  123. package/dist/telemetry/headless/hooks/useTelemetryDashboard.js.map +1 -0
  124. package/dist/telemetry/headless/hooks/useTelemetryExplorer.d.ts +95 -0
  125. package/dist/telemetry/headless/hooks/useTelemetryExplorer.d.ts.map +1 -0
  126. package/dist/telemetry/headless/hooks/useTelemetryExplorer.js +197 -0
  127. package/dist/telemetry/headless/hooks/useTelemetryExplorer.js.map +1 -0
  128. package/dist/telemetry/headless/hooks/useTelemetryStack.d.ts +69 -0
  129. package/dist/telemetry/headless/hooks/useTelemetryStack.d.ts.map +1 -0
  130. package/dist/telemetry/headless/hooks/useTelemetryStack.js +129 -0
  131. package/dist/telemetry/headless/hooks/useTelemetryStack.js.map +1 -0
  132. package/dist/telemetry/headless/index.d.ts +34 -0
  133. package/dist/telemetry/headless/index.d.ts.map +1 -0
  134. package/dist/telemetry/headless/index.js +34 -0
  135. package/dist/telemetry/headless/index.js.map +1 -0
  136. package/dist/telemetry/headless/lib/assistantExport.d.ts +12 -0
  137. package/dist/telemetry/headless/lib/assistantExport.d.ts.map +1 -0
  138. package/dist/telemetry/headless/lib/assistantExport.js +116 -0
  139. package/dist/telemetry/headless/lib/assistantExport.js.map +1 -0
  140. package/dist/telemetry/headless/lib/dashboard/assistantPrompt.d.ts +91 -0
  141. package/dist/telemetry/headless/lib/dashboard/assistantPrompt.d.ts.map +1 -0
  142. package/dist/telemetry/headless/lib/dashboard/assistantPrompt.js +246 -0
  143. package/dist/telemetry/headless/lib/dashboard/assistantPrompt.js.map +1 -0
  144. package/dist/telemetry/headless/lib/dashboardState.d.ts +58 -0
  145. package/dist/telemetry/headless/lib/dashboardState.d.ts.map +1 -0
  146. package/dist/telemetry/headless/lib/dashboardState.js +153 -0
  147. package/dist/telemetry/headless/lib/dashboardState.js.map +1 -0
  148. package/dist/telemetry/headless/lib/explorerHandoff.d.ts +62 -0
  149. package/dist/telemetry/headless/lib/explorerHandoff.d.ts.map +1 -0
  150. package/dist/telemetry/headless/lib/explorerHandoff.js +77 -0
  151. package/dist/telemetry/headless/lib/explorerHandoff.js.map +1 -0
  152. package/dist/telemetry/headless/lib/format.d.ts +113 -0
  153. package/dist/telemetry/headless/lib/format.d.ts.map +1 -0
  154. package/dist/telemetry/headless/lib/format.js +280 -0
  155. package/dist/telemetry/headless/lib/format.js.map +1 -0
  156. package/dist/telemetry/headless/lib/metrics/metricSections.d.ts +44 -0
  157. package/dist/telemetry/headless/lib/metrics/metricSections.d.ts.map +1 -0
  158. package/dist/telemetry/headless/lib/metrics/metricSections.js +61 -0
  159. package/dist/telemetry/headless/lib/metrics/metricSections.js.map +1 -0
  160. package/dist/telemetry/headless/lib/metrics/topNPreference.d.ts +15 -0
  161. package/dist/telemetry/headless/lib/metrics/topNPreference.d.ts.map +1 -0
  162. package/dist/telemetry/headless/lib/metrics/topNPreference.js +33 -0
  163. package/dist/telemetry/headless/lib/metrics/topNPreference.js.map +1 -0
  164. package/dist/telemetry/headless/lib/queryHistory.d.ts +20 -0
  165. package/dist/telemetry/headless/lib/queryHistory.d.ts.map +1 -0
  166. package/dist/telemetry/headless/lib/queryHistory.js +53 -0
  167. package/dist/telemetry/headless/lib/queryHistory.js.map +1 -0
  168. package/dist/telemetry/headless/lib/starterQueries.d.ts +48 -0
  169. package/dist/telemetry/headless/lib/starterQueries.d.ts.map +1 -0
  170. package/dist/telemetry/headless/lib/starterQueries.js +84 -0
  171. package/dist/telemetry/headless/lib/starterQueries.js.map +1 -0
  172. package/dist/telemetry/headless/lib/traceLink.d.ts +26 -0
  173. package/dist/telemetry/headless/lib/traceLink.d.ts.map +1 -0
  174. package/dist/telemetry/headless/lib/traceLink.js +32 -0
  175. package/dist/telemetry/headless/lib/traceLink.js.map +1 -0
  176. package/dist/telemetry/headless/lib/unknownRoutes.d.ts +23 -0
  177. package/dist/telemetry/headless/lib/unknownRoutes.d.ts.map +1 -0
  178. package/dist/telemetry/headless/lib/unknownRoutes.js +35 -0
  179. package/dist/telemetry/headless/lib/unknownRoutes.js.map +1 -0
  180. package/dist/telemetry/headless/services/client.d.ts +144 -0
  181. package/dist/telemetry/headless/services/client.d.ts.map +1 -0
  182. package/dist/telemetry/headless/services/client.js +144 -0
  183. package/dist/telemetry/headless/services/client.js.map +1 -0
  184. package/dist/telemetry/headless/services/telemetry.d.ts +483 -0
  185. package/dist/telemetry/headless/services/telemetry.d.ts.map +1 -0
  186. package/dist/telemetry/headless/services/telemetry.js +190 -0
  187. package/dist/telemetry/headless/services/telemetry.js.map +1 -0
  188. package/dist/telemetry/headless/services/telemetryDashboard.d.ts +321 -0
  189. package/dist/telemetry/headless/services/telemetryDashboard.d.ts.map +1 -0
  190. package/dist/telemetry/headless/services/telemetryDashboard.js +103 -0
  191. package/dist/telemetry/headless/services/telemetryDashboard.js.map +1 -0
  192. package/dist/telemetry/internal/useIsMounted.d.ts +9 -0
  193. package/dist/telemetry/internal/useIsMounted.d.ts.map +1 -0
  194. package/dist/telemetry/internal/useIsMounted.js +19 -0
  195. package/dist/telemetry/internal/useIsMounted.js.map +1 -0
  196. package/dist/telemetry/internal/useVisiblePolling.d.ts +55 -0
  197. package/dist/telemetry/internal/useVisiblePolling.d.ts.map +1 -0
  198. package/dist/telemetry/internal/useVisiblePolling.js +96 -0
  199. package/dist/telemetry/internal/useVisiblePolling.js.map +1 -0
  200. package/dist/telemetry/internal/visuallyHidden.d.ts +12 -0
  201. package/dist/telemetry/internal/visuallyHidden.d.ts.map +1 -0
  202. package/dist/telemetry/internal/visuallyHidden.js +15 -0
  203. package/dist/telemetry/internal/visuallyHidden.js.map +1 -0
  204. package/dist/telemetry/theme/augment.d.ts +65 -0
  205. package/dist/telemetry/theme/augment.d.ts.map +1 -0
  206. package/dist/telemetry/theme/augment.js +37 -0
  207. package/dist/telemetry/theme/augment.js.map +1 -0
  208. package/dist/telemetry/theme/telemetryTokens.d.ts +121 -0
  209. package/dist/telemetry/theme/telemetryTokens.d.ts.map +1 -0
  210. package/dist/telemetry/theme/telemetryTokens.js +129 -0
  211. package/dist/telemetry/theme/telemetryTokens.js.map +1 -0
  212. package/dist/telemetry/ui/admin.d.ts +35 -0
  213. package/dist/telemetry/ui/admin.d.ts.map +1 -0
  214. package/dist/telemetry/ui/admin.js +58 -0
  215. package/dist/telemetry/ui/admin.js.map +1 -0
  216. package/dist/telemetry/ui/components/AssistantContainer.d.ts +35 -0
  217. package/dist/telemetry/ui/components/AssistantContainer.d.ts.map +1 -0
  218. package/dist/telemetry/ui/components/AssistantContainer.js +83 -0
  219. package/dist/telemetry/ui/components/AssistantContainer.js.map +1 -0
  220. package/dist/telemetry/ui/components/AssistantPanel.d.ts +22 -0
  221. package/dist/telemetry/ui/components/AssistantPanel.d.ts.map +1 -0
  222. package/dist/telemetry/ui/components/AssistantPanel.js +150 -0
  223. package/dist/telemetry/ui/components/AssistantPanel.js.map +1 -0
  224. package/dist/telemetry/ui/components/AssistantReport.d.ts +13 -0
  225. package/dist/telemetry/ui/components/AssistantReport.d.ts.map +1 -0
  226. package/dist/telemetry/ui/components/AssistantReport.js +89 -0
  227. package/dist/telemetry/ui/components/AssistantReport.js.map +1 -0
  228. package/dist/telemetry/ui/components/AssistantTimeline.d.ts +10 -0
  229. package/dist/telemetry/ui/components/AssistantTimeline.d.ts.map +1 -0
  230. package/dist/telemetry/ui/components/AssistantTimeline.js +84 -0
  231. package/dist/telemetry/ui/components/AssistantTimeline.js.map +1 -0
  232. package/dist/telemetry/ui/components/ResultsGrid.d.ts +10 -0
  233. package/dist/telemetry/ui/components/ResultsGrid.d.ts.map +1 -0
  234. package/dist/telemetry/ui/components/ResultsGrid.js +71 -0
  235. package/dist/telemetry/ui/components/ResultsGrid.js.map +1 -0
  236. package/dist/telemetry/ui/components/SchemaPanel.d.ts +9 -0
  237. package/dist/telemetry/ui/components/SchemaPanel.d.ts.map +1 -0
  238. package/dist/telemetry/ui/components/SchemaPanel.js +42 -0
  239. package/dist/telemetry/ui/components/SchemaPanel.js.map +1 -0
  240. package/dist/telemetry/ui/components/SqlEditor.d.ts +21 -0
  241. package/dist/telemetry/ui/components/SqlEditor.d.ts.map +1 -0
  242. package/dist/telemetry/ui/components/SqlEditor.js +60 -0
  243. package/dist/telemetry/ui/components/SqlEditor.js.map +1 -0
  244. package/dist/telemetry/ui/components/TelemetryConnectionSection.d.ts +14 -0
  245. package/dist/telemetry/ui/components/TelemetryConnectionSection.d.ts.map +1 -0
  246. package/dist/telemetry/ui/components/TelemetryConnectionSection.js +243 -0
  247. package/dist/telemetry/ui/components/TelemetryConnectionSection.js.map +1 -0
  248. package/dist/telemetry/ui/components/TelemetryCrossLink.d.ts +12 -0
  249. package/dist/telemetry/ui/components/TelemetryCrossLink.d.ts.map +1 -0
  250. package/dist/telemetry/ui/components/TelemetryCrossLink.js +21 -0
  251. package/dist/telemetry/ui/components/TelemetryCrossLink.js.map +1 -0
  252. package/dist/telemetry/ui/components/TelemetryServicesSection.d.ts +23 -0
  253. package/dist/telemetry/ui/components/TelemetryServicesSection.d.ts.map +1 -0
  254. package/dist/telemetry/ui/components/TelemetryServicesSection.js +138 -0
  255. package/dist/telemetry/ui/components/TelemetryServicesSection.js.map +1 -0
  256. package/dist/telemetry/ui/components/TelemetrySpinner.d.ts +3 -0
  257. package/dist/telemetry/ui/components/TelemetrySpinner.d.ts.map +1 -0
  258. package/dist/telemetry/ui/components/TelemetrySpinner.js +14 -0
  259. package/dist/telemetry/ui/components/TelemetrySpinner.js.map +1 -0
  260. package/dist/telemetry/ui/components/dashboard/ApiTimelineChart.d.ts +17 -0
  261. package/dist/telemetry/ui/components/dashboard/ApiTimelineChart.d.ts.map +1 -0
  262. package/dist/telemetry/ui/components/dashboard/ApiTimelineChart.js +70 -0
  263. package/dist/telemetry/ui/components/dashboard/ApiTimelineChart.js.map +1 -0
  264. package/dist/telemetry/ui/components/dashboard/DashboardFilterBar.d.ts +39 -0
  265. package/dist/telemetry/ui/components/dashboard/DashboardFilterBar.d.ts.map +1 -0
  266. package/dist/telemetry/ui/components/dashboard/DashboardFilterBar.js +143 -0
  267. package/dist/telemetry/ui/components/dashboard/DashboardFilterBar.js.map +1 -0
  268. package/dist/telemetry/ui/components/dashboard/DashboardPanel.d.ts +58 -0
  269. package/dist/telemetry/ui/components/dashboard/DashboardPanel.d.ts.map +1 -0
  270. package/dist/telemetry/ui/components/dashboard/DashboardPanel.js +62 -0
  271. package/dist/telemetry/ui/components/dashboard/DashboardPanel.js.map +1 -0
  272. package/dist/telemetry/ui/components/dashboard/EventsFeed.d.ts +21 -0
  273. package/dist/telemetry/ui/components/dashboard/EventsFeed.d.ts.map +1 -0
  274. package/dist/telemetry/ui/components/dashboard/EventsFeed.js +96 -0
  275. package/dist/telemetry/ui/components/dashboard/EventsFeed.js.map +1 -0
  276. package/dist/telemetry/ui/components/dashboard/KpiTiles.d.ts +13 -0
  277. package/dist/telemetry/ui/components/dashboard/KpiTiles.d.ts.map +1 -0
  278. package/dist/telemetry/ui/components/dashboard/KpiTiles.js +82 -0
  279. package/dist/telemetry/ui/components/dashboard/KpiTiles.js.map +1 -0
  280. package/dist/telemetry/ui/components/dashboard/LogSeverityChart.d.ts +8 -0
  281. package/dist/telemetry/ui/components/dashboard/LogSeverityChart.d.ts.map +1 -0
  282. package/dist/telemetry/ui/components/dashboard/LogSeverityChart.js +34 -0
  283. package/dist/telemetry/ui/components/dashboard/LogSeverityChart.js.map +1 -0
  284. package/dist/telemetry/ui/components/dashboard/TopProblems.d.ts +19 -0
  285. package/dist/telemetry/ui/components/dashboard/TopProblems.d.ts.map +1 -0
  286. package/dist/telemetry/ui/components/dashboard/TopProblems.js +61 -0
  287. package/dist/telemetry/ui/components/dashboard/TopProblems.js.map +1 -0
  288. package/dist/telemetry/ui/components/dashboard/UnknownRoutesPanel.d.ts +12 -0
  289. package/dist/telemetry/ui/components/dashboard/UnknownRoutesPanel.d.ts.map +1 -0
  290. package/dist/telemetry/ui/components/dashboard/UnknownRoutesPanel.js +36 -0
  291. package/dist/telemetry/ui/components/dashboard/UnknownRoutesPanel.js.map +1 -0
  292. package/dist/telemetry/ui/components/dashboard/VerdictBanner.d.ts +35 -0
  293. package/dist/telemetry/ui/components/dashboard/VerdictBanner.d.ts.map +1 -0
  294. package/dist/telemetry/ui/components/dashboard/VerdictBanner.js +68 -0
  295. package/dist/telemetry/ui/components/dashboard/VerdictBanner.js.map +1 -0
  296. package/dist/telemetry/ui/components/dashboard/ZoomBrush.d.ts +9 -0
  297. package/dist/telemetry/ui/components/dashboard/ZoomBrush.d.ts.map +1 -0
  298. package/dist/telemetry/ui/components/dashboard/ZoomBrush.js +96 -0
  299. package/dist/telemetry/ui/components/dashboard/ZoomBrush.js.map +1 -0
  300. package/dist/telemetry/ui/components/dashboard/metrics/MetricSections.d.ts +75 -0
  301. package/dist/telemetry/ui/components/dashboard/metrics/MetricSections.d.ts.map +1 -0
  302. package/dist/telemetry/ui/components/dashboard/metrics/MetricSections.js +247 -0
  303. package/dist/telemetry/ui/components/dashboard/metrics/MetricSections.js.map +1 -0
  304. package/dist/telemetry/ui/components/dashboard/metrics/MetricSeriesChart.d.ts +19 -0
  305. package/dist/telemetry/ui/components/dashboard/metrics/MetricSeriesChart.d.ts.map +1 -0
  306. package/dist/telemetry/ui/components/dashboard/metrics/MetricSeriesChart.js +64 -0
  307. package/dist/telemetry/ui/components/dashboard/metrics/MetricSeriesChart.js.map +1 -0
  308. package/dist/telemetry/ui/components/dashboard/metrics/MetricTable.d.ts +74 -0
  309. package/dist/telemetry/ui/components/dashboard/metrics/MetricTable.d.ts.map +1 -0
  310. package/dist/telemetry/ui/components/dashboard/metrics/MetricTable.js +126 -0
  311. package/dist/telemetry/ui/components/dashboard/metrics/MetricTable.js.map +1 -0
  312. package/dist/telemetry/ui/components/dashboard/severity.d.ts +43 -0
  313. package/dist/telemetry/ui/components/dashboard/severity.d.ts.map +1 -0
  314. package/dist/telemetry/ui/components/dashboard/severity.js +66 -0
  315. package/dist/telemetry/ui/components/dashboard/severity.js.map +1 -0
  316. package/dist/telemetry/ui/components/dashboard/timelineAxis.d.ts +11 -0
  317. package/dist/telemetry/ui/components/dashboard/timelineAxis.d.ts.map +1 -0
  318. package/dist/telemetry/ui/components/dashboard/timelineAxis.js +20 -0
  319. package/dist/telemetry/ui/components/dashboard/timelineAxis.js.map +1 -0
  320. package/dist/telemetry/ui/dashboard-page.d.ts +2 -0
  321. package/dist/telemetry/ui/dashboard-page.d.ts.map +1 -0
  322. package/dist/telemetry/ui/dashboard-page.js +6 -0
  323. package/dist/telemetry/ui/dashboard-page.js.map +1 -0
  324. package/dist/telemetry/ui/explorer-page.d.ts +2 -0
  325. package/dist/telemetry/ui/explorer-page.d.ts.map +1 -0
  326. package/dist/telemetry/ui/explorer-page.js +6 -0
  327. package/dist/telemetry/ui/explorer-page.js.map +1 -0
  328. package/dist/telemetry/ui/index.d.ts +6 -0
  329. package/dist/telemetry/ui/index.d.ts.map +1 -0
  330. package/dist/telemetry/ui/index.js +10 -0
  331. package/dist/telemetry/ui/index.js.map +1 -0
  332. package/dist/telemetry/ui/pages/TelemetryDashboardPage.d.ts +14 -0
  333. package/dist/telemetry/ui/pages/TelemetryDashboardPage.d.ts.map +1 -0
  334. package/dist/telemetry/ui/pages/TelemetryDashboardPage.js +286 -0
  335. package/dist/telemetry/ui/pages/TelemetryDashboardPage.js.map +1 -0
  336. package/dist/telemetry/ui/pages/TelemetryExplorerPage.d.ts +15 -0
  337. package/dist/telemetry/ui/pages/TelemetryExplorerPage.d.ts.map +1 -0
  338. package/dist/telemetry/ui/pages/TelemetryExplorerPage.js +197 -0
  339. package/dist/telemetry/ui/pages/TelemetryExplorerPage.js.map +1 -0
  340. package/dist/telemetry/ui/pages/TelemetrySettingsPage.d.ts +28 -0
  341. package/dist/telemetry/ui/pages/TelemetrySettingsPage.d.ts.map +1 -0
  342. package/dist/telemetry/ui/pages/TelemetrySettingsPage.js +278 -0
  343. package/dist/telemetry/ui/pages/TelemetrySettingsPage.js.map +1 -0
  344. package/dist/telemetry/ui/settings-page.d.ts +2 -0
  345. package/dist/telemetry/ui/settings-page.d.ts.map +1 -0
  346. package/dist/telemetry/ui/settings-page.js +6 -0
  347. package/dist/telemetry/ui/settings-page.js.map +1 -0
  348. package/dist/testing/index.d.ts +3 -0
  349. package/dist/testing/index.d.ts.map +1 -0
  350. package/dist/testing/index.js +4 -0
  351. package/dist/testing/index.js.map +1 -0
  352. package/dist/testing/test-platform-host.d.ts +108 -0
  353. package/dist/testing/test-platform-host.d.ts.map +1 -0
  354. package/dist/testing/test-platform-host.js +101 -0
  355. package/dist/testing/test-platform-host.js.map +1 -0
  356. package/package.json +132 -4
@@ -0,0 +1,190 @@
1
+ /**
2
+ * Telemetry API client (issue #537, epic #528).
3
+ *
4
+ * The routes this client calls (epic #528):
5
+ *
6
+ * - `GET /telemetry/config` (#534, any signed-in user)
7
+ * - `GET /admin/telemetry/config` (#534, `telemetry:read`)
8
+ * - `PUT /admin/telemetry/config` (#534, `telemetry:write`, If-Match)
9
+ * - `GET /admin/telemetry/status` (#534, `telemetry:read`)
10
+ * - `POST /admin/telemetry/query` (#535, `telemetry:query`)
11
+ * - `GET /admin/telemetry/schema` (#535, `telemetry:query`)
12
+ * - `POST /admin/telemetry/export` (#535, `telemetry:query`)
13
+ * - `POST /admin/telemetry/assistant/stream` (#536, `telemetry:query` + `ai:use`)
14
+ *
15
+ * The browser only presents and collects. Whether a statement is read-only,
16
+ * how many rows it may return and how long it may run are decided by the API;
17
+ * the SQL typed here is sent verbatim and the server's guard is the gate.
18
+ *
19
+ * THE WIRE SHAPES ARE `@marinoscar/platform-contract/telemetry` (#702): the
20
+ * same zod schemas the API's DTOs wrap. This file aliases the contract's types
21
+ * to the names the components already use, and re-exports its zod-free
22
+ * constants. Types are imported with `import type` and values come from the
23
+ * contract's constants module only, so zod never reaches the bundle
24
+ * (`"sideEffects": false`). Where a web type deliberately differs from the
25
+ * wire (looser, for a server ahead of or behind this build, or narrower, for
26
+ * a form), it is derived from the contract type, says why, and
27
+ * `src/__tests__/services/telemetryContract.test.ts` pins the relation.
28
+ */
29
+ import { TELEMETRY_CONNECTION_DEFAULTS, TELEMETRY_CONNECTION_SOURCES, TELEMETRY_EXPORT_FORMATS as TELEMETRY_EXPORT_WIRE_FORMATS, TELEMETRY_INSTANCE_ID_PATTERN, TELEMETRY_LIMITS, TELEMETRY_SQL_MAX_LENGTH, } from '@marinoscar/platform-contract/telemetry';
30
+ import { isPlatformApiError } from '../../../core/index.js';
31
+ /** The bounds of every numeric setting; the settings schema is built from them. */
32
+ export { TELEMETRY_LIMITS };
33
+ /**
34
+ * `telemetry.instanceId`'s pattern: 1-63 characters, lowercase letters,
35
+ * digits, `.`, `_` or `-`, starting with a letter or digit. A convenience for
36
+ * inline feedback — the API is the gate.
37
+ */
38
+ export { TELEMETRY_INSTANCE_ID_PATTERN };
39
+ // =============================================================================
40
+ // GreptimeDB connection (#558)
41
+ // =============================================================================
42
+ //
43
+ // - `GET /admin/telemetry/connection` (`telemetry:read`)
44
+ // - `PUT /admin/telemetry/connection` (`telemetry:write`, If-Match)
45
+ // - `DELETE /admin/telemetry/connection` (`telemetry:write`, If-Match)
46
+ // - `POST /admin/telemetry/connection/test` (`telemetry:write`, always 200)
47
+ //
48
+ // Passwords are WRITE-ONLY: they appear in request bodies and never in a
49
+ // response, which carries only a masked `credentials.<login>` status. Its
50
+ // `version` is the stored connection's own counter — NOT `/config`'s.
51
+ export { TELEMETRY_CONNECTION_SOURCES };
52
+ /** GreptimeDB's Postgres-wire port and database when nothing says otherwise. */
53
+ export { TELEMETRY_CONNECTION_DEFAULTS };
54
+ /**
55
+ * Whether a connection-test probe was skipped rather than run.
56
+ *
57
+ * @param probe - one probe of a {@link TelemetryConnectionTestResult}.
58
+ * @returns `true` for a skipped probe.
59
+ *
60
+ * @stability experimental
61
+ */
62
+ export function isTelemetryProbeSkipped(probe) {
63
+ return 'skipped' in probe && probe.skipped === true;
64
+ }
65
+ /**
66
+ * The longest statement `POST /admin/telemetry/query` accepts. The API
67
+ * enforces it; the browser uses it only to ignore an oversized SQL handoff
68
+ * into the explorer (#579).
69
+ */
70
+ export { TELEMETRY_SQL_MAX_LENGTH };
71
+ /**
72
+ * The export formats in MENU order (CSV, Excel, Parquet, NDJSON), which is
73
+ * not the wire enum's order (`csv, ndjson, xlsx, parquet`): a display list
74
+ * over the contract's `TELEMETRY_EXPORT_FORMATS`, holding exactly its values
75
+ * (pinned in telemetryContract.test.ts).
76
+ *
77
+ * @stability experimental
78
+ */
79
+ export const TELEMETRY_EXPORT_MENU_ORDER = ['csv', 'xlsx', 'parquet', 'ndjson'];
80
+ /**
81
+ * The export menu's formats, in menu order: {@link TELEMETRY_EXPORT_MENU_ORDER}.
82
+ *
83
+ * @stability experimental
84
+ */
85
+ export const TELEMETRY_EXPORT_FORMATS = TELEMETRY_EXPORT_MENU_ORDER;
86
+ /** The wire enum of export formats, in its own order. */
87
+ export { TELEMETRY_EXPORT_WIRE_FORMATS };
88
+ /**
89
+ * The export menu's label of each format.
90
+ *
91
+ * @stability experimental
92
+ */
93
+ export const TELEMETRY_EXPORT_LABELS = {
94
+ csv: 'CSV',
95
+ xlsx: 'Excel (.xlsx)',
96
+ parquet: 'Parquet',
97
+ ndjson: 'NDJSON',
98
+ };
99
+ /**
100
+ * The telemetry REASONS the explorer routes answer with. The envelope's
101
+ * `code` is derived from the HTTP status; the reason is `details.reason`
102
+ * (read it with {@link telemetryErrorReason}).
103
+ *
104
+ * @stability experimental
105
+ */
106
+ export const TELEMETRY_ERROR_REASONS = [
107
+ 'TELEMETRY_NOT_CONFIGURED', // 503
108
+ 'TELEMETRY_UNREACHABLE', // 503
109
+ 'TELEMETRY_DISABLED', // 409
110
+ 'TELEMETRY_QUERY_REJECTED', // 400 — the SQL guard refused it
111
+ 'TELEMETRY_QUERY_FAILED', // 400 — the database reported an error (+ details.sqlState)
112
+ 'TELEMETRY_QUERY_TIMEOUT', // 504 (+ details.timeoutMs)
113
+ 'TELEMETRY_ASSISTANT_DISABLED', // 409
114
+ ];
115
+ /**
116
+ * `details.reason` of a telemetry API error, or `null`.
117
+ *
118
+ * @stability experimental
119
+ */
120
+ export function telemetryErrorReason(err) {
121
+ if (!isPlatformApiError(err))
122
+ return null;
123
+ const details = err.details;
124
+ if (typeof details === 'object' && details !== null && 'reason' in details) {
125
+ const reason = details.reason;
126
+ return typeof reason === 'string' ? reason : null;
127
+ }
128
+ return null;
129
+ }
130
+ /**
131
+ * `telemetry-<timestamp>.<ext>` — what the server's Content-Disposition names it too.
132
+ *
133
+ * @stability experimental
134
+ */
135
+ export function telemetryExportFilename(format, now = new Date()) {
136
+ const stamp = now.toISOString().replace(/[:.]/g, '-');
137
+ return `telemetry-${stamp}.${format}`;
138
+ }
139
+ /**
140
+ * Hand a Blob to the browser as a download (object URL + anchor + revoke).
141
+ *
142
+ * @stability experimental
143
+ */
144
+ export function downloadBlob(blob, filename) {
145
+ if (typeof document === 'undefined' || typeof URL.createObjectURL !== 'function')
146
+ return false;
147
+ const url = URL.createObjectURL(blob);
148
+ try {
149
+ const anchor = document.createElement('a');
150
+ anchor.href = url;
151
+ anchor.download = filename;
152
+ anchor.rel = 'noopener';
153
+ anchor.style.display = 'none';
154
+ document.body.appendChild(anchor);
155
+ anchor.click();
156
+ anchor.remove();
157
+ return true;
158
+ }
159
+ finally {
160
+ // Deferred: revoking synchronously can cancel the download in some browsers.
161
+ setTimeout(() => URL.revokeObjectURL(url), 0);
162
+ }
163
+ }
164
+ /**
165
+ * The filename from a `Content-Disposition` header (`filename*=UTF-8''…` or
166
+ * `filename="…"` / `filename=…`), or `null`. Path separators are stripped.
167
+ *
168
+ * @stability experimental
169
+ */
170
+ export function filenameFromContentDisposition(header) {
171
+ if (!header)
172
+ return null;
173
+ let name = null;
174
+ const extended = /filename\*\s*=\s*(?:UTF-8|utf-8)''([^;]+)/.exec(header);
175
+ if (extended) {
176
+ try {
177
+ name = decodeURIComponent(extended[1].trim().replace(/^"|"$/g, ''));
178
+ }
179
+ catch {
180
+ name = null;
181
+ }
182
+ }
183
+ if (!name) {
184
+ const plain = /filename\s*=\s*("([^"]*)"|[^;]+)/i.exec(header);
185
+ name = plain ? (plain[2] ?? plain[1]).trim() : null;
186
+ }
187
+ const safe = name?.replace(/[/\\]/g, '_').trim();
188
+ return safe ? safe : null;
189
+ }
190
+ //# sourceMappingURL=telemetry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../../../src/telemetry/headless/services/telemetry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,321 @@
1
+ /**
2
+ * Telemetry Dashboard API client — issue #578, epic #576.
3
+ *
4
+ * The wire shapes are `@marinoscar/platform-contract/telemetry` (#702), the
5
+ * same zod schemas `packages/platform-api/src/telemetry/dto/telemetry-dashboard.dto.ts`
6
+ * wraps:
7
+ *
8
+ * - `GET /admin/telemetry/dashboard/summary` (`telemetry:query`)
9
+ * - `GET /admin/telemetry/dashboard/timeseries` (`telemetry:query`, `panel=api|logs`)
10
+ * - `GET /admin/telemetry/dashboard/top` (`telemetry:query`, `kind=routes|errors`)
11
+ * - `GET /admin/telemetry/dashboard/events` (`telemetry:query`)
12
+ * - `GET /admin/telemetry/dashboard/filters` (`telemetry:query`)
13
+ * - `GET /admin/telemetry/dashboard/metrics` (`telemetry:query`, `group=host|database|…`, #601/#602)
14
+ *
15
+ * The browser only presents. The verdict, its reasons, the tiles, what a
16
+ * "route" is and how severities are banded are all decided by the API; the SQL
17
+ * it ran comes back in `sql` so a panel can offer "open in explorer" (#579).
18
+ *
19
+ * This file aliases the contract's types to the names the components use and
20
+ * re-exports its zod-free constants (`import type` and constants only, so zod
21
+ * never reaches the bundle). Where a web type deliberately differs from the
22
+ * wire it is derived from the contract type and says why;
23
+ * `src/__tests__/services/telemetryContract.test.ts` pins each relation.
24
+ */
25
+ import { DASHBOARD_FILTER_VALUE_MAX, DASHBOARD_MAX_SPAN_MS, DASHBOARD_RANGE_MS, DASHBOARD_RANGES, DASHBOARD_SEARCH_MAX_LENGTH, DEFAULT_DASHBOARD_RANGE } from '@marinoscar/platform-contract/telemetry';
26
+ import type { DashboardBucketCount, DashboardEventSeverity, DashboardRange as ContractDashboardRange, DashboardTopKind as ContractDashboardTopKind, DashboardPanel, MetricGroupId, MetricUnit, TelemetryDashboardApiBucket, TelemetryDashboardEnvelope, TelemetryDashboardEvent, TelemetryDashboardEvents, TelemetryDashboardEventsQuery, TelemetryDashboardFilters, TelemetryDashboardLogsBucket, TelemetryDashboardMetricCell, TelemetryDashboardMetricColumn, TelemetryDashboardMetricGroup, TelemetryDashboardMetricPoint, TelemetryDashboardMetrics, TelemetryDashboardMetricSeries, TelemetryDashboardMetricsQuery, TelemetryDashboardMetricTable, TelemetryDashboardQuery, TelemetryDashboardSummary, TelemetryDashboardTile, TelemetryDashboardTimeseries, TelemetryDashboardTop, TelemetryDashboardTopError, TelemetryDashboardTopRoute, TelemetryDashboardUnknownRoute, TelemetryDashboardUnknownRoutes, VerdictLevel } from '@marinoscar/platform-contract/telemetry';
27
+ export { DASHBOARD_RANGES, DEFAULT_DASHBOARD_RANGE, DASHBOARD_RANGE_MS };
28
+ /**
29
+ * A relative dashboard window: `15m`, `1h`, `6h`, `24h` or `7d`.
30
+ *
31
+ * @stability experimental
32
+ */
33
+ export type DashboardRange = ContractDashboardRange;
34
+ /**
35
+ * Display labels of the relative windows (web only).
36
+ *
37
+ * @stability experimental
38
+ */
39
+ export declare const DASHBOARD_RANGE_LABELS: Record<DashboardRange, string>;
40
+ /**
41
+ * The severities `events` filters on (the contract's `DASHBOARD_EVENT_SEVERITIES`).
42
+ *
43
+ * @stability experimental
44
+ */
45
+ export declare const DASHBOARD_SEVERITIES: readonly ["error", "warn", "info"];
46
+ /**
47
+ * A log severity the event panels filter on (`error`, `warn`, `info`).
48
+ *
49
+ * @stability experimental
50
+ */
51
+ export type DashboardSeverity = DashboardEventSeverity;
52
+ /**
53
+ * What the events feed asks for until the user picks (web only; the API's own default is the same).
54
+ *
55
+ * @stability experimental
56
+ */
57
+ export declare const DEFAULT_DASHBOARD_SEVERITIES: DashboardSeverity[];
58
+ /** The longest `q` the events route accepts. */
59
+ export { DASHBOARD_SEARCH_MAX_LENGTH };
60
+ /** The longest absolute window, and the longest filter value, the dashboard routes accept. */
61
+ export { DASHBOARD_MAX_SPAN_MS, DASHBOARD_FILTER_VALUE_MAX };
62
+ /**
63
+ * How many time buckets a timeseries asks for.
64
+ *
65
+ * @stability experimental
66
+ */
67
+ export type DashboardBuckets = DashboardBucketCount;
68
+ /**
69
+ * The query every endpoint shares. `range` XOR `from` + `to`.
70
+ *
71
+ * @stability experimental
72
+ */
73
+ export type DashboardQuery = TelemetryDashboardQuery;
74
+ /**
75
+ * `/metrics` also takes `host` (a value of `/filters` `hosts`). It applies to
76
+ * the collector-scraped tables only, so it is sent to `/metrics` alone.
77
+ * `group` is not part of it: {@link TelemetryClient.getDashboardMetrics} takes it separately.
78
+ *
79
+ * @stability experimental
80
+ */
81
+ export type DashboardMetricsQuery = Omit<TelemetryDashboardMetricsQuery, 'group'>;
82
+ /**
83
+ * The events query. INTENTIONALLY DIFFERENT from the wire: `severity` is a
84
+ * list here, serialised to the wire's comma-separated string by
85
+ * {@link dashboardSearchParams}.
86
+ *
87
+ * @stability experimental
88
+ */
89
+ export type DashboardEventsQuery = Omit<TelemetryDashboardEventsQuery, 'severity'> & {
90
+ /** The severities to include; serialised as a comma-separated list. */
91
+ severity?: DashboardSeverity[];
92
+ };
93
+ /**
94
+ * What every dashboard response except `/metrics` starts with: the resolved window and bucket size, when the store was read, whether a row cap cut a list short, and the statements run.
95
+ *
96
+ * @stability experimental
97
+ */
98
+ export type DashboardEnvelope = TelemetryDashboardEnvelope;
99
+ /**
100
+ * The summary's verdict: `healthy`, `degraded`, `critical` or `no_data`.
101
+ *
102
+ * @stability experimental
103
+ */
104
+ export type DashboardVerdictLevel = VerdictLevel;
105
+ /**
106
+ * A tile. `value` may be a string (`int8`/`numeric`, or a timestamp's ISO text).
107
+ *
108
+ * @stability experimental
109
+ */
110
+ export type DashboardTile = TelemetryDashboardTile;
111
+ /**
112
+ * One unknown API route of the summary (#650): a method + path no route of the running API matches.
113
+ *
114
+ * @stability experimental
115
+ */
116
+ export type DashboardUnknownRoute = TelemetryDashboardUnknownRoute;
117
+ /**
118
+ * Requests to API routes that do not exist (#650). INTENTIONALLY LOOSER than
119
+ * the wire: `sql` is optional so a web build ahead of its API renders (the
120
+ * "Open in Explorer" action is then disabled). The contract's type is
121
+ * assignable to it.
122
+ *
123
+ * @stability experimental
124
+ */
125
+ export type DashboardUnknownRoutes = Omit<TelemetryDashboardUnknownRoutes, 'sql'> & {
126
+ /** The explorer statements behind the block, primary first (a list here). */
127
+ sql?: string[];
128
+ };
129
+ /**
130
+ * `GET …/summary`, with the looser {@link DashboardUnknownRoutes}.
131
+ *
132
+ * @stability experimental
133
+ */
134
+ export type DashboardSummary = Omit<TelemetryDashboardSummary, 'unknownRoutes'> & {
135
+ /** #650. Absent when the store cannot tell unknown routes apart yet: unknown, not zero. */
136
+ unknownRoutes?: DashboardUnknownRoutes;
137
+ };
138
+ /**
139
+ * One API timeline bucket: request counts by status class and latency.
140
+ *
141
+ * @stability experimental
142
+ */
143
+ export type DashboardApiBucket = TelemetryDashboardApiBucket;
144
+ /**
145
+ * One log timeline bucket: record counts by severity.
146
+ *
147
+ * @stability experimental
148
+ */
149
+ export type DashboardLogsBucket = TelemetryDashboardLogsBucket;
150
+ /**
151
+ * `GET …/timeseries?panel=api`. INTENTIONALLY NARROWER than the wire (whose
152
+ * `buckets` is a union for either panel): the panel requested decides the
153
+ * bucket shape. Assignable to the contract's type.
154
+ *
155
+ * @stability experimental
156
+ */
157
+ export type DashboardApiTimeseries = Omit<TelemetryDashboardTimeseries, 'panel' | 'buckets'> & {
158
+ /** The API timeline. */
159
+ panel: 'api';
160
+ /** The API buckets, oldest first. */
161
+ buckets: DashboardApiBucket[];
162
+ };
163
+ /**
164
+ * `GET …/timeseries?panel=logs`; narrowed like {@link DashboardApiTimeseries}.
165
+ *
166
+ * @stability experimental
167
+ */
168
+ export type DashboardLogsTimeseries = Omit<TelemetryDashboardTimeseries, 'panel' | 'buckets'> & {
169
+ /** The log timeline. */
170
+ panel: 'logs';
171
+ /** The log buckets, oldest first. */
172
+ buckets: DashboardLogsBucket[];
173
+ };
174
+ /**
175
+ * Which timeline `GET …/timeseries` draws: `api` or `logs`.
176
+ *
177
+ * @stability experimental
178
+ */
179
+ export type DashboardTimeseriesPanel = DashboardPanel;
180
+ /**
181
+ * The `GET …/timeseries` answer for `panel`: {@link DashboardApiTimeseries} or {@link DashboardLogsTimeseries}.
182
+ *
183
+ * @stability experimental
184
+ */
185
+ export type DashboardTimeseries<P extends DashboardTimeseriesPanel> = P extends 'api' ? DashboardApiTimeseries : DashboardLogsTimeseries;
186
+ /**
187
+ * One route of `top?kind=routes`. INTENTIONALLY LOOSER than the wire:
188
+ * `clientErrors`, `unknownRequests` and `unknown` (#650) are optional so a web
189
+ * build ahead of its API renders; the API always sends them. The contract's
190
+ * type is assignable to it.
191
+ *
192
+ * @stability experimental
193
+ */
194
+ export type DashboardTopRoute = Omit<TelemetryDashboardTopRoute, 'clientErrors' | 'unknownRequests' | 'unknown'> & Partial<Pick<TelemetryDashboardTopRoute, 'clientErrors' | 'unknownRequests' | 'unknown'>>;
195
+ /**
196
+ * One row of the top failing errors.
197
+ *
198
+ * @stability experimental
199
+ */
200
+ export type DashboardTopError = TelemetryDashboardTopError;
201
+ /**
202
+ * Which list `GET …/top` returns: `routes` or `errors`.
203
+ *
204
+ * @stability experimental
205
+ */
206
+ export type DashboardTopKind = ContractDashboardTopKind;
207
+ /**
208
+ * `GET …/top?kind=routes`; narrowed like {@link DashboardApiTimeseries}.
209
+ *
210
+ * @stability experimental
211
+ */
212
+ export type DashboardTopRoutes = Omit<TelemetryDashboardTop, 'kind' | 'items'> & {
213
+ /** The top failing routes. */
214
+ kind: 'routes';
215
+ /** The routes, worst first. */
216
+ items: DashboardTopRoute[];
217
+ };
218
+ /**
219
+ * `GET …/top?kind=errors`; narrowed like {@link DashboardApiTimeseries}.
220
+ *
221
+ * @stability experimental
222
+ */
223
+ export type DashboardTopErrors = Omit<TelemetryDashboardTop, 'kind' | 'items'> & {
224
+ /** The top errors. */
225
+ kind: 'errors';
226
+ /** The errors, most frequent first. */
227
+ items: DashboardTopError[];
228
+ };
229
+ /**
230
+ * The `GET …/top` answer for `kind`: {@link DashboardTopRoutes} or {@link DashboardTopErrors}.
231
+ *
232
+ * @stability experimental
233
+ */
234
+ export type DashboardTop<K extends DashboardTopKind> = K extends 'routes' ? DashboardTopRoutes : DashboardTopErrors;
235
+ /**
236
+ * One log event. `severity` is lower-case text (`error`, `warn`, `info`, `debug`, …).
237
+ *
238
+ * @stability experimental
239
+ */
240
+ export type DashboardEvent = TelemetryDashboardEvent;
241
+ /**
242
+ * `GET …/events`: a page of log and span events, newest first, with the next cursor.
243
+ *
244
+ * @stability experimental
245
+ */
246
+ export type DashboardEvents = TelemetryDashboardEvents;
247
+ /**
248
+ * `GET …/filters`: the services, instances and hosts seen in the window (the filter bar's choices).
249
+ *
250
+ * @stability experimental
251
+ */
252
+ export type DashboardFilters = TelemetryDashboardFilters;
253
+ /**
254
+ * A metric group id, as `/metric-groups` lists it (#680): the platform's six
255
+ * (`host`, `database`, `queue`, `nodes`, `uptime`, `pipeline`) and any the
256
+ * application registers. The page renders whatever the API lists.
257
+ *
258
+ * @stability experimental
259
+ */
260
+ export type DashboardMetricGroup = MetricGroupId;
261
+ /**
262
+ * One entry of `GET …/metric-groups` (#680): a dashboard section, in `order`.
263
+ *
264
+ * @stability experimental
265
+ */
266
+ export type DashboardMetricGroupMeta = TelemetryDashboardMetricGroup;
267
+ /**
268
+ * The display unit of a tile, series or table column (the contract's `METRIC_UNITS`).
269
+ *
270
+ * @stability experimental
271
+ */
272
+ export type DashboardMetricUnit = MetricUnit;
273
+ /**
274
+ * One point of a metric series: a bucket start and its value.
275
+ *
276
+ * @stability experimental
277
+ */
278
+ export type DashboardMetricPoint = TelemetryDashboardMetricPoint;
279
+ /**
280
+ * One metric line: its key, label, unit and points (optionally one per `groupBy` value).
281
+ *
282
+ * @stability experimental
283
+ */
284
+ export type DashboardMetricSeries = TelemetryDashboardMetricSeries;
285
+ /**
286
+ * One column of a metric table: key, label and unit.
287
+ *
288
+ * @stability experimental
289
+ */
290
+ export type DashboardMetricColumn = TelemetryDashboardMetricColumn;
291
+ /**
292
+ * One cell of a metric table row (a number, a string, a boolean or `null`).
293
+ *
294
+ * @stability experimental
295
+ */
296
+ export type DashboardMetricCell = TelemetryDashboardMetricCell;
297
+ /**
298
+ * One metric table: columns and rows (for example disks, or databases).
299
+ *
300
+ * @stability experimental
301
+ */
302
+ export type DashboardMetricTable = TelemetryDashboardMetricTable;
303
+ /**
304
+ * `GET …/metrics?group=…`: one metric group's tiles, series and tables.
305
+ *
306
+ * @stability experimental
307
+ */
308
+ export type DashboardMetrics = TelemetryDashboardMetrics;
309
+ /**
310
+ * Serialise a dashboard query. Absent values are left out, never sent empty.
311
+ *
312
+ * @stability experimental
313
+ */
314
+ export declare function dashboardSearchParams(query: DashboardQuery & Partial<Pick<DashboardEventsQuery, 'severity' | 'q' | 'cursor'>> & Partial<Pick<DashboardMetricsQuery, 'host'>>, extra?: Record<string, string>): URLSearchParams;
315
+ /**
316
+ * `sql` as a list, primary first — what a panel's actions (#579) receive.
317
+ *
318
+ * @stability experimental
319
+ */
320
+ export declare function sqlList(sql: string | string[] | undefined | null): string[];
321
+ //# sourceMappingURL=telemetryDashboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetryDashboard.d.ts","sourceRoot":"","sources":["../../../../src/telemetry/headless/services/telemetryDashboard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Telemetry Dashboard API client — issue #578, epic #576.
3
+ *
4
+ * The wire shapes are `@marinoscar/platform-contract/telemetry` (#702), the
5
+ * same zod schemas `packages/platform-api/src/telemetry/dto/telemetry-dashboard.dto.ts`
6
+ * wraps:
7
+ *
8
+ * - `GET /admin/telemetry/dashboard/summary` (`telemetry:query`)
9
+ * - `GET /admin/telemetry/dashboard/timeseries` (`telemetry:query`, `panel=api|logs`)
10
+ * - `GET /admin/telemetry/dashboard/top` (`telemetry:query`, `kind=routes|errors`)
11
+ * - `GET /admin/telemetry/dashboard/events` (`telemetry:query`)
12
+ * - `GET /admin/telemetry/dashboard/filters` (`telemetry:query`)
13
+ * - `GET /admin/telemetry/dashboard/metrics` (`telemetry:query`, `group=host|database|…`, #601/#602)
14
+ *
15
+ * The browser only presents. The verdict, its reasons, the tiles, what a
16
+ * "route" is and how severities are banded are all decided by the API; the SQL
17
+ * it ran comes back in `sql` so a panel can offer "open in explorer" (#579).
18
+ *
19
+ * This file aliases the contract's types to the names the components use and
20
+ * re-exports its zod-free constants (`import type` and constants only, so zod
21
+ * never reaches the bundle). Where a web type deliberately differs from the
22
+ * wire it is derived from the contract type and says why;
23
+ * `src/__tests__/services/telemetryContract.test.ts` pins each relation.
24
+ */
25
+ import { DASHBOARD_EVENT_SEVERITIES, DASHBOARD_FILTER_VALUE_MAX, DASHBOARD_MAX_SPAN_MS, DASHBOARD_RANGE_MS, DASHBOARD_RANGES, DASHBOARD_SEARCH_MAX_LENGTH, DEFAULT_DASHBOARD_RANGE, } from '@marinoscar/platform-contract/telemetry';
26
+ // =============================================================================
27
+ // Request
28
+ // =============================================================================
29
+ export { DASHBOARD_RANGES, DEFAULT_DASHBOARD_RANGE, DASHBOARD_RANGE_MS };
30
+ /**
31
+ * Display labels of the relative windows (web only).
32
+ *
33
+ * @stability experimental
34
+ */
35
+ export const DASHBOARD_RANGE_LABELS = {
36
+ '15m': 'Last 15 minutes',
37
+ '1h': 'Last hour',
38
+ '6h': 'Last 6 hours',
39
+ '24h': 'Last 24 hours',
40
+ '7d': 'Last 7 days',
41
+ };
42
+ /**
43
+ * The severities `events` filters on (the contract's `DASHBOARD_EVENT_SEVERITIES`).
44
+ *
45
+ * @stability experimental
46
+ */
47
+ export const DASHBOARD_SEVERITIES = DASHBOARD_EVENT_SEVERITIES;
48
+ /**
49
+ * What the events feed asks for until the user picks (web only; the API's own default is the same).
50
+ *
51
+ * @stability experimental
52
+ */
53
+ export const DEFAULT_DASHBOARD_SEVERITIES = ['error', 'warn'];
54
+ /** The longest `q` the events route accepts. */
55
+ export { DASHBOARD_SEARCH_MAX_LENGTH };
56
+ /** The longest absolute window, and the longest filter value, the dashboard routes accept. */
57
+ export { DASHBOARD_MAX_SPAN_MS, DASHBOARD_FILTER_VALUE_MAX };
58
+ // =============================================================================
59
+ // Calls
60
+ // =============================================================================
61
+ /**
62
+ * Serialise a dashboard query. Absent values are left out, never sent empty.
63
+ *
64
+ * @stability experimental
65
+ */
66
+ export function dashboardSearchParams(query, extra = {}) {
67
+ const params = new URLSearchParams();
68
+ for (const [key, value] of Object.entries(extra))
69
+ params.set(key, value);
70
+ if (query.from && query.to) {
71
+ params.set('from', query.from);
72
+ params.set('to', query.to);
73
+ }
74
+ else if (query.range) {
75
+ params.set('range', query.range);
76
+ }
77
+ if (query.service)
78
+ params.set('service', query.service);
79
+ if (query.instance)
80
+ params.set('instance', query.instance);
81
+ if (query.host)
82
+ params.set('host', query.host);
83
+ if (query.buckets)
84
+ params.set('buckets', query.buckets);
85
+ if (query.severity && query.severity.length > 0)
86
+ params.set('severity', query.severity.join(','));
87
+ if (query.q)
88
+ params.set('q', query.q);
89
+ if (query.cursor)
90
+ params.set('cursor', query.cursor);
91
+ return params;
92
+ }
93
+ /**
94
+ * `sql` as a list, primary first — what a panel's actions (#579) receive.
95
+ *
96
+ * @stability experimental
97
+ */
98
+ export function sqlList(sql) {
99
+ if (!sql)
100
+ return [];
101
+ return (Array.isArray(sql) ? sql : [sql]).filter((statement) => statement.trim() !== '');
102
+ }
103
+ //# sourceMappingURL=telemetryDashboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetryDashboard.js","sourceRoot":"","sources":["../../../../src/telemetry/headless/services/telemetryDashboard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Returns a stable getter for "is this component still mounted?".
3
+ *
4
+ * Used to guard `setState` in the tail of an async operation. A ref rather
5
+ * than state, and a getter rather than the ref itself, so callers can hold it
6
+ * in a `useCallback` dependency list without invalidating on every render.
7
+ */
8
+ export declare function useIsMounted(): () => boolean;
9
+ //# sourceMappingURL=useIsMounted.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIsMounted.d.ts","sourceRoot":"","sources":["../../../src/telemetry/internal/useIsMounted.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,wBAAgB,YAAY,IAAI,MAAM,OAAO,CAW5C"}
@@ -0,0 +1,19 @@
1
+ import { useCallback, useEffect, useRef } from 'react';
2
+ /**
3
+ * Returns a stable getter for "is this component still mounted?".
4
+ *
5
+ * Used to guard `setState` in the tail of an async operation. A ref rather
6
+ * than state, and a getter rather than the ref itself, so callers can hold it
7
+ * in a `useCallback` dependency list without invalidating on every render.
8
+ */
9
+ export function useIsMounted() {
10
+ const mounted = useRef(true);
11
+ useEffect(() => {
12
+ mounted.current = true;
13
+ return () => {
14
+ mounted.current = false;
15
+ };
16
+ }, []);
17
+ return useCallback(() => mounted.current, []);
18
+ }
19
+ //# sourceMappingURL=useIsMounted.js.map