adonisjs-server-stats 1.12.3 → 1.14.0

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 (168) hide show
  1. package/README.md +11 -6
  2. package/dist/configure.js +6 -1
  3. package/dist/core/collectors/collector.d.ts +83 -0
  4. package/dist/core/core/types.d.ts +186 -0
  5. package/dist/core/debug/types.d.ts +467 -0
  6. package/dist/core/index.js +184 -169
  7. package/dist/core/types.d.ts +855 -167
  8. package/dist/react/{CacheSection-CX2duJuc.js → CacheSection-DkLtukWz.js} +1 -1
  9. package/dist/react/{CacheTab-CgT4t0oZ.js → CacheTab-DWeXnEBI.js} +51 -46
  10. package/dist/react/ConfigContent-Bwvfl_G7.js +350 -0
  11. package/dist/react/{ConfigSection-Dt0FyeaW.js → ConfigSection-DaVbFPDg.js} +2 -2
  12. package/dist/react/{ConfigTab-KtiTtsrj.js → ConfigTab-D4640WJZ.js} +2 -2
  13. package/dist/react/{CustomPaneTab-15QoEplP.js → CustomPaneTab-DglmAVMC.js} +1 -1
  14. package/dist/react/{EmailsSection-YcJYR5eA.js → EmailsSection-vYx6ExTb.js} +1 -1
  15. package/dist/react/{EmailsTab-CUjubln_.js → EmailsTab-DKDrRmRH.js} +54 -49
  16. package/dist/react/{EventsSection-GGPoYSNv.js → EventsSection-CapH5xut.js} +1 -1
  17. package/dist/react/{EventsTab-Wdwr0_ny.js → EventsTab-BNVEySAm.js} +1 -1
  18. package/dist/react/{InternalsContent-BNOnSoi9.js → InternalsContent-C9lIA92C.js} +1 -1
  19. package/dist/react/{InternalsSection-BwrTfpjA.js → InternalsSection-lOv_UcSV.js} +1 -1
  20. package/dist/react/{InternalsTab--RD-L1dX.js → InternalsTab-BygoSorC.js} +1 -1
  21. package/dist/react/{JobsSection-BqqIh_DR.js → JobsSection-ZIQsJWid.js} +1 -1
  22. package/dist/react/{JobsTab-CBrU-ryL.js → JobsTab-DXQzXrDt.js} +1 -1
  23. package/dist/react/{LogEntryRow-BOrRkhRU.js → LogEntryRow-BWkHE51-.js} +1 -1
  24. package/dist/react/{LogsSection-Cm_lphM6.js → LogsSection-ConXdBkL.js} +2 -2
  25. package/dist/react/LogsTab-CJM47LPn.js +82 -0
  26. package/dist/react/{OverviewSection-XF7bakyM.js → OverviewSection-DOMu2qvl.js} +131 -131
  27. package/dist/react/{QueriesSection-DsQBKrNK.js → QueriesSection-DFsaOSJI.js} +1 -1
  28. package/dist/react/{QueriesTab-CxCC1GVq.js → QueriesTab-CY9CG_7L.js} +1 -1
  29. package/dist/react/RequestsSection-CC-eVHsl.js +326 -0
  30. package/dist/react/{RoutesSection-D0y5JQP4.js → RoutesSection-p1DMq41y.js} +1 -1
  31. package/dist/react/{RoutesTab-Y_alJVMV.js → RoutesTab-Cnqy8UcK.js} +1 -1
  32. package/dist/react/{SplitPaneWrapper-CZl1ouIT.js → SplitPaneWrapper-XgkA0QxE.js} +1 -1
  33. package/dist/react/{TimelineTab-HyqZpfbp.js → TimelineTab-1YOERxe5.js} +3 -3
  34. package/dist/react/index-DOSlCpZ9.js +1159 -0
  35. package/dist/react/index.js +1 -1
  36. package/dist/react/useApiClient-CtEG7rHs.js +11 -0
  37. package/dist/src/collectors/adonisjs_queue_collector.d.ts +21 -0
  38. package/dist/src/collectors/adonisjs_queue_collector.js +61 -0
  39. package/dist/src/collectors/auto_detect.js +8 -2
  40. package/dist/src/collectors/index.d.ts +2 -0
  41. package/dist/src/collectors/index.js +1 -0
  42. package/dist/src/collectors/queue_collector.js +22 -6
  43. package/dist/src/config/deprecation_migration.js +11 -0
  44. package/dist/src/dashboard/cache_handlers.js +22 -2
  45. package/dist/src/dashboard/flush_manager.d.ts +2 -0
  46. package/dist/src/dashboard/flush_manager.js +17 -0
  47. package/dist/src/dashboard/inspector_manager.d.ts +4 -4
  48. package/dist/src/dashboard/inspector_manager.js +20 -10
  49. package/dist/src/dashboard/integrations/adonisjs_queue_inspector.d.ts +42 -0
  50. package/dist/src/dashboard/integrations/adonisjs_queue_inspector.js +135 -0
  51. package/dist/src/dashboard/integrations/adonisjs_queue_store.d.ts +166 -0
  52. package/dist/src/dashboard/integrations/adonisjs_queue_store.js +629 -0
  53. package/dist/src/dashboard/integrations/config_inspector.d.ts +0 -1
  54. package/dist/src/dashboard/integrations/config_inspector.js +4 -2
  55. package/dist/src/dashboard/integrations/index.d.ts +4 -1
  56. package/dist/src/dashboard/integrations/index.js +2 -0
  57. package/dist/src/dashboard/integrations/queue_inspector.d.ts +5 -61
  58. package/dist/src/dashboard/integrations/queue_inspector.js +5 -1
  59. package/dist/src/dashboard/integrations/queue_inspector_contract.d.ts +73 -0
  60. package/dist/src/dashboard/integrations/queue_inspector_contract.js +15 -0
  61. package/dist/src/dashboard/paginate_helper.d.ts +5 -0
  62. package/dist/src/dashboard/paginate_helper.js +16 -4
  63. package/dist/src/dashboard/query_explain_handler.d.ts +6 -1
  64. package/dist/src/dashboard/query_explain_handler.js +12 -2
  65. package/dist/src/dashboard/write_queue.d.ts +13 -0
  66. package/dist/src/dashboard/write_queue.js +34 -2
  67. package/dist/src/debug/debug_store.js +8 -1
  68. package/dist/src/debug/event_collector.js +4 -0
  69. package/dist/src/debug/query_collector.js +2 -0
  70. package/dist/src/debug/ring_buffer.js +8 -1
  71. package/dist/src/debug/trace_collector.js +34 -10
  72. package/dist/src/debug/types.d.ts +2 -0
  73. package/dist/src/define_config.js +1 -0
  74. package/dist/src/edge/client/dashboard.js +2 -2
  75. package/dist/src/edge/client/debug-panel-deferred.js +1 -1
  76. package/dist/src/edge/client/stats-bar.js +1 -1
  77. package/dist/src/edge/client-vue/dashboard.js +5 -5
  78. package/dist/src/edge/client-vue/debug-panel-deferred.js +2 -2
  79. package/dist/src/engine/request_metrics.js +8 -10
  80. package/dist/src/log_stream/log_stream_service.d.ts +1 -0
  81. package/dist/src/log_stream/log_stream_service.js +7 -5
  82. package/dist/src/prometheus/prometheus_collector.d.ts +9 -0
  83. package/dist/src/prometheus/prometheus_collector.js +11 -0
  84. package/dist/src/provider/dashboard_init.js +15 -0
  85. package/dist/src/provider/dashboard_setup.js +9 -2
  86. package/dist/src/provider/email_bridge.d.ts +14 -3
  87. package/dist/src/provider/email_bridge.js +25 -3
  88. package/dist/src/provider/email_helpers.d.ts +9 -1
  89. package/dist/src/provider/email_helpers.js +32 -4
  90. package/dist/src/provider/pino_hook.d.ts +8 -0
  91. package/dist/src/provider/pino_hook.js +19 -1
  92. package/dist/src/provider/provider_helpers_extra.d.ts +2 -0
  93. package/dist/src/provider/provider_helpers_extra.js +17 -2
  94. package/dist/src/provider/server_stats_provider.js +19 -1
  95. package/dist/src/provider/shutdown_helpers.js +2 -0
  96. package/dist/src/provider/toolbar_setup.js +32 -17
  97. package/dist/src/routes/dashboard_routes.js +96 -62
  98. package/dist/src/routes/debug_routes.js +45 -35
  99. package/dist/src/routes/no_session_middleware.d.ts +6 -3
  100. package/dist/src/routes/no_session_middleware.js +7 -3
  101. package/dist/src/routes/register_routes.d.ts +8 -0
  102. package/dist/src/routes/register_routes.js +19 -0
  103. package/dist/src/types.d.ts +31 -0
  104. package/dist/src/utils/app_import.js +12 -4
  105. package/dist/vue/CacheSection-CxEBVVkF.js +156 -0
  106. package/dist/vue/ConfigSection-BiRAiaHj.js +415 -0
  107. package/dist/vue/EmailsSection-Dl44qyqY.js +208 -0
  108. package/dist/vue/{EmailsTab-CwIF1fik.js → EmailsTab-Diya54CP.js} +6 -5
  109. package/dist/vue/{EventsSection-BpgkWIwM.js → EventsSection-CWjeitjU.js} +1 -1
  110. package/dist/vue/{InternalsTab-521fxYYj.js → InternalsTab-Z3c82glB.js} +15 -15
  111. package/dist/vue/{JobsSection-DrghFEKL.js → JobsSection-DOBb4LjZ.js} +1 -1
  112. package/dist/vue/LogsSection-CXx-HOWJ.js +260 -0
  113. package/dist/vue/{OverviewSection-BAgZTPjY.js → OverviewSection-CyfNQ8uV.js} +318 -302
  114. package/dist/vue/{QueriesSection-CUpwhp7u.js → QueriesSection-CXBsFp-y.js} +1 -1
  115. package/dist/vue/{RequestsSection-D8P2xpF2.js → RequestsSection-YTIaZGZd.js} +151 -145
  116. package/dist/vue/{RoutesSection-0qB81hTT.js → RoutesSection-CDKMey49.js} +1 -1
  117. package/dist/vue/composables/useApiClient.d.ts +8 -1
  118. package/dist/vue/index-14x39RI_.js +1239 -0
  119. package/dist/vue/index.js +1 -1
  120. package/dist/vue/style.css +1 -1
  121. package/package.json +16 -3
  122. package/dist/react/ConfigContent-CnsEI4j3.js +0 -397
  123. package/dist/react/LogsTab-jKwv9G7Q.js +0 -79
  124. package/dist/react/RequestsSection-D8cMbZU0.js +0 -321
  125. package/dist/react/index-CsprmgzI.js +0 -1121
  126. package/dist/react/useApiClient-BVtNCmnL.js +0 -9
  127. package/dist/vue/CacheSection-DRqV3YX2.js +0 -149
  128. package/dist/vue/ConfigSection-C6pQCHAL.js +0 -576
  129. package/dist/vue/EmailsSection-BTNw3ZU2.js +0 -206
  130. package/dist/vue/LogsSection-BDxx9Bfi.js +0 -258
  131. package/dist/vue/index-30jLw-_w.js +0 -1232
  132. /package/dist/core/{api-client.d.ts → core/api-client.d.ts} +0 -0
  133. /package/dist/core/{config-utils.d.ts → core/config-utils.d.ts} +0 -0
  134. /package/dist/core/{constants.d.ts → core/constants.d.ts} +0 -0
  135. /package/dist/core/{dashboard-api.d.ts → core/dashboard-api.d.ts} +0 -0
  136. /package/dist/core/{dashboard-data-controller.d.ts → core/dashboard-data-controller.d.ts} +0 -0
  137. /package/dist/core/{dashboard-data-helpers.d.ts → core/dashboard-data-helpers.d.ts} +0 -0
  138. /package/dist/core/{debug-data-controller.d.ts → core/debug-data-controller.d.ts} +0 -0
  139. /package/dist/core/{define-config-helpers.d.ts → core/define-config-helpers.d.ts} +0 -0
  140. /package/dist/core/{explain-utils.d.ts → core/explain-utils.d.ts} +0 -0
  141. /package/dist/core/{feature-detect-helpers.d.ts → core/feature-detect-helpers.d.ts} +0 -0
  142. /package/dist/core/{feature-detect.d.ts → core/feature-detect.d.ts} +0 -0
  143. /package/dist/core/{field-resolvers.d.ts → core/field-resolvers.d.ts} +0 -0
  144. /package/dist/core/{formatters-helpers.d.ts → core/formatters-helpers.d.ts} +0 -0
  145. /package/dist/core/{formatters.d.ts → core/formatters.d.ts} +0 -0
  146. /package/dist/core/{history-buffer.d.ts → core/history-buffer.d.ts} +0 -0
  147. /package/dist/core/{icons.d.ts → core/icons.d.ts} +0 -0
  148. /package/dist/core/{index.d.ts → core/index.d.ts} +0 -0
  149. /package/dist/core/{internals-utils.d.ts → core/internals-utils.d.ts} +0 -0
  150. /package/dist/core/{job-utils.d.ts → core/job-utils.d.ts} +0 -0
  151. /package/dist/core/{log-utils-helpers.d.ts → core/log-utils-helpers.d.ts} +0 -0
  152. /package/dist/core/{log-utils.d.ts → core/log-utils.d.ts} +0 -0
  153. /package/dist/core/{metrics.d.ts → core/metrics.d.ts} +0 -0
  154. /package/dist/core/{pagination.d.ts → core/pagination.d.ts} +0 -0
  155. /package/dist/core/{queries-columns.d.ts → core/queries-columns.d.ts} +0 -0
  156. /package/dist/core/{queries-controller.d.ts → core/queries-controller.d.ts} +0 -0
  157. /package/dist/core/{query-utils.d.ts → core/query-utils.d.ts} +0 -0
  158. /package/dist/core/{resizable-columns.d.ts → core/resizable-columns.d.ts} +0 -0
  159. /package/dist/core/{routes.d.ts → core/routes.d.ts} +0 -0
  160. /package/dist/core/{server-stats-controller.d.ts → core/server-stats-controller.d.ts} +0 -0
  161. /package/dist/core/{sparkline.d.ts → core/sparkline.d.ts} +0 -0
  162. /package/dist/core/{split-pane.d.ts → core/split-pane.d.ts} +0 -0
  163. /package/dist/core/{theme.d.ts → core/theme.d.ts} +0 -0
  164. /package/dist/core/{trace-utils.d.ts → core/trace-utils.d.ts} +0 -0
  165. /package/dist/core/{transmit-adapter.d.ts → core/transmit-adapter.d.ts} +0 -0
  166. /package/dist/core/{transmit-helpers.d.ts → core/transmit-helpers.d.ts} +0 -0
  167. /package/dist/core/{types-dashboard.d.ts → core/types-dashboard.d.ts} +0 -0
  168. /package/dist/core/{types-diagnostics.d.ts → core/types-diagnostics.d.ts} +0 -0
