adonisjs-server-stats 1.17.0 → 1.18.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.
- package/README.md +11 -6
- package/dist/core/core/define-config-helpers.d.ts +1 -0
- package/dist/core/core/types-diagnostics.d.ts +2 -0
- package/dist/core/debug/types.d.ts +2 -0
- package/dist/core/types.d.ts +31 -3
- package/dist/react/{CacheSection-C-X2Tnca.js → CacheSection-B-lSIN8Q.js} +1 -1
- package/dist/react/{CacheTab-D55mfmeE.js → CacheTab-BN0QgPXz.js} +1 -1
- package/dist/react/{ConfigSection-C-HGnZfd.js → ConfigSection-u_TSfb9f.js} +1 -1
- package/dist/react/{ConfigTab-CNnsOXBh.js → ConfigTab-au26s-ON.js} +1 -1
- package/dist/react/{CustomPaneTab-D-267UVd.js → CustomPaneTab-qvMnh8ss.js} +1 -1
- package/dist/react/{EmailsSection-Bqw4DI4r.js → EmailsSection-HfEMeRex.js} +1 -1
- package/dist/react/{EmailsTab-CkHOhj2F.js → EmailsTab-BWwq-CxB.js} +1 -1
- package/dist/react/{EventsSection-CMeyjzVC.js → EventsSection-CA9b15dJ.js} +1 -1
- package/dist/react/{EventsTab-DgS2v1HX.js → EventsTab-CgSdHbKU.js} +1 -1
- package/dist/react/{InternalsContent-C9lIA92C.js → InternalsContent-CI7HvBtH.js} +51 -47
- package/dist/react/{InternalsSection-lOv_UcSV.js → InternalsSection-IEeWXJqP.js} +1 -1
- package/dist/react/{InternalsTab-BygoSorC.js → InternalsTab-CoVLHQbF.js} +1 -1
- package/dist/react/{JobsSection-oWH6pbrG.js → JobsSection-DgsS_VwU.js} +1 -1
- package/dist/react/{JobsTab-zdxX_as-.js → JobsTab-CzwLSRUC.js} +1 -1
- package/dist/react/{LogEntryRow-Cn8Ee_X0.js → LogEntryRow-VCCzwD1H.js} +1 -1
- package/dist/react/{LogsSection-XmiI2MMs.js → LogsSection-BujNn_cO.js} +2 -2
- package/dist/react/{LogsTab-ixusY4v7.js → LogsTab-BtD1h7DM.js} +2 -2
- package/dist/react/{OverviewSection-CvhObTLP.js → OverviewSection-B28em0gQ.js} +1 -1
- package/dist/react/{QueriesSection-BvledwBI.js → QueriesSection-B0tFn_Dc.js} +1 -1
- package/dist/react/{QueriesTab-smQQJvJa.js → QueriesTab-DJY7aavR.js} +1 -1
- package/dist/react/{RequestsSection-DKuYpViv.js → RequestsSection-DPmYM7tq.js} +2 -2
- package/dist/react/{RoutesSection-5RNVurQ6.js → RoutesSection-Ck-RcFVS.js} +1 -1
- package/dist/react/{RoutesTab-CpXNO-Rx.js → RoutesTab-Ch3PDLzo.js} +1 -1
- package/dist/react/{SplitPaneWrapper-DQvJnsuk.js → SplitPaneWrapper-BZ6VrBr-.js} +1 -1
- package/dist/react/{TimelineTab-LHQHHKkO.js → TimelineTab-_byxh2mJ.js} +2 -2
- package/dist/react/{index-LlFvooUN.js → index-De7nsWBN.js} +2 -2
- package/dist/react/index.js +1 -1
- package/dist/src/dashboard/dashboard_store.js +4 -12
- package/dist/src/dashboard/knex_factory.js +8 -0
- package/dist/src/dashboard/migrator.d.ts +7 -2
- package/dist/src/dashboard/migrator.js +140 -6
- package/dist/src/dashboard/migrator_tables.js +4 -0
- package/dist/src/dashboard/storage_stats.d.ts +5 -0
- package/dist/src/dashboard/storage_stats.js +15 -1
- package/dist/src/debug/types.d.ts +2 -0
- package/dist/src/define_config.js +2 -0
- package/dist/src/edge/client/dashboard.js +2 -2
- package/dist/src/edge/client/debug-panel-deferred.js +1 -1
- package/dist/src/edge/client-vue/dashboard.js +3 -3
- package/dist/src/edge/client-vue/debug-panel-deferred.js +2 -2
- package/dist/src/provider/dashboard_setup.js +14 -0
- package/dist/src/provider/diagnostics.d.ts +2 -0
- package/dist/src/provider/diagnostics.js +1 -0
- package/dist/src/provider/server_stats_provider.d.ts +1 -0
- package/dist/src/stubs/config.stub +4 -0
- package/dist/src/types.d.ts +31 -3
- package/dist/vue/{CacheSection-Bm0goqX6.js → CacheSection-z2TQRez9.js} +1 -1
- package/dist/vue/{ConfigSection-BrYslIMN.js → ConfigSection-CFEaig69.js} +1 -1
- package/dist/vue/{EmailsSection-B8N5vaWA.js → EmailsSection-CYohBo62.js} +1 -1
- package/dist/vue/{EventsSection-D2Y_xt0m.js → EventsSection-B_TuVrGj.js} +1 -1
- package/dist/vue/{InternalsSection-jhTCuK3j.js → InternalsSection-B1P2kNT-.js} +92 -84
- package/dist/vue/{InternalsTab-Z3c82glB.js → InternalsTab-CRI-IFTo.js} +155 -147
- package/dist/vue/{JobsSection-cEKqELLC.js → JobsSection-AjkEzyiv.js} +1 -1
- package/dist/vue/{LogsSection-C3H2c0S3.js → LogsSection-DZD0CCDi.js} +1 -1
- package/dist/vue/{OverviewSection-I2swuHDa.js → OverviewSection-BEc4Gktf.js} +1 -1
- package/dist/vue/{QueriesSection-CF1IE3SN.js → QueriesSection-BMImGXTn.js} +1 -1
- package/dist/vue/{RequestsSection-CuwgXzmU.js → RequestsSection-DOI2MUFX.js} +1 -1
- package/dist/vue/{RoutesSection-BhJCF7Rn.js → RoutesSection-C1sxt-AW.js} +1 -1
- package/dist/vue/{index-DUsImuIN.js → index-BfPAAjL5.js} +2 -2
- package/dist/vue/index.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -203,10 +203,11 @@ All fields are optional. `defineConfig({})` works with zero configuration.
|
|
|
203
203
|
|
|
204
204
|
### `DashboardConfig`
|
|
205
205
|
|
|
206
|
-
| Option | Type | Default | Description
|
|
207
|
-
| --------------- | -------- | ------------ |
|
|
208
|
-
| `path` | `string` | `'/__stats'` | URL path for the dashboard page
|
|
209
|
-
| `retentionDays` | `number` | `7` | Days to keep historical data in SQLite
|
|
206
|
+
| Option | Type | Default | Description |
|
|
207
|
+
| --------------- | -------- | ------------ | --------------------------------------------------------------------------------- |
|
|
208
|
+
| `path` | `string` | `'/__stats'` | URL path for the dashboard page |
|
|
209
|
+
| `retentionDays` | `number` | `7` | Days to keep historical data in SQLite |
|
|
210
|
+
| `maxDbSizeMb` | `number` | `500` | Size cap for the SQLite database -- oldest rows are pruned when exceeded; `0` disables |
|
|
210
211
|
|
|
211
212
|
### `ProductionConfig`
|
|
212
213
|
|
|
@@ -215,6 +216,7 @@ All fields are optional. `defineConfig({})` works with zero configuration.
|
|
|
215
216
|
| `enabled` | `boolean` | `false` | Register routes and build the dashboard when `NODE_ENV=production` |
|
|
216
217
|
| `capture` | `CaptureConfig` | all off | Which capture subsystems to switch on -- opt in one at a time |
|
|
217
218
|
| `retentionDays` | `number` | `3` | SQLite history to keep in production (the usual default is 7) |
|
|
219
|
+
| `maxDbSizeMb` | `number` | `500` | Size cap for the SQLite database in production; `0` disables |
|
|
218
220
|
|
|
219
221
|
`CaptureConfig` fields, each `boolean` and each defaulting to `false` in production: `queries`, `events`, `emails`, `traces`, `logs`.
|
|
220
222
|
|
|
@@ -264,6 +266,7 @@ The following field names still work but will show deprecation warnings at boot.
|
|
|
264
266
|
| `dashboard` | `boolean` | `false` | Enable the full-page dashboard (requires `better-sqlite3`) |
|
|
265
267
|
| `dashboardPath` | `string` | `'/__stats'` | URL path for the dashboard page |
|
|
266
268
|
| `retentionDays` | `number` | `7` | Days to keep historical data in SQLite |
|
|
269
|
+
| `maxDbSizeMb` | `number` | `500` | Size cap for the SQLite database's live data. When exceeded, the cleanup deletes the oldest records regardless of age. `0` disables the cap. |
|
|
267
270
|
| `dbPath` | `string` | `'.adonisjs/server-stats/dashboard.sqlite3'` | Path to the SQLite database file (relative to app root) |
|
|
268
271
|
| `debugEndpoint` | `string` | `'/admin/api/debug'` | Base path for the debug toolbar API endpoints |
|
|
269
272
|
| `excludeFromTracing` | `string[]` | `['/admin/api/debug', '/admin/api/server-stats']` | URL prefixes to exclude from tracing and dashboard persistence. Requests still count toward HTTP metrics but won't appear in the timeline or be stored. The stats endpoint is always excluded automatically. |
|
|
@@ -461,9 +464,11 @@ A disabled subsystem is never subscribed, so it costs nothing -- its dashboard p
|
|
|
461
464
|
|
|
462
465
|
### Disk
|
|
463
466
|
|
|
464
|
-
Retention prunes rows older than `retentionDays` on boot and hourly
|
|
467
|
+
Retention prunes rows older than `retentionDays` on boot and hourly, and returns freed pages to the OS incrementally, so the `.sqlite3` file genuinely shrinks after cleanup. Watch real numbers in the dashboard's storage panel (`GET {dashboardPath}/api/storage`), which reports file size, WAL size, and per-table row counts.
|
|
465
468
|
|
|
466
|
-
|
|
469
|
+
`maxDbSizeMb` (default 500) additionally caps the database's live data size. When write volume outruns what `retentionDays` alone would keep small -- tracing plus persistence on a busy app can write hundreds of MB per day -- the cleanup deletes the globally oldest records, regardless of age, until usage drops below the cap. In other words, the retention window shortens dynamically instead of the file growing without bound. Set `maxDbSizeMb: 0` to disable the cap.
|
|
470
|
+
|
|
471
|
+
There is no sampling. On a high-traffic app, enable capture deliberately and keep `retentionDays` short.
|
|
467
472
|
|
|
468
473
|
### Async guards and the toolbar
|
|
469
474
|
|
|
@@ -14,6 +14,7 @@ export declare function applyToolbarSetting(toolbar: boolean | ToolbarConfig, re
|
|
|
14
14
|
export declare function applyDashboardSetting(dashboard: boolean | {
|
|
15
15
|
path?: string;
|
|
16
16
|
retentionDays?: number;
|
|
17
|
+
maxDbSizeMb?: number;
|
|
17
18
|
}, result: DevToolbarOptions): void;
|
|
18
19
|
/**
|
|
19
20
|
* Apply advanced config fields onto the result DevToolbarOptions.
|
|
@@ -51,6 +51,7 @@ export interface DiagnosticsResponse {
|
|
|
51
51
|
dashboardPath: string;
|
|
52
52
|
debugEndpoint: string;
|
|
53
53
|
retentionDays: number;
|
|
54
|
+
maxDbSizeMb: number;
|
|
54
55
|
dbPath: string;
|
|
55
56
|
persistDebugData: boolean | string;
|
|
56
57
|
renderer: string;
|
|
@@ -77,6 +78,7 @@ export interface DiagnosticsResponse {
|
|
|
77
78
|
fileSizeMb: number;
|
|
78
79
|
walSizeMb: number;
|
|
79
80
|
retentionDays: number;
|
|
81
|
+
maxDbSizeMb: number;
|
|
80
82
|
tables: Array<{
|
|
81
83
|
name: string;
|
|
82
84
|
rowCount: number;
|
|
@@ -284,6 +284,8 @@ export interface DevToolbarConfig {
|
|
|
284
284
|
dashboardPath: string;
|
|
285
285
|
/** Data retention period in days for historical persistence. */
|
|
286
286
|
retentionDays: number;
|
|
287
|
+
/** Size cap in MB for the SQLite database's live data; `0` disables it. */
|
|
288
|
+
maxDbSizeMb: number;
|
|
287
289
|
/** Path to the SQLite database file for historical persistence. */
|
|
288
290
|
dbPath: string;
|
|
289
291
|
/** Base path for the debug toolbar API endpoints. */
|
package/dist/core/types.d.ts
CHANGED
|
@@ -263,6 +263,15 @@ export interface DevToolbarOptions {
|
|
|
263
263
|
* @default 7
|
|
264
264
|
*/
|
|
265
265
|
retentionDays?: number;
|
|
266
|
+
/**
|
|
267
|
+
* Size cap in MB for the SQLite database's live data. When exceeded,
|
|
268
|
+
* the hourly cleanup deletes the oldest records — regardless of age —
|
|
269
|
+
* until usage drops below the cap, effectively shortening the retention
|
|
270
|
+
* window when write volume outruns `retentionDays`. Set to `0` to
|
|
271
|
+
* disable the cap.
|
|
272
|
+
* @default 500
|
|
273
|
+
*/
|
|
274
|
+
maxDbSizeMb?: number;
|
|
266
275
|
/**
|
|
267
276
|
* Path to the SQLite database file for historical persistence.
|
|
268
277
|
* Relative to app root.
|
|
@@ -434,6 +443,17 @@ export interface DashboardConfig {
|
|
|
434
443
|
* @default 7
|
|
435
444
|
*/
|
|
436
445
|
retentionDays?: number;
|
|
446
|
+
/**
|
|
447
|
+
* Size cap in MB for the SQLite database's live data.
|
|
448
|
+
*
|
|
449
|
+
* When exceeded, the cleanup deletes the oldest records — regardless
|
|
450
|
+
* of age — until usage drops below the cap. This bounds disk usage
|
|
451
|
+
* when write volume (tracing, verbose query logging) outruns what
|
|
452
|
+
* `retentionDays` alone would keep small. Set to `0` to disable.
|
|
453
|
+
*
|
|
454
|
+
* @default 500
|
|
455
|
+
*/
|
|
456
|
+
maxDbSizeMb?: number;
|
|
437
457
|
}
|
|
438
458
|
/**
|
|
439
459
|
* Access-control callback signature.
|
|
@@ -515,13 +535,21 @@ export interface ProductionConfig {
|
|
|
515
535
|
capture?: CaptureConfig;
|
|
516
536
|
/**
|
|
517
537
|
* How many days of history to keep in SQLite, overriding the usual default
|
|
518
|
-
* of 7. Retention deletes rows hourly
|
|
519
|
-
*
|
|
520
|
-
* the dashboard's storage panel.
|
|
538
|
+
* of 7. Retention deletes rows hourly and returns freed pages to the OS
|
|
539
|
+
* incrementally — watch actual size via the dashboard's storage panel.
|
|
521
540
|
*
|
|
522
541
|
* @default 3
|
|
523
542
|
*/
|
|
524
543
|
retentionDays?: number;
|
|
544
|
+
/**
|
|
545
|
+
* Size cap in MB for the SQLite database's live data in production,
|
|
546
|
+
* overriding the usual default. When exceeded, the hourly cleanup deletes
|
|
547
|
+
* the oldest records — regardless of age — until usage drops below the
|
|
548
|
+
* cap. Set to `0` to disable.
|
|
549
|
+
*
|
|
550
|
+
* @default 500
|
|
551
|
+
*/
|
|
552
|
+
maxDbSizeMb?: number;
|
|
525
553
|
}
|
|
526
554
|
/**
|
|
527
555
|
* Advanced options that most users never need to touch.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs as u, jsx as t } from "react/jsx-runtime";
|
|
2
2
|
import { useState as d, useRef as N, useCallback as v, useEffect as V } from "react";
|
|
3
3
|
import { formatCacheSize as L, formatTtl as R } from "adonisjs-server-stats/core";
|
|
4
|
-
import { a as E, J as F } from "./index-
|
|
4
|
+
import { a as E, J as F } from "./index-De7nsWBN.js";
|
|
5
5
|
import { C as T } from "./CacheStatsBar-CRodCOeP.js";
|
|
6
6
|
import { F as A } from "./FilterBar-CQ7bD669.js";
|
|
7
7
|
import { D as z } from "./DataTable-YyShr5B-.js";
|
|
@@ -2,7 +2,7 @@ import { jsx as e, jsxs as t } from "react/jsx-runtime";
|
|
|
2
2
|
import { useState as p, useRef as z, useMemo as A, useCallback as K, useEffect as L } from "react";
|
|
3
3
|
import { formatTtl as $, formatCacheSize as j } from "adonisjs-server-stats/core";
|
|
4
4
|
import { u as F } from "./useDashboardApiBase-Bi36pJ2L.js";
|
|
5
|
-
import { u as D, J as E } from "./index-
|
|
5
|
+
import { u as D, J as E } from "./index-De7nsWBN.js";
|
|
6
6
|
import { u as V } from "./useResizableTable-CNJmACdt.js";
|
|
7
7
|
import { C as J } from "./CacheStatsBar-CRodCOeP.js";
|
|
8
8
|
import { F as M } from "./FilterBar-CQ7bD669.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as t } from "react/jsx-runtime";
|
|
2
|
-
import { a as i } from "./index-
|
|
2
|
+
import { a as i } from "./index-De7nsWBN.js";
|
|
3
3
|
import { C as n } from "./ConfigContent-Bwvfl_G7.js";
|
|
4
4
|
function m({ options: o = {} }) {
|
|
5
5
|
const { data: a, isLoading: s } = i("config", o);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs as i, jsx as n } from "react/jsx-runtime";
|
|
2
2
|
import { u as f } from "./useDashboardApiBase-Bi36pJ2L.js";
|
|
3
|
-
import { u as m } from "./index-
|
|
3
|
+
import { u as m } from "./index-De7nsWBN.js";
|
|
4
4
|
import { C as d } from "./ConfigContent-Bwvfl_G7.js";
|
|
5
5
|
function b({ options: r, dashboardPath: o }) {
|
|
6
6
|
const { resolvedOptions: a } = f(o, r), { data: e, isLoading: t, error: s } = m("config", a);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs as l, jsx as r } from "react/jsx-runtime";
|
|
2
2
|
import { useState as w, useMemo as f } from "react";
|
|
3
3
|
import { compactPreview as k, formatDuration as x, durationClassName as M } from "adonisjs-server-stats/core";
|
|
4
|
-
import { u as L, B as A, M as B } from "./index-
|
|
4
|
+
import { u as L, B as A, M as B } from "./index-De7nsWBN.js";
|
|
5
5
|
import { T as b } from "./TimeAgoCell-o3KigGfM.js";
|
|
6
6
|
import { u as D } from "./useResizableTable-CNJmACdt.js";
|
|
7
7
|
import { F as P } from "./FilterBar-CQ7bD669.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as s, jsxs as b, Fragment as E } from "react/jsx-runtime";
|
|
2
2
|
import { useState as o, useRef as N, useEffect as y, useCallback as F } from "react";
|
|
3
3
|
import { resolveCcAddr as _, resolveToAddr as g, resolveFromAddr as x, resolveAttachmentCount as $, resolveTimestamp as D } from "adonisjs-server-stats/core";
|
|
4
|
-
import { a as O } from "./index-
|
|
4
|
+
import { a as O } from "./index-De7nsWBN.js";
|
|
5
5
|
import { E as R } from "./EmailPreviewOverlay-BmXOAvqG.js";
|
|
6
6
|
import { F as B } from "./FilterBar-CQ7bD669.js";
|
|
7
7
|
import { T as H } from "./TimeAgoCell-o3KigGfM.js";
|
|
@@ -2,7 +2,7 @@ import { jsx as e, jsxs as i } from "react/jsx-runtime";
|
|
|
2
2
|
import { useState as c, useRef as A, useMemo as v, useCallback as y, useEffect as S } from "react";
|
|
3
3
|
import { resolveTimestamp as j } from "adonisjs-server-stats/core";
|
|
4
4
|
import { T as q } from "./TimeAgoCell-o3KigGfM.js";
|
|
5
|
-
import { u as $ } from "./index-
|
|
5
|
+
import { u as $ } from "./index-De7nsWBN.js";
|
|
6
6
|
import { u as F } from "./useResizableTable-CNJmACdt.js";
|
|
7
7
|
import { F as R } from "./FilterBar-CQ7bD669.js";
|
|
8
8
|
import { E as M } from "./EmailPreviewOverlay-BmXOAvqG.js";
|
|
@@ -2,7 +2,7 @@ import { jsxs as i, jsx as e, Fragment as g } from "react/jsx-runtime";
|
|
|
2
2
|
import { useState as m, useEffect as f } from "react";
|
|
3
3
|
import { resolveEventName as y, resolveTimestamp as u } from "adonisjs-server-stats/core";
|
|
4
4
|
import { T as w } from "./TimeAgoCell-o3KigGfM.js";
|
|
5
|
-
import { a as b, J as N } from "./index-
|
|
5
|
+
import { a as b, J as N } from "./index-De7nsWBN.js";
|
|
6
6
|
import { D as x } from "./DataTable-YyShr5B-.js";
|
|
7
7
|
import { F as P } from "./FilterBar-CQ7bD669.js";
|
|
8
8
|
import { P as k } from "./Pagination-BkmzUDY8.js";
|
|
@@ -2,7 +2,7 @@ import { jsx as e, jsxs as t } from "react/jsx-runtime";
|
|
|
2
2
|
import { useState as p, useMemo as u } from "react";
|
|
3
3
|
import { resolveTimestamp as g } from "adonisjs-server-stats/core";
|
|
4
4
|
import { T as b } from "./TimeAgoCell-o3KigGfM.js";
|
|
5
|
-
import { u as f, J as v } from "./index-
|
|
5
|
+
import { u as f, J as v } from "./index-De7nsWBN.js";
|
|
6
6
|
import { u as w } from "./useResizableTable-CNJmACdt.js";
|
|
7
7
|
import { F as y } from "./FilterBar-CQ7bD669.js";
|
|
8
8
|
function E({ options: c }) {
|
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
import { useState as f, useRef as
|
|
2
|
-
import { UnauthorizedError as
|
|
1
|
+
import { useState as f, useRef as z, useCallback as x, useEffect as A } from "react";
|
|
2
|
+
import { UnauthorizedError as T, formatConfigVal as C, isSecretKey as I, formatUptime as D, timeAgo as N, getTimerLabel as E, formatDuration as w, getIntegrationLabel as R, TAB_ICONS as S, classifyStatus as j } from "adonisjs-server-stats/core";
|
|
3
3
|
import { u as B } from "./useApiClient-CtEG7rHs.js";
|
|
4
|
-
import { jsx as e, jsxs as n, Fragment as
|
|
4
|
+
import { jsx as e, jsxs as n, Fragment as y } from "react/jsx-runtime";
|
|
5
5
|
function H(t = {}) {
|
|
6
6
|
const {
|
|
7
7
|
baseUrl: c = "",
|
|
8
|
-
debugEndpoint:
|
|
8
|
+
debugEndpoint: d = "/admin/api/debug",
|
|
9
9
|
authToken: i,
|
|
10
|
-
refreshInterval:
|
|
11
|
-
} = t, [u, b] = f(null), [v, g] = f(!0), [
|
|
10
|
+
refreshInterval: s = 3e3
|
|
11
|
+
} = t, [u, b] = f(null), [v, g] = f(!0), [$, r] = f(null), l = z(null), a = B(c, i), h = x(async () => {
|
|
12
12
|
try {
|
|
13
|
-
const
|
|
14
|
-
b(
|
|
13
|
+
const M = await a().get(`${d}/diagnostics`);
|
|
14
|
+
b(M), r(null), g(!1);
|
|
15
15
|
} catch (o) {
|
|
16
|
-
if (o instanceof
|
|
16
|
+
if (o instanceof T) {
|
|
17
17
|
r(o), g(!1), l.current && (clearInterval(l.current), l.current = null);
|
|
18
18
|
return;
|
|
19
19
|
}
|
|
20
20
|
r(o instanceof Error ? o : new Error(String(o))), g(!1);
|
|
21
21
|
}
|
|
22
|
-
}, [
|
|
23
|
-
return
|
|
22
|
+
}, [d, a]);
|
|
23
|
+
return A(() => (g(!0), r(null), h(), l.current = setInterval(h, s), () => {
|
|
24
24
|
l.current && (clearInterval(l.current), l.current = null);
|
|
25
|
-
}), [h,
|
|
25
|
+
}), [h, s]), { data: u, isLoading: v, error: $ };
|
|
26
26
|
}
|
|
27
27
|
function p({ status: t, prefix: c }) {
|
|
28
|
-
const
|
|
28
|
+
const d = j(t);
|
|
29
29
|
let i = `${c}-dot`;
|
|
30
|
-
return
|
|
30
|
+
return d === "ok" ? i += ` ${c}-dot-ok` : d === "err" && (i += ` ${c}-dot-err`), /* @__PURE__ */ e("span", { className: i });
|
|
31
31
|
}
|
|
32
32
|
const L = () => /* @__PURE__ */ e(
|
|
33
33
|
"svg",
|
|
@@ -35,13 +35,13 @@ const L = () => /* @__PURE__ */ e(
|
|
|
35
35
|
xmlns: "http://www.w3.org/2000/svg",
|
|
36
36
|
width: "12",
|
|
37
37
|
height: "12",
|
|
38
|
-
viewBox:
|
|
38
|
+
viewBox: S.eye.viewBox,
|
|
39
39
|
fill: "none",
|
|
40
40
|
stroke: "currentColor",
|
|
41
41
|
strokeWidth: "2",
|
|
42
42
|
strokeLinecap: "round",
|
|
43
43
|
strokeLinejoin: "round",
|
|
44
|
-
dangerouslySetInnerHTML: { __html:
|
|
44
|
+
dangerouslySetInnerHTML: { __html: S.eye.elements.join("") }
|
|
45
45
|
}
|
|
46
46
|
), k = () => /* @__PURE__ */ e(
|
|
47
47
|
"svg",
|
|
@@ -49,17 +49,17 @@ const L = () => /* @__PURE__ */ e(
|
|
|
49
49
|
xmlns: "http://www.w3.org/2000/svg",
|
|
50
50
|
width: "12",
|
|
51
51
|
height: "12",
|
|
52
|
-
viewBox:
|
|
52
|
+
viewBox: S["eye-off"].viewBox,
|
|
53
53
|
fill: "none",
|
|
54
54
|
stroke: "currentColor",
|
|
55
55
|
strokeWidth: "2",
|
|
56
56
|
strokeLinecap: "round",
|
|
57
57
|
strokeLinejoin: "round",
|
|
58
|
-
dangerouslySetInnerHTML: { __html:
|
|
58
|
+
dangerouslySetInnerHTML: { __html: S["eye-off"].elements.join("") }
|
|
59
59
|
}
|
|
60
60
|
);
|
|
61
61
|
function V({ value: t }) {
|
|
62
|
-
const [c,
|
|
62
|
+
const [c, d] = f(!1);
|
|
63
63
|
return /* @__PURE__ */ n("span", { children: [
|
|
64
64
|
c ? t : "••••••••",
|
|
65
65
|
" ",
|
|
@@ -67,7 +67,7 @@ function V({ value: t }) {
|
|
|
67
67
|
"button",
|
|
68
68
|
{
|
|
69
69
|
type: "button",
|
|
70
|
-
onClick: () =>
|
|
70
|
+
onClick: () => d((i) => !i),
|
|
71
71
|
style: {
|
|
72
72
|
background: "none",
|
|
73
73
|
border: "1px solid var(--ss-border)",
|
|
@@ -83,39 +83,39 @@ function V({ value: t }) {
|
|
|
83
83
|
)
|
|
84
84
|
] });
|
|
85
85
|
}
|
|
86
|
-
function O({ current: t, max: c, prefix:
|
|
87
|
-
const i = c > 0 ? Math.min(100, Math.round(t / c * 100)) : 0,
|
|
88
|
-
return /* @__PURE__ */ n("div", { className: `${
|
|
89
|
-
/* @__PURE__ */ e("div", { className: `${
|
|
86
|
+
function O({ current: t, max: c, prefix: d }) {
|
|
87
|
+
const i = c > 0 ? Math.min(100, Math.round(t / c * 100)) : 0, s = i >= 100;
|
|
88
|
+
return /* @__PURE__ */ n("div", { className: `${d}-bar`, children: [
|
|
89
|
+
/* @__PURE__ */ e("div", { className: `${d}-bar-track`, children: /* @__PURE__ */ e(
|
|
90
90
|
"div",
|
|
91
91
|
{
|
|
92
|
-
className: `${
|
|
92
|
+
className: `${d}-bar-fill${s ? ` ${d}-bar-fill-warn` : ""}`,
|
|
93
93
|
style: { width: `${i}%` }
|
|
94
94
|
}
|
|
95
95
|
) }),
|
|
96
|
-
/* @__PURE__ */ n("span", { className: `${
|
|
96
|
+
/* @__PURE__ */ n("span", { className: `${d}-bar-pct${s ? ` ${d}-bar-pct-warn` : ""}`, children: [
|
|
97
97
|
i,
|
|
98
98
|
"%"
|
|
99
99
|
] })
|
|
100
100
|
] });
|
|
101
101
|
}
|
|
102
102
|
function P({ config: t, prefix: c }) {
|
|
103
|
-
const
|
|
104
|
-
return
|
|
103
|
+
const d = Object.entries(t);
|
|
104
|
+
return d.length === 0 ? /* @__PURE__ */ e("span", { className: `${c}-c-dim`, children: "-" }) : /* @__PURE__ */ e("span", { className: `${c}-c-muted`, children: d.map(([i, s], u) => /* @__PURE__ */ n("span", { children: [
|
|
105
105
|
u > 0 && ", ",
|
|
106
106
|
/* @__PURE__ */ e("span", { className: `${c}-c-dim`, children: i }),
|
|
107
107
|
"=",
|
|
108
|
-
|
|
108
|
+
I(i) && typeof s == "string" ? /* @__PURE__ */ e(V, { value: s }) : /* @__PURE__ */ e("span", { children: C(s) })
|
|
109
109
|
] }, i)) });
|
|
110
110
|
}
|
|
111
|
-
function m({ label: t, value: c, prefix:
|
|
112
|
-
return /* @__PURE__ */ n("div", { className: `${
|
|
113
|
-
/* @__PURE__ */ e("span", { className: `${
|
|
114
|
-
/* @__PURE__ */ e("span", { className: `${
|
|
111
|
+
function m({ label: t, value: c, prefix: d }) {
|
|
112
|
+
return /* @__PURE__ */ n("div", { className: `${d}-info-card`, children: [
|
|
113
|
+
/* @__PURE__ */ e("span", { className: `${d}-info-card-label`, children: t }),
|
|
114
|
+
/* @__PURE__ */ e("span", { className: `${d}-info-card-value`, children: c })
|
|
115
115
|
] });
|
|
116
116
|
}
|
|
117
|
-
function W({ data: t, tableClassName: c, classPrefix:
|
|
118
|
-
const i =
|
|
117
|
+
function W({ data: t, tableClassName: c, classPrefix: d }) {
|
|
118
|
+
const i = d || "ss-dash", [s, u] = f(/* @__PURE__ */ new Set()), b = x((r) => {
|
|
119
119
|
u((l) => {
|
|
120
120
|
const a = new Set(l);
|
|
121
121
|
return a.has(r) ? a.delete(r) : a.add(r), a;
|
|
@@ -126,9 +126,9 @@ function W({ data: t, tableClassName: c, classPrefix: s }) {
|
|
|
126
126
|
if (typeof l == "boolean")
|
|
127
127
|
return /* @__PURE__ */ e("span", { className: l ? `${i}-c-green` : `${i}-c-red`, children: String(l) });
|
|
128
128
|
if (Array.isArray(l)) return /* @__PURE__ */ e("span", { children: l.join(", ") || "-" });
|
|
129
|
-
const a =
|
|
130
|
-
if (
|
|
131
|
-
const h =
|
|
129
|
+
const a = C(l);
|
|
130
|
+
if (I(r)) {
|
|
131
|
+
const h = s.has(r);
|
|
132
132
|
return /* @__PURE__ */ n("span", { children: [
|
|
133
133
|
h ? a : "••••••••",
|
|
134
134
|
" ",
|
|
@@ -154,10 +154,10 @@ function W({ data: t, tableClassName: c, classPrefix: s }) {
|
|
|
154
154
|
}
|
|
155
155
|
return /* @__PURE__ */ e("span", { children: a });
|
|
156
156
|
},
|
|
157
|
-
[
|
|
158
|
-
),
|
|
157
|
+
[s, b, i]
|
|
158
|
+
), $ = t.collectors?.some((r) => r.name === "db_pool" || r.name === "app") && Array.isArray(t.lucidDebugConnections) && t.lucidDebugConnections.length === 0;
|
|
159
159
|
return /* @__PURE__ */ n("div", { children: [
|
|
160
|
-
|
|
160
|
+
$ && /* @__PURE__ */ n(
|
|
161
161
|
"div",
|
|
162
162
|
{
|
|
163
163
|
style: {
|
|
@@ -185,10 +185,10 @@ function W({ data: t, tableClassName: c, classPrefix: s }) {
|
|
|
185
185
|
/* @__PURE__ */ e(m, { label: "Version", value: t.package.version || "-", prefix: i }),
|
|
186
186
|
/* @__PURE__ */ e(m, { label: "Node.js", value: t.package.nodeVersion || "-", prefix: i }),
|
|
187
187
|
/* @__PURE__ */ e(m, { label: "AdonisJS", value: t.package.adonisVersion || "-", prefix: i }),
|
|
188
|
-
/* @__PURE__ */ e(m, { label: "Uptime", value:
|
|
188
|
+
/* @__PURE__ */ e(m, { label: "Uptime", value: D(t.package.uptime), prefix: i }),
|
|
189
189
|
/* @__PURE__ */ e(m, { label: "Renderer", value: t.devToolbar?.renderer || "preact", prefix: i })
|
|
190
190
|
] }),
|
|
191
|
-
t.collectors.length > 0 && /* @__PURE__ */ n(
|
|
191
|
+
t.collectors.length > 0 && /* @__PURE__ */ n(y, { children: [
|
|
192
192
|
/* @__PURE__ */ e("h3", { className: `${i}-internals-title`, children: "Collectors" }),
|
|
193
193
|
/* @__PURE__ */ n("table", { className: c, children: [
|
|
194
194
|
/* @__PURE__ */ e("thead", { children: /* @__PURE__ */ n("tr", { children: [
|
|
@@ -209,7 +209,7 @@ function W({ data: t, tableClassName: c, classPrefix: s }) {
|
|
|
209
209
|
/* @__PURE__ */ e(p, { status: r.status, prefix: i }),
|
|
210
210
|
r.status
|
|
211
211
|
] }),
|
|
212
|
-
/* @__PURE__ */ e("td", { className: r.lastError ? `${i}-c-red` : `${i}-c-dim`, children: r.lastError ? /* @__PURE__ */ n(
|
|
212
|
+
/* @__PURE__ */ e("td", { className: r.lastError ? `${i}-c-red` : `${i}-c-dim`, children: r.lastError ? /* @__PURE__ */ n(y, { children: [
|
|
213
213
|
r.lastError,
|
|
214
214
|
r.lastErrorAt && /* @__PURE__ */ e("span", { className: `${i}-c-dim`, style: { fontSize: "10px" }, children: N(r.lastErrorAt) })
|
|
215
215
|
] }) : "-" }),
|
|
@@ -242,7 +242,7 @@ function W({ data: t, tableClassName: c, classPrefix: s }) {
|
|
|
242
242
|
/* @__PURE__ */ e("th", { children: "Interval" })
|
|
243
243
|
] }) }),
|
|
244
244
|
/* @__PURE__ */ e("tbody", { children: Object.entries(t.timers).map(([r, l]) => /* @__PURE__ */ n("tr", { children: [
|
|
245
|
-
/* @__PURE__ */ e("td", { children:
|
|
245
|
+
/* @__PURE__ */ e("td", { children: E(r) }),
|
|
246
246
|
/* @__PURE__ */ n("td", { children: [
|
|
247
247
|
/* @__PURE__ */ e(p, { status: l.active ? "active" : "inactive", prefix: i }),
|
|
248
248
|
/* @__PURE__ */ e("span", { className: l.active ? `${i}-c-green` : `${i}-c-dim`, children: l.active ? "active" : "inactive" })
|
|
@@ -270,7 +270,7 @@ function W({ data: t, tableClassName: c, classPrefix: s }) {
|
|
|
270
270
|
const a = l.active ?? l.available ?? !1, h = l.active ? "active" : l.available ? "available" : "unavailable";
|
|
271
271
|
let o = l.mode ? `Mode: ${l.mode}` : "-";
|
|
272
272
|
return r === "edgePlugin" && l.active ? o = "@serverStats() tag registered" : r === "cacheInspector" && l.available ? o = "Redis dependency detected" : r === "queueInspector" && l.available && (o = "Queue dependency detected"), /* @__PURE__ */ n("tr", { children: [
|
|
273
|
-
/* @__PURE__ */ e("td", { children:
|
|
273
|
+
/* @__PURE__ */ e("td", { children: R(r) }),
|
|
274
274
|
/* @__PURE__ */ n("td", { children: [
|
|
275
275
|
/* @__PURE__ */ e(p, { status: a ? "active" : "inactive", prefix: i }),
|
|
276
276
|
h
|
|
@@ -280,7 +280,7 @@ function W({ data: t, tableClassName: c, classPrefix: s }) {
|
|
|
280
280
|
})
|
|
281
281
|
] })
|
|
282
282
|
] }),
|
|
283
|
-
t.storage && /* @__PURE__ */ n(
|
|
283
|
+
t.storage && /* @__PURE__ */ n(y, { children: [
|
|
284
284
|
/* @__PURE__ */ e("h3", { className: `${i}-internals-title`, children: "Storage (SQLite)" }),
|
|
285
285
|
/* @__PURE__ */ n("table", { className: c, children: [
|
|
286
286
|
/* @__PURE__ */ e("thead", { children: /* @__PURE__ */ n("tr", { children: [
|
|
@@ -320,6 +320,10 @@ function W({ data: t, tableClassName: c, classPrefix: s }) {
|
|
|
320
320
|
" days"
|
|
321
321
|
] })
|
|
322
322
|
] }),
|
|
323
|
+
/* @__PURE__ */ n("tr", { children: [
|
|
324
|
+
/* @__PURE__ */ e("td", { children: "Size Cap" }),
|
|
325
|
+
/* @__PURE__ */ e("td", { children: t.storage.maxDbSizeMb > 0 ? `${t.storage.maxDbSizeMb} MB` : "off" })
|
|
326
|
+
] }),
|
|
323
327
|
/* @__PURE__ */ n("tr", { children: [
|
|
324
328
|
/* @__PURE__ */ e("td", { children: "Last Cleanup" }),
|
|
325
329
|
/* @__PURE__ */ e("td", { children: t.storage.lastCleanupAt ? N(t.storage.lastCleanupAt) : "-" })
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as a, jsxs as n } from "react/jsx-runtime";
|
|
2
2
|
import { SECTION_REFRESH_MS as o } from "adonisjs-server-stats/core";
|
|
3
|
-
import { u as d, I as l } from "./InternalsContent-
|
|
3
|
+
import { u as d, I as l } from "./InternalsContent-CI7HvBtH.js";
|
|
4
4
|
function u({
|
|
5
5
|
options: e = {},
|
|
6
6
|
debugEndpoint: t = "/admin/api/debug"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as e, jsxs as n } from "react/jsx-runtime";
|
|
2
|
-
import { u as i, I as d } from "./InternalsContent-
|
|
2
|
+
import { u as i, I as d } from "./InternalsContent-CI7HvBtH.js";
|
|
3
3
|
function b({ options: s }) {
|
|
4
4
|
const { data: a, isLoading: t, error: r } = i({
|
|
5
5
|
baseUrl: s?.baseUrl,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs as y, jsx as t, Fragment as T } from "react/jsx-runtime";
|
|
2
2
|
import { useState as l, useCallback as C } from "react";
|
|
3
3
|
import { extractJobs as D, extractJobStats as F, JOB_STATUS_FILTERS as j, getJobStatusBadgeColor as B, formatDuration as A, resolveJobTimestamp as L } from "adonisjs-server-stats/core";
|
|
4
|
-
import { a as R, B as _, J as $ } from "./index-
|
|
4
|
+
import { a as R, B as _, J as $ } from "./index-De7nsWBN.js";
|
|
5
5
|
import { J as M } from "./JobStatsBar-C7RslAFE.js";
|
|
6
6
|
import { T as O } from "./TimeAgoCell-o3KigGfM.js";
|
|
7
7
|
import { D as U } from "./DataTable-YyShr5B-.js";
|
|
@@ -3,7 +3,7 @@ import { useState as m, useMemo as C, useCallback as A } from "react";
|
|
|
3
3
|
import { extractJobs as B, extractJobStats as $, JOB_STATUS_FILTERS as D, getJobStatusCssClass as F, formatDuration as L, resolveJobTimestamp as R } from "adonisjs-server-stats/core";
|
|
4
4
|
import { T as P } from "./TimeAgoCell-o3KigGfM.js";
|
|
5
5
|
import { u as k } from "./useDashboardApiBase-Bi36pJ2L.js";
|
|
6
|
-
import { u as E, J as O } from "./index-
|
|
6
|
+
import { u as E, J as O } from "./index-De7nsWBN.js";
|
|
7
7
|
import { u as q } from "./useResizableTable-CNJmACdt.js";
|
|
8
8
|
import { F as z } from "./FilterBar-CQ7bD669.js";
|
|
9
9
|
import { J as M } from "./JobStatsBar-C7RslAFE.js";
|
|
@@ -2,7 +2,7 @@ import { jsxs as i, jsx as s } from "react/jsx-runtime";
|
|
|
2
2
|
import g from "react";
|
|
3
3
|
import { T as v } from "./TimeAgoCell-o3KigGfM.js";
|
|
4
4
|
import { resolveLogLevel as u, resolveLogMessage as f, resolveLogTimestamp as h, resolveLogRequestId as L, getStructuredData as x, getLogLevelCssClass as N } from "adonisjs-server-stats/core";
|
|
5
|
-
import { J as y } from "./index-
|
|
5
|
+
import { J as y } from "./index-De7nsWBN.js";
|
|
6
6
|
function $({ log: o, index: c, expanded: l, onToggleExpand: m, onReqIdClick: e }) {
|
|
7
7
|
const n = u(o), d = f(o), p = h(o), a = L(o), t = x(o);
|
|
8
8
|
return /* @__PURE__ */ i(g.Fragment, { children: [
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsxs as l, jsx as t } from "react/jsx-runtime";
|
|
2
2
|
import { useState as a, useCallback as c } from "react";
|
|
3
3
|
import { LOG_LEVELS as B } from "adonisjs-server-stats/core";
|
|
4
|
-
import { a as G } from "./index-
|
|
4
|
+
import { a as G } from "./index-De7nsWBN.js";
|
|
5
5
|
import { F as T } from "./FilterBar-CQ7bD669.js";
|
|
6
|
-
import { L as z } from "./LogEntryRow-
|
|
6
|
+
import { L as z } from "./LogEntryRow-VCCzwD1H.js";
|
|
7
7
|
import { P as H } from "./Pagination-BkmzUDY8.js";
|
|
8
8
|
function Z({ options: L = {} }) {
|
|
9
9
|
const [E, i] = a(1), [b, x] = a(""), [r, q] = a("all"), [n, h] = a(""), [u, p] = a(""), [m, y] = a([]), [v, R] = a("level"), [g, $] = a("equals"), [f, C] = a(""), [F, P] = a(null), o = {};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsx as o, jsxs as i } from "react/jsx-runtime";
|
|
2
2
|
import { useState as n, useMemo as x, useCallback as C } from "react";
|
|
3
3
|
import { filterLogsByLevel as N, resolveLogRequestId as F, resolveLogMessage as k, LOG_LEVELS as w } from "adonisjs-server-stats/core";
|
|
4
|
-
import { u as E } from "./index-
|
|
4
|
+
import { u as E } from "./index-De7nsWBN.js";
|
|
5
5
|
import { F as q } from "./FilterBar-CQ7bD669.js";
|
|
6
|
-
import { L as R } from "./LogEntryRow-
|
|
6
|
+
import { L as R } from "./LogEntryRow-VCCzwD1H.js";
|
|
7
7
|
function K({ options: f }) {
|
|
8
8
|
const { data: r, isLoading: p, error: g } = E("logs", f), [d, L] = n("all"), [a, h] = n(""), [l, m] = n(""), [b, y] = n(null), c = x(() => {
|
|
9
9
|
let e = Array.isArray(r) ? r : r?.logs || r?.entries || [];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as s, jsxs as e } from "react/jsx-runtime";
|
|
2
2
|
import { useContext as rs, useState as A, useId as ts, useRef as ls, useEffect as ds, useCallback as z } from "react";
|
|
3
3
|
import { resolveMetric as k, formatDuration as S, durationClassName as G, resolveEventName as is, resolveNormalizedSql as ns } from "adonisjs-server-stats/core";
|
|
4
|
-
import { O as cs, a as Y, b as D } from "./index-
|
|
4
|
+
import { O as cs, a as Y, b as D } from "./index-De7nsWBN.js";
|
|
5
5
|
import { T as os } from "./TimeAgoCell-o3KigGfM.js";
|
|
6
6
|
const hs = [
|
|
7
7
|
{ value: "5m", label: "5m" },
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as f, jsxs as T } from "react/jsx-runtime";
|
|
2
2
|
import { useState as S, useRef as V, useCallback as i, useEffect as q, useMemo as b } from "react";
|
|
3
3
|
import { QueriesController as F, resolveField as l, computeDashboardQuerySummary as O } from "adonisjs-server-stats/core";
|
|
4
|
-
import { a as P } from "./index-
|
|
4
|
+
import { a as P } from "./index-De7nsWBN.js";
|
|
5
5
|
import { Q as R } from "./QueriesContent-BDIx8zFn.js";
|
|
6
6
|
function K({ options: $ = {} }) {
|
|
7
7
|
const [y, d] = S(1), t = V(new F("list")), [x, D] = S(t.current.state), o = i(() => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as S, jsxs as w, Fragment as L } from "react/jsx-runtime";
|
|
2
2
|
import { useRef as M, useState as R, useCallback as o, useMemo as l } from "react";
|
|
3
3
|
import { QueriesController as q, filterQueries as z, countDuplicateQueries as A, computeQuerySummary as B, formatDuration as F } from "adonisjs-server-stats/core";
|
|
4
|
-
import { u as U } from "./index-
|
|
4
|
+
import { u as U } from "./index-De7nsWBN.js";
|
|
5
5
|
import { Q as _ } from "./QueriesContent-BDIx8zFn.js";
|
|
6
6
|
function V({ options: m }) {
|
|
7
7
|
const { baseUrl: d = "", debugEndpoint: g = "/admin/api/debug", authToken: c } = m || {}, { data: u, isLoading: Q, error: h } = U("queries", m), e = M(new q("list")), [f, $] = R(e.current.state), n = o(() => {
|
|
@@ -3,8 +3,8 @@ import { useMemo as R, useState as g, useRef as W, useEffect as L, useCallback a
|
|
|
3
3
|
import { normalizeTraceFields as z, resolveStatusCode as G, resolveDuration as I, durationClassName as U, resolveSpanCount as Y, resolveWarningCount as K, resolveTimestamp as V } from "adonisjs-server-stats/core";
|
|
4
4
|
import { T as H } from "./TimeAgoCell-o3KigGfM.js";
|
|
5
5
|
import { u as J } from "./useApiClient-CtEG7rHs.js";
|
|
6
|
-
import { a as Q, M as A, S as F } from "./index-
|
|
7
|
-
import { S as X, R as Z } from "./SplitPaneWrapper-
|
|
6
|
+
import { a as Q, M as A, S as F } from "./index-De7nsWBN.js";
|
|
7
|
+
import { S as X, R as Z } from "./SplitPaneWrapper-BZ6VrBr-.js";
|
|
8
8
|
import { D as ee } from "./DataTable-YyShr5B-.js";
|
|
9
9
|
import { F as te } from "./FilterBar-CQ7bD669.js";
|
|
10
10
|
import { P as se } from "./Pagination-BkmzUDY8.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs as m, jsx as r, Fragment as p } from "react/jsx-runtime";
|
|
2
2
|
import { useState as y } from "react";
|
|
3
|
-
import { a as u, M as f } from "./index-
|
|
3
|
+
import { a as u, M as f } from "./index-De7nsWBN.js";
|
|
4
4
|
import { D as w } from "./DataTable-YyShr5B-.js";
|
|
5
5
|
import { F as b } from "./FilterBar-CQ7bD669.js";
|
|
6
6
|
function A({ options: n = {} }) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as e, jsxs as d } from "react/jsx-runtime";
|
|
2
2
|
import { useState as g, useMemo as p } from "react";
|
|
3
|
-
import { u as b, M as f } from "./index-
|
|
3
|
+
import { u as b, M as f } from "./index-De7nsWBN.js";
|
|
4
4
|
import { u as w } from "./useResizableTable-CNJmACdt.js";
|
|
5
5
|
import { F as N } from "./FilterBar-CQ7bD669.js";
|
|
6
6
|
function R({ options: o, currentPath: n }) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs as c, jsx as l } from "react/jsx-runtime";
|
|
2
2
|
import { useState as d, useRef as o, useEffect as u } from "react";
|
|
3
|
-
import { L as p } from "./LogEntryRow-
|
|
3
|
+
import { L as p } from "./LogEntryRow-VCCzwD1H.js";
|
|
4
4
|
import { initSplitPane as f } from "adonisjs-server-stats/core";
|
|
5
5
|
function v({ logs: n, onReqIdClick: a }) {
|
|
6
6
|
const [t, s] = d(null);
|