adonisjs-server-stats 1.11.2 → 1.11.4
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.
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.js +358 -294
- package/dist/src/controller/debug_controller.js +2 -3
- package/package.json +1 -1
- /package/dist/react/{react/components → components}/Dashboard/DashboardPage.d.ts +0 -0
- /package/dist/react/{react/components → components}/Dashboard/sections/CacheSection.d.ts +0 -0
- /package/dist/react/{react/components → components}/Dashboard/sections/ConfigSection.d.ts +0 -0
- /package/dist/react/{react/components → components}/Dashboard/sections/EmailsSection.d.ts +0 -0
- /package/dist/react/{react/components → components}/Dashboard/sections/EventsSection.d.ts +0 -0
- /package/dist/react/{react/components → components}/Dashboard/sections/InternalsSection.d.ts +0 -0
- /package/dist/react/{react/components → components}/Dashboard/sections/JobsSection.d.ts +0 -0
- /package/dist/react/{react/components → components}/Dashboard/sections/LogsSection.d.ts +0 -0
- /package/dist/react/{react/components → components}/Dashboard/sections/OverviewSection.d.ts +0 -0
- /package/dist/react/{react/components → components}/Dashboard/sections/QueriesSection.d.ts +0 -0
- /package/dist/react/{react/components → components}/Dashboard/sections/RequestsSection.d.ts +0 -0
- /package/dist/react/{react/components → components}/Dashboard/sections/RoutesSection.d.ts +0 -0
- /package/dist/react/{react/components → components}/Dashboard/shared/DataTable.d.ts +0 -0
- /package/dist/react/{react/components → components}/Dashboard/shared/Pagination.d.ts +0 -0
- /package/dist/react/{react/components → components}/Dashboard/shared/TimeRangeSelector.d.ts +0 -0
- /package/dist/react/{react/components → components}/Dashboard/shared/WaterfallChart.d.ts +0 -0
- /package/dist/react/{react/components → components}/DebugPanel/DebugPanel.d.ts +0 -0
- /package/dist/react/{react/components → components}/DebugPanel/tabs/CacheTab.d.ts +0 -0
- /package/dist/react/{react/components → components}/DebugPanel/tabs/ConfigTab.d.ts +0 -0
- /package/dist/react/{react/components → components}/DebugPanel/tabs/CustomPaneTab.d.ts +0 -0
- /package/dist/react/{react/components → components}/DebugPanel/tabs/EmailsTab.d.ts +0 -0
- /package/dist/react/{react/components → components}/DebugPanel/tabs/EventsTab.d.ts +0 -0
- /package/dist/react/{react/components → components}/DebugPanel/tabs/InternalsTab.d.ts +0 -0
- /package/dist/react/{react/components → components}/DebugPanel/tabs/JobsTab.d.ts +0 -0
- /package/dist/react/{react/components → components}/DebugPanel/tabs/LogsTab.d.ts +0 -0
- /package/dist/react/{react/components → components}/DebugPanel/tabs/QueriesTab.d.ts +0 -0
- /package/dist/react/{react/components → components}/DebugPanel/tabs/RoutesTab.d.ts +0 -0
- /package/dist/react/{react/components → components}/DebugPanel/tabs/TimelineTab.d.ts +0 -0
- /package/dist/react/{react/components → components}/StatsBar/MetricCard.d.ts +0 -0
- /package/dist/react/{react/components → components}/StatsBar/Sparkline.d.ts +0 -0
- /package/dist/react/{react/components → components}/StatsBar/StatsBar.d.ts +0 -0
- /package/dist/react/{react/components → components}/shared/Badge.d.ts +0 -0
- /package/dist/react/{react/components → components}/shared/CacheStatsBar.d.ts +0 -0
- /package/dist/react/{react/components → components}/shared/ConfigContent.d.ts +0 -0
- /package/dist/react/{react/components → components}/shared/EmailPreviewOverlay.d.ts +0 -0
- /package/dist/react/{react/components → components}/shared/FilterBar.d.ts +0 -0
- /package/dist/react/{react/components → components}/shared/InternalsContent.d.ts +0 -0
- /package/dist/react/{react/components → components}/shared/JobStatsBar.d.ts +0 -0
- /package/dist/react/{react/components → components}/shared/JsonViewer.d.ts +0 -0
- /package/dist/react/{react/components → components}/shared/LogEntryRow.d.ts +0 -0
- /package/dist/react/{react/components → components}/shared/RelatedLogs.d.ts +0 -0
- /package/dist/react/{react/components → components}/shared/SplitPaneWrapper.d.ts +0 -0
- /package/dist/react/{react/components → components}/shared/ThemeToggle.d.ts +0 -0
- /package/dist/react/{react/components → components}/shared/TimeAgoCell.d.ts +0 -0
- /package/dist/react/{react/components → components}/shared/Tooltip.d.ts +0 -0
- /package/dist/react/{react/hooks → hooks}/useApiClient.d.ts +0 -0
- /package/dist/react/{react/hooks → hooks}/useDashboardApiBase.d.ts +0 -0
- /package/dist/react/{react/hooks → hooks}/useDashboardData.d.ts +0 -0
- /package/dist/react/{react/hooks → hooks}/useDebugData.d.ts +0 -0
- /package/dist/react/{react/hooks → hooks}/useDiagnosticsData.d.ts +0 -0
- /package/dist/react/{react/hooks → hooks}/useFeatures.d.ts +0 -0
- /package/dist/react/{react/hooks → hooks}/useResizableTable.d.ts +0 -0
- /package/dist/react/{react/hooks → hooks}/useServerStats.d.ts +0 -0
- /package/dist/react/{react/hooks → hooks}/useTheme.d.ts +0 -0
- /package/dist/react/{react/index.d.ts → index.d.ts} +0 -0
package/dist/core/index.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
class
|
|
1
|
+
class S extends Error {
|
|
2
2
|
status;
|
|
3
3
|
constructor(t = 403) {
|
|
4
4
|
super(`Unauthorized (HTTP ${t})`), this.name = "UnauthorizedError", this.status = t;
|
|
5
5
|
}
|
|
6
6
|
}
|
|
7
|
-
class
|
|
7
|
+
class H extends Error {
|
|
8
8
|
status;
|
|
9
9
|
body;
|
|
10
10
|
constructor(t, r) {
|
|
11
11
|
super(`API error (HTTP ${t})`), this.name = "ApiError", this.status = t, this.body = r;
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
class
|
|
14
|
+
class E {
|
|
15
15
|
baseUrl;
|
|
16
16
|
authToken;
|
|
17
17
|
constructor(t) {
|
|
@@ -39,10 +39,10 @@ class v {
|
|
|
39
39
|
if (r?.signal?.aborted)
|
|
40
40
|
throw new DOMException("The operation was aborted.", "AbortError");
|
|
41
41
|
if (s.status === 401 || s.status === 403)
|
|
42
|
-
throw new
|
|
42
|
+
throw new S(s.status);
|
|
43
43
|
if (!s.ok) {
|
|
44
44
|
const i = await s.text().catch(() => "");
|
|
45
|
-
throw new
|
|
45
|
+
throw new H(s.status, i);
|
|
46
46
|
}
|
|
47
47
|
return s.json();
|
|
48
48
|
}
|
|
@@ -84,7 +84,7 @@ class v {
|
|
|
84
84
|
return this.fetch(t, { method: "DELETE" });
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
|
-
function
|
|
87
|
+
function N(e, t) {
|
|
88
88
|
const r = e || (typeof window < "u" ? window.location.origin : "");
|
|
89
89
|
if (!t)
|
|
90
90
|
return { baseUrl: r };
|
|
@@ -99,7 +99,7 @@ function H(e, t) {
|
|
|
99
99
|
}
|
|
100
100
|
};
|
|
101
101
|
}
|
|
102
|
-
async function
|
|
102
|
+
async function q() {
|
|
103
103
|
if (typeof window < "u" && window.Transmit && typeof window.Transmit == "function")
|
|
104
104
|
return window.Transmit;
|
|
105
105
|
try {
|
|
@@ -109,17 +109,17 @@ async function N() {
|
|
|
109
109
|
return null;
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
|
-
function
|
|
112
|
+
function z(e) {
|
|
113
113
|
let t = null, r = null, n = !1;
|
|
114
114
|
return { subscribe: async () => {
|
|
115
115
|
try {
|
|
116
|
-
const i = await
|
|
116
|
+
const i = await q();
|
|
117
117
|
if (!i)
|
|
118
118
|
throw new Error(
|
|
119
119
|
"Transmit client not available (neither window.Transmit nor @adonisjs/transmit-client)"
|
|
120
120
|
);
|
|
121
121
|
if (n) return;
|
|
122
|
-
t = new i(
|
|
122
|
+
t = new i(N(e.baseUrl, e.authToken)), r = t.subscription(e.channelName), r.onMessage((a) => {
|
|
123
123
|
n || e.onMessage(a);
|
|
124
124
|
}), await r.create();
|
|
125
125
|
} catch (i) {
|
|
@@ -135,7 +135,7 @@ function q(e) {
|
|
|
135
135
|
}
|
|
136
136
|
function K(e) {
|
|
137
137
|
let t = !1;
|
|
138
|
-
const r =
|
|
138
|
+
const r = z({
|
|
139
139
|
baseUrl: e.baseUrl,
|
|
140
140
|
channelName: e.channelName,
|
|
141
141
|
authToken: e.authToken,
|
|
@@ -155,18 +155,18 @@ function K(e) {
|
|
|
155
155
|
}
|
|
156
156
|
};
|
|
157
157
|
}
|
|
158
|
-
const
|
|
159
|
-
function
|
|
158
|
+
const v = "ss-dash-theme", M = "ss-theme-change";
|
|
159
|
+
function D() {
|
|
160
160
|
if (typeof window > "u") return "light";
|
|
161
|
-
const e = localStorage.getItem(
|
|
161
|
+
const e = localStorage.getItem(v);
|
|
162
162
|
return e === "dark" || e === "light" ? e : window.matchMedia?.("(prefers-color-scheme: dark)").matches ? "dark" : "light";
|
|
163
163
|
}
|
|
164
|
-
function
|
|
165
|
-
typeof window > "u" || (localStorage.setItem(
|
|
164
|
+
function j(e) {
|
|
165
|
+
typeof window > "u" || (localStorage.setItem(v, e), window.dispatchEvent(new CustomEvent(M, { detail: e })));
|
|
166
166
|
}
|
|
167
|
-
function
|
|
168
|
-
const t =
|
|
169
|
-
return
|
|
167
|
+
function ze() {
|
|
168
|
+
const t = D() === "dark" ? "light" : "dark";
|
|
169
|
+
return j(t), t;
|
|
170
170
|
}
|
|
171
171
|
function Ke(e) {
|
|
172
172
|
if (typeof window > "u") return () => {
|
|
@@ -175,18 +175,18 @@ function Ke(e) {
|
|
|
175
175
|
const i = s.detail;
|
|
176
176
|
(i === "dark" || i === "light") && e(i);
|
|
177
177
|
}, r = (s) => {
|
|
178
|
-
if (s.key ===
|
|
178
|
+
if (s.key === v) {
|
|
179
179
|
const i = s.newValue;
|
|
180
|
-
e(i === "dark" || i === "light" ? i :
|
|
180
|
+
e(i === "dark" || i === "light" ? i : D());
|
|
181
181
|
}
|
|
182
182
|
}, n = window.matchMedia("(prefers-color-scheme: dark)"), o = (s) => {
|
|
183
|
-
localStorage.getItem(
|
|
183
|
+
localStorage.getItem(v) || e(s.matches ? "dark" : "light");
|
|
184
184
|
};
|
|
185
|
-
return window.addEventListener(
|
|
186
|
-
window.removeEventListener(
|
|
185
|
+
return window.addEventListener(M, t), window.addEventListener("storage", r), n.addEventListener("change", o), () => {
|
|
186
|
+
window.removeEventListener(M, t), window.removeEventListener("storage", r), n.removeEventListener("change", o);
|
|
187
187
|
};
|
|
188
188
|
}
|
|
189
|
-
const
|
|
189
|
+
const y = {
|
|
190
190
|
color: "#34d399",
|
|
191
191
|
fillOpacityTop: 0.25,
|
|
192
192
|
fillOpacityBottom: 0.02,
|
|
@@ -195,30 +195,30 @@ const m = {
|
|
|
195
195
|
height: 32,
|
|
196
196
|
padding: 2
|
|
197
197
|
};
|
|
198
|
-
function
|
|
199
|
-
return { ...
|
|
198
|
+
function W(e) {
|
|
199
|
+
return { ...y, ...e };
|
|
200
200
|
}
|
|
201
|
-
function
|
|
201
|
+
function je(e, t = y.width, r = y.height, n = y.padding) {
|
|
202
202
|
if (e.length < 2) return null;
|
|
203
203
|
const o = t - n * 2, s = r - n * 2, i = Math.min(...e), c = Math.max(...e) - i || 1;
|
|
204
|
-
return e.map((
|
|
205
|
-
const
|
|
206
|
-
return `${
|
|
204
|
+
return e.map((m, d) => {
|
|
205
|
+
const f = n + d / (e.length - 1) * o, p = n + s - (m - i) / c * s;
|
|
206
|
+
return `${f.toFixed(1)},${p.toFixed(1)}`;
|
|
207
207
|
}).join(" ");
|
|
208
208
|
}
|
|
209
|
-
function
|
|
209
|
+
function We(e, t = y.width, r = y.height, n = y.padding) {
|
|
210
210
|
if (e.length < 2) return null;
|
|
211
|
-
const o = t - n * 2, s = r - n * 2, i = Math.min(...e), c = Math.max(...e) - i || 1, l = e.map((
|
|
212
|
-
const
|
|
213
|
-
return `${
|
|
214
|
-
}),
|
|
215
|
-
return `M${l[0]} ` + l.slice(1).map((
|
|
211
|
+
const o = t - n * 2, s = r - n * 2, i = Math.min(...e), c = Math.max(...e) - i || 1, l = e.map((p, b) => {
|
|
212
|
+
const h = n + b / (e.length - 1) * o, T = n + s - (p - i) / c * s;
|
|
213
|
+
return `${h.toFixed(1)},${T.toFixed(1)}`;
|
|
214
|
+
}), m = (n + o).toFixed(1), d = (n + s).toFixed(1), f = n.toFixed(1);
|
|
215
|
+
return `M${l[0]} ` + l.slice(1).map((p) => `L${p}`).join(" ") + ` L${m},${d} L${f},${d} Z`;
|
|
216
216
|
}
|
|
217
217
|
let V = 0;
|
|
218
|
-
function
|
|
218
|
+
function G() {
|
|
219
219
|
return `ss-grad-${V++}`;
|
|
220
220
|
}
|
|
221
|
-
function
|
|
221
|
+
function Q(e) {
|
|
222
222
|
if (e.length === 0) return null;
|
|
223
223
|
let t = e[0], r = e[0], n = e[0];
|
|
224
224
|
for (let o = 1; o < e.length; o++) {
|
|
@@ -229,30 +229,30 @@ function G(e) {
|
|
|
229
229
|
}
|
|
230
230
|
function Ve(e, t) {
|
|
231
231
|
if (e.length < 2) return null;
|
|
232
|
-
const r =
|
|
233
|
-
for (let
|
|
234
|
-
const
|
|
235
|
-
l[
|
|
232
|
+
const r = W(t), n = Q(e), o = n.max - n.min || 1, s = r.width - r.padding * 2, i = r.height - r.padding * 2, a = r.padding, c = e.length, l = Array.from({ length: c });
|
|
233
|
+
for (let h = 0; h < c; h++) {
|
|
234
|
+
const T = a + h / (c - 1) * s, B = a + i - (e[h] - n.min) / o * i;
|
|
235
|
+
l[h] = `${T.toFixed(1)},${B.toFixed(1)}`;
|
|
236
236
|
}
|
|
237
|
-
const
|
|
237
|
+
const m = l.join(" "), d = (a + s).toFixed(1), f = (a + i).toFixed(1), p = a.toFixed(1), b = `M${l[0]} ` + l.slice(1).map((h) => `L${h}`).join(" ") + ` L${d},${f} L${p},${f} Z`;
|
|
238
238
|
return {
|
|
239
|
-
points:
|
|
240
|
-
areaPath:
|
|
241
|
-
gradientId:
|
|
239
|
+
points: m,
|
|
240
|
+
areaPath: b,
|
|
241
|
+
gradientId: G(),
|
|
242
242
|
options: r,
|
|
243
243
|
stats: n
|
|
244
244
|
};
|
|
245
245
|
}
|
|
246
|
-
const
|
|
247
|
-
function
|
|
246
|
+
const J = 5e3, Y = 1e4, X = 3e3, Z = 100, ee = 500, te = 60, re = 1e4;
|
|
247
|
+
function ne(e) {
|
|
248
248
|
return '"' + (e.length > 40 ? e.slice(0, 40) + "..." : e) + '"';
|
|
249
249
|
}
|
|
250
|
-
function
|
|
250
|
+
function se(e, t, r) {
|
|
251
251
|
if (e.length === 0) return "[]";
|
|
252
252
|
const n = e.slice(0, 3).map((i) => r(i, 30)), o = e.length > 3 ? ", ..." + e.length + " items" : "", s = "[" + n.join(", ") + o + "]";
|
|
253
253
|
return s.length > t ? "[" + e.length + " items]" : s;
|
|
254
254
|
}
|
|
255
|
-
function
|
|
255
|
+
function oe(e, t, r) {
|
|
256
256
|
const n = Object.keys(e);
|
|
257
257
|
if (n.length === 0) return "{}";
|
|
258
258
|
const o = [];
|
|
@@ -261,30 +261,30 @@ function se(e, t, r) {
|
|
|
261
261
|
const s = n.length > 4 ? ", ...+" + (n.length - 4) : "", i = "{ " + o.join(", ") + s + " }";
|
|
262
262
|
return i.length <= t ? i : "{ " + (n.slice(0, 6).join(", ") + (n.length > 6 ? ", ..." : "")) + " }";
|
|
263
263
|
}
|
|
264
|
-
function
|
|
264
|
+
function ie(e) {
|
|
265
265
|
if (!e && e !== 0) return "-";
|
|
266
266
|
const t = Math.floor(e), r = Math.floor(t / 86400), n = Math.floor(t % 86400 / 3600), o = Math.floor(t % 3600 / 60);
|
|
267
267
|
return r > 0 ? `${r}d ${n}h` : n > 0 ? `${n}h ${o}m` : o > 0 ? `${o}m ${t % 60}s` : `${t}s`;
|
|
268
268
|
}
|
|
269
|
-
function
|
|
269
|
+
function P(e) {
|
|
270
270
|
const t = e / 1048576;
|
|
271
271
|
return t >= 1024 ? `${(t / 1024).toFixed(1)}G` : `${t.toFixed(0)}M`;
|
|
272
272
|
}
|
|
273
|
-
function
|
|
273
|
+
function R(e) {
|
|
274
274
|
return e >= 1024 ? `${(e / 1024).toFixed(1)}G` : `${e.toFixed(1)}M`;
|
|
275
275
|
}
|
|
276
|
-
function
|
|
276
|
+
function ae(e) {
|
|
277
277
|
return e >= 1e6 ? `${(e / 1e6).toFixed(1)}M` : e >= 1e3 ? `${(e / 1e3).toFixed(1)}K` : `${e}`;
|
|
278
278
|
}
|
|
279
|
-
function
|
|
279
|
+
function Ge(e) {
|
|
280
280
|
return e >= 1e3 ? `${(e / 1e3).toFixed(2)}s` : e >= 1 ? `${e.toFixed(0)}ms` : `${e.toFixed(2)}ms`;
|
|
281
281
|
}
|
|
282
|
-
function
|
|
282
|
+
function _(e) {
|
|
283
283
|
return /([+-]\d{2}:?\d{2}|Z)\s*$/.test(e) ? e : e + "Z";
|
|
284
284
|
}
|
|
285
|
-
function
|
|
285
|
+
function Qe(e) {
|
|
286
286
|
if (!e) return "-";
|
|
287
|
-
const t = typeof e == "string" ? new Date(
|
|
287
|
+
const t = typeof e == "string" ? new Date(_(e)) : new Date(e);
|
|
288
288
|
return Number.isNaN(t.getTime()) ? "-" : t.toLocaleTimeString("en-US", {
|
|
289
289
|
hour12: !1,
|
|
290
290
|
hour: "2-digit",
|
|
@@ -292,12 +292,12 @@ function Ge(e) {
|
|
|
292
292
|
second: "2-digit"
|
|
293
293
|
}) + "." + String(t.getMilliseconds()).padStart(3, "0");
|
|
294
294
|
}
|
|
295
|
-
function
|
|
295
|
+
function Je(e) {
|
|
296
296
|
if (!e) return "-";
|
|
297
|
-
const t = typeof e == "string" ? new Date(
|
|
297
|
+
const t = typeof e == "string" ? new Date(_(e)).getTime() : e, r = Math.floor((Date.now() - t) / 1e3);
|
|
298
298
|
return r < 0 ? "just now" : r < 60 ? `${r}s ago` : r < 3600 ? `${Math.floor(r / 60)}m ago` : r < 86400 ? `${Math.floor(r / 3600)}h ago` : `${Math.floor(r / 86400)}d ago`;
|
|
299
299
|
}
|
|
300
|
-
function
|
|
300
|
+
function Ye(e, t) {
|
|
301
301
|
switch (t) {
|
|
302
302
|
case "%":
|
|
303
303
|
return `${e.toFixed(1)}%`;
|
|
@@ -306,7 +306,7 @@ function Je(e, t) {
|
|
|
306
306
|
case "MB":
|
|
307
307
|
return `${e.toFixed(1)}M`;
|
|
308
308
|
case "bytes":
|
|
309
|
-
return
|
|
309
|
+
return P(e);
|
|
310
310
|
case "/s":
|
|
311
311
|
case "/m":
|
|
312
312
|
return e.toFixed(1);
|
|
@@ -317,51 +317,51 @@ function Je(e, t) {
|
|
|
317
317
|
function x(e, t, r) {
|
|
318
318
|
return e > r ? "red" : e > t ? "amber" : "green";
|
|
319
319
|
}
|
|
320
|
-
function
|
|
320
|
+
function ce(e, t, r) {
|
|
321
321
|
return e < r ? "red" : e < t ? "amber" : "green";
|
|
322
322
|
}
|
|
323
|
-
function
|
|
323
|
+
function L(e, t) {
|
|
324
324
|
if (t === 0) return "green";
|
|
325
325
|
const r = e / t;
|
|
326
326
|
return r > 0.8 ? "red" : r > 0.5 ? "amber" : "green";
|
|
327
327
|
}
|
|
328
|
-
const
|
|
328
|
+
const le = {
|
|
329
329
|
green: "ss-green",
|
|
330
330
|
amber: "ss-amber",
|
|
331
331
|
red: "ss-red"
|
|
332
|
-
},
|
|
332
|
+
}, Xe = {
|
|
333
333
|
green: "#34d399",
|
|
334
334
|
amber: "#fbbf24",
|
|
335
335
|
red: "#f87171"
|
|
336
|
-
},
|
|
336
|
+
}, Ze = {
|
|
337
337
|
green: "--ss-accent",
|
|
338
338
|
amber: "--ss-amber-fg",
|
|
339
339
|
red: "--ss-red-fg"
|
|
340
340
|
};
|
|
341
|
-
function
|
|
341
|
+
function et(e) {
|
|
342
342
|
return e >= 500 ? "red" : e >= 400 ? "amber" : "green";
|
|
343
343
|
}
|
|
344
|
-
function
|
|
345
|
-
return e >
|
|
344
|
+
function ue(e) {
|
|
345
|
+
return e > ee ? "very-slow" : e > Z ? "slow" : "normal";
|
|
346
346
|
}
|
|
347
|
-
function
|
|
348
|
-
const r =
|
|
347
|
+
function tt(e, t = "ss-dash") {
|
|
348
|
+
const r = ue(e);
|
|
349
349
|
return r === "very-slow" ? `${t}-very-slow` : r === "slow" ? `${t}-slow` : "";
|
|
350
350
|
}
|
|
351
|
-
function
|
|
351
|
+
function rt(e) {
|
|
352
352
|
return e ? e.length <= 8 ? e : e.slice(0, 8) + "…" : "--";
|
|
353
353
|
}
|
|
354
|
-
function
|
|
355
|
-
return e === null ? "null" : e === void 0 ? "-" : typeof e == "string" ?
|
|
354
|
+
function F(e, t = 100) {
|
|
355
|
+
return e === null ? "null" : e === void 0 ? "-" : typeof e == "string" ? ne(e) : typeof e == "number" || typeof e == "boolean" ? String(e) : Array.isArray(e) ? se(e, t, F) : typeof e == "object" ? oe(e, t, F) : String(e);
|
|
356
356
|
}
|
|
357
|
-
function
|
|
357
|
+
function nt(e) {
|
|
358
358
|
return e < 0 ? "no expiry" : e < 60 ? `${e}s` : e < 3600 ? `${Math.floor(e / 60)}m` : e < 86400 ? `${Math.floor(e / 3600)}h` : `${Math.floor(e / 86400)}d`;
|
|
359
359
|
}
|
|
360
|
-
function
|
|
360
|
+
function st(e) {
|
|
361
361
|
return e < 1024 ? `${e}B` : e < 1024 * 1024 ? `${(e / 1024).toFixed(1)}KB` : `${(e / (1024 * 1024)).toFixed(1)}MB`;
|
|
362
362
|
}
|
|
363
363
|
const O = 50;
|
|
364
|
-
function
|
|
364
|
+
function ot(e, t, r) {
|
|
365
365
|
const n = new URLSearchParams();
|
|
366
366
|
if (n.set("page", String(e.page)), n.set("perPage", String(e.perPage)), t) {
|
|
367
367
|
t.search && n.set("search", t.search);
|
|
@@ -370,7 +370,7 @@ function st(e, t, r) {
|
|
|
370
370
|
}
|
|
371
371
|
return r && (n.set("sort", r.field), n.set("direction", r.direction)), n.toString();
|
|
372
372
|
}
|
|
373
|
-
function
|
|
373
|
+
function it(e, t = O) {
|
|
374
374
|
const r = e.data ?? e.items ?? [], n = e.total ?? 0, o = e.page ?? 1, s = e.perPage ?? e.limit ?? t, i = e.totalPages ?? (Math.ceil(n / s) || 1);
|
|
375
375
|
return {
|
|
376
376
|
data: r,
|
|
@@ -382,7 +382,7 @@ function ot(e, t = O) {
|
|
|
382
382
|
}
|
|
383
383
|
};
|
|
384
384
|
}
|
|
385
|
-
function
|
|
385
|
+
function at(e = O) {
|
|
386
386
|
return {
|
|
387
387
|
page: 1,
|
|
388
388
|
perPage: e,
|
|
@@ -390,16 +390,16 @@ function it(e = O) {
|
|
|
390
390
|
totalPages: 1
|
|
391
391
|
};
|
|
392
392
|
}
|
|
393
|
-
function
|
|
393
|
+
function ct() {
|
|
394
394
|
return {
|
|
395
395
|
search: "",
|
|
396
396
|
filters: {}
|
|
397
397
|
};
|
|
398
398
|
}
|
|
399
|
-
function
|
|
399
|
+
function lt(e = "id", t = "desc") {
|
|
400
400
|
return { field: e, direction: t };
|
|
401
401
|
}
|
|
402
|
-
const
|
|
402
|
+
const he = [
|
|
403
403
|
{ key: "page", param: "page", isNumeric: !0 },
|
|
404
404
|
{ key: "perPage", param: "perPage", isNumeric: !0 },
|
|
405
405
|
{ key: "search", param: "search" },
|
|
@@ -407,9 +407,9 @@ const ue = [
|
|
|
407
407
|
{ key: "sortDir", param: "direction" },
|
|
408
408
|
{ key: "timeRange", param: "range" }
|
|
409
409
|
];
|
|
410
|
-
function
|
|
410
|
+
function de(e) {
|
|
411
411
|
const t = new URLSearchParams(), r = e;
|
|
412
|
-
for (const { key: n, param: o, isNumeric: s } of
|
|
412
|
+
for (const { key: n, param: o, isNumeric: s } of he) {
|
|
413
413
|
const i = r[n];
|
|
414
414
|
(s ? i != null : i) && t.set(o, String(i));
|
|
415
415
|
}
|
|
@@ -418,7 +418,7 @@ function he(e) {
|
|
|
418
418
|
o && t.set(n, o);
|
|
419
419
|
return t.toString();
|
|
420
420
|
}
|
|
421
|
-
function
|
|
421
|
+
function ut(e) {
|
|
422
422
|
const t = Math.max(1, Math.ceil(e.total / e.perPage)), r = Math.min(e.page, t), n = e.total === 0 ? 0 : (r - 1) * e.perPage + 1, o = Math.min(r * e.perPage, e.total);
|
|
423
423
|
return {
|
|
424
424
|
page: r,
|
|
@@ -431,7 +431,7 @@ function lt(e) {
|
|
|
431
431
|
hasNext: r < t
|
|
432
432
|
};
|
|
433
433
|
}
|
|
434
|
-
function
|
|
434
|
+
function ht(e, t, r = 2) {
|
|
435
435
|
if (t <= 1) return [1];
|
|
436
436
|
const n = [], o = Math.max(2, e - r), s = Math.min(t - 1, e + r);
|
|
437
437
|
n.push(1), o > 2 && n.push("...");
|
|
@@ -439,7 +439,7 @@ function ut(e, t, r = 2) {
|
|
|
439
439
|
n.push(i);
|
|
440
440
|
return s < t - 1 && n.push("..."), t > 1 && n.push(t), n;
|
|
441
441
|
}
|
|
442
|
-
const
|
|
442
|
+
const fe = [
|
|
443
443
|
"tracing",
|
|
444
444
|
"process",
|
|
445
445
|
"system",
|
|
@@ -452,7 +452,7 @@ const de = [
|
|
|
452
452
|
"log",
|
|
453
453
|
"emails",
|
|
454
454
|
"dashboard"
|
|
455
|
-
],
|
|
455
|
+
], pe = [
|
|
456
456
|
{ flag: "process", group: "process" },
|
|
457
457
|
{ flag: "process", group: "memory" },
|
|
458
458
|
{ flag: "system", group: "memory" },
|
|
@@ -462,7 +462,7 @@ const de = [
|
|
|
462
462
|
{ flag: "queues", group: "queue" },
|
|
463
463
|
{ flag: "app", group: "app" },
|
|
464
464
|
{ flag: "log", group: "log" }
|
|
465
|
-
],
|
|
465
|
+
], me = [
|
|
466
466
|
{ group: "process", fields: ["cpuPercent", "uptime", "nodeVersion"] },
|
|
467
467
|
{
|
|
468
468
|
group: "memory",
|
|
@@ -477,7 +477,7 @@ const de = [
|
|
|
477
477
|
{ group: "app", fields: ["onlineUsers", "pendingWebhooks", "pendingEmails"] },
|
|
478
478
|
{ group: "log", fields: ["logErrorsLast5m", "logEntriesPerMinute"] }
|
|
479
479
|
];
|
|
480
|
-
function
|
|
480
|
+
function C(e) {
|
|
481
481
|
return typeof e == "number" && !Number.isNaN(e);
|
|
482
482
|
}
|
|
483
483
|
const I = "/admin/api/debug", ge = {
|
|
@@ -495,45 +495,45 @@ const I = "/admin/api/debug", ge = {
|
|
|
495
495
|
dashboard: !1,
|
|
496
496
|
customPanes: []
|
|
497
497
|
};
|
|
498
|
-
function
|
|
498
|
+
function ye(e) {
|
|
499
499
|
const t = { customPanes: e.customPanes ?? [] }, r = e.features;
|
|
500
|
-
for (const n of
|
|
500
|
+
for (const n of fe)
|
|
501
501
|
t[n] = r?.[n] ?? !1;
|
|
502
502
|
return t;
|
|
503
503
|
}
|
|
504
|
-
async function
|
|
504
|
+
async function be(e, t = I) {
|
|
505
505
|
const r = `${t.replace(/\/+$/, "")}/config`;
|
|
506
506
|
return e.fetch(r);
|
|
507
507
|
}
|
|
508
|
-
async function
|
|
509
|
-
const { baseUrl: t = "", debugEndpoint: r = I, authToken: n } = e, o = new
|
|
508
|
+
async function dt(e) {
|
|
509
|
+
const { baseUrl: t = "", debugEndpoint: r = I, authToken: n } = e, o = new E({ baseUrl: t, authToken: n });
|
|
510
510
|
try {
|
|
511
|
-
const s = await
|
|
512
|
-
return
|
|
511
|
+
const s = await be(o, r);
|
|
512
|
+
return ye(s);
|
|
513
513
|
} catch {
|
|
514
514
|
return ge;
|
|
515
515
|
}
|
|
516
516
|
}
|
|
517
|
-
function
|
|
517
|
+
function ft(e) {
|
|
518
518
|
const t = /* @__PURE__ */ new Set(), n = "features" in e && typeof e.features == "object" && e.features !== null ? e.features : e;
|
|
519
|
-
for (const { flag: o, group: s } of
|
|
519
|
+
for (const { flag: o, group: s } of pe)
|
|
520
520
|
n[o] && t.add(s);
|
|
521
521
|
return t;
|
|
522
522
|
}
|
|
523
|
-
function
|
|
523
|
+
function pt(e) {
|
|
524
524
|
const t = /* @__PURE__ */ new Set();
|
|
525
|
-
(
|
|
526
|
-
for (const r of
|
|
527
|
-
r.fields.some((n) =>
|
|
525
|
+
(C(e.cpuPercent) || C(e.uptime) || Se(e)) && t.add("process");
|
|
526
|
+
for (const r of me)
|
|
527
|
+
r.fields.some((n) => C(e[n])) && t.add(r.group);
|
|
528
528
|
return e.redisOk !== void 0 && e.redisOk !== null && t.add("redis"), t;
|
|
529
529
|
}
|
|
530
|
-
function
|
|
530
|
+
function Se(e) {
|
|
531
531
|
return typeof e.nodeVersion == "string" && e.nodeVersion.length > 0;
|
|
532
532
|
}
|
|
533
533
|
function g(e) {
|
|
534
|
-
return
|
|
534
|
+
return le[e] || "";
|
|
535
535
|
}
|
|
536
|
-
const
|
|
536
|
+
const A = [
|
|
537
537
|
// ── Process group ─────────────────────────────────────────────────────────
|
|
538
538
|
// -- Node version ---------------------------------------------------------
|
|
539
539
|
{
|
|
@@ -554,7 +554,7 @@ const P = [
|
|
|
554
554
|
unit: "",
|
|
555
555
|
group: "process",
|
|
556
556
|
extract: (e) => e.uptime,
|
|
557
|
-
format: (e) =>
|
|
557
|
+
format: (e) => ie(e.uptime),
|
|
558
558
|
color: () => ""
|
|
559
559
|
},
|
|
560
560
|
// -- CPU ------------------------------------------------------------------
|
|
@@ -594,7 +594,7 @@ const P = [
|
|
|
594
594
|
unit: "bytes",
|
|
595
595
|
group: "memory",
|
|
596
596
|
extract: (e) => e.memHeapUsed,
|
|
597
|
-
format: (e) =>
|
|
597
|
+
format: (e) => P(e.memHeapUsed),
|
|
598
598
|
color: () => "",
|
|
599
599
|
historyKey: "memHeapUsed"
|
|
600
600
|
},
|
|
@@ -606,7 +606,7 @@ const P = [
|
|
|
606
606
|
unit: "bytes",
|
|
607
607
|
group: "memory",
|
|
608
608
|
extract: (e) => e.memRss,
|
|
609
|
-
format: (e) =>
|
|
609
|
+
format: (e) => P(e.memRss),
|
|
610
610
|
color: () => "",
|
|
611
611
|
historyKey: "memRss"
|
|
612
612
|
},
|
|
@@ -618,12 +618,12 @@ const P = [
|
|
|
618
618
|
unit: "MB",
|
|
619
619
|
group: "memory",
|
|
620
620
|
extract: (e) => e.systemMemoryTotalMb - e.systemMemoryFreeMb,
|
|
621
|
-
format: (e) => `${
|
|
621
|
+
format: (e) => `${R(e.systemMemoryTotalMb - e.systemMemoryFreeMb)}/${R(e.systemMemoryTotalMb)}`,
|
|
622
622
|
color: (e) => {
|
|
623
623
|
const t = e.systemMemoryTotalMb;
|
|
624
624
|
if (t === 0) return "";
|
|
625
625
|
const r = t - e.systemMemoryFreeMb;
|
|
626
|
-
return g(
|
|
626
|
+
return g(L(r, t));
|
|
627
627
|
},
|
|
628
628
|
historyKey: "_sysMemUsed",
|
|
629
629
|
show: (e) => e.systemMemoryTotalMb !== null && e.systemMemoryTotalMb !== void 0
|
|
@@ -691,7 +691,7 @@ const P = [
|
|
|
691
691
|
group: "db",
|
|
692
692
|
extract: (e) => e.dbPoolUsed,
|
|
693
693
|
format: (e) => `${e.dbPoolUsed}/${e.dbPoolFree}/${e.dbPoolMax}`,
|
|
694
|
-
color: (e) => g(
|
|
694
|
+
color: (e) => g(L(e.dbPoolUsed, e.dbPoolMax)),
|
|
695
695
|
historyKey: "dbPoolUsed"
|
|
696
696
|
},
|
|
697
697
|
// ── Redis group ───────────────────────────────────────────────────────────
|
|
@@ -727,7 +727,7 @@ const P = [
|
|
|
727
727
|
unit: "",
|
|
728
728
|
group: "redis",
|
|
729
729
|
extract: (e) => e.redisKeysCount,
|
|
730
|
-
format: (e) =>
|
|
730
|
+
format: (e) => ae(e.redisKeysCount),
|
|
731
731
|
color: () => "",
|
|
732
732
|
historyKey: "redisKeysCount",
|
|
733
733
|
show: (e) => e.redisOk
|
|
@@ -744,7 +744,7 @@ const P = [
|
|
|
744
744
|
inverseThreshold: !0,
|
|
745
745
|
extract: (e) => e.redisHitRate,
|
|
746
746
|
format: (e) => `${e.redisHitRate.toFixed(0)}%`,
|
|
747
|
-
color: (e) => g(
|
|
747
|
+
color: (e) => g(ce(e.redisHitRate, 90, 70)),
|
|
748
748
|
historyKey: "redisHitRate",
|
|
749
749
|
show: (e) => e.redisOk
|
|
750
750
|
},
|
|
@@ -835,12 +835,12 @@ const P = [
|
|
|
835
835
|
historyKey: "logEntriesPerMinute"
|
|
836
836
|
}
|
|
837
837
|
];
|
|
838
|
-
function
|
|
839
|
-
return
|
|
838
|
+
function mt(e) {
|
|
839
|
+
return A.find((t) => t.id === e);
|
|
840
840
|
}
|
|
841
841
|
function gt() {
|
|
842
842
|
const e = /* @__PURE__ */ new Map();
|
|
843
|
-
for (const t of
|
|
843
|
+
for (const t of A) {
|
|
844
844
|
const r = t.group || "core";
|
|
845
845
|
e.has(r) || e.set(r, []), e.get(r).push(t);
|
|
846
846
|
}
|
|
@@ -858,7 +858,7 @@ const xe = {
|
|
|
858
858
|
config: "/config",
|
|
859
859
|
internals: "/diagnostics"
|
|
860
860
|
};
|
|
861
|
-
function
|
|
861
|
+
function ve(e) {
|
|
862
862
|
return xe[e] || `/${e}`;
|
|
863
863
|
}
|
|
864
864
|
const we = {
|
|
@@ -874,10 +874,10 @@ const we = {
|
|
|
874
874
|
jobs: "/jobs",
|
|
875
875
|
config: "/config"
|
|
876
876
|
};
|
|
877
|
-
function
|
|
877
|
+
function Ee(e) {
|
|
878
878
|
return we[e] || `/${e}`;
|
|
879
879
|
}
|
|
880
|
-
function
|
|
880
|
+
function Te(e = te) {
|
|
881
881
|
const t = {}, r = {};
|
|
882
882
|
let n = !1;
|
|
883
883
|
function o(s) {
|
|
@@ -890,7 +890,7 @@ function Ee(e = ee) {
|
|
|
890
890
|
return {
|
|
891
891
|
push(s) {
|
|
892
892
|
n = !1;
|
|
893
|
-
for (const i of
|
|
893
|
+
for (const i of A) {
|
|
894
894
|
const a = i.historyKey;
|
|
895
895
|
if (!a) continue;
|
|
896
896
|
const c = i.extract(s);
|
|
@@ -912,7 +912,7 @@ function Ee(e = ee) {
|
|
|
912
912
|
}
|
|
913
913
|
};
|
|
914
914
|
}
|
|
915
|
-
class
|
|
915
|
+
class yt {
|
|
916
916
|
// -- Configuration --------------------------------------------------------
|
|
917
917
|
baseUrl;
|
|
918
918
|
endpoint;
|
|
@@ -941,7 +941,7 @@ class mt {
|
|
|
941
941
|
isConnected = !1;
|
|
942
942
|
isStale = !1;
|
|
943
943
|
constructor(t = {}) {
|
|
944
|
-
this.baseUrl = t.baseUrl ?? "", this.endpoint = t.endpoint ?? "/admin/api/server-stats", this.channelName = t.channelName ?? "admin/server-stats", this.authToken = t.authToken, this.pollInterval = t.pollInterval ?? 3e3, this.onStatsUpdate = t.onStatsUpdate, this.onConnectionChange = t.onConnectionChange, this.onStaleChange = t.onStaleChange, this.onError = t.onError, this.onUnauthorizedChange = t.onUnauthorizedChange, this.onHistoryChange = t.onHistoryChange, this.onSseActiveChange = t.onSseActiveChange, this.onPollActiveChange = t.onPollActiveChange, this.historyBuffer =
|
|
944
|
+
this.baseUrl = t.baseUrl ?? "", this.endpoint = t.endpoint ?? "/admin/api/server-stats", this.channelName = t.channelName ?? "admin/server-stats", this.authToken = t.authToken, this.pollInterval = t.pollInterval ?? 3e3, this.onStatsUpdate = t.onStatsUpdate, this.onConnectionChange = t.onConnectionChange, this.onStaleChange = t.onStaleChange, this.onError = t.onError, this.onUnauthorizedChange = t.onUnauthorizedChange, this.onHistoryChange = t.onHistoryChange, this.onSseActiveChange = t.onSseActiveChange, this.onPollActiveChange = t.onPollActiveChange, this.historyBuffer = Te();
|
|
945
945
|
}
|
|
946
946
|
// -- Public API -----------------------------------------------------------
|
|
947
947
|
/**
|
|
@@ -1018,7 +1018,7 @@ class mt {
|
|
|
1018
1018
|
/** Start the stale detection interval. */
|
|
1019
1019
|
startStaleDetection() {
|
|
1020
1020
|
this.staleTimer = setInterval(() => {
|
|
1021
|
-
this.lastSuccess > 0 && Date.now() - this.lastSuccess >
|
|
1021
|
+
this.lastSuccess > 0 && Date.now() - this.lastSuccess > re && this.setStale(!0);
|
|
1022
1022
|
}, 2e3);
|
|
1023
1023
|
}
|
|
1024
1024
|
/** Process incoming stats data from either SSE or polling. */
|
|
@@ -1028,12 +1028,12 @@ class mt {
|
|
|
1028
1028
|
/** Poll the HTTP endpoint once. */
|
|
1029
1029
|
async poll() {
|
|
1030
1030
|
if (!this.unauthorized) {
|
|
1031
|
-
this.client || (this.client = new
|
|
1031
|
+
this.client || (this.client = new E({ baseUrl: this.baseUrl, authToken: this.authToken }));
|
|
1032
1032
|
try {
|
|
1033
1033
|
const t = await this.client.get(this.endpoint);
|
|
1034
1034
|
this.processStats(t);
|
|
1035
1035
|
} catch (t) {
|
|
1036
|
-
t instanceof
|
|
1036
|
+
t instanceof S && (this.unauthorized = !0, this.onUnauthorizedChange?.(!0), this.onError?.(t), this.stopPolling());
|
|
1037
1037
|
}
|
|
1038
1038
|
}
|
|
1039
1039
|
}
|
|
@@ -1058,7 +1058,7 @@ class mt {
|
|
|
1058
1058
|
this.isStale !== t && (this.isStale = t, this.onStaleChange?.(t));
|
|
1059
1059
|
}
|
|
1060
1060
|
}
|
|
1061
|
-
class
|
|
1061
|
+
class Ce {
|
|
1062
1062
|
constructor(t, r) {
|
|
1063
1063
|
this.client = t, this.basePath = r;
|
|
1064
1064
|
}
|
|
@@ -1070,7 +1070,7 @@ class Te {
|
|
|
1070
1070
|
* @param init - Optional `RequestInit` overrides (e.g. `{ signal }`).
|
|
1071
1071
|
*/
|
|
1072
1072
|
async fetchSection(t, r, n) {
|
|
1073
|
-
const o =
|
|
1073
|
+
const o = Ee(t), s = r ? `${this.basePath}${o}?${r}` : `${this.basePath}${o}`;
|
|
1074
1074
|
return this.client.fetch(s, n);
|
|
1075
1075
|
}
|
|
1076
1076
|
/**
|
|
@@ -1139,15 +1139,15 @@ class Te {
|
|
|
1139
1139
|
return this.client.fetch(`${this.basePath}/emails/${t}/preview`);
|
|
1140
1140
|
}
|
|
1141
1141
|
}
|
|
1142
|
-
function
|
|
1142
|
+
function ke(e) {
|
|
1143
1143
|
if (!e || typeof e != "object") return !1;
|
|
1144
1144
|
const t = e;
|
|
1145
1145
|
return t.data !== void 0 && t.meta !== void 0;
|
|
1146
1146
|
}
|
|
1147
|
-
function
|
|
1147
|
+
function Me(e, t) {
|
|
1148
1148
|
return t.aborted ? !0 : e instanceof DOMException && e.name === "AbortError";
|
|
1149
1149
|
}
|
|
1150
|
-
class
|
|
1150
|
+
class bt {
|
|
1151
1151
|
// -- Dependencies ---------------------------------------------------------
|
|
1152
1152
|
client;
|
|
1153
1153
|
api;
|
|
@@ -1176,7 +1176,7 @@ class yt {
|
|
|
1176
1176
|
/** AbortController for the current in-flight fetch. */
|
|
1177
1177
|
abortController = null;
|
|
1178
1178
|
constructor(t) {
|
|
1179
|
-
this.client = new
|
|
1179
|
+
this.client = new E({ baseUrl: t.baseUrl, authToken: t.authToken }), this.api = new Ce(this.client, t.endpoint), this.endpoint = t.endpoint, this.section = t.section, this.perPage = t.perPage, this.callbacks = t.callbacks;
|
|
1180
1180
|
}
|
|
1181
1181
|
// -- Public API -----------------------------------------------------------
|
|
1182
1182
|
/**
|
|
@@ -1325,12 +1325,12 @@ class yt {
|
|
|
1325
1325
|
}
|
|
1326
1326
|
/** Check if an error should be silently ignored (abort or stale). */
|
|
1327
1327
|
shouldIgnoreError(t, r, n) {
|
|
1328
|
-
return
|
|
1328
|
+
return Me(t, r) ? !0 : this.isStaleResponse(n);
|
|
1329
1329
|
}
|
|
1330
1330
|
/** Build query string from current controller state. */
|
|
1331
1331
|
buildCurrentQueryString() {
|
|
1332
1332
|
const t = this.sort ? this.sort.replace(/[A-Z]/g, (n) => "_" + n.toLowerCase()) : void 0, r = this.filters;
|
|
1333
|
-
return
|
|
1333
|
+
return de({
|
|
1334
1334
|
page: this.page,
|
|
1335
1335
|
perPage: this.perPage,
|
|
1336
1336
|
search: this.search,
|
|
@@ -1342,11 +1342,11 @@ class yt {
|
|
|
1342
1342
|
}
|
|
1343
1343
|
/** Apply a successful fetch result to the callbacks. */
|
|
1344
1344
|
applyFetchResult(t) {
|
|
1345
|
-
|
|
1345
|
+
ke(t) ? (this.callbacks.onData(t.data), this.callbacks.onPagination(t.meta)) : (this.callbacks.onData(t), this.callbacks.onPagination(null)), this.callbacks.onError(null), this.callbacks.onLoading(!1), this.hasFetched = !0;
|
|
1346
1346
|
}
|
|
1347
1347
|
/** Handle a fetch error (unauthorized, network, etc.). */
|
|
1348
1348
|
handleFetchError(t, r) {
|
|
1349
|
-
if (t instanceof
|
|
1349
|
+
if (t instanceof S) {
|
|
1350
1350
|
this.callbacks.onError(t), this.callbacks.onLoading(!1), this.stopRefreshTimer(), this.callbacks.onUnauthorized();
|
|
1351
1351
|
return;
|
|
1352
1352
|
}
|
|
@@ -1355,14 +1355,14 @@ class yt {
|
|
|
1355
1355
|
// -- Timer management (private) -------------------------------------------
|
|
1356
1356
|
startRefreshTimer() {
|
|
1357
1357
|
this.stopRefreshTimer();
|
|
1358
|
-
const t = this.section === "overview" ?
|
|
1358
|
+
const t = this.section === "overview" ? J : Y;
|
|
1359
1359
|
this.timer = setInterval(() => this.fetch(!0), t);
|
|
1360
1360
|
}
|
|
1361
1361
|
stopRefreshTimer() {
|
|
1362
1362
|
this.timer && (clearInterval(this.timer), this.timer = null);
|
|
1363
1363
|
}
|
|
1364
1364
|
}
|
|
1365
|
-
const
|
|
1365
|
+
const St = {
|
|
1366
1366
|
// ---------------------------------------------------------------------------
|
|
1367
1367
|
// Debug-panel tabs / Dashboard sidebar sections (shared)
|
|
1368
1368
|
// ---------------------------------------------------------------------------
|
|
@@ -1554,7 +1554,7 @@ const bt = {
|
|
|
1554
1554
|
viewBox: "0 0 16 16",
|
|
1555
1555
|
elements: ['<path d="M6 3H3v10h10v-3M9 1h6v6M7 9L15 1"/>']
|
|
1556
1556
|
}
|
|
1557
|
-
},
|
|
1557
|
+
}, Pe = "ss-col-resize", U = "ss-resizing";
|
|
1558
1558
|
function xt(e) {
|
|
1559
1559
|
const t = Array.from(e.querySelectorAll("thead th"));
|
|
1560
1560
|
if (t.length === 0) return () => {
|
|
@@ -1572,20 +1572,20 @@ function xt(e) {
|
|
|
1572
1572
|
for (const s of t) {
|
|
1573
1573
|
let i = function(c) {
|
|
1574
1574
|
c.preventDefault(), c.stopPropagation(), o();
|
|
1575
|
-
const l = c.clientX,
|
|
1576
|
-
a.classList.add(
|
|
1577
|
-
function
|
|
1578
|
-
const
|
|
1579
|
-
s.style.width =
|
|
1575
|
+
const l = c.clientX, m = s.offsetWidth;
|
|
1576
|
+
a.classList.add(U), a.setPointerCapture(c.pointerId);
|
|
1577
|
+
function d(p) {
|
|
1578
|
+
const b = p.clientX - l, h = Math.max(30, m + b);
|
|
1579
|
+
s.style.width = h + "px";
|
|
1580
1580
|
}
|
|
1581
|
-
function
|
|
1582
|
-
a.classList.remove(
|
|
1581
|
+
function f() {
|
|
1582
|
+
a.classList.remove(U), a.removeEventListener("pointermove", d), a.removeEventListener("pointerup", f);
|
|
1583
1583
|
}
|
|
1584
|
-
a.addEventListener("pointermove",
|
|
1584
|
+
a.addEventListener("pointermove", d), a.addEventListener("pointerup", f);
|
|
1585
1585
|
};
|
|
1586
1586
|
if (!s.textContent?.trim()) continue;
|
|
1587
1587
|
const a = document.createElement("div");
|
|
1588
|
-
a.className =
|
|
1588
|
+
a.className = Pe, s.appendChild(a), a.addEventListener("pointerdown", i), r.push(() => {
|
|
1589
1589
|
a.removeEventListener("pointerdown", i), a.remove();
|
|
1590
1590
|
});
|
|
1591
1591
|
}
|
|
@@ -1593,7 +1593,7 @@ function xt(e) {
|
|
|
1593
1593
|
for (const s of r) s();
|
|
1594
1594
|
};
|
|
1595
1595
|
}
|
|
1596
|
-
class
|
|
1596
|
+
class vt {
|
|
1597
1597
|
client;
|
|
1598
1598
|
endpoint;
|
|
1599
1599
|
refreshInterval;
|
|
@@ -1603,10 +1603,10 @@ class St {
|
|
|
1603
1603
|
fetchOnceCache = {};
|
|
1604
1604
|
abortController = null;
|
|
1605
1605
|
constructor(t) {
|
|
1606
|
-
this.client = new
|
|
1606
|
+
this.client = new E({
|
|
1607
1607
|
baseUrl: t.baseUrl,
|
|
1608
1608
|
authToken: t.authToken
|
|
1609
|
-
}), this.endpoint = t.endpoint ?? "/admin/api/debug", this.refreshInterval = t.refreshInterval ??
|
|
1609
|
+
}), this.endpoint = t.endpoint ?? "/admin/api/debug", this.refreshInterval = t.refreshInterval ?? X, this.callbacks = {
|
|
1610
1610
|
onData: t.onData,
|
|
1611
1611
|
onLoading: t.onLoading,
|
|
1612
1612
|
onError: t.onError,
|
|
@@ -1660,7 +1660,7 @@ class St {
|
|
|
1660
1660
|
const n = await this.client.fetch(t);
|
|
1661
1661
|
this.callbacks.onData(n), this.callbacks.onError(null), r && (this.fetchOnceCache[t] = n);
|
|
1662
1662
|
} catch (n) {
|
|
1663
|
-
if (n instanceof
|
|
1663
|
+
if (n instanceof S) {
|
|
1664
1664
|
this.callbacks.onUnauthorized(n);
|
|
1665
1665
|
return;
|
|
1666
1666
|
}
|
|
@@ -1693,7 +1693,7 @@ class St {
|
|
|
1693
1693
|
const r = new AbortController();
|
|
1694
1694
|
this.abortController = r;
|
|
1695
1695
|
try {
|
|
1696
|
-
const n = `${this.endpoint}${
|
|
1696
|
+
const n = `${this.endpoint}${ve(t)}`, o = await this.client.fetch(n, { signal: r.signal });
|
|
1697
1697
|
if (r.signal.aborted) return;
|
|
1698
1698
|
this.callbacks.onData(o), this.callbacks.onError(null), this.callbacks.onLoading(!1);
|
|
1699
1699
|
} catch (n) {
|
|
@@ -1707,7 +1707,7 @@ class St {
|
|
|
1707
1707
|
/** Handle errors from fetchData. */
|
|
1708
1708
|
handleFetchError(t, r) {
|
|
1709
1709
|
if (!(t instanceof DOMException && t.name === "AbortError") && !r.signal.aborted) {
|
|
1710
|
-
if (t instanceof
|
|
1710
|
+
if (t instanceof S) {
|
|
1711
1711
|
this.callbacks.onError(t), this.callbacks.onLoading(!1), this.stop(), this.callbacks.onUnauthorized(t);
|
|
1712
1712
|
return;
|
|
1713
1713
|
}
|
|
@@ -1716,20 +1716,20 @@ class St {
|
|
|
1716
1716
|
}
|
|
1717
1717
|
}
|
|
1718
1718
|
const wt = ["all", "error", "warn", "info", "debug"];
|
|
1719
|
-
function
|
|
1719
|
+
function Ae(e) {
|
|
1720
1720
|
return (e.levelName || e.level_name || (typeof e.level == "string" ? e.level : "") || "info").toLowerCase();
|
|
1721
1721
|
}
|
|
1722
|
-
function
|
|
1722
|
+
function Et(e) {
|
|
1723
1723
|
return e.msg || e.message || JSON.stringify(e);
|
|
1724
1724
|
}
|
|
1725
|
-
function
|
|
1725
|
+
function Tt(e) {
|
|
1726
1726
|
return e.createdAt || e.created_at || e.time || e.timestamp || 0;
|
|
1727
1727
|
}
|
|
1728
|
-
function
|
|
1728
|
+
function Ct(e) {
|
|
1729
1729
|
const t = e.data || {};
|
|
1730
1730
|
return e.requestId || e.request_id || e["x-request-id"] || t.requestId || t.request_id || t["x-request-id"] || "";
|
|
1731
1731
|
}
|
|
1732
|
-
function
|
|
1732
|
+
function kt(e, t = "ss-dbg-log-level") {
|
|
1733
1733
|
switch (e) {
|
|
1734
1734
|
case "error":
|
|
1735
1735
|
case "fatal":
|
|
@@ -1746,20 +1746,20 @@ function Ct(e, t = "ss-dbg-log-level") {
|
|
|
1746
1746
|
return `${t}-info`;
|
|
1747
1747
|
}
|
|
1748
1748
|
}
|
|
1749
|
-
function
|
|
1749
|
+
function Mt(e, t) {
|
|
1750
1750
|
return t === "all" ? e : e.filter((r) => {
|
|
1751
|
-
const n =
|
|
1751
|
+
const n = Ae(r);
|
|
1752
1752
|
return t === "error" ? n === "error" || n === "fatal" : n === t;
|
|
1753
1753
|
});
|
|
1754
1754
|
}
|
|
1755
|
-
function
|
|
1755
|
+
function Pt(e, t) {
|
|
1756
1756
|
if (!t) return e;
|
|
1757
1757
|
const r = t.toLowerCase();
|
|
1758
1758
|
return e.filter(
|
|
1759
1759
|
(n) => n.sql.toLowerCase().includes(r) || n.model && n.model.toLowerCase().includes(r) || n.method.toLowerCase().includes(r)
|
|
1760
1760
|
);
|
|
1761
1761
|
}
|
|
1762
|
-
function
|
|
1762
|
+
function At(e) {
|
|
1763
1763
|
const t = {};
|
|
1764
1764
|
for (const r of e)
|
|
1765
1765
|
t[r.sql] = (t[r.sql] || 0) + 1;
|
|
@@ -1769,7 +1769,7 @@ function $t(e, t) {
|
|
|
1769
1769
|
const r = e.filter((s) => s.duration > 100).length, n = Object.values(t).filter((s) => s > 1).length, o = e.length > 0 ? e.reduce((s, i) => s + i.duration, 0) / e.length : 0;
|
|
1770
1770
|
return { slowCount: r, dupCount: n, avgDuration: o, totalCount: e.length };
|
|
1771
1771
|
}
|
|
1772
|
-
const
|
|
1772
|
+
const Rt = [
|
|
1773
1773
|
"all",
|
|
1774
1774
|
"active",
|
|
1775
1775
|
"waiting",
|
|
@@ -1777,7 +1777,7 @@ const At = [
|
|
|
1777
1777
|
"completed",
|
|
1778
1778
|
"failed"
|
|
1779
1779
|
];
|
|
1780
|
-
function
|
|
1780
|
+
function Lt(e, t = "ss-dbg-job-status") {
|
|
1781
1781
|
switch (e) {
|
|
1782
1782
|
case "completed":
|
|
1783
1783
|
case "failed":
|
|
@@ -1789,7 +1789,7 @@ function Rt(e, t = "ss-dbg-job-status") {
|
|
|
1789
1789
|
return "ss-dbg-badge-muted";
|
|
1790
1790
|
}
|
|
1791
1791
|
}
|
|
1792
|
-
function
|
|
1792
|
+
function Ft(e) {
|
|
1793
1793
|
switch (e) {
|
|
1794
1794
|
case "active":
|
|
1795
1795
|
return "blue";
|
|
@@ -1805,13 +1805,13 @@ function Lt(e) {
|
|
|
1805
1805
|
return "muted";
|
|
1806
1806
|
}
|
|
1807
1807
|
}
|
|
1808
|
-
function
|
|
1808
|
+
function Ut(e) {
|
|
1809
1809
|
if (!e) return [];
|
|
1810
1810
|
if (Array.isArray(e)) return e;
|
|
1811
1811
|
const t = e;
|
|
1812
1812
|
return t.jobs || t.data || [];
|
|
1813
1813
|
}
|
|
1814
|
-
function
|
|
1814
|
+
function Dt(e) {
|
|
1815
1815
|
if (!e || Array.isArray(e)) return null;
|
|
1816
1816
|
const t = e;
|
|
1817
1817
|
return t.stats || t.overview || null;
|
|
@@ -1826,7 +1826,7 @@ function $e(e) {
|
|
|
1826
1826
|
}
|
|
1827
1827
|
return Array.isArray(e) ? e : [];
|
|
1828
1828
|
}
|
|
1829
|
-
function
|
|
1829
|
+
function Re(e) {
|
|
1830
1830
|
if (!e) return [];
|
|
1831
1831
|
if (typeof e == "string")
|
|
1832
1832
|
try {
|
|
@@ -1836,28 +1836,28 @@ function Ae(e) {
|
|
|
1836
1836
|
}
|
|
1837
1837
|
return Array.isArray(e) ? e : [];
|
|
1838
1838
|
}
|
|
1839
|
-
function
|
|
1839
|
+
function k(e, t, r, n = 0) {
|
|
1840
1840
|
return e[t] ?? e[r] ?? n;
|
|
1841
1841
|
}
|
|
1842
|
-
function
|
|
1842
|
+
function _t(e) {
|
|
1843
1843
|
return {
|
|
1844
1844
|
method: e.method || "",
|
|
1845
1845
|
url: e.url || "",
|
|
1846
|
-
statusCode:
|
|
1847
|
-
totalDuration:
|
|
1848
|
-
spanCount:
|
|
1846
|
+
statusCode: k(e, "status_code", "statusCode"),
|
|
1847
|
+
totalDuration: k(e, "total_duration", "totalDuration") || e.duration || 0,
|
|
1848
|
+
spanCount: k(e, "span_count", "spanCount"),
|
|
1849
1849
|
spans: $e(e.spans),
|
|
1850
|
-
warnings:
|
|
1850
|
+
warnings: Re(e.warnings),
|
|
1851
1851
|
logs: e.logs || [],
|
|
1852
1852
|
httpRequestId: e.httpRequestId || e.http_request_id || void 0
|
|
1853
1853
|
};
|
|
1854
1854
|
}
|
|
1855
|
-
const
|
|
1856
|
-
function
|
|
1855
|
+
const Le = ["password", "secret", "token", "key", "credential", "auth"];
|
|
1856
|
+
function Fe(e) {
|
|
1857
1857
|
const t = e.toLowerCase();
|
|
1858
|
-
return
|
|
1858
|
+
return Le.some((r) => t.includes(r));
|
|
1859
1859
|
}
|
|
1860
|
-
function
|
|
1860
|
+
function Ue(e) {
|
|
1861
1861
|
if (e == null) return "-";
|
|
1862
1862
|
if (typeof e == "string" || typeof e == "number" || typeof e == "boolean")
|
|
1863
1863
|
return String(e);
|
|
@@ -1868,7 +1868,7 @@ function Fe(e) {
|
|
|
1868
1868
|
return String(e);
|
|
1869
1869
|
}
|
|
1870
1870
|
}
|
|
1871
|
-
const
|
|
1871
|
+
const De = {
|
|
1872
1872
|
collectionInterval: "Stats Collection",
|
|
1873
1873
|
dashboardBroadcast: "Dashboard Broadcast",
|
|
1874
1874
|
debugBroadcast: "Debug Broadcast",
|
|
@@ -1876,9 +1876,9 @@ const Ue = {
|
|
|
1876
1876
|
retentionCleanup: "Retention Cleanup"
|
|
1877
1877
|
};
|
|
1878
1878
|
function Ot(e) {
|
|
1879
|
-
return
|
|
1879
|
+
return De[e] || e;
|
|
1880
1880
|
}
|
|
1881
|
-
const
|
|
1881
|
+
const _e = {
|
|
1882
1882
|
prometheus: "Prometheus",
|
|
1883
1883
|
pinoHook: "Pino Log Hook",
|
|
1884
1884
|
edgePlugin: "Edge Plugin",
|
|
@@ -1886,26 +1886,26 @@ const De = {
|
|
|
1886
1886
|
queueInspector: "Queue Inspector"
|
|
1887
1887
|
};
|
|
1888
1888
|
function It(e) {
|
|
1889
|
-
return
|
|
1889
|
+
return _e[e] || e;
|
|
1890
1890
|
}
|
|
1891
|
-
function
|
|
1891
|
+
function Bt(e) {
|
|
1892
1892
|
return "active" in e ? e.active ? "active" : "inactive" : "available" in e ? e.available ? "available" : "unavailable" : "unknown";
|
|
1893
1893
|
}
|
|
1894
|
-
function
|
|
1894
|
+
function Ht(e, t) {
|
|
1895
1895
|
return t.mode ? `Mode: ${t.mode}` : e === "edgePlugin" && t.active ? "@serverStats() tag registered" : e === "cacheInspector" ? t.available ? "Redis dependency detected" : "Redis not installed" : e === "queueInspector" ? t.available ? "Queue dependency detected" : "@rlanz/bull-queue not installed" : "-";
|
|
1896
1896
|
}
|
|
1897
|
-
function
|
|
1897
|
+
function Nt(e) {
|
|
1898
1898
|
return Object.entries(e).map(([t, r]) => ({
|
|
1899
1899
|
key: t,
|
|
1900
|
-
value:
|
|
1901
|
-
secret:
|
|
1900
|
+
value: Ue(r),
|
|
1901
|
+
secret: Fe(t)
|
|
1902
1902
|
}));
|
|
1903
1903
|
}
|
|
1904
|
-
function
|
|
1904
|
+
function qt(e, t) {
|
|
1905
1905
|
return t ? Math.min(100, Math.round(e / t * 100)) : 0;
|
|
1906
1906
|
}
|
|
1907
1907
|
const Oe = ["healthy", "active", "connected", "available", "ready"], Ie = ["errored", "unavailable"];
|
|
1908
|
-
function
|
|
1908
|
+
function zt(e) {
|
|
1909
1909
|
return Oe.includes(e) ? "ok" : Ie.includes(e) ? "err" : "";
|
|
1910
1910
|
}
|
|
1911
1911
|
function $(e) {
|
|
@@ -1914,13 +1914,13 @@ function $(e) {
|
|
|
1914
1914
|
function w(e) {
|
|
1915
1915
|
return e != null && typeof e == "object" && !Array.isArray(e) && !$(e);
|
|
1916
1916
|
}
|
|
1917
|
-
function
|
|
1917
|
+
function Be(e, t = "") {
|
|
1918
1918
|
if (!w(e))
|
|
1919
1919
|
return [{ path: t, value: e }];
|
|
1920
1920
|
const r = [];
|
|
1921
1921
|
for (const n of Object.keys(e)) {
|
|
1922
1922
|
const o = t ? `${t}.${n}` : n, s = e[n];
|
|
1923
|
-
w(s) ? r.push(...
|
|
1923
|
+
w(s) ? r.push(...Be(s, o)) : r.push({ path: o, value: s });
|
|
1924
1924
|
}
|
|
1925
1925
|
return r;
|
|
1926
1926
|
}
|
|
@@ -1930,22 +1930,22 @@ function Kt(e) {
|
|
|
1930
1930
|
color: e ? "var(--ss-green-fg)" : "var(--ss-red-fg)"
|
|
1931
1931
|
} : typeof e == "number" ? { text: String(e), color: "var(--ss-amber-fg)" } : Array.isArray(e) ? { text: `[${e.map((r) => r == null ? "null" : typeof r == "object" ? JSON.stringify(r) : String(r)).join(", ")}]`, color: "var(--ss-purple-fg)" } : typeof e == "object" ? { text: JSON.stringify(e), color: "var(--ss-dim)" } : { text: String(e) };
|
|
1932
1932
|
}
|
|
1933
|
-
function
|
|
1933
|
+
function He(e) {
|
|
1934
1934
|
if (e == null || typeof e != "object" || Array.isArray(e) || $(e))
|
|
1935
1935
|
return 1;
|
|
1936
1936
|
let t = 0;
|
|
1937
1937
|
for (const r of Object.keys(e))
|
|
1938
|
-
t +=
|
|
1938
|
+
t += He(e[r]);
|
|
1939
1939
|
return t;
|
|
1940
1940
|
}
|
|
1941
|
-
function
|
|
1941
|
+
function jt(e) {
|
|
1942
1942
|
if (!w(e)) return [];
|
|
1943
1943
|
const t = [];
|
|
1944
1944
|
for (const r of Object.keys(e))
|
|
1945
1945
|
w(e[r]) && t.push(r);
|
|
1946
1946
|
return t;
|
|
1947
1947
|
}
|
|
1948
|
-
function
|
|
1948
|
+
function Wt(e, t, r) {
|
|
1949
1949
|
return !r || e.toLowerCase().includes(r) ? !0 : ($(t) ? t.display : t == null ? "" : String(t)).toLowerCase().includes(r);
|
|
1950
1950
|
}
|
|
1951
1951
|
function Vt(e, t, r) {
|
|
@@ -1957,7 +1957,7 @@ function Vt(e, t, r) {
|
|
|
1957
1957
|
}).catch(() => {
|
|
1958
1958
|
});
|
|
1959
1959
|
}
|
|
1960
|
-
const
|
|
1960
|
+
const Ne = /* @__PURE__ */ new Set([
|
|
1961
1961
|
"secret",
|
|
1962
1962
|
"key",
|
|
1963
1963
|
"token",
|
|
@@ -1971,7 +1971,7 @@ const He = /* @__PURE__ */ new Set([
|
|
|
1971
1971
|
"private",
|
|
1972
1972
|
"encryption"
|
|
1973
1973
|
]);
|
|
1974
|
-
function
|
|
1974
|
+
function qe(e) {
|
|
1975
1975
|
const t = e.split(/[._-]/), r = [];
|
|
1976
1976
|
for (const n of t) {
|
|
1977
1977
|
const o = n.split(new RegExp("(?<=[a-z])(?=[A-Z])"));
|
|
@@ -1980,120 +1980,184 @@ function Ne(e) {
|
|
|
1980
1980
|
}
|
|
1981
1981
|
return r;
|
|
1982
1982
|
}
|
|
1983
|
-
function
|
|
1984
|
-
return
|
|
1983
|
+
function Gt(e) {
|
|
1984
|
+
return qe(e).some((r) => Ne.has(r.toLowerCase()));
|
|
1985
|
+
}
|
|
1986
|
+
const Qt = new RegExp("secret|password|pass(?:word)?|pwd|token|(?:^|[._-])key(?:[._-]|$)|(?<=[a-z])Key|apikey|api_key|auth|credential|private|encryption", "i");
|
|
1987
|
+
function u(e, ...t) {
|
|
1988
|
+
for (const r of t) {
|
|
1989
|
+
const n = e[r];
|
|
1990
|
+
if (n != null) return n;
|
|
1991
|
+
}
|
|
1992
|
+
}
|
|
1993
|
+
function Jt(e) {
|
|
1994
|
+
return u(e, "createdAt", "created_at", "timestamp");
|
|
1995
|
+
}
|
|
1996
|
+
function Yt(e) {
|
|
1997
|
+
return u(e, "timestamp", "createdAt", "processedAt", "created_at");
|
|
1998
|
+
}
|
|
1999
|
+
function Xt(e) {
|
|
2000
|
+
return u(e, "statusCode", "status_code");
|
|
2001
|
+
}
|
|
2002
|
+
function Zt(e) {
|
|
2003
|
+
return u(e, "total_duration", "totalDuration", "duration") ?? 0;
|
|
2004
|
+
}
|
|
2005
|
+
function er(e) {
|
|
2006
|
+
return u(e, "span_count", "spanCount") ?? 0;
|
|
2007
|
+
}
|
|
2008
|
+
function tr(e) {
|
|
2009
|
+
return u(e, "warning_count", "warningCount") ?? 0;
|
|
2010
|
+
}
|
|
2011
|
+
function rr(e) {
|
|
2012
|
+
return u(e, "from_addr", "from") ?? "";
|
|
2013
|
+
}
|
|
2014
|
+
function nr(e) {
|
|
2015
|
+
return u(e, "to_addr", "to") ?? "";
|
|
2016
|
+
}
|
|
2017
|
+
function sr(e) {
|
|
2018
|
+
return u(e, "cc", "cc_addr") ?? "";
|
|
2019
|
+
}
|
|
2020
|
+
function or(e) {
|
|
2021
|
+
return u(e, "attachment_count", "attachmentCount") ?? 0;
|
|
2022
|
+
}
|
|
2023
|
+
function ir(e) {
|
|
2024
|
+
return u(e, "event_name", "eventName", "event") ?? "";
|
|
2025
|
+
}
|
|
2026
|
+
function ar(e) {
|
|
2027
|
+
return u(e, "method", "sql_method") ?? "";
|
|
2028
|
+
}
|
|
2029
|
+
function cr(e) {
|
|
2030
|
+
return u(e, "sqlNormalized", "normalizedSql", "sql_normalized", "sql") ?? "";
|
|
2031
|
+
}
|
|
2032
|
+
function lr(e, t, r) {
|
|
2033
|
+
const n = e[t];
|
|
2034
|
+
return n != null && n !== 0 ? Number(n) : Number(e[r]) || 0;
|
|
1985
2035
|
}
|
|
1986
|
-
const Gt = new RegExp("secret|password|pass(?:word)?|pwd|token|(?:^|[._-])key(?:[._-]|$)|(?<=[a-z])Key|apikey|api_key|auth|credential|private|encryption", "i");
|
|
1987
2036
|
export {
|
|
1988
|
-
|
|
1989
|
-
|
|
2037
|
+
E as ApiClient,
|
|
2038
|
+
H as ApiError,
|
|
1990
2039
|
we as DASHBOARD_SECTION_PATHS,
|
|
1991
|
-
|
|
2040
|
+
X as DEBUG_REFRESH_MS,
|
|
1992
2041
|
xe as DEBUG_TAB_PATHS,
|
|
1993
2042
|
ge as DEFAULT_FEATURES,
|
|
1994
2043
|
O as DEFAULT_PER_PAGE,
|
|
1995
|
-
|
|
1996
|
-
|
|
1997
|
-
|
|
2044
|
+
Ce as DashboardApi,
|
|
2045
|
+
bt as DashboardDataController,
|
|
2046
|
+
vt as DebugDataController,
|
|
1998
2047
|
Ie as ERROR_STATUSES,
|
|
1999
|
-
|
|
2000
|
-
|
|
2048
|
+
_e as INTEGRATION_LABELS,
|
|
2049
|
+
Rt as JOB_STATUS_FILTERS,
|
|
2001
2050
|
wt as LOG_LEVELS,
|
|
2002
|
-
|
|
2003
|
-
|
|
2051
|
+
te as MAX_HISTORY,
|
|
2052
|
+
A as METRIC_DEFINITIONS,
|
|
2004
2053
|
Oe as OK_STATUSES,
|
|
2005
|
-
|
|
2006
|
-
|
|
2007
|
-
|
|
2008
|
-
|
|
2009
|
-
|
|
2010
|
-
|
|
2011
|
-
|
|
2012
|
-
|
|
2013
|
-
|
|
2014
|
-
|
|
2015
|
-
|
|
2016
|
-
|
|
2017
|
-
|
|
2018
|
-
|
|
2019
|
-
|
|
2054
|
+
J as OVERVIEW_REFRESH_MS,
|
|
2055
|
+
Qt as REDACT_PATTERN,
|
|
2056
|
+
Y as SECTION_REFRESH_MS,
|
|
2057
|
+
Z as SLOW_DURATION_MS,
|
|
2058
|
+
re as STALE_MS,
|
|
2059
|
+
yt as ServerStatsController,
|
|
2060
|
+
St as TAB_ICONS,
|
|
2061
|
+
le as THRESHOLD_CSS_CLASS,
|
|
2062
|
+
Ze as THRESHOLD_CSS_VAR,
|
|
2063
|
+
Xe as THRESHOLD_HEX_FALLBACK,
|
|
2064
|
+
De as TIMER_LABELS,
|
|
2065
|
+
S as UnauthorizedError,
|
|
2066
|
+
ee as VERY_SLOW_DURATION_MS,
|
|
2067
|
+
de as buildQueryParams,
|
|
2068
|
+
ot as buildQueryString,
|
|
2020
2069
|
Ve as buildSparklineData,
|
|
2021
|
-
|
|
2022
|
-
|
|
2023
|
-
|
|
2024
|
-
|
|
2070
|
+
zt as classifyStatus,
|
|
2071
|
+
jt as collectTopLevelObjectKeys,
|
|
2072
|
+
F as compactPreview,
|
|
2073
|
+
ut as computePagination,
|
|
2025
2074
|
$t as computeQuerySummary,
|
|
2026
|
-
|
|
2075
|
+
Q as computeStats,
|
|
2027
2076
|
Vt as copyWithFeedback,
|
|
2028
|
-
|
|
2029
|
-
|
|
2030
|
-
|
|
2031
|
-
|
|
2032
|
-
|
|
2033
|
-
|
|
2034
|
-
|
|
2035
|
-
|
|
2036
|
-
|
|
2037
|
-
|
|
2038
|
-
|
|
2039
|
-
|
|
2040
|
-
|
|
2041
|
-
|
|
2042
|
-
|
|
2043
|
-
|
|
2044
|
-
|
|
2045
|
-
|
|
2046
|
-
|
|
2047
|
-
|
|
2048
|
-
|
|
2049
|
-
|
|
2050
|
-
|
|
2051
|
-
|
|
2077
|
+
At as countDuplicateQueries,
|
|
2078
|
+
He as countLeaves,
|
|
2079
|
+
ct as createFilterState,
|
|
2080
|
+
Te as createHistoryBuffer,
|
|
2081
|
+
at as createPaginationState,
|
|
2082
|
+
lt as createSortState,
|
|
2083
|
+
z as createTransmitSubscription,
|
|
2084
|
+
dt as detectFeatures,
|
|
2085
|
+
pt as detectMetricGroupsFromStats,
|
|
2086
|
+
tt as durationClassName,
|
|
2087
|
+
ue as durationSeverity,
|
|
2088
|
+
Dt as extractJobStats,
|
|
2089
|
+
Ut as extractJobs,
|
|
2090
|
+
be as fetchFeatures,
|
|
2091
|
+
qt as fillPercent,
|
|
2092
|
+
Mt as filterLogsByLevel,
|
|
2093
|
+
Pt as filterQueries,
|
|
2094
|
+
Be as flattenConfig,
|
|
2095
|
+
P as formatBytes,
|
|
2096
|
+
st as formatCacheSize,
|
|
2097
|
+
Nt as formatCollectorConfig,
|
|
2098
|
+
Ue as formatConfigVal,
|
|
2099
|
+
ae as formatCount,
|
|
2100
|
+
Ge as formatDuration,
|
|
2052
2101
|
Kt as formatFlatValue,
|
|
2053
|
-
|
|
2054
|
-
|
|
2055
|
-
|
|
2056
|
-
|
|
2057
|
-
|
|
2058
|
-
|
|
2059
|
-
|
|
2060
|
-
|
|
2061
|
-
|
|
2062
|
-
|
|
2063
|
-
|
|
2102
|
+
R as formatMb,
|
|
2103
|
+
Ye as formatStatNum,
|
|
2104
|
+
Qe as formatTime,
|
|
2105
|
+
nt as formatTtl,
|
|
2106
|
+
ie as formatUptime,
|
|
2107
|
+
G as generateGradientId,
|
|
2108
|
+
We as generateSparklinePath,
|
|
2109
|
+
je as generateSparklinePoints,
|
|
2110
|
+
Ee as getDashboardSectionPath,
|
|
2111
|
+
ve as getDebugTabPath,
|
|
2112
|
+
Ht as getIntegrationDetails,
|
|
2064
2113
|
It as getIntegrationLabel,
|
|
2065
|
-
|
|
2066
|
-
|
|
2067
|
-
|
|
2068
|
-
|
|
2069
|
-
|
|
2114
|
+
Bt as getIntegrationStatus,
|
|
2115
|
+
Ft as getJobStatusBadgeColor,
|
|
2116
|
+
Lt as getJobStatusCssClass,
|
|
2117
|
+
kt as getLogLevelCssClass,
|
|
2118
|
+
mt as getMetricById,
|
|
2070
2119
|
gt as getMetricsByGroup,
|
|
2071
|
-
|
|
2072
|
-
|
|
2073
|
-
|
|
2120
|
+
ht as getPageNumbers,
|
|
2121
|
+
L as getRatioColor,
|
|
2122
|
+
D as getTheme,
|
|
2074
2123
|
x as getThresholdColor,
|
|
2075
|
-
|
|
2124
|
+
ce as getThresholdColorInverse,
|
|
2076
2125
|
Ot as getTimerLabel,
|
|
2077
|
-
|
|
2126
|
+
ft as getVisibleMetricGroups,
|
|
2078
2127
|
xt as initResizableColumns,
|
|
2079
2128
|
$ as isRedactedValue,
|
|
2080
|
-
|
|
2081
|
-
|
|
2082
|
-
|
|
2129
|
+
Fe as isSecretKey,
|
|
2130
|
+
Wt as matchesConfigSearch,
|
|
2131
|
+
_t as normalizeTraceFields,
|
|
2083
2132
|
Ke as onThemeChange,
|
|
2084
|
-
|
|
2133
|
+
it as parsePaginatedResponse,
|
|
2085
2134
|
$e as parseTraceSpans,
|
|
2086
|
-
|
|
2087
|
-
|
|
2088
|
-
|
|
2089
|
-
|
|
2090
|
-
|
|
2091
|
-
|
|
2092
|
-
|
|
2093
|
-
|
|
2094
|
-
|
|
2095
|
-
|
|
2135
|
+
Re as parseTraceWarnings,
|
|
2136
|
+
or as resolveAttachmentCount,
|
|
2137
|
+
sr as resolveCcAddr,
|
|
2138
|
+
Zt as resolveDuration,
|
|
2139
|
+
ir as resolveEventName,
|
|
2140
|
+
u as resolveField,
|
|
2141
|
+
rr as resolveFromAddr,
|
|
2142
|
+
Yt as resolveJobTimestamp,
|
|
2143
|
+
Ae as resolveLogLevel,
|
|
2144
|
+
Et as resolveLogMessage,
|
|
2145
|
+
Ct as resolveLogRequestId,
|
|
2146
|
+
Tt as resolveLogTimestamp,
|
|
2147
|
+
lr as resolveMetric,
|
|
2148
|
+
cr as resolveNormalizedSql,
|
|
2149
|
+
er as resolveSpanCount,
|
|
2150
|
+
ar as resolveSqlMethod,
|
|
2151
|
+
Xt as resolveStatusCode,
|
|
2152
|
+
Jt as resolveTimestamp,
|
|
2153
|
+
nr as resolveToAddr,
|
|
2154
|
+
k as resolveTraceField,
|
|
2155
|
+
tr as resolveWarningCount,
|
|
2156
|
+
j as setTheme,
|
|
2157
|
+
rt as shortReqId,
|
|
2158
|
+
Gt as shouldRedact,
|
|
2159
|
+
et as statusColor,
|
|
2096
2160
|
K as subscribeToChannel,
|
|
2097
|
-
|
|
2098
|
-
|
|
2161
|
+
Je as timeAgo,
|
|
2162
|
+
ze as toggleTheme
|
|
2099
2163
|
};
|