adonisjs-server-stats 1.12.3 → 1.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. package/README.md +11 -6
  2. package/dist/configure.js +6 -1
  3. package/dist/core/collectors/collector.d.ts +83 -0
  4. package/dist/core/core/types.d.ts +186 -0
  5. package/dist/core/debug/types.d.ts +467 -0
  6. package/dist/core/index.js +184 -169
  7. package/dist/core/types.d.ts +855 -167
  8. package/dist/react/{CacheSection-CX2duJuc.js → CacheSection-DkLtukWz.js} +1 -1
  9. package/dist/react/{CacheTab-CgT4t0oZ.js → CacheTab-DWeXnEBI.js} +51 -46
  10. package/dist/react/ConfigContent-Bwvfl_G7.js +350 -0
  11. package/dist/react/{ConfigSection-Dt0FyeaW.js → ConfigSection-DaVbFPDg.js} +2 -2
  12. package/dist/react/{ConfigTab-KtiTtsrj.js → ConfigTab-D4640WJZ.js} +2 -2
  13. package/dist/react/{CustomPaneTab-15QoEplP.js → CustomPaneTab-DglmAVMC.js} +1 -1
  14. package/dist/react/{EmailsSection-YcJYR5eA.js → EmailsSection-vYx6ExTb.js} +1 -1
  15. package/dist/react/{EmailsTab-CUjubln_.js → EmailsTab-DKDrRmRH.js} +54 -49
  16. package/dist/react/{EventsSection-GGPoYSNv.js → EventsSection-CapH5xut.js} +1 -1
  17. package/dist/react/{EventsTab-Wdwr0_ny.js → EventsTab-BNVEySAm.js} +1 -1
  18. package/dist/react/{InternalsContent-BNOnSoi9.js → InternalsContent-C9lIA92C.js} +1 -1
  19. package/dist/react/{InternalsSection-BwrTfpjA.js → InternalsSection-lOv_UcSV.js} +1 -1
  20. package/dist/react/{InternalsTab--RD-L1dX.js → InternalsTab-BygoSorC.js} +1 -1
  21. package/dist/react/{JobsSection-BqqIh_DR.js → JobsSection-ZIQsJWid.js} +1 -1
  22. package/dist/react/{JobsTab-CBrU-ryL.js → JobsTab-DXQzXrDt.js} +1 -1
  23. package/dist/react/{LogEntryRow-BOrRkhRU.js → LogEntryRow-BWkHE51-.js} +1 -1
  24. package/dist/react/{LogsSection-Cm_lphM6.js → LogsSection-ConXdBkL.js} +2 -2
  25. package/dist/react/LogsTab-CJM47LPn.js +82 -0
  26. package/dist/react/{OverviewSection-XF7bakyM.js → OverviewSection-DOMu2qvl.js} +131 -131
  27. package/dist/react/{QueriesSection-DsQBKrNK.js → QueriesSection-DFsaOSJI.js} +1 -1
  28. package/dist/react/{QueriesTab-CxCC1GVq.js → QueriesTab-CY9CG_7L.js} +1 -1
  29. package/dist/react/RequestsSection-CC-eVHsl.js +326 -0
  30. package/dist/react/{RoutesSection-D0y5JQP4.js → RoutesSection-p1DMq41y.js} +1 -1
  31. package/dist/react/{RoutesTab-Y_alJVMV.js → RoutesTab-Cnqy8UcK.js} +1 -1
  32. package/dist/react/{SplitPaneWrapper-CZl1ouIT.js → SplitPaneWrapper-XgkA0QxE.js} +1 -1
  33. package/dist/react/{TimelineTab-HyqZpfbp.js → TimelineTab-1YOERxe5.js} +3 -3
  34. package/dist/react/index-DOSlCpZ9.js +1159 -0
  35. package/dist/react/index.js +1 -1
  36. package/dist/react/useApiClient-CtEG7rHs.js +11 -0
  37. package/dist/src/collectors/adonisjs_queue_collector.d.ts +21 -0
  38. package/dist/src/collectors/adonisjs_queue_collector.js +61 -0
  39. package/dist/src/collectors/auto_detect.js +8 -2
  40. package/dist/src/collectors/index.d.ts +2 -0
  41. package/dist/src/collectors/index.js +1 -0
  42. package/dist/src/collectors/queue_collector.js +22 -6
  43. package/dist/src/config/deprecation_migration.js +11 -0
  44. package/dist/src/dashboard/cache_handlers.js +22 -2
  45. package/dist/src/dashboard/flush_manager.d.ts +2 -0
  46. package/dist/src/dashboard/flush_manager.js +17 -0
  47. package/dist/src/dashboard/inspector_manager.d.ts +4 -4
  48. package/dist/src/dashboard/inspector_manager.js +20 -10
  49. package/dist/src/dashboard/integrations/adonisjs_queue_inspector.d.ts +42 -0
  50. package/dist/src/dashboard/integrations/adonisjs_queue_inspector.js +135 -0
  51. package/dist/src/dashboard/integrations/adonisjs_queue_store.d.ts +166 -0
  52. package/dist/src/dashboard/integrations/adonisjs_queue_store.js +629 -0
  53. package/dist/src/dashboard/integrations/config_inspector.d.ts +0 -1
  54. package/dist/src/dashboard/integrations/config_inspector.js +4 -2
  55. package/dist/src/dashboard/integrations/index.d.ts +4 -1
  56. package/dist/src/dashboard/integrations/index.js +2 -0
  57. package/dist/src/dashboard/integrations/queue_inspector.d.ts +5 -61
  58. package/dist/src/dashboard/integrations/queue_inspector.js +5 -1
  59. package/dist/src/dashboard/integrations/queue_inspector_contract.d.ts +73 -0
  60. package/dist/src/dashboard/integrations/queue_inspector_contract.js +15 -0
  61. package/dist/src/dashboard/paginate_helper.d.ts +5 -0
  62. package/dist/src/dashboard/paginate_helper.js +16 -4
  63. package/dist/src/dashboard/query_explain_handler.d.ts +6 -1
  64. package/dist/src/dashboard/query_explain_handler.js +12 -2
  65. package/dist/src/dashboard/write_queue.d.ts +13 -0
  66. package/dist/src/dashboard/write_queue.js +34 -2
  67. package/dist/src/debug/debug_store.js +8 -1
  68. package/dist/src/debug/event_collector.js +4 -0
  69. package/dist/src/debug/query_collector.js +2 -0
  70. package/dist/src/debug/ring_buffer.js +8 -1
  71. package/dist/src/debug/trace_collector.js +34 -10
  72. package/dist/src/debug/types.d.ts +2 -0
  73. package/dist/src/define_config.js +1 -0
  74. package/dist/src/edge/client/dashboard.js +2 -2
  75. package/dist/src/edge/client/debug-panel-deferred.js +1 -1
  76. package/dist/src/edge/client/stats-bar.js +1 -1
  77. package/dist/src/edge/client-vue/dashboard.js +5 -5
  78. package/dist/src/edge/client-vue/debug-panel-deferred.js +2 -2
  79. package/dist/src/engine/request_metrics.js +8 -10
  80. package/dist/src/log_stream/log_stream_service.d.ts +1 -0
  81. package/dist/src/log_stream/log_stream_service.js +7 -5
  82. package/dist/src/prometheus/prometheus_collector.d.ts +9 -0
  83. package/dist/src/prometheus/prometheus_collector.js +11 -0
  84. package/dist/src/provider/dashboard_init.js +15 -0
  85. package/dist/src/provider/dashboard_setup.js +9 -2
  86. package/dist/src/provider/email_bridge.d.ts +14 -3
  87. package/dist/src/provider/email_bridge.js +25 -3
  88. package/dist/src/provider/email_helpers.d.ts +9 -1
  89. package/dist/src/provider/email_helpers.js +32 -4
  90. package/dist/src/provider/pino_hook.d.ts +8 -0
  91. package/dist/src/provider/pino_hook.js +19 -1
  92. package/dist/src/provider/provider_helpers_extra.d.ts +2 -0
  93. package/dist/src/provider/provider_helpers_extra.js +17 -2
  94. package/dist/src/provider/server_stats_provider.js +19 -1
  95. package/dist/src/provider/shutdown_helpers.js +2 -0
  96. package/dist/src/provider/toolbar_setup.js +32 -17
  97. package/dist/src/routes/dashboard_routes.js +96 -62
  98. package/dist/src/routes/debug_routes.js +45 -35
  99. package/dist/src/routes/no_session_middleware.d.ts +6 -3
  100. package/dist/src/routes/no_session_middleware.js +7 -3
  101. package/dist/src/routes/register_routes.d.ts +8 -0
  102. package/dist/src/routes/register_routes.js +19 -0
  103. package/dist/src/types.d.ts +31 -0
  104. package/dist/src/utils/app_import.js +12 -4
  105. package/dist/vue/CacheSection-CxEBVVkF.js +156 -0
  106. package/dist/vue/ConfigSection-BiRAiaHj.js +415 -0
  107. package/dist/vue/EmailsSection-Dl44qyqY.js +208 -0
  108. package/dist/vue/{EmailsTab-CwIF1fik.js → EmailsTab-Diya54CP.js} +6 -5
  109. package/dist/vue/{EventsSection-BpgkWIwM.js → EventsSection-CWjeitjU.js} +1 -1
  110. package/dist/vue/{InternalsTab-521fxYYj.js → InternalsTab-Z3c82glB.js} +15 -15
  111. package/dist/vue/{JobsSection-DrghFEKL.js → JobsSection-DOBb4LjZ.js} +1 -1
  112. package/dist/vue/LogsSection-CXx-HOWJ.js +260 -0
  113. package/dist/vue/{OverviewSection-BAgZTPjY.js → OverviewSection-CyfNQ8uV.js} +318 -302
  114. package/dist/vue/{QueriesSection-CUpwhp7u.js → QueriesSection-CXBsFp-y.js} +1 -1
  115. package/dist/vue/{RequestsSection-D8P2xpF2.js → RequestsSection-YTIaZGZd.js} +151 -145
  116. package/dist/vue/{RoutesSection-0qB81hTT.js → RoutesSection-CDKMey49.js} +1 -1
  117. package/dist/vue/composables/useApiClient.d.ts +8 -1
  118. package/dist/vue/index-14x39RI_.js +1239 -0
  119. package/dist/vue/index.js +1 -1
  120. package/dist/vue/style.css +1 -1
  121. package/package.json +16 -3
  122. package/dist/react/ConfigContent-CnsEI4j3.js +0 -397
  123. package/dist/react/LogsTab-jKwv9G7Q.js +0 -79
  124. package/dist/react/RequestsSection-D8cMbZU0.js +0 -321
  125. package/dist/react/index-CsprmgzI.js +0 -1121
  126. package/dist/react/useApiClient-BVtNCmnL.js +0 -9
  127. package/dist/vue/CacheSection-DRqV3YX2.js +0 -149
  128. package/dist/vue/ConfigSection-C6pQCHAL.js +0 -576
  129. package/dist/vue/EmailsSection-BTNw3ZU2.js +0 -206
  130. package/dist/vue/LogsSection-BDxx9Bfi.js +0 -258
  131. package/dist/vue/index-30jLw-_w.js +0 -1232
  132. /package/dist/core/{api-client.d.ts → core/api-client.d.ts} +0 -0
  133. /package/dist/core/{config-utils.d.ts → core/config-utils.d.ts} +0 -0
  134. /package/dist/core/{constants.d.ts → core/constants.d.ts} +0 -0
  135. /package/dist/core/{dashboard-api.d.ts → core/dashboard-api.d.ts} +0 -0
  136. /package/dist/core/{dashboard-data-controller.d.ts → core/dashboard-data-controller.d.ts} +0 -0
  137. /package/dist/core/{dashboard-data-helpers.d.ts → core/dashboard-data-helpers.d.ts} +0 -0
  138. /package/dist/core/{debug-data-controller.d.ts → core/debug-data-controller.d.ts} +0 -0
  139. /package/dist/core/{define-config-helpers.d.ts → core/define-config-helpers.d.ts} +0 -0
  140. /package/dist/core/{explain-utils.d.ts → core/explain-utils.d.ts} +0 -0
  141. /package/dist/core/{feature-detect-helpers.d.ts → core/feature-detect-helpers.d.ts} +0 -0
  142. /package/dist/core/{feature-detect.d.ts → core/feature-detect.d.ts} +0 -0
  143. /package/dist/core/{field-resolvers.d.ts → core/field-resolvers.d.ts} +0 -0
  144. /package/dist/core/{formatters-helpers.d.ts → core/formatters-helpers.d.ts} +0 -0
  145. /package/dist/core/{formatters.d.ts → core/formatters.d.ts} +0 -0
  146. /package/dist/core/{history-buffer.d.ts → core/history-buffer.d.ts} +0 -0
  147. /package/dist/core/{icons.d.ts → core/icons.d.ts} +0 -0
  148. /package/dist/core/{index.d.ts → core/index.d.ts} +0 -0
  149. /package/dist/core/{internals-utils.d.ts → core/internals-utils.d.ts} +0 -0
  150. /package/dist/core/{job-utils.d.ts → core/job-utils.d.ts} +0 -0
  151. /package/dist/core/{log-utils-helpers.d.ts → core/log-utils-helpers.d.ts} +0 -0
  152. /package/dist/core/{log-utils.d.ts → core/log-utils.d.ts} +0 -0
  153. /package/dist/core/{metrics.d.ts → core/metrics.d.ts} +0 -0
  154. /package/dist/core/{pagination.d.ts → core/pagination.d.ts} +0 -0
  155. /package/dist/core/{queries-columns.d.ts → core/queries-columns.d.ts} +0 -0
  156. /package/dist/core/{queries-controller.d.ts → core/queries-controller.d.ts} +0 -0
  157. /package/dist/core/{query-utils.d.ts → core/query-utils.d.ts} +0 -0
  158. /package/dist/core/{resizable-columns.d.ts → core/resizable-columns.d.ts} +0 -0
  159. /package/dist/core/{routes.d.ts → core/routes.d.ts} +0 -0
  160. /package/dist/core/{server-stats-controller.d.ts → core/server-stats-controller.d.ts} +0 -0
  161. /package/dist/core/{sparkline.d.ts → core/sparkline.d.ts} +0 -0
  162. /package/dist/core/{split-pane.d.ts → core/split-pane.d.ts} +0 -0
  163. /package/dist/core/{theme.d.ts → core/theme.d.ts} +0 -0
  164. /package/dist/core/{trace-utils.d.ts → core/trace-utils.d.ts} +0 -0
  165. /package/dist/core/{transmit-adapter.d.ts → core/transmit-adapter.d.ts} +0 -0
  166. /package/dist/core/{transmit-helpers.d.ts → core/transmit-helpers.d.ts} +0 -0
  167. /package/dist/core/{types-dashboard.d.ts → core/types-dashboard.d.ts} +0 -0
  168. /package/dist/core/{types-diagnostics.d.ts → core/types-diagnostics.d.ts} +0 -0