@@ -1,321 +0,0 @@
1
- import { jsx as s, jsxs as r, Fragment as B } from "react/jsx-runtime";
2
- import { useMemo as $, useState as g, useEffect as E, useCallback as L } from "react";
3
- import { normalizeTraceFields as P, resolveStatusCode as j, resolveDuration as W, durationClassName as z, resolveSpanCount as G, resolveWarningCount as I, resolveTimestamp as U } from "adonisjs-server-stats/core";
4
- import { T as Y } from "./TimeAgoCell-o3KigGfM.js";
5
- import { u as K } from "./useApiClient-BVtNCmnL.js";
6
- import { a as V, M as D, S as R } from "./index-CsprmgzI.js";
7
- import { S as H, R as J } from "./SplitPaneWrapper-CZl1ouIT.js";
8
- import { D as Q } from "./DataTable-YyShr5B-.js";
9
- import { F as X } from "./FilterBar-CQ7bD669.js";
10
- import { P as Z } from "./Pagination-BkmzUDY8.js";
11
- const F = {
12
- request: "#1e3a5f",
13
- middleware: "rgba(30, 58, 95, 0.7)",
14
- db: "#6d28d9",
15
- view: "#0e7490",
16
- mail: "#059669",
17
- event: "#b45309",
18
- custom: "var(--ss-dim)"
19
- }, ee = {
20
- request: "Request",
21
- middleware: "Middleware",
22
- db: "DB",
23
- mail: "Mail",
24
- event: "Event",
25
- view: "View",
26
- custom: "Custom"
27
- };
28
- function T({
29
- spans: c,
30
- totalDuration: h,
31
- className: v = "",
32
- warnings: n
33
- }) {
34
- const p = c || [], o = $(
35
- () => [...p].sort((e, l) => e.startOffset - l.startOffset),
36
- [p]
37
- ), x = $(() => {
38
- const e = {};
39
- for (const l of o)
40
- e[l.id] = l.parentId ? (e[l.parentId] || 0) + 1 : 0;
41
- return e;
42
- }, [o]);
43
- return p.length === 0 ? /* @__PURE__ */ s("div", { className: "ss-dash-empty", children: "No spans recorded" }) : /* @__PURE__ */ r("div", { className: `ss-dash-tl-waterfall ${v}`, children: [
44
- /* @__PURE__ */ s("div", { className: "ss-dash-tl-legend", children: Object.entries(ee).map(([e, l]) => /* @__PURE__ */ r("div", { className: "ss-dash-tl-legend-item", children: [
45
- /* @__PURE__ */ s(
46
- "span",
47
- {
48
- className: "ss-dash-tl-legend-dot",
49
- style: {
50
- background: F[e] || F.custom
51
- }
52
- }
53
- ),
54
- /* @__PURE__ */ s("span", { children: l })
55
- ] }, e)) }),
56
- o.map((e) => {
57
- const l = h > 0 ? e.startOffset / h * 100 : 0, f = h > 0 ? Math.max(e.duration / h * 100, 0.5) : 1, b = x[e.id] || 0, C = e.label.length > 50 ? e.label.slice(0, 50) + "..." : e.label, m = e.category === "db" ? "DB" : e.category, y = e.category === "db" ? "purple" : e.category === "mail" ? "green" : e.category === "event" ? "amber" : e.category === "view" ? "blue" : "muted", i = e.metadata ? Object.entries(e.metadata).filter(([, u]) => u != null).map(([u, N]) => `${u}=${N}`).join(", ") : "", w = i ? `${e.label} (${e.duration.toFixed(2)}ms)
58
- ${i}` : `${e.label} (${e.duration.toFixed(2)}ms)`;
59
- return /* @__PURE__ */ r("div", { className: "ss-dash-tl-row", children: [
60
- /* @__PURE__ */ r(
61
- "div",
62
- {
63
- className: "ss-dash-tl-label",
64
- title: w,
65
- style: { paddingLeft: 8 + b * 16 + "px" },
66
- children: [
67
- /* @__PURE__ */ s(
68
- "span",
69
- {
70
- className: `ss-dash-badge ss-dash-badge-${y}`,
71
- style: { fontSize: "9px", marginRight: "4px" },
72
- children: m
73
- }
74
- ),
75
- C
76
- ]
77
- }
78
- ),
79
- /* @__PURE__ */ s("div", { className: "ss-dash-tl-track", children: /* @__PURE__ */ s(
80
- "div",
81
- {
82
- className: `ss-dash-tl-bar ss-dash-tl-bar-${e.category || "custom"}`,
83
- style: {
84
- left: `${l}%`,
85
- width: `${f}%`
86
- },
87
- title: w
88
- }
89
- ) }),
90
- /* @__PURE__ */ r("span", { className: "ss-dash-tl-dur", children: [
91
- e.duration.toFixed(2),
92
- "ms"
93
- ] })
94
- ] }, e.id);
95
- }),
96
- n && n.length > 0 && /* @__PURE__ */ r("div", { className: "ss-dash-tl-warnings", children: [
97
- /* @__PURE__ */ r("div", { className: "ss-dash-tl-warnings-title", children: [
98
- "Warnings (",
99
- n.length,
100
- ")"
101
- ] }),
102
- n.map((e, l) => /* @__PURE__ */ s("div", { className: "ss-dash-tl-warning", children: e }, l))
103
- ] })
104
- ] });
105
- }
106
- function he({ options: c = {} }) {
107
- const [h, v] = g(1), [n, p] = g(""), [o, x] = g("createdAt"), [e, l] = g("desc"), [f, b] = g(null), [C, m] = g(!1);
108
- E(() => v(1), [n]);
109
- const { data: y, meta: i, isLoading: w, error: u } = V("requests", {
110
- ...c,
111
- page: h,
112
- search: n,
113
- sort: o,
114
- sortDir: e
115
- }), N = K(c.baseUrl || "", c.authToken), A = L(
116
- (t) => {
117
- const a = t.id;
118
- m(!0);
119
- const d = c.dashboardEndpoint || "/__stats/api";
120
- N().fetch(`${d}/requests/${a}`).then((k) => {
121
- const S = k, q = S.trace;
122
- if (q) {
123
- const _ = { ...S, ...q, logs: S.logs };
124
- b(_);
125
- } else
126
- b(k);
127
- m(!1);
128
- }).catch(() => {
129
- m(!1);
130
- });
131
- },
132
- [N, c.dashboardEndpoint]
133
- ), O = L(
134
- (t) => {
135
- o === t ? l((a) => a === "asc" ? "desc" : "asc") : (x(t), l("desc"));
136
- },
137
- [o]
138
- ), M = y || [];
139
- if (f) {
140
- const t = P(f), a = t.logs.length > 0;
141
- return /* @__PURE__ */ r("div", { children: [
142
- /* @__PURE__ */ r("div", { className: "ss-dash-tl-detail-header", children: [
143
- /* @__PURE__ */ s("button", { type: "button", className: "ss-dash-btn", onClick: () => b(null), children: "← Back to Requests" }),
144
- /* @__PURE__ */ s(D, { method: t.method }),
145
- /* @__PURE__ */ s("span", { style: { color: "var(--ss-text)" }, children: t.url }),
146
- /* @__PURE__ */ s(R, { code: t.statusCode }),
147
- /* @__PURE__ */ r("span", { className: "ss-dash-tl-meta", children: [
148
- t.totalDuration.toFixed(1),
149
- "ms · ",
150
- t.spanCount,
151
- " spans"
152
- ] })
153
- ] }),
154
- a ? /* @__PURE__ */ r(H, { storageKey: "ss-requests-split", children: [
155
- /* @__PURE__ */ s(
156
- T,
157
- {
158
- spans: t.spans,
159
- totalDuration: t.totalDuration,
160
- warnings: t.warnings
161
- }
162
- ),
163
- /* @__PURE__ */ s(J, { logs: t.logs })
164
- ] }) : /* @__PURE__ */ s(
165
- T,
166
- {
167
- spans: t.spans,
168
- totalDuration: t.totalDuration,
169
- warnings: t.warnings
170
- }
171
- )
172
- ] });
173
- }
174
- return C ? /* @__PURE__ */ r("div", { children: [
175
- /* @__PURE__ */ s("div", { className: "ss-dash-tl-detail-header", children: /* @__PURE__ */ s("button", { type: "button", className: "ss-dash-btn", onClick: () => m(!1), children: "← Back to Requests" }) }),
176
- /* @__PURE__ */ s("div", { className: "ss-dash-empty", children: "Loading request detail..." })
177
- ] }) : /* @__PURE__ */ r("div", { children: [
178
- /* @__PURE__ */ s(
179
- X,
180
- {
181
- search: n,
182
- onSearchChange: p,
183
- placeholder: "Filter requests...",
184
- summary: `${i?.total ?? 0} requests`
185
- }
186
- ),
187
- u && /* @__PURE__ */ s("div", { className: "ss-dash-empty", children: "Failed to load requests" }),
188
- w && !y ? /* @__PURE__ */ s("div", { className: "ss-dash-empty", children: "Loading requests..." }) : /* @__PURE__ */ r(B, { children: [
189
- /* @__PURE__ */ s("div", { className: "ss-dash-table-wrap", children: /* @__PURE__ */ s(
190
- Q,
191
- {
192
- columns: [
193
- {
194
- key: "id",
195
- label: "#",
196
- width: "40px",
197
- render: (t) => /* @__PURE__ */ s("span", { style: { color: "var(--ss-dim)" }, children: t })
198
- },
199
- {
200
- key: "method",
201
- label: "Method",
202
- width: "70px",
203
- sortable: !0,
204
- render: (t) => /* @__PURE__ */ s(D, { method: t })
205
- },
206
- {
207
- key: "url",
208
- label: "URL",
209
- sortable: !0,
210
- render: (t) => /* @__PURE__ */ s(
211
- "span",
212
- {
213
- style: {
214
- color: "var(--ss-text)",
215
- overflow: "hidden",
216
- textOverflow: "ellipsis",
217
- whiteSpace: "nowrap"
218
- },
219
- title: t,
220
- children: t
221
- }
222
- )
223
- },
224
- {
225
- key: "statusCode",
226
- label: "Status",
227
- width: "60px",
228
- sortable: !0,
229
- render: (t, a) => {
230
- const d = j(a);
231
- return /* @__PURE__ */ s(R, { code: d });
232
- }
233
- },
234
- {
235
- key: "duration",
236
- label: "Duration",
237
- width: "80px",
238
- sortable: !0,
239
- render: (t, a) => {
240
- const d = W(a);
241
- return /* @__PURE__ */ r(
242
- "span",
243
- {
244
- className: `ss-dash-duration ${z(d)}`,
245
- children: [
246
- d.toFixed(1),
247
- "ms"
248
- ]
249
- }
250
- );
251
- }
252
- },
253
- {
254
- key: "spanCount",
255
- label: "Spans",
256
- width: "50px",
257
- render: (t, a) => {
258
- const d = G(a);
259
- return /* @__PURE__ */ s("span", { style: { color: "var(--ss-muted)", textAlign: "center" }, children: d });
260
- }
261
- },
262
- {
263
- key: "warningCount",
264
- label: "⚠",
265
- width: "40px",
266
- render: (t, a) => {
267
- const d = I(a);
268
- return d > 0 ? /* @__PURE__ */ s(
269
- "span",
270
- {
271
- style: {
272
- color: "var(--ss-amber-fg)",
273
- textAlign: "center",
274
- display: "block"
275
- },
276
- children: d
277
- }
278
- ) : /* @__PURE__ */ s(
279
- "span",
280
- {
281
- style: { color: "var(--ss-dim)", textAlign: "center", display: "block" },
282
- children: "-"
283
- }
284
- );
285
- }
286
- },
287
- {
288
- key: "createdAt",
289
- label: "Time",
290
- width: "80px",
291
- sortable: !0,
292
- render: (t, a) => {
293
- const d = U(a) ?? "";
294
- return /* @__PURE__ */ s(Y, { ts: d, className: "ss-dash-event-time" });
295
- }
296
- }
297
- ],
298
- data: M,
299
- sort: o,
300
- sortDir: e,
301
- onSort: O,
302
- onRowClick: A,
303
- emptyMessage: "No requests recorded yet"
304
- }
305
- ) }),
306
- i && /* @__PURE__ */ s(
307
- Z,
308
- {
309
- page: i.page,
310
- lastPage: i.lastPage,
311
- total: i.total,
312
- onPageChange: v
313
- }
314
- )
315
- ] })
316
- ] });
317
- }
318
- export {
319
- he as RequestsSection,
320
- he as default
321
- };