adonisjs-server-stats 1.6.1 → 1.6.2

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 (53) hide show
  1. package/dist/src/collectors/app_collector.d.ts.map +1 -1
  2. package/dist/src/collectors/app_collector.js +2 -1
  3. package/dist/src/collectors/auto_detect.d.ts.map +1 -1
  4. package/dist/src/collectors/auto_detect.js +7 -3
  5. package/dist/src/collectors/db_pool_collector.d.ts.map +1 -1
  6. package/dist/src/collectors/db_pool_collector.js +2 -1
  7. package/dist/src/collectors/http_collector.d.ts +4 -3
  8. package/dist/src/collectors/http_collector.d.ts.map +1 -1
  9. package/dist/src/collectors/http_collector.js +3 -5
  10. package/dist/src/collectors/redis_collector.d.ts.map +1 -1
  11. package/dist/src/collectors/redis_collector.js +2 -1
  12. package/dist/src/controller/debug_controller.d.ts +5 -0
  13. package/dist/src/controller/debug_controller.d.ts.map +1 -1
  14. package/dist/src/controller/debug_controller.js +24 -1
  15. package/dist/src/dashboard/chart_aggregator.d.ts.map +1 -1
  16. package/dist/src/dashboard/chart_aggregator.js +3 -2
  17. package/dist/src/dashboard/dashboard_store.d.ts.map +1 -1
  18. package/dist/src/dashboard/dashboard_store.js +47 -11
  19. package/dist/src/dashboard/migrator.d.ts +5 -0
  20. package/dist/src/dashboard/migrator.d.ts.map +1 -1
  21. package/dist/src/dashboard/migrator.js +44 -9
  22. package/dist/src/data/data_access.d.ts +4 -2
  23. package/dist/src/data/data_access.d.ts.map +1 -1
  24. package/dist/src/data/data_access.js +8 -3
  25. package/dist/src/define_config.d.ts.map +1 -1
  26. package/dist/src/define_config.js +7 -6
  27. package/dist/src/edge/client-vue/dashboard.js +1 -1
  28. package/dist/src/edge/client-vue/debug-panel-deferred.js +1 -1
  29. package/dist/src/edge/client-vue/debug-panel.js +1 -1
  30. package/dist/src/middleware/request_tracking_middleware.d.ts.map +1 -1
  31. package/dist/src/middleware/request_tracking_middleware.js +7 -0
  32. package/dist/src/provider/server_stats_provider.d.ts +9 -0
  33. package/dist/src/provider/server_stats_provider.d.ts.map +1 -1
  34. package/dist/src/provider/server_stats_provider.js +196 -59
  35. package/dist/src/utils/app_import.d.ts +23 -0
  36. package/dist/src/utils/app_import.d.ts.map +1 -0
  37. package/dist/src/utils/app_import.js +44 -0
  38. package/dist/vue/{CacheSection-CkrIB4-j.js → CacheSection-C788Yfai.js} +1 -1
  39. package/dist/vue/{ConfigSection-gulpOiq1.js → ConfigSection-CRzYxqW2.js} +1 -1
  40. package/dist/vue/{CustomPaneTab-J57ED_bh.js → CustomPaneTab-BJxT5Dp7.js} +33 -33
  41. package/dist/vue/{EmailsSection-BlKvQDx8.js → EmailsSection-C8JFMtW7.js} +1 -1
  42. package/dist/vue/{EventsSection-BdzQvIVJ.js → EventsSection-C4wXUgxG.js} +1 -1
  43. package/dist/vue/{JobsSection-DOzuMrG3.js → JobsSection-CsKWTjgN.js} +1 -1
  44. package/dist/vue/{LogsSection-CNN4y92u.js → LogsSection-BFVjSZ24.js} +12 -12
  45. package/dist/vue/{LogsTab-CJerb22r.js → LogsTab-DpEQ7euu.js} +17 -17
  46. package/dist/vue/{OverviewSection-SITNR_dA.js → OverviewSection-CbMdAido.js} +1 -1
  47. package/dist/vue/{QueriesSection-BAebAHkD.js → QueriesSection-BPiv7u3r.js} +1 -1
  48. package/dist/vue/{RequestsSection-CIR0IX39.js → RequestsSection-LtImH4rD.js} +1 -1
  49. package/dist/vue/{RoutesSection-j1U2oa0g.js → RoutesSection-CrxOxmzx.js} +1 -1
  50. package/dist/vue/{TimelineSection-Dw980UPg.js → TimelineSection-DLxMW2J_.js} +1 -1
  51. package/dist/vue/{index-COgsk_nv.js → index-qCQpBftQ.js} +2 -2
  52. package/dist/vue/index.js +1 -1
  53. package/package.json +5 -1