@@ -1,397 +0,0 @@
1
- import { jsxs as s, jsx as e, Fragment as T } from "react/jsx-runtime";
2
- import { useState as v, useEffect as R, useCallback as $, useRef as C } from "react";
3
- import { collectTopLevelObjectKeys as I, isRedactedValue as y, copyWithFeedback as x, flattenConfig as A, formatFlatValue as k, countLeaves as B, TAB_ICONS as N } from "adonisjs-server-stats/core";
4
- function w({ redacted: r, p: i }) {
5
- const [l, n] = v(!1);
6
- return /* @__PURE__ */ s(
7
- "span",
8
- {
9
- className: `${i}-config-redacted`,
10
- style: { display: "inline-flex", alignItems: "center", gap: "4px" },
11
- children: [
12
- /* @__PURE__ */ e("span", { children: l ? r.value : r.display }),
13
- /* @__PURE__ */ e(
14
- "button",
15
- {
16
- type: "button",
17
- className: `${i}-btn`,
18
- title: l ? "Hide" : "Reveal",
19
- style: {
20
- padding: "0 4px",
21
- fontSize: "0.85em",
22
- lineHeight: 1,
23
- minWidth: "auto"
24
- },
25
- onClick: (d) => {
26
- d.stopPropagation(), n((o) => !o);
27
- },
28
- children: l ? /* @__PURE__ */ e(
29
- "svg",
30
- {
31
- width: "14",
32
- height: "14",
33
- viewBox: N["eye-off"].viewBox,
34
- fill: "none",
35
- stroke: "currentColor",
36
- strokeWidth: "2",
37
- strokeLinecap: "round",
38
- strokeLinejoin: "round",
39
- dangerouslySetInnerHTML: { __html: N["eye-off"].elements.join("") }
40
- }
41
- ) : /* @__PURE__ */ e(
42
- "svg",
43
- {
44
- width: "14",
45
- height: "14",
46
- viewBox: N.eye.viewBox,
47
- fill: "none",
48
- stroke: "currentColor",
49
- strokeWidth: "2",
50
- strokeLinecap: "round",
51
- strokeLinejoin: "round",
52
- dangerouslySetInnerHTML: { __html: N.eye.elements.join("") }
53
- }
54
- )
55
- }
56
- )
57
- ]
58
- }
59
- );
60
- }
61
- function E({
62
- env: r,
63
- search: i,
64
- p: l
65
- }) {
66
- const n = C(/* @__PURE__ */ new Map()), d = i.toLowerCase(), o = Object.entries(r).filter(([c, t]) => {
67
- if (!d) return !0;
68
- const a = y(t) ? t.display : t == null ? "" : String(t);
69
- return c.toLowerCase().includes(d) || a.toLowerCase().includes(d);
70
- });
71
- return /* @__PURE__ */ e("div", { className: `${l}-config-table-wrap`, children: /* @__PURE__ */ s("table", { className: `${l}-table ${l}-config-env-table`, children: [
72
- /* @__PURE__ */ e("thead", { children: /* @__PURE__ */ s("tr", { children: [
73
- /* @__PURE__ */ e("th", { children: "Variable" }),
74
- /* @__PURE__ */ e("th", { children: "Value" }),
75
- /* @__PURE__ */ e("th", { style: { width: 36 } })
76
- ] }) }),
77
- /* @__PURE__ */ s("tbody", { children: [
78
- o.map(([c, t]) => {
79
- const a = y(t), p = a ? t.display : t == null ? "null" : String(t), g = `${c}=${p}`;
80
- return /* @__PURE__ */ s("tr", { children: [
81
- /* @__PURE__ */ e("td", { className: `${l}-env-key`, children: /* @__PURE__ */ e("span", { className: `${l}-config-key`, children: c }) }),
82
- /* @__PURE__ */ e("td", { className: `${l}-env-val`, children: a ? /* @__PURE__ */ e(w, { redacted: t, p: l }) : /* @__PURE__ */ e("span", { className: `${l}-config-val`, children: p }) }),
83
- /* @__PURE__ */ e("td", { children: !a && /* @__PURE__ */ e(
84
- "button",
85
- {
86
- type: "button",
87
- className: `${l}-copy-row-btn`,
88
- title: "Copy",
89
- ref: (h) => {
90
- n.current.set(c, h);
91
- },
92
- onClick: (h) => {
93
- h.stopPropagation(), x(g, n.current.get(c) ?? null, l);
94
- },
95
- children: "⎘"
96
- }
97
- ) })
98
- ] }, c);
99
- }),
100
- o.length === 0 && /* @__PURE__ */ e("tr", { children: /* @__PURE__ */ e("td", { colSpan: 3, style: { textAlign: "center", color: "var(--ss-dim)" }, children: "No matching variables" }) })
101
- ] })
102
- ] }) });
103
- }
104
- function M({
105
- source: r,
106
- search: i,
107
- p: l
108
- }) {
109
- const n = C(/* @__PURE__ */ new Map()), d = i.toLowerCase(), o = A(r, ""), c = o.filter((t) => {
110
- const a = y(t.value) ? t.value.display : t.value === null || t.value === void 0 ? "" : String(t.value);
111
- return t.path.toLowerCase().includes(d) || a.toLowerCase().includes(d);
112
- });
113
- return /* @__PURE__ */ s("div", { className: `${l}-config-table-wrap`, children: [
114
- /* @__PURE__ */ s("table", { className: `${l}-table`, children: [
115
- /* @__PURE__ */ e("thead", { children: /* @__PURE__ */ s("tr", { children: [
116
- /* @__PURE__ */ e("th", { children: "Path" }),
117
- /* @__PURE__ */ e("th", { children: "Value" }),
118
- /* @__PURE__ */ e("th", { style: { width: 36 } })
119
- ] }) }),
120
- /* @__PURE__ */ s("tbody", { children: [
121
- c.map((t) => {
122
- const a = y(t.value), p = a ? null : k(t.value), g = a ? t.value.display : p.text, h = `${t.path}: ${g}`;
123
- return /* @__PURE__ */ s("tr", { children: [
124
- /* @__PURE__ */ e("td", { children: /* @__PURE__ */ e("span", { className: `${l}-config-key`, style: { whiteSpace: "nowrap" }, children: t.path }) }),
125
- /* @__PURE__ */ e("td", { children: a ? /* @__PURE__ */ e(w, { redacted: t.value, p: l }) : /* @__PURE__ */ e(
126
- "span",
127
- {
128
- className: `${l}-config-val`,
129
- style: { wordBreak: "break-all", color: p.color },
130
- children: p.text
131
- }
132
- ) }),
133
- /* @__PURE__ */ e("td", { children: !a && /* @__PURE__ */ e(
134
- "button",
135
- {
136
- type: "button",
137
- className: `${l}-copy-row-btn`,
138
- title: "Copy",
139
- ref: (b) => {
140
- n.current.set(t.path, b);
141
- },
142
- onClick: (b) => {
143
- b.stopPropagation(), x(h, n.current.get(t.path) ?? null, l);
144
- },
145
- children: "⎘"
146
- }
147
- ) })
148
- ] }, t.path);
149
- }),
150
- c.length === 0 && /* @__PURE__ */ e("tr", { children: /* @__PURE__ */ e("td", { colSpan: 3, style: { textAlign: "center", color: "var(--ss-dim)" }, children: "No matching entries" }) })
151
- ] })
152
- ] }),
153
- /* @__PURE__ */ s(
154
- "div",
155
- {
156
- style: {
157
- padding: "4px 16px",
158
- fontSize: "10px",
159
- color: "var(--ss-muted)"
160
- },
161
- children: [
162
- c.length,
163
- " of ",
164
- o.length,
165
- " entries"
166
- ]
167
- }
168
- )
169
- ] });
170
- }
171
- function F({ obj: r, prefix: i, p: l }) {
172
- const n = C(/* @__PURE__ */ new Map()), d = A(r, i);
173
- return /* @__PURE__ */ s("table", { className: `${l}-table ${l}-config-inner-table`, children: [
174
- /* @__PURE__ */ e("thead", { children: /* @__PURE__ */ s("tr", { children: [
175
- /* @__PURE__ */ e("th", { style: { width: "35%" }, children: "Key" }),
176
- /* @__PURE__ */ e("th", { children: "Value" }),
177
- /* @__PURE__ */ e("th", { style: { width: 36 } })
178
- ] }) }),
179
- /* @__PURE__ */ e("tbody", { children: d.map((o) => {
180
- const c = o.path.indexOf(i + ".") === 0 ? o.path.slice(i.length + 1) : o.path, t = y(o.value), a = t ? null : k(o.value), p = t ? o.value.display : a.text, g = `${o.path}: ${p}`;
181
- return /* @__PURE__ */ s("tr", { children: [
182
- /* @__PURE__ */ e("td", { title: c, children: /* @__PURE__ */ e("span", { className: `${l}-config-key`, children: c }) }),
183
- /* @__PURE__ */ e("td", { title: p, children: t ? /* @__PURE__ */ e(w, { redacted: o.value, p: l }) : /* @__PURE__ */ e("span", { className: `${l}-config-val`, style: { color: a.color }, children: a.text }) }),
184
- /* @__PURE__ */ e("td", { children: !t && /* @__PURE__ */ e(
185
- "button",
186
- {
187
- type: "button",
188
- className: `${l}-copy-row-btn`,
189
- title: "Copy",
190
- ref: (h) => {
191
- n.current.set(o.path, h);
192
- },
193
- onClick: (h) => {
194
- h.stopPropagation(), x(g, n.current.get(o.path) ?? null, l);
195
- },
196
- children: "⎘"
197
- }
198
- ) })
199
- ] }, o.path);
200
- }) })
201
- ] });
202
- }
203
- function H({ value: r, p: i }) {
204
- if (r == null)
205
- return /* @__PURE__ */ e("span", { className: `${i}-config-val`, style: { color: "var(--ss-dim)" }, children: "null" });
206
- if (y(r))
207
- return /* @__PURE__ */ e(w, { redacted: r, p: i });
208
- if (typeof r == "boolean")
209
- return /* @__PURE__ */ e(
210
- "span",
211
- {
212
- className: `${i}-config-val`,
213
- style: { color: r ? "var(--ss-green-fg)" : "var(--ss-red-fg)" },
214
- children: String(r)
215
- }
216
- );
217
- if (typeof r == "number")
218
- return /* @__PURE__ */ e("span", { className: `${i}-config-val`, style: { color: "var(--ss-amber-fg)" }, children: String(r) });
219
- if (Array.isArray(r)) {
220
- const l = r.map((n) => n == null ? "null" : typeof n == "object" ? JSON.stringify(n) : String(n));
221
- return /* @__PURE__ */ s("span", { className: `${i}-config-val`, style: { color: "var(--ss-purple-fg)" }, children: [
222
- "[",
223
- l.join(", "),
224
- "]"
225
- ] });
226
- }
227
- return typeof r == "object" ? /* @__PURE__ */ e("span", { className: `${i}-config-val`, style: { color: "var(--ss-dim)" }, children: JSON.stringify(r) }) : /* @__PURE__ */ e("span", { className: `${i}-config-val`, children: String(r) });
228
- }
229
- function J({
230
- obj: r,
231
- expandedPaths: i,
232
- onToggle: l,
233
- p: n
234
- }) {
235
- if (r == null || typeof r != "object" || Array.isArray(r) || y(r))
236
- return null;
237
- const d = Object.keys(r), o = C(/* @__PURE__ */ new Map());
238
- return /* @__PURE__ */ e("div", { className: `${n}-config-sections`, children: d.map((c) => {
239
- const t = r[c], a = t !== null && typeof t == "object" && !Array.isArray(t) && !y(t), p = i.has(c), g = y(t);
240
- return /* @__PURE__ */ s("div", { className: `${n}-config-section`, children: [
241
- /* @__PURE__ */ s(
242
- "div",
243
- {
244
- className: `${n}-config-section-header${a ? "" : ` ${n}-config-leaf`}`,
245
- onClick: a ? () => l(c) : void 0,
246
- style: { cursor: a ? "pointer" : "default" },
247
- children: [
248
- a ? /* @__PURE__ */ e("span", { className: `${n}-config-toggle`, children: p ? "▼" : "▶" }) : /* @__PURE__ */ e("span", { className: `${n}-config-toggle`, style: { visibility: "hidden" }, children: "•" }),
249
- /* @__PURE__ */ e("span", { className: `${n}-config-key`, children: c }),
250
- a ? /* @__PURE__ */ s("span", { className: `${n}-config-count`, children: [
251
- B(t),
252
- " entries"
253
- ] }) : /* @__PURE__ */ s(T, { children: [
254
- /* @__PURE__ */ e("span", { className: `${n}-config-val`, style: { marginLeft: "8px" }, children: /* @__PURE__ */ e(H, { value: t, p: n }) }),
255
- !g && /* @__PURE__ */ e(
256
- "button",
257
- {
258
- type: "button",
259
- className: `${n}-copy-row-btn`,
260
- style: { marginLeft: "4px" },
261
- title: "Copy",
262
- ref: (h) => {
263
- o.current.set(c, h);
264
- },
265
- onClick: (h) => {
266
- h.stopPropagation();
267
- const b = k(t);
268
- x(
269
- `${c}: ${b.text}`,
270
- o.current.get(c) ?? null,
271
- n
272
- );
273
- },
274
- children: "⎘"
275
- }
276
- )
277
- ] })
278
- ]
279
- }
280
- ),
281
- a && p && /* @__PURE__ */ e("div", { className: `${n}-config-section-body`, children: /* @__PURE__ */ e(F, { obj: t, prefix: c, p: n }) })
282
- ] }, c);
283
- }) });
284
- }
285
- function K({ data: r, isLoading: i, classPrefix: l }) {
286
- const n = l, [d, o] = v(""), [c, t] = v(""), [a, p] = v("app"), [g, h] = v(/* @__PURE__ */ new Set()), [b, L] = v("Copy JSON");
287
- R(() => {
288
- const f = setTimeout(() => t(d), 200);
289
- return () => clearTimeout(f);
290
- }, [d]);
291
- const u = r, V = $((f) => {
292
- h((S) => {
293
- const m = new Set(S);
294
- return m.has(f) ? m.delete(f) : m.add(f), m;
295
- });
296
- }, []), j = $(() => {
297
- if (!u) return;
298
- const f = a === "app" ? u.app : u.env;
299
- if (!f) return;
300
- const S = I(f);
301
- h(new Set(S));
302
- }, [u, a]), O = $(() => {
303
- h(/* @__PURE__ */ new Set());
304
- }, []), P = $(async () => {
305
- if (u)
306
- try {
307
- const f = a === "app" ? u.app : u.env;
308
- await navigator.clipboard.writeText(JSON.stringify(f, null, 2)), L("Copied!"), setTimeout(() => L("Copy JSON"), 1500);
309
- } catch {
310
- }
311
- }, [u, a]);
312
- return /* @__PURE__ */ s("div", { children: [
313
- /* @__PURE__ */ s(
314
- "div",
315
- {
316
- className: `${n}-config-toolbar`,
317
- style: {
318
- display: "flex",
319
- alignItems: "center",
320
- gap: "8px",
321
- padding: "8px 12px"
322
- },
323
- children: [
324
- /* @__PURE__ */ e(
325
- "button",
326
- {
327
- type: "button",
328
- className: `${n}-config-tab${a === "app" ? ` ${n}-active` : ""}`,
329
- onClick: () => p("app"),
330
- children: "App Config"
331
- }
332
- ),
333
- /* @__PURE__ */ e(
334
- "button",
335
- {
336
- type: "button",
337
- className: `${n}-config-tab${a === "env" ? ` ${n}-active` : ""}`,
338
- onClick: () => p("env"),
339
- children: "Env"
340
- }
341
- ),
342
- /* @__PURE__ */ s("div", { style: { position: "relative", flex: 1 }, children: [
343
- /* @__PURE__ */ e(
344
- "input",
345
- {
346
- type: "text",
347
- className: `${n}-search`,
348
- placeholder: "Search keys and values...",
349
- value: d,
350
- onChange: (f) => o(f.target.value),
351
- style: { width: "100%" }
352
- }
353
- ),
354
- d && /* @__PURE__ */ e(
355
- "button",
356
- {
357
- type: "button",
358
- onClick: () => o(""),
359
- style: {
360
- position: "absolute",
361
- right: "6px",
362
- top: "50%",
363
- transform: "translateY(-50%)",
364
- background: "none",
365
- border: "none",
366
- cursor: "pointer",
367
- fontSize: "14px",
368
- color: "var(--ss-dim)",
369
- padding: "0 2px",
370
- lineHeight: 1
371
- },
372
- children: "×"
373
- }
374
- )
375
- ] }),
376
- a === "app" && !c && /* @__PURE__ */ s(T, { children: [
377
- /* @__PURE__ */ e("button", { type: "button", className: `${n}-btn`, onClick: j, children: "Expand All" }),
378
- /* @__PURE__ */ e("button", { type: "button", className: `${n}-btn`, onClick: O, children: "Collapse All" })
379
- ] }),
380
- /* @__PURE__ */ e("button", { type: "button", className: `${n}-btn`, onClick: P, children: b })
381
- ]
382
- }
383
- ),
384
- i && !r ? /* @__PURE__ */ e("div", { className: `${n}-empty`, children: "Loading config..." }) : u ? a === "env" ? /* @__PURE__ */ e(E, { env: u.env ?? {}, search: c, p: n }) : c ? /* @__PURE__ */ e(M, { source: u.app ?? {}, search: c, p: n }) : /* @__PURE__ */ e("div", { className: `${n}-config-table-wrap`, children: /* @__PURE__ */ e(
385
- J,
386
- {
387
- obj: u.app,
388
- expandedPaths: g,
389
- onToggle: V,
390
- p: n
391
- }
392
- ) }) : /* @__PURE__ */ e("div", { className: `${n}-empty`, children: "Config not available" })
393
- ] });
394
- }
395
- export {
396
- K as C
397
- };
@@ -1,79 +0,0 @@
1
- import { jsx as o, jsxs as a } from "react/jsx-runtime";
2
- import { useState as i, useMemo as v, useCallback as x } from "react";
3
- import { filterLogsByLevel as C, resolveLogRequestId as N, resolveLogMessage as F, LOG_LEVELS as w } from "adonisjs-server-stats/core";
4
- import { u as E } from "./index-CsprmgzI.js";
5
- import { F as I } from "./FilterBar-CQ7bD669.js";
6
- import { L as k } from "./LogEntryRow-BOrRkhRU.js";
7
- function M({ options: f }) {
8
- const { data: t, isLoading: p, error: g } = E("logs", f), [d, L] = i("all"), [n, h] = i(""), [l, m] = i(""), [u, b] = i(null), c = v(() => {
9
- let e = Array.isArray(t) ? t : t?.logs || t?.entries || [];
10
- if (e = C(e, d), l) {
11
- const s = l.toLowerCase();
12
- e = e.filter((r) => N(r).toLowerCase().includes(s));
13
- }
14
- if (n) {
15
- const s = n.toLowerCase();
16
- e = e.filter((r) => F(r).toLowerCase().includes(s));
17
- }
18
- return e;
19
- }, [t, d, n, l]), y = x((e) => {
20
- m((s) => s === e ? "" : e);
21
- }, []);
22
- return p && !t ? /* @__PURE__ */ o("div", { className: "ss-dbg-empty", children: "Loading logs..." }) : g ? /* @__PURE__ */ a("div", { className: "ss-dbg-empty", children: [
23
- "Error: ",
24
- g.message
25
- ] }) : /* @__PURE__ */ a("div", { children: [
26
- /* @__PURE__ */ a("div", { className: "ss-dbg-log-filters", children: [
27
- w.map((e) => /* @__PURE__ */ o(
28
- "button",
29
- {
30
- type: "button",
31
- className: `ss-dbg-log-filter ${d === e ? "ss-dbg-active" : ""}`,
32
- onClick: () => L(e),
33
- children: e
34
- },
35
- e
36
- )),
37
- l && /* @__PURE__ */ a(
38
- "button",
39
- {
40
- type: "button",
41
- className: "ss-dbg-log-filter ss-dbg-active",
42
- onClick: () => m(""),
43
- children: [
44
- "req: ",
45
- l.slice(0, 8),
46
- " x"
47
- ]
48
- }
49
- ),
50
- /* @__PURE__ */ a("span", { className: "ss-dbg-summary", style: { marginLeft: "auto" }, children: [
51
- c.length,
52
- " entries"
53
- ] })
54
- ] }),
55
- /* @__PURE__ */ o(
56
- I,
57
- {
58
- search: n,
59
- onSearchChange: h,
60
- placeholder: "Filter log messages..."
61
- }
62
- ),
63
- /* @__PURE__ */ o("div", { style: { overflow: "auto", flex: 1 }, children: c.length === 0 ? /* @__PURE__ */ o("div", { className: "ss-dbg-empty", children: "No log entries" }) : c.slice(0, 200).map((e, s) => /* @__PURE__ */ o(
64
- k,
65
- {
66
- log: e,
67
- index: s,
68
- expanded: u === s,
69
- onToggleExpand: (r) => b(u === r ? null : r),
70
- onReqIdClick: y
71
- },
72
- s
73
- )) })
74
- ] });
75
- }
76
- export {
77
- M as LogsTab,
78
- M as default
79
- };