adonisjs-server-stats 1.10.0 → 1.11.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 (248) hide show
  1. package/README.md +23 -14
  2. package/dist/core/config-utils.d.ts +8 -0
  3. package/dist/core/constants.d.ts +4 -0
  4. package/dist/core/dashboard-data-controller.d.ts +16 -0
  5. package/dist/core/dashboard-data-helpers.d.ts +12 -0
  6. package/dist/core/debug-data-controller.d.ts +4 -0
  7. package/dist/core/define-config-helpers.d.ts +25 -0
  8. package/dist/core/feature-detect-helpers.d.ts +36 -0
  9. package/dist/core/field-resolvers.d.ts +64 -0
  10. package/dist/core/formatters-helpers.d.ts +23 -0
  11. package/dist/core/formatters.d.ts +15 -0
  12. package/dist/core/index.d.ts +1 -1
  13. package/dist/core/index.js +599 -509
  14. package/dist/core/log-utils-helpers.d.ts +13 -0
  15. package/dist/core/metrics.d.ts +3 -28
  16. package/dist/core/pagination.d.ts +0 -9
  17. package/dist/core/server-stats-controller.d.ts +6 -0
  18. package/dist/core/transmit-helpers.d.ts +7 -0
  19. package/dist/core/types-dashboard.d.ts +178 -0
  20. package/dist/core/types-diagnostics.d.ts +85 -0
  21. package/dist/core/types.d.ts +10 -442
  22. package/dist/react/CacheSection-BYN53kYO.js +135 -0
  23. package/dist/react/CacheStatsBar-CRodCOeP.js +27 -0
  24. package/dist/react/CacheTab-DOhuK05d.js +106 -0
  25. package/dist/react/{ConfigSection-DfFd-WRq.js → ConfigSection-B9EHh4Rp.js} +1 -1
  26. package/dist/react/{ConfigTab-Bdg8YMer.js → ConfigTab-C8kriE2b.js} +1 -1
  27. package/dist/react/CustomPaneTab-CvzQS_Wh.js +99 -0
  28. package/dist/react/EmailPreviewOverlay-BmXOAvqG.js +58 -0
  29. package/dist/react/EmailsSection-BJyFJf7A.js +226 -0
  30. package/dist/react/EmailsTab-Ch8jp10B.js +110 -0
  31. package/dist/react/{EventsSection-ByQ-9blq.js → EventsSection-DJPwHeT8.js} +28 -27
  32. package/dist/react/EventsTab-B-FoehXC.js +58 -0
  33. package/dist/react/{FilterBar-DQRXpWrb.js → FilterBar-CQ7bD669.js} +15 -15
  34. package/dist/react/{InternalsContent-DBzsI0CG.js → InternalsContent-O8ino9oM.js} +133 -109
  35. package/dist/react/InternalsSection-B6VlVx5f.js +22 -0
  36. package/dist/react/InternalsTab-CkEKpRMU.js +17 -0
  37. package/dist/react/JobStatsBar-C7RslAFE.js +30 -0
  38. package/dist/react/JobsSection-DWF4i1t_.js +167 -0
  39. package/dist/react/JobsTab-DqnifQXV.js +129 -0
  40. package/dist/react/LogEntryRow-CMMkqA9M.js +43 -0
  41. package/dist/react/LogsSection-C1xC5aP4.js +198 -0
  42. package/dist/react/LogsTab-CS4sLfLw.js +79 -0
  43. package/dist/react/{OverviewSection-C4T1ur51.js → OverviewSection-CxvfOR0v.js} +70 -80
  44. package/dist/react/QueriesSection-CrMdU5Ax.js +458 -0
  45. package/dist/react/{QueriesTab-osLUWd4L.js → QueriesTab-x85PjkyS.js} +38 -40
  46. package/dist/react/RequestsSection-DETN9oZb.js +321 -0
  47. package/dist/react/{RoutesSection-BUSkM6PY.js → RoutesSection-CmorkJeC.js} +2 -2
  48. package/dist/react/RoutesTab-CbzBOzpc.js +68 -0
  49. package/dist/react/SplitPaneWrapper-BiIgT4ND.js +49 -0
  50. package/dist/react/TimeAgoCell-o3KigGfM.js +8 -0
  51. package/dist/react/{TimelineTab-Covg5weo.js → TimelineTab-Ue9tUD_n.js} +76 -102
  52. package/dist/react/index-DwDK-4oX.js +1121 -0
  53. package/dist/react/index.js +6 -6
  54. package/dist/react/react/components/shared/CacheStatsBar.d.ts +13 -0
  55. package/dist/react/react/components/shared/EmailPreviewOverlay.d.ts +29 -0
  56. package/dist/react/react/components/{Dashboard/shared → shared}/FilterBar.d.ts +4 -3
  57. package/dist/react/react/components/shared/JobStatsBar.d.ts +12 -0
  58. package/dist/react/react/components/shared/LogEntryRow.d.ts +9 -0
  59. package/dist/react/react/components/shared/RelatedLogs.d.ts +2 -2
  60. package/dist/react/react/components/shared/SplitPaneWrapper.d.ts +7 -0
  61. package/dist/react/react/components/shared/TimeAgoCell.d.ts +17 -0
  62. package/dist/react/react/hooks/useDashboardData.d.ts +4 -8
  63. package/dist/react/react/hooks/useDiagnosticsData.d.ts +14 -0
  64. package/dist/react/style.css +1 -1
  65. package/dist/src/collectors/app_collector.d.ts +0 -8
  66. package/dist/src/collectors/app_collector.js +45 -52
  67. package/dist/src/collectors/auto_detect.d.ts +0 -23
  68. package/dist/src/collectors/auto_detect.js +33 -55
  69. package/dist/src/collectors/db_pool_collector.d.ts +14 -16
  70. package/dist/src/collectors/db_pool_collector.js +72 -57
  71. package/dist/src/collectors/log_collector.d.ts +0 -47
  72. package/dist/src/collectors/log_collector.js +36 -65
  73. package/dist/src/collectors/queue_collector.d.ts +0 -20
  74. package/dist/src/collectors/queue_collector.js +60 -76
  75. package/dist/src/collectors/redis_collector.d.ts +10 -10
  76. package/dist/src/collectors/redis_collector.js +69 -66
  77. package/dist/src/config/deprecation_migration.d.ts +7 -0
  78. package/dist/src/config/deprecation_migration.js +201 -0
  79. package/dist/src/controller/debug_controller.d.ts +1 -1
  80. package/dist/src/controller/debug_controller.js +87 -81
  81. package/dist/src/dashboard/cache_handlers.d.ts +14 -0
  82. package/dist/src/dashboard/cache_handlers.js +52 -0
  83. package/dist/src/dashboard/chart_aggregator.d.ts +0 -7
  84. package/dist/src/dashboard/chart_aggregator.js +68 -50
  85. package/dist/src/dashboard/coalesce_cache.d.ts +25 -0
  86. package/dist/src/dashboard/coalesce_cache.js +47 -0
  87. package/dist/src/dashboard/dashboard_controller.d.ts +11 -37
  88. package/dist/src/dashboard/dashboard_controller.js +51 -544
  89. package/dist/src/dashboard/dashboard_page_assets.d.ts +17 -0
  90. package/dist/src/dashboard/dashboard_page_assets.js +51 -0
  91. package/dist/src/dashboard/dashboard_store.d.ts +19 -218
  92. package/dist/src/dashboard/dashboard_store.js +115 -1116
  93. package/dist/src/dashboard/dashboard_types.d.ts +83 -0
  94. package/dist/src/dashboard/dashboard_types.js +4 -0
  95. package/dist/src/dashboard/detail_queries.d.ts +19 -0
  96. package/dist/src/dashboard/detail_queries.js +98 -0
  97. package/dist/src/dashboard/email_event_builder.d.ts +8 -0
  98. package/dist/src/dashboard/email_event_builder.js +65 -0
  99. package/dist/src/dashboard/explain_query.d.ts +8 -0
  100. package/dist/src/dashboard/explain_query.js +22 -0
  101. package/dist/src/dashboard/filter_handlers.d.ts +23 -0
  102. package/dist/src/dashboard/filter_handlers.js +56 -0
  103. package/dist/src/dashboard/filtered_queries.d.ts +15 -0
  104. package/dist/src/dashboard/filtered_queries.js +155 -0
  105. package/dist/src/dashboard/flush_manager.d.ts +25 -0
  106. package/dist/src/dashboard/flush_manager.js +107 -0
  107. package/dist/src/dashboard/format_helpers.d.ts +126 -0
  108. package/dist/src/dashboard/format_helpers.js +140 -0
  109. package/dist/src/dashboard/inspector_manager.d.ts +36 -0
  110. package/dist/src/dashboard/inspector_manager.js +102 -0
  111. package/dist/src/dashboard/integrations/config_inspector.js +11 -13
  112. package/dist/src/dashboard/integrations/queue_inspector.d.ts +3 -3
  113. package/dist/src/dashboard/integrations/queue_inspector.js +13 -10
  114. package/dist/src/dashboard/jobs_handlers.d.ts +14 -0
  115. package/dist/src/dashboard/jobs_handlers.js +61 -0
  116. package/dist/src/dashboard/knex_factory.d.ts +18 -0
  117. package/dist/src/dashboard/knex_factory.js +91 -0
  118. package/dist/src/dashboard/migrator.js +30 -159
  119. package/dist/src/dashboard/migrator_tables.d.ts +19 -0
  120. package/dist/src/dashboard/migrator_tables.js +153 -0
  121. package/dist/src/dashboard/overview_queries.d.ts +66 -0
  122. package/dist/src/dashboard/overview_queries.js +155 -0
  123. package/dist/src/dashboard/overview_query_runners.d.ts +25 -0
  124. package/dist/src/dashboard/overview_query_runners.js +84 -0
  125. package/dist/src/dashboard/overview_store_queries.d.ts +40 -0
  126. package/dist/src/dashboard/overview_store_queries.js +69 -0
  127. package/dist/src/dashboard/paginate_helper.d.ts +12 -0
  128. package/dist/src/dashboard/paginate_helper.js +33 -0
  129. package/dist/src/dashboard/query_explain_handler.d.ts +10 -0
  130. package/dist/src/dashboard/query_explain_handler.js +80 -0
  131. package/dist/src/dashboard/read_queries.d.ts +32 -0
  132. package/dist/src/dashboard/read_queries.js +107 -0
  133. package/dist/src/dashboard/saved_filter_queries.d.ts +10 -0
  134. package/dist/src/dashboard/saved_filter_queries.js +24 -0
  135. package/dist/src/dashboard/storage_stats.d.ts +41 -0
  136. package/dist/src/dashboard/storage_stats.js +81 -0
  137. package/dist/src/dashboard/write_queue.d.ts +106 -0
  138. package/dist/src/dashboard/write_queue.js +225 -0
  139. package/dist/src/data/data_access.d.ts +2 -39
  140. package/dist/src/data/data_access.js +17 -193
  141. package/dist/src/data/data_access_helpers.d.ts +130 -0
  142. package/dist/src/data/data_access_helpers.js +212 -0
  143. package/dist/src/debug/debug_store.js +37 -32
  144. package/dist/src/debug/email_collector.d.ts +1 -10
  145. package/dist/src/debug/email_collector.js +78 -81
  146. package/dist/src/debug/event_collector.d.ts +0 -9
  147. package/dist/src/debug/event_collector.js +79 -62
  148. package/dist/src/debug/query_collector.js +23 -19
  149. package/dist/src/debug/route_inspector.d.ts +1 -5
  150. package/dist/src/debug/route_inspector.js +50 -51
  151. package/dist/src/debug/trace_collector.d.ts +9 -1
  152. package/dist/src/debug/trace_collector.js +21 -15
  153. package/dist/src/debug/types.d.ts +1 -1
  154. package/dist/src/define_config.d.ts +0 -65
  155. package/dist/src/define_config.js +93 -333
  156. package/dist/src/edge/client/dashboard.js +2 -2
  157. package/dist/src/edge/client/debug-panel-deferred.js +1 -1
  158. package/dist/src/edge/client/stats-bar.js +1 -1
  159. package/dist/src/edge/client-vue/dashboard.js +5 -5
  160. package/dist/src/edge/client-vue/debug-panel-deferred.js +4 -4
  161. package/dist/src/edge/client-vue/stats-bar.js +3 -3
  162. package/dist/src/edge/plugin.d.ts +0 -16
  163. package/dist/src/edge/plugin.js +57 -64
  164. package/dist/src/engine/request_metrics.d.ts +1 -0
  165. package/dist/src/engine/request_metrics.js +32 -42
  166. package/dist/src/middleware/request_tracking_middleware.d.ts +2 -8
  167. package/dist/src/middleware/request_tracking_middleware.js +65 -93
  168. package/dist/src/provider/auth_middleware_detector.d.ts +16 -0
  169. package/dist/src/provider/auth_middleware_detector.js +97 -0
  170. package/dist/src/provider/boot_helpers.d.ts +20 -0
  171. package/dist/src/provider/boot_helpers.js +91 -0
  172. package/dist/src/provider/boot_initializer.d.ts +28 -0
  173. package/dist/src/provider/boot_initializer.js +35 -0
  174. package/dist/src/provider/dashboard_init.d.ts +30 -0
  175. package/dist/src/provider/dashboard_init.js +138 -0
  176. package/dist/src/provider/dashboard_setup.d.ts +25 -0
  177. package/dist/src/provider/dashboard_setup.js +78 -0
  178. package/dist/src/provider/diagnostics.d.ts +134 -0
  179. package/dist/src/provider/diagnostics.js +127 -0
  180. package/dist/src/provider/email_bridge.d.ts +43 -0
  181. package/dist/src/provider/email_bridge.js +80 -0
  182. package/dist/src/provider/email_helpers.d.ts +13 -0
  183. package/dist/src/provider/email_helpers.js +68 -0
  184. package/dist/src/provider/pino_hook.d.ts +17 -0
  185. package/dist/src/provider/pino_hook.js +35 -0
  186. package/dist/src/provider/provider_helpers_extra.d.ts +47 -0
  187. package/dist/src/provider/provider_helpers_extra.js +177 -0
  188. package/dist/src/provider/server_stats_provider.d.ts +39 -85
  189. package/dist/src/provider/server_stats_provider.js +132 -951
  190. package/dist/src/provider/shutdown_helpers.d.ts +43 -0
  191. package/dist/src/provider/shutdown_helpers.js +70 -0
  192. package/dist/src/provider/toolbar_setup.d.ts +57 -0
  193. package/dist/src/provider/toolbar_setup.js +141 -0
  194. package/dist/src/routes/dashboard_routes.d.ts +14 -0
  195. package/dist/src/routes/dashboard_routes.js +197 -0
  196. package/dist/src/routes/debug_routes.d.ts +14 -0
  197. package/dist/src/routes/debug_routes.js +101 -0
  198. package/dist/src/routes/register_routes.d.ts +0 -78
  199. package/dist/src/routes/register_routes.js +22 -352
  200. package/dist/src/routes/stats_routes.d.ts +5 -0
  201. package/dist/src/routes/stats_routes.js +14 -0
  202. package/dist/src/styles/components.css +163 -0
  203. package/dist/src/styles/dashboard.css +13 -105
  204. package/dist/src/styles/debug-panel.css +2 -53
  205. package/dist/src/styles/utilities.css +3 -1
  206. package/dist/src/types.d.ts +305 -14
  207. package/dist/vue/{CacheSection-oFAJL3mo.js → CacheSection-DT2Mwf_s.js} +1 -1
  208. package/dist/vue/{ConfigSection-BhfJ4KqL.js → ConfigSection-BwKwS9lh.js} +1 -1
  209. package/dist/vue/CustomPaneTab-Hr1IBHfz.js +172 -0
  210. package/dist/vue/{EmailsSection-BcNyhyHs.js → EmailsSection-B65g0FVS.js} +1 -1
  211. package/dist/vue/{EventsSection-r60Q5Lmu.js → EventsSection-CxqtVF-o.js} +1 -1
  212. package/dist/vue/{JobsSection-BHL-hkQw.js → JobsSection-rMIyMb-g.js} +1 -1
  213. package/dist/vue/{LogsSection-DRMGzJmg.js → LogsSection-DmmZVJ7D.js} +9 -3
  214. package/dist/vue/{LogsTab-Bg3o0Mm6.js → LogsTab-47zEK7jL.js} +4 -1
  215. package/dist/vue/{OverviewSection-CXh6Ja1B.js → OverviewSection-BMabyqw-.js} +49 -50
  216. package/dist/vue/{QueriesSection-IodIsCJ-.js → QueriesSection-BfDFwGqH.js} +44 -45
  217. package/dist/vue/{QueriesTab-C8_7oprC.js → QueriesTab-DuTG7cpC.js} +30 -31
  218. package/dist/vue/RelatedLogs.vue_vue_type_script_setup_true_lang-Py1iu9GU.js +77 -0
  219. package/dist/vue/{RequestsSection-BPuMdmMc.js → RequestsSection-CTu4jPZ_.js} +143 -147
  220. package/dist/vue/{RoutesSection-NKo3Rbq3.js → RoutesSection-zQZDedL7.js} +1 -1
  221. package/dist/vue/TimelineTab-DHfXsX7t.js +334 -0
  222. package/dist/vue/components/shared/RelatedLogs.vue.d.ts +1 -4
  223. package/dist/vue/composables/useDashboardData.d.ts +12 -23
  224. package/dist/vue/index-CM3yNVUR.js +1232 -0
  225. package/dist/vue/index.js +1 -1
  226. package/dist/vue/style.css +1 -1
  227. package/package.json +1 -1
  228. package/dist/react/CacheSection-UCMptWyn.js +0 -146
  229. package/dist/react/CacheTab-CA8LB1J5.js +0 -123
  230. package/dist/react/CustomPaneTab-Bxtv_8Rw.js +0 -104
  231. package/dist/react/EmailsSection-CM7stSyh.js +0 -262
  232. package/dist/react/EmailsTab-BDhEiomM.js +0 -153
  233. package/dist/react/EventsTab-CMfY98Rl.js +0 -63
  234. package/dist/react/InternalsSection-t7ihcWO-.js +0 -32
  235. package/dist/react/InternalsTab-Oij0A2fN.js +0 -30
  236. package/dist/react/JobsSection-DF3qEv9O.js +0 -187
  237. package/dist/react/JobsTab-BbrBWIOb.js +0 -141
  238. package/dist/react/LogsSection-DcFTZY7b.js +0 -227
  239. package/dist/react/LogsTab-CicucmVk.js +0 -103
  240. package/dist/react/QueriesSection-PswteoF9.js +0 -461
  241. package/dist/react/RelatedLogs-DFDOyUMr.js +0 -40
  242. package/dist/react/RequestsSection-Nag30rEA.js +0 -341
  243. package/dist/react/RoutesTab-DgVzd2PZ.js +0 -74
  244. package/dist/react/index-Cflz9Ebj.js +0 -1069
  245. package/dist/vue/CustomPaneTab-BJxT5Dp7.js +0 -172
  246. package/dist/vue/RelatedLogs.vue_vue_type_script_setup_true_lang-CB2_TzYW.js +0 -84
  247. package/dist/vue/TimelineTab-zj5Z5OdT.js +0 -338
  248. package/dist/vue/index-Dtgysd26.js +0 -1229
