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
@@ -164,11 +164,11 @@ function O() {
164
164
  function J(t) {
165
165
  typeof window > "u" || (localStorage.setItem(C, t), window.dispatchEvent(new CustomEvent(P, { detail: t })));
166
166
  }
167
- function te() {
167
+ function ee() {
168
168
  const e = O() === "dark" ? "light" : "dark";
169
169
  return J(e), e;
170
170
  }
171
- function ee(t) {
171
+ function re(t) {
172
172
  if (typeof window > "u") return () => {
173
173
  };
174
174
  const e = (s) => {
@@ -198,7 +198,7 @@ const x = {
198
198
  function Y(t) {
199
199
  return { ...x, ...t };
200
200
  }
201
- function re(t, e = x.width, r = x.height, n = x.padding) {
201
+ function ne(t, e = x.width, r = x.height, n = x.padding) {
202
202
  if (t.length < 2) return null;
203
203
  const o = e - n * 2, s = r - n * 2, i = Math.min(...t), a = Math.max(...t) - i || 1;
204
204
  return t.map((m, f) => {
@@ -206,7 +206,7 @@ function re(t, e = x.width, r = x.height, n = x.padding) {
206
206
  return `${p.toFixed(1)},${d.toFixed(1)}`;
207
207
  }).join(" ");
208
208
  }
209
- function ne(t, e = x.width, r = x.height, n = x.padding) {
209
+ function se(t, e = x.width, r = x.height, n = x.padding) {
210
210
  if (t.length < 2) return null;
211
211
  const o = e - n * 2, s = r - n * 2, i = Math.min(...t), a = Math.max(...t) - i || 1, c = t.map((d, g) => {
212
212
  const h = n + g / (t.length - 1) * o, y = n + s - (d - i) / a * s;
@@ -227,7 +227,7 @@ function tt(t) {
227
227
  }
228
228
  return { min: e, max: r, avg: n / t.length };
229
229
  }
230
- function se(t, e) {
230
+ function oe(t, e) {
231
231
  if (t.length < 2) return null;
232
232
  const r = Y(e), n = tt(t), o = n.max - n.min || 1, s = r.width - r.padding * 2, i = r.height - r.padding * 2, l = r.padding, a = t.length, c = Array.from({ length: a });
233
233
  for (let h = 0; h < a; h++) {
@@ -276,13 +276,13 @@ function D(t) {
276
276
  function ht(t) {
277
277
  return t >= 1e6 ? `${(t / 1e6).toFixed(1)}M` : t >= 1e3 ? `${(t / 1e3).toFixed(1)}K` : `${t}`;
278
278
  }
279
- function oe(t) {
279
+ function ie(t) {
280
280
  return t >= 1e3 ? `${(t / 1e3).toFixed(2)}s` : t >= 1 ? `${t.toFixed(0)}ms` : `${t.toFixed(2)}ms`;
281
281
  }
282
282
  function H(t) {
283
283
  return /([+-]\d{2}:?\d{2}|Z)\s*$/.test(t) ? t : t + "Z";
284
284
  }
285
- function ie(t) {
285
+ function ae(t) {
286
286
  if (!t) return "-";
287
287
  const e = typeof t == "string" ? new Date(H(t)) : new Date(t);
288
288
  return Number.isNaN(e.getTime()) ? "-" : e.toLocaleTimeString("en-US", {
@@ -292,12 +292,12 @@ function ie(t) {
292
292
  second: "2-digit"
293
293
  }) + "." + String(e.getMilliseconds()).padStart(3, "0");
294
294
  }
295
- function ae(t) {
295
+ function le(t) {
296
296
  if (!t) return "-";
297
297
  const e = typeof t == "string" ? new Date(H(t)).getTime() : t, r = Math.floor((Date.now() - e) / 1e3);
298
298
  return r < 0 ? "just now" : r < 60 ? `${r}s ago` : r < 3600 ? `${Math.floor(r / 60)}m ago` : r < 86400 ? `${Math.floor(r / 3600)}h ago` : `${Math.floor(r / 86400)}d ago`;
299
299
  }
300
- function le(t, e) {
300
+ function ce(t, e) {
301
301
  switch (e) {
302
302
  case "%":
303
303
  return `${t.toFixed(1)}%`;
@@ -329,39 +329,39 @@ const ft = {
329
329
  green: "ss-green",
330
330
  amber: "ss-amber",
331
331
  red: "ss-red"
332
- }, ce = {
332
+ }, ue = {
333
333
  green: "#34d399",
334
334
  amber: "#fbbf24",
335
335
  red: "#f87171"
336
- }, ue = {
336
+ }, he = {
337
337
  green: "--ss-accent",
338
338
  amber: "--ss-amber-fg",
339
339
  red: "--ss-red-fg"
340
340
  };
341
- function he(t) {
341
+ function de(t) {
342
342
  return t >= 500 ? "red" : t >= 400 ? "amber" : "green";
343
343
  }
344
344
  function pt(t) {
345
345
  return t > st ? "very-slow" : t > N ? "slow" : "normal";
346
346
  }
347
- function de(t, e = "ss-dash") {
347
+ function fe(t, e = "ss-dash") {
348
348
  const r = pt(t);
349
349
  return r === "very-slow" ? `${e}-very-slow` : r === "slow" ? `${e}-slow` : "";
350
350
  }
351
- function fe(t) {
351
+ function pe(t) {
352
352
  return t ? t.length <= 8 ? t : t.slice(0, 8) + "…" : "--";
353
353
  }
354
354
  function U(t, e = 100) {
355
355
  return t === null ? "null" : t === void 0 ? "-" : typeof t == "string" ? at(t) : typeof t == "number" || typeof t == "boolean" ? String(t) : Array.isArray(t) ? lt(t, e, U) : typeof t == "object" ? ct(t, e, U) : String(t);
356
356
  }
357
- function pe(t) {
357
+ function me(t) {
358
358
  return t < 0 ? "no expiry" : t < 60 ? `${t}s` : t < 3600 ? `${Math.floor(t / 60)}m` : t < 86400 ? `${Math.floor(t / 3600)}h` : `${Math.floor(t / 86400)}d`;
359
359
  }
360
- function me(t) {
360
+ function ge(t) {
361
361
  return t < 1024 ? `${t}B` : t < 1024 * 1024 ? `${(t / 1024).toFixed(1)}KB` : `${(t / (1024 * 1024)).toFixed(1)}MB`;
362
362
  }
363
363
  const q = 50;
364
- function ge(t, e, r) {
364
+ function ye(t, e, r) {
365
365
  const n = new URLSearchParams();
366
366
  if (n.set("page", String(t.page)), n.set("perPage", String(t.perPage)), e) {
367
367
  e.search && n.set("search", e.search);
@@ -370,7 +370,7 @@ function ge(t, e, r) {
370
370
  }
371
371
  return r && (n.set("sort", r.field), n.set("direction", r.direction)), n.toString();
372
372
  }
373
- function ye(t, e = q) {
373
+ function be(t, e = q) {
374
374
  const r = t.data ?? t.items ?? [], n = t.total ?? 0, o = t.page ?? 1, s = t.perPage ?? t.limit ?? e, i = t.totalPages ?? (Math.ceil(n / s) || 1);
375
375
  return {
376
376
  data: r,
@@ -382,7 +382,7 @@ function ye(t, e = q) {
382
382
  }
383
383
  };
384
384
  }
385
- function be(t = q) {
385
+ function xe(t = q) {
386
386
  return {
387
387
  page: 1,
388
388
  perPage: t,
@@ -390,13 +390,13 @@ function be(t = q) {
390
390
  totalPages: 1
391
391
  };
392
392
  }
393
- function xe() {
393
+ function Se() {
394
394
  return {
395
395
  search: "",
396
396
  filters: {}
397
397
  };
398
398
  }
399
- function Se(t = "id", e = "desc") {
399
+ function we(t = "id", e = "desc") {
400
400
  return { field: t, direction: e };
401
401
  }
402
402
  const mt = [
@@ -418,7 +418,7 @@ function gt(t) {
418
418
  o && e.set(n, o);
419
419
  return e.toString();
420
420
  }
421
- function we(t) {
421
+ function ve(t) {
422
422
  const e = Math.max(1, Math.ceil(t.total / t.perPage)), r = Math.min(t.page, e), n = t.total === 0 ? 0 : (r - 1) * t.perPage + 1, o = Math.min(r * t.perPage, t.total);
423
423
  return {
424
424
  page: r,
@@ -431,7 +431,7 @@ function we(t) {
431
431
  hasNext: r < e
432
432
  };
433
433
  }
434
- function ve(t, e, r = 2) {
434
+ function Ce(t, e, r = 2) {
435
435
  if (e <= 1) return [1];
436
436
  const n = [], o = Math.max(2, t - r), s = Math.min(e - 1, t + r);
437
437
  n.push(1), o > 2 && n.push("...");
@@ -505,7 +505,7 @@ async function vt(t, e = B) {
505
505
  const r = `${e.replace(/\/+$/, "")}/config`;
506
506
  return t.fetch(r);
507
507
  }
508
- async function Ce(t) {
508
+ async function Ee(t) {
509
509
  const { baseUrl: e = "", debugEndpoint: r = B, authToken: n } = t, o = new T({ baseUrl: e, authToken: n });
510
510
  try {
511
511
  const s = await vt(o, r);
@@ -514,13 +514,13 @@ async function Ce(t) {
514
514
  return St;
515
515
  }
516
516
  }
517
- function Ee(t) {
517
+ function Te(t) {
518
518
  const e = /* @__PURE__ */ new Set(), n = "features" in t && typeof t.features == "object" && t.features !== null ? t.features : t;
519
519
  for (const { flag: o, group: s } of bt)
520
520
  n[o] && e.add(s);
521
521
  return e;
522
522
  }
523
- function Te(t) {
523
+ function ke(t) {
524
524
  const e = /* @__PURE__ */ new Set();
525
525
  (k(t.cpuPercent) || k(t.uptime) || Ct(t)) && e.add("process");
526
526
  for (const r of xt)
@@ -835,10 +835,10 @@ const $ = [
835
835
  historyKey: "logEntriesPerMinute"
836
836
  }
837
837
  ];
838
- function ke(t) {
838
+ function Me(t) {
839
839
  return $.find((e) => e.id === t);
840
840
  }
841
- function Me() {
841
+ function Pe() {
842
842
  const t = /* @__PURE__ */ new Map();
843
843
  for (const e of $) {
844
844
  const r = e.group || "core";
@@ -912,7 +912,7 @@ function Pt(t = ot) {
912
912
  }
913
913
  };
914
914
  }
915
- class Pe {
915
+ class Ae {
916
916
  // -- Configuration --------------------------------------------------------
917
917
  baseUrl;
918
918
  endpoint;
@@ -1147,7 +1147,7 @@ function $t(t) {
1147
1147
  function Rt(t, e) {
1148
1148
  return e.aborted ? !0 : t instanceof DOMException && t.name === "AbortError";
1149
1149
  }
1150
- class Ae {
1150
+ class $e {
1151
1151
  // -- Dependencies ---------------------------------------------------------
1152
1152
  client;
1153
1153
  api;
@@ -1362,7 +1362,7 @@ class Ae {
1362
1362
  this.timer && (clearInterval(this.timer), this.timer = null);
1363
1363
  }
1364
1364
  }
1365
- const $e = {
1365
+ const Re = {
1366
1366
  // ---------------------------------------------------------------------------
1367
1367
  // Debug-panel tabs / Dashboard sidebar sections (shared)
1368
1368
  // ---------------------------------------------------------------------------
@@ -1555,7 +1555,7 @@ const $e = {
1555
1555
  elements: ['<path d="M6 3H3v10h10v-3M9 1h6v6M7 9L15 1"/>']
1556
1556
  }
1557
1557
  }, Lt = "ss-col-resize", _ = "ss-resizing";
1558
- function Re(t) {
1558
+ function Le(t) {
1559
1559
  const e = Array.from(t.querySelectorAll("thead th"));
1560
1560
  if (e.length === 0) return () => {
1561
1561
  };
@@ -1593,7 +1593,7 @@ function Re(t) {
1593
1593
  for (const s of r) s();
1594
1594
  };
1595
1595
  }
1596
- function Le(t) {
1596
+ function De(t) {
1597
1597
  const { container: e, handle: r, topPane: n, bottomPane: o, storageKey: s, minHeight: i = 60 } = t;
1598
1598
  if (s) {
1599
1599
  const a = localStorage.getItem(s);
@@ -1628,7 +1628,7 @@ function Le(t) {
1628
1628
  r.removeEventListener("pointerdown", l);
1629
1629
  };
1630
1630
  }
1631
- class De {
1631
+ class Fe {
1632
1632
  client;
1633
1633
  endpoint;
1634
1634
  refreshInterval;
@@ -1765,21 +1765,21 @@ function I(t) {
1765
1765
  Ut.has(r) || (e[r] = n);
1766
1766
  return Object.keys(e).length > 0 ? e : null;
1767
1767
  }
1768
- const Fe = ["all", "error", "warn", "info", "debug"];
1768
+ const Ue = ["all", "error", "warn", "info", "debug"];
1769
1769
  function Ft(t) {
1770
1770
  return (t.levelName || t.level_name || (typeof t.level == "string" ? t.level : "") || "info").toLowerCase();
1771
1771
  }
1772
- function Ue(t) {
1772
+ function _e(t) {
1773
1773
  return t.msg || t.message || JSON.stringify(t);
1774
1774
  }
1775
- function _e(t) {
1775
+ function Ie(t) {
1776
1776
  return t.createdAt || t.created_at || t.time || t.timestamp || 0;
1777
1777
  }
1778
- function Ie(t) {
1778
+ function Oe(t) {
1779
1779
  const e = t.data || {};
1780
1780
  return t.requestId || t.request_id || t["x-request-id"] || e.requestId || e.request_id || e["x-request-id"] || "";
1781
1781
  }
1782
- function Oe(t, e = "ss-dbg-log-level") {
1782
+ function Ne(t, e = "ss-dbg-log-level") {
1783
1783
  switch (t) {
1784
1784
  case "error":
1785
1785
  case "fatal":
@@ -1796,7 +1796,7 @@ function Oe(t, e = "ss-dbg-log-level") {
1796
1796
  return `${e}-info`;
1797
1797
  }
1798
1798
  }
1799
- function Ne(t, e) {
1799
+ function He(t, e) {
1800
1800
  return e === "all" ? t : t.filter((r) => {
1801
1801
  const n = Ft(r);
1802
1802
  return e === "error" ? n === "error" || n === "fatal" : n === e;
@@ -1822,7 +1822,7 @@ const Ut = /* @__PURE__ */ new Set([
1822
1822
  "id",
1823
1823
  "data"
1824
1824
  ]);
1825
- function He(t) {
1825
+ function qe(t) {
1826
1826
  if (t.data) {
1827
1827
  const e = Dt(t.data);
1828
1828
  if (e) {
@@ -1841,34 +1841,34 @@ function u(t, ...e) {
1841
1841
  function _t(t) {
1842
1842
  return u(t, "createdAt", "created_at", "timestamp");
1843
1843
  }
1844
- function qe(t) {
1844
+ function Be(t) {
1845
1845
  return u(t, "timestamp", "createdAt", "processedAt", "created_at");
1846
1846
  }
1847
- function Be(t) {
1847
+ function Ke(t) {
1848
1848
  return u(t, "statusCode", "status_code");
1849
1849
  }
1850
- function Ke(t) {
1850
+ function ze(t) {
1851
1851
  return u(t, "total_duration", "totalDuration", "duration") ?? 0;
1852
1852
  }
1853
- function ze(t) {
1853
+ function je(t) {
1854
1854
  return u(t, "span_count", "spanCount") ?? 0;
1855
1855
  }
1856
- function je(t) {
1856
+ function We(t) {
1857
1857
  return u(t, "warning_count", "warningCount") ?? 0;
1858
1858
  }
1859
- function We(t) {
1859
+ function Ve(t) {
1860
1860
  return u(t, "from_addr", "from") ?? "";
1861
1861
  }
1862
- function Ve(t) {
1862
+ function Ge(t) {
1863
1863
  return u(t, "to_addr", "to") ?? "";
1864
1864
  }
1865
- function Ge(t) {
1865
+ function Qe(t) {
1866
1866
  return u(t, "cc", "cc_addr") ?? "";
1867
1867
  }
1868
- function Qe(t) {
1868
+ function Je(t) {
1869
1869
  return u(t, "attachment_count", "attachmentCount") ?? 0;
1870
1870
  }
1871
- function Je(t) {
1871
+ function Ye(t) {
1872
1872
  return u(t, "event_name", "eventName", "event") ?? "";
1873
1873
  }
1874
1874
  function It(t) {
@@ -1877,28 +1877,28 @@ function It(t) {
1877
1877
  function K(t) {
1878
1878
  return u(t, "sqlNormalized", "normalizedSql", "sql_normalized", "sql") ?? "";
1879
1879
  }
1880
- function Ye(t, e, r) {
1880
+ function Xe(t, e, r) {
1881
1881
  const n = t[e];
1882
1882
  return n != null && n !== 0 ? Number(n) : Number(t[r]) || 0;
1883
1883
  }
1884
- function Xe(t, e) {
1884
+ function Ze(t, e) {
1885
1885
  if (!e) return t;
1886
1886
  const r = e.toLowerCase();
1887
1887
  return t.filter(
1888
1888
  (n) => n.sql.toLowerCase().includes(r) || n.model && n.model.toLowerCase().includes(r) || n.method.toLowerCase().includes(r)
1889
1889
  );
1890
1890
  }
1891
- function Ze(t) {
1891
+ function tr(t) {
1892
1892
  const e = {};
1893
1893
  for (const r of t)
1894
1894
  e[r.sql] = (e[r.sql] || 0) + 1;
1895
1895
  return e;
1896
1896
  }
1897
- function tr(t, e) {
1897
+ function er(t, e) {
1898
1898
  const r = t.filter((s) => s.duration > 100).length, n = Object.values(e).filter((s) => s > 1).length, o = t.length > 0 ? t.reduce((s, i) => s + i.duration, 0) / t.length : 0;
1899
1899
  return { slowCount: r, dupCount: n, avgDuration: o, totalCount: t.length };
1900
1900
  }
1901
- function er(t, e) {
1901
+ function rr(t, e) {
1902
1902
  let r = 0, n = 0;
1903
1903
  for (const a of t) {
1904
1904
  const c = u(a, "duration") ?? 0;
@@ -1911,7 +1911,7 @@ function er(t, e) {
1911
1911
  const i = t.length > 0 ? n / t.length : 0, l = e?.total ?? t.length;
1912
1912
  return { slowCount: r, dupCount: s, avgDuration: i, totalCount: l };
1913
1913
  }
1914
- function rr(t) {
1914
+ function nr(t) {
1915
1915
  return {
1916
1916
  id: u(t, "id") ?? 0,
1917
1917
  sql: u(t, "sql", "sql_text") ?? "",
@@ -1955,18 +1955,18 @@ function Ht(t, e = 0) {
1955
1955
  n.push(...Ht(s, e + 1));
1956
1956
  return n;
1957
1957
  }
1958
- function nr(t) {
1958
+ function sr(t) {
1959
1959
  return !t || typeof t != "object" ? !1 : "Plan" in t;
1960
1960
  }
1961
- function sr(t) {
1961
+ function or(t) {
1962
1962
  if (!t || t.length === 0) return [];
1963
1963
  const e = t[0];
1964
1964
  return !e || typeof e != "object" ? [] : Object.keys(e);
1965
1965
  }
1966
- function or(t) {
1966
+ function ir(t) {
1967
1967
  return t == null ? "-" : String(t);
1968
1968
  }
1969
- function ir() {
1969
+ function ar() {
1970
1970
  return [
1971
1971
  { key: "id", label: "#", width: "50px", type: "index" },
1972
1972
  { key: "sql", label: "SQL", type: "sql" },
@@ -1976,7 +1976,7 @@ function ir() {
1976
1976
  { key: "timestamp", label: "Time", width: "80px", type: "time" }
1977
1977
  ];
1978
1978
  }
1979
- function ar(t) {
1979
+ function lr(t) {
1980
1980
  const e = t?.showExplain ?? !0, r = [
1981
1981
  { key: "id", label: "#", width: "40px", type: "index" },
1982
1982
  { key: "sql", label: "SQL", type: "sql" },
@@ -1988,7 +1988,7 @@ function ar(t) {
1988
1988
  ];
1989
1989
  return e && r.push({ key: "id", label: "", width: "70px", type: "explain" }), r;
1990
1990
  }
1991
- function lr() {
1991
+ function cr() {
1992
1992
  return [
1993
1993
  { key: "sqlNormalized", label: "Pattern", type: "sql" },
1994
1994
  { key: "count", label: "Count", width: "60px", sortable: !0 },
@@ -1999,7 +1999,7 @@ function lr() {
1999
1999
  { key: "percentOfTotal", label: "% Time", width: "60px" }
2000
2000
  ];
2001
2001
  }
2002
- class cr {
2002
+ class ur {
2003
2003
  state;
2004
2004
  constructor(e = "list") {
2005
2005
  this.state = {
@@ -2098,7 +2098,7 @@ class cr {
2098
2098
  return this.state.explainData.get(e);
2099
2099
  }
2100
2100
  }
2101
- const ur = [
2101
+ const hr = [
2102
2102
  "all",
2103
2103
  "active",
2104
2104
  "waiting",
@@ -2106,7 +2106,7 @@ const ur = [
2106
2106
  "completed",
2107
2107
  "failed"
2108
2108
  ];
2109
- function hr(t, e = "ss-dbg-job-status") {
2109
+ function dr(t, e = "ss-dbg-job-status") {
2110
2110
  switch (t) {
2111
2111
  case "completed":
2112
2112
  case "failed":
@@ -2118,7 +2118,7 @@ function hr(t, e = "ss-dbg-job-status") {
2118
2118
  return "ss-dbg-badge-muted";
2119
2119
  }
2120
2120
  }
2121
- function dr(t) {
2121
+ function fr(t) {
2122
2122
  switch (t) {
2123
2123
  case "active":
2124
2124
  return "blue";
@@ -2134,13 +2134,13 @@ function dr(t) {
2134
2134
  return "muted";
2135
2135
  }
2136
2136
  }
2137
- function fr(t) {
2137
+ function pr(t) {
2138
2138
  if (!t) return [];
2139
2139
  if (Array.isArray(t)) return t;
2140
2140
  const e = t;
2141
2141
  return e.jobs || e.data || [];
2142
2142
  }
2143
- function pr(t) {
2143
+ function mr(t) {
2144
2144
  if (!t || Array.isArray(t)) return null;
2145
2145
  const e = t;
2146
2146
  return e.stats || e.overview || null;
@@ -2168,7 +2168,7 @@ function Bt(t) {
2168
2168
  function M(t, e, r, n = 0) {
2169
2169
  return t[e] ?? t[r] ?? n;
2170
2170
  }
2171
- function mr(t) {
2171
+ function gr(t) {
2172
2172
  return {
2173
2173
  method: t.method || "",
2174
2174
  url: t.url || "",
@@ -2204,7 +2204,7 @@ const Wt = {
2204
2204
  persistFlush: "Persist Flush",
2205
2205
  retentionCleanup: "Retention Cleanup"
2206
2206
  };
2207
- function gr(t) {
2207
+ function yr(t) {
2208
2208
  return Wt[t] || t;
2209
2209
  }
2210
2210
  const Vt = {
@@ -2214,27 +2214,27 @@ const Vt = {
2214
2214
  cacheInspector: "Cache Inspector",
2215
2215
  queueInspector: "Queue Inspector"
2216
2216
  };
2217
- function yr(t) {
2217
+ function br(t) {
2218
2218
  return Vt[t] || t;
2219
2219
  }
2220
- function br(t) {
2220
+ function xr(t) {
2221
2221
  return "active" in t ? t.active ? "active" : "inactive" : "available" in t ? t.available ? "available" : "unavailable" : "unknown";
2222
2222
  }
2223
- function xr(t, e) {
2223
+ function Sr(t, e) {
2224
2224
  return e.mode ? `Mode: ${e.mode}` : t === "edgePlugin" && e.active ? "@serverStats() tag registered" : t === "cacheInspector" ? e.available ? "Redis dependency detected" : "Redis not installed" : t === "queueInspector" ? e.available ? "Queue dependency detected" : "@rlanz/bull-queue not installed" : "-";
2225
2225
  }
2226
- function Sr(t) {
2226
+ function wr(t) {
2227
2227
  return Object.entries(t).map(([e, r]) => ({
2228
2228
  key: e,
2229
2229
  value: jt(r),
2230
2230
  secret: zt(e)
2231
2231
  }));
2232
2232
  }
2233
- function wr(t, e) {
2233
+ function vr(t, e) {
2234
2234
  return e ? Math.min(100, Math.round(t / e * 100)) : 0;
2235
2235
  }
2236
2236
  const Gt = ["healthy", "active", "connected", "available", "ready"], Qt = ["errored", "unavailable"];
2237
- function vr(t) {
2237
+ function Cr(t) {
2238
2238
  return Gt.includes(t) ? "ok" : Qt.includes(t) ? "err" : "";
2239
2239
  }
2240
2240
  function R(t) {
@@ -2253,7 +2253,7 @@ function Jt(t, e = "") {
2253
2253
  }
2254
2254
  return r;
2255
2255
  }
2256
- function Cr(t) {
2256
+ function Er(t) {
2257
2257
  return t == null ? { text: "null", color: "var(--ss-dim)" } : typeof t == "boolean" ? {
2258
2258
  text: String(t),
2259
2259
  color: t ? "var(--ss-green-fg)" : "var(--ss-red-fg)"
@@ -2267,17 +2267,17 @@ function Yt(t) {
2267
2267
  e += Yt(t[r]);
2268
2268
  return e;
2269
2269
  }
2270
- function Er(t) {
2270
+ function Tr(t) {
2271
2271
  if (!E(t)) return [];
2272
2272
  const e = [];
2273
2273
  for (const r of Object.keys(t))
2274
2274
  E(t[r]) && e.push(r);
2275
2275
  return e;
2276
2276
  }
2277
- function Tr(t, e, r) {
2277
+ function kr(t, e, r) {
2278
2278
  return !r || t.toLowerCase().includes(r) ? !0 : (R(e) ? e.display : e == null ? "" : String(e)).toLowerCase().includes(r);
2279
2279
  }
2280
- function kr(t, e, r) {
2280
+ function Mr(t, e, r) {
2281
2281
  e && navigator.clipboard.writeText(t).then(() => {
2282
2282
  const n = e.textContent;
2283
2283
  e.textContent = "✓", e.classList.add(`${r}-copy-row-ok`), setTimeout(() => {
@@ -2298,9 +2298,20 @@ const Xt = /* @__PURE__ */ new Set([
2298
2298
  "credentials",
2299
2299
  "apikey",
2300
2300
  "private",
2301
- "encryption"
2301
+ "encryption",
2302
+ // Connection strings / DSNs / service URLs (often embed credentials) and
2303
+ // signing material. Kept in sync with the server-side sensitive patterns in
2304
+ // src/dashboard/integrations/config_inspector.ts so the same key is redacted
2305
+ // in every view.
2306
+ "dsn",
2307
+ "smtp",
2308
+ "signing"
2309
+ ]), Zt = /* @__PURE__ */ new Set([
2310
+ "connection.string",
2311
+ "database.url",
2312
+ "redis.url"
2302
2313
  ]);
2303
- function Zt(t) {
2314
+ function te(t) {
2304
2315
  const e = t.split(/[._-]/), r = [];
2305
2316
  for (const n of e) {
2306
2317
  const o = n.split(new RegExp("(?<=[a-z])(?=[A-Z])"));
@@ -2309,10 +2320,14 @@ function Zt(t) {
2309
2320
  }
2310
2321
  return r;
2311
2322
  }
2312
- function Mr(t) {
2313
- return Zt(t).some((r) => Xt.has(r.toLowerCase()));
2323
+ function Pr(t) {
2324
+ const e = te(t).map((r) => r.toLowerCase());
2325
+ if (e.some((r) => Xt.has(r))) return !0;
2326
+ for (let r = 0; r < e.length - 1; r++)
2327
+ if (Zt.has(`${e[r]}.${e[r + 1]}`)) return !0;
2328
+ return !1;
2314
2329
  }
2315
- const Pr = new RegExp("secret|password|pass(?:word)?|pwd|token|(?:^|[._-])key(?:[._-]|$)|(?<=[a-z])Key|apikey|api_key|auth|credential|private|encryption", "i");
2330
+ const Ar = new RegExp("secret|password|pass(?:word)?|pwd|token|(?:^|[._-])key(?:[._-]|$)|(?<=[a-z])Key|apikey|api_key|auth|credential|private|encryption", "i");
2316
2331
  export {
2317
2332
  T as ApiClient,
2318
2333
  j as ApiError,
@@ -2322,136 +2337,136 @@ export {
2322
2337
  St as DEFAULT_FEATURES,
2323
2338
  q as DEFAULT_PER_PAGE,
2324
2339
  At as DashboardApi,
2325
- Ae as DashboardDataController,
2326
- De as DebugDataController,
2340
+ $e as DashboardDataController,
2341
+ Fe as DebugDataController,
2327
2342
  Qt as ERROR_STATUSES,
2328
2343
  Vt as INTEGRATION_LABELS,
2329
- ur as JOB_STATUS_FILTERS,
2330
- Fe as LOG_LEVELS,
2344
+ hr as JOB_STATUS_FILTERS,
2345
+ Ue as LOG_LEVELS,
2331
2346
  ot as MAX_HISTORY,
2332
2347
  $ as METRIC_DEFINITIONS,
2333
2348
  Gt as OK_STATUSES,
2334
2349
  et as OVERVIEW_REFRESH_MS,
2335
- cr as QueriesController,
2336
- Pr as REDACT_PATTERN,
2350
+ ur as QueriesController,
2351
+ Ar as REDACT_PATTERN,
2337
2352
  rt as SECTION_REFRESH_MS,
2338
2353
  N as SLOW_DURATION_MS,
2339
2354
  it as STALE_MS,
2340
- Pe as ServerStatsController,
2341
- $e as TAB_ICONS,
2355
+ Ae as ServerStatsController,
2356
+ Re as TAB_ICONS,
2342
2357
  ft as THRESHOLD_CSS_CLASS,
2343
- ue as THRESHOLD_CSS_VAR,
2344
- ce as THRESHOLD_HEX_FALLBACK,
2358
+ he as THRESHOLD_CSS_VAR,
2359
+ ue as THRESHOLD_HEX_FALLBACK,
2345
2360
  Wt as TIMER_LABELS,
2346
2361
  w as UnauthorizedError,
2347
2362
  st as VERY_SLOW_DURATION_MS,
2348
2363
  gt as buildQueryParams,
2349
- ge as buildQueryString,
2350
- se as buildSparklineData,
2364
+ ye as buildQueryString,
2365
+ oe as buildSparklineData,
2351
2366
  Ot as buildSqlCounts,
2352
- vr as classifyStatus,
2353
- Er as collectTopLevelObjectKeys,
2367
+ Cr as classifyStatus,
2368
+ Tr as collectTopLevelObjectKeys,
2354
2369
  U as compactPreview,
2355
- er as computeDashboardQuerySummary,
2356
- we as computePagination,
2357
- tr as computeQuerySummary,
2370
+ rr as computeDashboardQuerySummary,
2371
+ ve as computePagination,
2372
+ er as computeQuerySummary,
2358
2373
  tt as computeStats,
2359
- kr as copyWithFeedback,
2360
- Ze as countDuplicateQueries,
2374
+ Mr as copyWithFeedback,
2375
+ tr as countDuplicateQueries,
2361
2376
  Yt as countLeaves,
2362
- xe as createFilterState,
2377
+ Se as createFilterState,
2363
2378
  Pt as createHistoryBuffer,
2364
- be as createPaginationState,
2365
- Se as createSortState,
2379
+ xe as createPaginationState,
2380
+ we as createSortState,
2366
2381
  G as createTransmitSubscription,
2367
- Ce as detectFeatures,
2368
- Te as detectMetricGroupsFromStats,
2369
- de as durationClassName,
2382
+ Ee as detectFeatures,
2383
+ ke as detectMetricGroupsFromStats,
2384
+ fe as durationClassName,
2370
2385
  pt as durationSeverity,
2371
- pr as extractJobStats,
2372
- fr as extractJobs,
2386
+ mr as extractJobStats,
2387
+ pr as extractJobs,
2373
2388
  vt as fetchFeatures,
2374
- wr as fillPercent,
2375
- Ne as filterLogsByLevel,
2376
- Xe as filterQueries,
2389
+ vr as fillPercent,
2390
+ He as filterLogsByLevel,
2391
+ Ze as filterQueries,
2377
2392
  Jt as flattenConfig,
2378
2393
  Ht as flattenPlanTree,
2379
2394
  A as formatBytes,
2380
- me as formatCacheSize,
2381
- or as formatCellValue,
2382
- Sr as formatCollectorConfig,
2395
+ ge as formatCacheSize,
2396
+ ir as formatCellValue,
2397
+ wr as formatCollectorConfig,
2383
2398
  jt as formatConfigVal,
2384
2399
  ht as formatCount,
2385
- oe as formatDuration,
2386
- Cr as formatFlatValue,
2400
+ ie as formatDuration,
2401
+ Er as formatFlatValue,
2387
2402
  D as formatMb,
2388
2403
  Nt as formatPlanNodeMetrics,
2389
- le as formatStatNum,
2390
- ie as formatTime,
2391
- pe as formatTtl,
2404
+ ce as formatStatNum,
2405
+ ae as formatTime,
2406
+ me as formatTtl,
2392
2407
  ut as formatUptime,
2393
2408
  Z as generateGradientId,
2394
- ne as generateSparklinePath,
2395
- re as generateSparklinePoints,
2396
- lr as getDashboardGroupedColumns,
2397
- ar as getDashboardListColumns,
2409
+ se as generateSparklinePath,
2410
+ ne as generateSparklinePoints,
2411
+ cr as getDashboardGroupedColumns,
2412
+ lr as getDashboardListColumns,
2398
2413
  Mt as getDashboardSectionPath,
2399
- ir as getDebugPaneColumns,
2414
+ ar as getDebugPaneColumns,
2400
2415
  Tt as getDebugTabPath,
2401
- sr as getExplainColumns,
2402
- xr as getIntegrationDetails,
2403
- yr as getIntegrationLabel,
2404
- br as getIntegrationStatus,
2405
- dr as getJobStatusBadgeColor,
2406
- hr as getJobStatusCssClass,
2407
- Oe as getLogLevelCssClass,
2408
- ke as getMetricById,
2409
- Me as getMetricsByGroup,
2410
- ve as getPageNumbers,
2416
+ or as getExplainColumns,
2417
+ Sr as getIntegrationDetails,
2418
+ br as getIntegrationLabel,
2419
+ xr as getIntegrationStatus,
2420
+ fr as getJobStatusBadgeColor,
2421
+ dr as getJobStatusCssClass,
2422
+ Ne as getLogLevelCssClass,
2423
+ Me as getMetricById,
2424
+ Pe as getMetricsByGroup,
2425
+ Ce as getPageNumbers,
2411
2426
  F as getRatioColor,
2412
- He as getStructuredData,
2427
+ qe as getStructuredData,
2413
2428
  O as getTheme,
2414
2429
  v as getThresholdColor,
2415
2430
  dt as getThresholdColorInverse,
2416
- gr as getTimerLabel,
2417
- Ee as getVisibleMetricGroups,
2418
- nr as hasNestedPlan,
2419
- Re as initResizableColumns,
2420
- Le as initSplitPane,
2431
+ yr as getTimerLabel,
2432
+ Te as getVisibleMetricGroups,
2433
+ sr as hasNestedPlan,
2434
+ Le as initResizableColumns,
2435
+ De as initSplitPane,
2421
2436
  R as isRedactedValue,
2422
2437
  zt as isSecretKey,
2423
- Tr as matchesConfigSearch,
2424
- rr as normalizeDashboardQuery,
2425
- mr as normalizeTraceFields,
2426
- ee as onThemeChange,
2427
- ye as parsePaginatedResponse,
2438
+ kr as matchesConfigSearch,
2439
+ nr as normalizeDashboardQuery,
2440
+ gr as normalizeTraceFields,
2441
+ re as onThemeChange,
2442
+ be as parsePaginatedResponse,
2428
2443
  qt as parseTraceSpans,
2429
2444
  Bt as parseTraceWarnings,
2430
- Qe as resolveAttachmentCount,
2431
- Ge as resolveCcAddr,
2432
- Ke as resolveDuration,
2433
- Je as resolveEventName,
2445
+ Je as resolveAttachmentCount,
2446
+ Qe as resolveCcAddr,
2447
+ ze as resolveDuration,
2448
+ Ye as resolveEventName,
2434
2449
  u as resolveField,
2435
- We as resolveFromAddr,
2436
- qe as resolveJobTimestamp,
2450
+ Ve as resolveFromAddr,
2451
+ Be as resolveJobTimestamp,
2437
2452
  Ft as resolveLogLevel,
2438
- Ue as resolveLogMessage,
2439
- Ie as resolveLogRequestId,
2440
- _e as resolveLogTimestamp,
2441
- Ye as resolveMetric,
2453
+ _e as resolveLogMessage,
2454
+ Oe as resolveLogRequestId,
2455
+ Ie as resolveLogTimestamp,
2456
+ Xe as resolveMetric,
2442
2457
  K as resolveNormalizedSql,
2443
- ze as resolveSpanCount,
2458
+ je as resolveSpanCount,
2444
2459
  It as resolveSqlMethod,
2445
- Be as resolveStatusCode,
2460
+ Ke as resolveStatusCode,
2446
2461
  _t as resolveTimestamp,
2447
- Ve as resolveToAddr,
2462
+ Ge as resolveToAddr,
2448
2463
  M as resolveTraceField,
2449
- je as resolveWarningCount,
2464
+ We as resolveWarningCount,
2450
2465
  J as setTheme,
2451
- fe as shortReqId,
2452
- Mr as shouldRedact,
2453
- he as statusColor,
2466
+ pe as shortReqId,
2467
+ Pr as shouldRedact,
2468
+ de as statusColor,
2454
2469
  Q as subscribeToChannel,
2455
- ae as timeAgo,
2456
- te as toggleTheme
2470
+ le as timeAgo,
2471
+ ee as toggleTheme
2457
2472
  };