@@ -1,4 +1,4 @@
1
- import { defineComponent as F, ref as h, computed as K, onMounted as R, openBlock as n, createElementBlock as r, withDirectives as U, createElementVNode as m, vModelText as $, toDisplayString as l, createCommentVNode as v, Fragment as g, renderList as k, normalizeClass as y, createTextVNode as z } from "vue";
1
+ import { defineComponent as F, ref as h, computed as K, onMounted as R, openBlock as a, createElementBlock as r, withDirectives as U, createElementVNode as m, vModelText as $, toDisplayString as l, createCommentVNode as v, Fragment as b, renderList as k, normalizeClass as y, createTextVNode as z } from "vue";
2
2
  import { compactPreview as B, formatDuration as E, timeAgo as S, formatTime as O, durationSeverity as P } from "adonisjs-server-stats/core";
3
3
  import { u as j } from "./useApiClient-BQQ9CF-q.js";
4
4
  import { u as w } from "./useResizableTable-BoivAevK.js";
@@ -14,7 +14,7 @@ const J = {
14
14
  }, Q = ["onClick"], W = {
15
15
  key: 0,
16
16
  class: "ss-dbg-c-dim"
17
- }, X = ["title"], ae = /* @__PURE__ */ F({
17
+ }, X = ["title"], ne = /* @__PURE__ */ F({
18
18
  __name: "CustomPaneTab",
19
19
  props: {
20
20
  pane: {},
@@ -40,19 +40,19 @@ const J = {
40
40
  }
41
41
  }
42
42
  }
43
- const b = K(() => {
43
+ const g = K(() => {
44
44
  if (!c.value.trim()) return u.value;
45
- const e = c.value.toLowerCase(), a = o.pane.columns.filter((s) => s.searchable).map((s) => s.key);
46
- return a.length === 0 ? u.value : u.value.filter(
47
- (s) => a.some((i) => {
45
+ const e = c.value.toLowerCase(), n = o.pane.columns.filter((s) => s.searchable).map((s) => s.key);
46
+ return n.length === 0 ? u.value : u.value.filter(
47
+ (s) => n.some((i) => {
48
48
  const t = s[i];
49
49
  return t == null ? !1 : String(t).toLowerCase().includes(e);
50
50
  })
51
51
  );
52
52
  });
53
- function f(e, a) {
53
+ function f(e, n) {
54
54
  if (e == null) return "-";
55
- switch (a.format || "text") {
55
+ switch (n.format || "text") {
56
56
  case "time":
57
57
  return typeof e == "number" ? S(e) : String(e);
58
58
  case "timeAgo":
@@ -76,23 +76,23 @@ const J = {
76
76
  return String(e);
77
77
  }
78
78
  }
79
- function T(e, a) {
80
- if (a.format === "time" || a.format === "timeAgo")
79
+ function T(e, n) {
80
+ if (n.format === "time" || n.format === "timeAgo")
81
81
  return O(e);
82
82
  }
83
83
  function x(e) {
84
84
  return e == null;
85
85
  }
86
86
  function A(e) {
87
- const a = typeof e == "number" ? e : parseFloat(String(e));
88
- if (isNaN(a)) return "ss-dbg-duration";
89
- const s = P(a);
87
+ const n = typeof e == "number" ? e : parseFloat(String(e));
88
+ if (isNaN(n)) return "ss-dbg-duration";
89
+ const s = P(n);
90
90
  return s === "very-slow" ? "ss-dbg-duration ss-dbg-very-slow" : s === "slow" ? "ss-dbg-duration ss-dbg-slow" : "ss-dbg-duration";
91
91
  }
92
- function L(e, a) {
93
- if (a.format === "badge" && a.badgeColorMap) {
92
+ function L(e, n) {
93
+ if (n.format === "badge" && n.badgeColorMap) {
94
94
  const s = String(e).toLowerCase();
95
- return a.badgeColorMap[s] || "muted";
95
+ return n.badgeColorMap[s] || "muted";
96
96
  }
97
97
  return "";
98
98
  }
@@ -102,27 +102,27 @@ const J = {
102
102
  function M() {
103
103
  u.value = [];
104
104
  }
105
- const { tableRef: V } = w(() => b.value);
105
+ const { tableRef: V } = w(() => g.value);
106
106
  return R(() => {
107
107
  N();
108
- }), (e, a) => (n(), r("div", null, [
109
- d.pane.search ? (n(), r("div", J, [
108
+ }), (e, n) => (a(), r("div", null, [
109
+ d.pane.search ? (a(), r("div", J, [
110
110
  U(m("input", {
111
- "onUpdate:modelValue": a[0] || (a[0] = (s) => c.value = s),
111
+ "onUpdate:modelValue": n[0] || (n[0] = (s) => c.value = s),
112
112
  class: "ss-dbg-search",
113
113
  placeholder: d.pane.search.placeholder,
114
114
  type: "text"
115
115
  }, null, 8, q), [
116
116
  [$, c.value]
117
117
  ]),
118
- m("span", G, l(b.value.length) + " items", 1),
119
- d.pane.clearable ? (n(), r("button", {
118
+ m("span", G, l(g.value.length) + " items", 1),
119
+ d.pane.clearable ? (a(), r("button", {
120
120
  key: 0,
121
121
  class: "ss-dbg-btn-clear",
122
122
  onClick: M
123
123
  }, "Clear")) : v("", !0)
124
124
  ])) : v("", !0),
125
- p.value ? (n(), r("div", H, "Loading...")) : b.value.length === 0 ? (n(), r("div", I, "No data")) : (n(), r("table", {
125
+ p.value ? (a(), r("div", H, "Loading...")) : g.value.length === 0 ? (a(), r("div", I, "No data")) : (a(), r("table", {
126
126
  key: 3,
127
127
  ref_key: "tableRef",
128
128
  ref: V,
@@ -130,34 +130,34 @@ const J = {
130
130
  }, [
131
131
  m("thead", null, [
132
132
  m("tr", null, [
133
- (n(!0), r(g, null, k(d.pane.columns, (s) => (n(), r("th", {
133
+ (a(!0), r(b, null, k(d.pane.columns, (s) => (a(), r("th", {
134
134
  key: s.key
135
135
  }, l(s.label), 1))), 128))
136
136
  ])
137
137
  ]),
138
138
  m("tbody", null, [
139
- (n(!0), r(g, null, k(b.value, (s, i) => (n(), r("tr", {
140
- key: s.id ?? i
139
+ (a(!0), r(b, null, k(g.value, (s, i) => (a(), r("tr", {
140
+ key: String(s.id ?? i)
141
141
  }, [
142
- (n(!0), r(g, null, k(d.pane.columns, (t) => (n(), r("td", {
142
+ (a(!0), r(b, null, k(d.pane.columns, (t) => (a(), r("td", {
143
143
  key: t.key,
144
144
  class: y({ "ss-dbg-filterable": t.filterable }),
145
145
  onClick: (Y) => t.filterable ? c.value = String(s[t.key]) : void 0
146
146
  }, [
147
- x(s[t.key]) ? (n(), r("span", W, "-")) : t.format === "time" || t.format === "timeAgo" ? (n(), r("span", {
147
+ x(s[t.key]) ? (a(), r("span", W, "-")) : t.format === "time" || t.format === "timeAgo" ? (a(), r("span", {
148
148
  key: 1,
149
149
  class: "ss-dbg-event-time",
150
150
  title: T(s[t.key], t)
151
- }, l(f(s[t.key], t)), 9, X)) : t.format === "duration" ? (n(), r("span", {
151
+ }, l(f(s[t.key], t)), 9, X)) : t.format === "duration" ? (a(), r("span", {
152
152
  key: 2,
153
153
  class: y(A(s[t.key]))
154
- }, l(f(s[t.key], t)), 3)) : t.format === "method" ? (n(), r("span", {
154
+ }, l(f(s[t.key], t)), 3)) : t.format === "method" ? (a(), r("span", {
155
155
  key: 3,
156
156
  class: y(D(s[t.key]))
157
- }, l(f(s[t.key], t)), 3)) : t.format === "badge" ? (n(), r("span", {
157
+ }, l(f(s[t.key], t)), 3)) : t.format === "badge" ? (a(), r("span", {
158
158
  key: 4,
159
159
  class: y(`ss-dbg-badge ss-dbg-badge-${L(s[t.key], t)}`)
160
- }, l(f(s[t.key], t)), 3)) : (n(), r(g, { key: 5 }, [
160
+ }, l(f(s[t.key], t)), 3)) : (a(), r(b, { key: 5 }, [
161
161
  z(l(f(s[t.key], t)), 1)
162
162
  ], 64))
163
163
  ], 10, Q))), 128))
@@ -168,5 +168,5 @@ const J = {
168
168
  }
169
169
  });
170
170
  export {
171
- ae as default
171
+ ne as default
172
172
  };
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as V, inject as h, ref as f, computed as A, openBlock as o, createElementBlock as i, createElementVNode as e, Fragment as c, createTextVNode as u, toDisplayString as n, createCommentVNode as y, normalizeClass as _, createVNode as F, unref as r, renderList as B, createBlock as D } from "vue";
2
2
  import { formatTime as R, timeAgo as z } from "adonisjs-server-stats/core";
3
- import { u as L } from "./index-COgsk_nv.js";
3
+ import { u as L } from "./index-qCQpBftQ.js";
4
4
  import { u as M } from "./useResizableTable-BoivAevK.js";
5
5
  import { _ as U } from "./FilterBar.vue_vue_type_script_setup_true_lang-ClJ37hhT.js";
6
6
  import { _ as q } from "./PaginationControls.vue_vue_type_script_setup_true_lang-CuN7g_8Z.js";
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as E, inject as i, ref as p, computed as P, openBlock as s, createElementBlock as l, createVNode as v, unref as a, Fragment as h, createElementVNode as e, renderList as T, toDisplayString as c, createBlock as C, createCommentVNode as D } from "vue";
2
2
  import { formatTime as S, timeAgo as V } from "adonisjs-server-stats/core";
3
- import { u as $ } from "./index-COgsk_nv.js";
3
+ import { u as $ } from "./index-qCQpBftQ.js";
4
4
  import { u as A } from "./useResizableTable-BoivAevK.js";
5
5
  import { _ as B } from "./FilterBar.vue_vue_type_script_setup_true_lang-ClJ37hhT.js";
6
6
  import { _ as R } from "./PaginationControls.vue_vue_type_script_setup_true_lang-CuN7g_8Z.js";
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as L, inject as h, ref as p, computed as g, openBlock as o, createElementBlock as d, createElementVNode as s, toDisplayString as n, createCommentVNode as v, createVNode as k, unref as a, withCtx as z, Fragment as _, renderList as x, normalizeClass as w, withModifiers as K, createBlock as M } from "vue";
2
2
  import { extractJobs as O, extractJobStats as Q, JOB_STATUS_FILTERS as W, getJobStatusBadgeColor as q, formatDuration as G, formatTime as H, timeAgo as X } from "adonisjs-server-stats/core";
3
- import { u as Y } from "./index-COgsk_nv.js";
3
+ import { u as Y } from "./index-qCQpBftQ.js";
4
4
  import { u as Z } from "./useResizableTable-BoivAevK.js";
5
5
  import { _ as I } from "./JsonViewer.vue_vue_type_script_setup_true_lang-Vsqar1zx.js";
6
6
  import { _ as j } from "./FilterBar.vue_vue_type_script_setup_true_lang-ClJ37hhT.js";
@@ -1,6 +1,6 @@
1
- import { defineComponent as se, inject as k, ref as u, computed as R, openBlock as a, createElementBlock as o, createVNode as le, unref as s, withCtx as ae, createElementVNode as n, Fragment as F, renderList as L, normalizeClass as x, toDisplayString as i, withKeys as $, createCommentVNode as f, createStaticVNode as oe, createTextVNode as I, createBlock as ne } from "vue";
1
+ import { defineComponent as se, inject as k, ref as u, computed as R, openBlock as a, createElementBlock as o, createVNode as le, unref as s, withCtx as ae, createElementVNode as n, Fragment as F, renderList as L, normalizeClass as x, toDisplayString as i, withKeys as $, createCommentVNode as f, createStaticVNode as oe, createTextVNode as S, createBlock as ne } from "vue";
2
2
  import { LOG_LEVELS as ie, getLogLevelCssClass as re, resolveLogLevel as A, resolveLogTimestamp as b, formatTime as ue, timeAgo as de, resolveLogRequestId as m, resolveLogMessage as ce } from "adonisjs-server-stats/core";
3
- import { u as ve } from "./index-COgsk_nv.js";
3
+ import { u as ve } from "./index-qCQpBftQ.js";
4
4
  import { _ as pe } from "./FilterBar.vue_vue_type_script_setup_true_lang-ClJ37hhT.js";
5
5
  import { _ as he } from "./PaginationControls.vue_vue_type_script_setup_true_lang-CuN7g_8Z.js";
6
6
  const _e = { class: "ss-dash-log-filters" }, fe = ["onClick"], me = ["value"], ge = { class: "ss-dash-structured-search" }, ye = ["value"], ke = ["value"], be = ["value"], Ce = {
@@ -15,10 +15,10 @@ const _e = { class: "ss-dash-log-filters" }, fe = ["onClick"], me = ["value"], g
15
15
  }, Le = ["onClick"], $e = {
16
16
  key: 1,
17
17
  class: "ss-dash-empty"
18
- }, Ie = {
18
+ }, Se = {
19
19
  key: 2,
20
20
  class: "ss-dash-empty"
21
- }, Se = {
21
+ }, Ie = {
22
22
  key: 3,
23
23
  class: "ss-dash-empty"
24
24
  }, Ve = {
@@ -45,7 +45,7 @@ const _e = { class: "ss-dash-log-filters" }, fe = ["onClick"], me = ["value"], g
45
45
  dashboardEndpoint: O,
46
46
  authToken: U,
47
47
  refreshKey: B
48
- }), S = u(""), d = u("all"), r = u(""), p = u(""), h = u([]), C = u("level"), q = u("equals"), y = u(""), V = R(() => {
48
+ }), I = u(""), d = u("all"), r = u(""), p = u(""), h = u([]), C = u("level"), q = u("equals"), y = u(""), V = R(() => {
49
49
  if (!g.value) return [];
50
50
  const t = g.value;
51
51
  return t.data || t.logs || g.value || [];
@@ -53,7 +53,7 @@ const _e = { class: "ss-dash-log-filters" }, fe = ["onClick"], me = ["value"], g
53
53
  () => d.value !== "all" || r.value !== "" || h.value.length > 0
54
54
  );
55
55
  function X(t) {
56
- S.value = t, H(t);
56
+ I.value = t, H(t);
57
57
  }
58
58
  function Y(t) {
59
59
  d.value = t, t === "all" ? v("level", "") : v("level", t);
@@ -98,7 +98,7 @@ const _e = { class: "ss-dash-log-filters" }, fe = ["onClick"], me = ["value"], g
98
98
  }
99
99
  return (t, l) => (a(), o("div", null, [
100
100
  le(pe, {
101
- "model-value": S.value,
101
+ "model-value": I.value,
102
102
  placeholder: "Search logs...",
103
103
  summary: `${s(c).total ?? 0} logs`,
104
104
  "onUpdate:modelValue": X
@@ -161,7 +161,7 @@ const _e = { class: "ss-dash-log-filters" }, fe = ["onClick"], me = ["value"], g
161
161
  ]),
162
162
  Q.value ? (a(), o("div", Ce, [
163
163
  d.value !== "all" ? (a(), o("span", qe, [
164
- I(" level: " + i(d.value) + " ", 1),
164
+ S(" level: " + i(d.value) + " ", 1),
165
165
  n("button", {
166
166
  type: "button",
167
167
  class: "ss-dash-filter-chip-remove",
@@ -169,7 +169,7 @@ const _e = { class: "ss-dash-log-filters" }, fe = ["onClick"], me = ["value"], g
169
169
  }, " × ")
170
170
  ])) : f("", !0),
171
171
  r.value ? (a(), o("span", Fe, [
172
- I(" requestId: " + i(r.value.slice(0, 8)) + "... ", 1),
172
+ S(" requestId: " + i(r.value.slice(0, 8)) + "... ", 1),
173
173
  n("button", {
174
174
  type: "button",
175
175
  class: "ss-dash-filter-chip-remove",
@@ -180,7 +180,7 @@ const _e = { class: "ss-dash-log-filters" }, fe = ["onClick"], me = ["value"], g
180
180
  key: _,
181
181
  class: "ss-dash-filter-chip"
182
182
  }, [
183
- I(i(e.field) + " " + i(e.operator) + ' "' + i(e.value) + '" ', 1),
183
+ S(i(e.field) + " " + i(e.operator) + ' "' + i(e.value) + '" ', 1),
184
184
  n("button", {
185
185
  type: "button",
186
186
  class: "ss-dash-filter-chip-remove",
@@ -188,9 +188,9 @@ const _e = { class: "ss-dash-log-filters" }, fe = ["onClick"], me = ["value"], g
188
188
  }, " × ", 8, Le)
189
189
  ]))), 128))
190
190
  ])) : f("", !0),
191
- s(z) ? (a(), o("div", $e, "Failed to load logs")) : s(j) && !s(g) ? (a(), o("div", Ie, "Loading logs...")) : V.value.length === 0 ? (a(), o("div", Se, " No log entries" + i(r.value ? ` matching request ${r.value}` : d.value !== "all" ? ` for ${d.value}` : ""), 1)) : (a(), o("div", Ve, [
191
+ s(z) ? (a(), o("div", $e, "Failed to load logs")) : s(j) && !s(g) ? (a(), o("div", Se, "Loading logs...")) : V.value.length === 0 ? (a(), o("div", Ie, " No log entries" + i(r.value ? ` matching request ${r.value}` : d.value !== "all" ? ` for ${d.value}` : ""), 1)) : (a(), o("div", Ve, [
192
192
  (a(!0), o(F, null, L(V.value, (e, _) => (a(), o("div", {
193
- key: e.id || _,
193
+ key: String(e.id || _),
194
194
  class: "ss-dash-log-entry"
195
195
  }, [
196
196
  n("span", {
@@ -1,6 +1,6 @@
1
- import { defineComponent as E, ref as h, computed as _, openBlock as l, createElementBlock as n, createElementVNode as r, Fragment as L, renderList as k, unref as s, normalizeClass as C, toDisplayString as i, createCommentVNode as w, withDirectives as x, vModelText as q, withKeys as F } from "vue";
2
- import { filterLogsByLevel as M, resolveLogRequestId as d, resolveLogMessage as B, LOG_LEVELS as N, getLogLevelCssClass as R, resolveLogLevel as I, resolveLogTimestamp as m, formatTime as D, timeAgo as K, TAB_ICONS as $ } from "adonisjs-server-stats/core";
3
- const P = { class: "ss-dbg-log-filters" }, S = ["onClick"], U = {
1
+ import { defineComponent as E, ref as h, computed as _, openBlock as n, createElementBlock as l, createElementVNode as r, Fragment as L, renderList as k, unref as s, normalizeClass as C, toDisplayString as i, createCommentVNode as w, withDirectives as x, vModelText as q, withKeys as F } from "vue";
2
+ import { filterLogsByLevel as M, resolveLogRequestId as d, resolveLogMessage as B, LOG_LEVELS as N, getLogLevelCssClass as R, resolveLogLevel as I, resolveLogTimestamp as m, formatTime as S, timeAgo as D, TAB_ICONS as $ } from "adonisjs-server-stats/core";
3
+ const K = { class: "ss-dbg-log-filters" }, P = ["onClick"], U = {
4
4
  class: "ss-dbg-summary",
5
5
  style: { "margin-left": "auto" }
6
6
  }, H = { class: "ss-dbg-search-bar" }, O = { class: "ss-dbg-summary" }, j = {
@@ -39,15 +39,15 @@ const P = { class: "ss-dbg-log-filters" }, S = ["onClick"], U = {
39
39
  function f(o) {
40
40
  a.value = o, A("filterByRequestId", o);
41
41
  }
42
- return (o, t) => (l(), n("div", null, [
43
- r("div", P, [
44
- (l(!0), n(L, null, k(s(N), (e) => (l(), n("button", {
42
+ return (o, t) => (n(), l("div", null, [
43
+ r("div", K, [
44
+ (n(!0), l(L, null, k(s(N), (e) => (n(), l("button", {
45
45
  key: e,
46
46
  type: "button",
47
47
  class: C(["ss-dbg-log-filter", { "ss-dbg-active": b.value === e }]),
48
48
  onClick: (u) => b.value = e
49
- }, i(e), 11, S))), 128)),
50
- a.value ? (l(), n("button", {
49
+ }, i(e), 11, P))), 128)),
50
+ a.value ? (n(), l("button", {
51
51
  key: 0,
52
52
  type: "button",
53
53
  class: "ss-dbg-log-filter ss-dbg-active",
@@ -74,9 +74,9 @@ const P = { class: "ss-dbg-log-filters" }, S = ["onClick"], U = {
74
74
  ]),
75
75
  r("span", O, i(V.value), 1)
76
76
  ]),
77
- v.value.length === 0 ? (l(), n("div", j, "No log entries")) : (l(), n("div", z, [
78
- (l(!0), n(L, null, k(v.value, (e, u) => (l(), n("div", {
79
- key: e.id || u,
77
+ v.value.length === 0 ? (n(), l("div", j, "No log entries")) : (n(), l("div", z, [
78
+ (n(!0), l(L, null, k(v.value, (e, u) => (n(), l("div", {
79
+ key: String(e.id || u),
80
80
  class: "ss-dbg-log-entry"
81
81
  }, [
82
82
  r("span", {
@@ -84,9 +84,9 @@ const P = { class: "ss-dbg-log-filters" }, S = ["onClick"], U = {
84
84
  }, i(s(I)(e).toUpperCase()), 3),
85
85
  r("span", {
86
86
  class: "ss-dbg-log-time",
87
- title: s(m)(e) ? s(D)(s(m)(e)) : ""
88
- }, i(s(m)(e) ? s(K)(s(m)(e)) : "-"), 9, G),
89
- s(d)(e) ? (l(), n("span", {
87
+ title: s(m)(e) ? s(S)(s(m)(e)) : ""
88
+ }, i(s(m)(e) ? s(D)(s(m)(e)) : "-"), 9, G),
89
+ s(d)(e) ? (n(), l("span", {
90
90
  key: 0,
91
91
  class: "ss-dbg-log-reqid",
92
92
  role: "button",
@@ -94,15 +94,15 @@ const P = { class: "ss-dbg-log-filters" }, S = ["onClick"], U = {
94
94
  title: s(d)(e),
95
95
  onClick: (g) => f(s(d)(e)),
96
96
  onKeydown: F((g) => f(s(d)(e)), ["enter"])
97
- }, i(s(d)(e).slice(0, 8)), 41, J)) : (l(), n("span", Q, "-")),
97
+ }, i(s(d)(e).slice(0, 8)), 41, J)) : (n(), l("span", Q, "-")),
98
98
  r("span", W, i(s(B)(e)), 1),
99
- p.dashboardPath && s(d)(e) ? (l(), n("a", {
99
+ p.dashboardPath && s(d)(e) ? (n(), l("a", {
100
100
  key: 2,
101
101
  href: `${p.dashboardPath}#logs?requestId=${s(d)(e)}`,
102
102
  target: "_blank",
103
103
  class: "ss-dbg-deeplink"
104
104
  }, [
105
- (l(), n("svg", {
105
+ (n(), l("svg", {
106
106
  viewBox: s($)["open-external"].viewBox,
107
107
  width: "12",
108
108
  height: "12",
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as ws, openBlock as o, createElementBlock as n, Fragment as _, renderList as k, createElementVNode as s, normalizeClass as b, toDisplayString as r, inject as P, ref as D, watch as ms, computed as d, onUnmounted as Ws, unref as x, createVNode as F, createCommentVNode as v, normalizeStyle as ts, createTextVNode as gs } from "vue";
2
2
  import { formatDuration as N, formatTime as Os, timeAgo as Hs, durationSeverity as Ks } from "adonisjs-server-stats/core";
3
- import { u as xs, _ as U } from "./index-COgsk_nv.js";
3
+ import { u as xs, _ as U } from "./index-qCQpBftQ.js";
4
4
  const Gs = { class: "ss-dash-btn-group" }, Xs = ["onClick"], Ys = /* @__PURE__ */ ws({
5
5
  __name: "TimeRangeSelector",
6
6
  props: {
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as H, inject as A, ref as C, computed as g, openBlock as o, createElementBlock as i, createVNode as W, withCtx as it, createElementVNode as e, normalizeClass as f, unref as u, createTextVNode as b, toDisplayString as r, createCommentVNode as v, Fragment as k, renderList as T, withKeys as B, withModifiers as L, createBlock as rt, h as D } from "vue";
2
2
  import { formatTime as ut, timeAgo as dt, SLOW_DURATION_MS as pt, durationSeverity as ct } from "adonisjs-server-stats/core";
3
- import { u as vt } from "./index-COgsk_nv.js";
3
+ import { u as vt } from "./index-qCQpBftQ.js";
4
4
  import { u as ht } from "./useResizableTable-BoivAevK.js";
5
5
  import { _ as mt } from "./FilterBar.vue_vue_type_script_setup_true_lang-ClJ37hhT.js";
6
6
  import { _ as ft } from "./PaginationControls.vue_vue_type_script_setup_true_lang-CuN7g_8Z.js";
@@ -1,7 +1,7 @@
1
1
  import { defineComponent as M, inject as _, ref as h, computed as U, openBlock as o, createElementBlock as l, Fragment as m, createElementVNode as s, normalizeClass as v, toDisplayString as n, createVNode as D, unref as a, createCommentVNode as u, createTextVNode as y, renderList as j, createBlock as K } from "vue";
2
2
  import { formatTime as G, timeAgo as H, normalizeTraceFields as I, durationSeverity as J } from "adonisjs-server-stats/core";
3
3
  import { u as O } from "./useApiClient-BQQ9CF-q.js";
4
- import { u as Q } from "./index-COgsk_nv.js";
4
+ import { u as Q } from "./index-qCQpBftQ.js";
5
5
  import { u as W } from "./useResizableTable-BoivAevK.js";
6
6
  import { _ as X } from "./FilterBar.vue_vue_type_script_setup_true_lang-ClJ37hhT.js";
7
7
  import { _ as Y } from "./PaginationControls.vue_vue_type_script_setup_true_lang-CuN7g_8Z.js";
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as g, inject as d, ref as c, computed as A, openBlock as l, createElementBlock as o, createVNode as N, unref as u, createElementVNode as e, Fragment as R, renderList as S, normalizeClass as j, toDisplayString as a } from "vue";
2
- import { u as z } from "./index-COgsk_nv.js";
2
+ import { u as z } from "./index-qCQpBftQ.js";
3
3
  import { u as C } from "./useResizableTable-BoivAevK.js";
4
4
  import { _ as D } from "./FilterBar.vue_vue_type_script_setup_true_lang-ClJ37hhT.js";
5
5
  const E = {
@@ -1,7 +1,7 @@
1
1
  import { defineComponent as M, inject as v, ref as i, computed as U, openBlock as l, createElementBlock as o, Fragment as c, createElementVNode as s, normalizeClass as h, toDisplayString as n, unref as a, createVNode as C, createCommentVNode as x, renderList as z, createBlock as j } from "vue";
2
2
  import { parseTraceSpans as $, parseTraceWarnings as I, formatTime as K, timeAgo as W, durationSeverity as q } from "adonisjs-server-stats/core";
3
3
  import { u as G } from "./useApiClient-BQQ9CF-q.js";
4
- import { u as H } from "./index-COgsk_nv.js";
4
+ import { u as H } from "./index-qCQpBftQ.js";
5
5
  import { u as J } from "./useResizableTable-BoivAevK.js";
6
6
  import { _ as O } from "./FilterBar.vue_vue_type_script_setup_true_lang-ClJ37hhT.js";
7
7
  import { _ as Q } from "./PaginationControls.vue_vue_type_script_setup_true_lang-CuN7g_8Z.js";
@@ -627,7 +627,7 @@ const pt = ["title", "aria-label"], mt = ["viewBox", "innerHTML"], kt = ["viewBo
627
627
  defaultOpen: { type: Boolean, default: !1 }
628
628
  },
629
629
  setup(e, { expose: T }) {
630
- const a = $(() => import("./QueriesTab-C8_7oprC.js")), S = $(() => import("./EventsTab-DQ4Nd6AK.js")), i = $(() => import("./EmailsTab-DhFhoNmU.js")), f = $(() => import("./RoutesTab-Dz0MkZuF.js")), _ = $(() => import("./LogsTab-CJerb22r.js")), k = $(() => import("./TimelineTab-Db6lKKsD.js")), x = $(() => import("./CacheTab-BPisYYiQ.js")), P = $(() => import("./JobsTab-BCvhOARO.js")), U = $(() => import("./ConfigTab-C8cafGUj.js")), C = $(() => import("./InternalsTab-DEMjqtlw.js")), h = $(() => import("./CustomPaneTab-J57ED_bh.js")), b = e, u = v(b.defaultOpen), r = v("queries"), { theme: p } = le(), { features: y } = ce({
630
+ const a = $(() => import("./QueriesTab-C8_7oprC.js")), S = $(() => import("./EventsTab-DQ4Nd6AK.js")), i = $(() => import("./EmailsTab-DhFhoNmU.js")), f = $(() => import("./RoutesTab-Dz0MkZuF.js")), _ = $(() => import("./LogsTab-DpEQ7euu.js")), k = $(() => import("./TimelineTab-Db6lKKsD.js")), x = $(() => import("./CacheTab-BPisYYiQ.js")), P = $(() => import("./JobsTab-BCvhOARO.js")), U = $(() => import("./ConfigTab-C8cafGUj.js")), C = $(() => import("./InternalsTab-DEMjqtlw.js")), h = $(() => import("./CustomPaneTab-BJxT5Dp7.js")), b = e, u = v(b.defaultOpen), r = v("queries"), { theme: p } = le(), { features: y } = ce({
631
631
  baseUrl: b.baseUrl,
632
632
  debugEndpoint: b.debugEndpoint,
633
633
  authToken: b.authToken
@@ -971,7 +971,7 @@ const Ut = ["data-theme"], Rt = { class: "ss-dash-header" }, Dt = { class: "ss-d
971
971
  channelName: { default: "server-stats/dashboard" }
972
972
  },
973
973
  setup(e) {
974
- const T = $(() => import("./OverviewSection-SITNR_dA.js")), a = $(() => import("./RequestsSection-CIR0IX39.js")), S = $(() => import("./QueriesSection-BAebAHkD.js")), i = $(() => import("./EventsSection-BdzQvIVJ.js")), f = $(() => import("./RoutesSection-j1U2oa0g.js")), _ = $(() => import("./LogsSection-CNN4y92u.js")), k = $(() => import("./EmailsSection-BlKvQDx8.js")), x = $(() => import("./TimelineSection-Dw980UPg.js")), P = $(() => import("./CacheSection-CkrIB4-j.js")), U = $(() => import("./JobsSection-DOzuMrG3.js")), C = $(() => import("./ConfigSection-gulpOiq1.js")), h = $(() => import("./InternalsSection-BJUXE-5F.js")), b = [
974
+ const T = $(() => import("./OverviewSection-CbMdAido.js")), a = $(() => import("./RequestsSection-LtImH4rD.js")), S = $(() => import("./QueriesSection-BPiv7u3r.js")), i = $(() => import("./EventsSection-C4wXUgxG.js")), f = $(() => import("./RoutesSection-CrxOxmzx.js")), _ = $(() => import("./LogsSection-BFVjSZ24.js")), k = $(() => import("./EmailsSection-C8JFMtW7.js")), x = $(() => import("./TimelineSection-DLxMW2J_.js")), P = $(() => import("./CacheSection-C788Yfai.js")), U = $(() => import("./JobsSection-CsKWTjgN.js")), C = $(() => import("./ConfigSection-CRzYxqW2.js")), h = $(() => import("./InternalsSection-BJUXE-5F.js")), b = [
975
975
  "overview",
976
976
  "requests",
977
977
  "queries",
package/dist/vue/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { a as s, b as r, c as u, u as t, d as D, e as b, f as g, g as o } from "./index-COgsk_nv.js";
1
+ import { a as s, b as r, c as u, u as t, d as D, e as b, f as g, g as o } from "./index-qCQpBftQ.js";
2
2
  export {
3
3
  s as DashboardPage,
4
4
  r as DebugPanel,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "adonisjs-server-stats",
3
- "version": "1.6.1",
3
+ "version": "1.6.2",
4
4
  "description": "Real-time server monitoring for AdonisJS v6 applications",
5
5
  "keywords": [
6
6
  "adonisjs",
@@ -155,6 +155,7 @@
155
155
  "@adonisjs/transmit-client": "^1.0.0",
156
156
  "@julr/adonisjs-prometheus": "^1.4.0",
157
157
  "better-sqlite3": "^7.0.0 || ^11.0.0",
158
+ "knex": "^3.0.0",
158
159
  "bullmq": "^5.0.0",
159
160
  "edge.js": "^6.0.0",
160
161
  "react": "^18.0.0 || ^19.0.0",
@@ -183,6 +184,9 @@
183
184
  "better-sqlite3": {
184
185
  "optional": true
185
186
  },
187
+ "knex": {
188
+ "optional": true
189
+ },
186
190
  "react": {
187
191
  "optional": true
188
192
  },