@@ -1,104 +0,0 @@
1
- import { jsxs as o, jsx as s } from "react/jsx-runtime";
2
- import { useState as L, useMemo as h } from "react";
3
- import { compactPreview as x, formatDuration as A, durationSeverity as f, timeAgo as u, formatTime as p } from "adonisjs-server-stats/core";
4
- import { u as D } from "./index-Cflz9Ebj.js";
5
- import { u as M } from "./useResizableTable-CNJmACdt.js";
6
- function E({ pane: r, options: g }) {
7
- ({
8
- ...g
9
- });
10
- const { data: i, isLoading: y, error: b, clearData: N } = D(
11
- r.endpoint.replace(/^\//, ""),
12
- {
13
- ...g,
14
- debugEndpoint: ""
15
- // Use endpoint directly
16
- }
17
- ), [c, S] = L(""), d = h(() => {
18
- if (!i) return [];
19
- const e = r.dataKey || r.id;
20
- let t = i;
21
- for (const a of e.split("."))
22
- t = t?.[a];
23
- return Array.isArray(t) ? t : [];
24
- }, [i, r.dataKey, r.id]), l = h(() => {
25
- if (!c) return d;
26
- const e = c.toLowerCase(), t = r.columns.filter((a) => a.searchable).map((a) => a.key);
27
- return t.length === 0 ? d : d.filter(
28
- (a) => t.some((n) => {
29
- const m = a[n];
30
- return m !== null && String(m).toLowerCase().includes(e);
31
- })
32
- );
33
- }, [d, c, r.columns]), w = (e, t) => {
34
- if (e == null)
35
- return /* @__PURE__ */ s("span", { className: "ss-dbg-c-dim", children: "-" });
36
- switch (t.format || "text") {
37
- case "time":
38
- return /* @__PURE__ */ s("span", { className: "ss-dbg-event-time", title: p(e), children: typeof e == "number" ? u(e) : String(e) });
39
- case "timeAgo":
40
- return /* @__PURE__ */ s("span", { className: "ss-dbg-event-time", title: p(e), children: u(e) });
41
- case "duration": {
42
- const n = typeof e == "number" ? e : parseFloat(String(e));
43
- return isNaN(n) ? String(e) : /* @__PURE__ */ s(
44
- "span",
45
- {
46
- className: `ss-dbg-duration ${f(n) === "very-slow" ? "ss-dbg-very-slow" : f(n) === "slow" ? "ss-dbg-slow" : ""}`,
47
- children: A(n)
48
- }
49
- );
50
- }
51
- case "method":
52
- return /* @__PURE__ */ s("span", { className: `ss-dbg-method ss-dbg-method-${String(e).toLowerCase()}`, children: String(e) });
53
- case "json": {
54
- let n = e;
55
- if (typeof e == "string")
56
- try {
57
- n = JSON.parse(e);
58
- } catch {
59
- }
60
- return x(n, 80);
61
- }
62
- case "badge": {
63
- const n = String(e).toLowerCase(), k = (t.badgeColorMap || {})[n] || "muted";
64
- return /* @__PURE__ */ s("span", { className: `ss-dbg-badge ss-dbg-badge-${k}`, children: String(e) });
65
- }
66
- default:
67
- return String(e);
68
- }
69
- }, C = M([l]);
70
- return y && !i ? /* @__PURE__ */ o("div", { className: "ss-dbg-empty", children: [
71
- "Loading ",
72
- r.label,
73
- "..."
74
- ] }) : b ? /* @__PURE__ */ o("div", { className: "ss-dbg-empty", children: [
75
- "Error: ",
76
- b.message
77
- ] }) : /* @__PURE__ */ o("div", { children: [
78
- r.search && /* @__PURE__ */ o("div", { className: "ss-dbg-search-bar", children: [
79
- /* @__PURE__ */ s(
80
- "input",
81
- {
82
- type: "text",
83
- className: "ss-dbg-search",
84
- placeholder: r.search.placeholder,
85
- value: c,
86
- onChange: (e) => S(e.target.value)
87
- }
88
- ),
89
- /* @__PURE__ */ o("span", { className: "ss-dbg-summary", children: [
90
- l.length,
91
- " items"
92
- ] }),
93
- r.clearable && /* @__PURE__ */ s("button", { type: "button", className: "ss-dbg-btn-clear", onClick: N, children: "Clear" })
94
- ] }),
95
- l.length === 0 ? /* @__PURE__ */ s("div", { className: "ss-dbg-empty", children: "No data" }) : /* @__PURE__ */ o("table", { ref: C, className: "ss-dbg-table", children: [
96
- /* @__PURE__ */ s("thead", { children: /* @__PURE__ */ s("tr", { children: r.columns.map((e) => /* @__PURE__ */ s("th", { children: e.label }, e.key)) }) }),
97
- /* @__PURE__ */ s("tbody", { children: l.map((e, t) => /* @__PURE__ */ s("tr", { children: r.columns.map((a) => /* @__PURE__ */ s("td", { children: w(e[a.key], a) }, a.key)) }, e.id ?? t)) })
98
- ] })
99
- ] });
100
- }
101
- export {
102
- E as CustomPaneTab,
103
- E as default
104
- };
@@ -1,262 +0,0 @@
1
- import { jsxs as r, jsx as a, Fragment as i } from "react/jsx-runtime";
2
- import { useState as n, useEffect as N, useCallback as C } from "react";
3
- import { timeAgo as P, formatTime as A } from "adonisjs-server-stats/core";
4
- import { a as T } from "./index-Cflz9Ebj.js";
5
- import { D as j } from "./DataTable-YyShr5B-.js";
6
- import { F as $ } from "./FilterBar-DQRXpWrb.js";
7
- import { P as F } from "./Pagination-BkmzUDY8.js";
8
- function q({ options: d = {} }) {
9
- const [y, h] = n(1), [o, g] = n(""), [p, c] = n(null), [u, m] = n(null), { data: v, meta: l, isLoading: x } = T("emails", { ...d, page: y, search: o }), w = v || [];
10
- N(() => h(1), [o]);
11
- const k = C(
12
- async (e) => {
13
- if (e.html) {
14
- c(e.id), m(e.html);
15
- return;
16
- }
17
- try {
18
- const { baseUrl: s = "", dashboardEndpoint: t = "/__stats/api", authToken: f } = d, _ = `${s}${t}/emails/${e.id}/preview`, b = { Accept: "text/html" };
19
- f && (b.Authorization = `Bearer ${f}`);
20
- const S = await (await fetch(_, { headers: b, credentials: "same-origin" })).text();
21
- c(e.id), m(S);
22
- } catch {
23
- }
24
- },
25
- [d]
26
- );
27
- if (p && u) {
28
- const e = w.find((s) => s.id === p);
29
- return /* @__PURE__ */ r("div", { className: "ss-dash-email-preview", id: "ss-dash-email-preview", children: [
30
- /* @__PURE__ */ r("div", { className: "ss-dash-email-preview-header", children: [
31
- /* @__PURE__ */ a("div", { className: "ss-dash-email-preview-meta", id: "ss-dash-email-preview-meta", children: e && /* @__PURE__ */ r(i, { children: [
32
- /* @__PURE__ */ a("strong", { children: "Subject:" }),
33
- " ",
34
- e.subject,
35
- "  |  ",
36
- /* @__PURE__ */ a("strong", { children: "From:" }),
37
- " ",
38
- e.from_addr || e.from,
39
- "  |  ",
40
- /* @__PURE__ */ a("strong", { children: "To:" }),
41
- " ",
42
- e.to_addr || e.to,
43
- (e.cc || e.cc_addr) && /* @__PURE__ */ r(i, { children: [
44
- "  |  ",
45
- /* @__PURE__ */ a("strong", { children: "CC:" }),
46
- " ",
47
- e.cc || e.cc_addr
48
- ] }),
49
- "  |  ",
50
- /* @__PURE__ */ a("strong", { children: "Status:" }),
51
- " ",
52
- /* @__PURE__ */ a("span", { className: `ss-dash-badge ss-dash-email-status-${e.status}`, children: e.status }),
53
- e.mailer && /* @__PURE__ */ r(i, { children: [
54
- "  |  ",
55
- /* @__PURE__ */ a("strong", { children: "Mailer:" }),
56
- " ",
57
- e.mailer
58
- ] })
59
- ] }) }),
60
- /* @__PURE__ */ a(
61
- "button",
62
- {
63
- type: "button",
64
- className: "ss-dash-btn",
65
- id: "ss-dash-email-preview-close",
66
- onClick: () => {
67
- c(null), m(null);
68
- },
69
- children: "Close"
70
- }
71
- )
72
- ] }),
73
- /* @__PURE__ */ a(
74
- "iframe",
75
- {
76
- className: "ss-dash-email-iframe",
77
- id: "ss-dash-email-iframe",
78
- srcDoc: u,
79
- title: "Email preview",
80
- sandbox: ""
81
- }
82
- )
83
- ] });
84
- }
85
- return /* @__PURE__ */ r("div", { children: [
86
- /* @__PURE__ */ a(
87
- $,
88
- {
89
- search: o,
90
- onSearchChange: g,
91
- placeholder: "Filter emails...",
92
- summary: `${l?.total ?? 0} emails`
93
- }
94
- ),
95
- x && !v ? /* @__PURE__ */ a("div", { className: "ss-dash-empty", children: "Loading emails..." }) : /* @__PURE__ */ r(i, { children: [
96
- /* @__PURE__ */ a("div", { className: "ss-dash-table-wrap", children: /* @__PURE__ */ a(
97
- j,
98
- {
99
- columns: [
100
- {
101
- key: "id",
102
- label: "#",
103
- width: "40px",
104
- render: (e) => /* @__PURE__ */ a("span", { style: { color: "var(--ss-dim)" }, children: e })
105
- },
106
- {
107
- key: "from",
108
- label: "From",
109
- width: "150px",
110
- render: (e, s) => {
111
- const t = s.from_addr || s.from || "";
112
- return /* @__PURE__ */ a(
113
- "span",
114
- {
115
- title: t,
116
- style: {
117
- color: "var(--ss-text-secondary)",
118
- overflow: "hidden",
119
- textOverflow: "ellipsis",
120
- whiteSpace: "nowrap",
121
- display: "block"
122
- },
123
- children: t
124
- }
125
- );
126
- }
127
- },
128
- {
129
- key: "to",
130
- label: "To",
131
- width: "150px",
132
- render: (e, s) => {
133
- const t = s.to_addr || s.to || "";
134
- return /* @__PURE__ */ a(
135
- "span",
136
- {
137
- title: t,
138
- style: {
139
- color: "var(--ss-text-secondary)",
140
- overflow: "hidden",
141
- textOverflow: "ellipsis",
142
- whiteSpace: "nowrap",
143
- display: "block"
144
- },
145
- children: t
146
- }
147
- );
148
- }
149
- },
150
- {
151
- key: "subject",
152
- label: "Subject",
153
- render: (e) => {
154
- const s = e || "";
155
- return /* @__PURE__ */ a(
156
- "span",
157
- {
158
- title: s,
159
- style: {
160
- color: "var(--ss-sql-color)",
161
- overflow: "hidden",
162
- textOverflow: "ellipsis",
163
- whiteSpace: "nowrap",
164
- display: "block"
165
- },
166
- children: s
167
- }
168
- );
169
- }
170
- },
171
- {
172
- key: "status",
173
- label: "Status",
174
- width: "80px",
175
- render: (e) => {
176
- const s = e || "";
177
- return /* @__PURE__ */ a("span", { className: `ss-dash-badge ss-dash-email-status-${s}`, children: s });
178
- }
179
- },
180
- {
181
- key: "attachmentCount",
182
- label: "ATT",
183
- width: "40px",
184
- render: (e, s) => {
185
- const t = s.attachment_count || s.attachmentCount || 0;
186
- return t > 0 ? /* @__PURE__ */ a(
187
- "span",
188
- {
189
- style: { color: "var(--ss-dim)", textAlign: "center", display: "block" },
190
- children: t
191
- }
192
- ) : /* @__PURE__ */ a(
193
- "span",
194
- {
195
- style: { color: "var(--ss-dim)", textAlign: "center", display: "block" },
196
- children: "-"
197
- }
198
- );
199
- }
200
- },
201
- {
202
- key: "mailer",
203
- label: "Mailer",
204
- width: "70px",
205
- render: (e) => {
206
- const s = e || "";
207
- return /* @__PURE__ */ a(
208
- "span",
209
- {
210
- title: s,
211
- style: {
212
- color: "var(--ss-muted)",
213
- overflow: "hidden",
214
- textOverflow: "ellipsis",
215
- whiteSpace: "nowrap",
216
- display: "block"
217
- },
218
- children: s
219
- }
220
- );
221
- }
222
- },
223
- {
224
- key: "createdAt",
225
- label: "Time",
226
- width: "80px",
227
- render: (e, s) => {
228
- const t = s.createdAt || s.created_at || s.timestamp;
229
- return /* @__PURE__ */ a(
230
- "span",
231
- {
232
- className: "ss-dash-event-time",
233
- style: { whiteSpace: "nowrap" },
234
- title: A(t),
235
- children: P(t)
236
- }
237
- );
238
- }
239
- }
240
- ],
241
- data: w,
242
- onRowClick: k,
243
- rowClassName: "ss-dash-email-row",
244
- emptyMessage: "No emails captured yet"
245
- }
246
- ) }),
247
- l && /* @__PURE__ */ a(
248
- F,
249
- {
250
- page: l.page,
251
- lastPage: l.lastPage,
252
- total: l.total,
253
- onPageChange: h
254
- }
255
- )
256
- ] })
257
- ] });
258
- }
259
- export {
260
- q as EmailsSection,
261
- q as default
262
- };
@@ -1,153 +0,0 @@
1
- import { jsx as e, jsxs as t } from "react/jsx-runtime";
2
- import { useState as n, useMemo as f, useCallback as v } from "react";
3
- import { timeAgo as k, formatTime as S } from "adonisjs-server-stats/core";
4
- import { u as A } from "./index-Cflz9Ebj.js";
5
- import { u as P } from "./useResizableTable-CNJmACdt.js";
6
- function M({ options: i }) {
7
- const { data: o, isLoading: N, error: u } = A("emails", i), [c, y] = n(""), [g, b] = n(null), [p, h] = n(null), [x, m] = n(!1), r = f(() => {
8
- const s = o?.emails || [];
9
- if (!c) return s;
10
- const l = c.toLowerCase();
11
- return s.filter(
12
- (a) => (a.subject || "").toLowerCase().includes(l) || (a.to || "").toLowerCase().includes(l) || (a.from || "").toLowerCase().includes(l) || (a.mailer || "").toLowerCase().includes(l)
13
- );
14
- }, [o, c]), d = f(() => r.find((s) => s.id === g), [r, g]), C = v(
15
- async (s) => {
16
- if (b(s.id), h(s.html || null), !s.html && s.id) {
17
- m(!0);
18
- try {
19
- const l = i?.debugEndpoint || "/admin/api/debug", a = {};
20
- i?.authToken && (a.Authorization = `Bearer ${i.authToken}`);
21
- const w = await fetch(`${l}/emails/${s.id}/preview`, {
22
- headers: a,
23
- credentials: i?.authToken ? "omit" : "include"
24
- });
25
- w.ok && h(await w.text());
26
- } catch {
27
- } finally {
28
- m(!1);
29
- }
30
- }
31
- },
32
- [i]
33
- ), L = v(() => {
34
- b(null), h(null), m(!1);
35
- }, []), T = {
36
- sent: "ss-dbg-email-status-sent",
37
- sending: "ss-dbg-email-status-sending",
38
- queueing: "ss-dbg-email-status-queued",
39
- queued: "ss-dbg-email-status-queued",
40
- failed: "ss-dbg-email-status-failed"
41
- }, j = P([r]);
42
- return N && !o ? /* @__PURE__ */ e("div", { className: "ss-dbg-empty", children: "Loading emails..." }) : u ? /* @__PURE__ */ t("div", { className: "ss-dbg-empty", children: [
43
- "Error: ",
44
- u.message
45
- ] }) : d ? /* @__PURE__ */ t("div", { className: "ss-dbg-email-preview", children: [
46
- /* @__PURE__ */ t("div", { className: "ss-dbg-email-preview-header", children: [
47
- /* @__PURE__ */ t("div", { className: "ss-dbg-email-preview-meta", children: [
48
- /* @__PURE__ */ t("div", { children: [
49
- /* @__PURE__ */ e("strong", { children: "Subject:" }),
50
- " ",
51
- d.subject
52
- ] }),
53
- /* @__PURE__ */ t("div", { children: [
54
- /* @__PURE__ */ e("strong", { children: "From:" }),
55
- " ",
56
- d.from
57
- ] }),
58
- /* @__PURE__ */ t("div", { children: [
59
- /* @__PURE__ */ e("strong", { children: "To:" }),
60
- " ",
61
- d.to
62
- ] }),
63
- d.cc && /* @__PURE__ */ t("div", { children: [
64
- /* @__PURE__ */ e("strong", { children: "CC:" }),
65
- " ",
66
- d.cc
67
- ] })
68
- ] }),
69
- /* @__PURE__ */ e("button", { className: "ss-dbg-btn-clear", onClick: L, type: "button", children: "×" })
70
- ] }),
71
- x ? /* @__PURE__ */ e("div", { className: "ss-dbg-empty", children: "Loading preview..." }) : p ? /* @__PURE__ */ e(
72
- "iframe",
73
- {
74
- className: "ss-dbg-email-iframe",
75
- srcDoc: p,
76
- title: "Email preview",
77
- sandbox: ""
78
- }
79
- ) : /* @__PURE__ */ e("div", { style: { padding: "12px", whiteSpace: "pre-wrap" }, children: d.text || "No content" })
80
- ] }) : /* @__PURE__ */ t("div", { children: [
81
- /* @__PURE__ */ t("div", { className: "ss-dbg-search-bar", children: [
82
- /* @__PURE__ */ e(
83
- "input",
84
- {
85
- type: "text",
86
- className: "ss-dbg-search",
87
- placeholder: "Filter emails...",
88
- value: c,
89
- onChange: (s) => y(s.target.value)
90
- }
91
- ),
92
- /* @__PURE__ */ t("span", { className: "ss-dbg-summary", children: [
93
- r.length,
94
- " emails"
95
- ] })
96
- ] }),
97
- r.length === 0 ? /* @__PURE__ */ e("div", { className: "ss-dbg-empty", children: "No emails captured" }) : /* @__PURE__ */ t("table", { ref: j, className: "ss-dbg-table", children: [
98
- /* @__PURE__ */ t("colgroup", { children: [
99
- /* @__PURE__ */ e("col", { style: { width: "50px" } }),
100
- /* @__PURE__ */ e("col", { style: { width: "140px" } }),
101
- /* @__PURE__ */ e("col", { style: { width: "140px" } }),
102
- /* @__PURE__ */ e("col", {}),
103
- /* @__PURE__ */ e("col", { style: { width: "70px" } }),
104
- /* @__PURE__ */ e("col", { style: { width: "80px" } }),
105
- /* @__PURE__ */ e("col", { style: { width: "40px" } }),
106
- /* @__PURE__ */ e("col", { style: { width: "80px" } })
107
- ] }),
108
- /* @__PURE__ */ e("thead", { children: /* @__PURE__ */ t("tr", { children: [
109
- /* @__PURE__ */ e("th", { children: "#" }),
110
- /* @__PURE__ */ e("th", { children: "From" }),
111
- /* @__PURE__ */ e("th", { children: "To" }),
112
- /* @__PURE__ */ e("th", { children: "Subject" }),
113
- /* @__PURE__ */ e("th", { children: "Status" }),
114
- /* @__PURE__ */ e("th", { children: "Mailer" }),
115
- /* @__PURE__ */ e("th", { title: "Attachments", children: "📎" }),
116
- /* @__PURE__ */ e("th", { children: "Time" })
117
- ] }) }),
118
- /* @__PURE__ */ e("tbody", { children: r.map((s) => /* @__PURE__ */ t(
119
- "tr",
120
- {
121
- className: "ss-dbg-email-row",
122
- onClick: () => C(s),
123
- children: [
124
- /* @__PURE__ */ e("td", { className: "ss-dbg-c-dim", style: { whiteSpace: "nowrap" }, children: s.id }),
125
- /* @__PURE__ */ e("td", { className: "ss-dbg-c-secondary", title: s.from, children: s.from }),
126
- /* @__PURE__ */ e("td", { className: "ss-dbg-c-secondary", title: s.to, children: s.to }),
127
- /* @__PURE__ */ e("td", { className: "ss-dbg-c-sql", children: s.subject }),
128
- /* @__PURE__ */ e("td", { children: /* @__PURE__ */ e("span", { className: `ss-dbg-email-status ${T[s.status] || ""}`, children: s.status }) }),
129
- /* @__PURE__ */ e("td", { className: "ss-dbg-c-muted", children: s.mailer }),
130
- /* @__PURE__ */ e("td", { className: "ss-dbg-c-dim", style: { textAlign: "center" }, children: s.attachmentCount > 0 ? s.attachmentCount : "-" }),
131
- /* @__PURE__ */ e(
132
- "td",
133
- {
134
- className: "ss-dbg-event-time",
135
- title: S(
136
- s.timestamp || s.created_at || s.createdAt
137
- ),
138
- children: k(
139
- s.timestamp || s.created_at || s.createdAt
140
- )
141
- }
142
- )
143
- ]
144
- },
145
- s.id
146
- )) })
147
- ] })
148
- ] });
149
- }
150
- export {
151
- M as EmailsTab,
152
- M as default
153
- };
@@ -1,63 +0,0 @@
1
- import { jsx as e, jsxs as t } from "react/jsx-runtime";
2
- import { useState as g, useMemo as u } from "react";
3
- import { timeAgo as b, formatTime as p } from "adonisjs-server-stats/core";
4
- import { u as v, J as f } from "./index-Cflz9Ebj.js";
5
- import { u as N } from "./useResizableTable-CNJmACdt.js";
6
- function T({ options: c }) {
7
- const { data: n, isLoading: o, error: i } = v("events", c), [r, m] = g(""), d = u(() => {
8
- const s = n?.events || [];
9
- if (!r) return s;
10
- const a = r.toLowerCase();
11
- return s.filter(
12
- (l) => (l.event || "").toLowerCase().includes(a) || (l.data || "").toLowerCase().includes(a)
13
- );
14
- }, [n, r]), h = N([d]);
15
- return o && !n ? /* @__PURE__ */ e("div", { className: "ss-dbg-empty", children: "Loading events..." }) : i ? /* @__PURE__ */ t("div", { className: "ss-dbg-empty", children: [
16
- "Error: ",
17
- i.message
18
- ] }) : /* @__PURE__ */ t("div", { children: [
19
- /* @__PURE__ */ t("div", { className: "ss-dbg-search-bar", children: [
20
- /* @__PURE__ */ e(
21
- "input",
22
- {
23
- type: "text",
24
- className: "ss-dbg-search",
25
- placeholder: "Filter events...",
26
- value: r,
27
- onChange: (s) => m(s.target.value)
28
- }
29
- ),
30
- /* @__PURE__ */ t("span", { className: "ss-dbg-summary", children: [
31
- d.length,
32
- " events"
33
- ] })
34
- ] }),
35
- d.length === 0 ? /* @__PURE__ */ e("div", { className: "ss-dbg-empty", children: "No events captured" }) : /* @__PURE__ */ t("table", { ref: h, className: "ss-dbg-table", children: [
36
- /* @__PURE__ */ t("colgroup", { children: [
37
- /* @__PURE__ */ e("col", { style: { width: "50px" } }),
38
- /* @__PURE__ */ e("col", { style: { width: "20%" } }),
39
- /* @__PURE__ */ e("col", {}),
40
- /* @__PURE__ */ e("col", { style: { width: "80px" } })
41
- ] }),
42
- /* @__PURE__ */ e("thead", { children: /* @__PURE__ */ t("tr", { children: [
43
- /* @__PURE__ */ e("th", { children: "#" }),
44
- /* @__PURE__ */ e("th", { children: "Event" }),
45
- /* @__PURE__ */ e("th", { children: "Data" }),
46
- /* @__PURE__ */ e("th", { children: "Time" })
47
- ] }) }),
48
- /* @__PURE__ */ e("tbody", { children: d.map((s) => {
49
- const a = s.timestamp || s.created_at || s.createdAt;
50
- return /* @__PURE__ */ t("tr", { children: [
51
- /* @__PURE__ */ e("td", { className: "ss-dbg-c-dim", style: { whiteSpace: "nowrap" }, children: s.id }),
52
- /* @__PURE__ */ e("td", { className: "ss-dbg-event-name", children: s.event }),
53
- /* @__PURE__ */ e("td", { className: "ss-dbg-event-data", children: /* @__PURE__ */ e(f, { data: s.data, maxPreviewLength: 80, classPrefix: "ss-dbg" }) }),
54
- /* @__PURE__ */ e("td", { className: "ss-dbg-event-time", title: p(a), children: b(a) })
55
- ] }, s.id);
56
- }) })
57
- ] })
58
- ] });
59
- }
60
- export {
61
- T as EventsTab,
62
- T as default
63
- };
@@ -1,32 +0,0 @@
1
- import { jsx as l, jsxs as E } from "react/jsx-runtime";
2
- import { useState as i, useRef as I, useCallback as v, useEffect as C } from "react";
3
- import { UnauthorizedError as S, SECTION_REFRESH_MS as b } from "adonisjs-server-stats/core";
4
- import { u as y } from "./useApiClient-BVtNCmnL.js";
5
- import { I as N } from "./InternalsContent-DBzsI0CG.js";
6
- function k({
7
- options: f = {},
8
- debugEndpoint: c = "/admin/api/debug"
9
- }) {
10
- const { baseUrl: m = "", authToken: d } = f, [n, h] = i(null), [g, t] = i(!0), [o, s] = i(null), r = I(null), u = y(m, d), a = v(async () => {
11
- try {
12
- const p = await u().get(`${c}/diagnostics`);
13
- h(p), s(null), t(!1);
14
- } catch (e) {
15
- if (e instanceof S) {
16
- s(e), t(!1), r.current && (clearInterval(r.current), r.current = null);
17
- return;
18
- }
19
- s(e instanceof Error ? e : new Error(String(e))), t(!1);
20
- }
21
- }, [c, u]);
22
- return C(() => (t(!0), s(null), a(), r.current = setInterval(a, b), () => {
23
- r.current && (clearInterval(r.current), r.current = null);
24
- }), [a]), g && !n ? /* @__PURE__ */ l("div", { className: "ss-dash-empty", children: "Loading diagnostics..." }) : o ? /* @__PURE__ */ E("div", { className: "ss-dash-empty", children: [
25
- "Error: ",
26
- o.message
27
- ] }) : n ? /* @__PURE__ */ l(N, { data: n, tableClassName: "ss-dash-table", classPrefix: "ss-dash" }) : /* @__PURE__ */ l("div", { className: "ss-dash-empty", children: "Diagnostics not available" });
28
- }
29
- export {
30
- k as InternalsSection,
31
- k as default
32
- };
@@ -1,30 +0,0 @@
1
- import { jsx as l, jsxs as E } from "react/jsx-runtime";
2
- import { useState as i, useRef as I, useCallback as h, useEffect as v } from "react";
3
- import { UnauthorizedError as y } from "adonisjs-server-stats/core";
4
- import { u as C } from "./useApiClient-BVtNCmnL.js";
5
- import { I as N } from "./InternalsContent-DBzsI0CG.js";
6
- const R = 3e3;
7
- function j({ options: f }) {
8
- const { baseUrl: d = "", debugEndpoint: o = "/admin/api/debug", authToken: m } = f || {}, [s, g] = i(null), [b, r] = i(!0), [c, n] = i(null), e = I(null), u = C(d, m), a = h(async () => {
9
- try {
10
- const p = await u().get(`${o}/diagnostics`);
11
- g(p), n(null), r(!1);
12
- } catch (t) {
13
- if (t instanceof y) {
14
- n(t), r(!1), e.current && (clearInterval(e.current), e.current = null);
15
- return;
16
- }
17
- n(t instanceof Error ? t : new Error(String(t))), r(!1);
18
- }
19
- }, [o, u]);
20
- return v(() => (r(!0), n(null), a(), e.current = setInterval(a, R), () => {
21
- e.current && (clearInterval(e.current), e.current = null);
22
- }), [a]), b && !s ? /* @__PURE__ */ l("div", { className: "ss-dbg-empty", children: "Loading diagnostics..." }) : c ? /* @__PURE__ */ E("div", { className: "ss-dbg-empty", children: [
23
- "Error: ",
24
- c.message
25
- ] }) : s ? /* @__PURE__ */ l(N, { data: s, tableClassName: "ss-dbg-table", classPrefix: "ss-dbg" }) : /* @__PURE__ */ l("div", { className: "ss-dbg-empty", children: "Diagnostics not available" });
26
- }
27
- export {
28
- j as InternalsTab,
29
- j as default
30
- };